Upgrade Cilium Enterprise

Starting situation

  • You have a Kubernetes cluster with Cilium Enterprise installed and want to perform a version upgrade.

Always check the release notes of the version to be installed for relevant changes.
While we didn’t notice any downtime during the upgrade, we recommend to expect a downtime of a few seconds.

Prerequisites

This guide assumes that you’re familiar with making changes to a Project Syn cluster and compiling the cluster catalog to deploy those changes.

Preparation

  1. Configure upgradeCompatibility to the currently installed minor version. This step is only necessary for major or minor updates, but not for patch updates.

    c-cluster-id.yml diff
       cilium:
         cilium_helm_values:
    +      upgradeCompatibility: "1.X"

    You can also use yq:

    yq eval -i '.parameters.cilium.cilium_helm_values.upgradeCompatibility = "1.X"' c-cluster-id.yml
  2. Compile the cluster catalog.

  3. Ensure the ArgoCD app is synced within the cluster.

    Either use the GUI or the CLI by looking at the .status.history field:

    kubectl -n syn get applications cilium -oyaml | yq '.status.history'

Upgrade Cilium Enterprise

  1. Configure the desired version

    c-cluster-id.yml diff
       cilium:
         olm:
    +      version: "1.X"
    +      patchlevel: "Y"

    You can also use yq:

    yq eval -i '.parameters.cilium.olm.version = "1.X"' c-cluster-id.yml
    yq eval -i '.parameters.cilium.olm.patchlevel = "Y"' c-cluster-id.yml
  2. Compile the cluster catalog.

  3. Ensure the ArgoCD app is synced within the cluster.

    Either use the GUI or the CLI by looking at the .status.history field:

    kubectl -n syn get applications cilium -oyaml | yq '.status.history'

Cleanup

  1. Remove upgradeCompatibility configuration from c-cluster-id.yml, compile the cluster catalog and ensure the ArgoCD app is synced within the cluster.