How to run DKP in an Air-gapped installation with catalog applications.

The following explains how to run DKP on top of an air-gapped DKP cluster installation with catalog applications.

Depending on your configuration, there are three different ways you can install DKP to an air-gapped environment.
Ensure you follow the correct procedure for your configuration type, and ignore the other two sections that do not pertain to your environment:

Load the Docker images into your Docker Registry

Follow these steps:

  1. Download the DKP image bundle file:

    curl -LJ https://downloads.d2iq.com/dkp/v2.3.0/kommander-image-bundle-v2.3.0.tar | tar -xv
    NONE
  2. Download the Konvoy Docker Images.

    curl -o konvoy-image-bundle-v2.3.0.tar -O https://downloads.d2iq.com/dkp/v2.3.0/konvoy_image_bundle_v2.3.0_linux_amd64.tar
    CODE
  3. Optionally download the DKP catalog applications image bundle file:

    curl "https://downloads.d2iq.com/dkp/v2.3.0/dkp-catalog-applications-image-bundle-v2.3.0.tar" -O - | tar -xvf -
    CODE
  4. Optionally download the DKP insights image bundle file:

    curl "https://downloads.d2iq.com/dkp/v2.3.0/dkp-insights-image-bundle-v2.3.0.tar"
    CODE
  5. See the NOTICES.txt file for 3rd party software attributions and place the kommander-image-bundle-v2.3.0.tar and dkp-catalog-applications-image-bundle-v2.3.0.tar bundles within a location where you can load and push the images to your private Docker registry.

  6. Run the following command to load the air-gapped image bundle into your private Docker registry:

dkp push image-bundle --image-bundle kommander-image-bundle-v2.3.0.tar --to-registry <REGISTRY_URL>
dkp push image-bundle --image-bundle dkp-catalog-applications-image-bundle-v2.3.0.tar --to-registry <REGISTRY_URL>`
dkp push image-bundle --image-bundle dkp-insights-image-bundle-v2.3.0.tar --to-registry <REGISTRY_URL>`
CODE

Install air-gapped Kommander with the DKP Catalog Applications

Use this section to install DKP with Catalog Applications.

Prerequisites

To use the DKP Catalog Applications in an air-gapped environment, you need the following files (including downloading and pushing the dkp-insights-image-bundle file mentioned above):

  1. Download the DKP catalog application definitions:

    curl -LJ https://downloads.d2iq.com/dkp/v2.3.0/dkp-catalog-applications-v2.3.0.tar.gz | tar -xvz
    CODE
  2. Download the DKP catalog applications chart bundle:

     curl -LJ https://downloads.d2iq.com/dkp/v2.3.0/dkp-catalog-applications-charts-bundle-v2.3.0.tar.gz | tar -xvz
    CODE
  3. Download the Kommander charts bundle:

     curl -LJ https://downloads.d2iq.com/dkp/v2.3.0/dkp-kommander-charts-bundle-v2.3.0.tar.gz | tar -xvz
    CODE
  4. Download the Kommander application definitions:

     curl -O https://downloads.d2iq.com/dkp/v2.3.0/kommander-applications-v2.3.0.tar.gz
    CODE
  5. Download the Containerd 1.14.13packages for the OS you plan to provision dkp on. The options for OS are listed below for replacement in the command before running:

    • centos-7.9

    • ol-7.9

    • rhel-7.9

    • rhel-8.2

    • rhel-8.4

    • sles-15.3

    • ubuntu-18.04

    • ubuntu-20.04

    export CONTAINERD_OS=centos-7.9
    CODE
    curl --output artifacts/containerd-1.4.13-d2iq.1-"$CONTAINERD_OS"-x86_64.tar.gz --location https://packages.d2iq.com/dkp/containerd/containerd-1.4.13-d2iq.1-"$CONTAINERD_OS"-x86_64.tar.gz
    BASH

    To get the fips builds append _fips after -x86_64 in the url. To get the fips build for centos-7.9 the url would be
    https://packages.d2iq.com/dkp/containerd/containerd-1.4.13-d2iq.1-centos-7.9-x86_64_fips.tar.gz

    The following OS’s have containerd fips builds:

    • centos-7.9

    • ol-7.9

    • rhel-7.9

    • rhel-8.2

    • rhel-8.4

  6. Download the Kubernetes images:

    curl -o kib/artifacts/images/"$VERSION"_images.tar.gz -O https://downloads.d2iq.com/dkp/airgapped/kubernetes-images/"$VERSION"_images.tar.gz
    CODE

Install Kommander

