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