Browse code

Fix command descriptions and alignment

Clayton Coleman authored on 2015/07/13 09:04:13
Showing 51 changed files
... ...
@@ -5,13 +5,13 @@ toc::[]
5 5
 
6 6
 
7 7
 == oc build-logs
8
-Show container logs from the build container
8
+Show logs from a build
9 9
 
10 10
 ====
11 11
 
12 12
 [options="nowrap"]
13 13
 ----
14
-  // Stream logs from container to stdout
14
+  // Stream logs from container
15 15
   $ openshift cli build-logs 566bed879d2d
16 16
 ----
17 17
 ====
... ...
@@ -162,23 +162,23 @@ Delete a resource by filename, stdin, resource and name, or by resources and lab
162 162
 
163 163
 
164 164
 == oc deploy
165
-View, start, cancel, or retry deployments
165
+View, start, cancel, or retry a deployment
166 166
 
167 167
 ====
168 168
 
169 169
 [options="nowrap"]
170 170
 ----
171
-  // Display the latest deployment for the 'database' DeploymentConfig
171
+  // Display the latest deployment for the 'database' deployment config
172 172
   $ openshift cli deploy database
173 173
 
174
-  // Start a new deployment based on the 'database' DeploymentConfig
174
+  // Start a new deployment based on the 'database'
175 175
   $ openshift cli deploy database --latest
176 176
 
177
-  // Retry the latest failed deployment based on the 'frontend' DeploymentConfig
177
+  // Retry the latest failed deployment based on 'frontend'
178 178
   // The deployer pod and any hook pods are deleted for the latest failed deployment
179 179
   $ openshift cli deploy frontend --retry
180 180
 
181
-  // Cancel the in-progress deployment based on the 'frontend' DeploymentConfig
181
+  // Cancel the in-progress deployment based on 'frontend'
182 182
   $ openshift cli deploy frontend --cancel
183 183
 ----
184 184
 ====
... ...
@@ -536,8 +536,8 @@ Process a template into list of resources
536 536
 
537 537
 [options="nowrap"]
538 538
 ----
539
-  // Convert template.json file into resource list
540
-  $ openshift cli process -f template.json
539
+  // Convert template.json file into resource list and pass to create
540
+  $ openshift cli process -f template.json | openshift cli create -f -
541 541
 
542 542
   // Process template while passing a user-defined label
543 543
   $ openshift cli process -f template.json -l name=mytemplate
... ...
@@ -284,7 +284,7 @@ echo "templates: ok"
284 284
 [ "$(openshift start kubernetes 2>&1 | grep 'Kubernetes server components')" ]
285 285
 # check deprecated admin cmds for backward compatibility
286 286
 [ "$(oadm create-master-certs -h 2>&1 | grep 'Create keys and certificates')" ]
287
-[ "$(oadm create-key-pair -h 2>&1 | grep 'Create a 2048-bit RSA key pair')" ]
287
+[ "$(oadm create-key-pair -h 2>&1 | grep 'Create an RSA key pair')" ]
288 288
 [ "$(oadm create-server-cert -h 2>&1 | grep 'Create a key and server certificate')" ]
289 289
 [ "$(oadm create-signer-cert -h 2>&1 | grep 'Create a self-signed CA')" ]
290 290
 
... ...
@@ -629,7 +629,7 @@ oc delete bc/ruby-sample-build-validtag
629 629
 oc delete bc/ruby-sample-build-invalidtag
630 630
 
631 631
 # Test admin manage-node operations
632
-[ "$(openshift admin manage-node --help 2>&1 | grep 'Manage node operations')" ]
632
+[ "$(openshift admin manage-node --help 2>&1 | grep 'Manage nodes')" ]
633 633
 [ "$(oadm manage-node --selector='' --schedulable=true | grep --text 'Ready' | grep -v 'Sched')" ]
634 634
 oc create -f examples/hello-openshift/hello-pod.json
635 635
 #[ "$(oadm manage-node --list-pods | grep 'hello-openshift' | grep -E '(unassigned|assigned)')" ]
... ...
@@ -23,7 +23,8 @@ import (
23 23
 	"github.com/openshift/origin/pkg/version"
24 24
 )
25 25
 
26
-const adminLong = `OpenShift Administrative Commands
26
+const adminLong = `
27
+OpenShift Administrative Commands
27 28
 
28 29
 Commands for managing an OpenShift cluster are exposed here. Many administrative
