# k8s-helm > Manage Helm charts, releases, and repositories. Use for Helm installations, upgrades, rollbacks, chart development, and release management. - Author: AI Upload Bot - Repository: saifeezibrahim/kubectl-mcp-server-devops-ai - Version: 20260203020525 - Stars: 0 - Forks: 0 - Last Updated: 2026-02-06 - Source: https://github.com/saifeezibrahim/kubectl-mcp-server-devops-ai - Web: https://mule.run/skillshub/@@saifeezibrahim/kubectl-mcp-server-devops-ai~k8s-helm:20260203020525 --- --- name: k8s-helm description: Manage Helm charts, releases, and repositories. Use for Helm installations, upgrades, rollbacks, chart development, and release management. license: Apache-2.0 metadata: author: rohitg00 version: "1.0.0" tools: 16 category: workloads --- # Helm Chart Management Comprehensive Helm v3 operations using kubectl-mcp-server's 16 Helm tools. ## When to Apply Use this skill when: - User mentions: "helm", "chart", "release", "values", "repository" - Operations: installing charts, upgrading releases, rollbacks - Keywords: "package", "template", "lint", "repo add" ## Priority Rules | 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` | ## Quick Reference | 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 Chart ```python install_helm_chart( name="my-release", chart="bitnami/nginx", namespace="web", values={"replicaCount": 3, "service.type": "LoadBalancer"} ) ``` ## Upgrade Release ```python upgrade_helm_release( name="my-release", chart="bitnami/nginx", namespace="web", values={"replicaCount": 5} ) ``` ## Rollback Release ```python rollback_helm_release( name="my-release", namespace="web", revision=1 ) ``` ## Uninstall Release ```python uninstall_helm_chart(name="my-release", namespace="web") ``` ## Release Management ### List Releases ```python list_helm_releases(namespace="web") list_helm_releases() ``` ### Get Release Details ```python get_helm_release(name="my-release", namespace="web") ``` ### Release History ```python get_helm_history(name="my-release", namespace="web") ``` ### Get Release Values ```python get_helm_values(name="my-release", namespace="web") ``` ### Get Release Manifest ```python get_helm_manifest(name="my-release", namespace="web") ``` ## Repository Management ### Add Repository ```python add_helm_repo(name="bitnami", url="https://charts.bitnami.com/bitnami") ``` ### List Repositories ```python list_helm_repos() ``` ### Update Repositories ```python update_helm_repos() ``` ### Search Charts ```python search_helm_charts(keyword="nginx") search_helm_charts(keyword="postgres", repo="bitnami") ``` ## Chart Development ### Template Chart (Dry Run) ```python template_helm_chart( name="my-release", chart="./my-chart", namespace="test", values={"key": "value"} ) ``` ### Lint Chart ```python lint_helm_chart(chart="./my-chart") ``` ### Package Chart ```python package_helm_chart(chart="./my-chart", destination="./packages") ``` ## Common Workflows ### New Application Deployment ```python add_helm_repo(name="bitnami", url="...") search_helm_charts(keyword="postgresql") template_helm_chart(...) install_helm_chart(...) get_helm_release(...) ``` ### Upgrade with Rollback Safety ```python get_helm_history(name, namespace) upgrade_helm_release(name, chart, namespace, values) rollback_helm_release(name, namespace, revision) ``` ### Multi-Environment Deployment ```python 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" ) ``` ## Chart Structure See [references/CHART-STRUCTURE.md](references/CHART-STRUCTURE.md) for best practices on organizing Helm charts. ## Troubleshooting See [TROUBLESHOOTING.md](TROUBLESHOOTING.md) for common issues. ### Release Stuck in Pending ```python get_helm_release(name, namespace) get_pods(namespace, label_selector="app.kubernetes.io/instance=") ``` ### Failed Installation ```python get_helm_history(name, namespace) get_events(namespace) uninstall_helm_chart(name, namespace) ``` ### Values Not Applied ```python get_helm_values(name, namespace) template_helm_chart(...) upgrade_helm_release(...) ``` ## Scripts See [scripts/lint-chart.sh](scripts/lint-chart.sh) for automated chart validation. ## Best Practices 1. **Always Template First** ```python template_helm_chart(name, chart, namespace, values) ``` 2. **Use Semantic Versioning** ```python install_helm_chart(..., version="1.2.3") ``` 3. **Store Values in Git** - `values-dev.yaml` - `values-staging.yaml` - `values-prod.yaml` 4. **Namespace Isolation** - One namespace per release - Easier cleanup and RBAC ## Prerequisites - **Helm CLI**: Required for all Helm operations ```bash curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash ``` ## Related Skills - [k8s-deploy](../k8s-deploy/SKILL.md) - Deployment strategies - [k8s-gitops](../k8s-gitops/SKILL.md) - GitOps Helm releases