StackState air-gapped

StackState Self-hosted

Installing in an air-gapped environment, where there is no internet access available, requires some extra preparation steps before StackState can be installed.

Note that step 2 requires a Docker registry that's available to the Kubernetes cluster and can store all StackState docker images.

Configure Helm

Configure Helm on your local machine to be able to pull the StackState Helm chart.

helm repo add stackstate https://helm.stackstate.io
helm repo update

Download and copy the StackState helm chart

Make sure to first run helm repo update again to have the latest version of the Helm chart available.

Download the latest StackState helm chart like this:

helm pull stackstate/stackstate-k8s

This results in a file like this stackstate-k8s-1.0.4.tgz. Copy this file (using scp, sftp or any other tool available) to the system from which StackState will be installed.

Copy the StackState docker images

Make sure to first run helm repo update again to have the latest version of the Helm chart available.

Download the copy_images.sh bash script from the StackState Helm chart Github repository and make it executable:

chmod +x copy_images.sh

The script can copy images directly from StackState's Quay.io registry to your internal registry. If the internal registry isn't accessible from a computer that has direct internet access an intermediate step is needed.

To copy the images directly from the StackState registry to the internal registry run the script like this to copy the images to the registry at registry.acme.com:5000:

STS_REGISTRY_USERNAME=... STS_REGISTRY_PASSWORD=... DST_REGISTRY_USERNAME=... DST_REGISTRY_PASSWORD=...  ./copy_images.sh -d registry.acme.com:5000

The environment variables are used to setup authentication. If the destination registry doesn't require authentication the DST_REGISTRY_* variables can be omitted.

The script extracts all images from the Helm chart and copies the images to the local registry. Depending on the speed of the internet connection this might take a while.

Prepare local Docker registry configuration

In preparation for the installation of StackState create a local-docker-registry.yaml values file that will be used during the Helm installation of StackState. Include the following configuration in that file, replacing the registry.acme.com:5000 with your internal docker registry where the docker images have been uploaded in the ealier steps.

global:
  imageRegistry: registry.acme.com:5000
elasticsearch:
  prometheus-elasticsearch-exporter:
    image:
      repository: registry.acme.com:5000/stackstate/elasticsearch-exporter
victoria-metrics-0:
  server:
    image:
      repository: registry.acme.com:5000/stackstate/victoria-metrics
victoria-metrics-1:
  server:
    image:
      repository: registry.acme.com:5000/stackstate/victoria-metrics

See also

Last updated