Skip to content

Commit 3e74895

Browse files
authored
Merge pull request kubernetes#73333 from yujuhong/os-arch-labels
kubelet: promote OS & arch labels to GA
2 parents d5b890e + 5fd27c3 commit 3e74895

File tree

5 files changed

+65
-60
lines changed

5 files changed

+65
-60
lines changed

pkg/kubelet/BUILD

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ go_library(
4242
"//pkg/capabilities:go_default_library",
4343
"//pkg/features:go_default_library",
4444
"//pkg/fieldpath:go_default_library",
45+
"//pkg/kubelet/apis:go_default_library",
4546
"//pkg/kubelet/apis/config:go_default_library",
4647
"//pkg/kubelet/apis/cri:go_default_library",
4748
"//pkg/kubelet/apis/cri/runtime/v1alpha2:go_default_library",
@@ -177,6 +178,7 @@ go_test(
177178
"//pkg/apis/core/install:go_default_library",
178179
"//pkg/capabilities:go_default_library",
179180
"//pkg/features:go_default_library",
181+
"//pkg/kubelet/apis:go_default_library",
180182
"//pkg/kubelet/cadvisor/testing:go_default_library",
181183
"//pkg/kubelet/cm:go_default_library",
182184
"//pkg/kubelet/config:go_default_library",

pkg/kubelet/apis/well_known_labels.go

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,12 @@ import (
2424
)
2525

2626
const (
27+
// The OS/Arch labels are promoted to GA in 1.14. kubelet applies both beta
28+
// and GA labels to ensure backward compatibility.
29+
// TODO: stop applying the beta OS/Arch labels in Kubernetes 1.18.
30+
LabelOS = "beta.kubernetes.io/os"
31+
LabelArch = "beta.kubernetes.io/arch"
32+
2733
// GA versions of the legacy beta labels.
2834
// TODO: update kubelet and controllers to set both beta and GA labels, then export these constants
2935
labelZoneFailureDomainGA = "failure-domain.kubernetes.io/zone"
@@ -36,11 +42,11 @@ var kubeletLabels = sets.NewString(
3642
v1.LabelZoneFailureDomain,
3743
v1.LabelZoneRegion,
3844
v1.LabelInstanceType,
39-
v1.LabelOS,
40-
v1.LabelArch,
45+
v1.LabelOSStable,
46+
v1.LabelArchStable,
4147

42-
v1.LegacyLabelOS,
43-
v1.LegacyLabelArch,
48+
LabelOS,
49+
LabelArch,
4450

4551
labelZoneFailureDomainGA,
4652
labelZoneRegionGA,

pkg/kubelet/kubelet_node_status.go

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ import (
3737
k8s_api_v1 "k8s.io/kubernetes/pkg/apis/core/v1"
3838
v1helper "k8s.io/kubernetes/pkg/apis/core/v1/helper"
3939
"k8s.io/kubernetes/pkg/features"
40+
kubeletapis "k8s.io/kubernetes/pkg/kubelet/apis"
4041
"k8s.io/kubernetes/pkg/kubelet/events"
4142
"k8s.io/kubernetes/pkg/kubelet/nodestatus"
4243
"k8s.io/kubernetes/pkg/kubelet/util"
@@ -148,10 +149,10 @@ func (kl *Kubelet) updateDefaultLabels(initialNode, existingNode *v1.Node) bool
148149
v1.LabelZoneFailureDomain,
149150
v1.LabelZoneRegion,
150151
v1.LabelInstanceType,
151-
v1.LabelOS,
152-
v1.LabelArch,
153-
v1.LegacyLabelOS,
154-
v1.LegacyLabelArch,
152+
v1.LabelOSStable,
153+
v1.LabelArchStable,
154+
kubeletapis.LabelOS,
155+
kubeletapis.LabelArch,
155156
}
156157

157158
needsUpdate := false
@@ -214,11 +215,11 @@ func (kl *Kubelet) initialNode() (*v1.Node, error) {
214215
ObjectMeta: metav1.ObjectMeta{
215216
Name: string(kl.nodeName),
216217
Labels: map[string]string{
217-
v1.LabelHostname: kl.hostname,
218-
v1.LabelOS: goruntime.GOOS,
219-
v1.LabelArch: goruntime.GOARCH,
220-
v1.LegacyLabelOS: goruntime.GOOS,
221-
v1.LegacyLabelArch: goruntime.GOARCH,
218+
v1.LabelHostname: kl.hostname,
219+
v1.LabelOSStable: goruntime.GOOS,
220+
v1.LabelArchStable: goruntime.GOARCH,
221+
kubeletapis.LabelOS: goruntime.GOOS,
222+
kubeletapis.LabelArch: goruntime.GOARCH,
222223
},
223224
},
224225
Spec: v1.NodeSpec{

pkg/kubelet/kubelet_node_status_test.go

Lines changed: 41 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ import (
4949
"k8s.io/client-go/rest"
5050
core "k8s.io/client-go/testing"
5151
"k8s.io/kubernetes/pkg/features"
52+
kubeletapis "k8s.io/kubernetes/pkg/kubelet/apis"
5253
cadvisortest "k8s.io/kubernetes/pkg/kubelet/cadvisor/testing"
5354
"k8s.io/kubernetes/pkg/kubelet/cm"
5455
kubecontainer "k8s.io/kubernetes/pkg/kubelet/container"
@@ -1253,11 +1254,11 @@ func TestRegisterWithApiServer(t *testing.T) {
12531254
ObjectMeta: metav1.ObjectMeta{
12541255
Name: testKubeletHostname,
12551256
Labels: map[string]string{
1256-
v1.LabelHostname: testKubeletHostname,
1257-
v1.LabelOS: goruntime.GOOS,
1258-
v1.LabelArch: goruntime.GOARCH,
1259-
v1.LegacyLabelOS: goruntime.GOOS,
1260-
v1.LegacyLabelArch: goruntime.GOARCH,
1257+
v1.LabelHostname: testKubeletHostname,
1258+
v1.LabelOSStable: goruntime.GOOS,
1259+
v1.LabelArchStable: goruntime.GOARCH,
1260+
kubeletapis.LabelOS: goruntime.GOOS,
1261+
kubeletapis.LabelArch: goruntime.GOARCH,
12611262
},
12621263
},
12631264
}, nil
@@ -1300,11 +1301,11 @@ func TestTryRegisterWithApiServer(t *testing.T) {
13001301
node := &v1.Node{
13011302
ObjectMeta: metav1.ObjectMeta{
13021303
Labels: map[string]string{
1303-
v1.LabelHostname: testKubeletHostname,
1304-
v1.LabelOS: goruntime.GOOS,
1305-
v1.LabelArch: goruntime.GOARCH,
1306-
v1.LegacyLabelOS: goruntime.GOOS,
1307-
v1.LegacyLabelArch: goruntime.GOARCH,
1304+
v1.LabelHostname: testKubeletHostname,
1305+
v1.LabelOSStable: goruntime.GOOS,
1306+
v1.LabelArchStable: goruntime.GOARCH,
1307+
kubeletapis.LabelOS: goruntime.GOOS,
1308+
kubeletapis.LabelArch: goruntime.GOARCH,
13081309
},
13091310
},
13101311
}
@@ -1536,8 +1537,8 @@ func TestUpdateDefaultLabels(t *testing.T) {
15361537
v1.LabelZoneFailureDomain: "new-zone-failure-domain",
15371538
v1.LabelZoneRegion: "new-zone-region",
15381539
v1.LabelInstanceType: "new-instance-type",
1539-
v1.LabelOS: "new-os",
1540-
v1.LabelArch: "new-arch",
1540+
kubeletapis.LabelOS: "new-os",
1541+
kubeletapis.LabelArch: "new-arch",
15411542
},
15421543
},
15431544
},
@@ -1552,8 +1553,8 @@ func TestUpdateDefaultLabels(t *testing.T) {
15521553
v1.LabelZoneFailureDomain: "new-zone-failure-domain",
15531554
v1.LabelZoneRegion: "new-zone-region",
15541555
v1.LabelInstanceType: "new-instance-type",
1555-
v1.LabelOS: "new-os",
1556-
v1.LabelArch: "new-arch",
1556+
kubeletapis.LabelOS: "new-os",
1557+
kubeletapis.LabelArch: "new-arch",
15571558
},
15581559
},
15591560
{
@@ -1565,8 +1566,8 @@ func TestUpdateDefaultLabels(t *testing.T) {
15651566
v1.LabelZoneFailureDomain: "new-zone-failure-domain",
15661567
v1.LabelZoneRegion: "new-zone-region",
15671568
v1.LabelInstanceType: "new-instance-type",
1568-
v1.LabelOS: "new-os",
1569-
v1.LabelArch: "new-arch",
1569+
kubeletapis.LabelOS: "new-os",
1570+
kubeletapis.LabelArch: "new-arch",
15701571
},
15711572
},
15721573
},
@@ -1577,8 +1578,8 @@ func TestUpdateDefaultLabels(t *testing.T) {
15771578
v1.LabelZoneFailureDomain: "old-zone-failure-domain",
15781579
v1.LabelZoneRegion: "old-zone-region",
15791580
v1.LabelInstanceType: "old-instance-type",
1580-
v1.LabelOS: "old-os",
1581-
v1.LabelArch: "old-arch",
1581+
kubeletapis.LabelOS: "old-os",
1582+
kubeletapis.LabelArch: "old-arch",
15821583
},
15831584
},
15841585
},
@@ -1588,8 +1589,8 @@ func TestUpdateDefaultLabels(t *testing.T) {
15881589
v1.LabelZoneFailureDomain: "new-zone-failure-domain",
15891590
v1.LabelZoneRegion: "new-zone-region",
15901591
v1.LabelInstanceType: "new-instance-type",
1591-
v1.LabelOS: "new-os",
1592-
v1.LabelArch: "new-arch",
1592+
kubeletapis.LabelOS: "new-os",
1593+
kubeletapis.LabelArch: "new-arch",
15931594
},
15941595
},
15951596
{
@@ -1601,8 +1602,8 @@ func TestUpdateDefaultLabels(t *testing.T) {
16011602
v1.LabelZoneFailureDomain: "new-zone-failure-domain",
16021603
v1.LabelZoneRegion: "new-zone-region",
16031604
v1.LabelInstanceType: "new-instance-type",
1604-
v1.LabelOS: "new-os",
1605-
v1.LabelArch: "new-arch",
1605+
kubeletapis.LabelOS: "new-os",
1606+
kubeletapis.LabelArch: "new-arch",
16061607
},
16071608
},
16081609
},
@@ -1613,8 +1614,8 @@ func TestUpdateDefaultLabels(t *testing.T) {
16131614
v1.LabelZoneFailureDomain: "new-zone-failure-domain",
16141615
v1.LabelZoneRegion: "new-zone-region",
16151616
v1.LabelInstanceType: "new-instance-type",
1616-
v1.LabelOS: "new-os",
1617-
v1.LabelArch: "new-arch",
1617+
kubeletapis.LabelOS: "new-os",
1618+
kubeletapis.LabelArch: "new-arch",
16181619
"please-persist": "foo",
16191620
},
16201621
},
@@ -1625,8 +1626,8 @@ func TestUpdateDefaultLabels(t *testing.T) {
16251626
v1.LabelZoneFailureDomain: "new-zone-failure-domain",
16261627
v1.LabelZoneRegion: "new-zone-region",
16271628
v1.LabelInstanceType: "new-instance-type",
1628-
v1.LabelOS: "new-os",
1629-
v1.LabelArch: "new-arch",
1629+
kubeletapis.LabelOS: "new-os",
1630+
kubeletapis.LabelArch: "new-arch",
16301631
"please-persist": "foo",
16311632
},
16321633
},
@@ -1644,8 +1645,8 @@ func TestUpdateDefaultLabels(t *testing.T) {
16441645
v1.LabelZoneFailureDomain: "new-zone-failure-domain",
16451646
v1.LabelZoneRegion: "new-zone-region",
16461647
v1.LabelInstanceType: "new-instance-type",
1647-
v1.LabelOS: "new-os",
1648-
v1.LabelArch: "new-arch",
1648+
kubeletapis.LabelOS: "new-os",
1649+
kubeletapis.LabelArch: "new-arch",
16491650
"please-persist": "foo",
16501651
},
16511652
},
@@ -1656,8 +1657,8 @@ func TestUpdateDefaultLabels(t *testing.T) {
16561657
v1.LabelZoneFailureDomain: "new-zone-failure-domain",
16571658
v1.LabelZoneRegion: "new-zone-region",
16581659
v1.LabelInstanceType: "new-instance-type",
1659-
v1.LabelOS: "new-os",
1660-
v1.LabelArch: "new-arch",
1660+
kubeletapis.LabelOS: "new-os",
1661+
kubeletapis.LabelArch: "new-arch",
16611662
"please-persist": "foo",
16621663
},
16631664
},
@@ -1670,8 +1671,8 @@ func TestUpdateDefaultLabels(t *testing.T) {
16701671
v1.LabelZoneFailureDomain: "new-zone-failure-domain",
16711672
v1.LabelZoneRegion: "new-zone-region",
16721673
v1.LabelInstanceType: "new-instance-type",
1673-
v1.LabelOS: "new-os",
1674-
v1.LabelArch: "new-arch",
1674+
kubeletapis.LabelOS: "new-os",
1675+
kubeletapis.LabelArch: "new-arch",
16751676
},
16761677
},
16771678
},
@@ -1682,8 +1683,8 @@ func TestUpdateDefaultLabels(t *testing.T) {
16821683
v1.LabelZoneFailureDomain: "new-zone-failure-domain",
16831684
v1.LabelZoneRegion: "new-zone-region",
16841685
v1.LabelInstanceType: "new-instance-type",
1685-
v1.LabelOS: "new-os",
1686-
v1.LabelArch: "new-arch",
1686+
kubeletapis.LabelOS: "new-os",
1687+
kubeletapis.LabelArch: "new-arch",
16871688
},
16881689
},
16891690
},
@@ -1693,8 +1694,8 @@ func TestUpdateDefaultLabels(t *testing.T) {
16931694
v1.LabelZoneFailureDomain: "new-zone-failure-domain",
16941695
v1.LabelZoneRegion: "new-zone-region",
16951696
v1.LabelInstanceType: "new-instance-type",
1696-
v1.LabelOS: "new-os",
1697-
v1.LabelArch: "new-arch",
1697+
kubeletapis.LabelOS: "new-os",
1698+
kubeletapis.LabelArch: "new-arch",
16981699
},
16991700
},
17001701
{
@@ -1706,8 +1707,8 @@ func TestUpdateDefaultLabels(t *testing.T) {
17061707
v1.LabelZoneFailureDomain: "new-zone-failure-domain",
17071708
v1.LabelZoneRegion: "new-zone-region",
17081709
v1.LabelInstanceType: "new-instance-type",
1709-
v1.LabelOS: "new-os",
1710-
v1.LabelArch: "new-arch",
1710+
kubeletapis.LabelOS: "new-os",
1711+
kubeletapis.LabelArch: "new-arch",
17111712
},
17121713
},
17131714
},
@@ -1720,8 +1721,8 @@ func TestUpdateDefaultLabels(t *testing.T) {
17201721
v1.LabelZoneFailureDomain: "new-zone-failure-domain",
17211722
v1.LabelZoneRegion: "new-zone-region",
17221723
v1.LabelInstanceType: "new-instance-type",
1723-
v1.LabelOS: "new-os",
1724-
v1.LabelArch: "new-arch",
1724+
kubeletapis.LabelOS: "new-os",
1725+
kubeletapis.LabelArch: "new-arch",
17251726
},
17261727
},
17271728
}

staging/src/k8s.io/api/core/v1/well_known_labels.go

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,8 @@ const (
2323

2424
LabelInstanceType = "beta.kubernetes.io/instance-type"
2525

26-
LabelOS = "kubernetes.io/os"
27-
LabelArch = "kubernetes.io/arch"
28-
// The OS/Arch labels are promoted to GA in 1.14. kubelet applies both beta
29-
// and GA labels to ensure backward compatibility.
30-
// TODO: stop applying the beta OS/Arch labels in Kubernetes 1.17.
31-
LegacyLabelOS = "beta.kubernetes.io/os"
32-
LegacyLabelArch = "beta.kubernetes.io/arch"
26+
LabelOSStable = "kubernetes.io/os"
27+
LabelArchStable = "kubernetes.io/arch"
3328

3429
// LabelNamespaceSuffixKubelet is an allowed label namespace suffix kubelets can self-set ([*.]kubelet.kubernetes.io/*)
3530
LabelNamespaceSuffixKubelet = "kubelet.kubernetes.io"

0 commit comments

Comments
 (0)