diff --git a/hack/make-rules/test-cmd-util.sh b/hack/make-rules/test-cmd-util.sh index a446f36a5b2..e5ea3b356c5 100755 --- a/hack/make-rules/test-cmd-util.sh +++ b/hack/make-rules/test-cmd-util.sh @@ -4708,7 +4708,7 @@ run_initializer_tests() { kube::log::status "Testing --include-uninitialized" ### Create a deployment - kubectl create -f hack/testdata/initializer-deployments.yaml 2>&1 "${kube_flags[@]}" || true + kubectl create --request-timeout=1 -f hack/testdata/initializer-deployments.yaml 2>&1 "${kube_flags[@]}" || true ### Test kubectl get --include-uninitialized # Command @@ -4721,16 +4721,12 @@ run_initializer_tests() { kube::test::if_has_string "${output_message}" 'No resources found' # Command output_message=$(kubectl get deployments --include-uninitialized 2>&1 "${kube_flags[@]}") - # Post-condition: The text "No resources found" should not be part of the output - kube::test::if_has_not_string "${output_message}" 'No resources found' - # Command - output_message=$(kubectl get deployments --include-uninitialized=true 2>&1 "${kube_flags[@]}") - # Post-condition: The text "No resources found" should not be part of the output - kube::test::if_has_not_string "${output_message}" 'No resources found' + # Post-condition: I assume "web" is the deployment name + kube::test::if_has_string "${output_message}" 'web' # Command output_message=$(kubectl get deployments web 2>&1 "${kube_flags[@]}") - # Post-condition: The text "No resources found" should not be part of the output - kube::test::if_has_not_string "${output_message}" 'No resources found' + # Post-condition: I assume "web" is the deployment name + kube::test::if_has_string "${output_message}" 'web' # Command output_message=$(kubectl get deployments --show-all 2>&1 "${kube_flags[@]}") # Post-condition: The text "No resources found" should be part of the output @@ -4762,6 +4758,7 @@ run_initializer_tests() { # Command output_message=$(kubectl label deployments labelkey1=labelvalue1 --all 2>&1 "${kube_flags[@]}") # Post-condition: web is labelled + kube::test::if_has_string "${output_message}" 'deployment "web" labeled' kube::test::get_object_assert 'deployments web' "{{${labels_field}.labelkey1}}" 'labelvalue1' # Command output_message=$(kubectl label deployments labelkey2=labelvalue2 --all --include-uninitialized=false 2>&1 "${kube_flags[@]}") @@ -4774,6 +4771,7 @@ run_initializer_tests() { # Command output_message=$(kubectl label deployments labelkey4=labelvalue4 -l run=web --include-uninitialized 2>&1 "${kube_flags[@]}") # Post-condition: web is labelled + kube::test::if_has_string "${output_message}" 'deployment "web" labeled' kube::test::get_object_assert 'deployments web' "{{${labels_field}.labelkey4}}" 'labelvalue4' # Command output_message=$(kubectl label deployments labelkey5=labelvalue5 -l run=web --all 2>&1 "${kube_flags[@]}") @@ -4782,16 +4780,21 @@ run_initializer_tests() { # Command output_message=$(kubectl label deployments labelkey6=labelvalue6 -l run=web --all --include-uninitialized 2>&1 "${kube_flags[@]}") # Post-condition: web is labelled + kube::test::if_has_string "${output_message}" 'deployment "web" labeled' kube::test::get_object_assert 'deployments web' "{{${labels_field}.labelkey6}}" 'labelvalue6' # Command output_message=$(kubectl label deployments web labelkey7=labelvalue7 2>&1 "${kube_flags[@]}") # Post-condition: web is labelled + kube::test::if_has_string "${output_message}" 'deployment "web" labeled' kube::test::get_object_assert 'deployments web' "{{${labels_field}.labelkey7}}" 'labelvalue7' + # Found All Labels + kube::test::get_object_assert 'deployments web' "{{${labels_field}}}" 'map[labelkey1:labelvalue1 labelkey4:labelvalue4 labelkey6:labelvalue6 labelkey7:labelvalue7 run:web]' ### Test kubectl annotate --include-uninitialized # Command output_message=$(kubectl annotate deployments annotatekey1=annotatevalue1 --all 2>&1 "${kube_flags[@]}") # Post-condition: DEPLOYMENT has annotation + kube::test::if_has_string "${output_message}" 'deployment "web" annotated' kube::test::get_object_assert 'deployments web' "{{${annotations_field}.annotatekey1}}" 'annotatevalue1' # Command output_message=$(kubectl annotate deployments annotatekey2=annotatevalue2 --all --include-uninitialized=false 2>&1 "${kube_flags[@]}") @@ -4804,6 +4807,7 @@ run_initializer_tests() { # Command output_message=$(kubectl annotate deployments annotatekey4=annotatevalue4 -l run=web --include-uninitialized 2>&1 "${kube_flags[@]}") # Post-condition: DEPLOYMENT has annotation + kube::test::if_has_string "${output_message}" 'deployment "web" annotated' kube::test::get_object_assert 'deployments web' "{{${annotations_field}.annotatekey4}}" 'annotatevalue4' # Command output_message=$(kubectl annotate deployments annotatekey5=annotatevalue5 -l run=web --all 2>&1 "${kube_flags[@]}") @@ -4812,10 +4816,12 @@ run_initializer_tests() { # Command output_message=$(kubectl annotate deployments annotatekey6=annotatevalue6 -l run=web --all --include-uninitialized 2>&1 "${kube_flags[@]}") # Post-condition: DEPLOYMENT has annotation + kube::test::if_has_string "${output_message}" 'deployment "web" annotated' kube::test::get_object_assert 'deployments web' "{{${annotations_field}.annotatekey6}}" 'annotatevalue6' # Command output_message=$(kubectl annotate deployments web annotatekey7=annotatevalue7 2>&1 "${kube_flags[@]}") # Post-condition: web DEPLOYMENT has annotation + kube::test::if_has_string "${output_message}" 'deployment "web" annotated' kube::test::get_object_assert 'deployments web' "{{${annotations_field}.annotatekey7}}" 'annotatevalue7' ### Test kubectl edit --include-uninitialized @@ -4868,7 +4874,7 @@ run_initializer_tests() { ### Test kubectl set selector --include-uninitialized # Create a service with initializer - kubectl create -f hack/testdata/initializer-redis-master-service.yaml 2>&1 "${kube_flags[@]}" || true + kubectl create --request-timeout=1 -f hack/testdata/initializer-redis-master-service.yaml 2>&1 "${kube_flags[@]}" || true # Command output_message=$(kubectl set selector services role=padawan --all 2>&1 "${kube_flags[@]}") # Post-condition: The text "selector updated" should be part of the output @@ -4880,7 +4886,7 @@ run_initializer_tests() { ### Test kubectl set subject --include-uninitialized # Create a create clusterrolebinding with initializer - kubectl create -f hack/testdata/initializer-clusterrolebinding.yaml 2>&1 "${kube_flags[@]}" || true + kubectl create --request-timeout=1 -f hack/testdata/initializer-clusterrolebinding.yaml 2>&1 "${kube_flags[@]}" || true kube::test::get_object_assert clusterrolebinding/super-admin "{{range.subjects}}{{.name}}:{{end}}" 'super-admin:' # Command output_message=$(kubectl set subject clusterrolebinding --user=foo --all 2>&1 "${kube_flags[@]}") @@ -4929,7 +4935,7 @@ run_initializer_tests() { # Pre-Condition: no POD exists kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" '' # apply pod a - kubectl apply --prune --request-timeout=20 --include-uninitialized=false --all -f hack/testdata/prune/a.yaml "${kube_flags[@]}" 2>&1 "${kube_flags[@]}" + kubectl apply --prune --request-timeout=20 --include-uninitialized=false --all -f hack/testdata/prune/a.yaml "${kube_flags[@]}" 2>&1 # check right pod exists kube::test::get_object_assert pods/a "{{${id_field}}}" 'a' # Post-condition: Other uninitialized resources should not be pruned @@ -4938,14 +4944,25 @@ run_initializer_tests() { # cleanup kubectl delete pod a # apply pod a and prune uninitialized deployments web - kubectl apply --prune --request-timeout=20 --all -f hack/testdata/prune/a.yaml "${kube_flags[@]}" 2>&1 "${kube_flags[@]}" + kubectl apply --prune --request-timeout=20 --all -f hack/testdata/prune/a.yaml "${kube_flags[@]}" 2>&1 # check right pod exists kube::test::get_object_assert pods/a "{{${id_field}}}" 'a' - # Post-condition: Other resources should be pruned - kube::test::get_object_assert deployments "{{range.items}}{{$id_field}}:{{end}}" '' - kube::test::get_object_assert services/redis-master "{{range.items}}{{$id_field}}:{{end}}" '' + # Post-condition: Other uninitialized resources should not be pruned + kube::test::get_object_assert deployments/web "{{range.items}}{{$id_field}}:{{end}}" 'web' + kube::test::get_object_assert services/redis-master "{{range.items}}{{$id_field}}:{{end}}" 'redis-master' # cleanup kubectl delete pod a + # apply pod a and prune uninitialized deployments web + kubectl apply --prune --request-timeout=20 --include-uninitialized --all -f hack/testdata/prune/a.yaml "${kube_flags[@]}" 2>&1 + # check right pod exists + kube::test::get_object_assert pods/a "{{${id_field}}}" 'a' + # Post-condition: Other uninitialized resources should not be pruned + kube::test::get_object_assert deployments/web "{{range.items}}{{$id_field}}:{{end}}" 'web' + kube::test::get_object_assert services/redis-master "{{range.items}}{{$id_field}}:{{end}}" 'redis-master' + # cleanup + kubectl delete pod a + kubectl delete --request-timeout=1 deploy web + kubectl delete --request-timeout=1 service redis-master set +o nounset set +o errexit