Upgrade Kommander
This section describes how to upgrade your Kommander Management cluster and all Platform Applications to their supported versions in networked, air-gapped, and on-prem environments. To prevent compatibility issues, you must first upgrade Kommander on your Management Cluster before upgrading to DKP.
It is important you upgrade Kommander BEFORE upgrading the Kubernetes version (or Konvoy version for Managed Konvoy clusters) in attached clusters, due to the previous versions’ incompatibility with 1.22.
Page Contents
Prerequisites
REQUIRED Before upgrading, create an on-demand backup of your current configuration with Velero.
Download and install the supported DKP CLI binary of this release on your computer.
Ensure you are on DKP version 2.2 or higher and Kubernetes version 1.22 or higher.
If you are on DKP 2.1 or older, you must upgrade to DKP 2.2 before upgrading to 2.3.
If you have attached clusters, ensure they are on Kubernetes versions 1.22 or higher.
Review the Platform Application version updates that are part of this upgrade.
For air-gapped environments with DKP Catalog Applications in a multi-cluster environment: Load the Docker images into your Docker registry
For air-gapped environments without DKP Catalog Applications: Load the Docker images into your Docker registry
For air-gapped environments only:
Download the Kommander application definitions:
wget "https://downloads.d2iq.com/dkp/v2.3.3/kommander-applications-v2.3.3.tar.gz"
Download the Kommander charts bundle:
wget "https://downloads.d2iq.com/dkp/v2.3.3/dkp-kommander-charts-bundle-v2.3.3.tar.gz" -O - | tar -xzvf -
If you have DKP Catalog Applications:
Download the DKP Catalog Application charts bundle:
CODEwget "https://downloads.d2iq.com/dkp/v2.3.3/dkp-catalog-applications-charts-bundle-v2.3.3.tar.gz" -O - | tar -xzvf -
Download the DKP Catalog Application Git tarball:
CODEwget "https://downloads.d2iq.com/dkp/v2.3.3/dkp-catalog-applications-v2.3.3.tar.gz"
Upgrade Kommander
Before running the following command, ensure that your dkp
configuration references the Kommander Management cluster, otherwise it attempts to run the upgrade on the bootstrap cluster. You can do this by setting the KUBECONFIG
environment variable to the appropriate kubeconfig file’s location, or by using the –kubeconfig=cluster_name.conf
flag.
If you have configured a custom domain, running the
upgrade command
could result in an inaccessibility of your services via your custom domain for a few minutes.The Fluentbit application, which is responsible for collecting admin level logs, is automatically disabled on upgrade to v2.3.3. To keep Fluentbit enabled on your clusters, you will need to pass in the new
--disable-appdeployment
flag set to""
. You must ensure there is sufficient storage for these logs if you keep it enabled. See Fluent Bit for more information.
Use the DKP CLI to upgrade Kommander and all the Platform Applications in the Management Cluster:
For air-gapped environments:
CODEdkp upgrade kommander --charts-bundle dkp-kommander-charts-bundle-v2.3.3.tar.gz --kommander-applications-repository kommander-applications-v2.3.3.tar.gz
For air-gapped environments with DKP Catalog Applications:
CODEdkp upgrade kommander --charts-bundle dkp-kommander-charts-bundle-v2.3.3.tar.gz --charts-bundle dkp-catalog-applications-charts-bundle-v2.3.3.tar.gz --kommander-applications-repository kommander-applications-v2.3.3.tar.gz
After the upgrade, if you have DKP Catalog Applications deployed, update the GitRepository for
dkp-catalog-applications
int the Kommander Installer Configuration.
For the following section, ensure you modify the most recentkommander.yaml
configuration file. It must be the file that reflects the current state of your environment. Reinstalling Kommander with an outdatedkommander.yaml
overwrites the list of platform applications that are currently running in your cluster.In the
kommander.yaml
, update the DKP Catalog Applications by setting the correct DKP version:CODEapiVersion: config.kommander.mesosphere.io/v1alpha1 kind: Installation ... # The list of enabled/disabled apps here should reflect the current state of the environment, including configuration overrides! ... catalog: repositories: - name: dkp-catalog-applications labels: kommander.d2iq.io/project-default-catalog-repository: "true" kommander.d2iq.io/workspace-default-catalog-repository: "true" kommander.d2iq.io/gitapps-gitrepository-type: "dkp" path: ./dkp-catalog-applications-v2.3.3.tar.gz # modify this version to match the DKP upgrade version
Refresh the
kommander.yaml
to apply the updated tarball:
Before running this command, ensure thekommander.yaml
is the configuration file you are currently using for your environment. Otherwise, your previous configuration will be lost.CODEdkp install kommander --installer-config kommander.yaml
For non-air-gapped environments:
CODEdkp upgrade kommander
After the upgrade, if you have DKP Catalog Applications deployed, update the GitRepository for
dkp-catalog-applications
.Update the GitRepository with the tag of your updated DKP version on the
kommander
workspace:CODEkubectl patch gitrepository -n kommander dkp-catalog-applications --type merge --patch '{"spec":{"ref":{"tag":"v2.3.3"}}}'
This command updates the catalog application repositories for all workspaces.
For any additional workspaces created outside the
kommander.yaml
configuration:
Set theWORKSPACE_NAMESPACE
environment variable to the namespace of the workspace:CODEexport WORKSPACE_NAMESPACE=<workspace namespace>
Update the GitRepository for the additional workspace:
CODEkubectl patch gitrepository -n ${WORKSPACE_NAMESPACE} dkp-catalog-applications --type merge --patch '{"spec":{"ref":{"tag":"v2.3.3"}}}'
For air-gapped deployments, an additional step is required to upgrade the Grafana Loki MinIO Tenant:
CODEkubectl patch statefulset grafana-loki-minio-ss-0 -n kommander --type='json' -p='[{"op": "replace", "path": "/spec/template/spec/containers/0/image", "value":"quay.io/minio/minio:RELEASE.2022-01-08T03-11-54Z"}]'
If the upgrade fails, run the following command to get more information on the upgrade process:
CODEdkp upgrade kommander -v 6
If you find any
HelmReleases
in a “broken” release state such as “exhausted” or “another rollback/release in progress”, you can trigger a reconciliation of theHelmRelease
using the following commands:CODEkubectl -n kommander patch helmrelease <HELMRELEASE_NAME> --type='json' -p='[{"op": "replace", "path": "/spec/suspend", "value": true}]' kubectl -n kommander patch helmrelease <HELMRELEASE_NAME> --type='json' -p='[{"op": "replace", "path": "/spec/suspend", "value": false}]'
For Enterprise customers (multi-cluster environment): Upgrade your additional Workspaces on a per-Workspace basis to upgrade the Platform Applications on other clusters than the Management Cluster.
For Essential customers (single-cluster environment): Proceed with the Konvoy Upgrade.
You can always go back to the DKP Upgrade overview, to review the next steps depending on your environment and license type.