Upgrading from Open Source to Cloud/Enterprise
If you want to upgrade a cluster that currently runs the Admiralty's open source cluster agent to Admiralty Cloud/Enterprise, e.g., to register it, connect it more easily with other clusters, generate OIDC kubeconfigs for users, and/or orchestrate global DNS load balancing, follow this guide.
The Admiralty Cloud/Enterprise Helm chart includes the open source cluster agent chart (named multicluster-scheduler) as a subchart, making it possible to upgrade without having to uninstall and reinstall.
We're assuming that you installed Admiralty in the "admiralty" namespace and named the Helm release "admiralty" (you may have named it "multicluster-scheduler" if you've been with us for a long time 😉).
RELEASE_NAME=admiralty # or is it "multicluster-scheduler"?NAMESPACE=admiraltytip
Don't remember?
helm list --all-namespacesIf you used custom values, move them under the
multicluster-scheduler
key in a new values file, so thatkey: valuebecomes
multicluster-scheduler:key: valuetip
If you're unsure whether you used custom values, e.g., because you set them on the command line rather than from a file, or you lost the file, you can get them from Helm:
helm get values $RELEASE_NAME --namespace $NAMESPACE --output yaml > values.yamlInstall Admiralty Cloud/Enterprise custom resource definitions (CRDs), because Helm doesn't support adding CRDs as part of upgrades:
kubectl apply -f https://artifacts.admiralty.io/admiralty-v0.14.1.crds.yamlDownload the Admiralty CLI if not already installed.
Choose a name for your cluster, which will be useful, e.g., for referring to it from other clusters:
CLUSTER_NAME=change-meUpgrade the Helm release:
helm repo add admiralty https://charts.admiralty.iohelm repo updatehelm upgrade $RELEASE_NAME admiralty/admiralty \--namespace $NAMESPACE \--version 0.14.1 \-f values.yaml \--set accountName=$(admiralty get-account-name) \--set clusterName=$CLUSTER_NAMEOmit
-f values.yaml
if you didn't use custom values; and if you did, you may want to includeaccountName
andclusterName
in that file for future reference.Register the cluster:
admiralty register-clustercaution
admiralty register-cluster
gets the name of the cluster CA Secret—where the public key to register is stored, alongside the private one—from the Admiralty ConfigMap. If the release is installed in the "admiralty" namespace and named "admiralty", as recommended, the ConfigMap is also named "admiralty", and created in that namespace. That's whatadmiralty register-cluster
assumes by default. However, if the release name isn't "admiralty", the ConfigMap is named$RELEASE_NAME-admiralty
; the CLI needs to know.if [ $RELEASE_NAME = admiralty ]; thenCM_NAME=admiraltyelseCM_NAME=$RELEASE_NAME-admiraltyfiadmiralty register-cluster \--admiralty-config-map-name $CM_NAME \--admiralty-config-map-namespace $NAMESPACE