Follow these steps:

  1. Create the configuration file by running dkp install kommander --init --airgapped > install.yaml for the air-gapped deployment. Open the install.yaml file and review that it looks like the following:

    apiVersion: config.kommander.mesosphere.io/v1alpha1
    kind: Installation
    airgapped:
      enabled: true
    CODE
  2. In the same file, if you are installing Kommander in an AWS VPC, set the Traefik annotation to create an internal facing ELB by setting the following:

    apps:
      traefik:
        values: |
          service:
            annotations:
              service.beta.kubernetes.io/aws-load-balancer-internal: "true"
    catalog:
      repositories:
        - name: dkp-catalog-applications
          labels:
            kommander.d2iq.io/project-default-catalog-repository: "true"
            kommander.d2iq.io/workspace-default-catalog-repository: "true"
            kommander.d2iq.io/gitapps-gitrepository-type: "dkp"
          path: ./dkp-catalog-applications.tar.gz
    CODE
  3. To install DKP in your air-gapped environment using the above configuration file, run the following command:

    dkp install kommander --installer-config ./install.yaml \
    --kommander-applications-repository kommander-applications-v2.3.0.tar.gz \
    --charts-bundle dkp-kommander-charts-bundle-v2.3.0.tar.gz \
    --charts-bundle dkp-catalog-applications-charts-bundle-v2.3.0.tar.gz
    CODE
  4. Verify your installation.

Install air-gapped Kommander with DKP Insights

Use this section to install DKP with DKP Insights.

Prerequisites

If you are utilizing DKP Insights in an air-gapped environment, there are additional files in order to use the DKP Insights engine:

  1. Download the DKP Insights catalog:

    curl "https://downloads.d2iq.com/dkp/v2.3.0/dkp-insights-v2.3.0.tar.gz"
    CODE
  2. Download the DKP Insights chart bundle:

    curl "https://downloads.d2iq.com/dkp/v2.3.0/dkp-insights-charts-bundle-v2.3.0.tar.gz"
    CODE
  3. Download the Kommander charts bundle:

    curl "https://downloads.d2iq.com/dkp/v2.3.0/dkp-kommander-charts-bundle-v2.3.0.tar.gz" -O - | tar -xvf -
    CODE
  4. Download the Kommander application definitions:

    curl "https://downloads.d2iq.com/dkp/v2.3.0/kommander-applications-v2.3.0.tar.gz"
    CODE
  5. Download the Containerd 1.14.13packages for the OS you plan to provision dkp on. The options for OS are listed below for replacement in the command before running:

    • centos-7.9

    • ol-7.9

    • rhel-7.9

    • rhel-8.2

    • rhel-8.4

    • sles-15.3

    • ubuntu-18.04

    • ubuntu-20.04

    export CONTAINERD_OS=centos-7.9
    CODE
    curl --output artifacts/containerd-1.4.13-d2iq.1-"$CONTAINERD_OS"-x86_64.tar.gz --location https://packages.d2iq.com/dkp/containerd/containerd-1.4.13-d2iq.1-"$CONTAINERD_OS"-x86_64.tar.gz
    BASH

    To get the fips builds append _fips after -x86_64 in the url. To get the fips build for centos-7.9 the url would be
    https://packages.d2iq.com/dkp/containerd/containerd-1.4.13-d2iq.1-centos-7.9-x86_64_fips.tar.gz

    The following OS’s have containerd fips builds:

    • centos-7.9

    • ol-7.9

    • rhel-7.9

    • rhel-8.2

    • rhel-8.4

  6. Download the Kubernetes images:

    curl -o kib/artifacts/images/"$VERSION"_images.tar.gz -O https://downloads.d2iq.com/dkp/airgapped/kubernetes-images/"$VERSION"_images.tar.gz
    CODE

Install Kommander

Follow these steps:

  1. Create the configuration file by running dkp install kommander --init --airgapped > install.yaml for the air-gapped deployment. Open the install.yaml file and review that it looks like the following:

    apiVersion: config.kommander.mesosphere.io/v1alpha1
    kind: Installation
    airgapped:
      enabled: true
    CODE
  2. In the same file, if you are installing Kommander in an AWS VPC, set the Traefik annotation to create an internal facing ELB by setting the following:

    apps:
      traefik:
        values: |
          service:
            annotations:
              service.beta.kubernetes.io/aws-load-balancer-internal: "true"
    dkp-insights-management:
      enabled: true
    catalog:
      repositories:
        - name: insights-catalog-applications
          labels:
            kommander.d2iq.io/workspace-default-catalog-repository: "true"
            kommander.d2iq.io/gitapps-gitrepository-type: "dkp"
          path: ./dkp-insights-v2.3.0.tar.gz
    CODE
  3. Push the DKP Insights charts bundle:

    dkp push chart-bundle dkp-insights-charts-bundle-v2.3.0.tar.gz
    CODE
  4. Install DKP with Insights enabled by running:

    dkp install kommander --installer-config ./install.yaml \
    --kommander-applications-repository kommander-applications-v2.3.0.tar.gz \
    --charts-bundle dkp-kommander-charts-bundle-v2.3.0.tar.gz \
    --charts-bundle dkp-insights-charts-bundle-v2.3.0.tar.gz
    CODE
  5. Verify your installation.

