IL-0090 UK Ministry of Justice · 2021-06-09kubernetes
The ModSec ingress controller registers a validating admission webhook, which the Kubernetes API server calls before it accepts any Ingress create or change. After the module was upgraded to v3.33.0, the API server called the webhook at the service name modsec01-nx-modsec-admission, but the TLS certificate the webhook served was valid only for modsec01-nx-controller-admission. The API server therefore could not call the webhook, and every Ingress create or change was rejected, including those in all user application deployments.
The team rolled the ModSec ingress controller module back to v0.0.7. The incident was repaired at 13:46, 31 minutes after the first report, and resolved at 13:58. The review asks why the test cluster did not show the problem, and notes that neither the old nor the new ModSec module version worked on the cluster named live.
At 13:15 on 9 June 2021 a user reported in the #ask-cloud-platform channel that deploying a UAT application failed on its Ingress resource.
The error was: kind Ingress: Internal error occurred: failed calling webhook "validate.nginx.ingress.kubernetes.io": Post https://modsec01-nx-modsec-admission.ingress-controllers.svc:443/networking/v1beta1/ingresses?timeout=10s: x509: certificate is valid for modsec01-nx-controller-admission, modsec01-nx-controller-admission.ingress-controllers.svc, not modsec01-nx-modsec-admission.ingress-controllers.svc
Every Ingress API call was blocked. No new Ingress could be created and no change to an existing Ingress could be deployed, which stopped all user application deployments. The failures started right after an upgrade of the ModSec ingress controller module that had appeared to deploy successfully.
Symptom ? Deploys failing
Root cause ? Breaking change in an upgrade
A user reported the deployment error in the #ask-cloud-platform Slack channel at 13:15.
–
same root cause · shared Ingress controller
same root cause · shared Ingress controller
same root cause · shared Ingress controller
same root cause · shared Ingress controller
same root cause · shared Admission webhook
same root cause · shared Admission webhook