Manage Helm charts, releases, and repositories. Use for Helm installations, upgrades, rollbacks, chart development, and release management.
Comprehensive Helm v3 operations using kubectl-mcp-server's 16 Helm tools.
Use this skill when:
| Priority | Rule | Impact | Tools |
|---|---|---|---|
| 1 | Template before install (dry run) | CRITICAL | template_helm_chart |
| 2 | Check existing releases first | CRITICAL | list_helm_releases |
| 3 | Lint charts before packaging | HIGH | lint_helm_chart |
| 4 | Note revision before upgrade | HIGH | get_helm_history |
| 5 | Verify values after upgrade | MEDIUM | get_helm_values |
| 6 | Update repos before search | LOW | update_helm_repos |
| Task | Tool | Example |
|---|---|---|
| Install chart | install_helm_chart |
install_helm_chart(name, chart, namespace) |
| Upgrade release | upgrade_helm_release |
upgrade_helm_release(name, chart, namespace, values) |
| Rollback | rollback_helm_release |
rollback_helm_release(name, namespace, revision) |
| List releases | list_helm_releases |
list_helm_releases(namespace) |
| Get values | get_helm_values |
get_helm_values(name, namespace) |
| Template (dry run) | template_helm_chart |
template_helm_chart(name, chart, namespace) |
install_helm_chart(
name="my-release",
chart="bitnami/nginx",
namespace="web",
values={"replicaCount": 3, "service.type": "LoadBalancer"}
)
upgrade_helm_release(
name="my-release",
chart="bitnami/nginx",
namespace="web",
values={"replicaCount": 5}
)
rollback_helm_release(
name="my-release",
namespace="web",
revision=1
)
uninstall_helm_chart(name="my-release", namespace="web")
list_helm_releases(namespace="web")
list_helm_releases()
get_helm_release(name="my-release", namespace="web")
get_helm_history(name="my-release", namespace="web")
get_helm_values(name="my-release", namespace="web")
get_helm_manifest(name="my-release", namespace="web")
add_helm_repo(name="bitnami", url="https://charts.bitnami.com/bitnami")
list_helm_repos()
update_helm_repos()
search_helm_charts(keyword="nginx")
search_helm_charts(keyword="postgres", repo="bitnami")
template_helm_chart(
name="my-release",
chart="./my-chart",
namespace="test",
values={"key": "value"}
)
lint_helm_chart(chart="./my-chart")
package_helm_chart(chart="./my-chart", destination="./packages")
add_helm_repo(name="bitnami", url="...")
search_helm_charts(keyword="postgresql")
template_helm_chart(...)
install_helm_chart(...)
get_helm_release(...)
get_helm_history(name, namespace)
upgrade_helm_release(name, chart, namespace, values)
rollback_helm_release(name, namespace, revision)
install_helm_chart(
name="app",
chart="./charts/app",
namespace="dev",
values={"replicas": 1},
context="development"
)
install_helm_chart(
name="app",
chart="./charts/app",
namespace="staging",
values={"replicas": 2},
context="staging"
)
install_helm_chart(
name="app",
chart="./charts/app",
namespace="prod",
values={"replicas": 5},
context="production"
)
See references/CHART-STRUCTURE.md for best practices on organizing Helm charts.
See TROUBLESHOOTING.md for common issues.
get_helm_release(name, namespace)
get_pods(namespace, label_selector="app.kubernetes.io/instance=<release>")
get_helm_history(name, namespace)
get_events(namespace)
uninstall_helm_chart(name, namespace)
get_helm_values(name, namespace)
template_helm_chart(...)
upgrade_helm_release(...)
See scripts/lint-chart.sh for automated chart validation.
Always Template First
template_helm_chart(name, chart, namespace, values)
Use Semantic Versioning
install_helm_chart(..., version="1.2.3")
Store Values in Git
values-dev.yamlvalues-staging.yamlvalues-prod.yamlNamespace Isolation
curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash