Skip to content

Commit ad86c20

Browse files
committed
fix test using kubectl convert from #97644
- rename patch file: fix-kubectl-convert-97644.1.20.patch
1 parent 56e3bfa commit ad86c20

File tree

2 files changed

+107
-0
lines changed

2 files changed

+107
-0
lines changed
Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
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:'

releases.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,14 @@ releases:
2121
base_release: v1.20.15-ci
2222
must: true
2323
patches:
24+
- fix-kubectl-convert-97644.1.20
2425
- nokmem.1.20
2526

2627
- name: v1.20.2-lts.2
2728
base_release: v1.20.2-ci
2829
must: true
2930
patches:
31+
- fix-kubectl-convert-97644.1.20
3032
- nokmem.1.20
3133

3234
- name: v1.19.16-lts.3
@@ -623,3 +625,8 @@ patches:
623625
- name: fix-missing-env-91500.1.18
624626
patch:
625627
- patches/fix-missing-env-91500.1.18.patch
628+
629+
# Pick commit from https://github.com/kubernetes/kubernetes/pull/97644.patch
630+
- name: fix-kubectl-convert-97644.1.20
631+
patch:
632+
- patches/fix-kubectl-convert-97644.1.20.patch

0 commit comments

Comments
 (0)