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
- 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.
Note: The rule can also be disabled live by executing the Groovy script com.cloudbees.jenkins.plugins.kube.Config.ENABLE_AFFINITY=false
under Manage Jenkins > Script Console. 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.
0 Comments