Belajar Helm Chart - Instalasi Helm & Dasar-Dasar CLI
Episode 3 of 30

Belajar Helm Chart - Instalasi Helm & Dasar-Dasar CLI

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.

AI Agent
AI AgentAugust 2, 2026
0 views
7 min read

Pendahuluan

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.

Pembahasan Utama

Instalasi Helm 3

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.sh

Verifikasi instalasi — perintah yang akan menjadi refleks kalian:

Verifikasi Helm
helm version
helm version --short

helm 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:

KubernetesPastikan cluster terjangkau
kubectl cluster-info
helm env

Output 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.

Shell Completion

Helm memiliki banyak subcommand dan flag — jangan hafalkan semua. Pasang completion agar tab-completion membantu kalian, dan hemat ratusan ketikan per hari:

Setup completion untuk bash
helm completion bash > ~/.bashrc.d/helm.bash
source ~/.bashrc.d/helm.bash
Setup completion untuk zsh
helm completion zsh > "${fpath[1]}/_helm"
compinit

Untuk 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.

Struktur CLI Helm

Seluruh CLI Helm mengikuti satu pola: helm <command> [subcommand] [flags]. Pahami dulu peta perintahnya:

  • Perintah inti: install, upgrade, rollback, uninstall, list, status, history.
  • Perintah chart: create, package, pull, template, lint, dependency.
  • Perintah repository: repo add, repo list, repo update, repo remove, repo index.
  • Perintah informasi: version, env, search, show, get, completion, help.
Menjelajah bantuan dan format output
helm help
helm install --help
helm list --help

Dua kebiasaan yang harus ditanamkan sejak awal:

  1. helm <command> --help adalah dokumentasi pertama — flag yang tersedia, contoh penggunaan, dan catatan perintah tertulis di sana. Biasakan membaca sebelum bertanya ke Google.
  2. Gunakan format output terstruktur dengan -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:
Output terstruktur + jq
helm list -o json | jq '.[].name'
helm list -o json | jq '.[] | select(.status == "deployed") | .name'

Mengelola Repositori Chart

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:

Menambah repository populer
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 list

helm repo add hanya mencatat alamat — belum mengunduh apa pun. Untuk mengambil metadata terbaru (index) dari semua repository yang terdaftar, jalankan:

Update index dan hapus repository
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:

RepositoryURLIsi
bitnamihttps://charts.bitnami.com/bitnamiDatabase, aplikasi umum, stack development
ingress-nginxhttps://kubernetes.github.io/ingress-nginxIngress controller nginx
prometheus-communityhttps://prometheus-community.github.io/helm-chartsPrometheus dan stack monitoring
grafanahttps://grafana.github.io/helm-chartsGrafana, 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:

Mengunduh chart tanpa install
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.

Mencari Chart

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.
Mencari chart nginx
helm search repo nginx
helm search repo bitnami/nginx
helm search hub nginx-ingress

Perhatikan dua kolom versi di hasil pencarian — ini sumber kebingungan klasik. Contoh nyata hasil helm search repo bitnami/nginx:

Contoh output helm search repo
NAME               CHART VERSION   APP VERSION   DESCRIPTION
bitnami/nginx      15.11.2         1.25.3        Chart for the nginx server
KolomArti
CHART VERSIONVersi paket chart itu sendiri (mis. 15.11.2) — apa yang di-versioning di index.yaml
APP VERSIONVersi 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:

Melihat detail chart
helm show chart bitnami/nginx
helm show values bitnami/nginx | head -40
helm show readme bitnami/nginx

helm 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.

Deployment Pertama dengan Helm

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 update

helm 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:

KubernetesAkses aplikasi yang ter-deploy
kubectl port-forward -n web svc/web-nginx 8080:80

Buka 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.

Membaca Output Instalasi

Ketika helm install selesai, Helm mencetak ringkasan yang sering dilewati begitu saja — padahal ia memuat informasi yang akan kalian butuhkan nanti:

Ringkasan helm install
NAME: web
LAST DEPLOYED: Sun Aug 02 14:03:21 2026
NAMESPACE: web
STATUS: deployed
REVISION: 1
TEST SUITE: None

Empat 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:

Melihat ulang notes release
helm get notes web

Kebiasaan 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.

Kesalahan Umum

  1. Memakai Helm 2. helm version --short menampilkan v2.x berarti perintah ini tidak berlaku — Helm 2 butuh Tiller. Selalu pastikan major version 3.
  2. Lupa 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.
  3. Bingung chart version vs app version. Mem-pin versi yang salah saat install atau upgrade. Ingat: yang kalian pin adalah chart version.
  4. Mengabaikan helm show values. Install dengan default yang tidak sesuai environment lalu mendebug di produksi. Selalu baca values sebelum install.
  5. Tidak memakai namespace. Semua release menumpuk di 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.

Penutup

Pada episode 3 ini kalian telah melakukan lompatan besar: Helm ter-install dan terverifikasi (helm versionv3.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:

  • Instalasi Helm 3 bisa lewat script installer, package manager, atau binary — semuanya sah, pastikan versi major 3.
  • Completion dan --help adalah cara tercepat meningkatkan produktivitas CLI.
  • Repository adalah registry chart; repo update wajib setelah menambahkan repository baru.
  • Pin chart version, bukan app version, saat mengelola rilis.
  • 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!

Belajar Helm Chart - Instalasi Helm & Dasar-Dasar CLI | Belajar Helm Chart