kubernetes/pkg/kubectl/cmd
Kubernetes Submit Queue 05192d9d57 Merge pull request #33319 from juanvallejo/jvallejo/add-option-to-set-nodeport
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
2016-10-05 15:00:32 -07:00
..
config clean up the tmp Cert data 2016-09-27 23:17:47 +08:00
rollout Merge pull request #34106 from kargakis/rollout-status-watch-flag 2016-10-05 13:09:01 -07:00
set Merge pull request #31276 from juanvallejo/jvallejo_update-dry-run-create 2016-09-26 16:01:17 -07:00
templates update kubectl help output for better organization 2016-08-20 08:03:39 +08:00
util Merge pull request #33319 from juanvallejo/jvallejo/add-option-to-set-nodeport 2016-10-05 15:00:32 -07:00
annotate_test.go Merge pull request #34020 from juanvallejo/jvallejo/allow-empty-annotation-values 2016-10-05 11:48:02 -07:00
annotate.go Add local option to annotate 2016-10-05 14:39:56 +10:00
apiversions.go convert more command to use a generated clientset 2016-09-12 07:38:34 -04:00
apply_test.go Merge pull request #31235 from ping035627/ping035627-patch-0823-1 2016-09-26 18:02:49 -07:00
apply.go allow kubectl -f to filter by selector 2016-09-30 00:42:35 -07:00
attach_test.go convert more command to use a generated clientset 2016-09-12 07:38:34 -04:00
attach.go add ClientSet to factory to remove non-generated client 2016-09-07 09:44:01 -04:00
autoscale.go Merge pull request #31276 from juanvallejo/jvallejo_update-dry-run-create 2016-09-26 16:01:17 -07:00
clusterinfo_dump_test.go Remove Codec from ContentConfig. 2016-07-08 13:53:09 +02:00
clusterinfo_dump.go convert more command to use a generated clientset 2016-09-12 07:38:34 -04:00
clusterinfo.go make --include-extended-apis deprecated and remove plumbing 2016-09-16 16:05:52 -04:00
cmd_test.go Change minion to node 2016-09-28 10:53:30 -07:00
cmd.go add check to NewCmdExec before printing suggestion 2016-09-28 18:02:33 -04:00
completion.go Fix named pipe in kubectl zsh completion 2016-08-23 01:42:05 +08:00
convert.go Merge pull request #32894 from deads2k/cli-01-remove-arg 2016-09-19 21:11:04 -07:00
create_configmap_test.go Remove Codec from ContentConfig. 2016-07-08 13:53:09 +02:00
create_configmap.go fix issue #27454: replace flag type StringSlice with StringArray in configMap 2016-09-27 19:21:46 +08:00
create_deployment_test.go Add "create deployment" sub-command 2016-08-08 13:24:30 +10:00
create_deployment.go add alias deploy for deployment 2016-09-06 11:00:50 +08:00
create_namespace_test.go Remove Codec from ContentConfig. 2016-07-08 13:53:09 +02:00
create_namespace.go Merge pull request #26977 from joe2far/fix-help-strings 2016-07-07 00:12:22 -07:00
create_quota_test.go Add --scopes to kubectl-create-quota and add tests 2016-07-26 14:12:35 +02:00
create_quota.go use dedent for create_quota.go 2016-09-07 09:09:12 +08:00
create_secret_test.go Remove Codec from ContentConfig. 2016-07-08 13:53:09 +02:00
create_secret.go Merge pull request #26977 from joe2far/fix-help-strings 2016-07-07 00:12:22 -07:00
create_service_test.go Add "create service" sub-commands 2016-08-08 12:31:21 +10:00
create_service.go make portallocator.ErrNotInRange a type 2016-10-04 13:19:24 -04:00
create_serviceaccount_test.go Remove Codec from ContentConfig. 2016-07-08 13:53:09 +02:00
create_serviceaccount.go Merge pull request #26977 from joe2far/fix-help-strings 2016-07-07 00:12:22 -07:00
create_test.go Make kubectl create use dynamic clients 2016-08-15 22:07:54 -07:00
create.go Merge pull request #31276 from juanvallejo/jvallejo_update-dry-run-create 2016-09-26 16:01:17 -07:00
delete_test.go Fixes #30562: Refactor kubectl command options to use common struct for common file params 2016-09-12 11:01:37 -07:00
delete.go Merge pull request #31276 from juanvallejo/jvallejo_update-dry-run-create 2016-09-26 16:01:17 -07:00
describe_test.go change to stderr 2016-08-23 14:51:56 +08:00
describe.go Change minion to node 2016-09-28 10:53:30 -07:00
drain_test.go convert more command to use a generated clientset 2016-09-12 07:38:34 -04:00
drain.go Merge pull request #33154 from krmayankk/drain 2016-09-28 04:55:09 -07:00
edit.go Merge pull request #31276 from juanvallejo/jvallejo_update-dry-run-create 2016-09-26 16:01:17 -07:00
exec_test.go convert more command to use a generated clientset 2016-09-12 07:38:34 -04:00
exec.go add check to NewCmdExec before printing suggestion 2016-09-28 18:02:33 -04:00
explain.go make --include-extended-apis deprecated and remove plumbing 2016-09-16 16:05:52 -04:00
expose_test.go update PrintSuccess message when using --dry-run 2016-09-15 10:11:21 -04:00
expose.go Merge pull request #31276 from juanvallejo/jvallejo_update-dry-run-create 2016-09-26 16:01:17 -07:00
get_test.go Merge pull request #30250 from krousey/kctl_dynamic 2016-08-17 14:48:56 -07:00
get.go Switch kubectl to use watch.Until 2016-10-03 17:17:41 +02:00
help.go Fix kubectl help command 2016-07-28 17:47:03 +03:00
label_test.go Merge pull request #34020 from juanvallejo/jvallejo/allow-empty-annotation-values 2016-10-05 11:48:02 -07:00
label.go Merge pull request #34020 from juanvallejo/jvallejo/allow-empty-annotation-values 2016-10-05 11:48:02 -07:00
logs_test.go Remove Codec from ContentConfig. 2016-07-08 13:53:09 +02:00
logs.go make --include-extended-apis deprecated and remove plumbing 2016-09-16 16:05:52 -04:00
options.go update kubectl help output for better organization 2016-08-20 08:03:39 +08:00
patch_test.go Remove Codec from ContentConfig. 2016-07-08 13:53:09 +02:00
patch.go Merge pull request #31276 from juanvallejo/jvallejo_update-dry-run-create 2016-09-26 16:01:17 -07:00
portforward_test.go convert more command to use a generated clientset 2016-09-12 07:38:34 -04:00
portforward.go convert more command to use a generated clientset 2016-09-12 07:38:34 -04:00
proxy.go Remove "All rights reserved" from all the headers. 2016-06-29 17:47:36 -07:00
replace_test.go Add namespace error checking if a resource is not found. 2016-09-14 06:51:36 -07:00
replace.go Merge pull request #31276 from juanvallejo/jvallejo_update-dry-run-create 2016-09-26 16:01:17 -07:00
rollingupdate_test.go Remove Codec from ContentConfig. 2016-07-08 13:53:09 +02:00
rollingupdate.go Merge pull request #31276 from juanvallejo/jvallejo_update-dry-run-create 2016-09-26 16:01:17 -07:00
run_test.go Make sure --record=false is acknowledged when passed to commands 2016-07-15 11:24:05 -04:00
run.go kubectl: return exit status appropriately after running watch.Until 2016-10-03 18:54:53 +02:00
scale.go Merge pull request #31276 from juanvallejo/jvallejo_update-dry-run-create 2016-09-26 16:01:17 -07:00
stop.go Merge pull request #32894 from deads2k/cli-01-remove-arg 2016-09-19 21:11:04 -07:00
taint_test.go Rectify kubectl error output 2016-08-20 15:58:10 +02:00
taint.go Merge pull request #31276 from juanvallejo/jvallejo_update-dry-run-create 2016-09-26 16:01:17 -07:00
top_node_test.go convert rest of kubectl to generated clients 2016-09-12 08:22:34 -04:00
top_node.go Merge pull request #32504 from kargakis/top-pod-fixes 2016-09-14 05:35:42 -07:00
top_pod_test.go convert rest of kubectl to generated clients 2016-09-12 08:22:34 -04:00
top_pod.go Merge pull request #32504 from kargakis/top-pod-fixes 2016-09-14 05:35:42 -07:00
top_test.go convert rest of kubectl to generated clients 2016-09-12 08:22:34 -04:00
top.go Implement kubectl top command with subcommands. 2016-08-11 17:25:18 +02:00
version.go convert more command to use a generated clientset 2016-09-12 07:38:34 -04:00