29 30
 actions involve interaction with the OpenShift client as well.`
... ...
@@ -15,13 +15,15 @@ import (
15 15
 const (
16 16
 	ManageNodeCommandName = "manage-node"
17 17
 
18
-	manageNodeLong = `Manage node operations
18
+	manageNodeLong = `
19
+Manage nodes
20
+
21
+This command provides common operations on nodes for administrators.
19 22
 
20 23
 schedulable: Marking node schedulable will allow pods to be schedulable on the node and
21 24
 	     marking node unschedulable will block pods to be scheduled on the node.
22 25
 
23
-evacuate: Migrate all/selected pods. There is an option to delete the bare pods.
24
-          It can list all pods that will be migrated before performing evacuation.
26
+evacuate: Migrate all/selected pod on the provided nodes.
25 27
 
26 28
 list-pods: List all/selected pods on given/selected nodes. It can list the output in json/yaml format.`
27 29
 
... ...
@@ -32,12 +32,12 @@ type NewProjectOptions struct {
32 32
 	AdminUser string
33 33
 }
34 34
 
35
-const newProjectLong = `Create a new project
35
+const newProjectLong = `
36
+Create a new project
36 37
 
37 38
 Use this command to create a project. You may optionally specify metadata about the project,
38 39
 an admin user (and role, if you want to use a non-default admin role), and a node selector
39
-to restrict which nodes pods in this project can be scheduled to.
40
-`
40
+to restrict which nodes pods in this project can be scheduled to.`
41 41
 
42 42
 // NewCmdNewProject implements the OpenShift cli new-project command
