mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-29 06:27:05 +00:00
Merge pull request #15042 from JanetKuo/test-loop-add-rclist-svclist
Auto commit by PR queue bot
This commit is contained in:
commit
d94307b71e
105
hack/test-cmd.sh
105
hack/test-cmd.sh
@ -748,7 +748,9 @@ __EOF__
|
|||||||
|
|
||||||
FILES="hack/testdata/multi-resource-yaml
|
FILES="hack/testdata/multi-resource-yaml
|
||||||
hack/testdata/multi-resource-list
|
hack/testdata/multi-resource-list
|
||||||
hack/testdata/multi-resource-json"
|
hack/testdata/multi-resource-json
|
||||||
|
hack/testdata/multi-resource-rclist
|
||||||
|
hack/testdata/multi-resource-svclist"
|
||||||
YAML=".yaml"
|
YAML=".yaml"
|
||||||
JSON=".json"
|
JSON=".json"
|
||||||
for file in $FILES; do
|
for file in $FILES; do
|
||||||
@ -761,40 +763,97 @@ __EOF__
|
|||||||
replace_file="${file%.json}-modify.json"
|
replace_file="${file%.json}-modify.json"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
### Create, get, describe, replace, label, annotate, and then delete service nginxsvc and replication controller my-nginx from 3 types of files:
|
has_svc=true
|
||||||
|
has_rc=true
|
||||||
|
two_rcs=false
|
||||||
|
two_svcs=false
|
||||||
|
if [[ "${file}" == *rclist* ]]; then
|
||||||
|
has_svc=false
|
||||||
|
two_rcs=true
|
||||||
|
fi
|
||||||
|
if [[ "${file}" == *svclist* ]]; then
|
||||||
|
has_rc=false
|
||||||
|
two_svcs=true
|
||||||
|
fi
|
||||||
|
|
||||||
|
### Create, get, describe, replace, label, annotate, and then delete service nginxsvc and replication controller my-nginx from 5 types of files:
|
||||||
### 1) YAML, separated by ---; 2) JSON, with a List type; 3) JSON, with JSON object concatenation
|
### 1) YAML, separated by ---; 2) JSON, with a List type; 3) JSON, with JSON object concatenation
|
||||||
|
### 4) JSON, with a ReplicationControllerList type; 5) JSON, with a ServiceList type
|
||||||
|
echo "Testing with file ${file} and replace with file ${replace_file}"
|
||||||
# Pre-condition: no service (other than default kubernetes services) or replication controller is running
|
# Pre-condition: no service (other than default kubernetes services) or replication controller is running
|
||||||
kube::test::get_object_assert services "{{range.items}}{{$id_field}}:{{end}}" 'kubernetes:'
|
kube::test::get_object_assert services "{{range.items}}{{$id_field}}:{{end}}" 'kubernetes:'
|
||||||
kube::test::get_object_assert rc "{{range.items}}{{$id_field}}:{{end}}" ''
|
kube::test::get_object_assert rc "{{range.items}}{{$id_field}}:{{end}}" ''
|
||||||
# Command
|
# Command
|
||||||
# TODO: remove --validate=false when PR "Add validate support for list kind #14726" is merged
|
# TODO: remove --validate=false when PR "Add validate support for list kind #14726" is merged
|
||||||
kubectl create -f $file --validate=false "${kube_flags[@]}"
|
kubectl create -f "${file}" --validate=false "${kube_flags[@]}"
|
||||||
# Post-condition: mock service is running
|
# Post-condition: mock service (and mock2) is running
|
||||||
kube::test::get_object_assert services "{{range.items}}{{$id_field}}:{{end}}" 'kubernetes:mock:'
|
if [ "$has_svc" = true ]; then
|
||||||
# Post-condition: mock rc is running
|
if [ "$two_svcs" = true ]; then
|
||||||
kube::test::get_object_assert rc "{{range.items}}{{$id_field}}:{{end}}" 'mock:'
|
kube::test::get_object_assert services "{{range.items}}{{$id_field}}:{{end}}" 'kubernetes:mock:mock2:'
|
||||||
|
else
|
||||||
|
kube::test::get_object_assert services "{{range.items}}{{$id_field}}:{{end}}" 'kubernetes:mock:'
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
# Post-condition: mock rc (and mock2) is running
|
||||||
|
if [ "$has_rc" = true ]; then
|
||||||
|
if [ "$two_rcs" = true ]; then
|
||||||
|
kube::test::get_object_assert rc "{{range.items}}{{$id_field}}:{{end}}" 'mock:mock2:'
|
||||||
|
else
|
||||||
|
kube::test::get_object_assert rc "{{range.items}}{{$id_field}}:{{end}}" 'mock:'
|
||||||
|
fi
|
||||||
|
fi
|
||||||
# Command
|
# Command
|
||||||
# kubectl create -f $file "${kube_flags[@]}" # test fails here now
|
# kubectl create -f "${file}" "${kube_flags[@]}" # test fails here now
|
||||||
kubectl get -f $file "${kube_flags[@]}"
|
kubectl get -f "${file}" "${kube_flags[@]}"
|
||||||
kubectl describe -f $file "${kube_flags[@]}"
|
kubectl describe -f "${file}" "${kube_flags[@]}"
|
||||||
# Command
|
# Command
|
||||||
# TODO: remove --validate=false when PR "Add validate support for list kind #14726" is merged
|
# TODO: remove --validate=false when PR "Add validate support for list kind #14726" is merged
|
||||||
kubectl replace -f $replace_file --force --validate=false "${kube_flags[@]}"
|
kubectl replace -f $replace_file --force --validate=false "${kube_flags[@]}"
|
||||||
# Post-condition: mock service and mock rc are replaced
|
# Post-condition: mock service (and mock2) and mock rc (and mock2) are replaced
|
||||||
kube::test::get_object_assert 'services mock' "{{${labels_field}.status}}" 'replaced'
|
if [ "$has_svc" = true ]; then
|
||||||
kube::test::get_object_assert 'rc mock' "{{${labels_field}.status}}" 'replaced'
|
kube::test::get_object_assert 'services mock' "{{${labels_field}.status}}" 'replaced'
|
||||||
|
if [ "$two_svcs" = true ]; then
|
||||||
|
kube::test::get_object_assert 'services mock2' "{{${labels_field}.status}}" 'replaced'
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if [ "$has_rc" = true ]; then
|
||||||
|
kube::test::get_object_assert 'rc mock' "{{${labels_field}.status}}" 'replaced'
|
||||||
|
if [ "$two_rcs" = true ]; then
|
||||||
|
kube::test::get_object_assert 'rc mock2' "{{${labels_field}.status}}" 'replaced'
|
||||||
|
fi
|
||||||
|
fi
|
||||||
# Command
|
# Command
|
||||||
kubectl label -f $file labeled=true "${kube_flags[@]}"
|
kubectl label -f "${file}" labeled=true "${kube_flags[@]}"
|
||||||
# Post-condition: mock service and mock rc are labeled
|
# Post-condition: mock service and mock rc (and mock2) are labeled
|
||||||
kube::test::get_object_assert 'services mock' "{{${labels_field}.labeled}}" 'true'
|
if [ "$has_svc" = true ]; then
|
||||||
kube::test::get_object_assert 'rc mock' "{{${labels_field}.labeled}}" 'true'
|
kube::test::get_object_assert 'services mock' "{{${labels_field}.labeled}}" 'true'
|
||||||
|
if [ "$two_svcs" = true ]; then
|
||||||
|
kube::test::get_object_assert 'services mock2' "{{${labels_field}.labeled}}" 'true'
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if [ "$has_rc" = true ]; then
|
||||||
|
kube::test::get_object_assert 'rc mock' "{{${labels_field}.labeled}}" 'true'
|
||||||
|
if [ "$two_rcs" = true ]; then
|
||||||
|
kube::test::get_object_assert 'rc mock2' "{{${labels_field}.labeled}}" 'true'
|
||||||
|
fi
|
||||||
|
fi
|
||||||
# Command
|
# Command
|
||||||
kubectl annotate -f $file annotated=true "${kube_flags[@]}"
|
kubectl annotate -f "${file}" annotated=true "${kube_flags[@]}"
|
||||||
# Post-condition: mock service and mock rc are annotated
|
# Post-condition: mock service (and mock2) and mock rc (and mock2) are annotated
|
||||||
kube::test::get_object_assert 'services mock' "{{${annotations_field}.annotated}}" 'true'
|
if [ "$has_svc" = true ]; then
|
||||||
kube::test::get_object_assert 'rc mock' "{{${annotations_field}.annotated}}" 'true'
|
kube::test::get_object_assert 'services mock' "{{${annotations_field}.annotated}}" 'true'
|
||||||
# Cleanup services and rc
|
if [ "$two_svcs" = true ]; then
|
||||||
kubectl delete -f $file "${kube_flags[@]}"
|
kube::test::get_object_assert 'services mock2' "{{${annotations_field}.annotated}}" 'true'
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if [ "$has_rc" = true ]; then
|
||||||
|
kube::test::get_object_assert 'rc mock' "{{${annotations_field}.annotated}}" 'true'
|
||||||
|
if [ "$two_rcs" = true ]; then
|
||||||
|
kube::test::get_object_assert 'rc mock2' "{{${annotations_field}.annotated}}" 'true'
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
# Cleanup resources created
|
||||||
|
kubectl delete -f "${file}" "${kube_flags[@]}"
|
||||||
done
|
done
|
||||||
|
|
||||||
######################
|
######################
|
||||||
|
70
hack/testdata/multi-resource-rclist-modify.json
vendored
Normal file
70
hack/testdata/multi-resource-rclist-modify.json
vendored
Normal file
@ -0,0 +1,70 @@
|
|||||||
|
{
|
||||||
|
"kind":"ReplicationControllerList",
|
||||||
|
"apiVersion":"v1",
|
||||||
|
"items":[
|
||||||
|
{
|
||||||
|
"metadata":{
|
||||||
|
"name":"mock",
|
||||||
|
"labels":{
|
||||||
|
"app":"mock",
|
||||||
|
"status":"replaced"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"spec":{
|
||||||
|
"replicas":1,
|
||||||
|
"selector":{
|
||||||
|
"app":"mock"
|
||||||
|
},
|
||||||
|
"template":{
|
||||||
|
"metadata":{
|
||||||
|
"labels":{
|
||||||
|
"app":"mock"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"spec":{
|
||||||
|
"containers":[{
|
||||||
|
"name": "mock-container",
|
||||||
|
"image": "kubernetes/pause",
|
||||||
|
"ports":[{
|
||||||
|
"containerPort":9949,
|
||||||
|
"protocol":"TCP"
|
||||||
|
}]
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"metadata":{
|
||||||
|
"name":"mock2",
|
||||||
|
"labels":{
|
||||||
|
"app":"mock2",
|
||||||
|
"status":"replaced"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"spec":{
|
||||||
|
"replicas":1,
|
||||||
|
"selector":{
|
||||||
|
"app":"mock2"
|
||||||
|
},
|
||||||
|
"template":{
|
||||||
|
"metadata":{
|
||||||
|
"labels":{
|
||||||
|
"app":"mock2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"spec":{
|
||||||
|
"containers":[{
|
||||||
|
"name": "mock-container",
|
||||||
|
"image": "kubernetes/pause",
|
||||||
|
"ports":[{
|
||||||
|
"containerPort":9949,
|
||||||
|
"protocol":"TCP"
|
||||||
|
}]
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
70
hack/testdata/multi-resource-rclist.json
vendored
Normal file
70
hack/testdata/multi-resource-rclist.json
vendored
Normal file
@ -0,0 +1,70 @@
|
|||||||
|
{
|
||||||
|
"kind":"ReplicationControllerList",
|
||||||
|
"apiVersion":"v1",
|
||||||
|
"items":[
|
||||||
|
{
|
||||||
|
"metadata":{
|
||||||
|
"name":"mock",
|
||||||
|
"labels":{
|
||||||
|
"app":"mock",
|
||||||
|
"status":"replaced"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"spec":{
|
||||||
|
"replicas":1,
|
||||||
|
"selector":{
|
||||||
|
"app":"mock"
|
||||||
|
},
|
||||||
|
"template":{
|
||||||
|
"metadata":{
|
||||||
|
"labels":{
|
||||||
|
"app":"mock"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"spec":{
|
||||||
|
"containers":[{
|
||||||
|
"name": "mock-container",
|
||||||
|
"image": "kubernetes/pause",
|
||||||
|
"ports":[{
|
||||||
|
"containerPort":9949,
|
||||||
|
"protocol":"TCP"
|
||||||
|
}]
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"metadata":{
|
||||||
|
"name":"mock2",
|
||||||
|
"labels":{
|
||||||
|
"app":"mock2",
|
||||||
|
"status":"replaced"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"spec":{
|
||||||
|
"replicas":1,
|
||||||
|
"selector":{
|
||||||
|
"app":"mock2"
|
||||||
|
},
|
||||||
|
"template":{
|
||||||
|
"metadata":{
|
||||||
|
"labels":{
|
||||||
|
"app":"mock2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"spec":{
|
||||||
|
"containers":[{
|
||||||
|
"name": "mock-container",
|
||||||
|
"image": "kubernetes/pause",
|
||||||
|
"ports":[{
|
||||||
|
"containerPort":9949,
|
||||||
|
"protocol":"TCP"
|
||||||
|
}]
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
44
hack/testdata/multi-resource-svclist-modify.json
vendored
Normal file
44
hack/testdata/multi-resource-svclist-modify.json
vendored
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
{
|
||||||
|
"kind":"ServiceList",
|
||||||
|
"apiVersion":"v1",
|
||||||
|
"items":[
|
||||||
|
{
|
||||||
|
"metadata":{
|
||||||
|
"name":"mock",
|
||||||
|
"labels":{
|
||||||
|
"app":"mock",
|
||||||
|
"status":"replaced"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"spec":{
|
||||||
|
"ports": [{
|
||||||
|
"protocol": "TCP",
|
||||||
|
"port": 99,
|
||||||
|
"targetPort": 9949
|
||||||
|
}],
|
||||||
|
"selector":{
|
||||||
|
"app":"mock"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"metadata":{
|
||||||
|
"name":"mock2",
|
||||||
|
"labels":{
|
||||||
|
"app":"mock2",
|
||||||
|
"status":"replaced"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"spec":{
|
||||||
|
"ports": [{
|
||||||
|
"protocol": "TCP",
|
||||||
|
"port": 99,
|
||||||
|
"targetPort": 9949
|
||||||
|
}],
|
||||||
|
"selector":{
|
||||||
|
"app":"mock2"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
42
hack/testdata/multi-resource-svclist.json
vendored
Normal file
42
hack/testdata/multi-resource-svclist.json
vendored
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
{
|
||||||
|
"kind":"ServiceList",
|
||||||
|
"apiVersion":"v1",
|
||||||
|
"items":[
|
||||||
|
{
|
||||||
|
"metadata":{
|
||||||
|
"name":"mock",
|
||||||
|
"labels":{
|
||||||
|
"app":"mock"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"spec":{
|
||||||
|
"ports": [{
|
||||||
|
"protocol": "TCP",
|
||||||
|
"port": 99,
|
||||||
|
"targetPort": 9949
|
||||||
|
}],
|
||||||
|
"selector":{
|
||||||
|
"app":"mock"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"metadata":{
|
||||||
|
"name":"mock2",
|
||||||
|
"labels":{
|
||||||
|
"app":"mock2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"spec":{
|
||||||
|
"ports": [{
|
||||||
|
"protocol": "TCP",
|
||||||
|
"port": 99,
|
||||||
|
"targetPort": 9949
|
||||||
|
}],
|
||||||
|
"selector":{
|
||||||
|
"app":"mock2"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user