
<!--- This file is automatically generated by make gen-cli-docs; changes should be made in the go CLI command code (under cmd/kops) -->

## kops rolling-update cluster

Rolling update a cluster.

### Synopsis

This command updates a kubernetes cluster to match the cloud and kOps specifications.

To perform a rolling update, you need to update the cloud resources first with the command
`kops update cluster --yes`. Nodes may be additionally marked for update by placing a
`kops.k8s.io/needs-update` annotation on them.

If rolling-update does not report that the cluster needs to be updated, you can force the cluster to be
updated with the --force flag.  Rolling update drains and validates the cluster by default.  A cluster is
deemed validated when all required nodes are running and all pods with a critical priority are operational.

If the cluster is in a broken state and cannot be validated, rolling-update will get stuck and eventually 
fail; you can force the update to proceed with the --cloudonly flag, which will skip validation.

Note: terraform users will need to run all of the following commands from the same directory
`kops update cluster --target=terraform` then `terraform plan` then
`terraform apply` prior to running `kops rolling-update cluster`.

```
kops rolling-update cluster [CLUSTER] [flags]
```

### Examples

```
  # Preview a rolling update.
  kops rolling-update cluster
  
  # Update the currently selected kOps cluster with defaults.
  # Nodes will be drained and the cluster will be validated between node replacement.
  kops rolling-update cluster --yes
  
  # Update the k8s-cluster.example.com kOps cluster.
  # Do not fail if the cluster does not validate.
  kops rolling-update cluster k8s-cluster.example.com --yes \
  --fail-on-validate-error="false"
  
  # Update the k8s-cluster.example.com kOps cluster.
  # Do not validate the cluster.
  # Force the entire cluster to update, even if rolling update
  # reports that the cluster does not need to be updated.
  kops rolling-update cluster k8s-cluster.example.com --yes \
  --cloudonly \
  --force
  
  # Update only the "nodes-1a" instance group of the k8s-cluster.example.com kOps cluster.
  kops rolling-update cluster k8s-cluster.example.com --yes \
  --instance-group nodes-1a
```

### Options

```
      --admin duration                    a cluster admin user credential with the specified lifetime (default 18h0m0s)
      --api-server string                 Override the API server used when communicating with the cluster kube-apiserver
      --bastion-interval duration         Time to wait between restarting bastions (default 15s)
      --cloudonly                         Perform rolling update without validating cluster status (will cause downtime)
      --control-plane-interval duration   Time to wait between restarting control plane nodes (default 15s)
      --drain-timeout duration            Maximum time to wait for a node to drain (default 15m0s)
      --fail-on-drain-error               Fail if draining a node fails (default true)
      --fail-on-validate-error            Fail if the cluster fails to validate (default true)
      --force                             Force rolling update, even if no changes
  -h, --help                              help for cluster
      --instance-group strings            Instance groups to update (defaults to all if not specified)
      --instance-group-roles strings      Instance group roles to update (control-plane,apiserver,node,bastion)
  -i, --interactive                       Prompt to continue after each instance is updated
      --node-interval duration            Time to wait between restarting worker nodes (default 15s)
      --post-drain-delay duration         Time to wait after draining each node (default 5s)
      --use-kubeconfig                    Use the server endpoint from the local kubeconfig instead of inferring from cluster name
      --validate-count int32              Number of times that a cluster needs to be validated after single node update (default 2)
      --validation-timeout duration       Maximum time to wait for a cluster to validate (default 15m0s)
  -y, --yes                               Perform rolling update immediately; without --yes rolling-update executes a dry-run
```

### Options inherited from parent commands

```
      --config string   yaml config file (default is $HOME/.kops.yaml)
      --name string     Name of cluster. Overrides KOPS_CLUSTER_NAME environment variable
      --state string    Location of state storage (kops 'config' file). Overrides KOPS_STATE_STORE environment variable
  -v, --v Level         number for the log level verbosity
```

### SEE ALSO

* [kops rolling-update](kops_rolling-update.md)	 - Rolling update a cluster.

