Skip to content

Commit cd9eef1

Browse files
committed
Tolerate the node.kubernetes.io/not-ready:NoSchedule by default.
We need to run the CCM to cold start a new cluster; without it, nodes won't be assigned providerIDs. However, we also can't schedule the CCM pod onto a new cluster whose nodes set the `node.kubernetes.io/not-ready:NoSchedule` taint. This is a circular dependency: nodes can't become ready until the CCM assigns them a providerID, but the CCM can't run until the node is un-tainted. This patch configures the CCM to tolerate the not-ready taint by default.
1 parent 97f4cda commit cd9eef1

2 files changed

Lines changed: 6 additions & 0 deletions

File tree

charts/oxide-cloud-controller-manager/templates/deployment.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,9 @@ spec:
2727
operator: "Exists"
2828
- key: "node-role.kubernetes.io/control-plane"
2929
effect: NoSchedule
30+
- key: node.kubernetes.io/not-ready
31+
operator: Exists
32+
effect: "NoSchedule"
3033
containers:
3134
- name: {{ include "oxide-ccm.name" . }}
3235
image: "{{ .Values.deployment.image.name }}:{{ .Values.deployment.image.tag | default .Chart.AppVersion }}"

manifests/oxide-cloud-controller-manager.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,9 @@ spec:
165165
operator: "Exists"
166166
- key: "node-role.kubernetes.io/control-plane"
167167
effect: NoSchedule
168+
- key: node.kubernetes.io/not-ready
169+
operator: Exists
170+
effect: "NoSchedule"
168171
containers:
169172
- name: oxide-cloud-controller-manager
170173
image: "ghcr.io/oxidecomputer/oxide-cloud-controller-manager:0.6.0"

0 commit comments

Comments
 (0)