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
b2e5dfec
Commit
b2e5dfec
authored
Oct 30, 2017
by
Brad Topol
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add downward api and docker container conformance annotations
Signed-off-by:
Brad Topol
<
btopol@us.ibm.com
>
parent
a55eeb92
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
112 additions
and
0 deletions
+112
-0
docker_containers.go
test/e2e/common/docker_containers.go
+24
-0
downward_api.go
test/e2e/common/downward_api.go
+31
-0
downwardapi_volume.go
test/e2e/common/downwardapi_volume.go
+57
-0
No files found.
test/e2e/common/docker_containers.go
View file @
b2e5dfec
...
@@ -27,12 +27,24 @@ import (
...
@@ -27,12 +27,24 @@ import (
var
_
=
framework
.
KubeDescribe
(
"Docker Containers"
,
func
()
{
var
_
=
framework
.
KubeDescribe
(
"Docker Containers"
,
func
()
{
f
:=
framework
.
NewDefaultFramework
(
"containers"
)
f
:=
framework
.
NewDefaultFramework
(
"containers"
)
/*
Testname: container-without-command-args
Description: When a Pod is created neither 'command' nor 'args' are
provided for a Container, ensure that the docker image's default
command and args are used.
*/
framework
.
ConformanceIt
(
"should use the image defaults if command and args are blank "
,
func
()
{
framework
.
ConformanceIt
(
"should use the image defaults if command and args are blank "
,
func
()
{
f
.
TestContainerOutput
(
"use defaults"
,
entrypointTestPod
(),
0
,
[]
string
{
f
.
TestContainerOutput
(
"use defaults"
,
entrypointTestPod
(),
0
,
[]
string
{
"[/ep default arguments]"
,
"[/ep default arguments]"
,
})
})
})
})
/*
Testname: container-with-args
Description: When a Pod is created and 'args' are provided for a
Container, ensure that they take precedent to the docker image's
default arguments, but that the default command is used.
*/
framework
.
ConformanceIt
(
"should be able to override the image's default arguments (docker cmd) "
,
func
()
{
framework
.
ConformanceIt
(
"should be able to override the image's default arguments (docker cmd) "
,
func
()
{
pod
:=
entrypointTestPod
()
pod
:=
entrypointTestPod
()
pod
.
Spec
.
Containers
[
0
]
.
Args
=
[]
string
{
"override"
,
"arguments"
}
pod
.
Spec
.
Containers
[
0
]
.
Args
=
[]
string
{
"override"
,
"arguments"
}
...
@@ -44,6 +56,12 @@ var _ = framework.KubeDescribe("Docker Containers", func() {
...
@@ -44,6 +56,12 @@ var _ = framework.KubeDescribe("Docker Containers", func() {
// Note: when you override the entrypoint, the image's arguments (docker cmd)
// Note: when you override the entrypoint, the image's arguments (docker cmd)
// are ignored.
// are ignored.
/*
Testname: container-with-command
Description: When a Pod is created and 'command' is provided for a
Container, ensure that it takes precedent to the docker image's default
command.
*/
framework
.
ConformanceIt
(
"should be able to override the image's default commmand (docker entrypoint) "
,
func
()
{
framework
.
ConformanceIt
(
"should be able to override the image's default commmand (docker entrypoint) "
,
func
()
{
pod
:=
entrypointTestPod
()
pod
:=
entrypointTestPod
()
pod
.
Spec
.
Containers
[
0
]
.
Command
=
[]
string
{
"/ep-2"
}
pod
.
Spec
.
Containers
[
0
]
.
Command
=
[]
string
{
"/ep-2"
}
...
@@ -53,6 +71,12 @@ var _ = framework.KubeDescribe("Docker Containers", func() {
...
@@ -53,6 +71,12 @@ var _ = framework.KubeDescribe("Docker Containers", func() {
})
})
})
})
/*
Testname: container-with-command-args
Description: When a Pod is created and 'command' and 'args' are
provided for a Container, ensure that they take precedent to the docker
image's default command and arguments.
*/
framework
.
ConformanceIt
(
"should be able to override the image's default command and arguments "
,
func
()
{
framework
.
ConformanceIt
(
"should be able to override the image's default command and arguments "
,
func
()
{
pod
:=
entrypointTestPod
()
pod
:=
entrypointTestPod
()
pod
.
Spec
.
Containers
[
0
]
.
Command
=
[]
string
{
"/ep-2"
}
pod
.
Spec
.
Containers
[
0
]
.
Command
=
[]
string
{
"/ep-2"
}
...
...
test/e2e/common/downward_api.go
View file @
b2e5dfec
...
@@ -37,6 +37,11 @@ var (
...
@@ -37,6 +37,11 @@ var (
var
_
=
Describe
(
"[sig-api-machinery] Downward API"
,
func
()
{
var
_
=
Describe
(
"[sig-api-machinery] Downward API"
,
func
()
{
f
:=
framework
.
NewDefaultFramework
(
"downward-api"
)
f
:=
framework
.
NewDefaultFramework
(
"downward-api"
)
/*
Testname: downwardapi-env-name-namespace
Description: Ensure that downward API can provide pod's name and
namespaces as environment variables.
*/
framework
.
ConformanceIt
(
"should provide pod name and namespace as env vars "
,
func
()
{
framework
.
ConformanceIt
(
"should provide pod name and namespace as env vars "
,
func
()
{
podName
:=
"downward-api-"
+
string
(
uuid
.
NewUUID
())
podName
:=
"downward-api-"
+
string
(
uuid
.
NewUUID
())
env
:=
[]
v1
.
EnvVar
{
env
:=
[]
v1
.
EnvVar
{
...
@@ -68,6 +73,11 @@ var _ = Describe("[sig-api-machinery] Downward API", func() {
...
@@ -68,6 +73,11 @@ var _ = Describe("[sig-api-machinery] Downward API", func() {
testDownwardAPI
(
f
,
podName
,
env
,
expectations
)
testDownwardAPI
(
f
,
podName
,
env
,
expectations
)
})
})
/*
Testname: downwardapi-env-pod-ip
Description: Ensure that downward API can provide an IP address for
pod as an environment variable.
*/
framework
.
ConformanceIt
(
"should provide pod IP as an env var "
,
func
()
{
framework
.
ConformanceIt
(
"should provide pod IP as an env var "
,
func
()
{
podName
:=
"downward-api-"
+
string
(
uuid
.
NewUUID
())
podName
:=
"downward-api-"
+
string
(
uuid
.
NewUUID
())
env
:=
[]
v1
.
EnvVar
{
env
:=
[]
v1
.
EnvVar
{
...
@@ -89,6 +99,11 @@ var _ = Describe("[sig-api-machinery] Downward API", func() {
...
@@ -89,6 +99,11 @@ var _ = Describe("[sig-api-machinery] Downward API", func() {
testDownwardAPI
(
f
,
podName
,
env
,
expectations
)
testDownwardAPI
(
f
,
podName
,
env
,
expectations
)
})
})
/*
Testname: downwardapi-env-host-ip
Description: Ensure that downward API can provide an IP address for
host node as an environment variable.
*/
framework
.
ConformanceIt
(
"should provide host IP as an env var "
,
func
()
{
framework
.
ConformanceIt
(
"should provide host IP as an env var "
,
func
()
{
framework
.
SkipUnlessServerVersionGTE
(
hostIPVersion
,
f
.
ClientSet
.
Discovery
())
framework
.
SkipUnlessServerVersionGTE
(
hostIPVersion
,
f
.
ClientSet
.
Discovery
())
podName
:=
"downward-api-"
+
string
(
uuid
.
NewUUID
())
podName
:=
"downward-api-"
+
string
(
uuid
.
NewUUID
())
...
@@ -111,6 +126,11 @@ var _ = Describe("[sig-api-machinery] Downward API", func() {
...
@@ -111,6 +126,11 @@ var _ = Describe("[sig-api-machinery] Downward API", func() {
testDownwardAPI
(
f
,
podName
,
env
,
expectations
)
testDownwardAPI
(
f
,
podName
,
env
,
expectations
)
})
})
/*
Testname: downwardapi-env-limits-requests
Description: Ensure that downward API can provide CPU/memory limit
and CPU/memory request as environment variables.
*/
framework
.
ConformanceIt
(
"should provide container's limits.cpu/memory and requests.cpu/memory as env vars "
,
func
()
{
framework
.
ConformanceIt
(
"should provide container's limits.cpu/memory and requests.cpu/memory as env vars "
,
func
()
{
podName
:=
"downward-api-"
+
string
(
uuid
.
NewUUID
())
podName
:=
"downward-api-"
+
string
(
uuid
.
NewUUID
())
env
:=
[]
v1
.
EnvVar
{
env
:=
[]
v1
.
EnvVar
{
...
@@ -157,6 +177,12 @@ var _ = Describe("[sig-api-machinery] Downward API", func() {
...
@@ -157,6 +177,12 @@ var _ = Describe("[sig-api-machinery] Downward API", func() {
testDownwardAPI
(
f
,
podName
,
env
,
expectations
)
testDownwardAPI
(
f
,
podName
,
env
,
expectations
)
})
})
/*
Testname: downwardapi-env-default-allocatable
Description: Ensure that downward API can provide default node
allocatable values for CPU and memory as environment variables if CPU
and memory limits are not specified for a container.
*/
framework
.
ConformanceIt
(
"should provide default limits.cpu/memory from node allocatable "
,
func
()
{
framework
.
ConformanceIt
(
"should provide default limits.cpu/memory from node allocatable "
,
func
()
{
podName
:=
"downward-api-"
+
string
(
uuid
.
NewUUID
())
podName
:=
"downward-api-"
+
string
(
uuid
.
NewUUID
())
env
:=
[]
v1
.
EnvVar
{
env
:=
[]
v1
.
EnvVar
{
...
@@ -202,6 +228,11 @@ var _ = Describe("[sig-api-machinery] Downward API", func() {
...
@@ -202,6 +228,11 @@ var _ = Describe("[sig-api-machinery] Downward API", func() {
testDownwardAPIUsingPod
(
f
,
pod
,
env
,
expectations
)
testDownwardAPIUsingPod
(
f
,
pod
,
env
,
expectations
)
})
})
/*
Testname: downwardapi-env-pod-uid
Description: Ensure that downward API can provide pod UID as an
environment variable.
*/
framework
.
ConformanceIt
(
"should provide pod UID as env vars "
,
func
()
{
framework
.
ConformanceIt
(
"should provide pod UID as env vars "
,
func
()
{
framework
.
SkipUnlessServerVersionGTE
(
podUIDVersion
,
f
.
ClientSet
.
Discovery
())
framework
.
SkipUnlessServerVersionGTE
(
podUIDVersion
,
f
.
ClientSet
.
Discovery
())
podName
:=
"downward-api-"
+
string
(
uuid
.
NewUUID
())
podName
:=
"downward-api-"
+
string
(
uuid
.
NewUUID
())
...
...
test/e2e/common/downwardapi_volume.go
View file @
b2e5dfec
...
@@ -39,6 +39,11 @@ var _ = Describe("[sig-storage] Downward API volume", func() {
...
@@ -39,6 +39,11 @@ var _ = Describe("[sig-storage] Downward API volume", func() {
podClient
=
f
.
PodClient
()
podClient
=
f
.
PodClient
()
})
})
/*
Testname: downwardapi-volume-podname
Description: Ensure that downward API can provide pod's name through
DownwardAPIVolumeFiles.
*/
framework
.
ConformanceIt
(
"should provide podname only "
,
func
()
{
framework
.
ConformanceIt
(
"should provide podname only "
,
func
()
{
podName
:=
"downwardapi-volume-"
+
string
(
uuid
.
NewUUID
())
podName
:=
"downwardapi-volume-"
+
string
(
uuid
.
NewUUID
())
pod
:=
downwardAPIVolumePodForSimpleTest
(
podName
,
"/etc/podname"
)
pod
:=
downwardAPIVolumePodForSimpleTest
(
podName
,
"/etc/podname"
)
...
@@ -48,6 +53,11 @@ var _ = Describe("[sig-storage] Downward API volume", func() {
...
@@ -48,6 +53,11 @@ var _ = Describe("[sig-storage] Downward API volume", func() {
})
})
})
})
/*
Testname: downwardapi-volume-set-default-mode
Description: Ensure that downward API can set default file premission
mode for DownwardAPIVolumeFiles if no mode is specified.
*/
framework
.
ConformanceIt
(
"should set DefaultMode on files "
,
func
()
{
framework
.
ConformanceIt
(
"should set DefaultMode on files "
,
func
()
{
podName
:=
"downwardapi-volume-"
+
string
(
uuid
.
NewUUID
())
podName
:=
"downwardapi-volume-"
+
string
(
uuid
.
NewUUID
())
defaultMode
:=
int32
(
0400
)
defaultMode
:=
int32
(
0400
)
...
@@ -58,6 +68,11 @@ var _ = Describe("[sig-storage] Downward API volume", func() {
...
@@ -58,6 +68,11 @@ var _ = Describe("[sig-storage] Downward API volume", func() {
})
})
})
})
/*
Testname: downwardapi-volume-set-mode
Description: Ensure that downward API can set file premission mode for
DownwardAPIVolumeFiles.
*/
framework
.
ConformanceIt
(
"should set mode on item file "
,
func
()
{
framework
.
ConformanceIt
(
"should set mode on item file "
,
func
()
{
podName
:=
"downwardapi-volume-"
+
string
(
uuid
.
NewUUID
())
podName
:=
"downwardapi-volume-"
+
string
(
uuid
.
NewUUID
())
mode
:=
int32
(
0400
)
mode
:=
int32
(
0400
)
...
@@ -97,6 +112,11 @@ var _ = Describe("[sig-storage] Downward API volume", func() {
...
@@ -97,6 +112,11 @@ var _ = Describe("[sig-storage] Downward API volume", func() {
})
})
})
})
/*
Testname: downwardapi-volume-update-label
Description: Ensure that downward API updates labels in
DownwardAPIVolumeFiles when pod's labels get modified.
*/
framework
.
ConformanceIt
(
"should update labels on modification "
,
func
()
{
framework
.
ConformanceIt
(
"should update labels on modification "
,
func
()
{
labels
:=
map
[
string
]
string
{}
labels
:=
map
[
string
]
string
{}
labels
[
"key1"
]
=
"value1"
labels
[
"key1"
]
=
"value1"
...
@@ -124,6 +144,11 @@ var _ = Describe("[sig-storage] Downward API volume", func() {
...
@@ -124,6 +144,11 @@ var _ = Describe("[sig-storage] Downward API volume", func() {
podLogTimeout
,
framework
.
Poll
)
.
Should
(
ContainSubstring
(
"key3=
\"
value3
\"\n
"
))
podLogTimeout
,
framework
.
Poll
)
.
Should
(
ContainSubstring
(
"key3=
\"
value3
\"\n
"
))
})
})
/*
Testname: downwardapi-volume-update-annotation
Description: Ensure that downward API updates annotations in
DownwardAPIVolumeFiles when pod's annotations get modified.
*/
framework
.
ConformanceIt
(
"should update annotations on modification "
,
func
()
{
framework
.
ConformanceIt
(
"should update annotations on modification "
,
func
()
{
annotations
:=
map
[
string
]
string
{}
annotations
:=
map
[
string
]
string
{}
annotations
[
"builder"
]
=
"bar"
annotations
[
"builder"
]
=
"bar"
...
@@ -153,6 +178,11 @@ var _ = Describe("[sig-storage] Downward API volume", func() {
...
@@ -153,6 +178,11 @@ var _ = Describe("[sig-storage] Downward API volume", func() {
podLogTimeout
,
framework
.
Poll
)
.
Should
(
ContainSubstring
(
"builder=
\"
foo
\"\n
"
))
podLogTimeout
,
framework
.
Poll
)
.
Should
(
ContainSubstring
(
"builder=
\"
foo
\"\n
"
))
})
})
/*
Testname: downwardapi-volume-cpu-limit
Description: Ensure that downward API can provide container's CPU limit
through DownwardAPIVolumeFiles.
*/
framework
.
ConformanceIt
(
"should provide container's cpu limit "
,
func
()
{
framework
.
ConformanceIt
(
"should provide container's cpu limit "
,
func
()
{
podName
:=
"downwardapi-volume-"
+
string
(
uuid
.
NewUUID
())
podName
:=
"downwardapi-volume-"
+
string
(
uuid
.
NewUUID
())
pod
:=
downwardAPIVolumeForContainerResources
(
podName
,
"/etc/cpu_limit"
)
pod
:=
downwardAPIVolumeForContainerResources
(
podName
,
"/etc/cpu_limit"
)
...
@@ -162,6 +192,11 @@ var _ = Describe("[sig-storage] Downward API volume", func() {
...
@@ -162,6 +192,11 @@ var _ = Describe("[sig-storage] Downward API volume", func() {
})
})
})
})
/*
Testname: downwardapi-volume-memory-limit
Description: Ensure that downward API can provide container's memory
limit through DownwardAPIVolumeFiles.
*/
framework
.
ConformanceIt
(
"should provide container's memory limit "
,
func
()
{
framework
.
ConformanceIt
(
"should provide container's memory limit "
,
func
()
{
podName
:=
"downwardapi-volume-"
+
string
(
uuid
.
NewUUID
())
podName
:=
"downwardapi-volume-"
+
string
(
uuid
.
NewUUID
())
pod
:=
downwardAPIVolumeForContainerResources
(
podName
,
"/etc/memory_limit"
)
pod
:=
downwardAPIVolumeForContainerResources
(
podName
,
"/etc/memory_limit"
)
...
@@ -171,6 +206,11 @@ var _ = Describe("[sig-storage] Downward API volume", func() {
...
@@ -171,6 +206,11 @@ var _ = Describe("[sig-storage] Downward API volume", func() {
})
})
})
})
/*
Testname: downwardapi-volume-cpu-request
Description: Ensure that downward API can provide container's CPU
request through DownwardAPIVolumeFiles.
*/
framework
.
ConformanceIt
(
"should provide container's cpu request "
,
func
()
{
framework
.
ConformanceIt
(
"should provide container's cpu request "
,
func
()
{
podName
:=
"downwardapi-volume-"
+
string
(
uuid
.
NewUUID
())
podName
:=
"downwardapi-volume-"
+
string
(
uuid
.
NewUUID
())
pod
:=
downwardAPIVolumeForContainerResources
(
podName
,
"/etc/cpu_request"
)
pod
:=
downwardAPIVolumeForContainerResources
(
podName
,
"/etc/cpu_request"
)
...
@@ -180,6 +220,11 @@ var _ = Describe("[sig-storage] Downward API volume", func() {
...
@@ -180,6 +220,11 @@ var _ = Describe("[sig-storage] Downward API volume", func() {
})
})
})
})
/*
Testname: downwardapi-volume-memory-request
Description: Ensure that downward API can provide container's memory
request through DownwardAPIVolumeFiles.
*/
framework
.
ConformanceIt
(
"should provide container's memory request "
,
func
()
{
framework
.
ConformanceIt
(
"should provide container's memory request "
,
func
()
{
podName
:=
"downwardapi-volume-"
+
string
(
uuid
.
NewUUID
())
podName
:=
"downwardapi-volume-"
+
string
(
uuid
.
NewUUID
())
pod
:=
downwardAPIVolumeForContainerResources
(
podName
,
"/etc/memory_request"
)
pod
:=
downwardAPIVolumeForContainerResources
(
podName
,
"/etc/memory_request"
)
...
@@ -189,6 +234,12 @@ var _ = Describe("[sig-storage] Downward API volume", func() {
...
@@ -189,6 +234,12 @@ var _ = Describe("[sig-storage] Downward API volume", func() {
})
})
})
})
/*
Testname: downwardapi-volume-default-cpu
Description: Ensure that downward API can provide default node
allocatable value for CPU through DownwardAPIVolumeFiles if CPU
limit is not specified for a container.
*/
framework
.
ConformanceIt
(
"should provide node allocatable (cpu) as default cpu limit if the limit is not set "
,
func
()
{
framework
.
ConformanceIt
(
"should provide node allocatable (cpu) as default cpu limit if the limit is not set "
,
func
()
{
podName
:=
"downwardapi-volume-"
+
string
(
uuid
.
NewUUID
())
podName
:=
"downwardapi-volume-"
+
string
(
uuid
.
NewUUID
())
pod
:=
downwardAPIVolumeForDefaultContainerResources
(
podName
,
"/etc/cpu_limit"
)
pod
:=
downwardAPIVolumeForDefaultContainerResources
(
podName
,
"/etc/cpu_limit"
)
...
@@ -196,6 +247,12 @@ var _ = Describe("[sig-storage] Downward API volume", func() {
...
@@ -196,6 +247,12 @@ var _ = Describe("[sig-storage] Downward API volume", func() {
f
.
TestContainerOutputRegexp
(
"downward API volume plugin"
,
pod
,
0
,
[]
string
{
"[1-9]"
})
f
.
TestContainerOutputRegexp
(
"downward API volume plugin"
,
pod
,
0
,
[]
string
{
"[1-9]"
})
})
})
/*
Testname: downwardapi-volume-default-memory
Description: Ensure that downward API can provide default node
allocatable value for memory through DownwardAPIVolumeFiles if memory
limit is not specified for a container.
*/
framework
.
ConformanceIt
(
"should provide node allocatable (memory) as default memory limit if the limit is not set "
,
func
()
{
framework
.
ConformanceIt
(
"should provide node allocatable (memory) as default memory limit if the limit is not set "
,
func
()
{
podName
:=
"downwardapi-volume-"
+
string
(
uuid
.
NewUUID
())
podName
:=
"downwardapi-volume-"
+
string
(
uuid
.
NewUUID
())
pod
:=
downwardAPIVolumeForDefaultContainerResources
(
podName
,
"/etc/memory_limit"
)
pod
:=
downwardAPIVolumeForDefaultContainerResources
(
podName
,
"/etc/memory_limit"
)
...
...
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