> k8s-helm

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

fetch
$curl "https://skillshub.wtf/rohitg00/kubectl-mcp-server/k8s-helm?format=md"
SKILL.mdk8s-helm

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

PriorityRuleImpactTools
1Template before install (dry run)CRITICALtemplate_helm_chart
2Check existing releases firstCRITICALlist_helm_releases
3Lint charts before packagingHIGHlint_helm_chart
4Note revision before upgradeHIGHget_helm_history
5Verify values after upgradeMEDIUMget_helm_values
6Update repos before searchLOWupdate_helm_repos

Quick Reference

TaskToolExample
Install chartinstall_helm_chartinstall_helm_chart(name, chart, namespace)
Upgrade releaseupgrade_helm_releaseupgrade_helm_release(name, chart, namespace, values)
Rollbackrollback_helm_releaserollback_helm_release(name, namespace, revision)
List releaseslist_helm_releaseslist_helm_releases(namespace)
Get valuesget_helm_valuesget_helm_values(name, namespace)
Template (dry run)template_helm_charttemplate_helm_chart(name, chart, namespace)

Install Chart

install_helm_chart(
    name="my-release",
    chart="bitnami/nginx",
    namespace="web",
    values={"replicaCount": 3, "service.type": "LoadBalancer"}
)

Upgrade Release

upgrade_helm_release(
    name="my-release",
    chart="bitnami/nginx",
    namespace="web",
    values={"replicaCount": 5}
)

Rollback Release

rollback_helm_release(
    name="my-release",
    namespace="web",
    revision=1
)

Uninstall Release

uninstall_helm_chart(name="my-release", namespace="web")

Release Management

List Releases

list_helm_releases(namespace="web")

list_helm_releases()

Get Release Details

get_helm_release(name="my-release", namespace="web")

Release History

get_helm_history(name="my-release", namespace="web")

Get Release Values

get_helm_values(name="my-release", namespace="web")

Get Release Manifest

get_helm_manifest(name="my-release", namespace="web")

Repository Management

Add Repository

add_helm_repo(name="bitnami", url="https://charts.bitnami.com/bitnami")

List Repositories

list_helm_repos()

Update Repositories

update_helm_repos()

Search Charts

search_helm_charts(keyword="nginx")

search_helm_charts(keyword="postgres", repo="bitnami")

Chart Development

Template Chart (Dry Run)

template_helm_chart(
    name="my-release",
    chart="./my-chart",
    namespace="test",
    values={"key": "value"}
)

Lint Chart

lint_helm_chart(chart="./my-chart")

Package Chart

package_helm_chart(chart="./my-chart", destination="./packages")

Common Workflows

New Application Deployment

add_helm_repo(name="bitnami", url="...")

search_helm_charts(keyword="postgresql")

template_helm_chart(...)

install_helm_chart(...)

get_helm_release(...)

Upgrade with Rollback Safety

get_helm_history(name, namespace)

upgrade_helm_release(name, chart, namespace, values)

rollback_helm_release(name, namespace, revision)

Multi-Environment Deployment

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

get_helm_release(name, namespace)

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

Failed Installation

get_helm_history(name, namespace)

get_events(namespace)

uninstall_helm_chart(name, namespace)

Values Not Applied

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

    template_helm_chart(name, chart, namespace, values)
    
  2. Use Semantic Versioning

    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
    curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
    

Related Skills

┌ stats

installs/wk0
░░░░░░░░░░
github stars847
██████████
first seenMar 17, 2026
└────────────

┌ repo

rohitg00/kubectl-mcp-server
by rohitg00
└────────────

┌ tags

└────────────