Skip to content

Commit c29a196

Browse files
committed
add tests
1 parent e4aff1b commit c29a196

File tree

3 files changed

+57
-0
lines changed

3 files changed

+57
-0
lines changed
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
apiVersion: apps/v1
2+
kind: Deployment
3+
metadata:
4+
name: my-dep-null
5+
spec:
6+
selector:
7+
matchLabels:
8+
l1: l1
9+
template:
10+
metadata:
11+
labels:
12+
l1: l1
13+
spec:
14+
containers:
15+
- name: nginx
16+
image: registry.k8s.io/nginx:1.7.9
17+
resources:
18+
requests:
19+
memory: "64Mi"
20+
cpu: null
21+
terminationMessagePolicy: null
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
kind: ResourceQuota
2+
apiVersion: v1
3+
metadata:
4+
name: my-rq
5+
spec:
6+
hard:
7+
limits.cpu: null
8+
limits.memory: null

test/cmd/apply.sh

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,34 @@ run_kubectl_apply_tests() {
9696
# cleanup
9797
kubectl delete pods selector-test-pod
9898

99+
# Create a deployment
100+
kubectl apply -f hack/testdata/null-propagation/deployment-null.yml "${kube_flags[@]:?}"
101+
# resources.limits.cpu should be nil.
102+
kube::test::get_object_jsonpath_assert "deployment/my-dep-null" "{.spec.template.spec.containers[0].resources.requests.cpu}" ''
103+
kube::test::get_object_jsonpath_assert "deployment/my-dep-null" "{.spec.template.spec.containers[0].resources.requests.memory}" '64Mi'
104+
# The default value of the terminationMessagePolicy field is `File`, so the result will not be changed.
105+
kube::test::get_object_jsonpath_assert "deployment/my-dep-null" "{.spec.template.spec.containers[0].terminationMessagePolicy}" 'File'
106+
107+
# kubectl apply on create should do what kubectl apply on update will accomplish.
108+
kubectl apply -f hack/testdata/null-propagation/deployment-null.yml "${kube_flags[@]}"
109+
kube::test::get_object_jsonpath_assert "deployment/my-dep-null" "{.spec.template.spec.containers[0].resources.requests.cpu}" ''
110+
kube::test::get_object_jsonpath_assert "deployment/my-dep-null" "{.spec.template.spec.containers[0].resources.requests.memory}" '64Mi'
111+
kube::test::get_object_jsonpath_assert "deployment/my-dep-null" "{.spec.template.spec.containers[0].terminationMessagePolicy}" 'File'
112+
113+
# hard.limits.cpu should be nil.
114+
kubectl apply -f hack/testdata/null-propagation/resourcesquota-null.yml "${kube_flags[@]}"
115+
kube::test::get_object_jsonpath_assert "resourcequota/my-rq" "{.spec.hard['limits\.cpu']}" ''
116+
kube::test::get_object_jsonpath_assert "resourcequota/my-rq" "{.spec.hard['limits\.memory']}" ''
117+
118+
# kubectl apply on create should do what kubectl apply on update will accomplish.
119+
kubectl apply -f hack/testdata/null-propagation/resourcesquota-null.yml "${kube_flags[@]}"
120+
kube::test::get_object_jsonpath_assert "resourcequota/my-rq" "{.spec.hard['limits\.cpu']}" ''
121+
kube::test::get_object_jsonpath_assert "resourcequota/my-rq" "{.spec.hard['limits\.memory']}" ''
122+
123+
# cleanup
124+
kubectl delete deployment my-dep-null
125+
kubectl delete resourcequota my-rq
126+
99127
## kubectl apply --dry-run=server
100128
# Pre-Condition: no POD exists
101129
kube::test::get_object_assert pods "{{range.items}}{{${id_field:?}}}:{{end}}" ''

0 commit comments

Comments
 (0)