diff --git a/hack/make-rules/test-cmd.sh b/hack/make-rules/test-cmd.sh index 6a12ed50861..8941caab7df 100755 --- a/hack/make-rules/test-cmd.sh +++ b/hack/make-rules/test-cmd.sh @@ -1138,6 +1138,24 @@ __EOF__ kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" '' kubectl delete pvc b-pvc 2>&1 "${kube_flags[@]}" + ## kubectl apply --prune --prune-whitelist(-w) + # Pre-Condition: no POD exists + kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" '' + # apply pod a + kubectl apply --prune -l prune-group=true -f hack/testdata/prune/a.yaml "${kube_flags[@]}" + # check right pod exists + kube::test::get_object_assert 'pods a' "{{${id_field}}}" 'a' + # apply svc and don't prune pod a by overwriting whitelist + kubectl apply --prune -l prune-group=true -f hack/testdata/prune/svc.yaml -w core/v1/Service 2>&1 "${kube_flags[@]}" + kube::test::get_object_assert 'service prune-svc' "{{${id_field}}}" 'prune-svc' + kube::test::get_object_assert 'pods a' "{{${id_field}}}" 'a' + # apply svc and prune pod a with default whitelist + kubectl apply --prune -l prune-group=true -f hack/testdata/prune/svc.yaml 2>&1 "${kube_flags[@]}" + kube::test::get_object_assert 'service prune-svc' "{{${id_field}}}" 'prune-svc' + kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" '' + # cleanup + kubectl delete svc prune-svc 2>&1 "${kube_flags[@]}" + ## kubectl run should create deployments or jobs # Pre-Condition: no Job exists kube::test::get_object_assert jobs "{{range.items}}{{$id_field}}:{{end}}" '' diff --git a/hack/testdata/prune/svc.yaml b/hack/testdata/prune/svc.yaml new file mode 100644 index 00000000000..a65d5255e0c --- /dev/null +++ b/hack/testdata/prune/svc.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: Service +metadata: + name: prune-svc + labels: + prune-group: "true" +spec: + selector: + prune-group-nomatch: "true" + ports: + - port: 80 + protocol: TCP