func SetMasterTaintTolerations(meta *metav1.ObjectMeta) { tolerationsAnnotation, _ := json.Marshal([]v1.Toleration{{Key: "dedicated", Value: "master", Effect: "NoSchedule"}}) if meta.Annotations == nil { meta.Annotations = map[string]string{} } meta.Annotations[v1.TolerationsAnnotationKey] = string(tolerationsAnnotation) }
// SetNodeAffinity is a basic helper to set meta.Annotations[v1.AffinityAnnotationKey] for one or more v1.NodeSelectorRequirement(s) func SetNodeAffinity(meta *metav1.ObjectMeta, expr ...v1.NodeSelectorRequirement) { nodeAffinity := &v1.NodeAffinity{ RequiredDuringSchedulingIgnoredDuringExecution: &v1.NodeSelector{ NodeSelectorTerms: []v1.NodeSelectorTerm{{MatchExpressions: expr}}, }, } affinityAnnotation, _ := json.Marshal(v1.Affinity{NodeAffinity: nodeAffinity}) if meta.Annotations == nil { meta.Annotations = map[string]string{} } meta.Annotations[v1.AffinityAnnotationKey] = string(affinityAnnotation) }