Merge pull request #70395 from seans3/expose-bug-fix

kubectl: fixes expose bug for workload without selectors
This commit is contained in:
k8s-ci-robot
2018-10-31 14:48:16 -07:00
committed by GitHub
9 changed files with 464 additions and 12 deletions

View File

@@ -1094,6 +1094,34 @@ run_rc_tests() {
# Clean-up
kubectl delete deployment/nginx-deployment "${kube_flags[@]}"
### Expose deployments by creating a service
# Uses deployment selectors for created service
output_message=$(kubectl expose -f test/fixtures/pkg/kubectl/cmd/expose/appsv1deployment.yaml --port 80 2>&1 "${kube_flags[@]}")
# Post-condition: service created for deployment.
kube::test::if_has_string "${output_message}" 'service/expose-test-deployment exposed'
# Clean-up
kubectl delete service/expose-test-deployment "${kube_flags[@]}"
# Uses deployment selectors for created service
output_message=$(kubectl expose -f test/fixtures/pkg/kubectl/cmd/expose/appsv1beta2deployment.yaml --port 80 2>&1 "${kube_flags[@]}")
# Post-condition: service created for deployment.
kube::test::if_has_string "${output_message}" 'service/expose-test-deployment exposed'
# Clean-up
kubectl delete service/expose-test-deployment "${kube_flags[@]}"
# Uses deployment selectors for created service
output_message=$(kubectl expose -f test/fixtures/pkg/kubectl/cmd/expose/appsv1beta1deployment.yaml --port 80 2>&1 "${kube_flags[@]}")
# Post-condition: service created for deployment.
kube::test::if_has_string "${output_message}" 'service/expose-test-deployment exposed'
# Clean-up
kubectl delete service/expose-test-deployment "${kube_flags[@]}"
# Contains no selectors, should fail.
output_message=$(! kubectl expose -f test/fixtures/pkg/kubectl/cmd/expose/appsv1deployment-no-selectors.yaml --port 80 2>&1 "${kube_flags[@]}")
# Post-condition: service created for deployment.
kube::test::if_has_string "${output_message}" 'invalid deployment: no selectors'
# Contains no selectors, should fail.
output_message=$(! kubectl expose -f test/fixtures/pkg/kubectl/cmd/expose/appsv1beta2deployment-no-selectors.yaml --port 80 2>&1 "${kube_flags[@]}")
# Post-condition: service created for deployment.
kube::test::if_has_string "${output_message}" 'invalid deployment: no selectors'
### Expose a deployment as a service
kubectl create -f test/fixtures/doc-yaml/user-guide/deployment.yaml "${kube_flags[@]}"
# Pre-condition: 3 replicas

View File

@@ -0,0 +1,18 @@
apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: expose-test-deployment
labels:
name: expose-test-deployment
spec:
replicas: 3
template:
metadata:
labels:
name: nginx
spec:
containers:
- name: nginx
image: nginx
ports:
- containerPort: 80

View File

@@ -0,0 +1,21 @@
apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: expose-test-deployment
labels:
name: expose-test-deployment
spec:
replicas: 3
selector:
matchLabels:
name: nginx
template:
metadata:
labels:
name: nginx
spec:
containers:
- name: nginx
image: nginx
ports:
- containerPort: 80

View File

@@ -0,0 +1,18 @@
apiVersion: apps/v1beta2
kind: Deployment
metadata:
name: expose-test-deployment
labels:
name: expose-test-deployment
spec:
replicas: 3
template:
metadata:
labels:
name: nginx
spec:
containers:
- name: nginx
image: nginx
ports:
- containerPort: 80

View File

@@ -0,0 +1,21 @@
apiVersion: apps/v1beta2
kind: Deployment
metadata:
name: expose-test-deployment
labels:
name: expose-test-deployment
spec:
replicas: 3
selector:
matchLabels:
name: nginx
template:
metadata:
labels:
name: nginx
spec:
containers:
- name: nginx
image: nginx
ports:
- containerPort: 80

View File

@@ -0,0 +1,18 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: expose-test-deployment
labels:
name: expose-test-deployment
spec:
replicas: 3
template:
metadata:
labels:
name: nginx
spec:
containers:
- name: nginx
image: nginx
ports:
- containerPort: 80

View File

@@ -0,0 +1,21 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: expose-test-deployment
labels:
name: expose-test-deployment
spec:
replicas: 3
selector:
matchLabels:
name: nginx
template:
metadata:
labels:
name: nginx
spec:
containers:
- name: nginx
image: nginx
ports:
- containerPort: 80