|
| 1 | +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 |
| 2 | +From: Masashi Honma <masashi.honma@gmail.com> |
| 3 | +Date: Thu, 18 Feb 2021 08:24:07 +0900 |
| 4 | +Subject: [PATCH] Fix tests using kubectl convert |
| 5 | + |
| 6 | +hack/make-rules/test-cmd.sh script fails with tariling errors. |
| 7 | + |
| 8 | +Error: unknown command "convert" for "kubectl" |
| 9 | + |
| 10 | +1. This PR fixes the errors by replacing or removing the use of |
| 11 | +"kubectl convert" option because it was already removed. |
| 12 | + |
| 13 | +2. Fix trailing shell check failure as well. |
| 14 | +In ./test/cmd/generic-resources.sh line 366: |
| 15 | + kube::test::get_object_assert deployment "{{range.items}}{{$image_field0}}:{{end}}" "${IMAGE_NGINX}:${IMAGE_NGINX}:" |
| 16 | +--- |
| 17 | + test/cmd/create.sh | 2 +- |
| 18 | + test/cmd/generic-resources.sh | 30 ++---------------------------- |
| 19 | + test/cmd/template-output.sh | 4 ---- |
| 20 | + 3 files changed, 3 insertions(+), 33 deletions(-) |
| 21 | + |
| 22 | +diff --git a/test/cmd/create.sh b/test/cmd/create.sh |
| 23 | +index 20f0e8add96..67bcf8ff59d 100755 |
| 24 | +--- a/test/cmd/create.sh |
| 25 | ++++ b/test/cmd/create.sh |
| 26 | +@@ -85,7 +85,7 @@ run_kubectl_create_error_tests() { |
| 27 | + rm "${ERROR_FILE}" |
| 28 | + |
| 29 | + # Posting a pod to namespaces should fail. Also tests --raw forcing the post location |
| 30 | +- grep -q "cannot be handled as a Namespace: converting (v1.Pod)" <<< "$( kubectl convert -f test/fixtures/doc-yaml/admin/limitrange/valid-pod.yaml -o json | kubectl create "${kube_flags[@]}" --raw /api/v1/namespaces -f - --v=8 2>&1 )" |
| 31 | ++ grep -q 'the object provided is unrecognized (must be of type Namespace)' <<< "$( kubectl create "${kube_flags[@]}" --raw /api/v1/namespaces -f test/fixtures/doc-yaml/admin/limitrange/valid-pod.yaml --v=8 2>&1 )" |
| 32 | + |
| 33 | + grep -q "raw and --edit are mutually exclusive" <<< "$( kubectl create "${kube_flags[@]}" --raw /api/v1/namespaces -f test/fixtures/doc-yaml/admin/limitrange/valid-pod.yaml --edit 2>&1 )" |
| 34 | + |
| 35 | +diff --git a/test/cmd/generic-resources.sh b/test/cmd/generic-resources.sh |
| 36 | +index 17f111580b2..b983118d463 100755 |
| 37 | +--- a/test/cmd/generic-resources.sh |
| 38 | ++++ b/test/cmd/generic-resources.sh |
| 39 | +@@ -259,32 +259,6 @@ run_recursive_resources_tests() { |
| 40 | + kube::test::get_object_assert pods "{{range.items}}{{${labels_field}.status}}:{{end}}" 'replaced:replaced:' |
| 41 | + kube::test::if_has_string "${output_message}" 'error validating data: kind not set' |
| 42 | + |
| 43 | +- |
| 44 | +- ### Convert deployment YAML file locally without affecting the live deployment. |
| 45 | +- # Pre-condition: no deployments exist |
| 46 | +- kube::test::get_object_assert deployment "{{range.items}}{{$id_field}}:{{end}}" '' |
| 47 | +- # Command |
| 48 | +- # Create a deployment (revision 1) |
| 49 | +- kubectl create -f hack/testdata/deployment-revision1.yaml "${kube_flags[@]}" |
| 50 | +- kube::test::get_object_assert deployment "{{range.items}}{{$id_field}}:{{end}}" 'nginx:' |
| 51 | +- kube::test::get_object_assert deployment "{{range.items}}{{${image_field0:?}}}:{{end}}" "${IMAGE_DEPLOYMENT_R1}:" |
| 52 | +- # Command |
| 53 | +- output_message=$(kubectl convert --local -f hack/testdata/deployment-revision1.yaml --output-version=extensions/v1beta1 -o yaml "${kube_flags[@]}") |
| 54 | +- # Post-condition: apiVersion is still apps/v1 in the live deployment, but command output is the new value |
| 55 | +- kube::test::get_object_assert 'deployment nginx' "{{ .apiVersion }}" 'apps/v1' |
| 56 | +- kube::test::if_has_string "${output_message}" "extensions/v1beta1" |
| 57 | +- # Clean up |
| 58 | +- kubectl delete deployment nginx "${kube_flags[@]}" |
| 59 | +- |
| 60 | +- ## Convert multiple busybox PODs recursively from directory of YAML files |
| 61 | +- # Pre-condition: only busybox0 & busybox1 PODs exist |
| 62 | +- kube::test::wait_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" 'busybox0:busybox1:' |
| 63 | +- # Command |
| 64 | +- output_message=$(! kubectl convert -f hack/testdata/recursive/pod --recursive 2>&1 "${kube_flags[@]}") |
| 65 | +- # Post-condition: busybox0 & busybox1 PODs are converted, and since busybox2 is malformed, it should error |
| 66 | +- kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" 'busybox0:busybox1:' |
| 67 | +- kube::test::if_has_string "${output_message}" "Object 'Kind' is missing" |
| 68 | +- |
| 69 | + ## Get multiple busybox PODs recursively from directory of YAML files |
| 70 | + # Pre-condition: busybox0 & busybox1 PODs exist |
| 71 | + kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" 'busybox0:busybox1:' |
| 72 | +@@ -389,11 +363,11 @@ run_recursive_resources_tests() { |
| 73 | + # Create deployments (revision 1) recursively from directory of YAML files |
| 74 | + ! kubectl create -f hack/testdata/recursive/deployment --recursive "${kube_flags[@]}" || exit 1 |
| 75 | + kube::test::get_object_assert deployment "{{range.items}}{{$id_field}}:{{end}}" 'nginx0-deployment:nginx1-deployment:' |
| 76 | +- kube::test::get_object_assert deployment "{{range.items}}{{$image_field0}}:{{end}}" "${IMAGE_NGINX}:${IMAGE_NGINX}:" |
| 77 | ++ kube::test::get_object_assert deployment "{{range.items}}{{${image_field0:?}}}:{{end}}" "${IMAGE_NGINX}:${IMAGE_NGINX}:" |
| 78 | + ## Rollback the deployments to revision 1 recursively |
| 79 | + output_message=$(! kubectl rollout undo -f hack/testdata/recursive/deployment --recursive --to-revision=1 2>&1 "${kube_flags[@]}") |
| 80 | + # Post-condition: nginx0 & nginx1 should be a no-op, and since nginx2 is malformed, it should error |
| 81 | +- kube::test::get_object_assert deployment "{{range.items}}{{$image_field0}}:{{end}}" "${IMAGE_NGINX}:${IMAGE_NGINX}:" |
| 82 | ++ kube::test::get_object_assert deployment "{{range.items}}{{${image_field0:?}}}:{{end}}" "${IMAGE_NGINX}:${IMAGE_NGINX}:" |
| 83 | + kube::test::if_has_string "${output_message}" "Object 'Kind' is missing" |
| 84 | + ## Pause the deployments recursively |
| 85 | + # shellcheck disable=SC2034 # PRESERVE_ERR_FILE is used in kubectl-with-retry |
| 86 | +diff --git a/test/cmd/template-output.sh b/test/cmd/template-output.sh |
| 87 | +index b5e9fff2e27..3155077b947 100755 |
| 88 | +--- a/test/cmd/template-output.sh |
| 89 | ++++ b/test/cmd/template-output.sh |
| 90 | +@@ -62,10 +62,6 @@ run_template_output_tests() { |
| 91 | + output_message=$(kubectl "${kube_flags[@]:?}" expose -f hack/testdata/redis-slave-replicaset.yaml --save-config --port=80 --target-port=8000 --dry-run=client --template="{{ .metadata.name }}:") |
| 92 | + kube::test::if_has_string "${output_message}" 'redis-slave:' |
| 93 | + |
| 94 | +- # check that convert command supports --template output |
| 95 | +- output_message=$(kubectl convert "${kube_flags[@]:?}" -f hack/testdata/deployment-revision1.yaml --output-version=apps/v1beta1 --template="{{ .metadata.name }}:") |
| 96 | +- kube::test::if_has_string "${output_message}" 'nginx:' |
| 97 | +- |
| 98 | + # check that run command supports --template output |
| 99 | + output_message=$(kubectl "${kube_flags[@]:?}" run --dry-run=client --template="{{ .metadata.name }}:" pi --image=perl --restart=OnFailure -- perl -Mbignum=bpi -wle 'print bpi(2000)') |
| 100 | + kube::test::if_has_string "${output_message}" 'pi:' |
0 commit comments