Self Hosted Helm Charts

Gilang Virga Perdana
4 min readMar 12, 2022

Selamat datang kembali para pembaca, kali ini saya ingin sharing tentang hasil belajar saya untuk mencoba coba membuat repository Chart Helm sendiri menggunakan github.io. Seperti yang kalian tau, Helm Charts adalah suatu package dari manifest — manifest aplikasi/tools/service yang biasanya digunakan diatas Kubernetes atau Container Orchestration lainnya. Namun, perlu diketahui bahwa sharing kali ini adalah cara manual. Jika sekiranya kalian ingin menggunakan cara yang lebih simple, silahkan tinggalkan laman ini dan silahkan kunjungi Charts Museum. Baik, jika ingin melanjutkan mari kita mulai eksperimennya.

Environment :

1. Github.io

2. Helm

3. Some .tgz for apps example

Practice :

1. Buatlah landing page pada GitHub :

Kita bisa memanfaatkan fitur landing page gratis dari GitHub yaitu Github.io . Kita bisa langsung membuatnya dengan membuat repository bernama usernamegithub.github.io .

2. Buatlah beberapa kerangka pembangun Helm Chart Repository :

Perlu diketahui, satu satu nya kunci untuk membuat helm chart repository adalah membuat index.yaml. Itu adalah kerangka paling utama dalam pembuatan self helm chart repository. Namun, kali ini kita akan membuat 2 file index. Yaitu satu index.html sebagai frontend akses dan index.yaml sebagai file yang akan di GET oleh Helm nantinya.

Membuat index.html :

$ cd gilangvperdana.github.io$ mkdir charts$ cd charts$ touch index.html

Silahkan buat frontend sesuai dengan selera kalian :

Membuat index.yaml :

Siapkan file package kalian yang sudah berekstensi .tgz ke dalam folder lalu buatlah index.yaml seperti dibawah ini. Disini saya akan upload atau provide ingress-nginx.tgz sebagai contoh file nya.

$ cd gilangvperdana.github.io$ mkdir charts$ cd charts$ touch index.yaml

Dari struktur yaml diatas, sudah cukup bagi kita untuk memprovide sebuah self helm charts manual. Yang perlu diperhatikan disini adalah, silahkan ganti semua parameter yang ada sesuai dengan yang kalian inginkan. Adapun parameter penting yang perlu dirubah adalah

· Isi dari sources & urls. Tertera pada bagian sources adalah sebuah endpoint url github pages charts saya, ini menandakan file ingress-nginx-4.0.18.tgz ada di path https://gilangvperdana.github.io/charts/ingress-nginx-4.0.18.tgz . Silahkan sesuaikan dengan path masing masing.

· Isi dari name (baik name dan line dibawah entries) karena itu adalah nama yang akan bisa kita panggil saat kita hendak instalasi sebuah paket, misal contoh diatas adalah kita bisa akses pada gilangvperdana/ingress-nginx.

3. Push GitHub :

Kita sudah mencoba untuk membuat self hosted dengan file antara lain ingress-nginx-4.0.18.tgz , index.html, index.yaml dalam directory github.io/github-pages kita. Maka silahkan untuk push ke repository kalian dan coba akses.

$ cd gilangvperdana.github.io$ git init$ git add *$ git commit -m “first”$ git push origin master

4. Mendifinisikan endpoint Helm Charts :

Setelah kita commit lalu push ke repository GitHub, silahkan akses pada http://usernamegithub.github.io atau pada kasus saya adalah http://gilangvperdana.github.io/charts . Kita akan mencoba akses :

Frontend sudah aman, saatnya kita tentukan endpoint untuk menambahkan repostiory ke Helm. Yaitu sama saja, kita definisikan endpoint/URL yang terkandung index.yaml atau dengan kata lain URL yang sama dengan yang kita akses pada browser. Pada kasus saya http://gilangvperdana.github.io/charts . Hal ini dapat terjadi karena sejatinya letak URL index.yaml ada pada http://gilangvperdana.github.io/charts/index.yaml .

Maka, bisa kita simpulkan endpoint helm repository kita ada pada : https://gilangvperdana.github.io/charts/ atau bisa kita add dengan command :

$ helm repo add gilangvperdana https://gilangvperdana.github.io/charts/$ helm repo update$ helm search repo gilangvperdana

5. Percobaan :

Kita akan mencoba instalasi dari repositori kita, yaitu pada contoh instalasi nginx-ingress menggunakan Helm diatas Kubernetes.

$ helm repo add gilangvperdana https://gilangvperdana.github.io/charts/$ helm repo update$ helm search repo gilangvperdana

Sudah tertera, lanjut untuk proses instalasi.

Instalasi Nginx Ingress :

$ helm install myingress gilangvperdana/ingress-nginx

6. Expose ke Artifacthub.io :

Silahkan untuk copy pada endpoint self hosting repository kita, disini berarti saya menggunakan https://gilangvperdana.github.io/charts/ sebagai endpointnya.

Setelah ter-copy, silahkan kunjungi sign-in / sign-up pada https://artifacthub.io/ . Pergi ke Control-Panel >pada bagian Repsotiory klik Add > Paste endpoint pada kolom URL.

Setelah terisi, klik ADD dan taraaa repsitory Helm kalian sudah ter-ekspose pada artifacthub.io .

7. Verify Original Publisher

Untuk memverifiksai Publisher pada repository, silahkan tambahkan artifacthub-repo.yml . Dan isikan sbb :

Dengan repositoryID yang didaptkan melalui menu Control Panel > Repositories > ID :

Setelah buat, silahkan push ke GitHub ulang dan tunggu beberapa saat hingga muncul tulisan Verified Publisher muncul pada artifacthub.io .

Terima kasih bagi para pembaca.

--

--