Add operatingsystem/architecture as node labels. Also, display that in status
This commit is contained in:
parent
dee24333ff
commit
c28524fbab
@ -1830,6 +1830,10 @@ type NodeSystemInfo struct {
|
|||||||
KubeletVersion string `json:"kubeletVersion"`
|
KubeletVersion string `json:"kubeletVersion"`
|
||||||
// KubeProxy Version reported by the node.
|
// KubeProxy Version reported by the node.
|
||||||
KubeProxyVersion string `json:"kubeProxyVersion"`
|
KubeProxyVersion string `json:"kubeProxyVersion"`
|
||||||
|
// The Operating System reported by the node
|
||||||
|
OperatingSystem string `json:"operatingSystem"`
|
||||||
|
// The Architecture reported by the node
|
||||||
|
Architecture string `json:"architecture"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// NodeStatus is information about the current status of a node.
|
// NodeStatus is information about the current status of a node.
|
||||||
|
@ -24,4 +24,7 @@ const (
|
|||||||
LabelZoneRegion = "failure-domain.beta.kubernetes.io/region"
|
LabelZoneRegion = "failure-domain.beta.kubernetes.io/region"
|
||||||
|
|
||||||
LabelInstanceType = "beta.kubernetes.io/instance-type"
|
LabelInstanceType = "beta.kubernetes.io/instance-type"
|
||||||
|
|
||||||
|
LabelOS = "beta.kubernetes.io/os"
|
||||||
|
LabelArch = "beta.kubernetes.io/arch"
|
||||||
)
|
)
|
||||||
|
@ -2206,6 +2206,10 @@ type NodeSystemInfo struct {
|
|||||||
KubeletVersion string `json:"kubeletVersion" protobuf:"bytes,7,opt,name=kubeletVersion"`
|
KubeletVersion string `json:"kubeletVersion" protobuf:"bytes,7,opt,name=kubeletVersion"`
|
||||||
// KubeProxy Version reported by the node.
|
// KubeProxy Version reported by the node.
|
||||||
KubeProxyVersion string `json:"kubeProxyVersion" protobuf:"bytes,8,opt,name=kubeProxyVersion"`
|
KubeProxyVersion string `json:"kubeProxyVersion" protobuf:"bytes,8,opt,name=kubeProxyVersion"`
|
||||||
|
// The Operating System reported by the node
|
||||||
|
OperatingSystem string `json:"operatingSystem" protobuf:"bytes,9,opt,name=operatingSystem"`
|
||||||
|
// The Architecture reported by the node
|
||||||
|
Architecture string `json:"architecture" protobuf:"bytes,10,opt,name=architecture"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// NodeStatus is information about the current status of a node.
|
// NodeStatus is information about the current status of a node.
|
||||||
|
@ -1638,6 +1638,8 @@ func describeNode(node *api.Node, nodeNonTerminatedPodsList *api.PodList, events
|
|||||||
fmt.Fprintf(out, " Boot ID:\t%s\n", node.Status.NodeInfo.BootID)
|
fmt.Fprintf(out, " Boot ID:\t%s\n", node.Status.NodeInfo.BootID)
|
||||||
fmt.Fprintf(out, " Kernel Version:\t%s\n", node.Status.NodeInfo.KernelVersion)
|
fmt.Fprintf(out, " Kernel Version:\t%s\n", node.Status.NodeInfo.KernelVersion)
|
||||||
fmt.Fprintf(out, " OS Image:\t%s\n", node.Status.NodeInfo.OSImage)
|
fmt.Fprintf(out, " OS Image:\t%s\n", node.Status.NodeInfo.OSImage)
|
||||||
|
fmt.Fprintf(out, " Operating System:\t%s\n", node.Status.NodeInfo.OperatingSystem)
|
||||||
|
fmt.Fprintf(out, " Architecture:\t%s\n", node.Status.NodeInfo.Architecture)
|
||||||
fmt.Fprintf(out, " Container Runtime Version:\t%s\n", node.Status.NodeInfo.ContainerRuntimeVersion)
|
fmt.Fprintf(out, " Container Runtime Version:\t%s\n", node.Status.NodeInfo.ContainerRuntimeVersion)
|
||||||
fmt.Fprintf(out, " Kubelet Version:\t%s\n", node.Status.NodeInfo.KubeletVersion)
|
fmt.Fprintf(out, " Kubelet Version:\t%s\n", node.Status.NodeInfo.KubeletVersion)
|
||||||
fmt.Fprintf(out, " Kube-Proxy Version:\t%s\n", node.Status.NodeInfo.KubeProxyVersion)
|
fmt.Fprintf(out, " Kube-Proxy Version:\t%s\n", node.Status.NodeInfo.KubeProxyVersion)
|
||||||
|
@ -26,6 +26,7 @@ import (
|
|||||||
"os"
|
"os"
|
||||||
"path"
|
"path"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
|
goRuntime "runtime"
|
||||||
"sort"
|
"sort"
|
||||||
"strings"
|
"strings"
|
||||||
"sync"
|
"sync"
|
||||||
@ -963,8 +964,12 @@ func (kl *Kubelet) Run(updates <-chan kubetypes.PodUpdate) {
|
|||||||
func (kl *Kubelet) initialNodeStatus() (*api.Node, error) {
|
func (kl *Kubelet) initialNodeStatus() (*api.Node, error) {
|
||||||
node := &api.Node{
|
node := &api.Node{
|
||||||
ObjectMeta: api.ObjectMeta{
|
ObjectMeta: api.ObjectMeta{
|
||||||
Name: kl.nodeName,
|
Name: kl.nodeName,
|
||||||
Labels: map[string]string{unversioned.LabelHostname: kl.hostname},
|
Labels: map[string]string{
|
||||||
|
unversioned.LabelHostname: kl.hostname,
|
||||||
|
unversioned.LabelOS: goRuntime.GOOS,
|
||||||
|
unversioned.LabelArch: goRuntime.GOARCH,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
Spec: api.NodeSpec{
|
Spec: api.NodeSpec{
|
||||||
Unschedulable: !kl.registerSchedulable,
|
Unschedulable: !kl.registerSchedulable,
|
||||||
@ -3006,7 +3011,7 @@ func (kl *Kubelet) setNodeStatusDaemonEndpoints(node *api.Node) {
|
|||||||
node.Status.DaemonEndpoints = *kl.daemonEndpoints
|
node.Status.DaemonEndpoints = *kl.daemonEndpoints
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set images list fot this node
|
// Set images list for the node
|
||||||
func (kl *Kubelet) setNodeStatusImages(node *api.Node) {
|
func (kl *Kubelet) setNodeStatusImages(node *api.Node) {
|
||||||
// Update image list of this node
|
// Update image list of this node
|
||||||
var imagesOnNode []api.ContainerImage
|
var imagesOnNode []api.ContainerImage
|
||||||
@ -3024,12 +3029,19 @@ func (kl *Kubelet) setNodeStatusImages(node *api.Node) {
|
|||||||
node.Status.Images = imagesOnNode
|
node.Status.Images = imagesOnNode
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Set the GOOS and GOARCH for this node
|
||||||
|
func (kl *Kubelet) setNodeStatusGoRuntime(node *api.Node) {
|
||||||
|
node.Status.NodeInfo.OperatingSystem = goRuntime.GOOS
|
||||||
|
node.Status.NodeInfo.Architecture = goRuntime.GOARCH
|
||||||
|
}
|
||||||
|
|
||||||
// Set status for the node.
|
// Set status for the node.
|
||||||
func (kl *Kubelet) setNodeStatusInfo(node *api.Node) {
|
func (kl *Kubelet) setNodeStatusInfo(node *api.Node) {
|
||||||
kl.setNodeStatusMachineInfo(node)
|
kl.setNodeStatusMachineInfo(node)
|
||||||
kl.setNodeStatusVersionInfo(node)
|
kl.setNodeStatusVersionInfo(node)
|
||||||
kl.setNodeStatusDaemonEndpoints(node)
|
kl.setNodeStatusDaemonEndpoints(node)
|
||||||
kl.setNodeStatusImages(node)
|
kl.setNodeStatusImages(node)
|
||||||
|
kl.setNodeStatusGoRuntime(node)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set Readycondition for the node.
|
// Set Readycondition for the node.
|
||||||
|
@ -2566,6 +2566,8 @@ func TestUpdateNewNodeStatus(t *testing.T) {
|
|||||||
BootID: "1b3",
|
BootID: "1b3",
|
||||||
KernelVersion: "3.16.0-0.bpo.4-amd64",
|
KernelVersion: "3.16.0-0.bpo.4-amd64",
|
||||||
OSImage: "Debian GNU/Linux 7 (wheezy)",
|
OSImage: "Debian GNU/Linux 7 (wheezy)",
|
||||||
|
OperatingSystem: "linux",
|
||||||
|
Architecture: "amd64",
|
||||||
ContainerRuntimeVersion: "test://1.5.0",
|
ContainerRuntimeVersion: "test://1.5.0",
|
||||||
KubeletVersion: version.Get().String(),
|
KubeletVersion: version.Get().String(),
|
||||||
KubeProxyVersion: version.Get().String(),
|
KubeProxyVersion: version.Get().String(),
|
||||||
@ -2797,6 +2799,8 @@ func TestUpdateExistingNodeStatus(t *testing.T) {
|
|||||||
BootID: "1b3",
|
BootID: "1b3",
|
||||||
KernelVersion: "3.16.0-0.bpo.4-amd64",
|
KernelVersion: "3.16.0-0.bpo.4-amd64",
|
||||||
OSImage: "Debian GNU/Linux 7 (wheezy)",
|
OSImage: "Debian GNU/Linux 7 (wheezy)",
|
||||||
|
OperatingSystem: "linux",
|
||||||
|
Architecture: "amd64",
|
||||||
ContainerRuntimeVersion: "test://1.5.0",
|
ContainerRuntimeVersion: "test://1.5.0",
|
||||||
KubeletVersion: version.Get().String(),
|
KubeletVersion: version.Get().String(),
|
||||||
KubeProxyVersion: version.Get().String(),
|
KubeProxyVersion: version.Get().String(),
|
||||||
@ -3068,6 +3072,8 @@ func TestUpdateNodeStatusWithRuntimeStateError(t *testing.T) {
|
|||||||
BootID: "1b3",
|
BootID: "1b3",
|
||||||
KernelVersion: "3.16.0-0.bpo.4-amd64",
|
KernelVersion: "3.16.0-0.bpo.4-amd64",
|
||||||
OSImage: "Debian GNU/Linux 7 (wheezy)",
|
OSImage: "Debian GNU/Linux 7 (wheezy)",
|
||||||
|
OperatingSystem: "linux",
|
||||||
|
Architecture: "amd64",
|
||||||
ContainerRuntimeVersion: "test://1.5.0",
|
ContainerRuntimeVersion: "test://1.5.0",
|
||||||
KubeletVersion: version.Get().String(),
|
KubeletVersion: version.Get().String(),
|
||||||
KubeProxyVersion: version.Get().String(),
|
KubeProxyVersion: version.Get().String(),
|
||||||
|
Loading…
Reference in New Issue
Block a user