127 lines
2.8 KiB
Go
127 lines
2.8 KiB
Go
package settings
|
|
|
|
const (
|
|
// ClusterAgentAffinity used to be hardcoded in the agent deployment template but is now defined here as the
|
|
// single source of truth.
|
|
ClusterAgentAffinity = `{
|
|
"nodeAffinity": {
|
|
"requiredDuringSchedulingIgnoredDuringExecution": {
|
|
"nodeSelectorTerms": [
|
|
{
|
|
"matchExpressions": [
|
|
{
|
|
"key": "beta.kubernetes.io/os",
|
|
"operator": "NotIn",
|
|
"values": [
|
|
"windows"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"preferredDuringSchedulingIgnoredDuringExecution": [
|
|
{
|
|
"weight": 100,
|
|
"preference": {
|
|
"matchExpressions": [
|
|
{
|
|
"key": "node-role.kubernetes.io/controlplane",
|
|
"operator": "In",
|
|
"values": [
|
|
"true"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"weight": 100,
|
|
"preference": {
|
|
"matchExpressions": [
|
|
{
|
|
"key": "node-role.kubernetes.io/control-plane",
|
|
"operator": "In",
|
|
"values": [
|
|
"true"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"weight": 100,
|
|
"preference": {
|
|
"matchExpressions": [
|
|
{
|
|
"key": "node-role.kubernetes.io/master",
|
|
"operator": "In",
|
|
"values": [
|
|
"true"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"weight": 1,
|
|
"preference": {
|
|
"matchExpressions": [
|
|
{
|
|
"key": "cattle.io/cluster-agent",
|
|
"operator": "In",
|
|
"values": [
|
|
"true"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"podAntiAffinity": {
|
|
"preferredDuringSchedulingIgnoredDuringExecution": [
|
|
{
|
|
"weight": 100,
|
|
"podAffinityTerm": {
|
|
"labelSelector": {
|
|
"matchExpressions": [
|
|
{
|
|
"key": "app",
|
|
"operator": "In",
|
|
"values": [
|
|
"cattle-cluster-agent"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"topologyKey": "kubernetes.io/hostname"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}`
|
|
// FleetAgentAffinity is hardcoded in the rancher/fleet repo in the agent manifest
|
|
// https://github.com/rancher/fleet/blob/90e33140906ba5d4931b4e1dee588854cbb300b1/pkg/agent/manifest.go#L178-L195
|
|
FleetAgentAffinity = `{
|
|
"nodeAffinity": {
|
|
"preferredDuringSchedulingIgnoredDuringExecution": [
|
|
{
|
|
"weight": 1,
|
|
"preference": {
|
|
"matchExpressions": [
|
|
{
|
|
"key": "fleet.cattle.io/agent",
|
|
"operator": "In",
|
|
"values": [
|
|
"true"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}`
|
|
)
|