skills/devops-sre/helm/SKILL.md
Helm is a package manager for Kubernetes that allows defining, installing, and upgrading applications via charts.
npx skillsauth add alphaonedev/openclaw-graph helmInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Helm is a package manager for Kubernetes, enabling users to define, install, and upgrade applications using charts. It simplifies managing Kubernetes resources by packaging them into reusable templates.
Use Helm for deploying and managing applications on Kubernetes clusters, especially when handling multiple environments, versioning dependencies, or automating deployments. Ideal for DevOps workflows involving microservices, where consistent application packaging is needed, such as in CI/CD pipelines for scalable apps.
To use Helm, first ensure Kubernetes access via kubectl or set the KUBECONFIG environment variable (e.g., export KUBECONFIG=~/.kube/config). Initialize Helm with helm init if needed, then add repositories and install charts. For custom deployments, create a chart with helm create mychart, edit values.yaml, and install. Always specify the namespace with --namespace flag for multi-tenant clusters.
Helm operates via CLI commands; no direct REST API exists, but it interacts with Kubernetes API server.
helm install myrelease stable/nginx --set service.type=LoadBalancer --namespace dev
--set for inline overrides, --values for external YAML file (e.g., helm install --values values.yaml).helm upgrade myrelease stable/nginx --set replicas=3
--atomic for rollback on failure.helm list --all-namespaceshelm uninstall myrelease --namespace devhelm search repo nginx
Code snippet for a basic values.yaml file:replicaCount: 2
image:
repository: nginx
tag: latest
To add a repository: helm repo add stable https://charts.helm.sh/stable, then update with helm repo update.
Helm integrates with Kubernetes tools; ensure your cluster is accessible via the Kubernetes API. For authentication, use $KUBECONFIG for client certificates or tokens. In CI/CD (e.g., GitHub Actions), run Helm in a container with kubectl installed: set env var like export HELM_REPOSITORY_CONFIG=repo.yaml. For Terraform integration, use Helm provider: define in HCL as resource "helm_release" "nginx" { name = "myrelease" chart = "stable/nginx" set { name = "service.type" value = "LoadBalancer" } }. Avoid conflicts by using Helm's --wait flag with Kubernetes operators.
Common errors include "chart not found" (fix by running helm repo update), permission issues (ensure RBAC via kubectl create clusterrolebinding), or failed hooks (check with helm status). For deployment failures, use helm history release-name to review revisions, then rollback with helm rollback release-name 0. If a chart install errors due to invalid values, validate YAML first with a linter like yamllint values.yaml. Always check Kubernetes events with kubectl get events --namespace dev for root causes.
helm repo add bitnami https://charts.bitnami.com/bitnami, then install: helm install mywordpress bitnami/wordpress --set wordpressUsername=admin --set wordpressPassword=$WP_PASSWORD --namespace web. This deploys WordPress with custom credentials; ensure $WP_PASSWORD is set as an env var for security.helm install mymongo bitnami/mongodb --set auth.enabled=true, then upgrade: helm upgrade mymongo bitnami/mongodb --set resources.requests.memory=512Mi --namespace db. This scales resources; monitor with helm status mymongo to verify.tools
Root web development: project structure, tooling selection, deployment decisions
development
WebAssembly: Rust/Go/C to WASM, wasm-bindgen, Emscripten, WASM Component Model
development
Vue 3: Composition API script setup, Pinia, Vue Router 4, SFCs, Vite, Nuxt 3
tools
Tailwind CSS 4: utility classes, config, JIT, arbitrary values, darkMode, plugins, shadcn/ui