Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Merged
merged 1 commit into from
Oct 5, 2015
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
147 changes: 51 additions & 96 deletions hack/test-cmd.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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[@]}"

### 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[@]}"
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 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 #
Expand Down
33 changes: 33 additions & 0 deletions hack/testdata/multi-resource-yaml-modify.yaml
Original file line number Diff line number Diff line change
@@ -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
31 changes: 31 additions & 0 deletions hack/testdata/multi-resource-yaml.yaml
Original file line number Diff line number Diff line change
@@ -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
44 changes: 0 additions & 44 deletions hack/testdata/nginx-app-modify.yaml

This file was deleted.