k8s-helm
Manage Helm charts, releases, and repositories. Use for Helm installations, upgrades, rollbacks, chart development, and release management.
Works with
---
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
---
# 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=<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](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 releasesMore Deployment & CI/CD skills
azure-enterprise-infra-planner
microsoft/azure-skills
Architect and provision enterprise Azure infrastructure from workload descriptions. For cloud architects and platform engineers planning networking, identity, security, compliance, and multi-resource topologies with WAF alignment. Generates Bicep or Terraform directly (no azd). WHEN: 'plan Azure infrastructure', 'architect Azure landing zone', 'design hub-spoke network', 'plan multi-region DR topology', 'set up VNets firewalls and private endpoints', 'subscription-scope Bicep deployment', 'Azure Backup for VM workloads'. PREFER azure-prepare FOR app-centric workflows.
azure-kubernetes-app-deploy
microsoft/azure-skills
Use when deploying an existing web application or API to an already-running Azure Kubernetes Service cluster. Detects the framework, generates a Dockerfile and Kubernetes manifests, validates against AKS Deployment Safeguards, and deploys with verification. WHEN: deploy app to AKS, deploy to existing AKS cluster, containerize app for Kubernetes, generate K8s manifests for Azure, set up CI/CD for AKS, my AKS deployment is failing safeguard checks, I have a Django/Express/Spring Boot app to run on AKS. DO NOT USE FOR: creating or provisioning an AKS cluster (use azure-kubernetes), assessing migration to AKS Automatic (use azure-kubernetes-automatic-readiness), or deploying to non-AKS targets like Web Apps, Container Apps, or Functions.
finetuning
microsoft/azure-skills
Fine-tune models on Microsoft Foundry using SFT (supervised), DPO (preference), or RFT (reinforcement with graders). Covers dataset preparation, training job submission, deployment, and evaluation. USE FOR: fine-tune, SFT, DPO, RFT, training data, grader, distillation, fine-tuned model, training job, large file upload, calibrate grader, deploy fine-tuned model, evaluate fine-tuned model. DO NOT USE FOR: general model deployment without fine-tuning (use deploy-model), agent creation (use agents), prompt optimization without training (use prompt-optimizer).

