Skip to main content
Version: 1.31.0

Air gapped installation

Since version 1.29.1/1.28.1 KFD supports "air gapped" installations, meaning that you can install KFD on machines that are not allowed to reach the Internet for packages.

Kubernetes phase

note

This section only applies to the OnPremises provider.

System packages

During the Kubernetes phase, the installer needs to download a series of packages from both direct URLs and package managers to configure and install Kubernetes.

You can specify all of them inside the furyctl.yaml file (note the comments to have a guideline):

spec:
kubernetes:
advanced:
airGap:
containerdDownloadUrl: **url-to-containerd** # default: https://github.com/containerd/containerd/releases/download/{{ containerd_version }}/containerd-1.7.23-linux-{{ host_architecture }}.tar.gz
runcDownloadUrl: **url-to-runc** # default: https://github.com/opencontainers/runc/releases/download/{{ runc_version }}/runc.{{ host_architecture }}
runcChecksum: sha256: **runc-checksum** # default: sha256:https://github.com/opencontainers/runc/releases/download/{{ runc_version }}/runc.sha256sum
etcdDownloadUrl: **url-to-etcd** # default: https://storage.googleapis.com/etcd -- SEE NOTE
dependenciesOverride:
apt: # use this if you're installing KFD in Debian and derivatives
name: k8s-1.30 # the name of the repository, free text
repo: **apt-repo-string** # default: deb https://pkgs.k8s.io/core:/stable:/v1.30/deb/ /
gpg_key: **url-to-gpg-key** # default: https://pkgs.k8s.io/core:/stable:/v1.30/deb/Release.key
gpg_key_id: **gpg-key-id** # Default: DE15B14486CD377B9E876E1A234654DA9A296436
yum: # use this if you're installing KFD in RHEL and derivatives
name: k8s-1.30
repo: **yum-repo-url** # default: https://pkgs.k8s.io/core:/stable:/v1.30/rpm/
gpg_key: **url-to-gpg-key** # default: https://pkgs.k8s.io/core:/stable:/v1.30/rpm/repodata/repomd.xml.key
gpg_key_check: true
repo_gpg_check: true

See the following table to find out how default versions are computed:

ToolLink
containerdhttps://containerd.io/releases/#kubernetes-support
runchttps://github.com/containerd/containerd/blob/main/docs/RUNC.md
etcdhttps://kubernetes.io/docs/tasks/administer-cluster/configure-upgrade-etcd/#before-you-begin
warning

The etcDownloadUrl parameter should only contain the base path where the packages are available. furyctl will compute that value inside the following template:

{{ etcd_download_url }}/{{ etcd_version }}/etcd-{{ etcd_version }}-linux-{{ host_architecture }}.tar.gz

Make sure that the ETCD archive is available in that folder.

Container images

furyctl will need to download some container images when installing Kubernetes. You can specify a custom container images registry, which should be configured as a mirror of registry.sighup.io.

Inside the furyctl.yaml file, specify the following parameter to use a custom registry for the Kubernetes installation:

spec:
kubernetes:
advanced:
registry: myregistry.mydomain.ext

Distribution phase

During the Distribution phase furyctl needs to download the Modules packages. You can specify a custom container images registry, which should be configured as a mirror of registry.sighup.io.

tip

If you are applying this guide to an OnPremises cluster, you can reuse the same registry as the Kubernetes phase.

Inside the furyctl.yaml file, specify the following parameter to use a custom registry:

spec:
distribution:
common:
registry: myregistry.mydomain.ext