Overview
This guide covers adding new Kubernetes infrastructure components and managing configurations across environments. Infrastructure components are third-party tools deployed via Helm that provide platform capabilities.Add a New Infrastructure Component
1
Create the wrapper chart directory
2
Create Chart.yaml.tmpl
The template allows environment-specific chart versions:
3
Create values.yaml
Define base configuration and chart versions:
4
Create environment-specific values
values.staging.yaml:values.production.yaml:values.local.yaml:
5
Add custom resources (optional)
Create templates in
templates/ for resources not provided by the upstream chart:6
Create mise.toml for rendering
Register with ArgoCD
1
Add to infrastructure values
Edit
kubernetes/src/argocd/infrastructure/values.yaml:2
Render all manifests
3
Commit and push
Environment-Specific Configuration
Values Hierarchy
Values are merged in order (later files override earlier):values.yaml- Base configurationvalues.{cluster}.yaml- Environment-specific overrides
Common Patterns
Different resource limits per environment:Add to Local Development
1
Create local values
Create
values.local.yaml with local-specific settings:2
Add to infrastructure Tiltfile
Edit
kubernetes/src/infrastructure/Tiltfile:Update the Render Pipeline
If your component needs to be rendered as part of the main render task: Editkubernetes/mise.toml to include your component:
Namespace Management
Components typically run in their own namespace. Create it in your templates:Troubleshooting
Helm dependency errors
Template rendering errors
ArgoCD not detecting the new Application
-
Verify the Application manifest was generated:
-
Check the infrastructure app-of-apps is synced:
-
Force a sync:
Best Practices
- Use the wrapper chart pattern - Never modify upstream charts directly
- Version pin dependencies - Always specify exact versions in
chartVersions - Minimize environment differences - Keep staging similar to production
- Document custom resources - Explain why custom templates are needed
- Test locally first - Use Tilt before deploying to staging
Next Steps
- Managing Secrets - Configure secrets for your component
- Updating 3rd Party Applications - Update component versions