diff --git a/hack/make-rules/test-cmd-util.sh b/hack/make-rules/test-cmd-util.sh index 7a32851dfa4..481b5a05695 100755 --- a/hack/make-rules/test-cmd-util.sh +++ b/hack/make-rules/test-cmd-util.sh @@ -2899,8 +2899,27 @@ run_rs_tests() { kubectl scale --current-replicas=3 --replicas=2 replicasets frontend "${kube_flags[@]}" # Post-condition: 2 replicas kube::test::get_object_assert 'rs frontend' "{{$rs_replicas_field}}" '2' + + # Set up three deploy, two deploy have same label + kubectl create -f hack/testdata/scale-deploy-1.yaml "${kube_flags[@]}" + kubectl create -f hack/testdata/scale-deploy-2.yaml "${kube_flags[@]}" + kubectl create -f hack/testdata/scale-deploy-3.yaml "${kube_flags[@]}" + kube::test::get_object_assert 'deploy scale-1' "{{.spec.replicas}}" '1' + kube::test::get_object_assert 'deploy scale-2' "{{.spec.replicas}}" '1' + kube::test::get_object_assert 'deploy scale-3' "{{.spec.replicas}}" '1' + # Test kubectl scale --selector + kubectl scale deploy --replicas=2 -l run=hello + kube::test::get_object_assert 'deploy scale-1' "{{.spec.replicas}}" '2' + kube::test::get_object_assert 'deploy scale-2' "{{.spec.replicas}}" '2' + kube::test::get_object_assert 'deploy scale-3' "{{.spec.replicas}}" '1' + # Test kubectl scale --all + kubectl scale deploy --replicas=3 --all + kube::test::get_object_assert 'deploy scale-1' "{{.spec.replicas}}" '3' + kube::test::get_object_assert 'deploy scale-2' "{{.spec.replicas}}" '3' + kube::test::get_object_assert 'deploy scale-3' "{{.spec.replicas}}" '3' # Clean-up kubectl delete rs frontend "${kube_flags[@]}" + kubectl delete deploy scale-1 scale-2 scale-3 "${kube_flags[@]}" ### Expose replica set as service kubectl create -f hack/testdata/frontend-replicaset.yaml "${kube_flags[@]}" diff --git a/hack/testdata/scale-deploy-1.yaml b/hack/testdata/scale-deploy-1.yaml new file mode 100644 index 00000000000..b1e6ee5a01e --- /dev/null +++ b/hack/testdata/scale-deploy-1.yaml @@ -0,0 +1,25 @@ +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + labels: + run: hello + name: scale-1 +spec: + replicas: 1 + selector: + matchLabels: + run: hello + strategy: + rollingUpdate: + maxSurge: 1 + maxUnavailable: 1 + type: RollingUpdate + template: + metadata: + labels: + run: hello + spec: + containers: + - image: aronchick/hello-node:2.0 + imagePullPolicy: IfNotPresent + name: hello diff --git a/hack/testdata/scale-deploy-2.yaml b/hack/testdata/scale-deploy-2.yaml new file mode 100644 index 00000000000..dc954b5b5cd --- /dev/null +++ b/hack/testdata/scale-deploy-2.yaml @@ -0,0 +1,25 @@ +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + labels: + run: hello + name: scale-2 +spec: + replicas: 1 + selector: + matchLabels: + run: hello + strategy: + rollingUpdate: + maxSurge: 1 + maxUnavailable: 1 + type: RollingUpdate + template: + metadata: + labels: + run: hello + spec: + containers: + - image: aronchick/hello-node:2.0 + imagePullPolicy: IfNotPresent + name: hello diff --git a/hack/testdata/scale-deploy-3.yaml b/hack/testdata/scale-deploy-3.yaml new file mode 100644 index 00000000000..63a7d759335 --- /dev/null +++ b/hack/testdata/scale-deploy-3.yaml @@ -0,0 +1,25 @@ +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + labels: + foo: boo + name: scale-3 +spec: + replicas: 1 + selector: + matchLabels: + run: hello + strategy: + rollingUpdate: + maxSurge: 1 + maxUnavailable: 1 + type: RollingUpdate + template: + metadata: + labels: + run: hello + spec: + containers: + - image: aronchick/hello-node:2.0 + imagePullPolicy: IfNotPresent + name: hello