mirror of https://github.com/k3s-io/k3s
Merge pull request #48056 from luxas/kubeadm_remove_old_label
Automatic merge from submit-queue Remove old node role label that is not used by kubeadm **What this PR does / why we need it**: This label hasn't been used by kubeadm since v1.5. v1.5 support was dropped when v1.6 arrived due to a potential security flaw and the earlier alpha status. So this label hasn't been used for around three months. It makes sense to remove it in time for v1.8, could already have been done for v1.7 **Which issue this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close that issue when PR gets merged)*: fixes # **Special notes for your reviewer**: **Release note**: ```release-note NONE ``` @kubernetes/sig-cluster-lifecycle-pr-reviewspull/6/head
commit
5eccc7ae80
|
@ -14,7 +14,6 @@ go_library(
|
||||||
"env.go",
|
"env.go",
|
||||||
"register.go",
|
"register.go",
|
||||||
"types.go",
|
"types.go",
|
||||||
"well_known_labels.go",
|
|
||||||
],
|
],
|
||||||
tags = ["automanaged"],
|
tags = ["automanaged"],
|
||||||
deps = [
|
deps = [
|
||||||
|
|
|
@ -1,43 +0,0 @@
|
||||||
/*
|
|
||||||
Copyright 2017 The Kubernetes Authors.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package kubeadm
|
|
||||||
|
|
||||||
// Role labels are applied to Nodes to mark their purpose. In particular, we
|
|
||||||
// usually want to distinguish the master, so that we can isolate privileged
|
|
||||||
// pods and operations.
|
|
||||||
//
|
|
||||||
// Originally we relied on not registering the master, on the fact that the
|
|
||||||
// master was Unschedulable, and on static manifests for master components.
|
|
||||||
// But we now do register masters in many environments, are generally moving
|
|
||||||
// away from static manifests (for better manageability), and working towards
|
|
||||||
// deprecating the unschedulable field (replacing it with taints & tolerations
|
|
||||||
// instead).
|
|
||||||
//
|
|
||||||
// Even with tainting, a label remains the easiest way of making a positive
|
|
||||||
// selection, so that pods can schedule only to master nodes for example, and
|
|
||||||
// thus installations will likely define a label for their master nodes.
|
|
||||||
//
|
|
||||||
// So that we can recognize master nodes in consequent places though (such as
|
|
||||||
// kubectl get nodes), we encourage installations to use the well-known labels.
|
|
||||||
// We define NodeLabelRole, which is the preferred form, but we will also recognize
|
|
||||||
// other forms that are known to be in widespread use (NodeLabelKubeadmAlphaRole).
|
|
||||||
|
|
||||||
const (
|
|
||||||
// NodeLabelKubeadmAlphaRole is a label that kubeadm applies to a Node as a hint that it has a particular purpose.
|
|
||||||
// Use of NodeLabelRole is preferred.
|
|
||||||
NodeLabelKubeadmAlphaRole = "kubeadm.alpha.kubernetes.io/role"
|
|
||||||
)
|
|
|
@ -59,7 +59,6 @@ go_library(
|
||||||
],
|
],
|
||||||
tags = ["automanaged"],
|
tags = ["automanaged"],
|
||||||
deps = [
|
deps = [
|
||||||
"//cmd/kubeadm/app/apis/kubeadm:go_default_library",
|
|
||||||
"//federation/apis/federation:go_default_library",
|
"//federation/apis/federation:go_default_library",
|
||||||
"//federation/client/clientset_generated/federation_internalclientset:go_default_library",
|
"//federation/client/clientset_generated/federation_internalclientset:go_default_library",
|
||||||
"//pkg/api:go_default_library",
|
"//pkg/api:go_default_library",
|
||||||
|
|
|
@ -2360,7 +2360,6 @@ func describeNode(node *api.Node, nodeNonTerminatedPodsList *api.PodList, events
|
||||||
return tabbedString(func(out io.Writer) error {
|
return tabbedString(func(out io.Writer) error {
|
||||||
w := NewPrefixWriter(out)
|
w := NewPrefixWriter(out)
|
||||||
w.Write(LEVEL_0, "Name:\t%s\n", node.Name)
|
w.Write(LEVEL_0, "Name:\t%s\n", node.Name)
|
||||||
w.Write(LEVEL_0, "Role:\t%s\n", findNodeRole(node))
|
|
||||||
printLabelsMultiline(w, "Labels", node.Labels)
|
printLabelsMultiline(w, "Labels", node.Labels)
|
||||||
printAnnotationsMultiline(w, "Annotations", node.Annotations)
|
printAnnotationsMultiline(w, "Annotations", node.Annotations)
|
||||||
printNodeTaintsMultiline(w, "Taints", node.Spec.Taints)
|
printNodeTaintsMultiline(w, "Taints", node.Spec.Taints)
|
||||||
|
|
|
@ -35,7 +35,6 @@ import (
|
||||||
"k8s.io/apimachinery/pkg/labels"
|
"k8s.io/apimachinery/pkg/labels"
|
||||||
"k8s.io/apimachinery/pkg/runtime"
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
"k8s.io/apimachinery/pkg/util/sets"
|
"k8s.io/apimachinery/pkg/util/sets"
|
||||||
"k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm"
|
|
||||||
"k8s.io/kubernetes/federation/apis/federation"
|
"k8s.io/kubernetes/federation/apis/federation"
|
||||||
"k8s.io/kubernetes/pkg/api"
|
"k8s.io/kubernetes/pkg/api"
|
||||||
"k8s.io/kubernetes/pkg/api/events"
|
"k8s.io/kubernetes/pkg/api/events"
|
||||||
|
@ -1033,10 +1032,6 @@ func printNode(node *api.Node, w io.Writer, options printers.PrintOptions) error
|
||||||
if node.Spec.Unschedulable {
|
if node.Spec.Unschedulable {
|
||||||
status = append(status, "SchedulingDisabled")
|
status = append(status, "SchedulingDisabled")
|
||||||
}
|
}
|
||||||
role := findNodeRole(node)
|
|
||||||
if role != "" {
|
|
||||||
status = append(status, role)
|
|
||||||
}
|
|
||||||
|
|
||||||
if _, err := fmt.Fprintf(w, "%s\t%s\t%s\t%s", name, strings.Join(status, ","), translateTimestamp(node.CreationTimestamp), node.Status.NodeInfo.KubeletVersion); err != nil {
|
if _, err := fmt.Fprintf(w, "%s\t%s\t%s\t%s", name, strings.Join(status, ","), translateTimestamp(node.CreationTimestamp), node.Status.NodeInfo.KubeletVersion); err != nil {
|
||||||
return err
|
return err
|
||||||
|
@ -1076,19 +1071,6 @@ func getNodeExternalIP(node *api.Node) string {
|
||||||
return "<none>"
|
return "<none>"
|
||||||
}
|
}
|
||||||
|
|
||||||
// findNodeRole returns the role of a given node, or "" if none found.
|
|
||||||
// The role is determined by looking in order for:
|
|
||||||
// * a kubernetes.io/role label
|
|
||||||
// * a kubeadm.alpha.kubernetes.io/role label
|
|
||||||
// If no role is found, ("", nil) is returned
|
|
||||||
func findNodeRole(node *api.Node) string {
|
|
||||||
if role := node.Labels[kubeadm.NodeLabelKubeadmAlphaRole]; role != "" {
|
|
||||||
return role
|
|
||||||
}
|
|
||||||
// No role found
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
|
|
||||||
func printNodeList(list *api.NodeList, w io.Writer, options printers.PrintOptions) error {
|
func printNodeList(list *api.NodeList, w io.Writer, options printers.PrintOptions) error {
|
||||||
for _, node := range list.Items {
|
for _, node := range list.Items {
|
||||||
if err := printNode(&node, w, options); err != nil {
|
if err := printNode(&node, w, options); err != nil {
|
||||||
|
|
|
@ -704,16 +704,6 @@ func TestPrintNodeStatus(t *testing.T) {
|
||||||
},
|
},
|
||||||
status: "Unknown,SchedulingDisabled",
|
status: "Unknown,SchedulingDisabled",
|
||||||
},
|
},
|
||||||
{
|
|
||||||
node: api.Node{
|
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
|
||||||
Name: "foo12",
|
|
||||||
Labels: map[string]string{"kubeadm.alpha.kubernetes.io/role": "node"},
|
|
||||||
},
|
|
||||||
Status: api.NodeStatus{Conditions: []api.NodeCondition{{Type: api.NodeReady, Status: api.ConditionTrue}}},
|
|
||||||
},
|
|
||||||
status: "Ready,node",
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, test := range table {
|
for _, test := range table {
|
||||||
|
|
Loading…
Reference in New Issue