---
name: "kubeadm-upgrade-apply"
section: "1"
platform: "linux"
package: "kubeadm"
version: "1.37.2-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/kubeadm-upgrade-apply"
---

# kubeadm-upgrade-apply(1)

Upgrade your Kubernetes cluster to the specified version

Eric Paris Jan 2015

## NAME

kubeadm upgrade apply - Upgrade your Kubernetes cluster to the specified version

## SYNOPSIS

**kubeadm upgrade apply** \[OPTIONS\]

## DESCRIPTION

Upgrade your Kubernetes cluster to the specified version

The "apply \[version\]" command executes the following phases:

```
preflight        Run preflight checks before upgrade
control-plane    Upgrade the control plane
upload-config    Upload the kubeadm and kubelet configurations to ConfigMaps
  /kubeadm         Upload the kubeadm ClusterConfiguration to a ConfigMap
  /kubelet         Upload the kubelet configuration to a ConfigMap
kubelet-config   Upgrade the kubelet configuration for this node
bootstrap-token  Configures bootstrap token and cluster-info RBAC rules
addon            Upgrade the default kubeadm addons
  /coredns         Upgrade the CoreDNS addon
  /kube-proxy      Upgrade the kube-proxy addon
post-upgrade     Run post upgrade tasks
```

## OPTIONS

**--allow-experimental-upgrades**=false\
 	Show unstable versions of Kubernetes as an upgrade alternative and allow upgrading to an alpha/beta/release candidate versions of Kubernetes.

**--allow-release-candidate-upgrades**=false\
 	Show release candidate versions of Kubernetes as an upgrade alternative and allow upgrading to a release candidate versions of Kubernetes.

**--certificate-renewal**=true\
 	Perform the renewal of certificates used by component changed during upgrades.

**--config**=""\
 	Path to a kubeadm configuration file.

**--dry-run**=false\
 	Do not change any state, just output what actions would be performed.

**--etcd-upgrade**=true\
 	Perform the upgrade of etcd.

**-f**, **--force**=false\
 	Force upgrading although some requirements might not be met. This also implies non-interactive mode.

**--ignore-preflight-errors**=\[\]\
 	A list of checks whose errors will be shown as warnings. Example: 'IsPrivilegedUser,Swap'. Value 'all' ignores errors from all checks.

**--kubeconfig**="/etc/kubernetes/admin.conf"\
 	The kubeconfig file to use when talking to the cluster. If the flag is not set, a set of standard locations can be searched for an existing kubeconfig file.

**--patches**=""\
 	Path to a directory that contains files named "target\[suffix\]\[+patchtype\].extension". For example, "kube-apiserver0+merge.yaml" or just "etcd.json". "target" can be one of "kube-apiserver", "kube-controller-manager", "kube-scheduler", "etcd", "kubeletconfiguration", "corednsdeployment", "kubeproxydaemonset". "patchtype" can be one of "strategic", "merge" or "json" and they match the patch formats supported by kubectl. The default "patchtype" is "strategic". "extension" must be either "json" or "yaml". "suffix" is an optional string that can be used to determine which patches are applied first alpha-numerically.

**--print-config**=false\
 	Specifies whether the configuration file that will be used in the upgrade should be printed or not.

**--skip-phases**=\[\]\
 	List of phases to be skipped

**-y**, **--yes**=false\
 	Perform the upgrade and do not prompt for confirmation (non-interactive mode).

## OPTIONS INHERITED FROM PARENT COMMANDS

**--rootfs**=""\
 	The path to the 'real' host root filesystem. This will cause kubeadm to chroot into the provided path.

**--version**=false\
 	\--version, --version=raw prints version information and quits; --version=vX.Y.Z... sets the reported version

## SEE ALSO

**[kubeadm-upgrade(1)](/kubeadm-upgrade/1.md)**, **[kubeadm-upgrade-apply-phase(1)](/kubeadm-upgrade-apply-phase/1.md)**,

## HISTORY

January 2015, Originally compiled by Eric Paris (eparis at redhat dot com) based on the kubernetes source material, but hopefully they have been automatically generated since!
