Overview
Third-party applications are infrastructure components deployed via Helm charts, things like traefik, cert-manager, external-secrets, and ArgoCD itself. This page covers how to update their versions and configurations.Infrastructure Components
The kit includes these third-party components inkubernetes/src/infrastructure/:
| Component | Chart Source | Purpose |
|---|---|---|
| argocd | argoproj.github.io | GitOps controller |
| cert-manager | quay.io/jetstack | TLS certificate automation |
| cloudnative-pg | cloudnative-pg.github.io | PostgreSQL operator |
| external-dns | kubernetes-sigs.github.io | DNS record management |
| external-secrets | charts.external-secrets.io | Secret synchronization |
| traefik | ghcr.io/traefik/helm | Ingress controller |
| karpenter | public.ecr.aws/karpenter | Node autoscaling |
| reloader | stakater.github.io | Pod restart on config changes |
| signoz-k8s-infra | charts.signoz.io | Observability collectors |
Update Chart Versions
Each component uses a “wrapper chart” pattern: a local Helm chart that includes the upstream chart as a dependency.Find the current version
Check the current version in the component’s Look for the
values.yaml:chartVersions section:Update the version
Edit the values file to update the version:For environment-specific versions, edit
values.staging.yaml or values.production.yaml. Setting these independently allows for testing upgrades in lower environments before rolling out to production.Update Configuration
To change component settings without upgrading versions:Edit the values file
Modify For example, increase controller replicas:
values.yaml for base configuration or values.{environment}.yaml for environment-specific settings:Add Additional Manifests
Many components need additional manifests beyond the upstream chart (ClusterIssuers, StorageClasses, etc.). Add these in the wrapper chart’stemplates/ directory:
Environment-Specific Configuration
Use values overlay files for environment differences:Enable/Disable Components
Components are enabled/disabled in the ArgoCD infrastructure app-of-apps:Upgrade Strategies
Minor/Patch Updates
For minor and patch version updates (e.g.,4.12.2 → 4.12.3):
- Update the version in values.yaml
- Run
helm dependency update - Render, commit, and push
- ArgoCD syncs automatically
Major Updates
For major version updates (e.g.,4.x → 5.x):
- Read the changelog for breaking changes
- Test in staging first before production
- Update values if configuration schema changed
- Have a rollback plan if the component is critical
CRD Updates
Some components (cert-manager, ArgoCD, Karpenter) use CRDs that may need manual updates:Best Practices
- Test in staging first - Always upgrade staging before production
- Read changelogs - Especially for major versions
- Update one component at a time - Easier to isolate issues
- Keep versions consistent - Use the same version across environments when possible
- Monitor after upgrades - Watch metrics and logs for regressions
Next Steps
- Adding K8s Infrastructure - Add new infrastructure components
- Managing Secrets - Configure External Secrets