mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-11 21:12:07 +00:00
switch namespace before recreate a pod in test-cmd.sh
This commit is contained in:
parent
4342a8c4f0
commit
314a6ab7de
@ -209,6 +209,20 @@ PATH="${KUBE_OUTPUT_HOSTBIN}":$PATH
|
|||||||
kube::log::status "Checking kubectl version"
|
kube::log::status "Checking kubectl version"
|
||||||
kubectl version
|
kubectl version
|
||||||
|
|
||||||
|
# TODO: we need to note down the current default namespace and set back to this
|
||||||
|
# namespace after the tests are done.
|
||||||
|
kubectl config view
|
||||||
|
CONTEXT="test"
|
||||||
|
kubectl config set-context "${CONTEXT}"
|
||||||
|
kubectl config use-context "${CONTEXT}"
|
||||||
|
|
||||||
|
i=0
|
||||||
|
create_and_use_new_namespace() {
|
||||||
|
i=$(($i+1))
|
||||||
|
kubectl create namespace "namespace${i}"
|
||||||
|
kubectl config set-context "${CONTEXT}" --namespace="namespace${i}"
|
||||||
|
}
|
||||||
|
|
||||||
runTests() {
|
runTests() {
|
||||||
version="$1"
|
version="$1"
|
||||||
echo "Testing api version: $1"
|
echo "Testing api version: $1"
|
||||||
@ -310,6 +324,7 @@ runTests() {
|
|||||||
|
|
||||||
### Create POD valid-pod from JSON
|
### Create POD valid-pod from JSON
|
||||||
# Pre-condition: no POD exists
|
# Pre-condition: no POD exists
|
||||||
|
create_and_use_new_namespace
|
||||||
kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" ''
|
kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" ''
|
||||||
# Command
|
# Command
|
||||||
kubectl create "${kube_flags[@]}" -f docs/admin/limitrange/valid-pod.yaml
|
kubectl create "${kube_flags[@]}" -f docs/admin/limitrange/valid-pod.yaml
|
||||||
@ -345,9 +360,10 @@ runTests() {
|
|||||||
|
|
||||||
### Create POD valid-pod from dumped YAML
|
### Create POD valid-pod from dumped YAML
|
||||||
# Pre-condition: no POD exists
|
# Pre-condition: no POD exists
|
||||||
|
create_and_use_new_namespace
|
||||||
kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" ''
|
kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" ''
|
||||||
# Command
|
# Command
|
||||||
echo "${output_pod}" | kubectl create -f - "${kube_flags[@]}"
|
echo "${output_pod}" | sed '/namespace:/d' | kubectl create -f - "${kube_flags[@]}"
|
||||||
# Post-condition: valid-pod POD is created
|
# Post-condition: valid-pod POD is created
|
||||||
kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" 'valid-pod:'
|
kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" 'valid-pod:'
|
||||||
|
|
||||||
@ -359,8 +375,9 @@ runTests() {
|
|||||||
# Post-condition: valid-pod POD doesn't exist
|
# Post-condition: valid-pod POD doesn't exist
|
||||||
kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" ''
|
kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" ''
|
||||||
|
|
||||||
### Create POD redis-master from JSON
|
### Create POD valid-pod from JSON
|
||||||
# Pre-condition: no POD exists
|
# Pre-condition: no POD exists
|
||||||
|
create_and_use_new_namespace
|
||||||
kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" ''
|
kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" ''
|
||||||
# Command
|
# Command
|
||||||
kubectl create -f docs/admin/limitrange/valid-pod.yaml "${kube_flags[@]}"
|
kubectl create -f docs/admin/limitrange/valid-pod.yaml "${kube_flags[@]}"
|
||||||
@ -375,8 +392,9 @@ runTests() {
|
|||||||
# Post-condition: valid-pod POD doesn't exist
|
# Post-condition: valid-pod POD doesn't exist
|
||||||
kube::test::get_object_assert "pods -l'name in (valid-pod)'" '{{range.items}}{{$id_field}}:{{end}}' ''
|
kube::test::get_object_assert "pods -l'name in (valid-pod)'" '{{range.items}}{{$id_field}}:{{end}}' ''
|
||||||
|
|
||||||
### Create POD valid-pod from JSON
|
### Create POD valid-pod from YAML
|
||||||
# Pre-condition: no POD exists
|
# Pre-condition: no POD exists
|
||||||
|
create_and_use_new_namespace
|
||||||
kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" ''
|
kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" ''
|
||||||
# Command
|
# Command
|
||||||
kubectl create -f docs/admin/limitrange/valid-pod.yaml "${kube_flags[@]}"
|
kubectl create -f docs/admin/limitrange/valid-pod.yaml "${kube_flags[@]}"
|
||||||
@ -409,6 +427,7 @@ runTests() {
|
|||||||
|
|
||||||
### Create two PODs
|
### Create two PODs
|
||||||
# Pre-condition: no POD exists
|
# Pre-condition: no POD exists
|
||||||
|
create_and_use_new_namespace
|
||||||
kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" ''
|
kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" ''
|
||||||
# Command
|
# Command
|
||||||
kubectl create -f docs/admin/limitrange/valid-pod.yaml "${kube_flags[@]}"
|
kubectl create -f docs/admin/limitrange/valid-pod.yaml "${kube_flags[@]}"
|
||||||
@ -426,6 +445,7 @@ runTests() {
|
|||||||
|
|
||||||
### Create valid-pod POD
|
### Create valid-pod POD
|
||||||
# Pre-condition: no POD exists
|
# Pre-condition: no POD exists
|
||||||
|
create_and_use_new_namespace
|
||||||
kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" ''
|
kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" ''
|
||||||
# Command
|
# Command
|
||||||
kubectl create -f docs/admin/limitrange/valid-pod.yaml "${kube_flags[@]}"
|
kubectl create -f docs/admin/limitrange/valid-pod.yaml "${kube_flags[@]}"
|
||||||
@ -450,6 +470,7 @@ runTests() {
|
|||||||
|
|
||||||
### Create valid-pod POD
|
### Create valid-pod POD
|
||||||
# Pre-condition: no POD exists
|
# Pre-condition: no POD exists
|
||||||
|
create_and_use_new_namespace
|
||||||
kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" ''
|
kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" ''
|
||||||
# Command
|
# Command
|
||||||
kubectl create -f docs/admin/limitrange/valid-pod.yaml "${kube_flags[@]}"
|
kubectl create -f docs/admin/limitrange/valid-pod.yaml "${kube_flags[@]}"
|
||||||
@ -586,6 +607,7 @@ __EOF__
|
|||||||
|
|
||||||
### Create two PODs from 1 yaml file
|
### Create two PODs from 1 yaml file
|
||||||
# Pre-condition: no POD exists
|
# Pre-condition: no POD exists
|
||||||
|
create_and_use_new_namespace
|
||||||
kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" ''
|
kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" ''
|
||||||
# Command
|
# Command
|
||||||
kubectl create -f docs/user-guide/multi-pod.yaml "${kube_flags[@]}"
|
kubectl create -f docs/user-guide/multi-pod.yaml "${kube_flags[@]}"
|
||||||
@ -603,6 +625,7 @@ __EOF__
|
|||||||
## kubectl apply should update configuration annotations only if apply is already called
|
## kubectl apply should update configuration annotations only if apply is already called
|
||||||
## 1. kubectl create doesn't set the annotation
|
## 1. kubectl create doesn't set the annotation
|
||||||
# Pre-Condition: no POD exists
|
# Pre-Condition: no POD exists
|
||||||
|
create_and_use_new_namespace
|
||||||
kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" ''
|
kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" ''
|
||||||
# Command: create a pod "test-pod"
|
# Command: create a pod "test-pod"
|
||||||
kubectl create -f hack/testdata/pod.yaml "${kube_flags[@]}"
|
kubectl create -f hack/testdata/pod.yaml "${kube_flags[@]}"
|
||||||
@ -643,6 +666,7 @@ __EOF__
|
|||||||
## Configuration annotations should be set when --save-config is enabled
|
## Configuration annotations should be set when --save-config is enabled
|
||||||
## 1. kubectl create --save-config should generate configuration annotation
|
## 1. kubectl create --save-config should generate configuration annotation
|
||||||
# Pre-Condition: no POD exists
|
# Pre-Condition: no POD exists
|
||||||
|
create_and_use_new_namespace
|
||||||
kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" ''
|
kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" ''
|
||||||
# Command: create a pod "test-pod"
|
# Command: create a pod "test-pod"
|
||||||
kubectl create -f hack/testdata/pod.yaml --save-config "${kube_flags[@]}"
|
kubectl create -f hack/testdata/pod.yaml --save-config "${kube_flags[@]}"
|
||||||
@ -652,6 +676,7 @@ __EOF__
|
|||||||
kubectl delete -f hack/testdata/pod.yaml "${kube_flags[@]}"
|
kubectl delete -f hack/testdata/pod.yaml "${kube_flags[@]}"
|
||||||
## 2. kubectl edit --save-config should generate configuration annotation
|
## 2. kubectl edit --save-config should generate configuration annotation
|
||||||
# Pre-Condition: no POD exists, then create pod "test-pod", which shouldn't have configuration annotation
|
# Pre-Condition: no POD exists, then create pod "test-pod", which shouldn't have configuration annotation
|
||||||
|
create_and_use_new_namespace
|
||||||
kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" ''
|
kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" ''
|
||||||
kubectl create -f hack/testdata/pod.yaml "${kube_flags[@]}"
|
kubectl create -f hack/testdata/pod.yaml "${kube_flags[@]}"
|
||||||
! [[ "$(kubectl get pods test-pod -o yaml "${kube_flags[@]}" | grep kubectl.kubernetes.io/last-applied-configuration)" ]]
|
! [[ "$(kubectl get pods test-pod -o yaml "${kube_flags[@]}" | grep kubectl.kubernetes.io/last-applied-configuration)" ]]
|
||||||
@ -666,6 +691,7 @@ __EOF__
|
|||||||
kubectl delete -f hack/testdata/pod.yaml "${kube_flags[@]}"
|
kubectl delete -f hack/testdata/pod.yaml "${kube_flags[@]}"
|
||||||
## 3. kubectl replace --save-config should generate configuration annotation
|
## 3. kubectl replace --save-config should generate configuration annotation
|
||||||
# Pre-Condition: no POD exists, then create pod "test-pod", which shouldn't have configuration annotation
|
# Pre-Condition: no POD exists, then create pod "test-pod", which shouldn't have configuration annotation
|
||||||
|
create_and_use_new_namespace
|
||||||
kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" ''
|
kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" ''
|
||||||
kubectl create -f hack/testdata/pod.yaml "${kube_flags[@]}"
|
kubectl create -f hack/testdata/pod.yaml "${kube_flags[@]}"
|
||||||
! [[ "$(kubectl get pods test-pod -o yaml "${kube_flags[@]}" | grep kubectl.kubernetes.io/last-applied-configuration)" ]]
|
! [[ "$(kubectl get pods test-pod -o yaml "${kube_flags[@]}" | grep kubectl.kubernetes.io/last-applied-configuration)" ]]
|
||||||
@ -684,7 +710,7 @@ __EOF__
|
|||||||
[[ "$(kubectl get rc nginx -o yaml "${kube_flags[@]}" | grep kubectl.kubernetes.io/last-applied-configuration)" ]]
|
[[ "$(kubectl get rc nginx -o yaml "${kube_flags[@]}" | grep kubectl.kubernetes.io/last-applied-configuration)" ]]
|
||||||
## 5. kubectl expose --save-config should generate configuration annotation
|
## 5. kubectl expose --save-config should generate configuration annotation
|
||||||
# Pre-Condition: no service exists
|
# Pre-Condition: no service exists
|
||||||
kube::test::get_object_assert svc "{{range.items}}{{$id_field}}:{{end}}" 'kubernetes:'
|
kube::test::get_object_assert svc "{{range.items}}{{$id_field}}:{{end}}" ''
|
||||||
# Command: expose the rc "nginx"
|
# Command: expose the rc "nginx"
|
||||||
kubectl expose rc nginx --save-config --port=80 --target-port=8000 "${kube_flags[@]}"
|
kubectl expose rc nginx --save-config --port=80 --target-port=8000 "${kube_flags[@]}"
|
||||||
# Post-Condition: service "nginx" has configuration annotation
|
# Post-Condition: service "nginx" has configuration annotation
|
||||||
@ -739,7 +765,8 @@ __EOF__
|
|||||||
|
|
||||||
### Create a new namespace
|
### Create a new namespace
|
||||||
# Pre-condition: only the "default" namespace exists
|
# Pre-condition: only the "default" namespace exists
|
||||||
kube::test::get_object_assert namespaces "{{range.items}}{{$id_field}}:{{end}}" 'default:'
|
# The Pre-condition doesn't hold anymore after we create and switch namespaces before creating pods with same name in the test.
|
||||||
|
# kube::test::get_object_assert namespaces "{{range.items}}{{$id_field}}:{{end}}" 'default:'
|
||||||
# Command
|
# Command
|
||||||
kubectl create namespace my-namespace
|
kubectl create namespace my-namespace
|
||||||
# Post-condition: namespace 'my-namespace' is created.
|
# Post-condition: namespace 'my-namespace' is created.
|
||||||
@ -879,7 +906,8 @@ __EOF__
|
|||||||
############
|
############
|
||||||
# Services #
|
# Services #
|
||||||
############
|
############
|
||||||
|
# switch back to the default namespace
|
||||||
|
kubectl config set-context "${CONTEXT}" --namespace=""
|
||||||
kube::log::status "Testing kubectl(${version}:services)"
|
kube::log::status "Testing kubectl(${version}:services)"
|
||||||
|
|
||||||
### Create redis-master service from JSON
|
### Create redis-master service from JSON
|
||||||
@ -1571,7 +1599,7 @@ __EOF__
|
|||||||
############################
|
############################
|
||||||
|
|
||||||
# Pre-condition: the "default" namespace exists
|
# Pre-condition: the "default" namespace exists
|
||||||
kube::test::get_object_assert namespaces "{{range.items}}{{$id_field}}:{{end}}" 'default:'
|
kube::test::get_object_assert namespaces "{{range.items}}{{if eq $id_field \\\"default\\\"}}{{$id_field}}:{{end}}{{end}}" 'default:'
|
||||||
|
|
||||||
### Create POD
|
### Create POD
|
||||||
# Pre-condition: no POD exists
|
# Pre-condition: no POD exists
|
||||||
|
Loading…
Reference in New Issue
Block a user