You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
| Set | Set |**CABPK** and **Machine** taints, on same key + effect use the value from the Machine defined taint |
219
+
| Set | Not set |**CABPK default** and **Machine** taints, on same key + effect use the value from the Machine defined taint|
220
+
| Set | empty / `[]`|**Machine** taints |
221
+
| Not set | Set |**CABPK** taints |
222
+
| Not set | Not set |**CABPK default** taint |
223
+
| Not set | empty / `[]`| no taints |
224
224
225
225
So the desired behavior of the new taints field does not change the behavior for taints configured via CABPK.
226
226
@@ -230,8 +230,6 @@ In future CABPK could consider deprecating the related fields and propose using
230
230
231
231
##### Type definition of a taint in Cluster API objects
232
232
233
-
**Note:** To reduce verbosity, this proposal does not include all kinds of validation markers.
234
-
235
233
The following defines a new struct which should be used to define taints at the corresponding API types.
236
234
It replicates the upstream `corev1.Taint` specification and extends it by a field called `propagation`, which will define the propagation mechanism to use for the taint.
237
235
Using a type definition allows to be extensible and add additional propagation mechanisms when necessary.
@@ -241,14 +239,12 @@ Using a type definition allows to be extensible and add additional propagation m
Proper validations on the new field has to ensure that no taint with a key of `node.cluster.x-k8s.io/uninitialized` or `node.cluster.x-k8s.io/outdated-revision` is getting added, because these taints are managed by Cluster API and providers.
285
+
Proper validations on the new field has to ensure that:
286
+
287
+
* the `key` and `value` fields are validated as done in the upstream node validation
* no taint with a key of `node.cluster.x-k8s.io/uninitialized` or `node.cluster.x-k8s.io/outdated-revision` is getting added, because these taints are managed by Cluster API and providers.
291
+
* no taint with a prefix of `node.kubernetes.io/` is getting added, because these taints are managed by Kubernetes.
292
+
290
293
If in the future we are introducing new taints that users should not be able to set, ratcheting may be used.
291
294
292
295
**Note:** Other taints normally set by kubeadm should be able to get set by Cluster API too and not be blocked on to allow more flexibility and use-cases.
293
296
294
297
##### Changes to the Machine, MachineSet, MachineDeployment and MachinePool resources via MachineSpec
295
298
296
-
**Note:** To reduce verbosity, this proposal does not include all kinds of required validation markers.
297
-
298
299
This proposes to add a field array to the `MachineSpec` struct.
299
300
This implicitly leads to adding the field to the following types:
300
301
@@ -343,12 +344,12 @@ The following table summarizes the new fields:
343
344
344
345
The propagation of the fields should follow the prior art and is summarized in the following table and picture:
| Set | Set |Merge **ClusterClass** and **Cluster** taints (like for labels and annotations), on same key + effect use the value from the Cluster defined taint|
349
-
| Set | Not set |**ClusterClass** taints |
350
-
| Not set | Set |**Cluster** taints |
351
-
| Not set | Not set | No taints from ClusterClass or Cluster |
0 commit comments