test for explicit null value propagation in apply

This commit is contained in:
Anastasis Andronidis
2016-10-24 21:34:28 -07:00
committed by Jordan Liggitt
parent 86d561424d
commit 4bdcc03c0b
7 changed files with 231 additions and 0 deletions

View File

@@ -917,6 +917,33 @@ run_kubectl_create_filter_tests() {
kubectl delete pods selector-test-pod
}
run_kubectl_apply_deployments_tests() {
## kubectl apply should propagate user defined null values
# Pre-Condition: no Deployments exists
kube::test::get_object_assert deployments "{{range.items}}{{$id_field}}:{{end}}" ''
# apply base deployment
kubectl apply -f hack/testdata/null-propagation/deployment-l1.yaml "${kube_flags[@]}"
# check right deployment exists
kube::test::get_object_assert 'deployments my-depl' "{{${id_field}}}" 'my-depl'
# check right labels exists
kube::test::get_object_assert 'deployments my-depl' "{{.spec.template.metadata.labels.l1}}" 'l1'
kube::test::get_object_assert 'deployments my-depl' "{{.spec.selector.matchLabels.l1}}" 'l1'
kube::test::get_object_assert 'deployments my-depl' "{{.metadata.labels.l1}}" 'l1'
# apply new deployment with new template labels
kubectl apply -f hack/testdata/null-propagation/deployment-l2.yaml "${kube_flags[@]}"
# check right labels exists
kube::test::get_object_assert 'deployments my-depl' "{{.spec.template.metadata.labels.l1}}" '<no value>'
kube::test::get_object_assert 'deployments my-depl' "{{.spec.selector.matchLabels.l1}}" '<no value>'
kube::test::get_object_assert 'deployments my-depl' "{{.metadata.labels.l1}}" '<no value>'
kube::test::get_object_assert 'deployments my-depl' "{{.spec.template.metadata.labels.l2}}" 'l2'
kube::test::get_object_assert 'deployments my-depl' "{{.spec.selector.matchLabels.l2}}" 'l2'
kube::test::get_object_assert 'deployments my-depl' "{{.metadata.labels.l2}}" 'l2'
# cleanup
kubectl delete deployments my-depl
}
# Runs tests for --save-config tests.
run_save_config_tests() {
## Configuration annotations should be set when --save-config is enabled
@@ -2718,6 +2745,10 @@ runTests() {
run_kubectl_create_filter_tests
fi
if kube::test::if_supports_resource "${deployments}" ; then
run_kubectl_apply_deployments_tests
fi
###############
# Kubectl get #
###############