-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
genSignedCert
causes helm-operator
to do no-op upgrades in a loop
#87
Comments
The key insight for the workaround outlined above was found here. |
Works around isovalent/olm-for-cilium#87 using wisdom from operator-framework/operator-sdk#1069 (comment) As it turns out, generating a random certificate in a tight compare-and-reconcile loop (that doesn't back off) is a bad idea, #WHOWOULDHAVETHUNK. - Seting `hubble.tls.auto.method = certmanager` results in an idempotent Helm chart, and therefore breaks the loop. - As stated in the [official documentation](https://docs.cilium.io/en/stable/installation/k8s-install-openshift-okd/) (⌘F for “You can set any custom Helm values”), we can do that out of the `CiliumConfig`'s `spec`; which also explains why the schema thereof (`oc explain CiliumConfig.spec`) is so loosely defined. - Of course, now we need to install cert manager; which is why this is a [stopgap] and not a [fix]. (The only damage is that there will be no Hubble until we install it.)
Works around isovalent/olm-for-cilium#87 using wisdom from operator-framework/operator-sdk#1069 (comment) As it turns out, generating a random certificate in a tight compare-and-reconcile loop (that doesn't back off) is a bad idea, #WHOWOULDHAVETHUNK. - Seting `hubble.tls.auto.method = certmanager` results in an idempotent Helm chart, and therefore breaks the loop. - As stated in the [official documentation](https://docs.cilium.io/en/stable/installation/k8s-install-openshift-okd/) (⌘F for “You can set any custom Helm values”), we can do that out of the `CiliumConfig`'s `spec`; which also explains why the schema thereof (`oc explain CiliumConfig.spec`) is so loosely defined. - Of course, now we need to install cert manager; which is why this is a [stopgap] and not a [fix]. (The only damage is that there will be no Hubble until we install it.)
Works around isovalent/olm-for-cilium#87 using wisdom from operator-framework/operator-sdk#1069 (comment) As it turns out, generating a random certificate in a tight compare-and-reconcile loop (that doesn't back off) is a bad idea, #WHOWOULDHAVETHUNK. - Seting `hubble.tls.auto.method = certmanager` results in an idempotent Helm chart, and therefore breaks the loop. - As stated in the [official documentation](https://docs.cilium.io/en/stable/installation/k8s-install-openshift-okd/) (⌘F for “You can set any custom Helm values”), we can do that out of the `CiliumConfig`'s `spec`; which also explains why the schema thereof (`oc explain CiliumConfig.spec`) is so loosely defined. - Of course, now we need to install cert manager; which is why this is a [stopgap] and not a [fix]. (The only damage is that there will be no Hubble until we install it.)
Works around isovalent/olm-for-cilium#87 using wisdom from operator-framework/operator-sdk#1069 (comment) As it turns out, generating a random certificate in a tight compare-and-reconcile loop (that doesn't back off) is a bad idea, #WHOWOULDHAVETHUNK. - Seting `hubble.tls.auto.method = certmanager` results in an idempotent Helm chart, and therefore breaks the loop. - As stated in the [official documentation](https://docs.cilium.io/en/stable/installation/k8s-install-openshift-okd/) (⌘F for “You can set any custom Helm values”), we can do that out of the `CiliumConfig`'s `spec`; which also explains why the schema thereof (`oc explain CiliumConfig.spec`) is so loosely defined. - Of course, now we need to install cert manager; which is why this is a [stopgap] and not a [fix]. (The only damage is that there will be no Hubble until we install it.)
Works around isovalent/olm-for-cilium#87 using wisdom from operator-framework/operator-sdk#1069 (comment) As it turns out, generating a random certificate in a tight compare-and-reconcile loop (that doesn't back off) is a bad idea, #WHOWOULDHAVETHUNK. - Seting `hubble.tls.auto.method = certmanager` results in an idempotent Helm chart, and therefore breaks the loop. - As stated in the [official documentation](https://docs.cilium.io/en/stable/installation/k8s-install-openshift-okd/) (⌘F for “You can set any custom Helm values”), we can do that out of the `CiliumConfig`'s `spec`; which also explains why the schema thereof (`oc explain CiliumConfig.spec`) is so loosely defined. - Of course, now we need to install cert manager; which is why this is a [stopgap] and not a [fix]. (The only damage is that there will be no Hubble until we install it.)
Works around isovalent/olm-for-cilium#87 using wisdom from operator-framework/operator-sdk#1069 (comment) As it turns out, generating a random certificate in a tight compare-and-reconcile loop (that doesn't back off) is a bad idea, #WHOWOULDHAVETHUNK. - Seting `hubble.tls.auto.method = certmanager` results in an idempotent Helm chart, and therefore breaks the loop. - As stated in the [official documentation](https://docs.cilium.io/en/stable/installation/k8s-install-openshift-okd/) (⌘F for “You can set any custom Helm values”), we can do that out of the `CiliumConfig`'s `spec`; which also explains why the schema thereof (`oc explain CiliumConfig.spec`) is so loosely defined. - Of course, now we need to install cert manager; which is why this is a [stopgap] and not a [fix]. (The only damage is that there will be no Hubble until we install it.)
I am facing the same issue on Openshift 4.14 and Cilium 1.15.1 with cilium-apiserver enabled and default TLS settings. Operator seems to generate new apiserver certificates with each Helm run, which puts it into endless reconciliation loop. I am at Helm iteration 1670 after couple hours + this is making OLM pod consume 1 CPU and generate massive amount of logs with debug enabled + it keeps changing generated secret with each run. |
What I attempted: install Cilium on OpenShift 4.13.32, according to the instructions
What I expected would happen: the
cilium-olm
operator would do its thing, and then go sit tight in the background.What I observed instead:
watch helm ls -A
shows theREVISION
of thecilium
Helm chart going up roughly once every 7 seconds.Diffing two subsequent versions of
oc -n cilium get secret -o yaml
shows that thetls.crt
andtls.key
entriessecret/hubble-server-certs
andsecret/hubble-relay-client-certs
are changed each time, as well as some sequence numbers and Helm'srelease
fields.Setting
hubble.auto.tls.method
tocertmanager
stops the upgrade loop.The text was updated successfully, but these errors were encountered: