Upgrade a Vendored Chart
These steps can affect shared dev workloads or the GitOps control layer. Confirm the target repo, environment, and intended owner before mutating anything.
Crawbl vendors all third-party Helm charts into Git. When a new chart version is available, follow this guide to upgrade safely.
Remove the old chart
Start in crawbl-argocd-apps and remove the existing vendored chart directory.
cd crawbl-argocd-apps
rm -rf components/<name>/chart
Pull the new version
Pull the replacement chart from the Helm repo or OCI registry.
helm repo update
helm pull <repo-name>/<chart-name> --version <new-version> \
--untar -d components/<name>/chart/
For OCI charts:
helm pull oci://<registry>/<chart> --version <new-version> \
--untar -d components/<name>/chart/
Review the diff
Inspect the chart changes before you commit them.
git diff components/<name>/chart
Pay attention to changed defaults, new required values, CRD changes, and immutable fields like volumeClaimTemplates.
Update values if needed
If the new chart changed value names or requirements, update components/<name>/envs/dev.yaml to match.
Commit and push
Push the upgraded chart and let ArgoCD roll it out.
git add components/<name>/chart
git commit -m "Upgrade <name> chart to <new-version>"
git push origin main
Monitor the rollout with:
kubectl get application <name> -n argocd -w
Handling Sync Failures After Upgrade
If ArgoCD sync fails after the upgrade:
Immutable field conflict (StatefulSet): Kubernetes cannot update volumeClaimTemplates in-place. Delete the StatefulSet while preserving data:
kubectl delete statefulset <name> -n <namespace> --cascade=orphan
kubectl delete pod <name>-0 -n <namespace>
ArgoCD recreates the StatefulSet on the next sync. The --cascade=orphan flag preserves existing pods and PVCs.
CRD conflicts: Apply CRDs manually before the chart sync:
kubectl apply -f components/<name>/chart/<chart-dir>/crds/
Validation errors: Check kubectl describe application <name> -n argocd for the specific error and update your values accordingly.
Helm Repository Reference
Add these repositories before pulling charts:
helm repo add jetstack https://charts.jetstack.io
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo add external-dns https://kubernetes-sigs.github.io/external-dns/
helm repo add external-secrets https://charts.external-secrets.io
Envoy Gateway uses OCI — no helm repo add needed:
helm pull oci://docker.io/envoyproxy/gateway-helm --version v1.7.0 \
--untar -d components/envoy-gateway/chart/
Current Chart Versions
| Chart | Version |
|---|---|
| cert-manager | v1.20.0 |
| envoy-gateway | v1.7.0 |
| external-secrets | 0.9.x |
| postgresql (Bitnami) | 18.5.14 |
| redis (Bitnami) | 25.3.9 |
| external-dns | 1.16.1 |
| ArgoCD (Pulumi-managed) | 7.8.13 |
What's next: CrashLoopBackOff