Upgrade Keptn

Keptn only supports upgrading from one release to the next; we recommend that you not skip releases since mitigation strategies for changes in each release are often baked into the code.

This page has the following information:

Upgrade the Keptn control plane

To upgrade the control plane:

  1. Back up your Keptn instance, following Keptn’s backup instructions

  2. Make sure you are connected to the Kubernetes cluster where Keptn is installed.

  3. Fetch your current Helm values into a file with the follwoing command:

    helm get values -n <your-keptn-namespace> <your-keptn-release-name> \
       > keptn-values.yaml
    

    For namespace keptn-test and release name keptn (the default release name), the command would look like this:

    helm get values -n keptn-test keptn
    
  4. Download the released Helm chart using the following command replacing <release> with the release number to which you are upgrading, such as 1.1.0:

    helm pull https://charts.keptn.sh/packages/keptn-<release>.tgz
    
  5. Unpack the tar file.

  6. Use a merge tool to merge the values.yaml file from the unpacked chart and your previously downloaded keptn-values.yaml together.

Upgrade the Execution plane

Before upgrading the Keptn execution plane, you should check the documentation for any services that you are using to ensure that the version you are using is compatible with the new Keptn control plane version you installed. You may find that a new version of the service is available and the documentation may include special upgrade instructions.

For most services, the upgrade procedure is similar to the procedure used to upgrade the Keptn control plane: download your existing values.yaml file for the service then merge it with the new values.yaml file and use that merged file to upgrade the service:

  1. Make sure you are connected to the Kubernetes cluster where Keptn is installed.

  2. Fetch your current Helm values with:

    helm get values -n <your-exec-plane-namespace>
       <your-exec-plane-service-release-name> > old-values.yaml`
    

    For example, for namespace exec-plane and service release name helm-service (the default release name), the command is:

    helm get values -n exec-plane helm-service
    
  3. Download the released Helm chart using:

    helm pull https://charts.keptn.sh/packages/<exec-plane-service>-<release>.tgz`
    

    For example, to download the Helm chart for helm-service, Release 0.18.1, the command is:

    helm pull https://charts.keptn.sh/packages/helm-service-0.18.1.tgz`
    
  4. Unpack the downloaded file.

  5. Use a merge tool to merge the values.yaml file from the unpacked chart and your previously downloaded old-values.yaml together.

  6. Use the merged values file and the helm command to do the upgrade to upgrade to the new version of your execution plane service. For the helm-service example, the command to upgrade to version 0.18.1 is:

    helm upgrade <your-exec-plane-service> -n exec-plane --version 0.18.1 \
      --values <your-adjusted-values-file>
    

Notes for upgrading multi-cluster instances

Multi-cluster setup gives details about setting up a Keptn installation with multiple execution planes that run on different clusters than the Keptn control plane. Some additional configurations are required in recent releases.

  • For Keptn releases 0.15.x and later, you may need to set the K8S_DEPLOYMENT_NAME environment variable on each execution plane to a unique name.
  • If your service uses cp-connector or go-sdk to subscribe to events, you may need to define the NATS_URL environment variable to identify the NATS cluster to use. See the distributor and NATS behavior on a multi-cluster instance pages for more information.

Upgrade notes by release

Upgrade from Keptn 0.19.x to Keptn 1.1.0-LTS

No special steps are required to upgrade from Keptn 0.19.x to Keptn 1.0.x-LTS.

Upgrade from Keptn 0.18.x to Keptn 0.19.x

No special steps are required to upgrade from Keptn 0.18.x to Keptn 0.19.x.

Upgrade from Keptn 0.17.x to Keptn 0.18.x

No special steps are required to upgrade from Keptn 0.17.x to Keptn 0.18.x.

Upgrade from Keptn 0.16.x to Keptn 0.17.x

With Keptn 0.17.x, the Keptn CLI commands for install, uninstall and upgrade were deprecated. We should instead use the helm upgrade command from the Helm CLI to upgrade.

The Keptn Helm chart has also been refactored heavily in Release 0.17.x, to prepare it for future features and structural changes. To upgrade, we recommend getting your old Helm values file, and then merging it together with the default Keptn Helm values to get any new default values that were introduced. You can then use your new values file to follow the Helm installation instructions.

To upgrade the Keptn control plane to Release 0.17.x, follow the steps in Upgrade the Keptn control plane.

You will notice that some Helm values have changed compared to your previous keptn-values.yaml file:

  • continuous-delivery -> continuousDelivery

  • control-plane: Since the control-plane and continuous-delivery charts were merged into one, all values previously under control-plane are now just directly in the values root without the control-plane key.

  • All values under control-plane.common were moved to the root level of the values. e.g. control-plane.common.strategy.type -> strategy.type

  • After adjusting your Helm values you are ready to upgrade to the new version of Keptn. use a command like the following to do the upgrade:

    helm upgrade keptn keptn/keptn -n keptn-test --version 0.17.0 --values <your-adjusted-values-file>
    
    Diff with old values on the left and updated values on the right

To upgrade the Keptn execution plane to Release 0.17.x, follow the instructions in Upgrade the Execution Plane.

You will notice that some Helm values have changed compared to your old-values.yaml file:

  • resources -> helm-service.resources/jmeter-service.resources
  • The distributor got its own set of resources in the values file. You can adjust them or leave them at the sensible defaults.

Upgrade from earlier releases

Release Notes Upgrade documentation
0.16.2, 0.16.1, 0.16.0 Upgrade from Keptn 0.15.x to 0.16.x
0.15.1, 0.15.0 Upgrade from Keptn 0.13.x to 0.15.x
0.14.3, 0.14.2,0.14.1 Upgrade from Keptn 0.13.x to 0.14.x
0.13.6, 0.13.5, 0.13.4, 0.13.3, 0.13.2, 0.13.1 0.13.0 Upgrade from Keptn 0.12.x to 0.13.x
0.12.7, 0.12.6, 0.12.4, 0.12.3, 0.12.2, 0.12.1 0.12.0 Upgrade from Keptn 0.11.x to 0.12.x
0.11.4, 0.11.3,0.11.2 Upgrade from Keptn 0.11.x to 0.11.4
0.10.0 Upgrade from Keptn 0.09.x to 0.10.0