mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-11-04 04:08:16 +00:00 
			
		
		
		
	Merge pull request #6211 from dchen1107/docker
publish node components version information
This commit is contained in:
		@@ -407,6 +407,14 @@ func describeNode(node *api.Node, pods []api.Pod, events *api.EventList) (string
 | 
			
		||||
				fmt.Fprintf(out, " %s:\t%s\n", resource, value.String())
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		fmt.Fprintf(out, "Version:\n")
 | 
			
		||||
		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, " 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, " Kube-Proxy Version:\t%s\n", node.Status.NodeInfo.KubeProxyVersion)
 | 
			
		||||
 | 
			
		||||
		if len(node.Spec.PodCIDR) > 0 {
 | 
			
		||||
			fmt.Fprintf(out, "PodCIDR:\t%s\n", node.Spec.PodCIDR)
 | 
			
		||||
		}
 | 
			
		||||
 
 | 
			
		||||
@@ -39,6 +39,10 @@ func (c *Fake) MachineInfo() (*cadvisorApi.MachineInfo, error) {
 | 
			
		||||
	return new(cadvisorApi.MachineInfo), nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Fake) VersionInfo() (*cadvisorApi.VersionInfo, error) {
 | 
			
		||||
	return new(cadvisorApi.VersionInfo), nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Fake) DockerImagesFsInfo() (cadvisorApiV2.FsInfo, error) {
 | 
			
		||||
	return cadvisorApiV2.FsInfo{}, nil
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -109,6 +109,10 @@ func (self *cadvisorClient) ContainerInfo(name string, req *cadvisorApi.Containe
 | 
			
		||||
	return self.GetContainerInfo(name, req)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (self *cadvisorClient) VersionInfo() (*cadvisorApi.VersionInfo, error) {
 | 
			
		||||
	return self.GetVersionInfo()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (self *cadvisorClient) MachineInfo() (*cadvisorApi.MachineInfo, error) {
 | 
			
		||||
	return self.GetMachineInfo()
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -46,6 +46,11 @@ func (c *Mock) MachineInfo() (*cadvisorApi.MachineInfo, error) {
 | 
			
		||||
	return args.Get(0).(*cadvisorApi.MachineInfo), args.Error(1)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Mock) VersionInfo() (*cadvisorApi.VersionInfo, error) {
 | 
			
		||||
	args := c.Called()
 | 
			
		||||
	return args.Get(0).(*cadvisorApi.VersionInfo), args.Error(1)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Mock) DockerImagesFsInfo() (cadvisorApiV2.FsInfo, error) {
 | 
			
		||||
	args := c.Called()
 | 
			
		||||
	return args.Get(0).(cadvisorApiV2.FsInfo), args.Error(1)
 | 
			
		||||
 
 | 
			
		||||
@@ -48,6 +48,10 @@ func (self *cadvisorUnsupported) MachineInfo() (*cadvisorApi.MachineInfo, error)
 | 
			
		||||
	return nil, unsupportedErr
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (self *cadvisorUnsupported) VersionInfo() (*cadvisorApi.VersionInfo, error) {
 | 
			
		||||
	return nil, unsupportedErr
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (self *cadvisorUnsupported) DockerImagesFsInfo() (cadvisorApiV2.FsInfo, error) {
 | 
			
		||||
	return cadvisorApiV2.FsInfo{}, unsupportedErr
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -27,6 +27,8 @@ type Interface interface {
 | 
			
		||||
	ContainerInfo(name string, req *cadvisorApi.ContainerInfoRequest) (*cadvisorApi.ContainerInfo, error)
 | 
			
		||||
	MachineInfo() (*cadvisorApi.MachineInfo, error)
 | 
			
		||||
 | 
			
		||||
	VersionInfo() (*cadvisorApi.VersionInfo, error)
 | 
			
		||||
 | 
			
		||||
	// Returns usage information about the filesystem holding Docker images.
 | 
			
		||||
	DockerImagesFsInfo() (cadvisorApiV2.FsInfo, error)
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -51,6 +51,7 @@ import (
 | 
			
		||||
	"github.com/GoogleCloudPlatform/kubernetes/pkg/types"
 | 
			
		||||
	"github.com/GoogleCloudPlatform/kubernetes/pkg/util"
 | 
			
		||||
	utilErrors "github.com/GoogleCloudPlatform/kubernetes/pkg/util/errors"
 | 
			
		||||
	"github.com/GoogleCloudPlatform/kubernetes/pkg/version"
 | 
			
		||||
	"github.com/GoogleCloudPlatform/kubernetes/pkg/volume"
 | 
			
		||||
	"github.com/GoogleCloudPlatform/kubernetes/pkg/watch"
 | 
			
		||||
	"github.com/fsouza/go-dockerclient"
 | 
			
		||||
@@ -1783,6 +1784,19 @@ func (kl *Kubelet) tryUpdateNodeStatus() error {
 | 
			
		||||
		node.Status.NodeInfo.BootID = info.BootID
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	verinfo, err := kl.cadvisor.VersionInfo()
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		glog.Error("error getting version info: %v", err)
 | 
			
		||||
	} else {
 | 
			
		||||
		node.Status.NodeInfo.KernelVersion = verinfo.KernelVersion
 | 
			
		||||
		node.Status.NodeInfo.OsImage = verinfo.ContainerOsVersion
 | 
			
		||||
		// TODO: Determine the runtime is docker or rocket
 | 
			
		||||
		node.Status.NodeInfo.ContainerRuntimeVersion = "docker://" + verinfo.DockerVersion
 | 
			
		||||
		node.Status.NodeInfo.KubeletVersion = version.Get().String()
 | 
			
		||||
		// TODO: kube-proxy might be different version from kubelet in the future
 | 
			
		||||
		node.Status.NodeInfo.KubeProxyVersion = version.Get().String()
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	currentTime := util.Now()
 | 
			
		||||
	newCondition := api.NodeCondition{
 | 
			
		||||
		Type:          api.NodeReady,
 | 
			
		||||
 
 | 
			
		||||
@@ -47,6 +47,7 @@ import (
 | 
			
		||||
	"github.com/GoogleCloudPlatform/kubernetes/pkg/kubelet/network"
 | 
			
		||||
	"github.com/GoogleCloudPlatform/kubernetes/pkg/types"
 | 
			
		||||
	"github.com/GoogleCloudPlatform/kubernetes/pkg/util"
 | 
			
		||||
	"github.com/GoogleCloudPlatform/kubernetes/pkg/version"
 | 
			
		||||
	"github.com/GoogleCloudPlatform/kubernetes/pkg/volume"
 | 
			
		||||
	_ "github.com/GoogleCloudPlatform/kubernetes/pkg/volume/host_path"
 | 
			
		||||
	"github.com/fsouza/go-dockerclient"
 | 
			
		||||
@@ -3063,6 +3064,12 @@ func TestUpdateNewNodeStatus(t *testing.T) {
 | 
			
		||||
		MemoryCapacity: 1024,
 | 
			
		||||
	}
 | 
			
		||||
	mockCadvisor.On("MachineInfo").Return(machineInfo, nil)
 | 
			
		||||
	versionInfo := &cadvisorApi.VersionInfo{
 | 
			
		||||
		KernelVersion:      "3.16.0-0.bpo.4-amd64",
 | 
			
		||||
		ContainerOsVersion: "Debian GNU/Linux 7 (wheezy)",
 | 
			
		||||
		DockerVersion:      "1.5.0",
 | 
			
		||||
	}
 | 
			
		||||
	mockCadvisor.On("VersionInfo").Return(versionInfo, nil)
 | 
			
		||||
	expectedNode := &api.Node{
 | 
			
		||||
		ObjectMeta: api.ObjectMeta{Name: "testnode"},
 | 
			
		||||
		Spec:       api.NodeSpec{},
 | 
			
		||||
@@ -3080,6 +3087,11 @@ func TestUpdateNewNodeStatus(t *testing.T) {
 | 
			
		||||
				MachineID:               "123",
 | 
			
		||||
				SystemUUID:              "abc",
 | 
			
		||||
				BootID:                  "1b3",
 | 
			
		||||
				KernelVersion:           "3.16.0-0.bpo.4-amd64",
 | 
			
		||||
				OsImage:                 "Debian GNU/Linux 7 (wheezy)",
 | 
			
		||||
				ContainerRuntimeVersion: "docker://1.5.0",
 | 
			
		||||
				KubeletVersion:          version.Get().String(),
 | 
			
		||||
				KubeProxyVersion:        version.Get().String(),
 | 
			
		||||
			},
 | 
			
		||||
			Capacity: api.ResourceList{
 | 
			
		||||
				api.ResourceCPU:    *resource.NewMilliQuantity(2000, resource.DecimalSI),
 | 
			
		||||
@@ -3145,6 +3157,12 @@ func TestUpdateExistingNodeStatus(t *testing.T) {
 | 
			
		||||
		MemoryCapacity: 1024,
 | 
			
		||||
	}
 | 
			
		||||
	mockCadvisor.On("MachineInfo").Return(machineInfo, nil)
 | 
			
		||||
	versionInfo := &cadvisorApi.VersionInfo{
 | 
			
		||||
		KernelVersion:      "3.16.0-0.bpo.4-amd64",
 | 
			
		||||
		ContainerOsVersion: "Debian GNU/Linux 7 (wheezy)",
 | 
			
		||||
		DockerVersion:      "1.5.0",
 | 
			
		||||
	}
 | 
			
		||||
	mockCadvisor.On("VersionInfo").Return(versionInfo, nil)
 | 
			
		||||
	expectedNode := &api.Node{
 | 
			
		||||
		ObjectMeta: api.ObjectMeta{Name: "testnode"},
 | 
			
		||||
		Spec:       api.NodeSpec{},
 | 
			
		||||
@@ -3162,6 +3180,11 @@ func TestUpdateExistingNodeStatus(t *testing.T) {
 | 
			
		||||
				MachineID:               "123",
 | 
			
		||||
				SystemUUID:              "abc",
 | 
			
		||||
				BootID:                  "1b3",
 | 
			
		||||
				KernelVersion:           "3.16.0-0.bpo.4-amd64",
 | 
			
		||||
				OsImage:                 "Debian GNU/Linux 7 (wheezy)",
 | 
			
		||||
				ContainerRuntimeVersion: "docker://1.5.0",
 | 
			
		||||
				KubeletVersion:          version.Get().String(),
 | 
			
		||||
				KubeProxyVersion:        version.Get().String(),
 | 
			
		||||
			},
 | 
			
		||||
			Capacity: api.ResourceList{
 | 
			
		||||
				api.ResourceCPU:    *resource.NewMilliQuantity(2000, resource.DecimalSI),
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user