mirror of https://github.com/k3s-io/k3s.git
Merge pull request #73333 from yujuhong/os-arch-labels
kubelet: promote OS & arch labels to GApull/564/head
commit
3e748958dc
|
@ -42,6 +42,7 @@ go_library(
|
|||
"//pkg/capabilities:go_default_library",
|
||||
"//pkg/features:go_default_library",
|
||||
"//pkg/fieldpath:go_default_library",
|
||||
"//pkg/kubelet/apis:go_default_library",
|
||||
"//pkg/kubelet/apis/config:go_default_library",
|
||||
"//pkg/kubelet/apis/cri:go_default_library",
|
||||
"//pkg/kubelet/apis/cri/runtime/v1alpha2:go_default_library",
|
||||
|
@ -177,6 +178,7 @@ go_test(
|
|||
"//pkg/apis/core/install:go_default_library",
|
||||
"//pkg/capabilities:go_default_library",
|
||||
"//pkg/features:go_default_library",
|
||||
"//pkg/kubelet/apis:go_default_library",
|
||||
"//pkg/kubelet/cadvisor/testing:go_default_library",
|
||||
"//pkg/kubelet/cm:go_default_library",
|
||||
"//pkg/kubelet/config:go_default_library",
|
||||
|
|
|
@ -24,6 +24,12 @@ import (
|
|||
)
|
||||
|
||||
const (
|
||||
// The OS/Arch labels are promoted to GA in 1.14. kubelet applies both beta
|
||||
// and GA labels to ensure backward compatibility.
|
||||
// TODO: stop applying the beta OS/Arch labels in Kubernetes 1.18.
|
||||
LabelOS = "beta.kubernetes.io/os"
|
||||
LabelArch = "beta.kubernetes.io/arch"
|
||||
|
||||
// GA versions of the legacy beta labels.
|
||||
// TODO: update kubelet and controllers to set both beta and GA labels, then export these constants
|
||||
labelZoneFailureDomainGA = "failure-domain.kubernetes.io/zone"
|
||||
|
@ -36,11 +42,11 @@ var kubeletLabels = sets.NewString(
|
|||
v1.LabelZoneFailureDomain,
|
||||
v1.LabelZoneRegion,
|
||||
v1.LabelInstanceType,
|
||||
v1.LabelOS,
|
||||
v1.LabelArch,
|
||||
v1.LabelOSStable,
|
||||
v1.LabelArchStable,
|
||||
|
||||
v1.LegacyLabelOS,
|
||||
v1.LegacyLabelArch,
|
||||
LabelOS,
|
||||
LabelArch,
|
||||
|
||||
labelZoneFailureDomainGA,
|
||||
labelZoneRegionGA,
|
||||
|
|
|
@ -37,6 +37,7 @@ import (
|
|||
k8s_api_v1 "k8s.io/kubernetes/pkg/apis/core/v1"
|
||||
v1helper "k8s.io/kubernetes/pkg/apis/core/v1/helper"
|
||||
"k8s.io/kubernetes/pkg/features"
|
||||
kubeletapis "k8s.io/kubernetes/pkg/kubelet/apis"
|
||||
"k8s.io/kubernetes/pkg/kubelet/events"
|
||||
"k8s.io/kubernetes/pkg/kubelet/nodestatus"
|
||||
"k8s.io/kubernetes/pkg/kubelet/util"
|
||||
|
@ -148,10 +149,10 @@ func (kl *Kubelet) updateDefaultLabels(initialNode, existingNode *v1.Node) bool
|
|||
v1.LabelZoneFailureDomain,
|
||||
v1.LabelZoneRegion,
|
||||
v1.LabelInstanceType,
|
||||
v1.LabelOS,
|
||||
v1.LabelArch,
|
||||
v1.LegacyLabelOS,
|
||||
v1.LegacyLabelArch,
|
||||
v1.LabelOSStable,
|
||||
v1.LabelArchStable,
|
||||
kubeletapis.LabelOS,
|
||||
kubeletapis.LabelArch,
|
||||
}
|
||||
|
||||
needsUpdate := false
|
||||
|
@ -214,11 +215,11 @@ func (kl *Kubelet) initialNode() (*v1.Node, error) {
|
|||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: string(kl.nodeName),
|
||||
Labels: map[string]string{
|
||||
v1.LabelHostname: kl.hostname,
|
||||
v1.LabelOS: goruntime.GOOS,
|
||||
v1.LabelArch: goruntime.GOARCH,
|
||||
v1.LegacyLabelOS: goruntime.GOOS,
|
||||
v1.LegacyLabelArch: goruntime.GOARCH,
|
||||
v1.LabelHostname: kl.hostname,
|
||||
v1.LabelOSStable: goruntime.GOOS,
|
||||
v1.LabelArchStable: goruntime.GOARCH,
|
||||
kubeletapis.LabelOS: goruntime.GOOS,
|
||||
kubeletapis.LabelArch: goruntime.GOARCH,
|
||||
},
|
||||
},
|
||||
Spec: v1.NodeSpec{
|
||||
|
|
|
@ -49,6 +49,7 @@ import (
|
|||
"k8s.io/client-go/rest"
|
||||
core "k8s.io/client-go/testing"
|
||||
"k8s.io/kubernetes/pkg/features"
|
||||
kubeletapis "k8s.io/kubernetes/pkg/kubelet/apis"
|
||||
cadvisortest "k8s.io/kubernetes/pkg/kubelet/cadvisor/testing"
|
||||
"k8s.io/kubernetes/pkg/kubelet/cm"
|
||||
kubecontainer "k8s.io/kubernetes/pkg/kubelet/container"
|
||||
|
@ -1253,11 +1254,11 @@ func TestRegisterWithApiServer(t *testing.T) {
|
|||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: testKubeletHostname,
|
||||
Labels: map[string]string{
|
||||
v1.LabelHostname: testKubeletHostname,
|
||||
v1.LabelOS: goruntime.GOOS,
|
||||
v1.LabelArch: goruntime.GOARCH,
|
||||
v1.LegacyLabelOS: goruntime.GOOS,
|
||||
v1.LegacyLabelArch: goruntime.GOARCH,
|
||||
v1.LabelHostname: testKubeletHostname,
|
||||
v1.LabelOSStable: goruntime.GOOS,
|
||||
v1.LabelArchStable: goruntime.GOARCH,
|
||||
kubeletapis.LabelOS: goruntime.GOOS,
|
||||
kubeletapis.LabelArch: goruntime.GOARCH,
|
||||
},
|
||||
},
|
||||
}, nil
|
||||
|
@ -1300,11 +1301,11 @@ func TestTryRegisterWithApiServer(t *testing.T) {
|
|||
node := &v1.Node{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Labels: map[string]string{
|
||||
v1.LabelHostname: testKubeletHostname,
|
||||
v1.LabelOS: goruntime.GOOS,
|
||||
v1.LabelArch: goruntime.GOARCH,
|
||||
v1.LegacyLabelOS: goruntime.GOOS,
|
||||
v1.LegacyLabelArch: goruntime.GOARCH,
|
||||
v1.LabelHostname: testKubeletHostname,
|
||||
v1.LabelOSStable: goruntime.GOOS,
|
||||
v1.LabelArchStable: goruntime.GOARCH,
|
||||
kubeletapis.LabelOS: goruntime.GOOS,
|
||||
kubeletapis.LabelArch: goruntime.GOARCH,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
@ -1536,8 +1537,8 @@ func TestUpdateDefaultLabels(t *testing.T) {
|
|||
v1.LabelZoneFailureDomain: "new-zone-failure-domain",
|
||||
v1.LabelZoneRegion: "new-zone-region",
|
||||
v1.LabelInstanceType: "new-instance-type",
|
||||
v1.LabelOS: "new-os",
|
||||
v1.LabelArch: "new-arch",
|
||||
kubeletapis.LabelOS: "new-os",
|
||||
kubeletapis.LabelArch: "new-arch",
|
||||
},
|
||||
},
|
||||
},
|
||||
|
@ -1552,8 +1553,8 @@ func TestUpdateDefaultLabels(t *testing.T) {
|
|||
v1.LabelZoneFailureDomain: "new-zone-failure-domain",
|
||||
v1.LabelZoneRegion: "new-zone-region",
|
||||
v1.LabelInstanceType: "new-instance-type",
|
||||
v1.LabelOS: "new-os",
|
||||
v1.LabelArch: "new-arch",
|
||||
kubeletapis.LabelOS: "new-os",
|
||||
kubeletapis.LabelArch: "new-arch",
|
||||
},
|
||||
},
|
||||
{
|
||||
|
@ -1565,8 +1566,8 @@ func TestUpdateDefaultLabels(t *testing.T) {
|
|||
v1.LabelZoneFailureDomain: "new-zone-failure-domain",
|
||||
v1.LabelZoneRegion: "new-zone-region",
|
||||
v1.LabelInstanceType: "new-instance-type",
|
||||
v1.LabelOS: "new-os",
|
||||
v1.LabelArch: "new-arch",
|
||||
kubeletapis.LabelOS: "new-os",
|
||||
kubeletapis.LabelArch: "new-arch",
|
||||
},
|
||||
},
|
||||
},
|
||||
|
@ -1577,8 +1578,8 @@ func TestUpdateDefaultLabels(t *testing.T) {
|
|||
v1.LabelZoneFailureDomain: "old-zone-failure-domain",
|
||||
v1.LabelZoneRegion: "old-zone-region",
|
||||
v1.LabelInstanceType: "old-instance-type",
|
||||
v1.LabelOS: "old-os",
|
||||
v1.LabelArch: "old-arch",
|
||||
kubeletapis.LabelOS: "old-os",
|
||||
kubeletapis.LabelArch: "old-arch",
|
||||
},
|
||||
},
|
||||
},
|
||||
|
@ -1588,8 +1589,8 @@ func TestUpdateDefaultLabels(t *testing.T) {
|
|||
v1.LabelZoneFailureDomain: "new-zone-failure-domain",
|
||||
v1.LabelZoneRegion: "new-zone-region",
|
||||
v1.LabelInstanceType: "new-instance-type",
|
||||
v1.LabelOS: "new-os",
|
||||
v1.LabelArch: "new-arch",
|
||||
kubeletapis.LabelOS: "new-os",
|
||||
kubeletapis.LabelArch: "new-arch",
|
||||
},
|
||||
},
|
||||
{
|
||||
|
@ -1601,8 +1602,8 @@ func TestUpdateDefaultLabels(t *testing.T) {
|
|||
v1.LabelZoneFailureDomain: "new-zone-failure-domain",
|
||||
v1.LabelZoneRegion: "new-zone-region",
|
||||
v1.LabelInstanceType: "new-instance-type",
|
||||
v1.LabelOS: "new-os",
|
||||
v1.LabelArch: "new-arch",
|
||||
kubeletapis.LabelOS: "new-os",
|
||||
kubeletapis.LabelArch: "new-arch",
|
||||
},
|
||||
},
|
||||
},
|
||||
|
@ -1613,8 +1614,8 @@ func TestUpdateDefaultLabels(t *testing.T) {
|
|||
v1.LabelZoneFailureDomain: "new-zone-failure-domain",
|
||||
v1.LabelZoneRegion: "new-zone-region",
|
||||
v1.LabelInstanceType: "new-instance-type",
|
||||
v1.LabelOS: "new-os",
|
||||
v1.LabelArch: "new-arch",
|
||||
kubeletapis.LabelOS: "new-os",
|
||||
kubeletapis.LabelArch: "new-arch",
|
||||
"please-persist": "foo",
|
||||
},
|
||||
},
|
||||
|
@ -1625,8 +1626,8 @@ func TestUpdateDefaultLabels(t *testing.T) {
|
|||
v1.LabelZoneFailureDomain: "new-zone-failure-domain",
|
||||
v1.LabelZoneRegion: "new-zone-region",
|
||||
v1.LabelInstanceType: "new-instance-type",
|
||||
v1.LabelOS: "new-os",
|
||||
v1.LabelArch: "new-arch",
|
||||
kubeletapis.LabelOS: "new-os",
|
||||
kubeletapis.LabelArch: "new-arch",
|
||||
"please-persist": "foo",
|
||||
},
|
||||
},
|
||||
|
@ -1644,8 +1645,8 @@ func TestUpdateDefaultLabels(t *testing.T) {
|
|||
v1.LabelZoneFailureDomain: "new-zone-failure-domain",
|
||||
v1.LabelZoneRegion: "new-zone-region",
|
||||
v1.LabelInstanceType: "new-instance-type",
|
||||
v1.LabelOS: "new-os",
|
||||
v1.LabelArch: "new-arch",
|
||||
kubeletapis.LabelOS: "new-os",
|
||||
kubeletapis.LabelArch: "new-arch",
|
||||
"please-persist": "foo",
|
||||
},
|
||||
},
|
||||
|
@ -1656,8 +1657,8 @@ func TestUpdateDefaultLabels(t *testing.T) {
|
|||
v1.LabelZoneFailureDomain: "new-zone-failure-domain",
|
||||
v1.LabelZoneRegion: "new-zone-region",
|
||||
v1.LabelInstanceType: "new-instance-type",
|
||||
v1.LabelOS: "new-os",
|
||||
v1.LabelArch: "new-arch",
|
||||
kubeletapis.LabelOS: "new-os",
|
||||
kubeletapis.LabelArch: "new-arch",
|
||||
"please-persist": "foo",
|
||||
},
|
||||
},
|
||||
|
@ -1670,8 +1671,8 @@ func TestUpdateDefaultLabels(t *testing.T) {
|
|||
v1.LabelZoneFailureDomain: "new-zone-failure-domain",
|
||||
v1.LabelZoneRegion: "new-zone-region",
|
||||
v1.LabelInstanceType: "new-instance-type",
|
||||
v1.LabelOS: "new-os",
|
||||
v1.LabelArch: "new-arch",
|
||||
kubeletapis.LabelOS: "new-os",
|
||||
kubeletapis.LabelArch: "new-arch",
|
||||
},
|
||||
},
|
||||
},
|
||||
|
@ -1682,8 +1683,8 @@ func TestUpdateDefaultLabels(t *testing.T) {
|
|||
v1.LabelZoneFailureDomain: "new-zone-failure-domain",
|
||||
v1.LabelZoneRegion: "new-zone-region",
|
||||
v1.LabelInstanceType: "new-instance-type",
|
||||
v1.LabelOS: "new-os",
|
||||
v1.LabelArch: "new-arch",
|
||||
kubeletapis.LabelOS: "new-os",
|
||||
kubeletapis.LabelArch: "new-arch",
|
||||
},
|
||||
},
|
||||
},
|
||||
|
@ -1693,8 +1694,8 @@ func TestUpdateDefaultLabels(t *testing.T) {
|
|||
v1.LabelZoneFailureDomain: "new-zone-failure-domain",
|
||||
v1.LabelZoneRegion: "new-zone-region",
|
||||
v1.LabelInstanceType: "new-instance-type",
|
||||
v1.LabelOS: "new-os",
|
||||
v1.LabelArch: "new-arch",
|
||||
kubeletapis.LabelOS: "new-os",
|
||||
kubeletapis.LabelArch: "new-arch",
|
||||
},
|
||||
},
|
||||
{
|
||||
|
@ -1706,8 +1707,8 @@ func TestUpdateDefaultLabels(t *testing.T) {
|
|||
v1.LabelZoneFailureDomain: "new-zone-failure-domain",
|
||||
v1.LabelZoneRegion: "new-zone-region",
|
||||
v1.LabelInstanceType: "new-instance-type",
|
||||
v1.LabelOS: "new-os",
|
||||
v1.LabelArch: "new-arch",
|
||||
kubeletapis.LabelOS: "new-os",
|
||||
kubeletapis.LabelArch: "new-arch",
|
||||
},
|
||||
},
|
||||
},
|
||||
|
@ -1720,8 +1721,8 @@ func TestUpdateDefaultLabels(t *testing.T) {
|
|||
v1.LabelZoneFailureDomain: "new-zone-failure-domain",
|
||||
v1.LabelZoneRegion: "new-zone-region",
|
||||
v1.LabelInstanceType: "new-instance-type",
|
||||
v1.LabelOS: "new-os",
|
||||
v1.LabelArch: "new-arch",
|
||||
kubeletapis.LabelOS: "new-os",
|
||||
kubeletapis.LabelArch: "new-arch",
|
||||
},
|
||||
},
|
||||
}
|
||||
|
|
|
@ -23,13 +23,8 @@ const (
|
|||
|
||||
LabelInstanceType = "beta.kubernetes.io/instance-type"
|
||||
|
||||
LabelOS = "kubernetes.io/os"
|
||||
LabelArch = "kubernetes.io/arch"
|
||||
// The OS/Arch labels are promoted to GA in 1.14. kubelet applies both beta
|
||||
// and GA labels to ensure backward compatibility.
|
||||
// TODO: stop applying the beta OS/Arch labels in Kubernetes 1.17.
|
||||
LegacyLabelOS = "beta.kubernetes.io/os"
|
||||
LegacyLabelArch = "beta.kubernetes.io/arch"
|
||||
LabelOSStable = "kubernetes.io/os"
|
||||
LabelArchStable = "kubernetes.io/arch"
|
||||
|
||||
// LabelNamespaceSuffixKubelet is an allowed label namespace suffix kubelets can self-set ([*.]kubelet.kubernetes.io/*)
|
||||
LabelNamespaceSuffixKubelet = "kubelet.kubernetes.io"
|
||||
|
|
Loading…
Reference in New Issue