name: rolling-update synopsis: Perform a rolling update of the given ReplicationController. description: |- Perform a rolling update of the given ReplicationController. Replaces the specified replication controller with a new replication controller by updating one pod at a time to use the new PodTemplate. The new-controller.json must specify the same namespace as the existing replication controller and overwrite at least one (common) label in its replicaSelector. options: - name: container usage: | Container name which will have its image upgraded. Only relevant when --image is specified, ignored otherwise. Required when using --image on a multi-container pod - name: deployment-label-key default_value: deployment usage: | The key to use to differentiate between two different controllers, default 'deployment'. Only relevant when --image is specified, ignored otherwise - name: dry-run default_value: "false" usage: | If true, print out the changes that would be made, but don't actually make them. - name: filename shorthand: f default_value: '[]' usage: | Filename or URL to file to use to create the new replication controller. - name: image usage: | Image to use for upgrading the replication controller. Must be distinct from the existing image (either new image or new image tag). Can not be used with --filename/-f - name: include-extended-apis default_value: "true" usage: | If true, include definitions of new APIs via calls to the API server. [default true] - name: no-headers default_value: "false" usage: When using the default output, don't print headers. - name: output shorthand: o usage: | Output format. One of: json|yaml|wide|name|go-template=...|go-template-file=...|jsonpath=...|jsonpath-file=... See golang template [http://golang.org/pkg/text/template/#pkg-overview] and jsonpath template [http://releases.k8s.io/HEAD/docs/user-guide/jsonpath.md]. - name: output-version usage: | Output the formatted object with the given group version (for ex: 'extensions/v1beta1'). - name: poll-interval default_value: 3s usage: | Time delay between polling for replication controller status after the update. Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h". - name: rollback default_value: "false" usage: | If true, this is a request to abort an existing rollout that is partially rolled out. It effectively reverses current and next and runs a rollout - name: schema-cache-dir default_value: ~/.kube/schema usage: | If non-empty, load/store cached API schemas in this directory, default is '$HOME/.kube/schema' - name: show-all shorthand: a default_value: "false" usage: | When printing, show all resources (default hide terminated pods.) - name: show-labels default_value: "false" usage: | When printing, show all labels as the last column (default hide labels column) - name: sort-by usage: | If non-empty, sort list types using this field specification. The field specification is expressed as a JSONPath expression (e.g. '{.metadata.name}'). The field in the API resource specified by this JSONPath expression must be an integer or a string. - name: template usage: | Template string or path to template file to use when -o=go-template, -o=go-template-file. The template format is golang templates [http://golang.org/pkg/text/template/#pkg-overview]. - name: timeout default_value: 5m0s usage: | Max time to wait for a replication controller to update before giving up. Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h". - name: update-period default_value: 1m0s usage: | Time to wait between updating pods. Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h". - name: validate default_value: "true" usage: | If true, use a schema to validate the input before sending it inherited_options: - name: alsologtostderr default_value: "false" usage: log to standard error as well as files - name: api-version usage: | DEPRECATED: The API version to use when talking to the server - name: as usage: Username to impersonate for the operation. - name: certificate-authority usage: Path to a cert. file for the certificate authority. - name: client-certificate usage: Path to a client certificate file for TLS. - name: client-key usage: Path to a client key file for TLS. - name: cluster usage: The name of the kubeconfig cluster to use - name: context usage: The name of the kubeconfig context to use - name: insecure-skip-tls-verify default_value: "false" usage: | If true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure. - name: kubeconfig usage: Path to the kubeconfig file to use for CLI requests. - name: log-backtrace-at default_value: :0 usage: when logging hits line file:N, emit a stack trace - name: log-dir usage: If non-empty, write log files in this directory - name: log-flush-frequency default_value: 5s usage: Maximum number of seconds between log flushes - name: logtostderr default_value: "true" usage: log to standard error instead of files - name: match-server-version default_value: "false" usage: Require server version to match client version - name: namespace usage: If present, the namespace scope for this CLI request. - name: password usage: Password for basic authentication to the API server. - name: server shorthand: s usage: The address and port of the Kubernetes API server - name: stderrthreshold default_value: "2" usage: logs at or above this threshold go to stderr - name: token usage: Bearer token for authentication to the API server. - name: user usage: The name of the kubeconfig user to use - name: username usage: Username for basic authentication to the API server. - name: v default_value: "0" usage: log level for V logs - name: vmodule usage: | comma-separated list of pattern=N settings for file-filtered logging example: | # Update pods of frontend-v1 using new replication controller data in frontend-v2.json. kubectl rolling-update frontend-v1 -f frontend-v2.json # Update pods of frontend-v1 using JSON data passed into stdin. cat frontend-v2.json | kubectl rolling-update frontend-v1 -f - # Update the pods of frontend-v1 to frontend-v2 by just changing the image, and switching the # name of the replication controller. kubectl rolling-update frontend-v1 frontend-v2 --image=image:v2 # Update the pods of frontend by just changing the image, and keeping the old name. kubectl rolling-update frontend --image=image:v2 # Abort and reverse an existing rollout in progress (from frontend-v1 to frontend-v2). kubectl rolling-update frontend-v1 frontend-v2 --rollback see_also: - kubectl