mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-14 06:15:45 +00:00
kubectl show node role if defined
This commit is contained in:
parent
3537f8fa34
commit
568d809b24
@ -55,7 +55,6 @@ go_library(
|
|||||||
"printers.go",
|
"printers.go",
|
||||||
],
|
],
|
||||||
deps = [
|
deps = [
|
||||||
"//cmd/kubeadm/app/apis/kubeadm:go_default_library",
|
|
||||||
"//federation/apis/federation:go_default_library",
|
"//federation/apis/federation:go_default_library",
|
||||||
"//federation/apis/federation/v1beta1:go_default_library",
|
"//federation/apis/federation/v1beta1:go_default_library",
|
||||||
"//federation/client/clientset_generated/federation_clientset:go_default_library",
|
"//federation/client/clientset_generated/federation_clientset:go_default_library",
|
||||||
|
@ -41,7 +41,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"
|
||||||
@ -60,7 +59,20 @@ import (
|
|||||||
"k8s.io/kubernetes/pkg/util/node"
|
"k8s.io/kubernetes/pkg/util/node"
|
||||||
)
|
)
|
||||||
|
|
||||||
const loadBalancerWidth = 16
|
const (
|
||||||
|
loadBalancerWidth = 16
|
||||||
|
|
||||||
|
// LabelNodeRoleMaster specifies that a node is a master
|
||||||
|
// It's copied over to here until it's merged in core: https://github.com/kubernetes/kubernetes/pull/39112
|
||||||
|
LabelNodeRoleMaster = "node-role.kubernetes.io/master"
|
||||||
|
|
||||||
|
// NodeLabelRole specifies the role of a node
|
||||||
|
NodeLabelRole = "kubernetes.io/role"
|
||||||
|
|
||||||
|
// 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"
|
||||||
|
)
|
||||||
|
|
||||||
// AddHandlers adds print handlers for default Kubernetes types dealing with internal versions.
|
// AddHandlers adds print handlers for default Kubernetes types dealing with internal versions.
|
||||||
// TODO: handle errors from Handler
|
// TODO: handle errors from Handler
|
||||||
@ -1193,14 +1205,19 @@ func getNodeExternalIP(node *api.Node) string {
|
|||||||
|
|
||||||
// findNodeRole returns the role of a given node, or "" if none found.
|
// findNodeRole returns the role of a given node, or "" if none found.
|
||||||
// The role is determined by looking in order for:
|
// The role is determined by looking in order for:
|
||||||
|
// * a node-role.kubernetes.io/master label
|
||||||
// * a kubernetes.io/role label
|
// * a kubernetes.io/role label
|
||||||
// * a kubeadm.alpha.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 {
|
func findNodeRole(node *api.Node) string {
|
||||||
if role := node.Labels[kubeadm.NodeLabelKubeadmAlphaRole]; role != "" {
|
if _, ok := node.Labels[LabelNodeRoleMaster]; ok {
|
||||||
return role
|
return "Master"
|
||||||
|
}
|
||||||
|
if role := node.Labels[NodeLabelRole]; role != "" {
|
||||||
|
return strings.Title(role)
|
||||||
|
}
|
||||||
|
if role := node.Labels[NodeLabelKubeadmAlphaRole]; role != "" {
|
||||||
|
return strings.Title(role)
|
||||||
}
|
}
|
||||||
// No role found
|
|
||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -825,6 +825,24 @@ func TestPrintNodeStatus(t *testing.T) {
|
|||||||
},
|
},
|
||||||
status: "Unknown,SchedulingDisabled",
|
status: "Unknown,SchedulingDisabled",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
node: api.Node{
|
||||||
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
|
Name: "foo10",
|
||||||
|
Labels: map[string]string{"node-role.kubernetes.io/master": "", "kubernetes.io/role": "node", "kubeadm.alpha.kubernetes.io/role": "node"},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
status: "Unknown,Master",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
node: api.Node{
|
||||||
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
|
Name: "foo11",
|
||||||
|
Labels: map[string]string{"kubernetes.io/role": "node", "kubeadm.alpha.kubernetes.io/role": "node"},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
status: "Unknown,Node",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
node: api.Node{
|
node: api.Node{
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
@ -833,7 +851,7 @@ func TestPrintNodeStatus(t *testing.T) {
|
|||||||
},
|
},
|
||||||
Status: api.NodeStatus{Conditions: []api.NodeCondition{{Type: api.NodeReady, Status: api.ConditionTrue}}},
|
Status: api.NodeStatus{Conditions: []api.NodeCondition{{Type: api.NodeReady, Status: api.ConditionTrue}}},
|
||||||
},
|
},
|
||||||
status: "Ready,node",
|
status: "Ready,Node",
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user