---
title: "Upgrade YugabyteDB Anywhere"
url: "https://docs.yugabyte.com/stable/yugabyte-platform/upgrade/upgrade-yp-kubernetes/"
---

# Upgrade YugabyteDB Anywhere

Upgrade YugabyteDB Anywhere installation on Kubernetes

- [YBA Installer](/stable/yugabyte-platform/upgrade/upgrade-yp-installer/)
- [Kubernetes](/stable/yugabyte-platform/upgrade/upgrade-yp-kubernetes/)

You can use [Helm](https://helm.sh/ "Helm") to upgrade your YugabyteDB Anywhere (YBA) installed on [Kubernetes](https://kubernetes.io/ "Kubernetes") to a newer version.

If you are upgrading a YugabyteDB Anywhere installation with high availability enabled, follow the instructions provided in [Upgrade instances](/stable/yugabyte-platform/administer-yugabyte-platform/high-availability/#upgrade-instances "Upgrade instances").

Install the YugabyteDB Kubernetes Operator

To install the [YugabyteDB Kubernetes Operator](/stable/yugabyte-platform/anywhere-automation/yb-kubernetes-operator/ "YugabyteDB Kubernetes Operator") on an existing YugabyteDB Anywhere instance, see [Install Kubernetes Operator](/stable/yugabyte-platform/anywhere-automation/yb-kubernetes-operator/#install-kubernetes-operator "Install Kubernetes Operator").

Starting in YugabyteDB Anywhere v2026.1.2, Docker images are STIG-compliant and hardened, and run as a non-root user by default. If you haven't pinned a user in `securityContext` on a non-OpenShift installation, upgrading to v2026.1.2 or later migrates the pods to a non-root user. To keep running as root on a non-OpenShift installation, see [Run containers as non-root](/stable/yugabyte-platform/install-yugabyte-platform/install-software/kubernetes/#run-containers-as-non-root "Run containers as non-root"). This does not apply to OpenShift, which always runs containers as non-root.

Before running an upgrade, execute the following command to obtain the latest versions of YugabyteDB Anywhere from Helm charts:

```sh
helm repo update
```

## Upgrade using Helm

To upgrade to a specific version while preserving overrides you might have applied to your initial YugabyteDB Anywhere installation or previous upgrades, execute the following command:

```sh
helm upgrade yw-test yugabytedb/yugaware \
  --version 2026.1.2 \
  -n yb-platform \
  --reset-then-reuse-values \
  --set image.tag=2026.1.2.0-b137 \
  --atomic \
  --timeout 30m \
  --wait
```

To obtain the value for `--set image.tag`, execute the following command:

```sh
helm list | awk '{if (NR!=1) print $NF}'
```

If you do not wish to port your overrides, do not include `--reset-then-reuse-values`. Instead, you may choose to pass your existing overrides file by adding `--values custom-values.yaml` to your command during the upgrade.

When `--atomic` is used, if the upgrade fails for any reason (pods not Ready, hooks fail, timeout, and so on), Helm will automatically roll back to the last successful release.

Use `--timeout` to give the upgrade enough time; if the upgrade exceeds this time, Helm treats it as a failure, and (if `--atomic` is set) triggers a rollback.

When `--wait` is used, Helm waits for workloads to become Ready.

If you have upgraded YugabyteDB Anywhere to version 2.12 or later and [xCluster replication](/stable/explore/going-beyond-sql/asynchronous-replication-ysql/ "xCluster replication") for your universe was set up via yb-admin instead of the UI, follow the instructions provided in [Synchronize replication after upgrade](/stable/yugabyte-platform/upgrade/upgrade-yp-xcluster-ybadmin/ "Synchronize replication after upgrade").
