Commit b10e8603 authored by Janet Kuo's avatar Janet Kuo

Loop three types of files for each "multiple resources" test

parent 7007481f
...@@ -734,102 +734,57 @@ __EOF__ ...@@ -734,102 +734,57 @@ __EOF__
kube::log::status "Testing kubectl(${version}:multiple resources)" kube::log::status "Testing kubectl(${version}:multiple resources)"
# TODO: add test for types like ReplicationControllerList, ServiceList # 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 --- FILES="hack/testdata/multi-resource-yaml
# Pre-condition: no service (other than default kubernetes services) or replication controller is running hack/testdata/multi-resource-list
kube::test::get_object_assert services "{{range.items}}{{$id_field}}:{{end}}" 'kubernetes:' hack/testdata/multi-resource-json"
kube::test::get_object_assert rc "{{range.items}}{{$id_field}}:{{end}}" '' YAML=".yaml"
# Command JSON=".json"
kubectl create -f examples/https-nginx/nginx-app.yaml "${kube_flags[@]}" for file in $FILES; do
# Post-condition: nginxsvc service is running if [ -f $file$YAML ]
kube::test::get_object_assert services "{{range.items}}{{$id_field}}:{{end}}" 'kubernetes:nginxsvc:' then
# Post-condition: my-nginx rc is running file=$file$YAML
kube::test::get_object_assert rc "{{range.items}}{{$id_field}}:{{end}}" 'my-nginx:' replace_file="${file%.yaml}-modify.yaml"
# Command else
kubectl get -f examples/https-nginx/nginx-app.yaml "${kube_flags[@]}" file=$file$JSON
kubectl describe -f examples/https-nginx/nginx-app.yaml "${kube_flags[@]}" replace_file="${file%.json}-modify.json"
# Command fi
kubectl replace -f hack/testdata/nginx-app-modify.yaml --force "${kube_flags[@]}"
# Post-condition: nginxsvc service and mock rc are replaced ### Create, get, describe, replace, label, annotate, and then delete service nginxsvc and replication controller my-nginx from 3 types of files:
kube::test::get_object_assert 'services nginxsvc' "{{${labels_field}.status}}" 'replaced' ### 1) YAML, separated by ---; 2) JSON, with a List type; 3) JSON, with JSON object concatenation
kube::test::get_object_assert 'rc my-nginx' "{{${labels_field}.status}}" 'replaced' # Pre-condition: no service (other than default kubernetes services) or replication controller is running
# Command kube::test::get_object_assert services "{{range.items}}{{$id_field}}:{{end}}" 'kubernetes:'
kubectl label -f examples/https-nginx/nginx-app.yaml labeled=true "${kube_flags[@]}" kube::test::get_object_assert rc "{{range.items}}{{$id_field}}:{{end}}" ''
# Post-condition: nginxsvc service and my-nginx rc are labeled # Command
kube::test::get_object_assert 'services nginxsvc' "{{${labels_field}.labeled}}" 'true' # TODO: remove --validate=false when PR "Add validate support for list kind #14726" is merged
kube::test::get_object_assert 'rc my-nginx' "{{${labels_field}.labeled}}" 'true' kubectl create -f $file --validate=false "${kube_flags[@]}"
# Command # Post-condition: mock service is running
kubectl annotate -f examples/https-nginx/nginx-app.yaml annotated=true "${kube_flags[@]}" kube::test::get_object_assert services "{{range.items}}{{$id_field}}:{{end}}" 'kubernetes:mock:'
# Post-condition: nginxsvc service and my-nginx rc are annotated # Post-condition: mock rc is running
kube::test::get_object_assert 'services nginxsvc' "{{${annotations_field}.annotated}}" 'true' kube::test::get_object_assert rc "{{range.items}}{{$id_field}}:{{end}}" 'mock:'
kube::test::get_object_assert 'rc my-nginx' "{{${annotations_field}.annotated}}" 'true' # Command
# Cleanup service and rc # kubectl create -f $file "${kube_flags[@]}" # test fails here now
kubectl delete -f examples/https-nginx/nginx-app.yaml "${kube_flags[@]}" # TODO: test get when PR "Fix get with List #14888" is merged
# kubectl get -f $file "${kube_flags[@]}"
### Create, get, describe, replace, label, annotate, and then delete service nginxsvc and replication controller my-nginx from JSON, with a List type kubectl describe -f $file "${kube_flags[@]}"
# Pre-condition: no service (other than default kubernetes services) or replication controller is running # Command
kube::test::get_object_assert services "{{range.items}}{{$id_field}}:{{end}}" 'kubernetes:' # TODO: remove --validate=false when PR "Add validate support for list kind #14726" is merged
kube::test::get_object_assert rc "{{range.items}}{{$id_field}}:{{end}}" '' kubectl replace -f $replace_file --force --validate=false "${kube_flags[@]}"
# Command # Post-condition: mock service and mock rc are replaced
# TODO: remove --validate=false when PR "Add validate support for list kind #14726" is merged kube::test::get_object_assert 'services mock' "{{${labels_field}.status}}" 'replaced'
kubectl create -f hack/testdata/multi-resource-list.json --validate=false "${kube_flags[@]}" kube::test::get_object_assert 'rc mock' "{{${labels_field}.status}}" 'replaced'
# Post-condition: mock service is running # Command
kube::test::get_object_assert services "{{range.items}}{{$id_field}}:{{end}}" 'kubernetes:mock:' kubectl label -f $file labeled=true "${kube_flags[@]}"
# Post-condition: mock rc is running # Post-condition: mock service and mock rc are labeled
kube::test::get_object_assert rc "{{range.items}}{{$id_field}}:{{end}}" 'mock:' kube::test::get_object_assert 'services mock' "{{${labels_field}.labeled}}" 'true'
# Command kube::test::get_object_assert 'rc mock' "{{${labels_field}.labeled}}" 'true'
# kubectl create -f hack/testdata/multi-resource.json "${kube_flags[@]}" # test fails here now # Command
# TODO: test get when PR "Fix get with List #14888" is merged kubectl annotate -f $file annotated=true "${kube_flags[@]}"
# kubectl get -f hack/testdata/multi-resource-list.json "${kube_flags[@]}" # Post-condition: mock service and mock rc are annotated
kubectl describe -f hack/testdata/multi-resource-list.json "${kube_flags[@]}" kube::test::get_object_assert 'services mock' "{{${annotations_field}.annotated}}" 'true'
# Command kube::test::get_object_assert 'rc mock' "{{${annotations_field}.annotated}}" 'true'
# TODO: remove --validate=false when PR "Add validate support for list kind #14726" is merged # Cleanup services and rc
kubectl replace -f hack/testdata/multi-resource-list-modify.json --force --validate=false "${kube_flags[@]}" kubectl delete -f $file "${kube_flags[@]}"
# Post-condition: mock service and mock rc are replaced done
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[@]}"
###################### ######################
# Persistent Volumes # # Persistent Volumes #
......
apiVersion: v1 apiVersion: v1
kind: Service kind: Service
metadata: metadata:
name: nginxsvc name: mock
labels: labels:
app: nginx app: mock
status: replaced status: replaced
spec: spec:
type: NodePort
ports: ports:
- port: 80 - port: 99
protocol: TCP protocol: TCP
name: http targetPort: 9949
- port: 443
protocol: TCP
name: https
selector: selector:
app: nginx app: mock
--- ---
apiVersion: v1 apiVersion: v1
kind: ReplicationController kind: ReplicationController
metadata: metadata:
name: my-nginx name: mock
spec: spec:
replicas: 1 replicas: 1
template: template:
metadata: metadata:
labels: labels:
app: nginx app: mock
status: replaced status: replaced
spec: spec:
volumes:
- name: secret-volume
secret:
secretName: nginxsecret
containers: containers:
- name: nginxhttps - name: mock-container
image: bprashanth/nginxhttps:1.0 image: kubernetes/pause
ports: ports:
- containerPort: 443 - containerPort: 9949
- containerPort: 80 protocol: TCP
volumeMounts: \ No newline at end of file
- mountPath: /etc/nginx/ssl
name: secret-volume
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
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment