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
4cbf3972
Commit
4cbf3972
authored
Mar 03, 2018
by
Davanum Srinivas
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix test failure and delete unused code
Removing the template generation that was left behind when the API was updated in
22fb5c47
Also cleaned up many unused methods left behind
parent
3d60b3cd
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
1 addition
and
135 deletions
+1
-135
BUILD
test/e2e/apps/BUILD
+0
-1
daemon_set.go
test/e2e/apps/daemon_set.go
+1
-134
No files found.
test/e2e/apps/BUILD
View file @
4cbf3972
...
...
@@ -29,7 +29,6 @@ go_library(
"//pkg/apis/core:go_default_library",
"//pkg/apis/extensions:go_default_library",
"//pkg/client/clientset_generated/internalclientset:go_default_library",
"//pkg/controller:go_default_library",
"//pkg/controller/daemon:go_default_library",
"//pkg/controller/deployment/util:go_default_library",
"//pkg/controller/job:go_default_library",
...
...
test/e2e/apps/daemon_set.go
View file @
4cbf3972
...
...
@@ -34,7 +34,6 @@ import (
"k8s.io/kubernetes/pkg/api/legacyscheme"
podutil
"k8s.io/kubernetes/pkg/api/v1/pod"
extensionsinternal
"k8s.io/kubernetes/pkg/apis/extensions"
"k8s.io/kubernetes/pkg/controller"
"k8s.io/kubernetes/pkg/controller/daemon"
"k8s.io/kubernetes/pkg/kubectl"
"k8s.io/kubernetes/pkg/scheduler/schedulercache"
...
...
@@ -315,8 +314,7 @@ var _ = SIGDescribe("Daemon set [Serial]", func() {
framework
.
ConformanceIt
(
"should update pod when spec was updated and update strategy is RollingUpdate"
,
func
()
{
label
:=
map
[
string
]
string
{
daemonsetNameLabel
:
dsName
}
templateGeneration
:=
int64
(
999
)
framework
.
Logf
(
"Creating simple daemon set %s with templateGeneration %d"
,
dsName
,
templateGeneration
)
framework
.
Logf
(
"Creating simple daemon set %s"
,
dsName
)
ds
:=
newDaemonSet
(
dsName
,
image
,
label
)
ds
.
Spec
.
UpdateStrategy
=
apps
.
DaemonSetUpdateStrategy
{
Type
:
apps
.
RollingUpdateDaemonSetStrategyType
}
ds
,
err
:=
c
.
AppsV1
()
.
DaemonSets
(
ns
)
.
Create
(
ds
)
...
...
@@ -326,10 +324,6 @@ var _ = SIGDescribe("Daemon set [Serial]", func() {
err
=
wait
.
PollImmediate
(
dsRetryPeriod
,
dsRetryTimeout
,
checkRunningOnAllNodes
(
f
,
ds
))
Expect
(
err
)
.
NotTo
(
HaveOccurred
(),
"error waiting for daemon pod to start"
)
By
(
fmt
.
Sprintf
(
"Make sure all daemon pods have correct template generation %d"
,
templateGeneration
))
err
=
checkDaemonPodsTemplateGeneration
(
c
,
ns
,
label
,
fmt
.
Sprint
(
templateGeneration
))
Expect
(
err
)
.
NotTo
(
HaveOccurred
())
// Check history and labels
ds
,
err
=
c
.
AppsV1
()
.
DaemonSets
(
ns
)
.
Get
(
ds
.
Name
,
metav1
.
GetOptions
{})
Expect
(
err
)
.
NotTo
(
HaveOccurred
())
...
...
@@ -343,16 +337,11 @@ var _ = SIGDescribe("Daemon set [Serial]", func() {
patch
:=
getDaemonSetImagePatch
(
ds
.
Spec
.
Template
.
Spec
.
Containers
[
0
]
.
Name
,
RedisImage
)
ds
,
err
=
c
.
AppsV1
()
.
DaemonSets
(
ns
)
.
Patch
(
dsName
,
types
.
StrategicMergePatchType
,
[]
byte
(
patch
))
Expect
(
err
)
.
NotTo
(
HaveOccurred
())
templateGeneration
++
By
(
"Check that daemon pods images are updated."
)
err
=
wait
.
PollImmediate
(
dsRetryPeriod
,
dsRetryTimeout
,
checkDaemonPodsImageAndAvailability
(
c
,
ds
,
RedisImage
,
1
))
Expect
(
err
)
.
NotTo
(
HaveOccurred
())
By
(
fmt
.
Sprintf
(
"Make sure all daemon pods have correct template generation %d"
,
templateGeneration
))
err
=
checkDaemonPodsTemplateGeneration
(
c
,
ns
,
label
,
fmt
.
Sprint
(
templateGeneration
))
Expect
(
err
)
.
NotTo
(
HaveOccurred
())
By
(
"Check that daemon pods are still running on every node of the cluster."
)
err
=
wait
.
PollImmediate
(
dsRetryPeriod
,
dsRetryTimeout
,
checkRunningOnAllNodes
(
f
,
ds
))
Expect
(
err
)
.
NotTo
(
HaveOccurred
(),
"error waiting for daemon pod to start"
)
...
...
@@ -443,23 +432,6 @@ func getDaemonSetImagePatch(containerName, containerImage string) string {
return
fmt
.
Sprintf
(
`{"spec":{"template":{"spec":{"containers":[{"name":"%s","image":"%s"}]}}}}`
,
containerName
,
containerImage
)
}
// deleteDaemonSetAndOrphan deletes the given DaemonSet and orphans all its dependents.
// It also checks that all dependents are orphaned, and the DaemonSet is deleted.
func
deleteDaemonSetAndOrphan
(
c
clientset
.
Interface
,
ds
*
apps
.
DaemonSet
)
{
trueVar
:=
true
deleteOptions
:=
&
metav1
.
DeleteOptions
{
OrphanDependents
:
&
trueVar
}
deleteOptions
.
Preconditions
=
metav1
.
NewUIDPreconditions
(
string
(
ds
.
UID
))
err
:=
c
.
AppsV1
()
.
DaemonSets
(
ds
.
Namespace
)
.
Delete
(
ds
.
Name
,
deleteOptions
)
Expect
(
err
)
.
NotTo
(
HaveOccurred
())
err
=
wait
.
PollImmediate
(
dsRetryPeriod
,
dsRetryTimeout
,
checkDaemonSetPodsOrphaned
(
c
,
ds
.
Namespace
,
ds
.
Spec
.
Template
.
Labels
))
Expect
(
err
)
.
NotTo
(
HaveOccurred
(),
"error waiting for DaemonSet pods to be orphaned"
)
err
=
wait
.
PollImmediate
(
dsRetryPeriod
,
dsRetryTimeout
,
checkDaemonSetHistoryOrphaned
(
c
,
ds
.
Namespace
,
ds
.
Spec
.
Template
.
Labels
))
Expect
(
err
)
.
NotTo
(
HaveOccurred
(),
"error waiting for DaemonSet history to be orphaned"
)
err
=
wait
.
PollImmediate
(
dsRetryPeriod
,
dsRetryTimeout
,
checkDaemonSetDeleted
(
c
,
ds
.
Namespace
,
ds
.
Name
))
Expect
(
err
)
.
NotTo
(
HaveOccurred
(),
"error waiting for DaemonSet to be deleted"
)
}
func
newDaemonSet
(
dsName
,
image
string
,
label
map
[
string
]
string
)
*
apps
.
DaemonSet
{
return
&
apps
.
DaemonSet
{
ObjectMeta
:
metav1
.
ObjectMeta
{
...
...
@@ -700,111 +672,6 @@ func checkDaemonPodsImageAndAvailability(c clientset.Interface, ds *apps.DaemonS
}
}
func
checkDaemonPodsTemplateGeneration
(
c
clientset
.
Interface
,
ns
string
,
label
map
[
string
]
string
,
templateGeneration
string
)
error
{
pods
:=
listDaemonPods
(
c
,
ns
,
label
)
for
_
,
pod
:=
range
pods
.
Items
{
// We don't care about inactive pods
if
!
controller
.
IsPodActive
(
&
pod
)
{
continue
}
podTemplateGeneration
:=
pod
.
Labels
[
apps
.
DeprecatedTemplateGeneration
]
if
podTemplateGeneration
!=
templateGeneration
{
return
fmt
.
Errorf
(
"expected pod %s/%s template generation %s, but got %s"
,
pod
.
Namespace
,
pod
.
Name
,
templateGeneration
,
podTemplateGeneration
)
}
}
return
nil
}
func
checkDaemonSetDeleted
(
c
clientset
.
Interface
,
ns
,
name
string
)
func
()
(
bool
,
error
)
{
return
func
()
(
bool
,
error
)
{
_
,
err
:=
c
.
AppsV1
()
.
DaemonSets
(
ns
)
.
Get
(
name
,
metav1
.
GetOptions
{})
if
!
apierrs
.
IsNotFound
(
err
)
{
return
false
,
err
}
return
true
,
nil
}
}
func
checkDaemonSetPodsOrphaned
(
c
clientset
.
Interface
,
ns
string
,
label
map
[
string
]
string
)
func
()
(
bool
,
error
)
{
return
func
()
(
bool
,
error
)
{
pods
:=
listDaemonPods
(
c
,
ns
,
label
)
for
_
,
pod
:=
range
pods
.
Items
{
// This pod is orphaned only when controller ref is cleared
if
controllerRef
:=
metav1
.
GetControllerOf
(
&
pod
);
controllerRef
!=
nil
{
return
false
,
nil
}
}
return
true
,
nil
}
}
func
checkDaemonSetHistoryOrphaned
(
c
clientset
.
Interface
,
ns
string
,
label
map
[
string
]
string
)
func
()
(
bool
,
error
)
{
return
func
()
(
bool
,
error
)
{
histories
:=
listDaemonHistories
(
c
,
ns
,
label
)
for
_
,
history
:=
range
histories
.
Items
{
// This history is orphaned only when controller ref is cleared
if
controllerRef
:=
metav1
.
GetControllerOf
(
&
history
);
controllerRef
!=
nil
{
return
false
,
nil
}
}
return
true
,
nil
}
}
func
checkDaemonSetPodsAdopted
(
c
clientset
.
Interface
,
ns
string
,
dsUID
types
.
UID
,
label
map
[
string
]
string
)
func
()
(
bool
,
error
)
{
return
func
()
(
bool
,
error
)
{
pods
:=
listDaemonPods
(
c
,
ns
,
label
)
for
_
,
pod
:=
range
pods
.
Items
{
// This pod is adopted only when its controller ref is update
if
controllerRef
:=
metav1
.
GetControllerOf
(
&
pod
);
controllerRef
==
nil
||
controllerRef
.
UID
!=
dsUID
{
return
false
,
nil
}
}
return
true
,
nil
}
}
func
checkDaemonSetHistoryAdopted
(
c
clientset
.
Interface
,
ns
string
,
dsUID
types
.
UID
,
label
map
[
string
]
string
)
func
()
(
bool
,
error
)
{
return
func
()
(
bool
,
error
)
{
histories
:=
listDaemonHistories
(
c
,
ns
,
label
)
for
_
,
history
:=
range
histories
.
Items
{
// This history is adopted only when its controller ref is update
if
controllerRef
:=
metav1
.
GetControllerOf
(
&
history
);
controllerRef
==
nil
||
controllerRef
.
UID
!=
dsUID
{
return
false
,
nil
}
}
return
true
,
nil
}
}
func
waitDaemonSetAdoption
(
c
clientset
.
Interface
,
ds
*
apps
.
DaemonSet
,
podPrefix
string
,
podTemplateGeneration
int64
)
{
ns
:=
ds
.
Namespace
label
:=
ds
.
Spec
.
Template
.
Labels
err
:=
wait
.
PollImmediate
(
dsRetryPeriod
,
dsRetryTimeout
,
checkDaemonSetPodsAdopted
(
c
,
ns
,
ds
.
UID
,
label
))
Expect
(
err
)
.
NotTo
(
HaveOccurred
(),
"error waiting for DaemonSet pods to be adopted"
)
err
=
wait
.
PollImmediate
(
dsRetryPeriod
,
dsRetryTimeout
,
checkDaemonSetHistoryAdopted
(
c
,
ns
,
ds
.
UID
,
label
))
Expect
(
err
)
.
NotTo
(
HaveOccurred
(),
"error waiting for DaemonSet history to be adopted"
)
framework
.
Logf
(
"Make sure no daemon pod updated its template generation %d"
,
podTemplateGeneration
)
err
=
checkDaemonPodsTemplateGeneration
(
c
,
ns
,
label
,
fmt
.
Sprint
(
podTemplateGeneration
))
Expect
(
err
)
.
NotTo
(
HaveOccurred
())
framework
.
Logf
(
"Make sure no pods are recreated by looking at their names"
)
err
=
checkDaemonSetPodsName
(
c
,
ns
,
podPrefix
,
label
)
Expect
(
err
)
.
NotTo
(
HaveOccurred
())
}
func
checkDaemonSetPodsName
(
c
clientset
.
Interface
,
ns
,
prefix
string
,
label
map
[
string
]
string
)
error
{
pods
:=
listDaemonPods
(
c
,
ns
,
label
)
for
_
,
pod
:=
range
pods
.
Items
{
if
!
strings
.
HasPrefix
(
pod
.
Name
,
prefix
)
{
return
fmt
.
Errorf
(
"expected pod %s name to be prefixed %q"
,
pod
.
Name
,
prefix
)
}
}
return
nil
}
func
checkDaemonSetPodsLabels
(
podList
*
v1
.
PodList
,
hash
string
)
{
for
_
,
pod
:=
range
podList
.
Items
{
podHash
:=
pod
.
Labels
[
apps
.
DefaultDaemonSetUniqueLabelKey
]
...
...
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