From 7ddedf5034cc25e85e555acccc8c3cc00a7cf221 Mon Sep 17 00:00:00 2001 From: Andrew Sy Kim Date: Fri, 8 Nov 2019 10:29:45 -0500 Subject: [PATCH] kubelet: apply both beta and stable instance-type label Signed-off-by: Andrew Sy Kim --- pkg/kubelet/apis/well_known_labels.go | 6 +----- pkg/kubelet/kubelet_node_status.go | 3 +++ pkg/kubelet/kubelet_node_status_test.go | 15 +++++++++++++++ 3 files changed, 19 insertions(+), 5 deletions(-) diff --git a/pkg/kubelet/apis/well_known_labels.go b/pkg/kubelet/apis/well_known_labels.go index 2f29f8d3d95..a38ad13b545 100644 --- a/pkg/kubelet/apis/well_known_labels.go +++ b/pkg/kubelet/apis/well_known_labels.go @@ -34,9 +34,6 @@ const ( // and GA labels to ensure backward compatibility. // TODO: stop applying the beta Arch labels in Kubernetes 1.18. LabelArch = "beta.kubernetes.io/arch" - - // TODO: update kubelet and controllers to set both beta and GA labels, then export these constants - labelInstanceTypeGA = "kubernetes.io/instance-type" ) var kubeletLabels = sets.NewString( @@ -46,13 +43,12 @@ var kubeletLabels = sets.NewString( v1.LabelZoneFailureDomain, v1.LabelZoneRegion, v1.LabelInstanceType, + v1.LabelInstanceTypeStable, v1.LabelOSStable, v1.LabelArchStable, LabelOS, LabelArch, - - labelInstanceTypeGA, ) var kubeletLabelNamespaces = sets.NewString( diff --git a/pkg/kubelet/kubelet_node_status.go b/pkg/kubelet/kubelet_node_status.go index bdec539b837..955a13f5f2f 100644 --- a/pkg/kubelet/kubelet_node_status.go +++ b/pkg/kubelet/kubelet_node_status.go @@ -154,6 +154,7 @@ func (kl *Kubelet) updateDefaultLabels(initialNode, existingNode *v1.Node) bool v1.LabelZoneRegionStable, v1.LabelZoneFailureDomain, v1.LabelZoneRegion, + v1.LabelInstanceTypeStable, v1.LabelInstanceType, v1.LabelOSStable, v1.LabelArchStable, @@ -333,6 +334,8 @@ func (kl *Kubelet) initialNode(ctx context.Context) (*v1.Node, error) { if instanceType != "" { klog.Infof("Adding node label from cloud provider: %s=%s", v1.LabelInstanceType, instanceType) node.ObjectMeta.Labels[v1.LabelInstanceType] = instanceType + klog.Infof("Adding node label from cloud provider: %s=%s", v1.LabelInstanceTypeStable, instanceType) + node.ObjectMeta.Labels[v1.LabelInstanceTypeStable] = instanceType } // If the cloud has zone information, label the node with the zone information zones, ok := kl.cloud.Zones() diff --git a/pkg/kubelet/kubelet_node_status_test.go b/pkg/kubelet/kubelet_node_status_test.go index 4c66b2c00b9..4041838fbbd 100644 --- a/pkg/kubelet/kubelet_node_status_test.go +++ b/pkg/kubelet/kubelet_node_status_test.go @@ -1528,6 +1528,7 @@ func TestUpdateDefaultLabels(t *testing.T) { v1.LabelZoneRegionStable: "new-zone-region", v1.LabelZoneFailureDomain: "new-zone-failure-domain", v1.LabelZoneRegion: "new-zone-region", + v1.LabelInstanceTypeStable: "new-instance-type", v1.LabelInstanceType: "new-instance-type", kubeletapis.LabelOS: "new-os", kubeletapis.LabelArch: "new-arch", @@ -1546,6 +1547,7 @@ func TestUpdateDefaultLabels(t *testing.T) { v1.LabelZoneRegionStable: "new-zone-region", v1.LabelZoneFailureDomain: "new-zone-failure-domain", v1.LabelZoneRegion: "new-zone-region", + v1.LabelInstanceTypeStable: "new-instance-type", v1.LabelInstanceType: "new-instance-type", kubeletapis.LabelOS: "new-os", kubeletapis.LabelArch: "new-arch", @@ -1561,6 +1563,7 @@ func TestUpdateDefaultLabels(t *testing.T) { v1.LabelZoneRegionStable: "new-zone-region", v1.LabelZoneFailureDomain: "new-zone-failure-domain", v1.LabelZoneRegion: "new-zone-region", + v1.LabelInstanceTypeStable: "new-instance-type", v1.LabelInstanceType: "new-instance-type", kubeletapis.LabelOS: "new-os", kubeletapis.LabelArch: "new-arch", @@ -1575,6 +1578,7 @@ func TestUpdateDefaultLabels(t *testing.T) { v1.LabelZoneRegionStable: "old-zone-region", v1.LabelZoneFailureDomain: "old-zone-failure-domain", v1.LabelZoneRegion: "old-zone-region", + v1.LabelInstanceTypeStable: "old-instance-type", v1.LabelInstanceType: "old-instance-type", kubeletapis.LabelOS: "old-os", kubeletapis.LabelArch: "old-arch", @@ -1588,6 +1592,7 @@ func TestUpdateDefaultLabels(t *testing.T) { v1.LabelZoneRegionStable: "new-zone-region", v1.LabelZoneFailureDomain: "new-zone-failure-domain", v1.LabelZoneRegion: "new-zone-region", + v1.LabelInstanceTypeStable: "new-instance-type", v1.LabelInstanceType: "new-instance-type", kubeletapis.LabelOS: "new-os", kubeletapis.LabelArch: "new-arch", @@ -1603,6 +1608,7 @@ func TestUpdateDefaultLabels(t *testing.T) { v1.LabelZoneRegionStable: "new-zone-region", v1.LabelZoneFailureDomain: "new-zone-failure-domain", v1.LabelZoneRegion: "new-zone-region", + v1.LabelInstanceTypeStable: "new-instance-type", v1.LabelInstanceType: "new-instance-type", kubeletapis.LabelOS: "new-os", kubeletapis.LabelArch: "new-arch", @@ -1617,6 +1623,7 @@ func TestUpdateDefaultLabels(t *testing.T) { v1.LabelZoneRegionStable: "new-zone-region", v1.LabelZoneFailureDomain: "new-zone-failure-domain", v1.LabelZoneRegion: "new-zone-region", + v1.LabelInstanceTypeStable: "new-instance-type", v1.LabelInstanceType: "new-instance-type", kubeletapis.LabelOS: "new-os", kubeletapis.LabelArch: "new-arch", @@ -1631,6 +1638,7 @@ func TestUpdateDefaultLabels(t *testing.T) { v1.LabelZoneRegionStable: "new-zone-region", v1.LabelZoneFailureDomain: "new-zone-failure-domain", v1.LabelZoneRegion: "new-zone-region", + v1.LabelInstanceTypeStable: "new-instance-type", v1.LabelInstanceType: "new-instance-type", kubeletapis.LabelOS: "new-os", kubeletapis.LabelArch: "new-arch", @@ -1652,6 +1660,7 @@ func TestUpdateDefaultLabels(t *testing.T) { v1.LabelZoneRegionStable: "new-zone-region", v1.LabelZoneFailureDomain: "new-zone-failure-domain", v1.LabelZoneRegion: "new-zone-region", + v1.LabelInstanceTypeStable: "new-instance-type", v1.LabelInstanceType: "new-instance-type", kubeletapis.LabelOS: "new-os", kubeletapis.LabelArch: "new-arch", @@ -1666,6 +1675,7 @@ func TestUpdateDefaultLabels(t *testing.T) { v1.LabelZoneRegionStable: "new-zone-region", v1.LabelZoneFailureDomain: "new-zone-failure-domain", v1.LabelZoneRegion: "new-zone-region", + v1.LabelInstanceTypeStable: "new-instance-type", v1.LabelInstanceType: "new-instance-type", kubeletapis.LabelOS: "new-os", kubeletapis.LabelArch: "new-arch", @@ -1682,6 +1692,7 @@ func TestUpdateDefaultLabels(t *testing.T) { v1.LabelZoneRegionStable: "new-zone-region", v1.LabelZoneFailureDomain: "new-zone-failure-domain", v1.LabelZoneRegion: "new-zone-region", + v1.LabelInstanceTypeStable: "new-instance-type", v1.LabelInstanceType: "new-instance-type", kubeletapis.LabelOS: "new-os", kubeletapis.LabelArch: "new-arch", @@ -1696,6 +1707,7 @@ func TestUpdateDefaultLabels(t *testing.T) { v1.LabelZoneRegionStable: "new-zone-region", v1.LabelZoneFailureDomain: "new-zone-failure-domain", v1.LabelZoneRegion: "new-zone-region", + v1.LabelInstanceTypeStable: "new-instance-type", v1.LabelInstanceType: "new-instance-type", kubeletapis.LabelOS: "new-os", kubeletapis.LabelArch: "new-arch", @@ -1709,6 +1721,7 @@ func TestUpdateDefaultLabels(t *testing.T) { v1.LabelZoneRegionStable: "new-zone-region", v1.LabelZoneFailureDomain: "new-zone-failure-domain", v1.LabelZoneRegion: "new-zone-region", + v1.LabelInstanceTypeStable: "new-instance-type", v1.LabelInstanceType: "new-instance-type", kubeletapis.LabelOS: "new-os", kubeletapis.LabelArch: "new-arch", @@ -1724,6 +1737,7 @@ func TestUpdateDefaultLabels(t *testing.T) { v1.LabelZoneRegionStable: "new-zone-region", v1.LabelZoneFailureDomain: "new-zone-failure-domain", v1.LabelZoneRegion: "new-zone-region", + v1.LabelInstanceTypeStable: "new-instance-type", v1.LabelInstanceType: "new-instance-type", kubeletapis.LabelOS: "new-os", kubeletapis.LabelArch: "new-arch", @@ -1740,6 +1754,7 @@ func TestUpdateDefaultLabels(t *testing.T) { v1.LabelZoneRegionStable: "new-zone-region", v1.LabelZoneFailureDomain: "new-zone-failure-domain", v1.LabelZoneRegion: "new-zone-region", + v1.LabelInstanceTypeStable: "new-instance-type", v1.LabelInstanceType: "new-instance-type", kubeletapis.LabelOS: "new-os", kubeletapis.LabelArch: "new-arch",