Skip to main content

Prerequisites

Before proceeding with the air-gap installation, ensure the following requirements are met:
  1. Bidirectional connectivity between these components:
    • VCS (Version Control System) ↔ Kubernetes Cluster
    • Image Registry ↔ Kubernetes Cluster
  2. Kubernetes version: v1.30.0 or later (up to v1.33)

Setup Infrastructure

Create Virtual Machines

Create two nodes for your DeepSource Enterprise Server deployment:
  1. Primary Application Node: This will host the main DeepSource application and admin console
  2. Analysis Node: This will be dedicated to running code analysis workloads
Before you proceed with the installation, please make sure to go through the requirements section of the documentation.

SSH into Primary Node

SSH into your primary application node where you’ll perform the initial setup:
ssh user@<primary-node-ip>

Download Air-Gap Bundles

Visit the download portal with the password provided and download:
  • KOTS CLI
  • KOTS Airgap Bundle
  • DeepSource Airgap bundle
  • DeepSource License file

Transfer Air-Gap Bundles to Primary Node

Along with the previously mentioned bundles, download the Kubernetes cluster air-gap bundle by visiting the Embedded Kubernetes section in the download portal and downloading the Embedded Kubernetes Installer K8s bundle. Transfer all downloaded bundles and license file to your primary node using scp or your preferred file transfer method:
scp deepsource-app-release.airgap user@<primary-node-ip>:/home/user/
scp kotsadm.tar.gz user@<primary-node-ip>:/home/user/
scp kots_linux_amd64.tar.gz user@<primary-node-ip>:/home/user/
scp k8s-airgap-bundle.airgap user@<primary-node-ip>:/home/user/
scp deepsource-license.yaml user@<primary-node-ip>:/home/user/

Extract and Setup Kubernetes Cluster

Extract the K8s bundle and run the installation script:
tar xvzf deepsource-fowl-beta.tar.gz
cat install.sh | sudo bash -s airgap

Install Missing System Packages

The install script may require certain system packages. For Ubuntu 24.04 LTS (GCP), install the following packages:
sudo apt update && sudo apt install containerd iptables conntrack fio
Package requirements may vary based on your operating system. Follow the install script’s error messages to identify and install any missing packages specific to your OS

Rerun Installation Script

After installing the required packages, rerun the installation script:
cat install.sh | sudo bash -s airgap
Note down the admin console password provided during installation.

Configure Kubernetes Access (Non-root Users)

If you ran the install script as a non-root user, configure kubectl access:
sudo cp /etc/kubernetes/admin.conf ~/.kube/config
sudo chown -R $(id -u) ~/.kube
echo 'unset KUBECONFIG' >> ~/.bash_profile
bash -l

Install KOTS CLI

Install the KOTS CLI tool directly on your primary server to manage the air-gap installation.

Extract KOTS Archive

Extract the transferred kots.tar.gz file:
tar xvf kots_linux_amd64.tar.gz

Install KOTS to PATH

Move the KOTS executable to your PATH for system-wide access:
sudo mv kots /usr/local/bin/kubectl-kots

Verify Installation

kubectl kots --help

Configure Image Registry

The Kubernetes cluster includes a built-in image registry. You’ll need to retrieve the registry credentials for uploading images.

Get Registry Credentials

Retrieve the registry credentials from the Kubernetes cluster:
kubectl -n default get secret registry-creds -o jsonpath='{.data.\.dockerconfigjson}' | base64 -d
Note down the following information from the output:
  • Registry host
  • Username
  • Password

Harbor Registry Setup (Alternative)

If using an external Harbor registry as your image registry:
  1. Create a new project (e.g., deepsource)
  2. The project name will serve as the path/namespace for image storage

Upload KOTS Images

Upload the KOTS Air-Gap Bundle to your image registry. This will upload kotsadm (the admin console) and the components KOTS requires.
kubectl kots admin-console \
push-images ./kotsadm.tar.gz \
<registry-host>/<registry-namespace> \
--registry-username <registry-username> \
--registry-password <registry-password>
For Harbor image registry, the <registry-namespace> will usually be the project name you created.
For updating the App Manager, refer to the Replicated documentation.

Install DeepSource Enterprise Server

Install DeepSource

Run the following command from the directory where you have the air-gap bundle and license file:
kubectl kots install deepsource-fowl \
--shared-password <admin-console-password> \
--license-file <deepsource-license> \
--airgap-bundle <deepsource-app-release.airgap> \
--namespace <k8s-namespace> \
--kotsadm-registry <registry-host> \
--kotsadm-namespace deepsource \
--registry-username <registry-username> \
--registry-password <registry-password> \
--no-port-forward

Parameter Descriptions

  • <admin-console-password>: Password for accessing the admin console (noted during cluster setup)
  • <deepsource-license>: Path to your DeepSource license file
  • <deepsource-app-release.airgap>: Path to the DeepSource air-gap bundle
  • <k8s-namespace>: Kubernetes namespace for deployment (e.g., default)
  • <registry-host>: Your image registry hostname (from registry credentials)
  • <registry-username>: Registry authentication username (from registry credentials)
  • <registry-password>: Registry authentication password (from registry credentials)

Access Admin Console

Once installation is complete, access the admin console at port 8800:
# If running locally
http://localhost:8800

# If running on a remote server
http://<primary-node-ip>:8800

Add Analysis Node

Access Cluster Management

  1. Navigate to the admin console
  2. Go to Cluster Management
  3. Click Add a Node

Setup Analysis Node

  1. SSH into your second node (analysis node):
ssh user@<analysis-node-ip>
  1. Run the Secondary Node command provided in the admin console
  2. Label the analysis node for DeepSource workloads
For more information on joining and labeling the nodes visit Joining Nodes in the Standalone Cluster Installation documentation.

Configuration and Setup

After successful installation and cluster setup:
  1. Access the Admin Console: Navigate to http://<primary-node-ip>:8800
  2. Configure DeepSource: Follow the configuration steps as outlined in the Enterprise Server Configuration documentation
  3. Deploy Application: Deploy DeepSource through the admin console
  4. Verify Installation: Ensure all components are running correctly across both nodes

Upgrade DeepSource Enterprise Server

To upgrade DeepSource Enterprise Server to a newer version:

Download New Air-Gap Bundle

Download the new version of the DeepSource air-gap bundle and transfer it to your primary server.

Run Upgrade Command

Execute the upgrade command from the directory containing the new air-gap bundle:
kubectl kots upstream upgrade deepsource-fowl \
--airgap-bundle <new-deepsource-app-release.airgap> \
--kotsadm-namespace deepsource \
--kotsadm-registry <registry-host> \
--registry-username <registry-username> \
--registry-password <registry-password> \
-n <k8s-namespace>

Additional Resources

For detailed configuration and setup instructions, visit:
If you encounter any issues during the air-gap installation, contact DeepSource Support with your installation logs and configuration details.