This article refers to upgrading the Admin Console on an embedded cluster.
When running the Admin Console on an existing cluster, refer to the Updating the Admin Console documentation.
To update the Admin Console when deployed to an embedded cluster, re-run the installation script on the first primary node where the install was initialized.
All flags passed to the script for the initial install must be passed again.
curl -sSL https://kurl.sh/supergoodtool | sudo bash
To update Admin Console in an airgapped environment, download the new kURL airgap bundle, untar it, and run the install.sh script.
curl -SL -o supergoodtool.tar.gz https://kurl.sh/bundle/supergoodtool.tar.gz
tar xzvf supergoodtool.tar.gz
cat install.sh | sudo bash -s airgap
To update the application in an airgapped environment, download the new application airgap bundle and run the following command:
kubectl kots upstream upgrade <app slug> --airgap-bundle new-app-release.airgap -n default
If the application vendor has updated the version of Kubernetes in the installer since the last time the script was run, it will begin an upgrade of Kubernetes.
The script will first print a prompt to continue with an upgrade of the local primary node.
Drain local node and apply upgrade?
If confirmed, the local primary node will be drained and the upgrade to the control plane will be applied.
Then the script will upgrade any remote nodes one at a time, starting with all primaries and then continuing to all secondary nodes.
For each remote node detected, it will drain the node and wait for the drain to complete.
Then it will print a command that must be run on that node to upgrade the control plane.
curl -sSL https://kurl.sh/supergoodtool/upgrade.sh | sudo bash -s hostname-check=master-node-2 kubernetes-version=v1.15.3
The script will poll the status of the remote node until it detects the upgrade has completed.
Then it will uncordon that node and proceed to drain the next node.
The script will ensure that at most one node is cordoned at a time.
The Kubernetes scheduler will automatically reschedule Pods to other nodes during maintenance.
Any Deployments or StatefulSets with a single replica will experience downtime while being rescheduled.
If the application vendor has updated any add-ons in the installer since the last time the script was run, the upgrade will proceed automatically after any required Kubernetes upgrade.