kubectl: Support exposing deployments
This commit is contained in:
		@@ -946,6 +946,19 @@ __EOF__
 | 
				
			|||||||
  # TODO: Remove once deployment reaping is implemented
 | 
					  # TODO: Remove once deployment reaping is implemented
 | 
				
			||||||
  kubectl delete rc --all "${kube_flags[@]}"
 | 
					  kubectl delete rc --all "${kube_flags[@]}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  ### Expose a deployment as a service
 | 
				
			||||||
 | 
					  kubectl create -f examples/extensions/deployment.yaml "${kube_flags[@]}"
 | 
				
			||||||
 | 
					  # Pre-condition: 3 replicas
 | 
				
			||||||
 | 
					  kube::test::get_object_assert 'deployment nginx-deployment' "{{$deployment_replicas}}" '3'
 | 
				
			||||||
 | 
					  # Command
 | 
				
			||||||
 | 
					  kubectl expose deployment/nginx-deployment
 | 
				
			||||||
 | 
					  # Post-condition: service exists and exposes deployment port (80)
 | 
				
			||||||
 | 
					  kube::test::get_object_assert 'service nginx-deployment' "{{$port_field}}" '80'
 | 
				
			||||||
 | 
					  # Clean-up
 | 
				
			||||||
 | 
					  kubectl delete deployment/nginx-deployment service/nginx-deployment "${kube_flags[@]}"
 | 
				
			||||||
 | 
					  # TODO: Remove once deployment reaping is implemented
 | 
				
			||||||
 | 
					  kubectl delete rc --all "${kube_flags[@]}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  ### Expose replication controller as service
 | 
					  ### Expose replication controller as service
 | 
				
			||||||
  kubectl create -f examples/guestbook/frontend-controller.yaml "${kube_flags[@]}"
 | 
					  kubectl create -f examples/guestbook/frontend-controller.yaml "${kube_flags[@]}"
 | 
				
			||||||
  # Pre-condition: 3 replicas
 | 
					  # Pre-condition: 3 replicas
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -228,6 +228,8 @@ func NewFactory(optionalClientConfig clientcmd.ClientConfig) *Factory {
 | 
				
			|||||||
					return "", fmt.Errorf("the service has no pod selector set")
 | 
										return "", fmt.Errorf("the service has no pod selector set")
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
				return kubectl.MakeLabels(t.Spec.Selector), nil
 | 
									return kubectl.MakeLabels(t.Spec.Selector), nil
 | 
				
			||||||
 | 
								case *extensions.Deployment:
 | 
				
			||||||
 | 
									return kubectl.MakeLabels(t.Spec.Selector), nil
 | 
				
			||||||
			default:
 | 
								default:
 | 
				
			||||||
				gvk, err := api.Scheme.ObjectKind(object)
 | 
									gvk, err := api.Scheme.ObjectKind(object)
 | 
				
			||||||
				if err != nil {
 | 
									if err != nil {
 | 
				
			||||||
@@ -245,6 +247,8 @@ func NewFactory(optionalClientConfig clientcmd.ClientConfig) *Factory {
 | 
				
			|||||||
				return getPorts(t.Spec), nil
 | 
									return getPorts(t.Spec), nil
 | 
				
			||||||
			case *api.Service:
 | 
								case *api.Service:
 | 
				
			||||||
				return getServicePorts(t.Spec), nil
 | 
									return getServicePorts(t.Spec), nil
 | 
				
			||||||
 | 
								case *extensions.Deployment:
 | 
				
			||||||
 | 
									return getPorts(t.Spec.Template.Spec), nil
 | 
				
			||||||
			default:
 | 
								default:
 | 
				
			||||||
				gvk, err := api.Scheme.ObjectKind(object)
 | 
									gvk, err := api.Scheme.ObjectKind(object)
 | 
				
			||||||
				if err != nil {
 | 
									if err != nil {
 | 
				
			||||||
@@ -330,7 +334,7 @@ func NewFactory(optionalClientConfig clientcmd.ClientConfig) *Factory {
 | 
				
			|||||||
		},
 | 
							},
 | 
				
			||||||
		CanBeExposed: func(kind unversioned.GroupKind) error {
 | 
							CanBeExposed: func(kind unversioned.GroupKind) error {
 | 
				
			||||||
			switch kind {
 | 
								switch kind {
 | 
				
			||||||
			case api.Kind("ReplicationController"), api.Kind("Service"), api.Kind("Pod"):
 | 
								case api.Kind("ReplicationController"), api.Kind("Service"), api.Kind("Pod"), extensions.Kind("Deployment"):
 | 
				
			||||||
				// nothing to do here
 | 
									// nothing to do here
 | 
				
			||||||
			default:
 | 
								default:
 | 
				
			||||||
				return fmt.Errorf("cannot expose a %s", kind)
 | 
									return fmt.Errorf("cannot expose a %s", kind)
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user