Issue
-
Self-signed certificates injected to controllers using
ConfigMap
items are disregarded after upgrade to2.375.3.3
or later. -
Self-signed certificates injected to OpenShift controllers using sidecar-injector and a
Route
are disregarded after upgrade to2.375.3.3
or later. -
Customizations to the default managed controller provisioning YAML (additional containers, specs, …) are disregarded after upgrade to
2.375.3.3
or later. -
Service
andIngress
items defined at managed controller provisioning YAML are disregarded after upgrade to2.375.3.3
or later.
Environment
-
CloudBees CI (CloudBees Core) on modern cloud platforms - Managed controller 2.375.3.3 or higher
-
link:CloudBees Jenkins Enterprise - Managed controller 2.375.3.3 or higher
Issue
Customizations given at Managed Controller provisioning through the left YAML snippet under Advanced configuration are not merged into the effective provisioning YAML displayed on the right-hand side of the page.
The controller provisioning feature can submit several items to Kubernetes: a StatefulSet
, a Service
, an Ingress
, and/or a Route
(when using RedHat OpenShift). Starting in 2.375.3.3
, when the apiVersion
is not explicitly given to the custom resources given through the snippet, the items definitions are disregarded and, therefore, not reflected onto the effective provisioning YAML.
Context
As indicated in our release notes, in 2.375.3.3
, The Java library used to access Kubernetes, Fabric8 Kubernetes Client, has been upgraded from 5.x to 6.x.
This update has no impact for customers who do not use the YAML field under Advanced configuration on the controller configuration screen in the Operations center. For customers using the YAML field under Advanced configuration, this update means that indicating the apiVersion
on a Kubernetes resource being deserialized is now required.
To know if a CloudBees CI cluster is impacted by this change, the following script can be run in the Operations Center to detect invalid configurations.
Resolution
Provide the corresponding apiVersion
for each of the items customized through the YAML field under managed controller provisioning Advanced configuration.
The following example adds a custom label on each element that is managed by the controller provisioning functionality:
--- kind: StatefulSet apiVersion: apps/v1 metadata: labels: my-label: my-value --- kind: Service apiVersion: v1 metadata: labels: my-label: my-value --- kind: Ingress apiVersion: networking.k8s.io/v1 metadata: labels: my-label: my-value --- # Alternatively, for OpenShift routes kind: Route apiVersion: route.openshift.io/v1 metadata: labels: my-label: my-value
Tested product environment
-
CloudBees CI on modern cloud platforms - operations center version 2.375.3.5
-
CloudBees CI on modern cloud platforms - managed controller version 2.375.3.5