## Get the secret and extract the release.json from it ```bash kubectl get secret sh.helm.release.v1.. -o json > helm-release-secret.json # backup just in case cp helm-release-secret.json helm-release-secret.json.bak # extract the actual release from the secret jq -r '.data.release' helm-release-secret.json \ | base64 -d \ | base64 -d \ | gunzip \ | jq \ > release.json ``` ## Modify the manifest field and re-encode it in the release json ```bash jq -r .manifest release.json > manifest.yaml # modify manifest.yaml as you wish jq --arg manifest "$(cat manifest.yaml)" '.manifest = $manifest' release.json > release-mod.json ``` ## Re-encode the modified release json into the secret Notice the `jq -c . release-mod.json`, it's to compact the json, removes newlines (there are a lot of lines in the json like ~2K). ```bash jq --arg release "$(jq -c . release-mod.json | gzip | base64 -w0 | base64 -w0)" '.data.release = $release' helm-release-secret.json > helm-release-secret-mod.json ``` ## Update the helm release secret in the kube cluster ```bash kubectl apply -f helm-release-secret-mod.json ```