43 43
 func NewCmdNewProject(name, fullName string, f *clientcmd.Factory, out io.Writer) *cobra.Command {
... ...
@@ -22,7 +22,8 @@ import (
22 22
 )
23 23
 
24 24
 const (
25
-	registryLong = `Install or configure a Docker registry for OpenShift
25
+	registryLong = `
26
+Install or configure a Docker registry for OpenShift
26 27
 
27 28
 This command sets up a Docker registry integrated with OpenShift to provide notifications when
28 29
 images are pushed. With no arguments, the command will check for the existing registry service
... ...
@@ -27,7 +27,8 @@ import (
27 27
 )
28 28
 
29 29
 const (
30
-	routerLong = `Install or configure an OpenShift router
30
+	routerLong = `
31
+Install or configure an OpenShift router
31 32
 
32 33
 This command helps to setup an OpenShift router to take edge traffic and balance it to
33 34
 your application. With no arguments, the command will check for an existing router
... ...
@@ -23,7 +23,8 @@ import (
23 23
 	"github.com/openshift/origin/pkg/version"
24 24
 )
25 25
 
26
-const cliLong = `OpenShift Client.
26
+const cliLong = `
27
+OpenShift Client
27 28
 
28 29
 The OpenShift client exposes commands for managing your applications, as well as lower level
29 30
 tools to interact with each component of your system.
... ...
@@ -17,11 +17,14 @@ import (
17 17
 )
18 18
 
19 19
 const (
20
-	buildLogsLong = `Retrieve logs from the containers where the build occurred.
20
+	buildLogsLong = `
21
+Retrieve logs for a build
21 22
 
22
-NOTE: This command may be moved in the future.`
23
+This command displays the log for the provided build. If the pod that ran the build has been deleted logs
24
+will no longer be available. If the build has not yet completed, the build logs will be streamed until the
25
+build completes or fails.`
23 26
 
24
-	buildLogsExample = `  // Stream logs from container to stdout
27
+	buildLogsExample = `  // Stream logs from container
25 28
   $ %[1]s build-logs 566bed879d2d`
26 29
 )
27 30
 
... ...
@@ -30,7 +33,7 @@ func NewCmdBuildLogs(fullName string, f *clientcmd.Factory, out io.Writer) *cobr
30 30
 	opts := api.BuildLogOptions{}
31 31
 	cmd := &cobra.Command{
32 32
 		Use:     "build-logs BUILD",
33
-		Short:   "Show container logs from the build container",
33
+		Short:   "Show logs from a build",
34 34
 		Long:    buildLogsLong,
35 35
 		Example: fmt.Sprintf(buildLogsExample, fullName),
36 36
 		Run: func(cmd *cobra.Command, args []string) {
... ...
@@ -15,7 +15,11 @@ import (
15 15
 )
16 16
 
17 17
 const (
18
-	cancelBuildLong = `Cancels a pending or running build.`
18
+	cancelBuildLong = `
19
+Cancels a pending or running build
20
+
21
+This command requests a graceful shutdown of the running build. There may be a delay between requesting 
22
+the build and the time the build is terminated.`
19 23
 
20 24
 	cancelBuildExample = `  // Cancel the build with the given name
21 25
   $ %[1]s cancel-build 1da32cvq
... ...
@@ -14,7 +14,12 @@ import (
14 14
 )
15 15
 
16 16
 const (
17
-	configLong = `Manages the OpenShift config files.
17
+	configLong = `
18
+Manage the OpenShift client config files
19
+
20
+The OpenShift client stores configuration in the current user's home directory (under the .kube directory as
21
+config). When you login the first time, a new config file is created, and subsequent project changes with the
22
+'project' command will set the current context. These subcommands allow you to manage the config directly.
18 23
 
19 24
 Reference: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/kubeconfig-file.md`
20 25
 
... ...
@@ -38,23 +38,42 @@ type DeployOptions struct {
38 38
 }
39 39
 
40 40
 const (
41
-	deployLong = `View, start, cancel, or retry deployments.
41
+	deployLong = `
42
+View, start, cancel, or retry a deployment
42 43
 
43
-If no options are given, view the latest deployment.
44
+This command allows you to control a deployment config. Each individual deployment is exposed
45
+as a new replication controller, and the deployment process manages scaling down old deployments
46
+and scaling up new ones. You can rollback to any previous deployment, or even scale multiple
47
+deployments up at the same time.
44 48
 
45
-NOTE: This command is still under active development and is subject to change.`
49
+There are several deployment strategies defined:
46 50
 
47
-	deployExample = `  // Display the latest deployment for the 'database' DeploymentConfig
51
+* Rolling (default) - scales up the new deployment in stages, gradually reducing the number
52
+  of old deployments. If one of the new deployed pods never becomes "ready", the new deployment
53
+  will be rolled back (scaled down to zero). Use when your application can tolerate two versions
54
+  of code running at the same time (many web applications, scalable databases)
55
+* Recreate - scales the old deployment down to zero, then scales the new deployment up to full.
56
+  Use when your application cannot tolerate two versions of code running at the same time
57
+* Custom - run your own deployment process inside a Docker container using your own scripts.
58
+
59
+If a deployment fails, you may opt to retry it (if the error was transient). Some deployments may
60
+never successfully complete - in which case you can use the '--latest' flag to force a redeployment.
61
+When rolling back to a previous deployment, a new deployment will be created with an identical copy
62
+of your config at the latest position.
63
+
64
+If no options are given, shows information about the latest deployment.`
65
+
66
+	deployExample = `  // Display the latest deployment for the 'database' deployment config
48 67
   $ %[1]s deploy database
49 68
 
50
-  // Start a new deployment based on the 'database' DeploymentConfig
69
+  // Start a new deployment based on the 'database'
51 70
   $ %[1]s deploy database --latest
52 71
 
53
-  // Retry the latest failed deployment based on the 'frontend' DeploymentConfig
72
+  // Retry the latest failed deployment based on 'frontend'
54 73
   // The deployer pod and any hook pods are deleted for the latest failed deployment
55 74
   $ %[1]s deploy frontend --retry
56 75
 
57
-  // Cancel the in-progress deployment based on the 'frontend' DeploymentConfig
76
+  // Cancel the in-progress deployment based on 'frontend'
58 77
   $ %[1]s deploy frontend --cancel`
59 78
 )
60 79
 
... ...
@@ -66,7 +85,7 @@ func NewCmdDeploy(fullName string, f *clientcmd.Factory, out io.Writer) *cobra.C
66 66
 
67 67
 	cmd := &cobra.Command{
68 68
 		Use:     "deploy DEPLOYMENTCONFIG",
69
-		Short:   "View, start, cancel, or retry deployments",
69
+		Short:   "View, start, cancel, or retry a deployment",
70 70
 		Long:    deployLong,
71 71
 		Example: fmt.Sprintf(deployExample, fullName),
72 72
 		Run: func(cmd *cobra.Command, args []string) {
... ...
@@ -24,7 +24,8 @@ import (
24 24
 )
25 25
 
26 26
 const (
27
-	editLong = `Edit a resource from the default editor.
27
+	editLong = `
28
+Edit a resource from the default editor
28 29
 
29 30
 The edit command allows you to directly edit any API resource you can retrieve via the
30 31
 command line tools. It will open the editor defined by your OC_EDITOR, GIT_EDITOR,
... ...
@@ -18,7 +18,8 @@ import (
18 18
 )
19 19
 
20 20
 const (
21
-	envLong = `Update environment variables on a pod template
21
+	envLong = `
22
+Update environment variables on a pod template
22 23
 
23 24
 List environment variable definitions in one or more pods or pod templates.
24 25
 Add, update, or remove container environment variable definitions in one or
... ...
@@ -20,7 +20,8 @@ import (
20 20
 )
21 21
 
22 22
 const (
23
-	exportLong = `Export resources so they can be used elsewhere
23
+	exportLong = `
24
+Export resources so they can be used elsewhere
24 25
 
25 26
 The export command makes it easy to take existing objects and convert them to configuration files
26 27
 for backups or for creating elsewhere in the cluster. Fields that cannot be specified on create
... ...
@@ -15,10 +15,11 @@ import (
15 15
 )
16 16
 
17 17
 const (
18
-	exposeLong = `Expose containers internally as services or externally via routes.
18
+	exposeLong = `
19
+Expose containers internally as services or externally via routes
19 20
 
20 21
 There is also the ability to expose a deployment configuration, replication controller, service, or pod
21
-as a new service on a specified port. If no labels are specified, the new object will re-use the 
22
+as a new service on a specified port. If no labels are specified, the new object will re-use the
22 23
 labels from the object it exposes.`
23 24
 
24 25
 	exposeExample = `  // Create a route based on service nginx. The new route will re-use nginx's labels
... ...
@@ -18,7 +18,8 @@ import (
18 18
 )
19 19
 
20 20
 const (
21
-	importImageLong = `Import tag and image information from an external Docker image repository.
21
+	importImageLong = `
22
+Import tag and image information from an external Docker image repository
22 23
 
23 24
 Only image streams that have a value set for spec.dockerImageRepository may
24 25
 have tag and image information imported.`
... ...
@@ -19,7 +19,8 @@ import (
19 19
 )
20 20
 
21 21
 const (
22
-	loginLong = `Log in to an OpenShift server and save config for future use
22
+	loginLong = `
23
+Log in to an OpenShift server and save login for subsequent use
23 24
 
24 25
 First-time users of the OpenShift client should run this command to connect to a server,
25 26
 establish an authenticated session, and save connection to the configuration file. The
... ...
@@ -26,7 +26,8 @@ type LogoutOptions struct {
26 26
 }
27 27
 
28 28
 const (
29
-	logoutLong = `Log out of the active session out by clearing saved tokens
29
+	logoutLong = `
30
+Log out of the active session out by clearing saved tokens
30 31
 
31 32
 An authentication token is stored in the config file after login - this command will delete
32 33
 that token on the server, and then remove the token from the configuration file.
... ...
@@ -29,7 +29,8 @@ type usage interface {
29 29
 var errExit = fmt.Errorf("exit directly")
30 30
 
31 31
 const (
32
-	newAppLong = `Create a new application in OpenShift by specifying source code, templates, and/or images.
32
+	newAppLong = `
33
+Create a new application in OpenShift by specifying source code, templates, and/or images
33 34
 
34 35
 This command will try to build up the components of an application using images, templates,
35 36
 or code that has a public repository. It will lookup the images on the local Docker installation
... ...
@@ -15,7 +15,8 @@ import (
15 15
 )
16 16
 
17 17
 const (
18
-	newBuildLong = `Create a new build in OpenShift by specifying source code.
18
+	newBuildLong = `
19
+Create a new build in OpenShift by specifying source code
19 20
 
20 21
 This command will try to create a build configuration for your application using images and
21 22
 code that has a public repository. It will lookup the images on the local Docker installation
... ...
@@ -23,12 +23,18 @@ import (
23 23
 )
24 24
 
25 25
 const (
26
-	processLong = `Process template into a list of resources specified in filename or stdin
26
+	processLong = `
27
+Process template into a list of resources specified in filename or stdin
27 28
 
28
-JSON and YAML formats are accepted.`
29
+Templates allow parameterization of resources prior to being sent to the server for creation or
30
+update. Templates have "parameters", which may either be generated on creation or set by the user,
31
+as well as metadata describing the template.
29 32
 
30
-	processExample = `  // Convert template.json file into resource list
31
-  $ %[1]s process -f template.json
33
+The output of the process command is always a list of one or more resources. You may pipe the
34
+output to the create command over STDIN (using the '-f -' option) or redirect it to a file.`
35
+
36
+	processExample = `  // Convert template.json file into resource list and pass to create
37
+  $ %[1]s process -f template.json | %[1]s create -f -
32 38
 
33 39
   // Process template while passing a user-defined label
34 40
   $ %[1]s process -f template.json -l name=mytemplate
... ...
@@ -34,7 +34,8 @@ type ProjectOptions struct {
34 34
 }
35 35
 
36 36
 const (
37
-	projectLong = `Switch to another project and make it the default in your configuration
37
+	projectLong = `
38
+Switch to another project and make it the default in your configuration
38 39
 
39 40
 If no project was specified on the command line, display information about the current active
40 41
 project. Since you can use this command to connect to projects on different servers, you will
... ...
@@ -29,13 +29,14 @@ type NewProjectOptions struct {
29 29
 }
30 30
 
31 31
 const (
32
-	requestProjectLong = `Create a new project for yourself in OpenShift with you as the project admin.
32
+	requestProjectLong = `
33
+Create a new project for yourself in OpenShift
33 34
 
34
-Assuming your cluster admin has granted you permission, this command will 
35
-create a new project for you and assign you as the project admin.  You must 
36
-be logged in, so you might have to run %[1]s first.
35
+Assuming your cluster admin has granted you permission, this command will create a new project
36
+for you and assign you as the project admin. If your administrator has not given you permission to
37
+create your own projects, contact your system administrator.
37 38
 
38
-After your project is created you can switch to it using %[2]s <project name>.`
39
+After your project is created it will be made your default project in your config.`
39 40
 
40 41
 	requestProjectExample = `  // Create a new project with minimal information
41 42
   $ %[1]s web-team-dev
... ...
@@ -24,7 +24,8 @@ import (
24 24
 )
25 25
 
26 26
 const (
27
-	rollbackLong = `Revert part of an application back to a previous deployment.
27
+	rollbackLong = `
28
+Revert an application back to a previous deployment
28 29
 
29 30
 When you run this command your deployment configuration will be updated to
30 31
 match a previous deployment. By default only the pod and container
... ...
@@ -26,7 +26,8 @@ import (
26 26
 )
27 27
 
28 28
 const (
29
-	startBuildLong = `Start a build.
29
+	startBuildLong = `
30
+Start a build
30 31
 
31 32
 This command starts a build for the provided BuildConfig or re-runs an existing build using
32 33
 --from-build=<name>. You may pass the --follow flag to see output from the build.`
... ...
@@ -13,8 +13,12 @@ import (
13 13
 )
14 14
 
15 15
 const (
16
-	statusLong = `Show a high level overview of the current project. Links components by their relationships.
17
-For more information about individual items, use the describe command (e.g. oc describe buildConfig,
16
+	statusLong = `
17
+Show a high level overview of the current project
18
+
19
+This command will show services, deployment configs, build configurations, and active deployments.
20
+If you have any misconfigured components information about them will be shown. For more information
21
+about individual items, use the describe command (e.g. oc describe buildConfig,
18 22
 oc describe deploymentConfig, oc describe service).`
19 23
 
20 24
 	statusExample = `  // Show an overview of the current project
... ...
@@ -17,7 +17,8 @@ import (
17 17
 )
18 18
 
19 19
 const (
20
-	tagLong = `Tag existing images into image streams
20
+	tagLong = `
21
+Tag existing images into image streams
21 22
 
22 23
 The tag command allows you to take an existing tag or image from an image
23 24
 stream, or a Docker image pull spec, and set it as the most recent image for a
... ...
@@ -24,7 +24,8 @@ import (
24 24
 )
25 25
 
26 26
 const (
27
-	volumeLong = `Update volumes on a pod template
27
+	volumeLong = `
28
+Update volumes on a pod template
28 29
 
29 30
 This command can add, update or remove volumes from containers for any object
30 31
 that has a pod template (replication controllers or deployment configurations).
... ...
@@ -15,7 +15,8 @@ import (
15 15
 
16 16
 const WhoAmIRecommendedCommandName = "whoami"
17 17
 
18
-const whoamiLong = `Show information about the current session
18
+const whoamiLong = `
19
+Show information about the current session
19 20
 
20 21
 The default options for this command will return the currently authenticated user name
21 22
 or an empty string.  Other flags support returning the currently used token or the
... ...
@@ -24,7 +24,7 @@ func tab(original string) string {
24 24
 }
25 25
 
26 26
 const (
27
-	getLong = `Display one or many resources.
27
+	getLong = `Display one or many resources
28 28
 
29 29
 Possible resources include builds, buildConfigs, services, pods, etc.`
30 30
 
... ...
@@ -54,7 +54,7 @@ func NewCmdGet(fullName string, f *clientcmd.Factory, out io.Writer) *cobra.Comm
54 54
 }
55 55
 
56 56
 const (
57
-	replaceLong = `Replace a resource by filename or stdin.
57
+	replaceLong = `Replace a resource by filename or stdin
58 58
 
59 59
 JSON and YAML formats are accepted.`
60 60
 
... ...
@@ -94,7 +94,7 @@ func NewCmdPatch(fullName string, f *clientcmd.Factory, out io.Writer) *cobra.Co
94 94
 }
95 95
 
96 96
 const (
97
-	deleteLong = `Delete a resource by filename, stdin, resource and ID, or by resources and label selector.
97
+	deleteLong = `Delete a resource
98 98
 
99 99
 JSON and YAML formats are accepted.
100 100
 
... ...
@@ -130,7 +130,10 @@ func NewCmdDelete(fullName string, f *clientcmd.Factory, out io.Writer) *cobra.C
130 130
 }
131 131
 
132 132
 const (
133
-	logsLong = `Print the logs for a container in a pod. If the pod has only one container, the container name is optional.`
133
+	logsLong = `
134
+Print the logs for a container in a pod
135
+
136
+If the pod has only one container, the container name is optional.`
134 137
 
135 138
 	logsExample = `  // Returns snapshot of ruby-container logs from pod 123456-7890.
136 139
   $ %[1]s logs 123456-7890 ruby-container
... ...
@@ -148,7 +151,7 @@ func NewCmdLogs(fullName string, f *clientcmd.Factory, out io.Writer) *cobra.Com
148 148
 }
149 149
 
150 150
 const (
151
-	createLong = `Create a resource by filename or stdin.
151
+	createLong = `Create a resource by filename or stdin
152 152
 
153 153
 JSON and YAML formats are accepted.`
154 154
 
... ...
@@ -168,7 +171,7 @@ func NewCmdCreate(fullName string, f *clientcmd.Factory, out io.Writer) *cobra.C
168 168
 }
169 169
 
170 170
 const (
171
-	execLong = `Execute a command in a container.`
171
+	execLong = `Execute a command in a container`
172 172
 
173 173
 	execExample = `  // Get output from running 'date' in ruby-container from pod 123456-7890
174 174
   $ %[1]s exec -p 123456-7890 -c ruby-container date
... ...
@@ -186,7 +189,7 @@ func NewCmdExec(fullName string, f *clientcmd.Factory, cmdIn io.Reader, cmdOut,
186 186
 }
187 187
 
188 188
 const (
189
-	portForwardLong = `Forward 1 or more local ports to a pod.`
189
+	portForwardLong = `Forward 1 or more local ports to a pod`
190 190
 
191 191
 	portForwardExample = `  // Listens on ports 5000 and 6000 locally, forwarding data to/from ports 5000 and 6000 in the pod
192 192
   $ %[1]s port-forward -p mypod 5000 6000
... ...
@@ -210,7 +213,7 @@ func NewCmdPortForward(fullName string, f *clientcmd.Factory) *cobra.Command {
210 210
 }
211 211
 
212 212
 const (
213
-	describeLong = `Show details of a specific resource.
213
+	describeLong = `Show details of a specific resource
214 214
 
215 215
 This command joins many API calls together to form a detailed description of a
216 216
 given resource.`
... ...
@@ -232,7 +235,7 @@ func NewCmdDescribe(fullName string, f *clientcmd.Factory, out io.Writer) *cobra
232 232
 }
233 233
 
234 234
 const (
235
-	proxyLong = `Run a proxy to the Kubernetes API server.`
235
+	proxyLong = `Run a proxy to the Kubernetes API server`
236 236
 
237 237
 	proxyExample = `  // Run a proxy to kubernetes apiserver on port 8011, serving static content from ./local/www/
238 238
   $ %[1]s proxy --port=8011 --www=./local/www/
... ...
@@ -251,7 +254,7 @@ func NewCmdProxy(fullName string, f *clientcmd.Factory, out io.Writer) *cobra.Co
251 251
 }
252 252
 
253 253
 const (
254
-	scaleLong = `Set a new size for a Replication Controller either directly or via its Deployment Configuration.
254
+	scaleLong = `Set a new size for a deployment or replication controller
255 255
 
256 256
 Scale also allows users to specify one or more preconditions for the scale action.
257 257
 If --current-replicas or --resource-version is specified, it is validated before the
... ...
@@ -274,7 +277,7 @@ func NewCmdScale(fullName string, f *clientcmd.Factory, out io.Writer) *cobra.Co
274 274
 }
275 275
 
276 276
 const (
277
-	stopLong = `Gracefully shut down a resource by id or filename.
277
+	stopLong = `Gracefully shut down a resource by id or filename
278 278
 
279 279
 Attempts to shut down and delete a resource that supports graceful termination.
280 280
 If the resource is scalable it will be scaled to 0 before deletion.`
... ...
@@ -301,7 +304,7 @@ func NewCmdStop(fullName string, f *clientcmd.Factory, out io.Writer) *cobra.Com
301 301
 }
302 302
 
303 303
 const (
304
-	labelLong = `Update the labels on a resource.
304
+	labelLong = `Update the labels on a resource
305 305
 
306 306
 A valid label value is consisted of letters and/or numbers with a max length of %[1]d characters.
307 307
 If --overwrite is true, then existing labels can be overwritten, otherwise attempting to overwrite a label will result in an error.
... ...
@@ -22,7 +22,9 @@ import (
22 22
 const (
23 23
 	AddSecretRecommendedName = "add"
24 24
 
25
-	addSecretLong = `Add secrets to a ServiceAccount
25
+	// TODO: move to examples
26
+	addSecretLong = `
27
+Add secrets to a ServiceAccount
26 28
 
27 29
 After you have created a secret, you probably want to make use of that secret inside of a pod, for a build, or as an image pull secret.  In order to do that, you must add your secret to a service account.
28 30
 
... ...
@@ -19,7 +19,8 @@ import (
19 19
 const (
20 20
 	CreateDockerConfigSecretRecommendedName = "new-dockercfg"
21 21
 
22
-	createDockercfgLong = `Create a new dockercfg secret
22
+	createDockercfgLong = `
23
+Create a new dockercfg secret
23 24
 
24 25
 Dockercfg secrets are used to authenticate against Docker registries.
25 26
 
... ...
@@ -22,11 +22,12 @@ import (
22 22
 const (
23 23
 	NewSecretRecommendedCommandName = "new"
24 24
 
25
-	newLong = `Create a new secret based on a key file or on files within a directory.
25
+	newLong = `
26
+Create a new secret based on a file or directory
26 27
 
27
-	Key files can be specified using their file path, in which case a default name will be given to them, or optionally 
28
-	with a name and file path, in which case the given name will be used. Specifying a directory will create a secret 
29
-	using with all valid keys in that directory.
28
+Key files can be specified using their file path, in which case a default name will be given to them, or optionally 
29
+with a name and file path, in which case the given name will be used. Specifying a directory will create a secret 
30
+using with all valid keys in that directory.
30 31
 `
31 32
 
32 33
 	newExamples = `  // Create a new secret named my-secret with a key named ssh-privatekey
... ...
@@ -12,7 +12,8 @@ import (
12 12
 const SecretsRecommendedName = "secrets"
13 13
 
14 14
 const (
15
-	secretsLong = `Manage secrets in your project.
15
+	secretsLong = `
16
+Manage secrets in your project
16 17
 
17 18
 Secrets are used to store confidential information that should not be contained inside of an image.
18 19
 They are commonly used to hold things like keys for authentication to other internal systems like 
... ...
@@ -20,7 +20,9 @@ import (
20 20
 )
21 21
 
22 22
 const (
23
-	buildChainLong = `Output build dependencies of a specific image stream.
23
+	buildChainLong = `
24
+Output the inputs and dependencies of your builds
25
+
24 26
 Supported output formats are json, dot, and ast. The default is set to json.
25 27
 Tag and namespace are optional and if they are not specified, 'latest' and the 
26 28
 default namespace will be used respectively.`
... ...
@@ -8,12 +8,14 @@ import (
8 8
 )
9 9
 
10 10
 const (
11
-	stiBuilderLong = `Perform a Source-to-Image Build.
11
+	stiBuilderLong = `
12
+Perform a Source-to-Image build
12 13
 
13 14
 This command executes a Source-to-Image build using arguments passed via the environment.
14 15
 It expects to be run inside of a container.`
15 16
 
16
-	dockerBuilderLong = `Perform a Docker Build.
17
+	dockerBuilderLong = `
18
+Perform a Docker build
17 19
 
18 20
 This command executes a Docker build using arguments passed via the environment.
19 21
 It expects to be run inside of a container.`
... ...
@@ -23,9 +23,10 @@ import (
23 23
 )
24 24
 
25 25
 const (
26
-	deployerLong = `Perform a Deployment.
26
+	deployerLong = `
27
+Perform a deployment
27 28
 
28
-This command makes calls to OpenShift to perform a deployment as described by a DeploymentConfig.`
29
+This command makes calls to OpenShift to perform a deployment as described by a deployment configuration.`
29 30
 )
30 31
 
31 32
 type config struct {
... ...
@@ -20,7 +20,8 @@ import (
20 20
 )
21 21
 
22 22
 const (
23
-	routerLong = `Start an OpenShift router.
23
+	routerLong = `
24
+Start an OpenShift router
24 25
 
25 26
 This command launches a router connected to your OpenShift master. The router listens for routes and endpoints
26 27
 created by users and keeps a local router configuration up to date with those changes.`
... ...
@@ -25,7 +25,8 @@ import (
25 25
 	"github.com/openshift/origin/pkg/version"
26 26
 )
27 27
 
28
-const openshiftLong = `OpenShift Application Platform.
28
+const openshiftLong = `
29
+OpenShift Application Platform
29 30
 
30 31
 OpenShift helps you build, deploy, and manage your applications. To start an all-in-one server, run:
31 32
 
... ...
@@ -30,7 +30,7 @@ type CreateKeyPairOptions struct {
30 30
 }
31 31
 
32 32
 const createKeyPairLong = `
33
-Create a 2048-bit RSA key pair, and generate PEM-encoded public/private key files.
33
+Create an RSA key pair and generate PEM-encoded public/private key files
34 34
 
35 35
 Example: Creating service account signing and authenticating key files:
36 36
 
... ...
@@ -18,7 +18,8 @@ import (
18 18
 )
19 19
 
20 20
 const CreateMasterCertsCommandName = "create-master-certs"
21
-const masterCertLong = `Create keys and certificates for an OpenShift master
21
+const masterCertLong = `
22
+Create keys and certificates for an OpenShift master
22 23
 
23 24
 This command creates keys and certs necessary to run a secure OpenShift master.
24 25
 It also creates keys, certificates, and configuration necessary for most
... ...
@@ -28,6 +28,8 @@ type CreateServerCertOptions struct {
28 28
 }
29 29
 
30 30
 const createServerLong = `
31
+Create a key and server certificate
32
+
31 33
 Create a key and server certificate valid for the specified hostnames,
32 34
 signed by the specified CA. These are useful for securing infrastructure
33 35
 components such as the router, authentication server, etc.
... ...
@@ -39,6 +39,8 @@ func BindSignerCertOptions(options *CreateSignerCertOptions, flags *pflag.FlagSe
39 39
 }
40 40
 
41 41
 const createSignerLong = `
42
+Create a self-signed CA key/cert
43
+
42 44
 Create a self-signed CA key/cert for signing certificates used by
43 45
 OpenShift components.
44 46
 
... ...
@@ -12,7 +12,8 @@ import (
12 12
 	"github.com/GoogleCloudPlatform/kubernetes/pkg/util"
13 13
 )
14 14
 
15
-const apiserverLong = `Start Kubernetes apiserver
15
+const apiserverLong = `
16
+Start Kubernetes apiserver
16 17
 
17 18
 This command launches an instance of the Kubernetes apiserver (kube-apiserver).`
18 19
 
... ...
@@ -12,7 +12,8 @@ import (
12 12
 	"github.com/GoogleCloudPlatform/kubernetes/pkg/util"
13 13
 )
14 14
 
15
-const controllersLong = `Start Kubernetes controller manager
15
+const controllersLong = `
16
+Start Kubernetes controller manager
16 17
 
17 18
 This command launches an instance of the Kubernetes controller-manager (kube-controller-manager).`
18 19
 
... ...
@@ -13,7 +13,8 @@ import (
13 13
 	"github.com/openshift/origin/pkg/version"
14 14
 )
15 15
 
16
-const kubernetesLong = `Start Kubernetes server components
16
+const kubernetesLong = `
17
+Start Kubernetes server components
17 18
 
18 19
 The primary Kubernetes server components can be started individually using their direct
19 20
 arguments. No configuration settings will be used when launching these components.
... ...
@@ -12,7 +12,8 @@ import (
12 12
 	"github.com/GoogleCloudPlatform/kubernetes/pkg/util"
13 13
 )
14 14
 
15
-const proxyLong = `Start Kubernetes Proxy
15
+const proxyLong = `
16
+Start Kubernetes Proxy
16 17
 
17 18
 This command launches an instance of the Kubernetes proxy (kube-proxy).`
18 19
 
... ...
@@ -12,7 +12,8 @@ import (
12 12
 	"github.com/GoogleCloudPlatform/kubernetes/plugin/cmd/kube-scheduler/app"
13 13
 )
14 14
 
15
-const schedulerLong = `Start Kubernetes scheduler
15
+const schedulerLong = `
16
+Start Kubernetes scheduler
16 17
 
17 18
 This command launches an instance of the Kubernetes controller-manager (kube-controller-manager).`
18 19
 
... ...
@@ -37,7 +37,8 @@ type AllInOneOptions struct {
37 37
 	Output io.Writer
38 38
 }
39 39
 
40
-const allInOneLong = `Start an OpenShift all-in-one server
40
+const allInOneLong = `
41
+Start an OpenShift all-in-one server
41 42
 
42 43
 This command helps you launch an OpenShift all-in-one server, which allows
43 44
 you to run all of the components of an OpenShift system on a server with Docker. Running
... ...
@@ -29,7 +29,9 @@ type NodeOptions struct {
29 29
 	Output     io.Writer
30 30
 }
31 31
 
32
-const nodeLong = `Start an OpenShift node.
32
+const nodeLong = `
33
+Start an OpenShift node
34
+
33 35
 This command helps you launch an OpenShift node.  Running
34 36
 
35 37
   $ openshift start node --master=<masterIP>