From c29a19610aa3f0eaf5031d73546e1f092e8d0e7c Mon Sep 17 00:00:00 2001 From: HirazawaUi <695097494plus@gmail.com> Date: Sun, 23 Jun 2024 19:23:30 +0800 Subject: [PATCH] add tests --- .../null-propagation/deployment-null.yml | 21 ++++++++++++++ .../null-propagation/resourcesquota-null.yml | 8 ++++++ test/cmd/apply.sh | 28 +++++++++++++++++++ 3 files changed, 57 insertions(+) create mode 100644 hack/testdata/null-propagation/deployment-null.yml create mode 100644 hack/testdata/null-propagation/resourcesquota-null.yml diff --git a/hack/testdata/null-propagation/deployment-null.yml b/hack/testdata/null-propagation/deployment-null.yml new file mode 100644 index 00000000000..0d5c78329be --- /dev/null +++ b/hack/testdata/null-propagation/deployment-null.yml @@ -0,0 +1,21 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: my-dep-null +spec: + selector: + matchLabels: + l1: l1 + template: + metadata: + labels: + l1: l1 + spec: + containers: + - name: nginx + image: registry.k8s.io/nginx:1.7.9 + resources: + requests: + memory: "64Mi" + cpu: null + terminationMessagePolicy: null diff --git a/hack/testdata/null-propagation/resourcesquota-null.yml b/hack/testdata/null-propagation/resourcesquota-null.yml new file mode 100644 index 00000000000..efee46e16f3 --- /dev/null +++ b/hack/testdata/null-propagation/resourcesquota-null.yml @@ -0,0 +1,8 @@ +kind: ResourceQuota +apiVersion: v1 +metadata: + name: my-rq +spec: + hard: + limits.cpu: null + limits.memory: null diff --git a/test/cmd/apply.sh b/test/cmd/apply.sh index de690e61c9d..27d0b0dfeeb 100755 --- a/test/cmd/apply.sh +++ b/test/cmd/apply.sh @@ -96,6 +96,34 @@ run_kubectl_apply_tests() { # cleanup kubectl delete pods selector-test-pod + # Create a deployment + kubectl apply -f hack/testdata/null-propagation/deployment-null.yml "${kube_flags[@]:?}" + # resources.limits.cpu should be nil. + kube::test::get_object_jsonpath_assert "deployment/my-dep-null" "{.spec.template.spec.containers[0].resources.requests.cpu}" '' + kube::test::get_object_jsonpath_assert "deployment/my-dep-null" "{.spec.template.spec.containers[0].resources.requests.memory}" '64Mi' + # The default value of the terminationMessagePolicy field is `File`, so the result will not be changed. + kube::test::get_object_jsonpath_assert "deployment/my-dep-null" "{.spec.template.spec.containers[0].terminationMessagePolicy}" 'File' + + # kubectl apply on create should do what kubectl apply on update will accomplish. + kubectl apply -f hack/testdata/null-propagation/deployment-null.yml "${kube_flags[@]}" + kube::test::get_object_jsonpath_assert "deployment/my-dep-null" "{.spec.template.spec.containers[0].resources.requests.cpu}" '' + kube::test::get_object_jsonpath_assert "deployment/my-dep-null" "{.spec.template.spec.containers[0].resources.requests.memory}" '64Mi' + kube::test::get_object_jsonpath_assert "deployment/my-dep-null" "{.spec.template.spec.containers[0].terminationMessagePolicy}" 'File' + + # hard.limits.cpu should be nil. + kubectl apply -f hack/testdata/null-propagation/resourcesquota-null.yml "${kube_flags[@]}" + kube::test::get_object_jsonpath_assert "resourcequota/my-rq" "{.spec.hard['limits\.cpu']}" '' + kube::test::get_object_jsonpath_assert "resourcequota/my-rq" "{.spec.hard['limits\.memory']}" '' + + # kubectl apply on create should do what kubectl apply on update will accomplish. + kubectl apply -f hack/testdata/null-propagation/resourcesquota-null.yml "${kube_flags[@]}" + kube::test::get_object_jsonpath_assert "resourcequota/my-rq" "{.spec.hard['limits\.cpu']}" '' + kube::test::get_object_jsonpath_assert "resourcequota/my-rq" "{.spec.hard['limits\.memory']}" '' + + # cleanup + kubectl delete deployment my-dep-null + kubectl delete resourcequota my-rq + ## kubectl apply --dry-run=server # Pre-Condition: no POD exists kube::test::get_object_assert pods "{{range.items}}{{${id_field:?}}}:{{end}}" ''