@@ -36,6 +36,7 @@ import (
3636 apierrors "k8s.io/apimachinery/pkg/api/errors"
3737 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
3838 "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
39+ "k8s.io/apimachinery/pkg/util/sets"
3940 "k8s.io/client-go/util/retry"
4041 ctrlclient "sigs.k8s.io/controller-runtime/pkg/client"
4142 "sigs.k8s.io/yaml"
@@ -51,13 +52,14 @@ import (
5152)
5253
5354const (
54- kubeProxyKey = "kube-proxy"
55- kubeadmConfigKey = "kubeadm-config"
56- kubeletConfigKey = "kubelet"
57- cgroupDriverKey = "cgroupDriver"
58- labelNodeRoleControlPlane = "node-role.kubernetes.io/master"
59- clusterStatusKey = "ClusterStatus"
60- clusterConfigurationKey = "ClusterConfiguration"
55+ kubeProxyKey = "kube-proxy"
56+ kubeadmConfigKey = "kubeadm-config"
57+ kubeletConfigKey = "kubelet"
58+ cgroupDriverKey = "cgroupDriver"
59+ labelNodeRoleOldControlPlane = "node-role.kubernetes.io/master" // Deprecated: https://github.com/kubernetes/kubeadm/issues/2200
60+ labelNodeRoleControlPlane = "node-role.kubernetes.io/control-plane"
61+ clusterStatusKey = "ClusterStatus"
62+ clusterConfigurationKey = "ClusterConfiguration"
6163)
6264
6365var (
@@ -121,14 +123,31 @@ type Workload struct {
121123var _ WorkloadCluster = & Workload {}
122124
123125func (w * Workload ) getControlPlaneNodes (ctx context.Context ) (* corev1.NodeList , error ) {
124- nodes := & corev1.NodeList {}
125- labels := map [string ]string {
126- labelNodeRoleControlPlane : "" ,
127- }
128- if err := w .Client .List (ctx , nodes , ctrlclient .MatchingLabels (labels )); err != nil {
129- return nil , err
126+ controlPlaneNodes := & corev1.NodeList {}
127+ controlPlaneNodeNames := sets .NewString ()
128+
129+ for _ , label := range []string {labelNodeRoleOldControlPlane , labelNodeRoleControlPlane } {
130+ nodes := & corev1.NodeList {}
131+ if err := w .Client .List (ctx , nodes , ctrlclient .MatchingLabels (map [string ]string {
132+ label : "" ,
133+ })); err != nil {
134+ return nil , err
135+ }
136+
137+ for i := range nodes .Items {
138+ node := nodes .Items [i ]
139+
140+ // Continue if we already added that node.
141+ if controlPlaneNodeNames .Has (node .Name ) {
142+ continue
143+ }
144+
145+ controlPlaneNodeNames .Insert (node .Name )
146+ controlPlaneNodes .Items = append (controlPlaneNodes .Items , node )
147+ }
130148 }
131- return nodes , nil
149+
150+ return controlPlaneNodes , nil
132151}
133152
134153func (w * Workload ) getConfigMap (ctx context.Context , configMap ctrlclient.ObjectKey ) (* corev1.ConfigMap , error ) {
0 commit comments