| Adding a NodeSelector to slaves provisioned with the Kubernetes appears to apply an anti-affinity to that NodeSelector rather than actually using the NodeSelector. We share our Kubernetes Cluster with Jenkins and a number of other projects. For our Jenkins slaves, we only want certain fast nodes, so they're labeled with `jenkins-slave=true` and our slow nodes do not have that corresponding label. When configuring slaves in Jenkins, we applied the NodeSelector with the given label:  With the expectation it would only run on the fast nodes. But instead it only ran on the slow nodes without the label. It seems like rather than apply a NodeSelector, it's applying the opposite of the NodeSelector (anti-affinity). We can't do too much testing on our production instance of Jenkins, so for now we've just removed the NodeSelector and are letting Jenkins Slaves run everywhere, but this is very frustrating when a slave is scheduled on our slow nodes. |