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 :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
apiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: httpd-tets spec: destination: namespace: sample-apps server: 'https://kubernetes.default.svc' source: path: hello-apps repoURL: 'http://gitlab.example.com/argocd/hello-apps.git' targetRevision: HEAD project: default syncPolicy: automated: automated: prune: false selfHeal: false selfHeal: true |
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.
1 |
VERSION=$(curl --silent "https://api.github.com/repos/argoproj/argo-cd/releases/latest" | grep '"tag_name"' | sed -E 's/.*"([^"]+)".*/\1/') |
1 |
curl -sSL -o /usr/local/bin/argocd https://github.com/argoproj/argo-cd/releases/download/<span class="nv">$VERSION</span>/argocd-linux-amd64 |
1 |
chmod +x /usr/local/bin/argocd |
Deploy Aplikasi
1 |
argocd repo add http://gitlab.example.com/argocd/hello-apps.git |
1 |
argocd app create --project default --name httpd-test --repo http://gitlab.example.com/argocd/hello-apps.git --path hello-apps/ --dest-server https://kubernetes.default.svc --dest-namespace sample-apps --revision master --sync-policy automated |
1 |
argocd app list |
Semoga Bermanfaat.
Komentar