Skip to content
de
EIn Laptop zeigt Grafik von 0 und 1 | SPIRIT/21
Von Muhamed Ahmovic am 22.02.2024 IT Security

Deploying Supervisor Services in Air Gapped Environments

vSphere with Tanzu Supervisor Services

Supervisor Services is a platform for managing core infrastructure components such as virtual machines, MinIO, Velero, Harbor and others. Once deployed, application teams can deploy Supervisor Services instances within their own namespaces using industry-standard tools and procedures.

Since Supervisor Services are also tightly integrated with independent software vendors (ISV), they can provide key shared services to workloads, such as (as of January 2024) a Container Image Registry (Harbor), a Backup & Recovery Service (Velero), an S3 Object Store (MinIO), Data Persistence Platform (vDPP), Certificate Mamagement Service, Kubernetes Ingress Controller Service (Contour) and External DNS Service.

Deployment of Supervisor Services

In an environment with Internet access, the deployment of services works “out-of-the-box”, but in air gapped environments it is generally not possible without major effort.
A corresponding manifest file is required for each supervisor service, which is provided by VMware or an independent software provider. Deployment manifest files can be downloaded from this website, for example: vSphere Supervisor Services.

The link can also be opened via vCenter GUI:

Beispiel Deployment von Supervisor Services | SPIRIT/21

The links of images or image bundles are defined in each service manifest file. How the service can be rolled out in an Air Gapped environment depends on whether it is a single image per service, multiple images or an image bundle.

Here are a few manifest file examples:

Beispiel harbor.yml – hat Image-Bundle definiert | SPIRIT/21
harbor.yml - has defined image bundle
Beispiel contour.yml – hat ebenfalls ein Image-Bundle definiert | SPIRIT/21
contour.yml - has also defined an image bundle
Beispiel minio-supervisorservice-2.0.0.yml – hat mehrere Images (keine Image-Bundles) definiert | SPIRIT/21
minio-supervisorservice-2.0.0.yml - has defined several images (no image bundles)

Providing images and bundles

After the links of images or image bundles have been found, they must be downloaded and created in an internal registry accessible from the air-gapped environment.

The images can be deployed with docker, image bundles can be deployed with the “imgpkg” tool.

Option 1: Deploy from a VM with docker and imgpkg tool that has access to the Internet and the registry in the Air-Gapped environment:

  • For Images:
    docker pull < image_name:version>
    Docker tag < image_name:version> <interne_harbor/image_name:verstion>
    Docker Push < interne_harbor:verstion> br>br>
  • For image bundles:
    imgpkg copy -b projects.registry.vmware.com/…/< image-bundle_name:version> —to-repo <interne_harbor/image-name> —debug

Option 2: From a VM with docker and imgpkg tools that does not have access to the registry in the Air-Gapped environment:

  • For Images:
    ‘# A VM with Internet access
    docker pull < imagename:version>
    docker save > < image
    name >.tar
    ‘# copy image to the VM with access to the registry
    docker load < < image_name:version>.tar
    Docker tag < image_name:version> <interne_harbor/image_name:verstion>
    docker push <interne_harbor/image_name:verstion> br>br>
  • For image bundles
    mgpkg copy -b projects.registry.vmware.com/…/< image-bundle_name:version> —to-tar=<$HOME/< image_folder_name>.tar
    ‘# copy image-bundle to the VM with access to the registry
    imgpkg copy –tar < path_to_image_file>.tar –to-repo <interne_harbor/image-name> —debug

Supervisor Service Manifest file

Once the image bundles are deployed, the manifest files must be supplemented with the link from the internal registry to the image bundle.

Ein Beispiel aus harbor.yml Manifest Datei | SPIRIT/21
An example from harbor.yml manifest file
Ein Beispiel aus contour.yml Manifest Datei | SPIRIT/21
An example from contour.yml Manifest file

Now the Supervisor Services, which are provided as an image, can be activated and installed.

Addition of the kapp-controller-config secret

In order to install a Supervisor Service, which is provided as an image bundle, the secret “kapp-controlle-config” must be completed with the link from the internal registry. This should be done from a Supervisor Control Plane VM.

kubectl -n vmware-system-appplatform-operator-system edit secrets kapp-controller-config

The kapp-controller-config should look like the picture.

Add Harbor FQDN (marked in yellow in the screenshot), then add all links that are defined base64 encoden and the value (marked in green in the screenshot) e.g.: echo ‘docker-registry.kube-system.svc.cluster.local,harbor.intern.net’ | base64

Code Beispiel: Ergänzung des kapp-controller-config secret | SPIRIT/21

Now the Supervisor Services, which are provided as image bundles, can be activated and installed. Then follow the installation steps on the VMware website and enjoy the Supervisor Services in air gapped environments. After the Supervisor Cluster Update, the changes must be repeated on the kapp-controller-config.

If you are also struggling with challenges in your infrastructure, please contact our team and let us work together to find a solution.

Muhamed Ahmovic

Technischer Presales

Muhamed is responsible for the design, planning and implementation of IT solutions with a focus on VMware, Storages and Microsoft. If you have any questions about encryption technologies, you’ve come to the right place.

Muhamed Ahmovic