From 1a7d811b4a0e528f8caae3098d05cfc57d21884d Mon Sep 17 00:00:00 2001 From: Jeff Lowdermilk Date: Thu, 18 Jun 2015 10:15:52 -0700 Subject: [PATCH] Add a test to test-cmd.sh for update --patch --- hack/test-cmd.sh | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/hack/test-cmd.sh b/hack/test-cmd.sh index 943a7a07186..5a0e47b13e2 100755 --- a/hack/test-cmd.sh +++ b/hack/test-cmd.sh @@ -141,6 +141,7 @@ for version in "${kube_api_versions[@]}"; do rc_status_replicas_field=".status.replicas" rc_container_image_field=".spec.template.spec.containers" port_field="(index .spec.ports 0).port" + image_field="(index .spec.containers 0).image" # Passing no arguments to create is an error ! kubectl create @@ -306,6 +307,14 @@ for version in "${kube_api_versions[@]}"; do # Post-condition: valid-pod POD is running kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" 'valid-pod:' + ## --patch update pod can change image + # Pre-condition: valid-pod POD is running + kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" 'valid-pod:' + # Command + kubectl update "${kube_flags[@]}" pod valid-pod --patch='{"spec":{"containers":[{"name": "kubernetes-serve-hostname", "image": "nginx"}]}}' + # Post-condition: valid-pod POD has image nginx + kube::test::get_object_assert pods "{{range.items}}{{$image_field}}:{{end}}" 'nginx:' + ### Overwriting an existing label is not permitted # Pre-condition: name is valid-pod kube::test::get_object_assert 'pod valid-pod' "{{${labels_field}.name}}" 'valid-pod' @@ -615,6 +624,15 @@ __EOF__ kube::test::describe_object_assert nodes "127.0.0.1" "Name:" "Labels:" "CreationTimestamp:" "Conditions:" "Addresses:" "Capacity:" "Pods:" + ### --patch update can mark node unschedulable + # Pre-condition: node is schedulable + kube::test::get_object_assert "nodes 127.0.0.1" "{{.spec.unschedulable}}" '' + kubectl update "${kube_flags[@]}" nodes "127.0.0.1" --patch='{"spec":{"unschedulable":true}}' + # Post-condition: node is unschedulable + kube::test::get_object_assert "nodes 127.0.0.1" "{{.spec.unschedulable}}" 'true' + kubectl update "${kube_flags[@]}" nodes "127.0.0.1" --patch='{"spec":{"unschedulable":null}}' + # Post-condition: node is schedulable + kube::test::get_object_assert "nodes 127.0.0.1" "{{.spec.unschedulable}}" '' ########### # Nodes #