Install air-gapped Kommander with DKP Insights and DKP Catalog Applications

Use this section to install DKP with DKP Insights and Catalog Applications.

Prerequisites

Follow these steps:

  1. Download the DKP catalog application definitions:

    curl "https://downloads.d2iq.com/dkp/v2.3.0/dkp-catalog-applications-v2.3.0.tar.gz"
    CODE
  2. Download the DKP catalog applications chart bundle:

    curl "https://downloads.d2iq.com/dkp/v2.3.0/dkp-catalog-applications-charts-bundle-v2.3.0.tar.gz" -O - | tar -xvf -
    CODE
  3. Download the DKP Insights catalog:

    curl "https://downloads.d2iq.com/dkp/v2.3.0/dkp-insights-v2.3.0.tar.gz"
    CODE
  4. Download the DKP Insights chart bundle:

    curl "https://downloads.d2iq.com/dkp/v2.3.0/dkp-insights-charts-bundle-v2.3.0.tar.gz"
    CODE
  5. Download the Kommander charts bundle:

    curl "https://downloads.d2iq.com/dkp/v2.3.0/dkp-kommander-charts-bundle-v2.3.0.tar.gz" -O - | tar -xvf -
    CODE
  6. Download the Kommander application definitions:

    curl "https://downloads.d2iq.com/dkp/v2.3.0/kommander-applications-v2.3.0.tar.gz"
    CODE

Install Kommander

Follow these steps:

  1. Create the configuration file by running dkp install kommander --init --airgapped > install.yaml for the air-gapped deployment. Open the install.yaml file and review that it looks like the following:

    apiVersion: config.kommander.mesosphere.io/v1alpha1
    kind: Installation
    airgapped:
      enabled: true
    CODE
  2. In the same file, if you are installing Kommander in an AWS VPC, set the Traefik annotation to create an internal facing ELB by setting the following:

    apps:
      traefik:
        values: |
          service:
            annotations:
              service.beta.kubernetes.io/aws-load-balancer-internal: "true"
    dkp-insights-management:
      enabled: true
    catalog:
      repositories:
        - name: insights-catalog-applications
          labels:
            kommander.d2iq.io/workspace-default-catalog-repository: "true"
            kommander.d2iq.io/gitapps-gitrepository-type: "dkp"
          path: ./dkp-insights-v2.3.0.tar.gz
        - name: dkp-catalog-applications
          labels:
            kommander.d2iq.io/project-default-catalog-repository: "true"
            kommander.d2iq.io/workspace-default-catalog-repository: "true"
            kommander.d2iq.io/gitapps-gitrepository-type: "dkp"
          path: ./dkp-catalog-applications.tar.gz
    CODE
  3. Follow the steps on the Configure an Enterprise catalog page to configure the DKP catalog applications.

  4. To install DKP in your air-gapped environment using the above configuration file, run the following command:

    dkp install kommander --installer-config ./install.yaml \
    --kommander-applications-repository kommander-applications-v2.3.0.tar.gz \
    --charts-bundle dkp-kommander-charts-bundle-v2.3.0.tar.gz \
    --charts-bundle dkp-catalog-applications-charts-bundle-v2.3.0.tar.gz \
    --charts-bundle dkp-insights-charts-bundle-v2.3.0.tar.gz
    CODE
  5. Verify your installation.

Useful DKP CLI Commands

Kommander Charts Bundle

The charts bundle is a gzipped tar archive containing Helm charts, which are required during Kommander installation. Create the charts bundle with the Kommander CLI or downloaded along with the DKP CLI. Execute this command to create the charts bundle:

dkp create chart-bundle
CODE

DKP creates charts-bundle.tar.gz. Optionally, specify the output using the -o parameter:

dkp create chart-bundle -o [name of the output file]
CODE

DKP Internal Helm Repository

The DKP charts bundle is pushed to DKP’s internal Helm repository. To inspect the contents:

dkp get charts
CODE

Individual charts can be removed using:

dkp delete chart [chartName] [chartVersion]
CODE

It is possible to push new charts as well:

dkp push chart [chartTarball]
CODE

Or push a new bundle:

dkp push chart-bundle [chartsTarball]
CODE

Check the built-in help text for each command for more information.

This Docker image includes code from the MinIO Project (“MinIO”), which is © 2015-2021 MinIO, Inc. MinIO is made available subject to the terms and conditions of the GNU Affero General Public License 3.0. The complete source code for the versions of MinIO packaged with DKP/Kommander/Konvoy 2.3.0 are available at these URLs:
https://github.com/minio/minio/tree/RELEASE.2022-01-08T03-11-54Z
https://github.com/minio/minio/tree/RELEASE.2021-02-14T04-01-33Z