Mulai memakai Helm: instalasi Helm 3 lewat script installer maupun package manager, setup shell completion, struktur CLI, manajemen repository chart, mencari chart di Artifact Hub, hingga deployment pertama dengan helm install.

Setelah di episode 2 kita membedah arsitektur Helm 3 — client-only tanpa Tiller, release tersimpan di Secret, dan mekanisme three-way merge — kini saatnya naik ke kokpit. Pada episode ini kalian akan benar-benar memakai Helm: memasang binary-nya, membuat terminal kalian nyaman dengan completion, memahami struktur perintah, mengelola repository chart, mencari chart yang tepat, dan melakukan deployment pertama dengan Helm.
Mengapa episode ini penting? Karena distribusi dan manajemen chart adalah bahasa keseharian seorang engineer Kubernetes. Di dunia nyata, jarang sekali tim membangun chart dari nol untuk semua hal — mereka memakai chart dari community (Bitnami, ingress-nginx, prometheus-community, grafana), menyesuaikan values-nya, dan deploy dalam hitungan menit. Kemampuan mencari chart yang benar, menilai versinya, dan menambahkan repository dengan aman adalah keterampilan yang menentukan produktivitas. Di akhir episode ini, kalian akan memiliki chart nginx yang berjalan di cluster — deployment pertama dari sekian banyak yang akan kalian lakukan di series ini.
Helm 3 adalah satu binary tanpa daemon — tidak ada service yang perlu dijalankan atau di-enable. Tiga cara umum untuk memasangnya:
curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
chmod 700 get_helm.sh
./get_helm.shVerifikasi instalasi — perintah yang akan menjadi refleks kalian:
helm version
helm version --shorthelm version --short menampilkan hanya v3.x.y — angka major 3 harus ada. Jika belum, jangan lanjut: seluruh series ini memakai Helm 3, dan perintah-perintahnya berbeda dari Helm 2. Setelah itu, pastikan Helm bisa berbicara ke cluster:
kubectl cluster-info
helm envOutput helm env menampilkan variabel environment yang dipakai Helm — di antaranya HELM_NAMESPACE (namespace default, biasanya default) dan lokasi HELM_CACHE_HOME. Selama kubectl cluster-info berhasil, Helm sudah siap.
Helm memiliki banyak subcommand dan flag — jangan hafalkan semua. Pasang completion agar tab-completion membantu kalian, dan hemat ratusan ketikan per hari:
helm completion bash > ~/.bashrc.d/helm.bash
source ~/.bashrc.d/helm.bashhelm completion zsh > "${fpath[1]}/_helm"
compinitUntuk fish, gunakan helm completion fish dengan cara yang mirip. Efeknya langsung terasa: ketik helm in lalu tab → helm install; ketik helm repo a lalu tab → helm repo add. Completion juga menampilkan daftar flag yang valid, jadi kalian tidak perlu membuka dokumentasi setiap kali lupa nama opsi.
Seluruh CLI Helm mengikuti satu pola: helm <command> [subcommand] [flags]. Pahami dulu peta perintahnya:
install, upgrade, rollback, uninstall, list, status, history.create, package, pull, template, lint, dependency.repo add, repo list, repo update, repo remove, repo index.version, env, search, show, get, completion, help.helm help
helm install --help
helm list --helpDua kebiasaan yang harus ditanamkan sejak awal:
helm <command> --help adalah dokumentasi pertama — flag yang tersedia, contoh penggunaan, dan catatan perintah tertulis di sana. Biasakan membaca sebelum bertanya ke Google.-o / --output ketika kalian ingin mem-parsing hasil. helm list -o json dan helm list -o yaml mengubah output tabel menjadi data yang bisa diproses jq atau script:helm list -o json | jq '.[].name'
helm list -o json | jq '.[] | select(.status == "deployed") | .name'Chart diambil dari repository — server yang menyimpan arsip .tgz dan file index.yaml. Sebelum bisa meng-install dari sebuah repository, kalian harus menambahkannya ke daftar lokal Helm:
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo add grafana https://grafana.github.io/helm-charts
helm repo listhelm repo add hanya mencatat alamat — belum mengunduh apa pun. Untuk mengambil metadata terbaru (index) dari semua repository yang terdaftar, jalankan:
helm repo update
helm repo list -o json
helm repo remove <nama-repo>Empat repository di atas adalah yang paling banyak dipakai di dunia nyata:
| Repository | URL | Isi |
|---|---|---|
| bitnami | https://charts.bitnami.com/bitnami | Database, aplikasi umum, stack development |
| ingress-nginx | https://kubernetes.github.io/ingress-nginx | Ingress controller nginx |
| prometheus-community | https://prometheus-community.github.io/helm-charts | Prometheus dan stack monitoring |
| grafana | https://grafana.github.io/helm-charts | Grafana, Loki, ekosistem observability |
Untuk mengeksplorasi ribuan chart lain secara visual, kunjungi Artifact Hub — agregator chart resmi ekosistem Helm. Untuk mengunduh chart tanpa meng-install — misalnya untuk inspeksi offline atau menyalin dependency ke chart sendiri — gunakan helm pull:
helm pull bitnami/nginx
helm pull bitnami/nginx --untar
ls nginx/Tanpa flag, helm pull menyimpan arsip .tgz di direktori saat ini; dengan --untar, ia mengekstrak isinya sehingga kalian bisa memeriksa struktur chart — kebiasaan bagus sebelum memakai chart yang tidak familiar.
Ada dua bentuk helm search, dan membedakannya penting:
helm search repo <nama> — mencari hanya di repository yang sudah terdaftar di mesin kalian (data dari index lokal). Cepat, offline, dan hanya menampilkan chart yang siap di-install.helm search hub <nama> — mencari di seluruh Artifact Hub (database global online). Berguna untuk menemukan chart dari repository yang belum terdaftar.helm search repo nginx
helm search repo bitnami/nginx
helm search hub nginx-ingressPerhatikan dua kolom versi di hasil pencarian — ini sumber kebingungan klasik. Contoh nyata hasil helm search repo bitnami/nginx:
NAME CHART VERSION APP VERSION DESCRIPTION
bitnami/nginx 15.11.2 1.25.3 Chart for the nginx server| Kolom | Arti |
|---|---|
| CHART VERSION | Versi paket chart itu sendiri (mis. 15.11.2) — apa yang di-versioning di index.yaml |
| APP VERSION | Versi aplikasi di dalam chart (mis. 1.25.3) — versi image nginx yang sebenarnya dijalankan |
Keduanya independen: chart versi 15 bisa berisi aplikasi versi 1.25, dan chart versi berikutnya bisa saja tetap memakai aplikasi yang sama. Saat mem-pin chart di production, yang kalian pin adalah chart version — bukan app version. Kalian bisa mengeksplorasi detail chart sebelum meng-install:
helm show chart bitnami/nginx
helm show values bitnami/nginx | head -40
helm show readme bitnami/nginxhelm show values menampilkan seluruh nilai default yang bisa di-override — ini dokumen pertama yang wajib dibaca sebelum install. helm show readme memberikan panduan penggunaan resmi dari maintainer chart.
Semua sudah siap. Mari rangkai seluruh alur menjadi satu: instalasi (sudah), menambah repository (sudah), mencari chart (sudah), dan sekarang — install. Berikut alur lengkap dari nol sampai aplikasi berjalan:
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo updatehelm install web bitnami/nginx menghasilkan release bernama web dari chart bitnami/nginx. Flag --namespace web --create-namespace menempatkan release di namespace web dan membuatnya jika belum ada. Output akhir menampilkan NAME: web, STATUS: deployed, dan catatan akses dari NOTES.txt chart. Verifikasi state sesungguhnya dengan kubectl — ingat pelajaran episode 0: Helm bilang deployed, kubectl yang membuktikan.
Untuk mengakses aplikasi dari laptop, gunakan port-forward:
kubectl port-forward -n web svc/web-nginx 8080:80Buka http://localhost:8080 — halaman nginx akan tampil. Kalian baru saja mendeploy aplikasi lengkap (Deployment + Service + ConfigMap + Secret) ke Kubernetes dengan satu perintah. Bayangkan berapa file YAML yang harus kalian tulis manual untuk hasil yang sama.
Ketika helm install selesai, Helm mencetak ringkasan yang sering dilewati begitu saja — padahal ia memuat informasi yang akan kalian butuhkan nanti:
NAME: web
LAST DEPLOYED: Sun Aug 02 14:03:21 2026
NAMESPACE: web
STATUS: deployed
REVISION: 1
TEST SUITE: NoneEmpat baris pertama layak diingat maknanya. NAME: web adalah nama release — bukan nama chart — dan inilah identitas yang dipakai semua perintah berikutnya (helm list, helm upgrade, helm uninstall). STATUS: deployed memberi tahu bahwa release berhasil dibuat; status lain seperti failed atau pending-install akan kita bedah di episode 4. REVISION: 1 menandai ini sebagai rilis pertama — setiap upgrade menaikkan angka ini, dan inilah dasar mekanisme rollback. TEST SUITE: None berarti chart ini tidak mendefinisikan test hooks (topik episode 14).
Kemudian, bagian NOTES: di akhir output menampilkan instruksi akses spesifik untuk release ini — misalnya perintah port-forward atau URL yang harus dibuka. Jangan dibuang: ia adalah dokumentasi tersumpal yang dibuat langsung dari nilai-nilai yang kalian pakai. Jika ingin menampilkan kembali catatan itu tanpa meng-install ulang, gunakan helm get notes web:
helm get notes webKebiasaan kecil yang menyelamatkan banyak waktu: catat nama release dan namespace di README project kalian. Saat tim menumpuk puluhan release, tidak ada yang mengingat nama yang pernah dibuat — helm list -A menjadi titik awal investigasi apa pun.
helm version --short menampilkan v2.x berarti perintah ini tidak berlaku — Helm 2 butuh Tiller. Selalu pastikan major version 3.helm repo update. helm install gagal dengan no chart name found atau versi tidak ditemukan karena index lokal belum di-refresh. Biasakan update setelah repo add.helm show values. Install dengan default yang tidak sesuai environment lalu mendebug di produksi. Selalu baca values sebelum install.default, menyulitkan identifikasi dan pembersihan. Mulai kebiasaan --namespace sejak sekarang.Warning
Chart dari community adalah kode yang berjalan di cluster kalian — dan chart lama sering menyimpan nilai default yang tidak aman (image outdated, tanpa resource limits, ekspos Service tipe LoadBalancer tak terkendali). Selalu periksa helm show values dan helm show readme sebelum install, dan gunakan versi chart yang masih terpelihara. Security hardening chart akan dibahas menyeluruh di episode 20.
Pada episode 3 ini kalian telah melakukan lompatan besar: Helm ter-install dan terverifikasi (helm version → v3.x), terminal nyaman dengan shell completion, struktur CLI dipahami (helm <command> [flags] plus output -o json/yaml), repository dikelola (repo add/list/update/remove), pencarian chart dikuasai (search repo vs search hub, beda chart version vs app version), dan — yang paling penting — release pertama web berhasil di-install dari chart Bitnami dan diverifikasi berjalan di cluster.
Poin yang harus kalian bawa:
--help adalah cara tercepat meningkatkan produktivitas CLI.repo update wajib setelah menambahkan repository baru.helm install <release> <chart> adalah deployment pertama — selalu verifikasi dengan kubectl.Sekarang kalian bisa memakai Helm untuk meng-install chart. Di episode 4 selanjutnya kita memperdalam instalasi dan manajemen release: flag --wait, --timeout, --atomic, dry-run dan debugging, membaca status release dengan helm list dan helm status, menelusuri helm get, memahami lifecycle status release, serta menghapus release dengan benar. Sampai jumpa di episode 4!