From b10e86038e63414f6ad9ffe8c4630fc2d96e7ff9 Mon Sep 17 00:00:00 2001 From: Janet Kuo Date: Fri, 2 Oct 2015 13:23:00 -0700 Subject: [PATCH] Loop three types of files for each "multiple resources" test --- hack/test-cmd.sh | 145 ++++++------------ ...y.json => multi-resource-json-modify.json} | 0 ...resource.json => multi-resource-json.json} | 0 hack/testdata/multi-resource-yaml-modify.yaml | 33 ++++ hack/testdata/multi-resource-yaml.yaml | 31 ++++ hack/testdata/nginx-app-modify.yaml | 44 ------ 6 files changed, 114 insertions(+), 139 deletions(-) rename hack/testdata/{multi-resource-modify.json => multi-resource-json-modify.json} (100%) rename hack/testdata/{multi-resource.json => multi-resource-json.json} (100%) create mode 100644 hack/testdata/multi-resource-yaml-modify.yaml create mode 100644 hack/testdata/multi-resource-yaml.yaml delete mode 100644 hack/testdata/nginx-app-modify.yaml diff --git a/hack/test-cmd.sh b/hack/test-cmd.sh index 8ea51b60058..443e19425a3 100755 --- a/hack/test-cmd.sh +++ b/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 # diff --git a/hack/testdata/multi-resource-modify.json b/hack/testdata/multi-resource-json-modify.json similarity index 100% rename from hack/testdata/multi-resource-modify.json rename to hack/testdata/multi-resource-json-modify.json diff --git a/hack/testdata/multi-resource.json b/hack/testdata/multi-resource-json.json similarity index 100% rename from hack/testdata/multi-resource.json rename to hack/testdata/multi-resource-json.json diff --git a/hack/testdata/multi-resource-yaml-modify.yaml b/hack/testdata/multi-resource-yaml-modify.yaml new file mode 100644 index 00000000000..7b345a1e5ab --- /dev/null +++ b/hack/testdata/multi-resource-yaml-modify.yaml @@ -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 \ No newline at end of file diff --git a/hack/testdata/multi-resource-yaml.yaml b/hack/testdata/multi-resource-yaml.yaml new file mode 100644 index 00000000000..6f84f66307b --- /dev/null +++ b/hack/testdata/multi-resource-yaml.yaml @@ -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 \ No newline at end of file diff --git a/hack/testdata/nginx-app-modify.yaml b/hack/testdata/nginx-app-modify.yaml deleted file mode 100644 index fc212d95b49..00000000000 --- a/hack/testdata/nginx-app-modify.yaml +++ /dev/null @@ -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