Skip to main content

GitOps Menggunakan ArgoCD pada platform OpenShift4

Saat ini IT Operation dipermudah dengan adanya teknologi Infrastructure as Code (IaS). Seperti yang kita ketahui bahwa IT Operation sebelum munculnya IaS memiliki kompleksitas yang sangat tinggi untuk menjaga Infrastruktur dan aplikasi agar tetap dapat melayani user. Hal tersebut dilakukan dengan cara manual, satu persatu command dijalankan untuk membangun infrastruktur IT yang sangat stabil dan ketersediaan nya sangat terjaga.

Dengan teknologi container dan orkestrasinya jobs infrastruktur IT sangat dimudahkan dengan memanfaatkan konfigurasi yang menjadi template pada format Yaml. Tetapi dengan kemudahan tersebut infrastruktur IT memiliki masalah baru dalam memuat, mencatat dan membuat versioning pada Yaml yang dibangunnya. Masalah tersebut terselesaikan dengan teknologi GitOps.

Jika kita pahami namanya, “GitOps” adalah penggabungan dari 2 kata, Git dan Ops, artinya adalah teknologi operation IT yang  ditampung di dalam SCM Git. Tidak sampai sini, berbeda dengan aplikasi, ketika kita berbicara tentang OpenShift dan IaS yang disimpan pada SCM Git pasti akan memunculkan beberapa pertanyaan, lalu bagaimana jika yaml dikembangkan dan terjadi perubahan bagaimana yaml tersebut dapat di deploy kedalam cluster OpenShift? apakah secara manual? lalu bagaimana cara mengetahui adanya perbedaan yaml code yang berada di SCM dan di OpenShift? dan lain sebagainya. 

Hal tersebut dapat diselesaikan dengan tools yang akan dibahas pada kesempatan kali ini. Tools GitOps yang akan digunakan adalah ArgoCD.

ArgoCD merupakan salah satu tools untuk management GitOps. Didukung dengan UI yang user friendly dapat memudahkan usernya dalam mengolah deployment aplikasi.

Fitur yang dapat dimanfaatkan  jika mengadopsi ArgoCD adalah sebagai berikut :

  • Deploy IaS code ke dalam OpenShift
  • Dashboard status deployment untuk memastikan berhasil atau tidaknya deployment.
  • Alert jika ada perubahan pada yaml code.
  • RBAC untuk developer dan Admin
  • Melakukan pengeditan yaml secara realtime pada dashboard ArgoCD dan secara otomatis terdeploy di atas OpenShift
  • Dahsboard integrasi antar container/part yang terhubung.
  • Rollback

Pertama – tama kita mulai dengan instalasi, berikut adalah proses instalasi ArgoCD pada platform OpenShift4.

Pada console openshift lakukan tahap – tahap berikut

  • Administrator => Operators => OperatorHub

  • Filter By Keywords => Search “argocd” => Click Argo CD Operator (Helm)

  • Click install 

  • Set Installation mode, Update Channel dan Approval Strategy

Secara otomatis kita akan di arahkan ke halaman Installed Operators dan pod argocd engine yg telah terinstall akan muncul di halaman ini.

Sampai sini kita telah memiliki tools ArgoCD yang dapat digunakan untuk GitOps. Untuk melakukan akses ke dalam dashboard ArgoCD kita dapat melihatnya pada Administrator => Networking => Routes.
Berikut adalah GUI halaman awal ArgoCD yang telah terinstall.

Halaman Awal

Halaman Kerja

 

Pada studi kasus kali ini saya sudah menyiapkan 1 aplikasi dalam Git yang akan di deploy di atas openshift menggunakan metode GitOps.
Berikut adalah aplikasi yang saya simpan di dalam git.

Untuk melakukan build aplikasi kita perlu menambahkan terlebih dahulu aplikasi yang akan kita deploy pada ArgoCD, Berikut adalah caranya.

Build Menggunakan ArgoCD Console

  • Klik “+New App” pada kiri atas console
  • Isi form yang diperlukan oleh ArgoCD

  • Berikut adalah form contoh isian dari form di atas :
Nama Form Values
Application Name httpd-test
Project default
Sync Policy Automatic
Sync Options
Source  Git URL
Revision HEAD
Path hello-apps (yaml location in Git)
Cluster https://kubernetes.default.svc
Namespace sample-apps
  • Atau bisa di build dengan menggunakan yaml :

Jika semua proses berhasil dilakukan maka hasilnya akan seperti berikut :

Tampilan Halaman Kerja 

Tampilan Topologi Aplikasi

Sampai sini aplikasi telah ter deploy ke dalam cluster openshift.

Build Menggunakan Terminal

Pertama tama install terlebih dahulu cli argocd.

Deploy Aplikasi

Semoga Bermanfaat.

Pieter Daud Satumalay

DevOps//DBA//D-Beat