delete.sh 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. #!/usr/bin/env bash
  2. # Copyright 2018 The Kubernetes Authors.
  3. #
  4. # Licensed under the Apache License, Version 2.0 (the "License");
  5. # you may not use this file except in compliance with the License.
  6. # You may obtain a copy of the License at
  7. #
  8. # http://www.apache.org/licenses/LICENSE-2.0
  9. #
  10. # Unless required by applicable law or agreed to in writing, software
  11. # distributed under the License is distributed on an "AS IS" BASIS,
  12. # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. # See the License for the specific language governing permissions and
  14. # limitations under the License.
  15. set -o errexit
  16. set -o nounset
  17. set -o pipefail
  18. # Runs tests related to kubectl delete --all-namespaces.
  19. run_kubectl_delete_allnamespaces_tests() {
  20. set -o nounset
  21. set -o errexit
  22. ns_one="namespace-$(date +%s)-${RANDOM}"
  23. ns_two="namespace-$(date +%s)-${RANDOM}"
  24. kubectl create namespace "${ns_one}"
  25. kubectl create namespace "${ns_two}"
  26. kubectl create configmap "one" --namespace="${ns_one}"
  27. kubectl create configmap "two" --namespace="${ns_two}"
  28. kubectl label configmap "one" --namespace="${ns_one}" deletetest=true
  29. kubectl label configmap "two" --namespace="${ns_two}" deletetest=true
  30. # dry-run
  31. kubectl delete configmap --dry-run=client -l deletetest=true --all-namespaces
  32. kubectl delete configmap --dry-run=server -l deletetest=true --all-namespaces
  33. kubectl config set-context "${CONTEXT}" --namespace="${ns_one}"
  34. kube::test::get_object_assert configmap "{{range.items}}{{${id_field:?}}}:{{end}}" 'one:'
  35. kubectl config set-context "${CONTEXT}" --namespace="${ns_two}"
  36. kube::test::get_object_assert configmap "{{range.items}}{{${id_field:?}}}:{{end}}" 'two:'
  37. kubectl delete configmap -l deletetest=true --all-namespaces
  38. # no configmaps should be in either of those namespaces
  39. kubectl config set-context "${CONTEXT}" --namespace="${ns_one}"
  40. kube::test::get_object_assert configmap "{{range.items}}{{${id_field:?}}}:{{end}}" ''
  41. kubectl config set-context "${CONTEXT}" --namespace="${ns_two}"
  42. kube::test::get_object_assert configmap "{{range.items}}{{${id_field:?}}}:{{end}}" ''
  43. set +o nounset
  44. set +o errexit
  45. }