Upgrade Kf outside Google Cloud

This document describes how to upgrade an existing Kf installation and its dependencies.

As part of the upgrade procedure, ensure that your Kf installation uses the latest version of the Kf operator:

  • Confirm your current Kf version can upgrade to Kf v2.9.0.
  • Upgrade to Kf v2.9.0.
  • Upgrade dependencies (if needed).

Before you begin

You will need:

  • An existing cluster with Kf installed.
  • Access to a machine with gcloud, kf, and kubectl installed.

Prepare for the upgrade

Connect to your target cluster

gcloud container hub memberships get-credentials CLUSTER_NAME \
 --zone CLUSTER_ZONE \
 --project CLUSTER_PROJECT_ID

Confirm that your current Kf CLI and server versions match

Run kf debug and validate the Kf CLI and Kf server versions match.

  • The CLI version is listed under Kf Client.
  • The Kf server version is listed under kf["app.kubernetes.io/version"].
$ kf debug
...
Version:
  Kf Client:                        v2.7.3
  Server version:                   v1.21.6-gke.1500
  kf["app.kubernetes.io/version"]:  v2.7.3
...

If the Kf client and Kf server values do not match, but the server version is v2.7.x, install the Kf v2.9.0 CLI before you continue.

If the Kf server value is older than v2.7.x, you must first incrementally upgrade to Kf v2.7.x to continue.

Confirm that Kf is healthy before upgrading

Run kf doctor to check the state of your cluster. Ensure all tests pass before you continue.

$ kf doctor
...
=== RUN doctor/user
=== RUN doctor/user/ContainerRegistry
--- PASS: doctor/user
   --- PASS: doctor/user/ContainerRegistry
...

If you see any FAIL or Error: environment failed checks messages, follow the guidance in the kf doctor output, or view the troubleshooting guide to resolve the issue and retry the command until it is successful.

Upgrade the operator

The Kf operator performs upgrades for you.

  1. Apply the operator yaml:

    kubectl apply -f "https://storage.googleapis.com/kf-releases/v2.9.0/operator.yaml"

Upgrade Kf dependencies

  1. Upgrade Tekton:

    kubectl apply -f "https://storage.googleapis.com/tekton-releases/pipeline/previous/v0.32.1/release.yaml"

  2. Upgrade to Cloud Service Mesh v1.12:

    1. Follow the steps in the Cloud Service Mesh upgrade guide.

Upgrade to the Kf v2.9.0 CLI

  1. Install the CLI:

    Linux

    This command installs the Kf CLI for all users on the system. Follow the instructions in the Cloud Shell tab to install it just for yourself.

    gcloud storage cp gs://kf-releases/v2.9.0/kf-linux /tmp/kf
    chmod a+x /tmp/kf
    sudo mv /tmp/kf /usr/local/bin/kf

    Mac

    This command installs kf for all users on the system.

    gcloud storage cp gs://kf-releases/v2.9.0/kf-darwin /tmp/kf
    chmod a+x /tmp/kf
    sudo mv /tmp/kf /usr/local/bin/kf

    Cloud Shell

    This command installs kf on your Cloud Shell instance if you use bash, the instructions may need to be modified for other shells.

    mkdir -p ~/bin
    gcloud storage cp gs://kf-releases/v2.9.0/kf-linux ~/bin/kf
    chmod a+x ~/bin/kf
    echo "export PATH=$HOME/bin:$PATH" >> ~/.bashrc
    source ~/.bashrc

    Windows

    This downloads kf to current directory. Add it to the path if you want to call if from anywhere other than the current directory.

    gcloud storage cp gs://kf-releases/v2.9.0/kf-windows.exe kf.exe
  2. Validate the Kf CLI and Kf server versions match:

    • The CLI version is listed under Kf Client.
    • The Kf server version is listed under kf["app.kubernetes.io/version"].
    $ kf debug
    ...
    Version:
      Kf Client:                        v2.9.0
      Server version:                   v1.21.6-gke.1500
      kf["app.kubernetes.io/version"]:  v2.9.0
    ...
    

Verify that Kf upgraded successfully

  1. Run doctor to ensure the newly installed version is healthy:

    kf doctor --retries=20

    The command runs cluster checks several times. It's normal for a few of the attempts to fail while the new controllers are starting.

    If the command fails with the message Error: environment failed checks, follow the guidance in the doctor output to resolve the issue and retry the command until it is successful.

If the verification steps pass, your cluster has successfully been upgraded! If you have any issues, please review the support page for guidance.