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
a106d9f8
Commit
a106d9f8
authored
Jan 31, 2017
by
deads2k
Committed by
David Eads
Jan 31, 2017
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
switch kubelet to use external (client-go) object references for events
parent
8a120004
Hide whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
65 additions
and
19 deletions
+65
-19
BUILD
pkg/kubelet/BUILD
+2
-0
BUILD
pkg/kubelet/container/BUILD
+2
-0
helpers.go
pkg/kubelet/container/helpers.go
+10
-2
BUILD
pkg/kubelet/events/BUILD
+4
-0
event.go
pkg/kubelet/events/event.go
+21
-0
BUILD
pkg/kubelet/eviction/BUILD
+2
-0
eviction_manager.go
pkg/kubelet/eviction/eviction_manager.go
+3
-2
eviction_manager_test.go
pkg/kubelet/eviction/eviction_manager_test.go
+6
-5
BUILD
pkg/kubelet/images/BUILD
+1
-0
image_gc_manager.go
pkg/kubelet/images/image_gc_manager.go
+3
-2
image_manager.go
pkg/kubelet/images/image_manager.go
+1
-1
kubelet.go
pkg/kubelet/kubelet.go
+3
-2
kubelet_test.go
pkg/kubelet/kubelet_test.go
+3
-2
oom_watcher.go
pkg/kubelet/oom_watcher.go
+1
-1
oom_watcher_test.go
pkg/kubelet/oom_watcher_test.go
+1
-1
runonce_test.go
pkg/kubelet/runonce_test.go
+2
-1
No files found.
pkg/kubelet/BUILD
View file @
a106d9f8
...
@@ -125,6 +125,7 @@ go_library(
...
@@ -125,6 +125,7 @@ go_library(
"//vendor:k8s.io/apiserver/pkg/util/feature",
"//vendor:k8s.io/apiserver/pkg/util/feature",
"//vendor:k8s.io/client-go/kubernetes",
"//vendor:k8s.io/client-go/kubernetes",
"//vendor:k8s.io/client-go/kubernetes/typed/core/v1",
"//vendor:k8s.io/client-go/kubernetes/typed/core/v1",
"//vendor:k8s.io/client-go/pkg/api/v1",
"//vendor:k8s.io/client-go/tools/cache",
"//vendor:k8s.io/client-go/tools/cache",
"//vendor:k8s.io/client-go/tools/record",
"//vendor:k8s.io/client-go/tools/record",
"//vendor:k8s.io/client-go/util/clock",
"//vendor:k8s.io/client-go/util/clock",
...
@@ -208,6 +209,7 @@ go_test(
...
@@ -208,6 +209,7 @@ go_test(
"//vendor:k8s.io/apimachinery/pkg/util/strategicpatch",
"//vendor:k8s.io/apimachinery/pkg/util/strategicpatch",
"//vendor:k8s.io/apimachinery/pkg/util/uuid",
"//vendor:k8s.io/apimachinery/pkg/util/uuid",
"//vendor:k8s.io/apimachinery/pkg/util/wait",
"//vendor:k8s.io/apimachinery/pkg/util/wait",
"//vendor:k8s.io/client-go/pkg/api/v1",
"//vendor:k8s.io/client-go/testing",
"//vendor:k8s.io/client-go/testing",
"//vendor:k8s.io/client-go/tools/record",
"//vendor:k8s.io/client-go/tools/record",
"//vendor:k8s.io/client-go/util/clock",
"//vendor:k8s.io/client-go/util/clock",
...
...
pkg/kubelet/container/BUILD
View file @
a106d9f8
...
@@ -29,6 +29,7 @@ go_library(
...
@@ -29,6 +29,7 @@ go_library(
"//pkg/api:go_default_library",
"//pkg/api:go_default_library",
"//pkg/api/v1:go_default_library",
"//pkg/api/v1:go_default_library",
"//pkg/kubelet/api/v1alpha1/runtime:go_default_library",
"//pkg/kubelet/api/v1alpha1/runtime:go_default_library",
"//pkg/kubelet/events:go_default_library",
"//pkg/kubelet/util/format:go_default_library",
"//pkg/kubelet/util/format:go_default_library",
"//pkg/kubelet/util/ioutils:go_default_library",
"//pkg/kubelet/util/ioutils:go_default_library",
"//pkg/util/hash:go_default_library",
"//pkg/util/hash:go_default_library",
...
@@ -42,6 +43,7 @@ go_library(
...
@@ -42,6 +43,7 @@ go_library(
"//vendor:k8s.io/apimachinery/pkg/types",
"//vendor:k8s.io/apimachinery/pkg/types",
"//vendor:k8s.io/apimachinery/pkg/util/errors",
"//vendor:k8s.io/apimachinery/pkg/util/errors",
"//vendor:k8s.io/apimachinery/pkg/util/runtime",
"//vendor:k8s.io/apimachinery/pkg/util/runtime",
"//vendor:k8s.io/client-go/pkg/api/v1",
"//vendor:k8s.io/client-go/tools/record",
"//vendor:k8s.io/client-go/tools/record",
"//vendor:k8s.io/client-go/util/flowcontrol",
"//vendor:k8s.io/client-go/util/flowcontrol",
],
],
...
...
pkg/kubelet/container/helpers.go
View file @
a106d9f8
...
@@ -29,9 +29,11 @@ import (
...
@@ -29,9 +29,11 @@ import (
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/types"
"k8s.io/apimachinery/pkg/types"
clientv1
"k8s.io/client-go/pkg/api/v1"
"k8s.io/client-go/tools/record"
"k8s.io/client-go/tools/record"
"k8s.io/kubernetes/pkg/api/v1"
"k8s.io/kubernetes/pkg/api/v1"
runtimeapi
"k8s.io/kubernetes/pkg/kubelet/api/v1alpha1/runtime"
runtimeapi
"k8s.io/kubernetes/pkg/kubelet/api/v1alpha1/runtime"
"k8s.io/kubernetes/pkg/kubelet/events"
"k8s.io/kubernetes/pkg/kubelet/util/format"
"k8s.io/kubernetes/pkg/kubelet/util/format"
"k8s.io/kubernetes/pkg/kubelet/util/ioutils"
"k8s.io/kubernetes/pkg/kubelet/util/ioutils"
hashutil
"k8s.io/kubernetes/pkg/util/hash"
hashutil
"k8s.io/kubernetes/pkg/util/hash"
...
@@ -146,15 +148,21 @@ type innerEventRecorder struct {
...
@@ -146,15 +148,21 @@ type innerEventRecorder struct {
recorder
record
.
EventRecorder
recorder
record
.
EventRecorder
}
}
func
(
irecorder
*
innerEventRecorder
)
shouldRecordEvent
(
object
runtime
.
Object
)
(
*
v1
.
ObjectReference
,
bool
)
{
func
(
irecorder
*
innerEventRecorder
)
shouldRecordEvent
(
object
runtime
.
Object
)
(
*
client
v1
.
ObjectReference
,
bool
)
{
if
object
==
nil
{
if
object
==
nil
{
return
nil
,
false
return
nil
,
false
}
}
if
ref
,
ok
:=
object
.
(
*
v1
.
ObjectReference
);
ok
{
if
ref
,
ok
:=
object
.
(
*
client
v1
.
ObjectReference
);
ok
{
if
!
strings
.
HasPrefix
(
ref
.
FieldPath
,
ImplicitContainerPrefix
)
{
if
!
strings
.
HasPrefix
(
ref
.
FieldPath
,
ImplicitContainerPrefix
)
{
return
ref
,
true
return
ref
,
true
}
}
}
}
// just in case we miss a spot, be sure that we still log something
if
ref
,
ok
:=
object
.
(
*
v1
.
ObjectReference
);
ok
{
if
!
strings
.
HasPrefix
(
ref
.
FieldPath
,
ImplicitContainerPrefix
)
{
return
events
.
ToObjectReference
(
ref
),
true
}
}
return
nil
,
false
return
nil
,
false
}
}
...
...
pkg/kubelet/events/BUILD
View file @
a106d9f8
...
@@ -11,6 +11,10 @@ go_library(
...
@@ -11,6 +11,10 @@ go_library(
name = "go_default_library",
name = "go_default_library",
srcs = ["event.go"],
srcs = ["event.go"],
tags = ["automanaged"],
tags = ["automanaged"],
deps = [
"//pkg/api/v1:go_default_library",
"//vendor:k8s.io/client-go/pkg/api/v1",
],
)
)
filegroup(
filegroup(
...
...
pkg/kubelet/events/event.go
View file @
a106d9f8
...
@@ -16,6 +16,11 @@ limitations under the License.
...
@@ -16,6 +16,11 @@ limitations under the License.
package
events
package
events
import
(
clientv1
"k8s.io/client-go/pkg/api/v1"
"k8s.io/kubernetes/pkg/api/v1"
)
const
(
const
(
// Container event reason list
// Container event reason list
CreatedContainer
=
"Created"
CreatedContainer
=
"Created"
...
@@ -76,3 +81,19 @@ const (
...
@@ -76,3 +81,19 @@ const (
FailedPreStopHook
=
"FailedPreStopHook"
FailedPreStopHook
=
"FailedPreStopHook"
UnfinishedPreStopHook
=
"UnfinishedPreStopHook"
UnfinishedPreStopHook
=
"UnfinishedPreStopHook"
)
)
// ToObjectReference takes an old style object reference and converts it to a client-go one
func
ToObjectReference
(
ref
*
v1
.
ObjectReference
)
*
clientv1
.
ObjectReference
{
if
ref
==
nil
{
return
nil
}
return
&
clientv1
.
ObjectReference
{
Kind
:
ref
.
Kind
,
Namespace
:
ref
.
Namespace
,
Name
:
ref
.
Name
,
UID
:
ref
.
UID
,
APIVersion
:
ref
.
APIVersion
,
ResourceVersion
:
ref
.
ResourceVersion
,
FieldPath
:
ref
.
FieldPath
,
}
}
pkg/kubelet/eviction/BUILD
View file @
a106d9f8
...
@@ -36,6 +36,7 @@ go_library(
...
@@ -36,6 +36,7 @@ go_library(
"//vendor:k8s.io/apimachinery/pkg/apis/meta/v1",
"//vendor:k8s.io/apimachinery/pkg/apis/meta/v1",
"//vendor:k8s.io/apimachinery/pkg/util/sets",
"//vendor:k8s.io/apimachinery/pkg/util/sets",
"//vendor:k8s.io/apimachinery/pkg/util/wait",
"//vendor:k8s.io/apimachinery/pkg/util/wait",
"//vendor:k8s.io/client-go/pkg/api/v1",
"//vendor:k8s.io/client-go/tools/record",
"//vendor:k8s.io/client-go/tools/record",
"//vendor:k8s.io/client-go/util/clock",
"//vendor:k8s.io/client-go/util/clock",
],
],
...
@@ -59,6 +60,7 @@ go_test(
...
@@ -59,6 +60,7 @@ go_test(
"//vendor:k8s.io/apimachinery/pkg/api/resource",
"//vendor:k8s.io/apimachinery/pkg/api/resource",
"//vendor:k8s.io/apimachinery/pkg/apis/meta/v1",
"//vendor:k8s.io/apimachinery/pkg/apis/meta/v1",
"//vendor:k8s.io/apimachinery/pkg/types",
"//vendor:k8s.io/apimachinery/pkg/types",
"//vendor:k8s.io/client-go/pkg/api/v1",
"//vendor:k8s.io/client-go/tools/record",
"//vendor:k8s.io/client-go/tools/record",
"//vendor:k8s.io/client-go/util/clock",
"//vendor:k8s.io/client-go/util/clock",
],
],
...
...
pkg/kubelet/eviction/eviction_manager.go
View file @
a106d9f8
...
@@ -25,6 +25,7 @@ import (
...
@@ -25,6 +25,7 @@ import (
"github.com/golang/glog"
"github.com/golang/glog"
"k8s.io/apimachinery/pkg/api/resource"
"k8s.io/apimachinery/pkg/api/resource"
"k8s.io/apimachinery/pkg/util/wait"
"k8s.io/apimachinery/pkg/util/wait"
clientv1
"k8s.io/client-go/pkg/api/v1"
"k8s.io/client-go/tools/record"
"k8s.io/client-go/tools/record"
"k8s.io/client-go/util/clock"
"k8s.io/client-go/util/clock"
"k8s.io/kubernetes/pkg/api/v1"
"k8s.io/kubernetes/pkg/api/v1"
...
@@ -54,7 +55,7 @@ type managerImpl struct {
...
@@ -54,7 +55,7 @@ type managerImpl struct {
// captures when a node condition was last observed based on a threshold being met
// captures when a node condition was last observed based on a threshold being met
nodeConditionsLastObservedAt
nodeConditionsObservedAt
nodeConditionsLastObservedAt
nodeConditionsObservedAt
// nodeRef is a reference to the node
// nodeRef is a reference to the node
nodeRef
*
v1
.
ObjectReference
nodeRef
*
client
v1
.
ObjectReference
// used to record events about the node
// used to record events about the node
recorder
record
.
EventRecorder
recorder
record
.
EventRecorder
// used to measure usage stats on system
// used to measure usage stats on system
...
@@ -83,7 +84,7 @@ func NewManager(
...
@@ -83,7 +84,7 @@ func NewManager(
killPodFunc
KillPodFunc
,
killPodFunc
KillPodFunc
,
imageGC
ImageGC
,
imageGC
ImageGC
,
recorder
record
.
EventRecorder
,
recorder
record
.
EventRecorder
,
nodeRef
*
v1
.
ObjectReference
,
nodeRef
*
client
v1
.
ObjectReference
,
clock
clock
.
Clock
)
(
Manager
,
lifecycle
.
PodAdmitHandler
)
{
clock
clock
.
Clock
)
(
Manager
,
lifecycle
.
PodAdmitHandler
)
{
manager
:=
&
managerImpl
{
manager
:=
&
managerImpl
{
clock
:
clock
,
clock
:
clock
,
...
...
pkg/kubelet/eviction/eviction_manager_test.go
View file @
a106d9f8
...
@@ -22,6 +22,7 @@ import (
...
@@ -22,6 +22,7 @@ import (
"k8s.io/apimachinery/pkg/api/resource"
"k8s.io/apimachinery/pkg/api/resource"
"k8s.io/apimachinery/pkg/types"
"k8s.io/apimachinery/pkg/types"
clientv1
"k8s.io/client-go/pkg/api/v1"
"k8s.io/client-go/tools/record"
"k8s.io/client-go/tools/record"
"k8s.io/client-go/util/clock"
"k8s.io/client-go/util/clock"
"k8s.io/kubernetes/pkg/api/v1"
"k8s.io/kubernetes/pkg/api/v1"
...
@@ -172,7 +173,7 @@ func TestMemoryPressure(t *testing.T) {
...
@@ -172,7 +173,7 @@ func TestMemoryPressure(t *testing.T) {
podKiller
:=
&
mockPodKiller
{}
podKiller
:=
&
mockPodKiller
{}
diskInfoProvider
:=
&
mockDiskInfoProvider
{
dedicatedImageFs
:
false
}
diskInfoProvider
:=
&
mockDiskInfoProvider
{
dedicatedImageFs
:
false
}
imageGC
:=
&
mockImageGC
{
freed
:
int64
(
0
),
err
:
nil
}
imageGC
:=
&
mockImageGC
{
freed
:
int64
(
0
),
err
:
nil
}
nodeRef
:=
&
v1
.
ObjectReference
{
Kind
:
"Node"
,
Name
:
"test"
,
UID
:
types
.
UID
(
"test"
),
Namespace
:
""
}
nodeRef
:=
&
client
v1
.
ObjectReference
{
Kind
:
"Node"
,
Name
:
"test"
,
UID
:
types
.
UID
(
"test"
),
Namespace
:
""
}
config
:=
Config
{
config
:=
Config
{
MaxPodGracePeriodSeconds
:
5
,
MaxPodGracePeriodSeconds
:
5
,
...
@@ -392,7 +393,7 @@ func TestDiskPressureNodeFs(t *testing.T) {
...
@@ -392,7 +393,7 @@ func TestDiskPressureNodeFs(t *testing.T) {
podKiller
:=
&
mockPodKiller
{}
podKiller
:=
&
mockPodKiller
{}
diskInfoProvider
:=
&
mockDiskInfoProvider
{
dedicatedImageFs
:
false
}
diskInfoProvider
:=
&
mockDiskInfoProvider
{
dedicatedImageFs
:
false
}
imageGC
:=
&
mockImageGC
{
freed
:
int64
(
0
),
err
:
nil
}
imageGC
:=
&
mockImageGC
{
freed
:
int64
(
0
),
err
:
nil
}
nodeRef
:=
&
v1
.
ObjectReference
{
Kind
:
"Node"
,
Name
:
"test"
,
UID
:
types
.
UID
(
"test"
),
Namespace
:
""
}
nodeRef
:=
&
client
v1
.
ObjectReference
{
Kind
:
"Node"
,
Name
:
"test"
,
UID
:
types
.
UID
(
"test"
),
Namespace
:
""
}
config
:=
Config
{
config
:=
Config
{
MaxPodGracePeriodSeconds
:
5
,
MaxPodGracePeriodSeconds
:
5
,
...
@@ -589,7 +590,7 @@ func TestMinReclaim(t *testing.T) {
...
@@ -589,7 +590,7 @@ func TestMinReclaim(t *testing.T) {
podKiller
:=
&
mockPodKiller
{}
podKiller
:=
&
mockPodKiller
{}
diskInfoProvider
:=
&
mockDiskInfoProvider
{
dedicatedImageFs
:
false
}
diskInfoProvider
:=
&
mockDiskInfoProvider
{
dedicatedImageFs
:
false
}
imageGC
:=
&
mockImageGC
{
freed
:
int64
(
0
),
err
:
nil
}
imageGC
:=
&
mockImageGC
{
freed
:
int64
(
0
),
err
:
nil
}
nodeRef
:=
&
v1
.
ObjectReference
{
Kind
:
"Node"
,
Name
:
"test"
,
UID
:
types
.
UID
(
"test"
),
Namespace
:
""
}
nodeRef
:=
&
client
v1
.
ObjectReference
{
Kind
:
"Node"
,
Name
:
"test"
,
UID
:
types
.
UID
(
"test"
),
Namespace
:
""
}
config
:=
Config
{
config
:=
Config
{
MaxPodGracePeriodSeconds
:
5
,
MaxPodGracePeriodSeconds
:
5
,
...
@@ -728,7 +729,7 @@ func TestNodeReclaimFuncs(t *testing.T) {
...
@@ -728,7 +729,7 @@ func TestNodeReclaimFuncs(t *testing.T) {
diskInfoProvider
:=
&
mockDiskInfoProvider
{
dedicatedImageFs
:
false
}
diskInfoProvider
:=
&
mockDiskInfoProvider
{
dedicatedImageFs
:
false
}
imageGcFree
:=
resource
.
MustParse
(
"700Mi"
)
imageGcFree
:=
resource
.
MustParse
(
"700Mi"
)
imageGC
:=
&
mockImageGC
{
freed
:
imageGcFree
.
Value
(),
err
:
nil
}
imageGC
:=
&
mockImageGC
{
freed
:
imageGcFree
.
Value
(),
err
:
nil
}
nodeRef
:=
&
v1
.
ObjectReference
{
Kind
:
"Node"
,
Name
:
"test"
,
UID
:
types
.
UID
(
"test"
),
Namespace
:
""
}
nodeRef
:=
&
client
v1
.
ObjectReference
{
Kind
:
"Node"
,
Name
:
"test"
,
UID
:
types
.
UID
(
"test"
),
Namespace
:
""
}
config
:=
Config
{
config
:=
Config
{
MaxPodGracePeriodSeconds
:
5
,
MaxPodGracePeriodSeconds
:
5
,
...
@@ -920,7 +921,7 @@ func TestInodePressureNodeFsInodes(t *testing.T) {
...
@@ -920,7 +921,7 @@ func TestInodePressureNodeFsInodes(t *testing.T) {
podKiller
:=
&
mockPodKiller
{}
podKiller
:=
&
mockPodKiller
{}
diskInfoProvider
:=
&
mockDiskInfoProvider
{
dedicatedImageFs
:
false
}
diskInfoProvider
:=
&
mockDiskInfoProvider
{
dedicatedImageFs
:
false
}
imageGC
:=
&
mockImageGC
{
freed
:
int64
(
0
),
err
:
nil
}
imageGC
:=
&
mockImageGC
{
freed
:
int64
(
0
),
err
:
nil
}
nodeRef
:=
&
v1
.
ObjectReference
{
Kind
:
"Node"
,
Name
:
"test"
,
UID
:
types
.
UID
(
"test"
),
Namespace
:
""
}
nodeRef
:=
&
client
v1
.
ObjectReference
{
Kind
:
"Node"
,
Name
:
"test"
,
UID
:
types
.
UID
(
"test"
),
Namespace
:
""
}
config
:=
Config
{
config
:=
Config
{
MaxPodGracePeriodSeconds
:
5
,
MaxPodGracePeriodSeconds
:
5
,
...
...
pkg/kubelet/images/BUILD
View file @
a106d9f8
...
@@ -30,6 +30,7 @@ go_library(
...
@@ -30,6 +30,7 @@ go_library(
"//vendor:k8s.io/apimachinery/pkg/util/errors",
"//vendor:k8s.io/apimachinery/pkg/util/errors",
"//vendor:k8s.io/apimachinery/pkg/util/sets",
"//vendor:k8s.io/apimachinery/pkg/util/sets",
"//vendor:k8s.io/apimachinery/pkg/util/wait",
"//vendor:k8s.io/apimachinery/pkg/util/wait",
"//vendor:k8s.io/client-go/pkg/api/v1",
"//vendor:k8s.io/client-go/tools/record",
"//vendor:k8s.io/client-go/tools/record",
"//vendor:k8s.io/client-go/util/flowcontrol",
"//vendor:k8s.io/client-go/util/flowcontrol",
],
],
...
...
pkg/kubelet/images/image_gc_manager.go
View file @
a106d9f8
...
@@ -27,6 +27,7 @@ import (
...
@@ -27,6 +27,7 @@ import (
"k8s.io/apimachinery/pkg/util/errors"
"k8s.io/apimachinery/pkg/util/errors"
"k8s.io/apimachinery/pkg/util/sets"
"k8s.io/apimachinery/pkg/util/sets"
"k8s.io/apimachinery/pkg/util/wait"
"k8s.io/apimachinery/pkg/util/wait"
clientv1
"k8s.io/client-go/pkg/api/v1"
"k8s.io/client-go/tools/record"
"k8s.io/client-go/tools/record"
"k8s.io/kubernetes/pkg/api/v1"
"k8s.io/kubernetes/pkg/api/v1"
"k8s.io/kubernetes/pkg/kubelet/cadvisor"
"k8s.io/kubernetes/pkg/kubelet/cadvisor"
...
@@ -85,7 +86,7 @@ type realImageGCManager struct {
...
@@ -85,7 +86,7 @@ type realImageGCManager struct {
recorder
record
.
EventRecorder
recorder
record
.
EventRecorder
// Reference to this node.
// Reference to this node.
nodeRef
*
v1
.
ObjectReference
nodeRef
*
client
v1
.
ObjectReference
// Track initialization
// Track initialization
initialized
bool
initialized
bool
...
@@ -128,7 +129,7 @@ type imageRecord struct {
...
@@ -128,7 +129,7 @@ type imageRecord struct {
size
int64
size
int64
}
}
func
NewImageGCManager
(
runtime
container
.
Runtime
,
cadvisorInterface
cadvisor
.
Interface
,
recorder
record
.
EventRecorder
,
nodeRef
*
v1
.
ObjectReference
,
policy
ImageGCPolicy
)
(
ImageGCManager
,
error
)
{
func
NewImageGCManager
(
runtime
container
.
Runtime
,
cadvisorInterface
cadvisor
.
Interface
,
recorder
record
.
EventRecorder
,
nodeRef
*
client
v1
.
ObjectReference
,
policy
ImageGCPolicy
)
(
ImageGCManager
,
error
)
{
// Validate policy.
// Validate policy.
if
policy
.
HighThresholdPercent
<
0
||
policy
.
HighThresholdPercent
>
100
{
if
policy
.
HighThresholdPercent
<
0
||
policy
.
HighThresholdPercent
>
100
{
return
nil
,
fmt
.
Errorf
(
"invalid HighThresholdPercent %d, must be in range [0-100]"
,
policy
.
HighThresholdPercent
)
return
nil
,
fmt
.
Errorf
(
"invalid HighThresholdPercent %d, must be in range [0-100]"
,
policy
.
HighThresholdPercent
)
...
...
pkg/kubelet/images/image_manager.go
View file @
a106d9f8
...
@@ -75,7 +75,7 @@ func shouldPullImage(container *v1.Container, imagePresent bool) bool {
...
@@ -75,7 +75,7 @@ func shouldPullImage(container *v1.Container, imagePresent bool) bool {
// records an event using ref, event msg. log to glog using prefix, msg, logFn
// records an event using ref, event msg. log to glog using prefix, msg, logFn
func
(
m
*
imageManager
)
logIt
(
ref
*
v1
.
ObjectReference
,
eventtype
,
event
,
prefix
,
msg
string
,
logFn
func
(
args
...
interface
{}))
{
func
(
m
*
imageManager
)
logIt
(
ref
*
v1
.
ObjectReference
,
eventtype
,
event
,
prefix
,
msg
string
,
logFn
func
(
args
...
interface
{}))
{
if
ref
!=
nil
{
if
ref
!=
nil
{
m
.
recorder
.
Event
(
ref
,
eventtype
,
event
,
msg
)
m
.
recorder
.
Event
(
events
.
ToObjectReference
(
ref
)
,
eventtype
,
event
,
msg
)
}
else
{
}
else
{
logFn
(
fmt
.
Sprint
(
prefix
,
" "
,
msg
))
logFn
(
fmt
.
Sprint
(
prefix
,
" "
,
msg
))
}
}
...
...
pkg/kubelet/kubelet.go
View file @
a106d9f8
...
@@ -44,6 +44,7 @@ import (
...
@@ -44,6 +44,7 @@ import (
"k8s.io/apimachinery/pkg/util/wait"
"k8s.io/apimachinery/pkg/util/wait"
utilfeature
"k8s.io/apiserver/pkg/util/feature"
utilfeature
"k8s.io/apiserver/pkg/util/feature"
v1core
"k8s.io/client-go/kubernetes/typed/core/v1"
v1core
"k8s.io/client-go/kubernetes/typed/core/v1"
clientv1
"k8s.io/client-go/pkg/api/v1"
"k8s.io/client-go/tools/cache"
"k8s.io/client-go/tools/cache"
"k8s.io/client-go/tools/record"
"k8s.io/client-go/tools/record"
"k8s.io/client-go/util/clock"
"k8s.io/client-go/util/clock"
...
@@ -401,7 +402,7 @@ func NewMainKubelet(kubeCfg *componentconfig.KubeletConfiguration, kubeDeps *Kub
...
@@ -401,7 +402,7 @@ func NewMainKubelet(kubeCfg *componentconfig.KubeletConfiguration, kubeDeps *Kub
// TODO: get the real node object of ourself,
// TODO: get the real node object of ourself,
// and use the real node name and UID.
// and use the real node name and UID.
// TODO: what is namespace for node?
// TODO: what is namespace for node?
nodeRef
:=
&
v1
.
ObjectReference
{
nodeRef
:=
&
client
v1
.
ObjectReference
{
Kind
:
"Node"
,
Kind
:
"Node"
,
Name
:
string
(
nodeName
),
Name
:
string
(
nodeName
),
UID
:
types
.
UID
(
nodeName
),
UID
:
types
.
UID
(
nodeName
),
...
@@ -923,7 +924,7 @@ type Kubelet struct {
...
@@ -923,7 +924,7 @@ type Kubelet struct {
autoDetectCloudProvider
bool
autoDetectCloudProvider
bool
// Reference to this node.
// Reference to this node.
nodeRef
*
v1
.
ObjectReference
nodeRef
*
client
v1
.
ObjectReference
// Container runtime.
// Container runtime.
containerRuntime
kubecontainer
.
Runtime
containerRuntime
kubecontainer
.
Runtime
...
...
pkg/kubelet/kubelet_test.go
View file @
a106d9f8
...
@@ -34,6 +34,7 @@ import (
...
@@ -34,6 +34,7 @@ import (
utilruntime
"k8s.io/apimachinery/pkg/util/runtime"
utilruntime
"k8s.io/apimachinery/pkg/util/runtime"
"k8s.io/apimachinery/pkg/util/sets"
"k8s.io/apimachinery/pkg/util/sets"
"k8s.io/apimachinery/pkg/util/wait"
"k8s.io/apimachinery/pkg/util/wait"
clientv1
"k8s.io/client-go/pkg/api/v1"
"k8s.io/client-go/tools/record"
"k8s.io/client-go/tools/record"
"k8s.io/client-go/util/clock"
"k8s.io/client-go/util/clock"
"k8s.io/client-go/util/flowcontrol"
"k8s.io/client-go/util/flowcontrol"
...
@@ -201,7 +202,7 @@ func newTestKubeletWithImageList(
...
@@ -201,7 +202,7 @@ func newTestKubeletWithImageList(
kubelet
.
livenessManager
=
proberesults
.
NewManager
()
kubelet
.
livenessManager
=
proberesults
.
NewManager
()
kubelet
.
containerManager
=
cm
.
NewStubContainerManager
()
kubelet
.
containerManager
=
cm
.
NewStubContainerManager
()
fakeNodeRef
:=
&
v1
.
ObjectReference
{
fakeNodeRef
:=
&
client
v1
.
ObjectReference
{
Kind
:
"Node"
,
Kind
:
"Node"
,
Name
:
testKubeletHostname
,
Name
:
testKubeletHostname
,
UID
:
types
.
UID
(
testKubeletHostname
),
UID
:
types
.
UID
(
testKubeletHostname
),
...
@@ -237,7 +238,7 @@ func newTestKubeletWithImageList(
...
@@ -237,7 +238,7 @@ func newTestKubeletWithImageList(
// TODO: Factor out "StatsProvider" from Kubelet so we don't have a cyclic dependency
// TODO: Factor out "StatsProvider" from Kubelet so we don't have a cyclic dependency
volumeStatsAggPeriod
:=
time
.
Second
*
10
volumeStatsAggPeriod
:=
time
.
Second
*
10
kubelet
.
resourceAnalyzer
=
stats
.
NewResourceAnalyzer
(
kubelet
,
volumeStatsAggPeriod
,
kubelet
.
containerRuntime
)
kubelet
.
resourceAnalyzer
=
stats
.
NewResourceAnalyzer
(
kubelet
,
volumeStatsAggPeriod
,
kubelet
.
containerRuntime
)
nodeRef
:=
&
v1
.
ObjectReference
{
nodeRef
:=
&
client
v1
.
ObjectReference
{
Kind
:
"Node"
,
Kind
:
"Node"
,
Name
:
string
(
kubelet
.
nodeName
),
Name
:
string
(
kubelet
.
nodeName
),
UID
:
types
.
UID
(
kubelet
.
nodeName
),
UID
:
types
.
UID
(
kubelet
.
nodeName
),
...
...
pkg/kubelet/oom_watcher.go
View file @
a106d9f8
...
@@ -22,8 +22,8 @@ import (
...
@@ -22,8 +22,8 @@ import (
cadvisorapi
"github.com/google/cadvisor/info/v1"
cadvisorapi
"github.com/google/cadvisor/info/v1"
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/util/runtime"
"k8s.io/apimachinery/pkg/util/runtime"
"k8s.io/client-go/pkg/api/v1"
"k8s.io/client-go/tools/record"
"k8s.io/client-go/tools/record"
"k8s.io/kubernetes/pkg/api/v1"
"k8s.io/kubernetes/pkg/kubelet/cadvisor"
"k8s.io/kubernetes/pkg/kubelet/cadvisor"
)
)
...
...
pkg/kubelet/oom_watcher_test.go
View file @
a106d9f8
...
@@ -19,8 +19,8 @@ package kubelet
...
@@ -19,8 +19,8 @@ package kubelet
import
(
import
(
"testing"
"testing"
"k8s.io/client-go/pkg/api/v1"
"k8s.io/client-go/tools/record"
"k8s.io/client-go/tools/record"
"k8s.io/kubernetes/pkg/api/v1"
cadvisortest
"k8s.io/kubernetes/pkg/kubelet/cadvisor/testing"
cadvisortest
"k8s.io/kubernetes/pkg/kubelet/cadvisor/testing"
)
)
...
...
pkg/kubelet/runonce_test.go
View file @
a106d9f8
...
@@ -25,6 +25,7 @@ import (
...
@@ -25,6 +25,7 @@ import (
cadvisorapiv2
"github.com/google/cadvisor/info/v2"
cadvisorapiv2
"github.com/google/cadvisor/info/v2"
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/types"
"k8s.io/apimachinery/pkg/types"
clientv1
"k8s.io/client-go/pkg/api/v1"
"k8s.io/client-go/tools/record"
"k8s.io/client-go/tools/record"
"k8s.io/client-go/util/clock"
"k8s.io/client-go/util/clock"
utiltesting
"k8s.io/client-go/util/testing"
utiltesting
"k8s.io/client-go/util/testing"
...
@@ -114,7 +115,7 @@ func TestRunOnce(t *testing.T) {
...
@@ -114,7 +115,7 @@ func TestRunOnce(t *testing.T) {
// TODO: Factor out "StatsProvider" from Kubelet so we don't have a cyclic dependency
// TODO: Factor out "StatsProvider" from Kubelet so we don't have a cyclic dependency
volumeStatsAggPeriod
:=
time
.
Second
*
10
volumeStatsAggPeriod
:=
time
.
Second
*
10
kb
.
resourceAnalyzer
=
stats
.
NewResourceAnalyzer
(
kb
,
volumeStatsAggPeriod
,
kb
.
containerRuntime
)
kb
.
resourceAnalyzer
=
stats
.
NewResourceAnalyzer
(
kb
,
volumeStatsAggPeriod
,
kb
.
containerRuntime
)
nodeRef
:=
&
v1
.
ObjectReference
{
nodeRef
:=
&
client
v1
.
ObjectReference
{
Kind
:
"Node"
,
Kind
:
"Node"
,
Name
:
string
(
kb
.
nodeName
),
Name
:
string
(
kb
.
nodeName
),
UID
:
types
.
UID
(
kb
.
nodeName
),
UID
:
types
.
UID
(
kb
.
nodeName
),
...
...
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