@@ -240,6 +240,30 @@ __EOF__
240
240
# cleanup
241
241
kubectl delete svc prune-svc 2>&1 " ${kube_flags[@]:? } "
242
242
243
+ # # kubectl apply --prune can prune resources not in the defaulted namespace
244
+ # Pre-Condition: namespace nsb exists; no POD exists
245
+ kubectl create ns nsb
246
+ kube::test::get_object_assert pods " {{range.items}}{{${id_field:? } }}:{{end}}" ' '
247
+ # apply a into namespace nsb
248
+ kubectl apply --namespace nsb -f hack/testdata/prune/a.yaml " ${kube_flags[@]:? } "
249
+ kube::test::get_object_assert ' pods a -n nsb' " {{${id_field:? } }}" ' a'
250
+ # apply b with namespace
251
+ kubectl apply --namespace nsb -f hack/testdata/prune/b.yaml " ${kube_flags[@]:? } "
252
+ kube::test::get_object_assert ' pods b -n nsb' " {{${id_field:? } }}" ' b'
253
+ # apply --prune must prune a
254
+ kubectl apply --prune --all -f hack/testdata/prune/b.yaml
255
+ # check wrong pod doesn't exist
256
+ output_message=$( ! kubectl get pods a -n nsb 2>&1 " ${kube_flags[@]:? } " )
257
+ kube::test::if_has_string " ${output_message} " ' pods "a" not found'
258
+ # check right pod exists
259
+ kube::test::get_object_assert ' pods b -n nsb' " {{${id_field:? } }}" ' b'
260
+
261
+ # cleanup
262
+ kubectl delete ns nsb
263
+
264
+ # # kubectl apply -n must fail if input file contains namespace other than the one given in -n
265
+ output_message=$( ! kubectl apply -n foo -f hack/testdata/prune/b.yaml 2>&1 " ${kube_flags[@]:? } " )
266
+ kube::test::if_has_string " ${output_message} " ' the namespace from the provided object "nsb" does not match the namespace "foo".'
243
267
244
268
# # kubectl apply -f some.yml --force
245
269
# Pre-condition: no service exists
0 commit comments