# Upgrade NGINX Ingress Controller LTS




This document describes how to upgrade F5 NGINX Ingress Controller LTS to a new patch release.

Many of the nuances in upgrade paths relate to how custom resource definitions (CRDs) are managed.

## Upgrading to a new LTS patch release

### Upgrade NGINX Ingress Controller LTS CRDs

To upgrade the CRDs, pull the Helm chart source, then use _kubectl apply_:

```shell
helm pull oci://ghcr.io/nginx/charts/nginx-ingress-lts --untar --version 
kubectl apply -f crds/
```

Alternatively, CRDs can be upgraded without pulling the chart by running:

```shell
kubectl apply -f https://raw.githubusercontent.com/nginx/kubernetes-ingress/v/deploy/crds.yaml
```

In the above command, `v` represents the version of the NGINX Ingress Controller LTS release rather than the Helm chart version.

**note:**  The following warning is expected and can be ignored: `Warning: kubectl apply should be used on resource created by either kubectl create --save-config or kubectl apply`.

Check the [release notes](https://www.github.com/nginx/kubernetes-ingress/releases) for a new release for any special upgrade procedures.

### Upgrade NGINX Ingress Controller LTS charts

Once the CRDs have been upgraded, you can then upgrade the release chart.

The command depends on if you installed the chart using the registry or from source.

To upgrade a release named _my-release_, use the following command:

#### OCI registry

```shell
helm upgrade my-release oci://ghcr.io/nginx/charts/nginx-ingress-lts --version 
```

#### Source

```shell
helm upgrade my-release .
```


