Create an AMI using KIB for use in an air-gapped cluster

Using KIB, you can build an AMI without requiring access to the internet by providing an additional --override flag. Depending on which version of DKP you are running, steps and flags will be different.

  1. Create the directories where you will place the air-gapped bundles:

    mkdir artifacts
    mkdir artifacts/images
    CODE
  2. Define an environment variable for the Kubernetes version that corresponds with DKP release you are installing. You can find the correct Kubernetes version by checking the release notes for the release you are installing.

    export VERSION=1.23.12
    CODE
  3. Set an environment variable for the AMI’s OS you are will be using. The OS packages bundles will contain the RPMs for containerd, Kubernetes and all of their dependencies required to install these packages without access to any external RPM repositories. The available options are:

    • centos_7_x86_64

    • centos_7_x86_64_fips

    • redhat_7_x86_64

    • redhat_7_x86_64_fips

    • redhat_8_x86_64

    • redhat_8_x86_64_fips

    export BUNDLE_OS=centos_7_x86_64
    CODE
  4. Download the OS packages bundle:

    curl --output artifacts/"$VERSION"_"$BUNDLE_OS".tar.gz -O https://downloads.d2iq.com/dkp/airgapped/os-packages/"$VERSION"_"$BUNDLE_OS".tar.gz
    CODE
  5. Download the Kubernetes images bundle. This bundle includes the necessary images for kubeadm to bootstrap a Kubernetes Node.

    The available options for each Kubernetes version are:

    • <version>_images.tar.gz

    • <version>_images_fips.tar.gz

    curl --output artifacts/images/"$VERSION"_images.tar.gz -O https://downloads.d2iq.com/dkp/airgapped/kubernetes-images/"$VERSION"_images.tar.gz
    CODE
  6. Download the PIP packages. This bundle includes a few packages required by DKP to bootstrap machines.

    curl --output artifacts/pip-packages.tar.gz -O https://downloads.d2iq.com/dkp/airgapped/pip-packages/pip-packages.tar.gz
    CODE

  7. Set a variable that indicates which OS-specific containerd bundle to download. The available options are:

    • centos_7.9_x86_64

    • rhel-7.9-x86_64

    • rhel-8.2-x86_64

    • rhel-8.4-x86_64

    • ubuntu-20.04-x86_64

    • ubuntu-18.04-x86_64

    • ol-7.9-x86_64

    • sles-15.3-x86_64

    export CONTAINERD_OS=centos-7.9-x86_64
    CODE
  8. Download the containerd bundle:

    curl --output artifacts/containerd-1.4.13-d2iq.1-"$CONTAINERD_OS".tar.gz --location https://packages.d2iq.com/dkp/containerd/containerd-1.4.13-d2iq.1-"$CONTAINERD_OS".tar.gz
    CODE
  9. Follow the instructions to build an AMI in the setting an additional --overrides overrides/offline.yaml flag.

Then, you can seed your docker registry.

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.2 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