NYC
skills/smithery/ai/k8s-helm

k8s-helm

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

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

Weekly Installs
1
Repository
smithery/ai
First Seen
3 days ago
Installed on
claude-code1