mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-09-05 19:21:37 +00:00
Merge pull request #5977 from smarterclayton/allow_expose_to_handle_other_resources
Allow `kubectl expose` to be polymorphic to the source of the selector
This commit is contained in:
@@ -131,11 +131,13 @@ for version in "${kube_api_versions[@]}"; do
|
||||
labels_field="labels"
|
||||
service_selector_field="selector"
|
||||
rc_replicas_field="desiredState.replicas"
|
||||
port_field="port"
|
||||
if [ "$version" = "v1beta3" ]; then
|
||||
id_field="metadata.name"
|
||||
labels_field="metadata.labels"
|
||||
service_selector_field="spec.selector"
|
||||
rc_replicas_field="spec.replicas"
|
||||
port_field="spec.port"
|
||||
fi
|
||||
|
||||
# Passing no arguments to create is an error
|
||||
@@ -475,6 +477,26 @@ __EOF__
|
||||
# Post-condition: 3 replicas
|
||||
kube::test::get_object_assert 'rc frontend-controller' "{{.$rc_replicas_field}}" '3'
|
||||
|
||||
### Expose replication controller as service
|
||||
# Pre-condition: 3 replicas
|
||||
kube::test::get_object_assert 'rc frontend-controller' "{{.$rc_replicas_field}}" '3'
|
||||
# Command
|
||||
kubectl expose rc frontend-controller --port=80 "${kube_flags[@]}"
|
||||
# Post-condition: service exists
|
||||
kube::test::get_object_assert 'service frontend-controller' "{{.$port_field}}" '80'
|
||||
# Command
|
||||
kubectl expose service frontend-controller --port=443 --service-name=frontend-controller-2 "${kube_flags[@]}"
|
||||
# Post-condition: service exists
|
||||
kube::test::get_object_assert 'service frontend-controller-2' "{{.$port_field}}" '443'
|
||||
# Command
|
||||
kubectl create -f examples/limitrange/valid-pod.json "${kube_flags[@]}"
|
||||
kubectl expose pod valid-pod --port=444 --service-name=frontend-controller-3 "${kube_flags[@]}"
|
||||
# Post-condition: service exists
|
||||
kube::test::get_object_assert 'service frontend-controller-3' "{{.$port_field}}" '444'
|
||||
# Cleanup services
|
||||
kubectl delete pod valid-pod "${kube_flags[@]}"
|
||||
kubectl delete service frontend-controller{,-2,-3} "${kube_flags[@]}"
|
||||
|
||||
### Delete replication controller with id
|
||||
# Pre-condition: frontend replication controller is running
|
||||
kube::test::get_object_assert rc "{{range.items}}{{.$id_field}}:{{end}}" 'frontend-controller:'
|
||||
|
Reference in New Issue
Block a user