Air-gapped Installation

This guide provides instructions for deploying Observo Site in air-gapped environments where direct internet access is not available.

Prerequisites

System Requirements

  • 4 vCPU or more

  • 16 GB RAM minimum

  • 50 GB disk space

  • Static private IP address

Required Files

Before starting, gather these files from a machine with internet access:

  1. k3s Binary Files

    • Download from k3s releases:

      • k3s binary

      • k3s-airgap-images-amd64.tar.gz (or arm64 for ARM architecture)

    • Download installation script:

Installation Steps

1. Prepare Environment

Copy all downloaded files to the air-gapped VM:

# Create installation directory
mkdir observo-install
cd observo-install

# Copy files to this directory:
# - k3s binary
# - k3s-airgap-images-amd64.tar.gz
# - install.sh
# - helm-v3.14.4-linux-amd64.tar.gz

2. Install k3s

  1. Set up k3s images:

    sudo mkdir -p /var/lib/rancher/k3s/agent/images/
    sudo cp k3s-airgap-images-amd64.tar.gz /var/lib/rancher/k3s/agent/images/
  2. Install k3s binary:

    sudo cp k3s /usr/local/bin
    sudo chmod +x /usr/local/bin/k3s
  3. Install k3s:

    chmod +x install.sh
    INSTALL_K3S_SKIP_DOWNLOAD=true K3S_TOKEN=12345 ./install.sh
  4. Verify Installation:

    systemctl status k3s.service
    journalctl -xe

3. Configure kubectl Access

export KUBECONFIG=/etc/rancher/k3s/k3s.yaml
sudo chmod 666 /etc/rancher/k3s/k3s.yaml
kubectl get pods -A

4. Install Helm

mkdir helm
tar -xvf helm-v3.14.4-linux-amd64.tar.gz ./helm
sudo cp ./helm/linux-amd64/helm /usr/local/bin/

5. Deploy Observo Site

  1. Set Environment Variable:

    export OBSERVO_AIRGAPPED=true
  2. Run Installation:

    ./observo_site_installer install_site $(pwd)/<site>.yaml

6. Verify Installation

# Check pods
kubectl get pods -n observo-client

# Check services
kubectl get svc -n observo-client

Post-Installation Configuration

1. Configure Network Access

The installer automatically sets up nginx proxy configuration:

# Verify nginx configuration
sudo nginx -t

# Check nginx status
sudo systemctl status nginx

2. Test Connectivity

# Test HTTP endpoints
curl -v http://localhost:10001/health

# Test UDP endpoints
nc -zu localhost 10001

For additional assistance, refer to:

Last updated

Was this helpful?