# 506 Kubernetes Helm Advanced 3fbb5982

> Helm Advanced - Templates & Hooks

- Skill: `tools-only/506-kubernetes-helm-advanced-3fbb5982` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add tools-only/506-kubernetes-helm-advanced-3fbb5982`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tools-only/506-kubernetes-helm-advanced-3fbb5982/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: DevOps & Infra
- Author: tools-only (https://skillmd.com/u/tools-only)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/tools-only/506-kubernetes-helm-advanced-3fbb5982

---

# Helm Advanced - Templates & Hooks

## Template Variables
```yaml
# templates/deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: {{ include "mychart.fullname" . }}
spec:
  replicas: {{ .Values.replicaCount }}
  template:
    spec:
      containers:
      - name: {{ .Chart.Name }}
        image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
        {{- if .Values.resources }}
        resources:
          {{- toYaml .Values.resources | nindent 10 }}
        {{- end }}
```

## Helper Templates
```yaml
# templates/_helpers.tpl
{{- define "mychart.fullname" -}}
{{- printf "%s-%s" .Release.Name .Chart.Name | trunc 63 | trimSuffix "-" }}
{{- end }}

{{- define "mychart.labels" -}}
app.kubernetes.io/name: {{ .Chart.Name }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end }}
```

## Hooks
```yaml
apiVersion: batch/v1
kind: Job
metadata:
  name: "{{ .Release.Name }}-post-install"
  annotations:
    "helm.sh/hook": post-install
    "helm.sh/hook-delete-policy": hook-succeeded
spec:
  template:
    spec:
      containers:
      - name: post-install
        command: ["/bin/sh", "-c", "echo 'Done'"]
      restartPolicy: Never
```

Hook types: `pre-install`, `post-install`, `pre-upgrade`, `post-upgrade`

## Packaging
```bash
helm package mychart
helm repo index . --url https://charts.example.com
helm push mychart-1.0.0.tgz oci://registry.example.com/helm
helm repo add myrepo https://charts.example.com
helm install myapp myrepo/mychart
```

## Commands

| Command | Purpose |
|---------|---------|
| `helm create` | Create |
| `helm lint` | Validate |
| `helm template` | Render |
| `helm install` | Deploy |
| `helm upgrade` | Update |
| `helm rollback` | Revert |
| `helm uninstall` | Remove |

