Agent skill

k8s-helm

Manage Helm charts, releases, and repositories. Use for Helm installations, upgrades, rollbacks, chart development, and release management.

Stars 865
Forks 168

Install this agent skill to your Project

npx add-skill https://github.com/rohitg00/kubectl-mcp-server/tree/main/kubernetes-skills/claude/k8s-helm

Metadata

Additional technical details for this skill

tools
16
author
rohitg00
version
1.0.0
category
workloads

SKILL.md

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 for best practices on organizing Helm charts.

Troubleshooting

See TROUBLESHOOTING.md for common issues.

Release Stuck in Pending

python
get_helm_release(name, namespace)

get_pods(namespace, label_selector="app.kubernetes.io/instance=<release>")

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 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 - Deployment strategies
  • k8s-gitops - GitOps Helm releases

Expand your agent's capabilities with these related and highly-rated skills.

Didn't find tool you were looking for?

Be as detailed as possible for better results