-
I have been using rook for a small, 3-4 node, cluster and I want to expand it by adding some nodes... However I would like to split the load between infrastructure, rook, kyverno, etc, on the original nodes, and the other applications, harbor, keycloak, on the new nodes... I would like to do this by tainting the original nodes so that rook-ceph is still happy, however when I applied the following it updated all csi pods, but not the mon or the osd: placement:
all:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: example.com/is-infra
operator: In
values:
- "true"
tolerations:
- effect: NoSchedule
key: node-role.kubernetes.io/infrastructure
operator: Exists
osd:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: example.com/is-infra
operator: In
values:
- "true"
tolerations:
- effect: NoSchedule
key: node-role.kubernetes.io/infrastructure
operator: Exists I did find this about the failover of the |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 2 replies
-
The tolerations look correct to me. I would expect all the daemons including mons and OSDs to be updated with the tolerations. Any errors showing in the rook operator log? You aren't adding the taints to the nodes until after confirming the tolerations were added, right? |
Beta Was this translation helpful? Give feedback.
Ok... so I have identified the problem and it is a bit of PEBKAC.... I had
placement
at the root of the values for the helm install, when it needs to be undercephClusterSpec
Here is the config that worked for me: