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
83c1ef48
Commit
83c1ef48
authored
Feb 01, 2017
by
Michail Kargakis
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
test: move deployment helper in testing framework
parent
96cfe7b9
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
51 additions
and
48 deletions
+51
-48
deployment.go
test/e2e/deployment.go
+21
-48
util.go
test/e2e/framework/util.go
+30
-0
No files found.
test/e2e/deployment.go
View file @
83c1ef48
...
...
@@ -105,37 +105,6 @@ var _ = framework.KubeDescribe("Deployment", func() {
// See https://github.com/kubernetes/kubernetes/issues/29229
})
func
newDeployment
(
deploymentName
string
,
replicas
int32
,
podLabels
map
[
string
]
string
,
imageName
string
,
image
string
,
strategyType
extensions
.
DeploymentStrategyType
,
revisionHistoryLimit
*
int32
)
*
extensions
.
Deployment
{
zero
:=
int64
(
0
)
return
&
extensions
.
Deployment
{
ObjectMeta
:
metav1
.
ObjectMeta
{
Name
:
deploymentName
,
},
Spec
:
extensions
.
DeploymentSpec
{
Replicas
:
func
(
i
int32
)
*
int32
{
return
&
i
}(
replicas
),
Selector
:
&
metav1
.
LabelSelector
{
MatchLabels
:
podLabels
},
Strategy
:
extensions
.
DeploymentStrategy
{
Type
:
strategyType
,
},
RevisionHistoryLimit
:
revisionHistoryLimit
,
Template
:
v1
.
PodTemplateSpec
{
ObjectMeta
:
metav1
.
ObjectMeta
{
Labels
:
podLabels
,
},
Spec
:
v1
.
PodSpec
{
TerminationGracePeriodSeconds
:
&
zero
,
Containers
:
[]
v1
.
Container
{
{
Name
:
imageName
,
Image
:
image
,
},
},
},
},
},
}
}
func
newDeploymentRollback
(
name
string
,
annotations
map
[
string
]
string
,
revision
int64
)
*
extensions
.
DeploymentRollback
{
return
&
extensions
.
DeploymentRollback
{
Name
:
name
,
...
...
@@ -244,7 +213,7 @@ func testNewDeployment(f *framework.Framework) {
podLabels
:=
map
[
string
]
string
{
"name"
:
nginxImageName
}
replicas
:=
int32
(
1
)
framework
.
Logf
(
"Creating simple deployment %s"
,
deploymentName
)
d
:=
newDeployment
(
deploymentName
,
replicas
,
podLabels
,
nginxImageName
,
nginxImage
,
extensions
.
RollingUpdateDeploymentStrategyType
,
nil
)
d
:=
framework
.
NewDeployment
(
deploymentName
,
replicas
,
podLabels
,
nginxImageName
,
nginxImage
,
extensions
.
RollingUpdateDeploymentStrategyType
)
d
.
Annotations
=
map
[
string
]
string
{
"test"
:
"should-copy-to-replica-set"
,
annotations
.
LastAppliedConfigAnnotation
:
"should-not-copy-to-replica-set"
}
deploy
,
err
:=
c
.
Extensions
()
.
Deployments
(
ns
)
.
Create
(
d
)
Expect
(
err
)
.
NotTo
(
HaveOccurred
())
...
...
@@ -276,7 +245,7 @@ func testDeleteDeployment(f *framework.Framework) {
podLabels
:=
map
[
string
]
string
{
"name"
:
nginxImageName
}
replicas
:=
int32
(
1
)
framework
.
Logf
(
"Creating simple deployment %s"
,
deploymentName
)
d
:=
newDeployment
(
deploymentName
,
replicas
,
podLabels
,
nginxImageName
,
nginxImage
,
extensions
.
RollingUpdateDeploymentStrategyType
,
nil
)
d
:=
framework
.
NewDeployment
(
deploymentName
,
replicas
,
podLabels
,
nginxImageName
,
nginxImage
,
extensions
.
RollingUpdateDeploymentStrategyType
)
d
.
Annotations
=
map
[
string
]
string
{
"test"
:
"should-copy-to-replica-set"
,
annotations
.
LastAppliedConfigAnnotation
:
"should-not-copy-to-replica-set"
}
deploy
,
err
:=
c
.
Extensions
()
.
Deployments
(
ns
)
.
Create
(
d
)
Expect
(
err
)
.
NotTo
(
HaveOccurred
())
...
...
@@ -329,7 +298,8 @@ func testRollingUpdateDeployment(f *framework.Framework) {
// Create a deployment to delete nginx pods and instead bring up redis pods.
deploymentName
:=
"test-rolling-update-deployment"
By
(
fmt
.
Sprintf
(
"Creating deployment %q"
,
deploymentName
))
deploy
,
err
:=
c
.
Extensions
()
.
Deployments
(
ns
)
.
Create
(
newDeployment
(
deploymentName
,
replicas
,
deploymentPodLabels
,
redisImageName
,
redisImage
,
extensions
.
RollingUpdateDeploymentStrategyType
,
nil
))
d
:=
framework
.
NewDeployment
(
deploymentName
,
replicas
,
deploymentPodLabels
,
redisImageName
,
redisImage
,
extensions
.
RollingUpdateDeploymentStrategyType
)
deploy
,
err
:=
c
.
Extensions
()
.
Deployments
(
ns
)
.
Create
(
d
)
Expect
(
err
)
.
NotTo
(
HaveOccurred
())
// Wait for it to be updated to revision 3546343826724305833.
...
...
@@ -361,7 +331,8 @@ func testRecreateDeployment(f *framework.Framework) {
// Create a deployment that brings up redis pods.
deploymentName
:=
"test-recreate-deployment"
By
(
fmt
.
Sprintf
(
"Creating deployment %q"
,
deploymentName
))
deployment
,
err
:=
c
.
Extensions
()
.
Deployments
(
ns
)
.
Create
(
newDeployment
(
deploymentName
,
int32
(
3
),
map
[
string
]
string
{
"name"
:
"sample-pod-3"
},
redisImageName
,
redisImage
,
extensions
.
RecreateDeploymentStrategyType
,
nil
))
d
:=
framework
.
NewDeployment
(
deploymentName
,
int32
(
3
),
map
[
string
]
string
{
"name"
:
"sample-pod-3"
},
redisImageName
,
redisImage
,
extensions
.
RecreateDeploymentStrategyType
)
deployment
,
err
:=
c
.
Extensions
()
.
Deployments
(
ns
)
.
Create
(
d
)
Expect
(
err
)
.
NotTo
(
HaveOccurred
())
// Wait for it to be updated to revision 1
...
...
@@ -447,7 +418,9 @@ func testDeploymentCleanUpPolicy(f *framework.Framework) {
}
}
}()
_
,
err
=
c
.
Extensions
()
.
Deployments
(
ns
)
.
Create
(
newDeployment
(
deploymentName
,
replicas
,
deploymentPodLabels
,
redisImageName
,
redisImage
,
extensions
.
RollingUpdateDeploymentStrategyType
,
revisionHistoryLimit
))
d
:=
framework
.
NewDeployment
(
deploymentName
,
replicas
,
deploymentPodLabels
,
redisImageName
,
redisImage
,
extensions
.
RollingUpdateDeploymentStrategyType
)
d
.
Spec
.
RevisionHistoryLimit
=
revisionHistoryLimit
_
,
err
=
c
.
Extensions
()
.
Deployments
(
ns
)
.
Create
(
d
)
Expect
(
err
)
.
NotTo
(
HaveOccurred
())
err
=
framework
.
WaitForDeploymentOldRSsNum
(
c
,
ns
,
deploymentName
,
int
(
*
revisionHistoryLimit
))
...
...
@@ -489,7 +462,7 @@ func testRolloverDeployment(f *framework.Framework) {
deploymentImage
:=
"gcr.io/google_samples/gb-redisslave:nonexistent"
deploymentStrategyType
:=
extensions
.
RollingUpdateDeploymentStrategyType
framework
.
Logf
(
"Creating deployment %q"
,
deploymentName
)
newDeployment
:=
newDeployment
(
deploymentName
,
deploymentReplicas
,
deploymentPodLabels
,
deploymentImageName
,
deploymentImage
,
deploymentStrategyType
,
nil
)
newDeployment
:=
framework
.
NewDeployment
(
deploymentName
,
deploymentReplicas
,
deploymentPodLabels
,
deploymentImageName
,
deploymentImage
,
deploymentStrategyType
)
newDeployment
.
Spec
.
Strategy
.
RollingUpdate
=
&
extensions
.
RollingUpdateDeployment
{
MaxUnavailable
:
func
(
i
int
)
*
intstr
.
IntOrString
{
x
:=
intstr
.
FromInt
(
i
);
return
&
x
}(
1
),
MaxSurge
:
func
(
i
int
)
*
intstr
.
IntOrString
{
x
:=
intstr
.
FromInt
(
i
);
return
&
x
}(
1
),
...
...
@@ -538,7 +511,7 @@ func testPausedDeployment(f *framework.Framework) {
c
:=
f
.
ClientSet
deploymentName
:=
"test-paused-deployment"
podLabels
:=
map
[
string
]
string
{
"name"
:
nginxImageName
}
d
:=
newDeployment
(
deploymentName
,
1
,
podLabels
,
nginxImageName
,
nginxImage
,
extensions
.
RollingUpdateDeploymentStrategyType
,
nil
)
d
:=
framework
.
NewDeployment
(
deploymentName
,
1
,
podLabels
,
nginxImageName
,
nginxImage
,
extensions
.
RollingUpdateDeploymentStrategyType
)
d
.
Spec
.
Paused
=
true
tgps
:=
int64
(
1
)
d
.
Spec
.
Template
.
Spec
.
TerminationGracePeriodSeconds
=
&
tgps
...
...
@@ -641,7 +614,7 @@ func testRollbackDeployment(f *framework.Framework) {
deploymentImage
:=
nginxImage
deploymentStrategyType
:=
extensions
.
RollingUpdateDeploymentStrategyType
framework
.
Logf
(
"Creating deployment %s"
,
deploymentName
)
d
:=
newDeployment
(
deploymentName
,
deploymentReplicas
,
deploymentPodLabels
,
deploymentImageName
,
deploymentImage
,
deploymentStrategyType
,
nil
)
d
:=
framework
.
NewDeployment
(
deploymentName
,
deploymentReplicas
,
deploymentPodLabels
,
deploymentImageName
,
deploymentImage
,
deploymentStrategyType
)
createAnnotation
:=
map
[
string
]
string
{
"action"
:
"create"
,
"author"
:
"node"
}
d
.
Annotations
=
createAnnotation
deploy
,
err
:=
c
.
Extensions
()
.
Deployments
(
ns
)
.
Create
(
d
)
...
...
@@ -761,7 +734,7 @@ func testRollbackDeploymentRSNoRevision(f *framework.Framework) {
deploymentImage
:=
nginxImage
deploymentStrategyType
:=
extensions
.
RollingUpdateDeploymentStrategyType
framework
.
Logf
(
"Creating deployment %s"
,
deploymentName
)
d
:=
newDeployment
(
deploymentName
,
deploymentReplicas
,
deploymentPodLabels
,
deploymentImageName
,
deploymentImage
,
deploymentStrategyType
,
nil
)
d
:=
framework
.
NewDeployment
(
deploymentName
,
deploymentReplicas
,
deploymentPodLabels
,
deploymentImageName
,
deploymentImage
,
deploymentStrategyType
)
deploy
,
err
:=
c
.
Extensions
()
.
Deployments
(
ns
)
.
Create
(
d
)
Expect
(
err
)
.
NotTo
(
HaveOccurred
())
...
...
@@ -891,7 +864,7 @@ func testDeploymentLabelAdopted(f *framework.Framework) {
// Create a nginx deployment to adopt the old rs.
deploymentName
:=
"test-adopted-deployment"
framework
.
Logf
(
"Creating deployment %s"
,
deploymentName
)
deploy
,
err
:=
c
.
Extensions
()
.
Deployments
(
ns
)
.
Create
(
newDeployment
(
deploymentName
,
replicas
,
podLabels
,
podName
,
image
,
extensions
.
RollingUpdateDeploymentStrategyType
,
nil
))
deploy
,
err
:=
c
.
Extensions
()
.
Deployments
(
ns
)
.
Create
(
framework
.
NewDeployment
(
deploymentName
,
replicas
,
podLabels
,
podName
,
image
,
extensions
.
RollingUpdateDeploymentStrategyType
))
Expect
(
err
)
.
NotTo
(
HaveOccurred
())
// Wait for it to be updated to revision 1
...
...
@@ -932,7 +905,7 @@ func testScalePausedDeployment(f *framework.Framework) {
// Create a nginx deployment.
deploymentName
:=
"nginx-deployment"
d
:=
newDeployment
(
deploymentName
,
replicas
,
podLabels
,
nginxImageName
,
nginxImage
,
extensions
.
RollingUpdateDeploymentStrategyType
,
nil
)
d
:=
framework
.
NewDeployment
(
deploymentName
,
replicas
,
podLabels
,
nginxImageName
,
nginxImage
,
extensions
.
RollingUpdateDeploymentStrategyType
)
framework
.
Logf
(
"Creating deployment %q"
,
deploymentName
)
_
,
err
:=
c
.
Extensions
()
.
Deployments
(
ns
)
.
Create
(
d
)
Expect
(
err
)
.
NotTo
(
HaveOccurred
())
...
...
@@ -982,7 +955,7 @@ func testScaledRolloutDeployment(f *framework.Framework) {
// Create a nginx deployment.
deploymentName
:=
"nginx"
d
:=
newDeployment
(
deploymentName
,
replicas
,
podLabels
,
nginxImageName
,
nginxImage
,
extensions
.
RollingUpdateDeploymentStrategyType
,
nil
)
d
:=
framework
.
NewDeployment
(
deploymentName
,
replicas
,
podLabels
,
nginxImageName
,
nginxImage
,
extensions
.
RollingUpdateDeploymentStrategyType
)
d
.
Spec
.
Strategy
.
RollingUpdate
=
new
(
extensions
.
RollingUpdateDeployment
)
d
.
Spec
.
Strategy
.
RollingUpdate
.
MaxSurge
=
func
(
i
int
)
*
intstr
.
IntOrString
{
x
:=
intstr
.
FromInt
(
i
);
return
&
x
}(
3
)
d
.
Spec
.
Strategy
.
RollingUpdate
.
MaxUnavailable
=
func
(
i
int
)
*
intstr
.
IntOrString
{
x
:=
intstr
.
FromInt
(
i
);
return
&
x
}(
2
)
...
...
@@ -1137,7 +1110,7 @@ func testOverlappingDeployment(f *framework.Framework) {
podLabels
:=
map
[
string
]
string
{
"name"
:
redisImageName
}
replicas
:=
int32
(
1
)
By
(
fmt
.
Sprintf
(
"Creating deployment %q"
,
deploymentName
))
d
:=
newDeployment
(
deploymentName
,
replicas
,
podLabels
,
redisImageName
,
redisImage
,
extensions
.
RollingUpdateDeploymentStrategyType
,
nil
)
d
:=
framework
.
NewDeployment
(
deploymentName
,
replicas
,
podLabels
,
redisImageName
,
redisImage
,
extensions
.
RollingUpdateDeploymentStrategyType
)
deploy
,
err
:=
c
.
Extensions
()
.
Deployments
(
ns
)
.
Create
(
d
)
Expect
(
err
)
.
NotTo
(
HaveOccurred
(),
"Failed creating the first deployment"
)
...
...
@@ -1149,7 +1122,7 @@ func testOverlappingDeployment(f *framework.Framework) {
deploymentName
=
"second-deployment"
By
(
fmt
.
Sprintf
(
"Creating deployment %q with overlapping selector"
,
deploymentName
))
podLabels
[
"other-label"
]
=
"random-label"
d
=
newDeployment
(
deploymentName
,
replicas
,
podLabels
,
nginxImageName
,
nginxImage
,
extensions
.
RollingUpdateDeploymentStrategyType
,
nil
)
d
=
framework
.
NewDeployment
(
deploymentName
,
replicas
,
podLabels
,
nginxImageName
,
nginxImage
,
extensions
.
RollingUpdateDeploymentStrategyType
)
deployOverlapping
,
err
:=
c
.
Extensions
()
.
Deployments
(
ns
)
.
Create
(
d
)
Expect
(
err
)
.
NotTo
(
HaveOccurred
(),
"Failed creating the second deployment"
)
...
...
@@ -1192,7 +1165,7 @@ func testOverlappingDeployment(f *framework.Framework) {
deploymentName
=
"third-deployment"
podLabels
=
map
[
string
]
string
{
"name"
:
nginxImageName
}
By
(
fmt
.
Sprintf
(
"Creating deployment %q"
,
deploymentName
))
d
=
newDeployment
(
deploymentName
,
replicas
,
podLabels
,
nginxImageName
,
nginxImage
,
extensions
.
RollingUpdateDeploymentStrategyType
,
nil
)
d
=
framework
.
NewDeployment
(
deploymentName
,
replicas
,
podLabels
,
nginxImageName
,
nginxImage
,
extensions
.
RollingUpdateDeploymentStrategyType
)
thirdDeployment
,
err
:=
c
.
Extensions
()
.
Deployments
(
ns
)
.
Create
(
d
)
Expect
(
err
)
.
NotTo
(
HaveOccurred
(),
"Failed creating the third deployment"
)
...
...
@@ -1245,7 +1218,7 @@ func testFailedDeployment(f *framework.Framework) {
deploymentName
:=
"nginx"
nonExistentImage
:=
"nginx:not-there"
thirty
:=
int32
(
30
)
d
:=
newDeployment
(
deploymentName
,
replicas
,
podLabels
,
nginxImageName
,
nonExistentImage
,
extensions
.
RecreateDeploymentStrategyType
,
nil
)
d
:=
framework
.
NewDeployment
(
deploymentName
,
replicas
,
podLabels
,
nginxImageName
,
nonExistentImage
,
extensions
.
RecreateDeploymentStrategyType
)
d
.
Spec
.
ProgressDeadlineSeconds
=
&
thirty
framework
.
Logf
(
"Creating deployment %q with progressDeadlineSeconds set to %ds and a non-existent image"
,
deploymentName
,
thirty
)
...
...
@@ -1299,7 +1272,7 @@ func testIterativeDeployments(f *framework.Framework) {
// Create a nginx deployment.
deploymentName
:=
"nginx"
thirty
:=
int32
(
30
)
d
:=
newDeployment
(
deploymentName
,
replicas
,
podLabels
,
nginxImageName
,
nginxImage
,
extensions
.
RollingUpdateDeploymentStrategyType
,
nil
)
d
:=
framework
.
NewDeployment
(
deploymentName
,
replicas
,
podLabels
,
nginxImageName
,
nginxImage
,
extensions
.
RollingUpdateDeploymentStrategyType
)
d
.
Spec
.
ProgressDeadlineSeconds
=
&
thirty
d
.
Spec
.
RevisionHistoryLimit
=
&
two
d
.
Spec
.
Template
.
Spec
.
TerminationGracePeriodSeconds
=
&
zero
...
...
test/e2e/framework/util.go
View file @
83c1ef48
...
...
@@ -3075,6 +3075,36 @@ func WaitForReadyReplicaSet(c clientset.Interface, ns, name string) error {
return
err
}
func
NewDeployment
(
deploymentName
string
,
replicas
int32
,
podLabels
map
[
string
]
string
,
imageName
,
image
string
,
strategyType
extensions
.
DeploymentStrategyType
)
*
extensions
.
Deployment
{
zero
:=
int64
(
0
)
return
&
extensions
.
Deployment
{
ObjectMeta
:
metav1
.
ObjectMeta
{
Name
:
deploymentName
,
},
Spec
:
extensions
.
DeploymentSpec
{
Replicas
:
func
(
i
int32
)
*
int32
{
return
&
i
}(
replicas
),
Selector
:
&
metav1
.
LabelSelector
{
MatchLabels
:
podLabels
},
Strategy
:
extensions
.
DeploymentStrategy
{
Type
:
strategyType
,
},
Template
:
v1
.
PodTemplateSpec
{
ObjectMeta
:
metav1
.
ObjectMeta
{
Labels
:
podLabels
,
},
Spec
:
v1
.
PodSpec
{
TerminationGracePeriodSeconds
:
&
zero
,
Containers
:
[]
v1
.
Container
{
{
Name
:
imageName
,
Image
:
image
,
},
},
},
},
},
}
}
// Waits for the deployment status to become valid (i.e. max unavailable and max surge aren't violated anymore).
// Note that the status should stay valid at all times unless shortly after a scaling event or the deployment is just created.
// To verify that the deployment status is valid and wait for the rollout to finish, use WaitForDeploymentStatus instead.
...
...
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