mirror of https://github.com/k3s-io/k3s
Merge pull request #15010 from JanetKuo/test-loop-same-steps
Loop three types of files for each "multiple resources" testpull/6/head
commit
f86140f1a4
145
hack/test-cmd.sh
145
hack/test-cmd.sh
|
@ -734,102 +734,57 @@ __EOF__
|
|||
kube::log::status "Testing kubectl(${version}:multiple resources)"
|
||||
# TODO: add test for types like ReplicationControllerList, ServiceList
|
||||
|
||||
### Create, get, describe, replace, label, annotate, and then delete service nginxsvc and replication controller my-nginx from YAML, separated by ---
|
||||
# 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 rc "{{range.items}}{{$id_field}}:{{end}}" ''
|
||||
# Command
|
||||
kubectl create -f examples/https-nginx/nginx-app.yaml "${kube_flags[@]}"
|
||||
# Post-condition: nginxsvc service is running
|
||||
kube::test::get_object_assert services "{{range.items}}{{$id_field}}:{{end}}" 'kubernetes:nginxsvc:'
|
||||
# Post-condition: my-nginx rc is running
|
||||
kube::test::get_object_assert rc "{{range.items}}{{$id_field}}:{{end}}" 'my-nginx:'
|
||||
# Command
|
||||
kubectl get -f examples/https-nginx/nginx-app.yaml "${kube_flags[@]}"
|
||||
kubectl describe -f examples/https-nginx/nginx-app.yaml "${kube_flags[@]}"
|
||||
# Command
|
||||
kubectl replace -f hack/testdata/nginx-app-modify.yaml --force "${kube_flags[@]}"
|
||||
# Post-condition: nginxsvc service and mock rc are replaced
|
||||
kube::test::get_object_assert 'services nginxsvc' "{{${labels_field}.status}}" 'replaced'
|
||||
kube::test::get_object_assert 'rc my-nginx' "{{${labels_field}.status}}" 'replaced'
|
||||
# Command
|
||||
kubectl label -f examples/https-nginx/nginx-app.yaml labeled=true "${kube_flags[@]}"
|
||||
# Post-condition: nginxsvc service and my-nginx rc are labeled
|
||||
kube::test::get_object_assert 'services nginxsvc' "{{${labels_field}.labeled}}" 'true'
|
||||
kube::test::get_object_assert 'rc my-nginx' "{{${labels_field}.labeled}}" 'true'
|
||||
# Command
|
||||
kubectl annotate -f examples/https-nginx/nginx-app.yaml annotated=true "${kube_flags[@]}"
|
||||
# Post-condition: nginxsvc service and my-nginx rc are annotated
|
||||
kube::test::get_object_assert 'services nginxsvc' "{{${annotations_field}.annotated}}" 'true'
|
||||
kube::test::get_object_assert 'rc my-nginx' "{{${annotations_field}.annotated}}" 'true'
|
||||
# Cleanup service and rc
|
||||
kubectl delete -f examples/https-nginx/nginx-app.yaml "${kube_flags[@]}"
|
||||
FILES="hack/testdata/multi-resource-yaml
|
||||
hack/testdata/multi-resource-list
|
||||
hack/testdata/multi-resource-json"
|
||||
YAML=".yaml"
|
||||
JSON=".json"
|
||||
for file in $FILES; do
|
||||
if [ -f $file$YAML ]
|
||||
then
|
||||
file=$file$YAML
|
||||
replace_file="${file%.yaml}-modify.yaml"
|
||||
else
|
||||
file=$file$JSON
|
||||
replace_file="${file%.json}-modify.json"
|
||||
fi
|
||||
|
||||
### Create, get, describe, replace, label, annotate, and then delete service nginxsvc and replication controller my-nginx from JSON, with a List type
|
||||
# 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 rc "{{range.items}}{{$id_field}}:{{end}}" ''
|
||||
# Command
|
||||
# TODO: remove --validate=false when PR "Add validate support for list kind #14726" is merged
|
||||
kubectl create -f hack/testdata/multi-resource-list.json --validate=false "${kube_flags[@]}"
|
||||
# Post-condition: mock service is running
|
||||
kube::test::get_object_assert services "{{range.items}}{{$id_field}}:{{end}}" 'kubernetes:mock:'
|
||||
# Post-condition: mock rc is running
|
||||
kube::test::get_object_assert rc "{{range.items}}{{$id_field}}:{{end}}" 'mock:'
|
||||
# Command
|
||||
# kubectl create -f hack/testdata/multi-resource.json "${kube_flags[@]}" # test fails here now
|
||||
# TODO: test get when PR "Fix get with List #14888" is merged
|
||||
# kubectl get -f hack/testdata/multi-resource-list.json "${kube_flags[@]}"
|
||||
kubectl describe -f hack/testdata/multi-resource-list.json "${kube_flags[@]}"
|
||||
# Command
|
||||
# TODO: remove --validate=false when PR "Add validate support for list kind #14726" is merged
|
||||
kubectl replace -f hack/testdata/multi-resource-list-modify.json --force --validate=false "${kube_flags[@]}"
|
||||
# Post-condition: mock service and mock rc are replaced
|
||||
kube::test::get_object_assert 'services mock' "{{${labels_field}.status}}" 'replaced'
|
||||
kube::test::get_object_assert 'rc mock' "{{${labels_field}.status}}" 'replaced'
|
||||
# Command
|
||||
kubectl label -f hack/testdata/multi-resource-list.json labeled=true "${kube_flags[@]}"
|
||||
# Post-condition: mock service and mock rc are labeled
|
||||
kube::test::get_object_assert 'services mock' "{{${labels_field}.labeled}}" 'true'
|
||||
kube::test::get_object_assert 'rc mock' "{{${labels_field}.labeled}}" 'true'
|
||||
# Command
|
||||
kubectl annotate -f hack/testdata/multi-resource-list.json annotated=true "${kube_flags[@]}"
|
||||
# Post-condition: mock service and mock rc are annotated
|
||||
kube::test::get_object_assert 'services mock' "{{${annotations_field}.annotated}}" 'true'
|
||||
kube::test::get_object_assert 'rc mock' "{{${annotations_field}.annotated}}" 'true'
|
||||
# Cleanup services and rc
|
||||
kubectl delete -f hack/testdata/multi-resource-list.json "${kube_flags[@]}"
|
||||
|
||||
### Create, get, describe, replace, label, annotate, and then delete service nginxsvc and replication controller my-nginx from JSON, with JSON object concatenation
|
||||
# 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 rc "{{range.items}}{{$id_field}}:{{end}}" ''
|
||||
# Command
|
||||
kubectl create -f hack/testdata/multi-resource.json "${kube_flags[@]}"
|
||||
# Post-condition: mock service is running
|
||||
kube::test::get_object_assert services "{{range.items}}{{$id_field}}:{{end}}" 'kubernetes:mock:'
|
||||
# Post-condition: mock rc is running
|
||||
kube::test::get_object_assert rc "{{range.items}}{{$id_field}}:{{end}}" 'mock:'
|
||||
# Command
|
||||
kubectl get -f hack/testdata/multi-resource.json "${kube_flags[@]}"
|
||||
kubectl describe -f hack/testdata/multi-resource.json "${kube_flags[@]}"
|
||||
# Command
|
||||
kubectl replace -f hack/testdata/multi-resource-modify.json --force "${kube_flags[@]}"
|
||||
# Post-condition: mock service and mock rc are replaced
|
||||
kube::test::get_object_assert 'services mock' "{{${labels_field}.status}}" 'replaced'
|
||||
kube::test::get_object_assert 'rc mock' "{{${labels_field}.status}}" 'replaced'
|
||||
# Command
|
||||
kubectl label -f hack/testdata/multi-resource.json labeled=true "${kube_flags[@]}"
|
||||
# Post-condition: mock service and mock rc are labeled
|
||||
kube::test::get_object_assert 'services mock' "{{${labels_field}.labeled}}" 'true'
|
||||
kube::test::get_object_assert 'rc mock' "{{${labels_field}.labeled}}" 'true'
|
||||
# Command
|
||||
kubectl annotate -f hack/testdata/multi-resource.json annotated=true "${kube_flags[@]}"
|
||||
# Post-condition: mock service and mock rc are annotated
|
||||
kube::test::get_object_assert 'services mock' "{{${annotations_field}.annotated}}" 'true'
|
||||
kube::test::get_object_assert 'rc mock' "{{${annotations_field}.annotated}}" 'true'
|
||||
# Cleanup services and rc
|
||||
kubectl delete -f hack/testdata/multi-resource.json "${kube_flags[@]}"
|
||||
### Create, get, describe, replace, label, annotate, and then delete service nginxsvc and replication controller my-nginx from 3 types of files:
|
||||
### 1) YAML, separated by ---; 2) JSON, with a List type; 3) JSON, with JSON object concatenation
|
||||
# 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 rc "{{range.items}}{{$id_field}}:{{end}}" ''
|
||||
# Command
|
||||
# TODO: remove --validate=false when PR "Add validate support for list kind #14726" is merged
|
||||
kubectl create -f $file --validate=false "${kube_flags[@]}"
|
||||
# Post-condition: mock service is running
|
||||
kube::test::get_object_assert services "{{range.items}}{{$id_field}}:{{end}}" 'kubernetes:mock:'
|
||||
# Post-condition: mock rc is running
|
||||
kube::test::get_object_assert rc "{{range.items}}{{$id_field}}:{{end}}" 'mock:'
|
||||
# Command
|
||||
# kubectl create -f $file "${kube_flags[@]}" # test fails here now
|
||||
# TODO: test get when PR "Fix get with List #14888" is merged
|
||||
# kubectl get -f $file "${kube_flags[@]}"
|
||||
kubectl describe -f $file "${kube_flags[@]}"
|
||||
# Command
|
||||
# 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[@]}"
|
||||
# Post-condition: mock service and mock rc are replaced
|
||||
kube::test::get_object_assert 'services mock' "{{${labels_field}.status}}" 'replaced'
|
||||
kube::test::get_object_assert 'rc mock' "{{${labels_field}.status}}" 'replaced'
|
||||
# Command
|
||||
kubectl label -f $file labeled=true "${kube_flags[@]}"
|
||||
# Post-condition: mock service and mock rc are labeled
|
||||
kube::test::get_object_assert 'services mock' "{{${labels_field}.labeled}}" 'true'
|
||||
kube::test::get_object_assert 'rc mock' "{{${labels_field}.labeled}}" 'true'
|
||||
# Command
|
||||
kubectl annotate -f $file annotated=true "${kube_flags[@]}"
|
||||
# Post-condition: mock service and mock rc are annotated
|
||||
kube::test::get_object_assert 'services mock' "{{${annotations_field}.annotated}}" 'true'
|
||||
kube::test::get_object_assert 'rc mock' "{{${annotations_field}.annotated}}" 'true'
|
||||
# Cleanup services and rc
|
||||
kubectl delete -f $file "${kube_flags[@]}"
|
||||
done
|
||||
|
||||
######################
|
||||
# Persistent Volumes #
|
||||
|
|
|
@ -0,0 +1,33 @@
|
|||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: mock
|
||||
labels:
|
||||
app: mock
|
||||
status: replaced
|
||||
spec:
|
||||
ports:
|
||||
- port: 99
|
||||
protocol: TCP
|
||||
targetPort: 9949
|
||||
selector:
|
||||
app: mock
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ReplicationController
|
||||
metadata:
|
||||
name: mock
|
||||
spec:
|
||||
replicas: 1
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: mock
|
||||
status: replaced
|
||||
spec:
|
||||
containers:
|
||||
- name: mock-container
|
||||
image: kubernetes/pause
|
||||
ports:
|
||||
- containerPort: 9949
|
||||
protocol: TCP
|
|
@ -0,0 +1,31 @@
|
|||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: mock
|
||||
labels:
|
||||
app: mock
|
||||
spec:
|
||||
ports:
|
||||
- port: 99
|
||||
protocol: TCP
|
||||
targetPort: 9949
|
||||
selector:
|
||||
app: mock
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ReplicationController
|
||||
metadata:
|
||||
name: mock
|
||||
spec:
|
||||
replicas: 1
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: mock
|
||||
spec:
|
||||
containers:
|
||||
- name: mock-container
|
||||
image: kubernetes/pause
|
||||
ports:
|
||||
- containerPort: 9949
|
||||
protocol: TCP
|
|
@ -1,44 +0,0 @@
|
|||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: nginxsvc
|
||||
labels:
|
||||
app: nginx
|
||||
status: replaced
|
||||
spec:
|
||||
type: NodePort
|
||||
ports:
|
||||
- port: 80
|
||||
protocol: TCP
|
||||
name: http
|
||||
- port: 443
|
||||
protocol: TCP
|
||||
name: https
|
||||
selector:
|
||||
app: nginx
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ReplicationController
|
||||
metadata:
|
||||
name: my-nginx
|
||||
spec:
|
||||
replicas: 1
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: nginx
|
||||
status: replaced
|
||||
spec:
|
||||
volumes:
|
||||
- name: secret-volume
|
||||
secret:
|
||||
secretName: nginxsecret
|
||||
containers:
|
||||
- name: nginxhttps
|
||||
image: bprashanth/nginxhttps:1.0
|
||||
ports:
|
||||
- containerPort: 443
|
||||
- containerPort: 80
|
||||
volumeMounts:
|
||||
- mountPath: /etc/nginx/ssl
|
||||
name: secret-volume
|
Loading…
Reference in New Issue