mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-03 09:22:44 +00:00
kubelet/cadvisor: Refactor cadvisor disk stat/usage interfaces
This commit is contained in:
parent
f3ab7b182f
commit
ae08ef38d7
@ -330,7 +330,7 @@ func run(s *options.KubeletServer, kcfg *KubeletConfig) (err error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if kcfg.CAdvisorInterface == nil {
|
if kcfg.CAdvisorInterface == nil {
|
||||||
kcfg.CAdvisorInterface, err = cadvisor.New(s.CAdvisorPort)
|
kcfg.CAdvisorInterface, err = cadvisor.New(s.CAdvisorPort, kcfg.ContainerRuntime)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -28,8 +28,8 @@ type MesosCadvisor struct {
|
|||||||
mem uint64
|
mem uint64
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewMesosCadvisor(cores int, mem uint64, port uint) (*MesosCadvisor, error) {
|
func NewMesosCadvisor(cores int, mem uint64, port uint, runtime string) (*MesosCadvisor, error) {
|
||||||
c, err := cadvisor.New(port)
|
c, err := cadvisor.New(port, runtime)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -209,7 +209,7 @@ func (s *KubeletExecutorServer) runKubelet(
|
|||||||
|
|
||||||
// create custom cAdvisor interface which return the resource values that Mesos reports
|
// create custom cAdvisor interface which return the resource values that Mesos reports
|
||||||
ni := <-nodeInfos
|
ni := <-nodeInfos
|
||||||
cAdvisorInterface, err := NewMesosCadvisor(ni.Cores, ni.Mem, s.CAdvisorPort)
|
cAdvisorInterface, err := NewMesosCadvisor(ni.Cores, ni.Mem, s.CAdvisorPort, kcfg.ContainerRuntime)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -39,6 +39,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type cadvisorClient struct {
|
type cadvisorClient struct {
|
||||||
|
runtime string
|
||||||
manager.Manager
|
manager.Manager
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -60,7 +61,7 @@ func init() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Creates a cAdvisor and exports its API on the specified port if port > 0.
|
// Creates a cAdvisor and exports its API on the specified port if port > 0.
|
||||||
func New(port uint) (Interface, error) {
|
func New(port uint, runtime string) (Interface, error) {
|
||||||
sysFs, err := sysfs.NewRealSysFs()
|
sysFs, err := sysfs.NewRealSysFs()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@ -73,6 +74,7 @@ func New(port uint) (Interface, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
cadvisorClient := &cadvisorClient{
|
cadvisorClient := &cadvisorClient{
|
||||||
|
runtime: runtime,
|
||||||
Manager: m,
|
Manager: m,
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -163,8 +165,19 @@ func (cc *cadvisorClient) MachineInfo() (*cadvisorapi.MachineInfo, error) {
|
|||||||
return cc.GetMachineInfo()
|
return cc.GetMachineInfo()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (cc *cadvisorClient) DockerImagesFsInfo() (cadvisorapiv2.FsInfo, error) {
|
func (cc *cadvisorClient) ImagesFsInfo() (cadvisorapiv2.FsInfo, error) {
|
||||||
return cc.getFsInfo(cadvisorfs.LabelDockerImages)
|
var label string
|
||||||
|
|
||||||
|
switch cc.runtime {
|
||||||
|
case "docker":
|
||||||
|
label = cadvisorfs.LabelDockerImages
|
||||||
|
case "rkt":
|
||||||
|
label = cadvisorfs.LabelRktImages
|
||||||
|
default:
|
||||||
|
return cadvisorapiv2.FsInfo{}, fmt.Errorf("ImagesFsInfo: unknown runtime: %v", cc.runtime)
|
||||||
|
}
|
||||||
|
|
||||||
|
return cc.getFsInfo(label)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (cc *cadvisorClient) RootFsInfo() (cadvisorapiv2.FsInfo, error) {
|
func (cc *cadvisorClient) RootFsInfo() (cadvisorapiv2.FsInfo, error) {
|
||||||
|
@ -31,7 +31,7 @@ type cadvisorUnsupported struct {
|
|||||||
|
|
||||||
var _ Interface = new(cadvisorUnsupported)
|
var _ Interface = new(cadvisorUnsupported)
|
||||||
|
|
||||||
func New(port uint) (Interface, error) {
|
func New(port uint, runtime string) (Interface, error) {
|
||||||
return &cadvisorUnsupported{}, nil
|
return &cadvisorUnsupported{}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -65,7 +65,7 @@ func (cu *cadvisorUnsupported) VersionInfo() (*cadvisorapi.VersionInfo, error) {
|
|||||||
return nil, unsupportedErr
|
return nil, unsupportedErr
|
||||||
}
|
}
|
||||||
|
|
||||||
func (cu *cadvisorUnsupported) DockerImagesFsInfo() (cadvisorapiv2.FsInfo, error) {
|
func (cu *cadvisorUnsupported) ImagesFsInfo() (cadvisorapiv2.FsInfo, error) {
|
||||||
return cadvisorapiv2.FsInfo{}, unsupportedErr
|
return cadvisorapiv2.FsInfo{}, unsupportedErr
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -62,7 +62,7 @@ func (c *Fake) VersionInfo() (*cadvisorapi.VersionInfo, error) {
|
|||||||
return new(cadvisorapi.VersionInfo), nil
|
return new(cadvisorapi.VersionInfo), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Fake) DockerImagesFsInfo() (cadvisorapiv2.FsInfo, error) {
|
func (c *Fake) ImagesFsInfo() (cadvisorapiv2.FsInfo, error) {
|
||||||
return cadvisorapiv2.FsInfo{}, nil
|
return cadvisorapiv2.FsInfo{}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -69,7 +69,7 @@ func (c *Mock) VersionInfo() (*cadvisorapi.VersionInfo, error) {
|
|||||||
return args.Get(0).(*cadvisorapi.VersionInfo), args.Error(1)
|
return args.Get(0).(*cadvisorapi.VersionInfo), args.Error(1)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Mock) DockerImagesFsInfo() (cadvisorapiv2.FsInfo, error) {
|
func (c *Mock) ImagesFsInfo() (cadvisorapiv2.FsInfo, error) {
|
||||||
args := c.Called()
|
args := c.Called()
|
||||||
return args.Get(0).(cadvisorapiv2.FsInfo), args.Error(1)
|
return args.Get(0).(cadvisorapiv2.FsInfo), args.Error(1)
|
||||||
}
|
}
|
||||||
|
@ -34,7 +34,7 @@ type Interface interface {
|
|||||||
VersionInfo() (*cadvisorapi.VersionInfo, error)
|
VersionInfo() (*cadvisorapi.VersionInfo, error)
|
||||||
|
|
||||||
// Returns usage information about the filesystem holding Docker images.
|
// Returns usage information about the filesystem holding Docker images.
|
||||||
DockerImagesFsInfo() (cadvisorapiv2.FsInfo, error)
|
ImagesFsInfo() (cadvisorapiv2.FsInfo, error)
|
||||||
|
|
||||||
// Returns usage information about the root filesystem.
|
// Returns usage information about the root filesystem.
|
||||||
RootFsInfo() (cadvisorapiv2.FsInfo, error)
|
RootFsInfo() (cadvisorapiv2.FsInfo, error)
|
||||||
|
@ -35,7 +35,7 @@ const mb = 1024 * 1024
|
|||||||
type diskSpaceManager interface {
|
type diskSpaceManager interface {
|
||||||
// Checks the available disk space
|
// Checks the available disk space
|
||||||
IsRootDiskSpaceAvailable() (bool, error)
|
IsRootDiskSpaceAvailable() (bool, error)
|
||||||
IsDockerDiskSpaceAvailable() (bool, error)
|
IsRuntimeDiskSpaceAvailable() (bool, error)
|
||||||
}
|
}
|
||||||
|
|
||||||
type DiskSpacePolicy struct {
|
type DiskSpacePolicy struct {
|
||||||
@ -83,8 +83,8 @@ func (dm *realDiskSpaceManager) getFsInfo(fsType string, f func() (cadvisorapi.F
|
|||||||
return fsi, nil
|
return fsi, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (dm *realDiskSpaceManager) IsDockerDiskSpaceAvailable() (bool, error) {
|
func (dm *realDiskSpaceManager) IsRuntimeDiskSpaceAvailable() (bool, error) {
|
||||||
return dm.isSpaceAvailable("docker", dm.policy.DockerFreeDiskMB, dm.cadvisor.DockerImagesFsInfo)
|
return dm.isSpaceAvailable("runtime", dm.policy.DockerFreeDiskMB, dm.cadvisor.ImagesFsInfo)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (dm *realDiskSpaceManager) IsRootDiskSpaceAvailable() (bool, error) {
|
func (dm *realDiskSpaceManager) IsRootDiskSpaceAvailable() (bool, error) {
|
||||||
|
@ -61,7 +61,7 @@ func TestSpaceAvailable(t *testing.T) {
|
|||||||
dm, err := newDiskSpaceManager(mockCadvisor, policy)
|
dm, err := newDiskSpaceManager(mockCadvisor, policy)
|
||||||
assert.NoError(err)
|
assert.NoError(err)
|
||||||
|
|
||||||
mockCadvisor.On("DockerImagesFsInfo").Return(cadvisorapi.FsInfo{
|
mockCadvisor.On("ImagesFsInfo").Return(cadvisorapi.FsInfo{
|
||||||
Usage: 400 * mb,
|
Usage: 400 * mb,
|
||||||
Capacity: 1000 * mb,
|
Capacity: 1000 * mb,
|
||||||
Available: 600 * mb,
|
Available: 600 * mb,
|
||||||
@ -71,7 +71,7 @@ func TestSpaceAvailable(t *testing.T) {
|
|||||||
Capacity: 10 * mb,
|
Capacity: 10 * mb,
|
||||||
}, nil)
|
}, nil)
|
||||||
|
|
||||||
ok, err := dm.IsDockerDiskSpaceAvailable()
|
ok, err := dm.IsRuntimeDiskSpaceAvailable()
|
||||||
assert.NoError(err)
|
assert.NoError(err)
|
||||||
assert.True(ok)
|
assert.True(ok)
|
||||||
|
|
||||||
@ -80,31 +80,31 @@ func TestSpaceAvailable(t *testing.T) {
|
|||||||
assert.False(ok)
|
assert.False(ok)
|
||||||
}
|
}
|
||||||
|
|
||||||
// TestIsDockerDiskSpaceAvailableWithSpace verifies IsDockerDiskSpaceAvailable results when
|
// TestIsRuntimeDiskSpaceAvailableWithSpace verifies IsRuntimeDiskSpaceAvailable results when
|
||||||
// space is available.
|
// space is available.
|
||||||
func TestIsDockerDiskSpaceAvailableWithSpace(t *testing.T) {
|
func TestIsRuntimeDiskSpaceAvailableWithSpace(t *testing.T) {
|
||||||
assert, policy, mockCadvisor := setUp(t)
|
assert, policy, mockCadvisor := setUp(t)
|
||||||
dm, err := newDiskSpaceManager(mockCadvisor, policy)
|
dm, err := newDiskSpaceManager(mockCadvisor, policy)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
// 500MB available
|
// 500MB available
|
||||||
mockCadvisor.On("DockerImagesFsInfo").Return(cadvisorapi.FsInfo{
|
mockCadvisor.On("ImagesFsInfo").Return(cadvisorapi.FsInfo{
|
||||||
Usage: 9500 * mb,
|
Usage: 9500 * mb,
|
||||||
Capacity: 10000 * mb,
|
Capacity: 10000 * mb,
|
||||||
Available: 500 * mb,
|
Available: 500 * mb,
|
||||||
}, nil)
|
}, nil)
|
||||||
|
|
||||||
ok, err := dm.IsDockerDiskSpaceAvailable()
|
ok, err := dm.IsRuntimeDiskSpaceAvailable()
|
||||||
assert.NoError(err)
|
assert.NoError(err)
|
||||||
assert.True(ok)
|
assert.True(ok)
|
||||||
}
|
}
|
||||||
|
|
||||||
// TestIsDockerDiskSpaceAvailableWithoutSpace verifies IsDockerDiskSpaceAvailable results when
|
// TestIsRuntimeDiskSpaceAvailableWithoutSpace verifies IsRuntimeDiskSpaceAvailable results when
|
||||||
// space is not available.
|
// space is not available.
|
||||||
func TestIsDockerDiskSpaceAvailableWithoutSpace(t *testing.T) {
|
func TestIsRuntimeDiskSpaceAvailableWithoutSpace(t *testing.T) {
|
||||||
// 1MB available
|
// 1MB available
|
||||||
assert, policy, mockCadvisor := setUp(t)
|
assert, policy, mockCadvisor := setUp(t)
|
||||||
mockCadvisor.On("DockerImagesFsInfo").Return(cadvisorapi.FsInfo{
|
mockCadvisor.On("ImagesFsInfo").Return(cadvisorapi.FsInfo{
|
||||||
Usage: 999 * mb,
|
Usage: 999 * mb,
|
||||||
Capacity: 1000 * mb,
|
Capacity: 1000 * mb,
|
||||||
Available: 1 * mb,
|
Available: 1 * mb,
|
||||||
@ -113,7 +113,7 @@ func TestIsDockerDiskSpaceAvailableWithoutSpace(t *testing.T) {
|
|||||||
dm, err := newDiskSpaceManager(mockCadvisor, policy)
|
dm, err := newDiskSpaceManager(mockCadvisor, policy)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
ok, err := dm.IsDockerDiskSpaceAvailable()
|
ok, err := dm.IsRuntimeDiskSpaceAvailable()
|
||||||
assert.NoError(err)
|
assert.NoError(err)
|
||||||
assert.False(ok)
|
assert.False(ok)
|
||||||
}
|
}
|
||||||
@ -164,7 +164,7 @@ func TestCache(t *testing.T) {
|
|||||||
dm, err := newDiskSpaceManager(mockCadvisor, policy)
|
dm, err := newDiskSpaceManager(mockCadvisor, policy)
|
||||||
assert.NoError(err)
|
assert.NoError(err)
|
||||||
|
|
||||||
mockCadvisor.On("DockerImagesFsInfo").Return(cadvisorapi.FsInfo{
|
mockCadvisor.On("ImagesFsInfo").Return(cadvisorapi.FsInfo{
|
||||||
Usage: 400 * mb,
|
Usage: 400 * mb,
|
||||||
Capacity: 1000 * mb,
|
Capacity: 1000 * mb,
|
||||||
Available: 300 * mb,
|
Available: 300 * mb,
|
||||||
@ -176,7 +176,7 @@ func TestCache(t *testing.T) {
|
|||||||
}, nil).Once()
|
}, nil).Once()
|
||||||
|
|
||||||
// Initial calls which should be recorded in mockCadvisor
|
// Initial calls which should be recorded in mockCadvisor
|
||||||
ok, err := dm.IsDockerDiskSpaceAvailable()
|
ok, err := dm.IsRuntimeDiskSpaceAvailable()
|
||||||
assert.NoError(err)
|
assert.NoError(err)
|
||||||
assert.True(ok)
|
assert.True(ok)
|
||||||
|
|
||||||
@ -188,7 +188,7 @@ func TestCache(t *testing.T) {
|
|||||||
cadvisorCallCount := len(mockCadvisor.Calls)
|
cadvisorCallCount := len(mockCadvisor.Calls)
|
||||||
|
|
||||||
// Checking for space again shouldn't need to mock as cache would serve it.
|
// Checking for space again shouldn't need to mock as cache would serve it.
|
||||||
ok, err = dm.IsDockerDiskSpaceAvailable()
|
ok, err = dm.IsRuntimeDiskSpaceAvailable()
|
||||||
assert.NoError(err)
|
assert.NoError(err)
|
||||||
assert.True(ok)
|
assert.True(ok)
|
||||||
|
|
||||||
@ -208,9 +208,9 @@ func TestFsInfoError(t *testing.T) {
|
|||||||
dm, err := newDiskSpaceManager(mockCadvisor, policy)
|
dm, err := newDiskSpaceManager(mockCadvisor, policy)
|
||||||
assert.NoError(err)
|
assert.NoError(err)
|
||||||
|
|
||||||
mockCadvisor.On("DockerImagesFsInfo").Return(cadvisorapi.FsInfo{}, fmt.Errorf("can't find fs"))
|
mockCadvisor.On("ImagesFsInfo").Return(cadvisorapi.FsInfo{}, fmt.Errorf("can't find fs"))
|
||||||
mockCadvisor.On("RootFsInfo").Return(cadvisorapi.FsInfo{}, fmt.Errorf("EBUSY"))
|
mockCadvisor.On("RootFsInfo").Return(cadvisorapi.FsInfo{}, fmt.Errorf("EBUSY"))
|
||||||
ok, err := dm.IsDockerDiskSpaceAvailable()
|
ok, err := dm.IsRuntimeDiskSpaceAvailable()
|
||||||
assert.Error(err)
|
assert.Error(err)
|
||||||
assert.True(ok)
|
assert.True(ok)
|
||||||
ok, err = dm.IsRootDiskSpaceAvailable()
|
ok, err = dm.IsRootDiskSpaceAvailable()
|
||||||
|
@ -209,7 +209,7 @@ func (im *realImageManager) detectImages(detectTime time.Time) error {
|
|||||||
|
|
||||||
func (im *realImageManager) GarbageCollect() error {
|
func (im *realImageManager) GarbageCollect() error {
|
||||||
// Get disk usage on disk holding images.
|
// Get disk usage on disk holding images.
|
||||||
fsInfo, err := im.cadvisor.DockerImagesFsInfo()
|
fsInfo, err := im.cadvisor.ImagesFsInfo()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -373,7 +373,7 @@ func TestGarbageCollectBelowLowThreshold(t *testing.T) {
|
|||||||
manager, _, mockCadvisor := newRealImageManager(policy)
|
manager, _, mockCadvisor := newRealImageManager(policy)
|
||||||
|
|
||||||
// Expect 40% usage.
|
// Expect 40% usage.
|
||||||
mockCadvisor.On("DockerImagesFsInfo").Return(cadvisorapiv2.FsInfo{
|
mockCadvisor.On("ImagesFsInfo").Return(cadvisorapiv2.FsInfo{
|
||||||
Usage: 400,
|
Usage: 400,
|
||||||
Capacity: 1000,
|
Capacity: 1000,
|
||||||
}, nil)
|
}, nil)
|
||||||
@ -388,7 +388,7 @@ func TestGarbageCollectCadvisorFailure(t *testing.T) {
|
|||||||
}
|
}
|
||||||
manager, _, mockCadvisor := newRealImageManager(policy)
|
manager, _, mockCadvisor := newRealImageManager(policy)
|
||||||
|
|
||||||
mockCadvisor.On("DockerImagesFsInfo").Return(cadvisorapiv2.FsInfo{}, fmt.Errorf("error"))
|
mockCadvisor.On("ImagesFsInfo").Return(cadvisorapiv2.FsInfo{}, fmt.Errorf("error"))
|
||||||
assert.NotNil(t, manager.GarbageCollect())
|
assert.NotNil(t, manager.GarbageCollect())
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -400,7 +400,7 @@ func TestGarbageCollectBelowSuccess(t *testing.T) {
|
|||||||
manager, fakeRuntime, mockCadvisor := newRealImageManager(policy)
|
manager, fakeRuntime, mockCadvisor := newRealImageManager(policy)
|
||||||
|
|
||||||
// Expect 95% usage and most of it gets freed.
|
// Expect 95% usage and most of it gets freed.
|
||||||
mockCadvisor.On("DockerImagesFsInfo").Return(cadvisorapiv2.FsInfo{
|
mockCadvisor.On("ImagesFsInfo").Return(cadvisorapiv2.FsInfo{
|
||||||
Usage: 950,
|
Usage: 950,
|
||||||
Capacity: 1000,
|
Capacity: 1000,
|
||||||
}, nil)
|
}, nil)
|
||||||
@ -419,7 +419,7 @@ func TestGarbageCollectNotEnoughFreed(t *testing.T) {
|
|||||||
manager, fakeRuntime, mockCadvisor := newRealImageManager(policy)
|
manager, fakeRuntime, mockCadvisor := newRealImageManager(policy)
|
||||||
|
|
||||||
// Expect 95% usage and little of it gets freed.
|
// Expect 95% usage and little of it gets freed.
|
||||||
mockCadvisor.On("DockerImagesFsInfo").Return(cadvisorapiv2.FsInfo{
|
mockCadvisor.On("ImagesFsInfo").Return(cadvisorapiv2.FsInfo{
|
||||||
Usage: 950,
|
Usage: 950,
|
||||||
Capacity: 1000,
|
Capacity: 1000,
|
||||||
}, nil)
|
}, nil)
|
||||||
|
@ -2379,7 +2379,7 @@ func (kl *Kubelet) isOutOfDisk() bool {
|
|||||||
outOfDockerDisk := false
|
outOfDockerDisk := false
|
||||||
outOfRootDisk := false
|
outOfRootDisk := false
|
||||||
// Check disk space once globally and reject or accept all new pods.
|
// Check disk space once globally and reject or accept all new pods.
|
||||||
withinBounds, err := kl.diskSpaceManager.IsDockerDiskSpaceAvailable()
|
withinBounds, err := kl.diskSpaceManager.IsRuntimeDiskSpaceAvailable()
|
||||||
// Assume enough space in case of errors.
|
// Assume enough space in case of errors.
|
||||||
if err == nil && !withinBounds {
|
if err == nil && !withinBounds {
|
||||||
outOfDockerDisk = true
|
outOfDockerDisk = true
|
||||||
|
@ -50,10 +50,10 @@ func (kl *Kubelet) GetContainerInfoV2(name string, options cadvisorapiv2.Request
|
|||||||
return kl.cadvisor.ContainerInfoV2(name, options)
|
return kl.cadvisor.ContainerInfoV2(name, options)
|
||||||
}
|
}
|
||||||
|
|
||||||
// DockerImagesFsInfo returns information about docker image fs usage from
|
// ImagesFsInfo returns information about docker image fs usage from
|
||||||
// cadvisor.
|
// cadvisor.
|
||||||
func (kl *Kubelet) DockerImagesFsInfo() (cadvisorapiv2.FsInfo, error) {
|
func (kl *Kubelet) ImagesFsInfo() (cadvisorapiv2.FsInfo, error) {
|
||||||
return kl.cadvisor.DockerImagesFsInfo()
|
return kl.cadvisor.ImagesFsInfo()
|
||||||
}
|
}
|
||||||
|
|
||||||
// RootFsInfo returns info about the root fs from cadvisor.
|
// RootFsInfo returns info about the root fs from cadvisor.
|
||||||
|
@ -299,7 +299,7 @@ func TestSyncLoopAbort(t *testing.T) {
|
|||||||
func TestSyncPodsStartPod(t *testing.T) {
|
func TestSyncPodsStartPod(t *testing.T) {
|
||||||
testKubelet := newTestKubelet(t)
|
testKubelet := newTestKubelet(t)
|
||||||
testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil)
|
testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil)
|
||||||
testKubelet.fakeCadvisor.On("DockerImagesFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
|
testKubelet.fakeCadvisor.On("ImagesFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
|
||||||
testKubelet.fakeCadvisor.On("RootFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
|
testKubelet.fakeCadvisor.On("RootFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
|
||||||
kubelet := testKubelet.kubelet
|
kubelet := testKubelet.kubelet
|
||||||
fakeRuntime := testKubelet.fakeRuntime
|
fakeRuntime := testKubelet.fakeRuntime
|
||||||
@ -321,7 +321,7 @@ func TestSyncPodsDeletesWhenSourcesAreReady(t *testing.T) {
|
|||||||
testKubelet := newTestKubelet(t)
|
testKubelet := newTestKubelet(t)
|
||||||
fakeRuntime := testKubelet.fakeRuntime
|
fakeRuntime := testKubelet.fakeRuntime
|
||||||
testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil)
|
testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil)
|
||||||
testKubelet.fakeCadvisor.On("DockerImagesFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
|
testKubelet.fakeCadvisor.On("ImagesFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
|
||||||
testKubelet.fakeCadvisor.On("RootFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
|
testKubelet.fakeCadvisor.On("RootFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
|
||||||
kubelet := testKubelet.kubelet
|
kubelet := testKubelet.kubelet
|
||||||
kubelet.sourcesReady = config.NewSourcesReady(func(_ sets.String) bool { return ready })
|
kubelet.sourcesReady = config.NewSourcesReady(func(_ sets.String) bool { return ready })
|
||||||
@ -1967,7 +1967,7 @@ func TestHandlePortConflicts(t *testing.T) {
|
|||||||
testKubelet := newTestKubelet(t)
|
testKubelet := newTestKubelet(t)
|
||||||
kl := testKubelet.kubelet
|
kl := testKubelet.kubelet
|
||||||
testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil)
|
testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil)
|
||||||
testKubelet.fakeCadvisor.On("DockerImagesFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
|
testKubelet.fakeCadvisor.On("ImagesFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
|
||||||
testKubelet.fakeCadvisor.On("RootFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
|
testKubelet.fakeCadvisor.On("RootFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
|
||||||
|
|
||||||
kl.nodeLister = testNodeLister{nodes: []api.Node{
|
kl.nodeLister = testNodeLister{nodes: []api.Node{
|
||||||
@ -2028,7 +2028,7 @@ func TestHandleHostNameConflicts(t *testing.T) {
|
|||||||
testKubelet := newTestKubelet(t)
|
testKubelet := newTestKubelet(t)
|
||||||
kl := testKubelet.kubelet
|
kl := testKubelet.kubelet
|
||||||
testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil)
|
testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil)
|
||||||
testKubelet.fakeCadvisor.On("DockerImagesFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
|
testKubelet.fakeCadvisor.On("ImagesFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
|
||||||
testKubelet.fakeCadvisor.On("RootFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
|
testKubelet.fakeCadvisor.On("RootFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
|
||||||
|
|
||||||
kl.nodeLister = testNodeLister{nodes: []api.Node{
|
kl.nodeLister = testNodeLister{nodes: []api.Node{
|
||||||
@ -2098,7 +2098,7 @@ func TestHandleNodeSelector(t *testing.T) {
|
|||||||
kl.nodeLister = testNodeLister{nodes: nodes}
|
kl.nodeLister = testNodeLister{nodes: nodes}
|
||||||
kl.nodeInfo = testNodeInfo{nodes: nodes}
|
kl.nodeInfo = testNodeInfo{nodes: nodes}
|
||||||
testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil)
|
testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil)
|
||||||
testKubelet.fakeCadvisor.On("DockerImagesFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
|
testKubelet.fakeCadvisor.On("ImagesFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
|
||||||
testKubelet.fakeCadvisor.On("RootFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
|
testKubelet.fakeCadvisor.On("RootFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
|
||||||
pods := []*api.Pod{
|
pods := []*api.Pod{
|
||||||
podWithUidNameNsSpec("123456789", "podA", "foo", api.PodSpec{NodeSelector: map[string]string{"key": "A"}}),
|
podWithUidNameNsSpec("123456789", "podA", "foo", api.PodSpec{NodeSelector: map[string]string{"key": "A"}}),
|
||||||
@ -2143,7 +2143,7 @@ func TestHandleMemExceeded(t *testing.T) {
|
|||||||
kl.nodeLister = testNodeLister{nodes: nodes}
|
kl.nodeLister = testNodeLister{nodes: nodes}
|
||||||
kl.nodeInfo = testNodeInfo{nodes: nodes}
|
kl.nodeInfo = testNodeInfo{nodes: nodes}
|
||||||
testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil)
|
testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil)
|
||||||
testKubelet.fakeCadvisor.On("DockerImagesFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
|
testKubelet.fakeCadvisor.On("ImagesFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
|
||||||
testKubelet.fakeCadvisor.On("RootFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
|
testKubelet.fakeCadvisor.On("RootFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
|
||||||
|
|
||||||
spec := api.PodSpec{NodeName: kl.nodeName,
|
spec := api.PodSpec{NodeName: kl.nodeName,
|
||||||
@ -2187,7 +2187,7 @@ func TestHandleMemExceeded(t *testing.T) {
|
|||||||
func TestPurgingObsoleteStatusMapEntries(t *testing.T) {
|
func TestPurgingObsoleteStatusMapEntries(t *testing.T) {
|
||||||
testKubelet := newTestKubelet(t)
|
testKubelet := newTestKubelet(t)
|
||||||
testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil)
|
testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil)
|
||||||
testKubelet.fakeCadvisor.On("DockerImagesFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
|
testKubelet.fakeCadvisor.On("ImagesFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
|
||||||
testKubelet.fakeCadvisor.On("RootFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
|
testKubelet.fakeCadvisor.On("RootFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
|
||||||
versionInfo := &cadvisorapi.VersionInfo{
|
versionInfo := &cadvisorapi.VersionInfo{
|
||||||
KernelVersion: "3.16.0-0.bpo.4-amd64",
|
KernelVersion: "3.16.0-0.bpo.4-amd64",
|
||||||
@ -2336,7 +2336,7 @@ func TestValidateContainerLogStatus(t *testing.T) {
|
|||||||
func updateDiskSpacePolicy(kubelet *Kubelet, mockCadvisor *cadvisortest.Mock, rootCap, dockerCap, rootAvail, dockerAvail uint64, rootThreshold, dockerThreshold int) error {
|
func updateDiskSpacePolicy(kubelet *Kubelet, mockCadvisor *cadvisortest.Mock, rootCap, dockerCap, rootAvail, dockerAvail uint64, rootThreshold, dockerThreshold int) error {
|
||||||
dockerimagesFsInfo := cadvisorapiv2.FsInfo{Capacity: rootCap * mb, Available: rootAvail * mb}
|
dockerimagesFsInfo := cadvisorapiv2.FsInfo{Capacity: rootCap * mb, Available: rootAvail * mb}
|
||||||
rootFsInfo := cadvisorapiv2.FsInfo{Capacity: dockerCap * mb, Available: dockerAvail * mb}
|
rootFsInfo := cadvisorapiv2.FsInfo{Capacity: dockerCap * mb, Available: dockerAvail * mb}
|
||||||
mockCadvisor.On("DockerImagesFsInfo").Return(dockerimagesFsInfo, nil)
|
mockCadvisor.On("ImagesFsInfo").Return(dockerimagesFsInfo, nil)
|
||||||
mockCadvisor.On("RootFsInfo").Return(rootFsInfo, nil)
|
mockCadvisor.On("RootFsInfo").Return(rootFsInfo, nil)
|
||||||
|
|
||||||
dsp := DiskSpacePolicy{DockerFreeDiskMB: rootThreshold, RootFreeDiskMB: dockerThreshold}
|
dsp := DiskSpacePolicy{DockerFreeDiskMB: rootThreshold, RootFreeDiskMB: dockerThreshold}
|
||||||
@ -3099,7 +3099,7 @@ func TestDeleteOutdatedMirrorPod(t *testing.T) {
|
|||||||
testKubelet := newTestKubelet(t)
|
testKubelet := newTestKubelet(t)
|
||||||
testKubelet.fakeCadvisor.On("Start").Return(nil)
|
testKubelet.fakeCadvisor.On("Start").Return(nil)
|
||||||
testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil)
|
testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil)
|
||||||
testKubelet.fakeCadvisor.On("DockerImagesFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
|
testKubelet.fakeCadvisor.On("ImagesFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
|
||||||
testKubelet.fakeCadvisor.On("RootFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
|
testKubelet.fakeCadvisor.On("RootFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
|
||||||
|
|
||||||
kl := testKubelet.kubelet
|
kl := testKubelet.kubelet
|
||||||
@ -3142,7 +3142,7 @@ func TestDeleteOrphanedMirrorPods(t *testing.T) {
|
|||||||
testKubelet := newTestKubelet(t)
|
testKubelet := newTestKubelet(t)
|
||||||
testKubelet.fakeCadvisor.On("Start").Return(nil)
|
testKubelet.fakeCadvisor.On("Start").Return(nil)
|
||||||
testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil)
|
testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil)
|
||||||
testKubelet.fakeCadvisor.On("DockerImagesFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
|
testKubelet.fakeCadvisor.On("ImagesFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
|
||||||
testKubelet.fakeCadvisor.On("RootFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
|
testKubelet.fakeCadvisor.On("RootFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
|
||||||
|
|
||||||
kl := testKubelet.kubelet
|
kl := testKubelet.kubelet
|
||||||
@ -3425,7 +3425,7 @@ func TestRegisterExistingNodeWithApiserver(t *testing.T) {
|
|||||||
DockerVersion: "1.5.0",
|
DockerVersion: "1.5.0",
|
||||||
}
|
}
|
||||||
mockCadvisor.On("VersionInfo").Return(versionInfo, nil)
|
mockCadvisor.On("VersionInfo").Return(versionInfo, nil)
|
||||||
mockCadvisor.On("DockerImagesFsInfo").Return(cadvisorapiv2.FsInfo{
|
mockCadvisor.On("ImagesFsInfo").Return(cadvisorapiv2.FsInfo{
|
||||||
Usage: 400 * mb,
|
Usage: 400 * mb,
|
||||||
Capacity: 1000 * mb,
|
Capacity: 1000 * mb,
|
||||||
Available: 600 * mb,
|
Available: 600 * mb,
|
||||||
@ -3650,7 +3650,7 @@ func podWithUidNameNsSpec(uid types.UID, name, namespace string, spec api.PodSpe
|
|||||||
func TestDeletePodDirsForDeletedPods(t *testing.T) {
|
func TestDeletePodDirsForDeletedPods(t *testing.T) {
|
||||||
testKubelet := newTestKubelet(t)
|
testKubelet := newTestKubelet(t)
|
||||||
testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil)
|
testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil)
|
||||||
testKubelet.fakeCadvisor.On("DockerImagesFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
|
testKubelet.fakeCadvisor.On("ImagesFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
|
||||||
testKubelet.fakeCadvisor.On("RootFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
|
testKubelet.fakeCadvisor.On("RootFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
|
||||||
kl := testKubelet.kubelet
|
kl := testKubelet.kubelet
|
||||||
pods := []*api.Pod{
|
pods := []*api.Pod{
|
||||||
@ -3697,7 +3697,7 @@ func syncAndVerifyPodDir(t *testing.T, testKubelet *TestKubelet, pods []*api.Pod
|
|||||||
func TestDoesNotDeletePodDirsForTerminatedPods(t *testing.T) {
|
func TestDoesNotDeletePodDirsForTerminatedPods(t *testing.T) {
|
||||||
testKubelet := newTestKubelet(t)
|
testKubelet := newTestKubelet(t)
|
||||||
testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil)
|
testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil)
|
||||||
testKubelet.fakeCadvisor.On("DockerImagesFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
|
testKubelet.fakeCadvisor.On("ImagesFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
|
||||||
testKubelet.fakeCadvisor.On("RootFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
|
testKubelet.fakeCadvisor.On("RootFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
|
||||||
kl := testKubelet.kubelet
|
kl := testKubelet.kubelet
|
||||||
pods := []*api.Pod{
|
pods := []*api.Pod{
|
||||||
@ -3717,7 +3717,7 @@ func TestDoesNotDeletePodDirsForTerminatedPods(t *testing.T) {
|
|||||||
func TestDoesNotDeletePodDirsIfContainerIsRunning(t *testing.T) {
|
func TestDoesNotDeletePodDirsIfContainerIsRunning(t *testing.T) {
|
||||||
testKubelet := newTestKubelet(t)
|
testKubelet := newTestKubelet(t)
|
||||||
testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil)
|
testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil)
|
||||||
testKubelet.fakeCadvisor.On("DockerImagesFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
|
testKubelet.fakeCadvisor.On("ImagesFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
|
||||||
testKubelet.fakeCadvisor.On("RootFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
|
testKubelet.fakeCadvisor.On("RootFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
|
||||||
runningPod := &kubecontainer.Pod{
|
runningPod := &kubecontainer.Pod{
|
||||||
ID: "12345678",
|
ID: "12345678",
|
||||||
@ -4192,7 +4192,7 @@ func TestHandlePodAdditionsInvokesPodAdmitHandlers(t *testing.T) {
|
|||||||
},
|
},
|
||||||
}}
|
}}
|
||||||
testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil)
|
testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil)
|
||||||
testKubelet.fakeCadvisor.On("DockerImagesFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
|
testKubelet.fakeCadvisor.On("ImagesFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
|
||||||
testKubelet.fakeCadvisor.On("RootFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
|
testKubelet.fakeCadvisor.On("RootFsInfo").Return(cadvisorapiv2.FsInfo{}, nil)
|
||||||
|
|
||||||
pods := []*api.Pod{
|
pods := []*api.Pod{
|
||||||
|
@ -46,7 +46,7 @@ import (
|
|||||||
func TestRunOnce(t *testing.T) {
|
func TestRunOnce(t *testing.T) {
|
||||||
cadvisor := &cadvisortest.Mock{}
|
cadvisor := &cadvisortest.Mock{}
|
||||||
cadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil)
|
cadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil)
|
||||||
cadvisor.On("DockerImagesFsInfo").Return(cadvisorapiv2.FsInfo{
|
cadvisor.On("ImagesFsInfo").Return(cadvisorapiv2.FsInfo{
|
||||||
Usage: 400 * mb,
|
Usage: 400 * mb,
|
||||||
Capacity: 1000 * mb,
|
Capacity: 1000 * mb,
|
||||||
Available: 600 * mb,
|
Available: 600 * mb,
|
||||||
|
@ -171,7 +171,7 @@ type HostInterface interface {
|
|||||||
GetNode() (*api.Node, error)
|
GetNode() (*api.Node, error)
|
||||||
GetNodeConfig() cm.NodeConfig
|
GetNodeConfig() cm.NodeConfig
|
||||||
LatestLoopEntryTime() time.Time
|
LatestLoopEntryTime() time.Time
|
||||||
DockerImagesFsInfo() (cadvisorapiv2.FsInfo, error)
|
ImagesFsInfo() (cadvisorapiv2.FsInfo, error)
|
||||||
RootFsInfo() (cadvisorapiv2.FsInfo, error)
|
RootFsInfo() (cadvisorapiv2.FsInfo, error)
|
||||||
ListVolumesForPod(podUID types.UID) (map[string]volume.Volume, bool)
|
ListVolumesForPod(podUID types.UID) (map[string]volume.Volume, bool)
|
||||||
PLEGHealthCheck() (bool, error)
|
PLEGHealthCheck() (bool, error)
|
||||||
|
@ -142,8 +142,8 @@ func (_ *fakeKubelet) GetContainerInfoV2(_ string, _ cadvisorapiv2.RequestOption
|
|||||||
return nil, nil
|
return nil, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (_ *fakeKubelet) DockerImagesFsInfo() (cadvisorapiv2.FsInfo, error) {
|
func (_ *fakeKubelet) ImagesFsInfo() (cadvisorapiv2.FsInfo, error) {
|
||||||
return cadvisorapiv2.FsInfo{}, fmt.Errorf("Unsupported Operation DockerImagesFsInfo")
|
return cadvisorapiv2.FsInfo{}, fmt.Errorf("Unsupported Operation ImagesFsInfo")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (_ *fakeKubelet) RootFsInfo() (cadvisorapiv2.FsInfo, error) {
|
func (_ *fakeKubelet) RootFsInfo() (cadvisorapiv2.FsInfo, error) {
|
||||||
|
@ -44,7 +44,7 @@ type StatsProvider interface {
|
|||||||
GetPodByName(namespace, name string) (*api.Pod, bool)
|
GetPodByName(namespace, name string) (*api.Pod, bool)
|
||||||
GetNode() (*api.Node, error)
|
GetNode() (*api.Node, error)
|
||||||
GetNodeConfig() cm.NodeConfig
|
GetNodeConfig() cm.NodeConfig
|
||||||
DockerImagesFsInfo() (cadvisorapiv2.FsInfo, error)
|
ImagesFsInfo() (cadvisorapiv2.FsInfo, error)
|
||||||
RootFsInfo() (cadvisorapiv2.FsInfo, error)
|
RootFsInfo() (cadvisorapiv2.FsInfo, error)
|
||||||
ListVolumesForPod(podUID types.UID) (map[string]volume.Volume, bool)
|
ListVolumesForPod(podUID types.UID) (map[string]volume.Volume, bool)
|
||||||
GetPods() []*api.Pod
|
GetPods() []*api.Pod
|
||||||
|
@ -162,8 +162,8 @@ func (_m *MockStatsProvider) GetNodeConfig() cm.NodeConfig {
|
|||||||
return r0
|
return r0
|
||||||
}
|
}
|
||||||
|
|
||||||
// DockerImagesFsInfo provides a mock function with given fields:
|
// ImagesFsInfo provides a mock function with given fields:
|
||||||
func (_m *MockStatsProvider) DockerImagesFsInfo() (cadvisorapiv2.FsInfo, error) {
|
func (_m *MockStatsProvider) ImagesFsInfo() (cadvisorapiv2.FsInfo, error) {
|
||||||
ret := _m.Called()
|
ret := _m.Called()
|
||||||
|
|
||||||
var r0 cadvisorapiv2.FsInfo
|
var r0 cadvisorapiv2.FsInfo
|
||||||
|
@ -81,7 +81,7 @@ func (sp *summaryProviderImpl) Get() (*stats.Summary, error) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
imageFsInfo, err := sp.provider.DockerImagesFsInfo()
|
imageFsInfo, err := sp.provider.ImagesFsInfo()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -99,7 +99,7 @@ func containerRuntime() error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Setup cadvisor to check the container environment
|
// Setup cadvisor to check the container environment
|
||||||
c, err := cadvisor.New(0 /*don't start the http server*/)
|
c, err := cadvisor.New(0 /*don't start the http server*/, "docker")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return printError("Container Runtime Check: %s Could not start cadvisor %v", failed, err)
|
return printError("Container Runtime Check: %s Could not start cadvisor %v", failed, err)
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user