mirror of https://github.com/k3s-io/k3s
kubectl: Support exposing deployments
parent
ab93bbb135
commit
08d8843a9c
|
@ -946,6 +946,19 @@ __EOF__
|
|||
# TODO: Remove once deployment reaping is implemented
|
||||
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
|
||||
kubectl create -f examples/guestbook/frontend-controller.yaml "${kube_flags[@]}"
|
||||
# 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 kubectl.MakeLabels(t.Spec.Selector), nil
|
||||
case *extensions.Deployment:
|
||||
return kubectl.MakeLabels(t.Spec.Selector), nil
|
||||
default:
|
||||
gvk, err := api.Scheme.ObjectKind(object)
|
||||
if err != nil {
|
||||
|
@ -245,6 +247,8 @@ func NewFactory(optionalClientConfig clientcmd.ClientConfig) *Factory {
|
|||
return getPorts(t.Spec), nil
|
||||
case *api.Service:
|
||||
return getServicePorts(t.Spec), nil
|
||||
case *extensions.Deployment:
|
||||
return getPorts(t.Spec.Template.Spec), nil
|
||||
default:
|
||||
gvk, err := api.Scheme.ObjectKind(object)
|
||||
if err != nil {
|
||||
|
@ -330,7 +334,7 @@ func NewFactory(optionalClientConfig clientcmd.ClientConfig) *Factory {
|
|||
},
|
||||
CanBeExposed: func(kind unversioned.GroupKind) error {
|
||||
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
|
||||
default:
|
||||
return fmt.Errorf("cannot expose a %s", kind)
|
||||
|
|
Loading…
Reference in New Issue