Issue
-
I want to disable the node affinity rule that is automatically added to CloudBees CI (CloudBees Core) kubernetes agents:
kind: "Pod"
spec:
affinity:
podAntiAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- weight: 1
podAffinityTerm:
topologyKey: kubernetes.io/hostname
labelSelector:
matchExpressions:
- key: com.cloudbees.cje.type
operator: In
values:
- master
- cjoc
Environment
-
CloudBees CI (CloudBees Core) on Modern cloud Platforms - Managed controller
-
CloudBees CI (CloudBees Core) on Modern cloud Platforms - Operations Center
-
CloudBees Kube Agent Management plugin 1.11.17 and later
Explanation
Since version 1.11.17 of the CloudBees Kube Agent Management plugin, a node affinity rule is automatically added to the agents spun up. This rule gives a scheduling preference to nodes where there are no controllers or Operations Center running.
Resolution
The default affinity rule can be disabled via a System Property. Depending on the version of the CloudBees Kube Agent Management plugin, the system property differs. See How to add Java arguments to Jenkins on CloudBees CI Modern ? to understand how to do this.
Version 1.1.32 and later
Add the system property com.cloudbees.jenkins.plugins.kube.Config.enableAffinity=false and restart the controller from Operations Center.
The rule can also be disabled live by executing the Groovy script com.cloudbees.jenkins.plugins.kube.Config.ENABLE_AFFINITY=false under . This does not survive a restart however.
|
Version prior to 1.1.32
Add the system property com.cloudbees.jenkins.plugins.kube.AffinityPodTemplateFilter.disabled=true and restart the controller from Operations Center.