Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
K
k3s
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Jacklull
k3s
Commits
ae08ef38
Commit
ae08ef38
authored
May 17, 2016
by
Shaya Potter
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
kubelet/cadvisor: Refactor cadvisor disk stat/usage interfaces
parent
f3ab7b18
Show whitespace changes
Inline
Side-by-side
Showing
22 changed files
with
76 additions
and
63 deletions
+76
-63
server.go
cmd/kubelet/app/server.go
+1
-1
cadvisor.go
contrib/mesos/pkg/executor/service/cadvisor.go
+2
-2
service.go
contrib/mesos/pkg/executor/service/service.go
+1
-1
cadvisor_linux.go
pkg/kubelet/cadvisor/cadvisor_linux.go
+16
-3
cadvisor_unsupported.go
pkg/kubelet/cadvisor/cadvisor_unsupported.go
+2
-2
cadvisor_fake.go
pkg/kubelet/cadvisor/testing/cadvisor_fake.go
+1
-1
cadvisor_mock.go
pkg/kubelet/cadvisor/testing/cadvisor_mock.go
+1
-1
types.go
pkg/kubelet/cadvisor/types.go
+1
-1
disk_manager.go
pkg/kubelet/disk_manager.go
+3
-3
disk_manager_test.go
pkg/kubelet/disk_manager_test.go
+15
-15
image_manager.go
pkg/kubelet/image_manager.go
+1
-1
image_manager_test.go
pkg/kubelet/image_manager_test.go
+4
-4
kubelet.go
pkg/kubelet/kubelet.go
+1
-1
kubelet_cadvisor.go
pkg/kubelet/kubelet_cadvisor.go
+3
-3
kubelet_test.go
pkg/kubelet/kubelet_test.go
+15
-15
runonce_test.go
pkg/kubelet/runonce_test.go
+1
-1
server.go
pkg/kubelet/server/server.go
+1
-1
server_test.go
pkg/kubelet/server/server_test.go
+2
-2
handler.go
pkg/kubelet/server/stats/handler.go
+1
-1
mocks_test.go
pkg/kubelet/server/stats/mocks_test.go
+2
-2
summary.go
pkg/kubelet/server/stats/summary.go
+1
-1
conformance.go
test/e2e_node/environment/conformance.go
+1
-1
No files found.
cmd/kubelet/app/server.go
View file @
ae08ef38
...
@@ -330,7 +330,7 @@ func run(s *options.KubeletServer, kcfg *KubeletConfig) (err error) {
...
@@ -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
}
}
...
...
contrib/mesos/pkg/executor/service/cadvisor.go
View file @
ae08ef38
...
@@ -28,8 +28,8 @@ type MesosCadvisor struct {
...
@@ -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
}
}
...
...
contrib/mesos/pkg/executor/service/service.go
View file @
ae08ef38
...
@@ -209,7 +209,7 @@ func (s *KubeletExecutorServer) runKubelet(
...
@@ -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
}
}
...
...
pkg/kubelet/cadvisor/cadvisor_linux.go
View file @
ae08ef38
...
@@ -39,6 +39,7 @@ import (
...
@@ -39,6 +39,7 @@ import (
)
)
type
cadvisorClient
struct
{
type
cadvisorClient
struct
{
runtime
string
manager
.
Manager
manager
.
Manager
}
}
...
@@ -60,7 +61,7 @@ func init() {
...
@@ -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) {
...
@@ -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) {
...
@@ -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
)
{
...
...
pkg/kubelet/cadvisor/cadvisor_unsupported.go
View file @
ae08ef38
...
@@ -31,7 +31,7 @@ type cadvisorUnsupported struct {
...
@@ -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) {
...
@@ -65,7 +65,7 @@ func (cu *cadvisorUnsupported) VersionInfo() (*cadvisorapi.VersionInfo, error) {
return
nil
,
unsupportedErr
return
nil
,
unsupportedErr
}
}
func
(
cu
*
cadvisorUnsupported
)
Docker
ImagesFsInfo
()
(
cadvisorapiv2
.
FsInfo
,
error
)
{
func
(
cu
*
cadvisorUnsupported
)
ImagesFsInfo
()
(
cadvisorapiv2
.
FsInfo
,
error
)
{
return
cadvisorapiv2
.
FsInfo
{},
unsupportedErr
return
cadvisorapiv2
.
FsInfo
{},
unsupportedErr
}
}
...
...
pkg/kubelet/cadvisor/testing/cadvisor_fake.go
View file @
ae08ef38
...
@@ -62,7 +62,7 @@ func (c *Fake) VersionInfo() (*cadvisorapi.VersionInfo, error) {
...
@@ -62,7 +62,7 @@ func (c *Fake) VersionInfo() (*cadvisorapi.VersionInfo, error) {
return
new
(
cadvisorapi
.
VersionInfo
),
nil
return
new
(
cadvisorapi
.
VersionInfo
),
nil
}
}
func
(
c
*
Fake
)
Docker
ImagesFsInfo
()
(
cadvisorapiv2
.
FsInfo
,
error
)
{
func
(
c
*
Fake
)
ImagesFsInfo
()
(
cadvisorapiv2
.
FsInfo
,
error
)
{
return
cadvisorapiv2
.
FsInfo
{},
nil
return
cadvisorapiv2
.
FsInfo
{},
nil
}
}
...
...
pkg/kubelet/cadvisor/testing/cadvisor_mock.go
View file @
ae08ef38
...
@@ -69,7 +69,7 @@ func (c *Mock) VersionInfo() (*cadvisorapi.VersionInfo, error) {
...
@@ -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
)
Docker
ImagesFsInfo
()
(
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
)
}
}
...
...
pkg/kubelet/cadvisor/types.go
View file @
ae08ef38
...
@@ -34,7 +34,7 @@ type Interface interface {
...
@@ -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.
Docker
ImagesFsInfo
()
(
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
)
...
...
pkg/kubelet/disk_manager.go
View file @
ae08ef38
...
@@ -35,7 +35,7 @@ const mb = 1024 * 1024
...
@@ -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
)
Is
Docker
DiskSpaceAvailable
()
(
bool
,
error
)
Is
Runtime
DiskSpaceAvailable
()
(
bool
,
error
)
}
}
type
DiskSpacePolicy
struct
{
type
DiskSpacePolicy
struct
{
...
@@ -83,8 +83,8 @@ func (dm *realDiskSpaceManager) getFsInfo(fsType string, f func() (cadvisorapi.F
...
@@ -83,8 +83,8 @@ func (dm *realDiskSpaceManager) getFsInfo(fsType string, f func() (cadvisorapi.F
return
fsi
,
nil
return
fsi
,
nil
}
}
func
(
dm
*
realDiskSpaceManager
)
Is
Docker
DiskSpaceAvailable
()
(
bool
,
error
)
{
func
(
dm
*
realDiskSpaceManager
)
Is
Runtime
DiskSpaceAvailable
()
(
bool
,
error
)
{
return
dm
.
isSpaceAvailable
(
"
docker"
,
dm
.
policy
.
DockerFreeDiskMB
,
dm
.
cadvisor
.
Docker
ImagesFsInfo
)
return
dm
.
isSpaceAvailable
(
"
runtime"
,
dm
.
policy
.
DockerFreeDiskMB
,
dm
.
cadvisor
.
ImagesFsInfo
)
}
}
func
(
dm
*
realDiskSpaceManager
)
IsRootDiskSpaceAvailable
()
(
bool
,
error
)
{
func
(
dm
*
realDiskSpaceManager
)
IsRootDiskSpaceAvailable
()
(
bool
,
error
)
{
...
...
pkg/kubelet/disk_manager_test.go
View file @
ae08ef38
...
@@ -61,7 +61,7 @@ func TestSpaceAvailable(t *testing.T) {
...
@@ -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
(
"
Docker
ImagesFsInfo"
)
.
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) {
...
@@ -71,7 +71,7 @@ func TestSpaceAvailable(t *testing.T) {
Capacity
:
10
*
mb
,
Capacity
:
10
*
mb
,
},
nil
)
},
nil
)
ok
,
err
:=
dm
.
Is
Docker
DiskSpaceAvailable
()
ok
,
err
:=
dm
.
Is
Runtime
DiskSpaceAvailable
()
assert
.
NoError
(
err
)
assert
.
NoError
(
err
)
assert
.
True
(
ok
)
assert
.
True
(
ok
)
...
@@ -80,31 +80,31 @@ func TestSpaceAvailable(t *testing.T) {
...
@@ -80,31 +80,31 @@ func TestSpaceAvailable(t *testing.T) {
assert
.
False
(
ok
)
assert
.
False
(
ok
)
}
}
// TestIs
DockerDiskSpaceAvailableWithSpace verifies IsDocker
DiskSpaceAvailable results when
// TestIs
RuntimeDiskSpaceAvailableWithSpace verifies IsRuntime
DiskSpaceAvailable results when
// space is available.
// space is available.
func
TestIs
Docker
DiskSpaceAvailableWithSpace
(
t
*
testing
.
T
)
{
func
TestIs
Runtime
DiskSpaceAvailableWithSpace
(
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
(
"
Docker
ImagesFsInfo"
)
.
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
.
Is
Docker
DiskSpaceAvailable
()
ok
,
err
:=
dm
.
Is
Runtime
DiskSpaceAvailable
()
assert
.
NoError
(
err
)
assert
.
NoError
(
err
)
assert
.
True
(
ok
)
assert
.
True
(
ok
)
}
}
// TestIs
DockerDiskSpaceAvailableWithoutSpace verifies IsDocker
DiskSpaceAvailable results when
// TestIs
RuntimeDiskSpaceAvailableWithoutSpace verifies IsRuntime
DiskSpaceAvailable results when
// space is not available.
// space is not available.
func
TestIs
Docker
DiskSpaceAvailableWithoutSpace
(
t
*
testing
.
T
)
{
func
TestIs
Runtime
DiskSpaceAvailableWithoutSpace
(
t
*
testing
.
T
)
{
// 1MB available
// 1MB available
assert
,
policy
,
mockCadvisor
:=
setUp
(
t
)
assert
,
policy
,
mockCadvisor
:=
setUp
(
t
)
mockCadvisor
.
On
(
"
Docker
ImagesFsInfo"
)
.
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) {
...
@@ -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
.
Is
Docker
DiskSpaceAvailable
()
ok
,
err
:=
dm
.
Is
Runtime
DiskSpaceAvailable
()
assert
.
NoError
(
err
)
assert
.
NoError
(
err
)
assert
.
False
(
ok
)
assert
.
False
(
ok
)
}
}
...
@@ -164,7 +164,7 @@ func TestCache(t *testing.T) {
...
@@ -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
(
"
Docker
ImagesFsInfo"
)
.
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) {
...
@@ -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
.
Is
Docker
DiskSpaceAvailable
()
ok
,
err
:=
dm
.
Is
Runtime
DiskSpaceAvailable
()
assert
.
NoError
(
err
)
assert
.
NoError
(
err
)
assert
.
True
(
ok
)
assert
.
True
(
ok
)
...
@@ -188,7 +188,7 @@ func TestCache(t *testing.T) {
...
@@ -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
.
Is
Docker
DiskSpaceAvailable
()
ok
,
err
=
dm
.
Is
Runtime
DiskSpaceAvailable
()
assert
.
NoError
(
err
)
assert
.
NoError
(
err
)
assert
.
True
(
ok
)
assert
.
True
(
ok
)
...
@@ -208,9 +208,9 @@ func TestFsInfoError(t *testing.T) {
...
@@ -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
(
"
Docker
ImagesFsInfo"
)
.
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
.
Is
Docker
DiskSpaceAvailable
()
ok
,
err
:=
dm
.
Is
Runtime
DiskSpaceAvailable
()
assert
.
Error
(
err
)
assert
.
Error
(
err
)
assert
.
True
(
ok
)
assert
.
True
(
ok
)
ok
,
err
=
dm
.
IsRootDiskSpaceAvailable
()
ok
,
err
=
dm
.
IsRootDiskSpaceAvailable
()
...
...
pkg/kubelet/image_manager.go
View file @
ae08ef38
...
@@ -209,7 +209,7 @@ func (im *realImageManager) detectImages(detectTime time.Time) error {
...
@@ -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
.
Docker
ImagesFsInfo
()
fsInfo
,
err
:=
im
.
cadvisor
.
ImagesFsInfo
()
if
err
!=
nil
{
if
err
!=
nil
{
return
err
return
err
}
}
...
...
pkg/kubelet/image_manager_test.go
View file @
ae08ef38
...
@@ -373,7 +373,7 @@ func TestGarbageCollectBelowLowThreshold(t *testing.T) {
...
@@ -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
(
"
Docker
ImagesFsInfo"
)
.
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) {
...
@@ -388,7 +388,7 @@ func TestGarbageCollectCadvisorFailure(t *testing.T) {
}
}
manager
,
_
,
mockCadvisor
:=
newRealImageManager
(
policy
)
manager
,
_
,
mockCadvisor
:=
newRealImageManager
(
policy
)
mockCadvisor
.
On
(
"
Docker
ImagesFsInfo"
)
.
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) {
...
@@ -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
(
"
Docker
ImagesFsInfo"
)
.
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) {
...
@@ -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
(
"
Docker
ImagesFsInfo"
)
.
Return
(
cadvisorapiv2
.
FsInfo
{
mockCadvisor
.
On
(
"ImagesFsInfo"
)
.
Return
(
cadvisorapiv2
.
FsInfo
{
Usage
:
950
,
Usage
:
950
,
Capacity
:
1000
,
Capacity
:
1000
,
},
nil
)
},
nil
)
...
...
pkg/kubelet/kubelet.go
View file @
ae08ef38
...
@@ -2379,7 +2379,7 @@ func (kl *Kubelet) isOutOfDisk() bool {
...
@@ -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
.
Is
Docker
DiskSpaceAvailable
()
withinBounds
,
err
:=
kl
.
diskSpaceManager
.
Is
Runtime
DiskSpaceAvailable
()
// 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
...
...
pkg/kubelet/kubelet_cadvisor.go
View file @
ae08ef38
...
@@ -50,10 +50,10 @@ func (kl *Kubelet) GetContainerInfoV2(name string, options cadvisorapiv2.Request
...
@@ -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
)
}
}
//
Docker
ImagesFsInfo returns information about docker image fs usage from
// ImagesFsInfo returns information about docker image fs usage from
// cadvisor.
// cadvisor.
func
(
kl
*
Kubelet
)
Docker
ImagesFsInfo
()
(
cadvisorapiv2
.
FsInfo
,
error
)
{
func
(
kl
*
Kubelet
)
ImagesFsInfo
()
(
cadvisorapiv2
.
FsInfo
,
error
)
{
return
kl
.
cadvisor
.
Docker
ImagesFsInfo
()
return
kl
.
cadvisor
.
ImagesFsInfo
()
}
}
// RootFsInfo returns info about the root fs from cadvisor.
// RootFsInfo returns info about the root fs from cadvisor.
...
...
pkg/kubelet/kubelet_test.go
View file @
ae08ef38
...
@@ -299,7 +299,7 @@ func TestSyncLoopAbort(t *testing.T) {
...
@@ -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
(
"
Docker
ImagesFsInfo"
)
.
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) {
...
@@ -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
(
"
Docker
ImagesFsInfo"
)
.
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) {
...
@@ -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
(
"
Docker
ImagesFsInfo"
)
.
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) {
...
@@ -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
(
"
Docker
ImagesFsInfo"
)
.
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) {
...
@@ -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
(
"
Docker
ImagesFsInfo"
)
.
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) {
...
@@ -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
(
"
Docker
ImagesFsInfo"
)
.
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) {
...
@@ -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
(
"
Docker
ImagesFsInfo"
)
.
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) {
...
@@ -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
(
"
Docker
ImagesFsInfo"
)
.
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) {
...
@@ -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
(
"
Docker
ImagesFsInfo"
)
.
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) {
...
@@ -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
(
"
Docker
ImagesFsInfo"
)
.
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) {
...
@@ -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
(
"
Docker
ImagesFsInfo"
)
.
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
...
@@ -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
(
"
Docker
ImagesFsInfo"
)
.
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
...
@@ -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
(
"
Docker
ImagesFsInfo"
)
.
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) {
...
@@ -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
(
"
Docker
ImagesFsInfo"
)
.
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) {
...
@@ -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
(
"
Docker
ImagesFsInfo"
)
.
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
{
...
...
pkg/kubelet/runonce_test.go
View file @
ae08ef38
...
@@ -46,7 +46,7 @@ import (
...
@@ -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
(
"
Docker
ImagesFsInfo"
)
.
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
,
...
...
pkg/kubelet/server/server.go
View file @
ae08ef38
...
@@ -171,7 +171,7 @@ type HostInterface interface {
...
@@ -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
Docker
ImagesFsInfo
()
(
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
)
...
...
pkg/kubelet/server/server_test.go
View file @
ae08ef38
...
@@ -142,8 +142,8 @@ func (_ *fakeKubelet) GetContainerInfoV2(_ string, _ cadvisorapiv2.RequestOption
...
@@ -142,8 +142,8 @@ func (_ *fakeKubelet) GetContainerInfoV2(_ string, _ cadvisorapiv2.RequestOption
return
nil
,
nil
return
nil
,
nil
}
}
func
(
_
*
fakeKubelet
)
Docker
ImagesFsInfo
()
(
cadvisorapiv2
.
FsInfo
,
error
)
{
func
(
_
*
fakeKubelet
)
ImagesFsInfo
()
(
cadvisorapiv2
.
FsInfo
,
error
)
{
return
cadvisorapiv2
.
FsInfo
{},
fmt
.
Errorf
(
"Unsupported Operation
Docker
ImagesFsInfo"
)
return
cadvisorapiv2
.
FsInfo
{},
fmt
.
Errorf
(
"Unsupported Operation ImagesFsInfo"
)
}
}
func
(
_
*
fakeKubelet
)
RootFsInfo
()
(
cadvisorapiv2
.
FsInfo
,
error
)
{
func
(
_
*
fakeKubelet
)
RootFsInfo
()
(
cadvisorapiv2
.
FsInfo
,
error
)
{
...
...
pkg/kubelet/server/stats/handler.go
View file @
ae08ef38
...
@@ -44,7 +44,7 @@ type StatsProvider interface {
...
@@ -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
Docker
ImagesFsInfo
()
(
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
...
...
pkg/kubelet/server/stats/mocks_test.go
View file @
ae08ef38
...
@@ -162,8 +162,8 @@ func (_m *MockStatsProvider) GetNodeConfig() cm.NodeConfig {
...
@@ -162,8 +162,8 @@ func (_m *MockStatsProvider) GetNodeConfig() cm.NodeConfig {
return
r0
return
r0
}
}
//
Docker
ImagesFsInfo provides a mock function with given fields:
// ImagesFsInfo provides a mock function with given fields:
func
(
_m
*
MockStatsProvider
)
Docker
ImagesFsInfo
()
(
cadvisorapiv2
.
FsInfo
,
error
)
{
func
(
_m
*
MockStatsProvider
)
ImagesFsInfo
()
(
cadvisorapiv2
.
FsInfo
,
error
)
{
ret
:=
_m
.
Called
()
ret
:=
_m
.
Called
()
var
r0
cadvisorapiv2
.
FsInfo
var
r0
cadvisorapiv2
.
FsInfo
...
...
pkg/kubelet/server/stats/summary.go
View file @
ae08ef38
...
@@ -81,7 +81,7 @@ func (sp *summaryProviderImpl) Get() (*stats.Summary, error) {
...
@@ -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
.
Docker
ImagesFsInfo
()
imageFsInfo
,
err
:=
sp
.
provider
.
ImagesFsInfo
()
if
err
!=
nil
{
if
err
!=
nil
{
return
nil
,
err
return
nil
,
err
}
}
...
...
test/e2e_node/environment/conformance.go
View file @
ae08ef38
...
@@ -99,7 +99,7 @@ func containerRuntime() error {
...
@@ -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
)
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment