diff --git a/website/content/docs/k8s/upgrade/index.mdx b/website/content/docs/k8s/upgrade/index.mdx
index 05eaf5bba7..7ce00caf39 100644
--- a/website/content/docs/k8s/upgrade/index.mdx
+++ b/website/content/docs/k8s/upgrade/index.mdx
@@ -18,12 +18,16 @@ for those changes to take effect.
For example, if you've installed Consul with the following:
+
+
```yaml
global:
name: consul
connectInject:
enabled: false
```
+
+
And you wish to set `connectInject.enabled` to `true`:
@@ -35,22 +39,22 @@ connectInject:
+ enabled: true
```
-Perform the following steps:
+To update your deployment configuration using Helm, perform the following steps.
1. Determine your current installed chart version.
-```bash
-helm list --filter consul
-NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
-consul default 2 2020-09-30 ... deployed consul-0.24.0 1.8.2
-```
+ ```shell-session
+ $ helm list --filter consul --namespace consul
+ NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
+ consul consul 2 2022-02-02 21:49:45.647678 -0800 PST deployed consul-0.40.0 1.11.2
+ ```
-In this example, version `0.24.0` (from `consul-0.24.0`) is being used.
+ In this example, version `0.40.0` (from `consul-k8s:0.40.0`) is being used, and Consul on Kubernetes is installed in the `consul` namespace.
1. Perform a `helm upgrade`:
```shell-session
- $ helm upgrade consul hashicorp/consul --version 0.24.0 --values /path/to/my/values.yaml
+ $ helm upgrade consul hashicorp/consul --namespace consul --version 0.40.0 --values /path/to/my/values.yaml
```
**Before performing the upgrade, be sure you've read the other sections on this page,
@@ -68,43 +72,43 @@ certain Helm chart version.
1. Update your local Helm repository cache:
-```bash
-helm repo update
-```
+ ```shell-session
+ $ helm repo update
+ ```
-1. List all available versions:
+1. List all available versions. Here you can observe that the latest version of `0.40.0`.
-```shell-session hideClipboard
-$ helm search repo hashicorp/consul --versions
-NAME CHART VERSION APP VERSION DESCRIPTION
-hashicorp/consul 0.24.1 1.8.2 Official HashiCorp Consul Chart
-hashicorp/consul 0.24.0 1.8.1 Official HashiCorp Consul Chart
-...
-```
+ ```shell-session hideClipboard
+ $ helm search repo hashicorp/consul --versions
+ NAME CHART VERSION APP VERSION DESCRIPTION
+ hashicorp/consul 0.40.0 1.11.2 Official HashiCorp Consul Chart
+ hashicorp/consul 0.39.0 1.11.1 Official HashiCorp Consul Chart
+ hashicorp/consul 0.38.0 1.10.4 Official HashiCorp Consul Chart
+ hashicorp/consul 0.37.0 1.10.4 Official HashiCorp Consul Chart
+ ...
+ ```
-Here we can see that the latest version of `0.24.1`.
+ 1. To determine which version you have installed, issue the following command:
-1. To determine which version you have installed, issue the following command:
+ ```shell-session
+ $ helm list --filter consul --namespace consul
+ NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
+ consul consul 2 2022-02-02 21:49:45.647678 -0800 PST deployed consul-0.39.0 1.11.1
+ ```
-```shell-session
-$ helm list --filter consul
-NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
-consul default 2 2020-09-30 ... deployed consul-0.24.0 1.8.2
-```
+ In this example, version `0.39.0` (from `consul-k8s:0.39.0`) is being used.
+ If you want to upgrade to the latest `0.40.0` version, use the following procedure:
-In this example, version `0.24.0` (from `consul-0.24.0`) is being used.
-If you want to upgrade to the latest `0.24.1` version, use the following procedure:
-
-1. Check the changelog for any breaking changes from that version and any versions in between: https://github.com/hashicorp/consul-helm/blob/master/CHANGELOG.md.
+1. Check the changelog for any breaking changes from that version and any versions in between: [CHANGELOG.md](https://github.com/hashicorp/consul-k8s/blob/main/CHANGELOG.md).
1. Upgrade by performing a `helm upgrade` with the `--version` flag:
-```shell-session
-$ helm upgrade consul hashicorp/consul --version 0.24.1 --values /path/to/my/values.yaml
-```
+ ```shell-session
+ $ helm upgrade consul hashicorp/consul --namespace consul --version 0.40.0 --values /path/to/my/values.yaml
+ ```
-**Before performing the upgrade, be sure you've read the other sections on this page,
-continuing at [Determining What Will Change](#determining-what-will-change).**
+ **Before performing the upgrade, be sure you've read the other sections on this page,
+ continuing at [Determining What Will Change](#determining-what-will-change).**
### Consul Version Upgrade
@@ -123,29 +127,27 @@ to update to the new version.
```yaml
global:
- image: consul:1.8.3
+ image: consul:1.11.2
```
-1. Determine your current installed chart version:
+1. Determine your current installed chart version. In this example, version `0.39.0` (from `consul-k8s:0.39.0`) is being used.
-```shell-session
-$ helm list --filter consul
-NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
-consul default 2 2020-09-30 ... deployed consul-0.24.0 1.8.2
-```
-
-In this example, version `0.24.0` (from `consul-0.24.0`) is being used.
+ ```shell-session
+ $ helm list --filter consul --namespace consul
+ NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
+ consul consul 2 2022-02-02 21:49:45.647678 -0800 PST deployed consul-0.39.0 1.11.1
+ ```
1. Perform a `helm upgrade`:
-```shell-session
-$ helm upgrade consul hashicorp/consul --version 0.24.0 --values /path/to/my/values.yaml
-```
+ ```shell-session
+ $ helm upgrade consul hashicorp/consul --namespace consul --version 0.39.0 --values /path/to/my/values.yaml
+ ```
-**Before performing the upgrade, be sure you've read the other sections on this page,
-continuing at [Determining What Will Change](#determining-what-will-change).**
+ **Before performing the upgrade, be sure you have read the other sections on this page,
+ continuing at [Determining What Will Change](#determining-what-will-change).**
~> NOTE: It's important to always set the `--version` flag, because otherwise Helm
will use the most up-to-date version in its local cache, which may result in an
@@ -163,36 +165,36 @@ that can be used.
1. Install `helm-diff` with:
-```bash
-helm plugin install https://github.com/databus23/helm-diff
-```
+ ```shell-session
+ $ helm plugin install https://github.com/databus23/helm-diff
+ ```
1. If you are updating your `values.yaml` file, do so now.
1. Take the same `helm upgrade` command you were planning to issue but perform `helm diff upgrade` instead of `helm upgrade`:
-```shell-session
-$ helm diff upgrade consul hashicorp/consul --version 0.24.1 --values /path/to/your/values.yaml
-```
+ ```shell-session
+ $ helm diff upgrade consul hashicorp/consul --namespace consul --version 0.40.0 --values /path/to/your/values.yaml
+ ```
-This will print out the manifests that will be updated and their diffs.
+ This will print out the manifests that will be updated and their diffs.
1. To see only the objects that will be updated, add `| grep "has changed"`:
-```shell-session
-$ helm diff upgrade consul hashicorp/consul --version 0.24.1 --values /path/to/your/values.yaml |
- grep "has changed"
-```
+ ```shell-session
+ $ helm diff upgrade consul hashicorp/consul --namespace consul --version 0.40.0 --values /path/to/your/values.yaml |
+ grep "has changed"
+ ```
1. Take specific note if `consul-client, DaemonSet` or `consul-server, StatefulSet` are listed.
This means that your Consul client daemonset or Consul server statefulset (or both) will be redeployed.
-If either is being redeployed, we will follow the same pattern for upgrades as
-on other platforms: the servers will be redeployed one-by-one, and then the
-clients will be redeployed in batches. Read [Upgrading Consul](/docs/upgrading) and then continue
-reading below.
+ If either is being redeployed, we will follow the same pattern for upgrades as
+ on other platforms: the servers will be redeployed one-by-one, and then the
+ clients will be redeployed in batches. Read [Upgrading Consul](/docs/upgrading) and then continue
+ reading below.
-If neither the client daemonset nor the server statefulset is being redeployed,
-then you can continue with the helm upgrade without any specific sequence to follow.
+ If neither the client daemonset nor the server statefulset is being redeployed,
+ then you can continue with the helm upgrade without any specific sequence to follow.
## Service Mesh
@@ -249,37 +251,41 @@ To initiate the upgrade:
By default there are 3 servers, so you would set this value to `3`
1. Set the `updateStrategy` for clients to `OnDelete`
-```yaml
-global:
- image: 'consul:123.456'
-server:
- updatePartition: 3
-client:
- updateStrategy: |
- type: OnDelete
-```
+
+
+ ```yaml
+ global:
+ image: 'consul:123.456'
+ server:
+ updatePartition: 3
+ client:
+ updateStrategy: |
+ type: OnDelete
+ ```
+
+
-The `updatePartition` value controls how many instances of the server
-cluster are updated. Only instances with an index _greater than_ the
-`updatePartition` value are updated (zero-indexed). Therefore, by setting
-it equal to replicas, none should update yet.
+ The `updatePartition` value controls how many instances of the server
+ cluster are updated. Only instances with an index _greater than_ the
+ `updatePartition` value are updated (zero-indexed). Therefore, by setting
+ it equal to replicas, none should update yet.
-The `updateStrategy` controls how Kubernetes rolls out changes to the client daemonset.
-By setting it to `OnDelete`, no clients will be restarted until their pods are deleted.
-Without this, they would be redeployed alongside the servers because their Docker
-image versions have changed. This is not desirable because we want the Consul
-servers to be upgraded _before_ the clients.
+ The `updateStrategy` controls how Kubernetes rolls out changes to the client daemonset.
+ By setting it to `OnDelete`, no clients will be restarted until their pods are deleted.
+ Without this, they would be redeployed alongside the servers because their Docker
+ image versions have changed. This is not desirable because we want the Consul
+ servers to be upgraded _before_ the clients.
1. Next, perform the upgrade:
-```shell-session
-$ helm upgrade consul hashicorp/consul --version --values /path/to/your/values.yaml
-```
+ ```shell-session
+ $ helm upgrade consul hashicorp/consul --namespace consul --version --values /path/to/your/values.yaml
+ ```
-This will not cause the servers to redeploy (although the resource will be updated). If
-everything is stable, begin by decreasing the `updatePartition` value by one,
-and performing `helm upgrade` again. This will cause the first Consul server
-to be stopped and restarted with the new image.
+ This will not cause the servers to redeploy (although the resource will be updated). If
+ everything is stable, begin by decreasing the `updatePartition` value by one,
+ and performing `helm upgrade` again. This will cause the first Consul server
+ to be stopped and restarted with the new image.
1. Wait until the Consul server cluster is healthy again (30s to a few minutes).
This can be confirmed by issuing `consul members` on one of the previous servers,
@@ -298,20 +304,20 @@ restarting the clients as outlined in [Service Mesh](#service-mesh).
You can either:
1. Manually issue `kubectl delete pod ` for each consul daemonset pod
-2. Set the updateStrategy to rolling update with a small number:
+1. Set the updateStrategy to rolling update with a small number:
-```yaml
-client:
- updateStrategy: |
- rollingUpdate:
- maxUnavailable: 2
- type: RollingUpdate
-```
+ ```yaml
+ client:
+ updateStrategy: |
+ rollingUpdate:
+ maxUnavailable: 2
+ type: RollingUpdate
+ ```
-Then, run `helm upgrade`. This will upgrade the clients in batches, waiting
-until the clients come up healthy before continuing.
+ Then, run `helm upgrade`. This will upgrade the clients in batches, waiting
+ until the clients come up healthy before continuing.
-3. Cordon and drain each node to ensure there are no connect pods active on it, and then delete the
+1. Cordon and drain each node to ensure there are no connect pods active on it, and then delete the
consul client pod on that node.
-> NOTE: If you are using only the Service Sync functionality, you can perform an upgrade without