When you create a new controller, you encounter the error:
Error Failure executing: POST at: .../apis/networking.k8s.io/v1/namespaces/ci/ingresses. Message: Ingress.extensions "controller" is invalid: annotations.kubernetes.io/ingress.class: Invalid value: "external": can not be set when the class field is also set.
- CloudBees CI (CloudBees Core) on modern cloud platforms - Managed Master
- CloudBees CI (CloudBees Core) on modern cloud platforms - Operations Center
- Version 2.319.2.5 or later
- Ingress nginx installed seperately from CloudBees CI helm chart
If you installed nginx yourself, you will need to upgrade the Ingress Nginx Controller deployment to 1.x so that it supports Ingress v1 and adds an
If you installed nginx using the CloudBees CI helm chart (via helm value
ingress-nginx.Enabled: true), you wouldn’t have encountered this issue, since ingress-nginx v1.1.0 (or newer) would have been deployed via https://github.com/kubernetes/ingress-nginx/tree/main/charts/ingress-nginx.
There is no workaround available, because if you don’t upgrade Ingress Nginx V1 or later, there is no IngressClass and therefore CloudBees CI controller Ingresses will not be considered by the Ingress Controller. Additionally, annotations cannot be added because the Master Provisioning Kubernetes uses Ingress V1 to create the Ingress object and it is now forbidden under V1 to have both an
ingress.class annotation at the same time as
CloudBees CI on Modern Cloud Platforms version 2.319.2.7