Upgrade Cilium OSS to Cilium Enterprise (OpenShift 4)
Starting situation
-
You have an OpenShift 4 cluster with Cilium OSS installed.
| While we didn’t notice any downtime during the upgrade, we recommend to expect a downtime of a few seconds. |
Prerequisites
-
kubectl -
jq -
Optionally
yqyq YAML processor (version 4 or higher) -
A local setup to compile a cluster catalog, see Running Commodore for details.
-
olm.sourceparameter set either in the global defaults or in the tenant repository.
This guide assumes that you’re familiar with making changes to a Project Syn cluster and compiling the cluster catalog to deploy those changes.
Upgrade to Cilium Enterprise
-
Switch the release to enterprise in your cluster config.
c-cluster-id.ymldiffcilium: + release: enterpriseYou can also use
yq:yq eval -i '.parameters.cilium.release = "enterprise"' c-cluster-id.yml -
Compile the cluster catalog.
-
Ensure the ArgoCD app is synced within the cluster.
Either use the GUI or the CLI by looking at the
.status.historyfield:kubectl -nsyn get applications cilium -oyaml | yq '.status.history' -
Fix ownership of unscoped Helm/OLM resources.
kubectl annotate \ clusterrole/cilium clusterrolebinding/cilium \ clusterrole/cilium-operator clusterrolebinding/cilium-operator \ meta.helm.sh/release-name=cilium-enterprise \ --overwrite -
Cleanup objects the RedHat OLM Operator leaves behind.
kubectl -n cilium get clusterserviceversion -ojson \ | jq -r '.items[] | select(.spec.displayName == "Cilium") | .metadata.name' \ | xargs kubectl -n cilium delete clusterserviceversion -
Ensure the Cilium OSS config file can be deleted.
kubectl -n cilium patch ciliumconfig cilium -p '{"metadata":{"finalizers":null}}' --type=merge