# Upgrading Linkerd ## Steps to upgrade linkerd helm chart 1. Update the linkerd version in `.version.bzl`. 2. Run the following to retrieve the checksum for the helm chart. Replace the value for `RELEASE_CHECKSUM`. ```bash wget https://github.com/linkerd/linkerd2/archive/refs/tags/edge-24.5.5.tar.gz && sha256sum edge-24.5.5.tar.gz && rm -rf edge-24.5.5.tar.gz ``` 3. Run `just third_party/k8s/linkerd/update` to update linkerd helm chart and files. 4. Change the init proxy version variable `PROXY_INIT_VERSION` in `.version.bzl` to the output of `just third_party/k8s/linkerd/print-proxy-init-version`. 5. Change the `version` and `proxy_init_version` in `justfile`. ## Steps to upgrade the linkerd container images 1. Run the following bazel commands. This will print out the container digests for linkerd and the init proxy. ``` bazel run --config=quiet //third_party/k8s/linkerd:print-proxy-init-digests bazel run --config=quiet //third_party/k8s/linkerd:print-linkerd-digests ``` 2. Copy the digests for both the linkerd containers and proxy init container to `digests.bzl`. 3. The output of `digests.bzl` should look something like the following. ``` """List of all digests for container images""" DEBUG_DIGEST = "sha256:f659c2dd9ff244f94d6b8e58d0ab34149625d0208ae60d9ad40d7de7e35a907e" CONTROLLER_DIGEST = "sha256:d186c2c06ea586163ac4b0cd4c34c5c63f0e850369c8cf46ab3322d9e7d16ec8" PROXY_DIGEST = "sha256:7afe16f9e39597b77c944fba302d1de6bcf536c591f6499d104ca0e08214551c" POLICY_CONTROLLER_DIGEST = "sha256:2b8b21b233c3ecccbf28429c2fece814383b50ef47d62df7eb58a05ef1819cd3" PROXY_INIT_DIGEST = "sha256:25776f5d7f1f4061758d41ea9dec9b8520364c04a37d382268264fe91ed15cbb" ``` # Testing ## Fetch and pack Both of these commands should pass and the pallet should render. 1. Attempt to fetch the container images: ```bash just third_party/k8s/linkerd/test-container-pull ``` 2. Pack the pallet: ```bash lift pack config/pallets/linkerdctl/controller/linkerd ``` ## Apply Ensure to apply the Linkerd pallet to an Edge O/S store and verify the upgrade is successful and existing/new pods/workloads are meshed. `airfryer` and `slowcooker` should also be used for testing. 1. Update `config/pallets/linkerdctl/controller/base/deployment.yaml` to add this to `spec.template.spec.containers[0]`: ```yaml env: - name: REGISTRY value: us-east1-docker.pkg.dev/ret-edge-pltf-infra/workloads ``` 2. `lift apply --registry=us-east1-docker.pkg.dev/ret-edge-pltf-infra/workloads config/pallets/linkerdctl/controller/linkerd` where `` contains required parameters such as `--cluster-uuid=...` 3. Remove amendment to `config/pallets/linkerdctl/controller/base/deployment.yaml` (it is only for testing purposes).