For airgapped installs, both the old and new clusters must have the same versions of the KOTS and registry add-ons.
Non-Requirements
Old and new clusters do not need to have the same number of nodes.
Old and new clusters do not need to have the same HA status.
Old and new clusters do not need the same versions of add-ons except as noted above.
Old and new clusters do not need to be on the same operating system.
Old and new clusters do not need to use the same proxy settings. The proxy settings from the new cluster will be applied to KOTS when it is restored. Any application pods that use proxy template functions will need to be redeployed after restore.
Procedure
Use KOTS Snapshots to take a full snapshot on the old cluster with an external object store provider, such as S3.
On the new cluster, use the KOTS CLI to configure Velero to use the same snapshot destination as the old cluster.
Wait until the velero backup get command on the new cluster shows the backup taken on the old cluster.
Run kubectl kots restore --from-backup instance-<name> on the new cluster.
Example Old and New Specs
In the new spec, the Kubernetes version has been upgraded to 1.21, Longhorn has been replaced with OpenEBS, Weave has been replaced with Flannel, and docker has been replaced with containerd.