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=admiralty
Don't remember?helm list --all-namespaces
If you used custom values, move them under the
multicluster-schedulerkey in a new values file, so thatkey: value
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.yaml
Install 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.12.0.crds.yaml
Download 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-me
Upgrade the Helm release:helm repo add admiralty https://charts.admiralty.iohelm repo updatehelm upgrade $RELEASE_NAME admiralty/admiralty \--namespace $NAMESPACE \--version 0.13.0 \-f values.yaml \--set accountName=$(admiralty get-account-name) \--set clusterName=$CLUSTER_NAME
-f values.yamlif you didn't use custom values; and if you did, you may want to include
clusterNamein that file for future reference.
Register the cluster:admiralty register-cluster
admiralty register-clustergets 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 what
admiralty register-clusterassumes 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