Initial commit

This commit is contained in:
Zhongwei Li
2025-11-29 18:15:16 +08:00
commit 8e6cf6b820
7 changed files with 603 additions and 0 deletions

View File

@@ -0,0 +1,110 @@
# Helm Best Practices
This skill provides Helm chart development and maintenance patterns.
## When to Use
Activates when:
- Working with Helm charts
- Modifying Chart.yaml dependencies
- Updating Helm values
- Deploying applications with Helm
## Dependency Management
### Critical Rules
**Always use `helm dependency update`** - NOT `helm dependency build`
```bash
# Correct
helm dependency update
# Wrong - Don't use this
helm dependency build
```
**After changing Chart.yaml dependencies:**
1. Run `helm dependency update` to fetch updated dependencies
2. Run `make check-deps` before committing changes
3. Pre-commit hooks automatically rebuild dependencies
### Common Workflow
```bash
# 1. Modify Chart.yaml
vim Chart.yaml
# 2. Update dependencies
helm dependency update
# 3. Check dependencies
make check-deps
# 4. Commit changes (pre-commit hook runs automatically)
git add Chart.yaml Chart.lock charts/
git commit -m "update helm dependencies"
```
## Helm Commands
### Testing Charts
```bash
# Template and check output
helm template <release-name> <chart-path>
# Template with specific values
helm template <release-name> <chart-path> -f values.yaml
# Dry-run install
helm install <release-name> <chart-path> --dry-run --debug
```
### Debugging
```bash
# Check current values
helm get values <release-name>
# Check all computed values
helm get values <release-name> --all
# Get manifest
helm get manifest <release-name>
```
## Best Practices
### Chart Structure
- Keep templates focused and modular
- Use helpers (`_helpers.tpl`) for repeated logic
- Document all values in `values.yaml` with comments
- Use semantic versioning for chart versions
### Values Organization
- Use nested structures for related values
- Provide sensible defaults
- Document required vs optional values
- Use `.Values` consistently
### Dependency Management
- Pin dependency versions explicitly
- Use repository URLs, not local paths in production
- Keep `Chart.lock` in version control
- Run `make check-deps` before committing
## Common Gotchas
**Don't:**
- Use `helm dependency build` (use `update` instead)
- Forget to run `make check-deps` before committing
- Commit without running pre-commit hooks
- Hard-code values that should be configurable
**Do:**
- Use `helm dependency update` for dependency changes
- Run `make check-deps` as part of your workflow
- Let pre-commit hooks rebuild dependencies automatically
- Make values configurable and well-documented