• Kubernetes Submit Queue's avatar
    Merge pull request #33319 from juanvallejo/jvallejo/add-option-to-set-nodeport · 05192d9d
    Kubernetes Submit Queue authored
    Automatic merge from submit-queue
    
    Add option to set a service nodeport
    
    **Release note**:
    ```release-note
    Add kubectl --node-port option for specifying the service nodeport
    ```
    
    This patch adds the option to set a nodeport when creating a NodePort
    service. In case of a port allocation error due to a specified port
    being out of the valid range, the error now includes the valid
    range. If a `--node-port` value is not specified, it defaults to zero, in
    which case the allocator will default to its current behavior of
    assigning an available port.
    
    This patch also adds a new helper function in `cmd/util/helpers.go` to
    retrieve `Int32` cobra flags.
    
    **Example**
    ```
    # create a nodeport service with an invalid port
    $ kubectl create service nodeport mynodeport --tcp=8080:7777 --node-port=1
    The Service "mynodeport" is invalid: spec.ports[0].nodePort: Invalid
    value: 1: provided port is not in the valid range. Valid ports range
    from 30000-32767
    
    # create a nodeport service with a valid port
    $ kubectl create service nodeport mynodeport --tcp=8080:7777 --node-port=30000
    service "mynodeport" created
    
    # create a nodeport service with a port already in use
    $ kubectl create service nodeport mynodeport --tcp=8080:7777 --node-port=30000
    The Service "mynodeport" is invalid: spec.ports[0].nodePort: Invalid value: 3000: provided port is already allocated
    
    $ kubectl describe service mynodeport
    Name:                   mynodeport
    Namespace:              default
    Labels:                 app=mynodeport
    Selector:               app=mynodeport
    Type:                   NodePort
    IP:                     172.30.81.254
    Port:                   8080-7777       8080/TCP
    NodePort:               8080-7777       30000/TCP
    Endpoints:              <none>
    Session Affinity:       None
    No events.
    ```
    
    @fabianofranz
    05192d9d
Name
Last commit
Last update
..
config Loading commit data...
rollout Loading commit data...
set Loading commit data...
templates Loading commit data...
util Loading commit data...
annotate.go Loading commit data...
annotate_test.go Loading commit data...
apiversions.go Loading commit data...
apply.go Loading commit data...
apply_test.go Loading commit data...
attach.go Loading commit data...
attach_test.go Loading commit data...
autoscale.go Loading commit data...
clusterinfo.go Loading commit data...
clusterinfo_dump.go Loading commit data...
clusterinfo_dump_test.go Loading commit data...
cmd.go Loading commit data...
cmd_test.go Loading commit data...
completion.go Loading commit data...
convert.go Loading commit data...
create.go Loading commit data...
create_configmap.go Loading commit data...
create_configmap_test.go Loading commit data...
create_deployment.go Loading commit data...
create_deployment_test.go Loading commit data...
create_namespace.go Loading commit data...
create_namespace_test.go Loading commit data...
create_quota.go Loading commit data...
create_quota_test.go Loading commit data...
create_secret.go Loading commit data...
create_secret_test.go Loading commit data...
create_service.go Loading commit data...
create_service_test.go Loading commit data...
create_serviceaccount.go Loading commit data...
create_serviceaccount_test.go Loading commit data...
create_test.go Loading commit data...
delete.go Loading commit data...
delete_test.go Loading commit data...
describe.go Loading commit data...
describe_test.go Loading commit data...
drain.go Loading commit data...
drain_test.go Loading commit data...
edit.go Loading commit data...
exec.go Loading commit data...
exec_test.go Loading commit data...
explain.go Loading commit data...
expose.go Loading commit data...
expose_test.go Loading commit data...
get.go Loading commit data...
get_test.go Loading commit data...
help.go Loading commit data...
label.go Loading commit data...
label_test.go Loading commit data...
logs.go Loading commit data...
logs_test.go Loading commit data...
options.go Loading commit data...
patch.go Loading commit data...
patch_test.go Loading commit data...
portforward.go Loading commit data...
portforward_test.go Loading commit data...
proxy.go Loading commit data...
replace.go Loading commit data...
replace_test.go Loading commit data...
rollingupdate.go Loading commit data...
rollingupdate_test.go Loading commit data...
run.go Loading commit data...
run_test.go Loading commit data...
scale.go Loading commit data...
stop.go Loading commit data...
taint.go Loading commit data...
taint_test.go Loading commit data...
top.go Loading commit data...
top_node.go Loading commit data...
top_node_test.go Loading commit data...
top_pod.go Loading commit data...
top_pod_test.go Loading commit data...
top_test.go Loading commit data...
version.go Loading commit data...