Skip to content

Commit

Permalink
doc: update upgrade guide (#1479)
Browse files Browse the repository at this point in the history
  • Loading branch information
AlinsRan committed Dec 7, 2022
1 parent 7511166 commit de9f84f
Showing 1 changed file with 99 additions and 0 deletions.
99 changes: 99 additions & 0 deletions docs/en/latest/upgrade.md
Expand Up @@ -21,6 +21,105 @@ title: Upgrade Guide
#
-->

## Upgrade using Helm chart

Note: Before upgrading APISIX Ingress, you need to update the corresponding CRD resource first, k8s will automatically replace it with the default CRD resource version, incompatible items will be discarded, and its configuration needs to be updated to the current version.

### Operating Step

1. Update Helm repo

Before upgrading, you need to update the helm repo to ensure that the resources in the repo are up to date.

```sh
helm repo update
```

2. Upgrade CRDs

When the CRD exists, Helm Chart will not automatically update the CRD when upgrading or installing, so you need to update the CRD resource yourself

- Using Helm (Helm version >= 3.7.0)

```sh
helm show crds apisix/apisix-ingress-controller | kubectl apply -f -
```

> If the Helm version does not support it, you need to obtain it from the [apisix-helm-chart](https://github.com/apache/apisix-helm-chart) repository.
> CRDs directory: `charts/apisix-ingress-controller/crds/customresourcedefinitions.yaml`
>
> ```sh
> kubectl apply -f https://raw.githubusercontent.com/apache/apisix-helm-chart/apisix-0.11.1/charts/apisix-ingress-controller/crds/customresourcedefinitions.yaml
> ```
3. UpgradeAPISIX Ingress

Just as an example, the specific configuration needs to be modified by yourself. If you want to upgrade to a specific chart version, please add this flag `--version x.x.x`.

```sh
helm upgrade apisix apisix/apisix \
--set gateway.type=NodePort \
--set ingress-controller.enabled=true \
--namespace ingress-apisix \
--set ingress-controller.config.apisix.serviceNamespace=ingress-apisix
```

### Precautions

It is recommended not to upgrade across major versions.

### Compatible upgrade

Compatible upgrades can be made without changing any resources.

#### ***1.5 to 1.6***

```sh
helm upgrade apisix apisix/apisix *** # omit some configuration
```

#### ***1.4 to 1.5***

The chart version corresponding to chart version 1.5:

* `apisix-0.11.3`
* `apisix-ingress-controller-0.10.1`

```sh
helm upgrade apisix apisix/apisix --version 0.11.3 *** # omit some configuration
```

### Incompatible upgrade

#### ***1.3 to 1.4***

The chart version corresponding to chart version 1.4:

* `apisix-0.10.2`
* `apisix-ingress-controller-0.9.3`

```sh
helm upgrade apisix apisix/apisix --version 0.10.2 *** # omit some configuration
```

Incompatible upgrade, need to change resources.
ApisixRoute `object(http[].backend)` has been removed in V2beta3 and needs to be converted to `array(http[].backends)`. It is recommended not to upgrade across major versions.

## Version change

### ***1.6.0***

- No breaking changes in this release.

### ***1.5.0***

- CRD has been upgraded to the V2 version, and V2beta3 has been marked as deprecated.
- `app_namespace` is deprecated, you can use `namespace_selector` instead.

### ***1.4.0***

- CRD unified upgrade to V2beta3, delete resource v2alpha1 and v1 versions

## Validate Compatibility

Apache APISIX Ingress project is a continuously actively developed project.
Expand Down

0 comments on commit de9f84f

Please sign in to comment.