Using KIB with Pre-provisioned Environments
In Pre-provisioned environments, KIB runs automatically inside the bootstrap cluster
, against the list of nodes that you define. Whereas with other providers, you run KIB outside the cluster manually to build your images.
For Pre-provisioned, you define a set of nodes that already exist. During the cluster creation process, KIB is built into DKP and automatically runs the machine configuration process (which KIB uses to build images for other providers) against the set of nodes that you defined. This results in your pre-existing or pre-provisioned nodes being configured properly. The remainder of the cluster provisioning happens automatically after that.
In a Pre-provisioned environment, you have existing machines and DKP consumes them to form a cluster.
When you have another provisioner (for example, cloud providers such AWS, vSphere and others), you build images with KIB and DKP consumes the images to provision machines and form a cluster.
Prior to DKP 2.6, you had to specify the HTTP proxy in the KIB override setup and then again in the dkp create cluster
command. After DKP 2.6, an HTTP proxy gets created from the Konvoy flags for the control plane proxy and workers proxy values. The flags in the DKP command for Pre-provisioned clusters populate a Secret automatically in the bootstrap cluster. That Secret has a known name that the Pre-provisioned controller finds and applies when it runs the KIB provisioning job.
For a Pre-provisioned air-gapped environment, you will have to build the OS packages after fetching the packages from the distro repositories.
In previous DKP releases, the distro package bundles were included in the downloaded air-gapped bundle. Currently, that air-gapped bundle contains the following artifacts with the exception of the distro packages:
DKP Kubernetes packages
Python packages (provided by upstream)
Containerd tarball
Download
dkp-air-gapped-bundle_v2.8.0_linux_amd64.tar.gz
, and extract the tarball to a localOdirectory:
CODEtar -xzvf dkp-air-gapped-bundle_v2.8.0_linux_amd64.tar.gz && cd dkp-v2.8.0/kib
You will need to fetch the distro packages as well as other artifacts. By fetching the distro packages from distro repositories, you get the latest security fixes available at machine image build time.
In your download location, there is a bundles directory with all the steps to create an OS package bundle for a particular OS. To create it, run the new DKP command
create-package-bundle
. This builds an OS bundle using the Kubernetes version defined inansible/group_vars/all/defaults.yaml
. Example command:CODE./konvoy-image create-package-bundle --os redhat-8.4 --output-directory=artifacts
Other supported air-gapped Operating Systems (OSs) can be specified in place of
--os redhat-8.4
using the flag and corresonding OS name:centos-7.9
redhat-7.9
redhat-8.6
redhat-8.8
rocky-9.1
ubuntu-20.04
NOTE: For FIPS, pass the flag:
--fips
NOTE: For RHEL OS, you need to export your RedHat subscription manager credentials. Which ones to export depend on the type of RH subscription you have. For example, you would do one of the following:CODEexport RHSM_ACTIVATION_KEY="-ci" export RHSM_ORG_ID="1232131"
OR
CODEexport RHSM_USER="" export RHSM_PASS=""