From c88a5d613818ab59433cc2c686e5543139959707 Mon Sep 17 00:00:00 2001 From: "R.Sicart" Date: Wed, 12 Mar 2025 11:44:42 +0100 Subject: [PATCH] feat: allow to setup CoreDNS pod annotations --- k8s/crds/kops.k8s.io_clusters.yaml | 7 +++++++ pkg/apis/kops/cluster.go | 3 +++ pkg/apis/kops/v1alpha2/cluster.go | 3 +++ pkg/apis/kops/v1alpha2/zz_generated.conversion.go | 2 ++ pkg/apis/kops/v1alpha2/zz_generated.deepcopy.go | 7 +++++++ pkg/apis/kops/v1alpha3/cluster.go | 3 +++ pkg/apis/kops/v1alpha3/zz_generated.conversion.go | 2 ++ pkg/apis/kops/v1alpha3/zz_generated.deepcopy.go | 7 +++++++ pkg/apis/kops/zz_generated.deepcopy.go | 7 +++++++ .../addons/coredns.addons.k8s.io/k8s-1.12.yaml.template | 6 ++++++ 10 files changed, 47 insertions(+) diff --git a/k8s/crds/kops.k8s.io_clusters.yaml b/k8s/crds/kops.k8s.io_clusters.yaml index 4f478bf8dc8b7..8842d6bc833a9 100644 --- a/k8s/crds/kops.k8s.io_clusters.yaml +++ b/k8s/crds/kops.k8s.io_clusters.yaml @@ -3684,6 +3684,13 @@ spec: Default: none type: object type: object + podAnnotations: + additionalProperties: + type: string + description: |- + PodAnnotations makes possible to add additional annotations to CoreDNS Pods. + Default: none + type: object provider: description: Provider indicates whether CoreDNS or kube-dns will be the default service discovery. diff --git a/pkg/apis/kops/cluster.go b/pkg/apis/kops/cluster.go index 74df9233890d5..ed19e9e92394f 100644 --- a/pkg/apis/kops/cluster.go +++ b/pkg/apis/kops/cluster.go @@ -599,6 +599,9 @@ type KubeDNSConfig struct { MemoryLimit *resource.Quantity `json:"memoryLimit,omitempty"` // NodeLocalDNS specifies the configuration for the node-local-dns addon NodeLocalDNS *NodeLocalDNSConfig `json:"nodeLocalDNS,omitempty"` + // PodAnnotations makes possible to add additional annotations to CoreDNS Pods. + // Default: none + PodAnnotations map[string]string `json:"podAnnotations,omitempty"` } // NodeLocalDNSConfig are options of the node-local-dns diff --git a/pkg/apis/kops/v1alpha2/cluster.go b/pkg/apis/kops/v1alpha2/cluster.go index 4e37a94bda325..9730becbdde88 100644 --- a/pkg/apis/kops/v1alpha2/cluster.go +++ b/pkg/apis/kops/v1alpha2/cluster.go @@ -578,6 +578,9 @@ type KubeDNSConfig struct { MemoryLimit *resource.Quantity `json:"memoryLimit,omitempty"` // NodeLocalDNS specifies the configuration for the node-local-dns addon NodeLocalDNS *NodeLocalDNSConfig `json:"nodeLocalDNS,omitempty"` + // PodAnnotations makes possible to add additional annotations to CoreDNS Pods. + // Default: none + PodAnnotations map[string]string `json:"podAnnotations,omitempty"` } // NodeLocalDNSConfig are options of the node-local-dns diff --git a/pkg/apis/kops/v1alpha2/zz_generated.conversion.go b/pkg/apis/kops/v1alpha2/zz_generated.conversion.go index 6913427497081..5692aa4c583bb 100644 --- a/pkg/apis/kops/v1alpha2/zz_generated.conversion.go +++ b/pkg/apis/kops/v1alpha2/zz_generated.conversion.go @@ -5382,6 +5382,7 @@ func autoConvert_v1alpha2_KubeDNSConfig_To_kops_KubeDNSConfig(in *KubeDNSConfig, } else { out.NodeLocalDNS = nil } + out.PodAnnotations = in.PodAnnotations return nil } @@ -5415,6 +5416,7 @@ func autoConvert_kops_KubeDNSConfig_To_v1alpha2_KubeDNSConfig(in *kops.KubeDNSCo } else { out.NodeLocalDNS = nil } + out.PodAnnotations = in.PodAnnotations return nil } diff --git a/pkg/apis/kops/v1alpha2/zz_generated.deepcopy.go b/pkg/apis/kops/v1alpha2/zz_generated.deepcopy.go index db9773eec5318..5d344ab82206c 100644 --- a/pkg/apis/kops/v1alpha2/zz_generated.deepcopy.go +++ b/pkg/apis/kops/v1alpha2/zz_generated.deepcopy.go @@ -3845,6 +3845,13 @@ func (in *KubeDNSConfig) DeepCopyInto(out *KubeDNSConfig) { *out = new(NodeLocalDNSConfig) (*in).DeepCopyInto(*out) } + if in.PodAnnotations != nil { + in, out := &in.PodAnnotations, &out.PodAnnotations + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } return } diff --git a/pkg/apis/kops/v1alpha3/cluster.go b/pkg/apis/kops/v1alpha3/cluster.go index 790c2f333bfc5..4d0259da22f94 100644 --- a/pkg/apis/kops/v1alpha3/cluster.go +++ b/pkg/apis/kops/v1alpha3/cluster.go @@ -564,6 +564,9 @@ type KubeDNSConfig struct { MemoryLimit *resource.Quantity `json:"memoryLimit,omitempty"` // NodeLocalDNS specifies the configuration for the node-local-dns addon NodeLocalDNS *NodeLocalDNSConfig `json:"nodeLocalDNS,omitempty"` + // PodAnnotations makes possible to add additional annotations to CoreDNS Pods. + // Default: none + PodAnnotations map[string]string `json:"podAnnotations,omitempty"` } // NodeLocalDNSConfig are options of the node-local-dns diff --git a/pkg/apis/kops/v1alpha3/zz_generated.conversion.go b/pkg/apis/kops/v1alpha3/zz_generated.conversion.go index 5706825335e42..c058a36b704a8 100644 --- a/pkg/apis/kops/v1alpha3/zz_generated.conversion.go +++ b/pkg/apis/kops/v1alpha3/zz_generated.conversion.go @@ -5776,6 +5776,7 @@ func autoConvert_v1alpha3_KubeDNSConfig_To_kops_KubeDNSConfig(in *KubeDNSConfig, } else { out.NodeLocalDNS = nil } + out.PodAnnotations = in.PodAnnotations return nil } @@ -5809,6 +5810,7 @@ func autoConvert_kops_KubeDNSConfig_To_v1alpha3_KubeDNSConfig(in *kops.KubeDNSCo } else { out.NodeLocalDNS = nil } + out.PodAnnotations = in.PodAnnotations return nil } diff --git a/pkg/apis/kops/v1alpha3/zz_generated.deepcopy.go b/pkg/apis/kops/v1alpha3/zz_generated.deepcopy.go index dcd3ad4533ccb..391da1cf00318 100644 --- a/pkg/apis/kops/v1alpha3/zz_generated.deepcopy.go +++ b/pkg/apis/kops/v1alpha3/zz_generated.deepcopy.go @@ -3819,6 +3819,13 @@ func (in *KubeDNSConfig) DeepCopyInto(out *KubeDNSConfig) { *out = new(NodeLocalDNSConfig) (*in).DeepCopyInto(*out) } + if in.PodAnnotations != nil { + in, out := &in.PodAnnotations, &out.PodAnnotations + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } return } diff --git a/pkg/apis/kops/zz_generated.deepcopy.go b/pkg/apis/kops/zz_generated.deepcopy.go index 02a6774229e11..255692aac5d22 100644 --- a/pkg/apis/kops/zz_generated.deepcopy.go +++ b/pkg/apis/kops/zz_generated.deepcopy.go @@ -3922,6 +3922,13 @@ func (in *KubeDNSConfig) DeepCopyInto(out *KubeDNSConfig) { *out = new(NodeLocalDNSConfig) (*in).DeepCopyInto(*out) } + if in.PodAnnotations != nil { + in, out := &in.PodAnnotations, &out.PodAnnotations + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } return } diff --git a/upup/models/cloudup/resources/addons/coredns.addons.k8s.io/k8s-1.12.yaml.template b/upup/models/cloudup/resources/addons/coredns.addons.k8s.io/k8s-1.12.yaml.template index ac604813b6b92..921afc4f1cd95 100644 --- a/upup/models/cloudup/resources/addons/coredns.addons.k8s.io/k8s-1.12.yaml.template +++ b/upup/models/cloudup/resources/addons/coredns.addons.k8s.io/k8s-1.12.yaml.template @@ -122,6 +122,12 @@ spec: metadata: labels: k8s-app: kube-dns + {{- if KubeDNS.PodAnnotations }} + annotations: + {{- range $key, $value := KubeDNS.PodAnnotations }} + {{ $key }}: "{{ $value }}" + {{- end }} + {{- end }} spec: priorityClassName: system-cluster-critical serviceAccountName: coredns