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.