Hi gengz, kali ini kita akan coba coba GitLab Auto DevOps, untuk deploymentnya sendiri kita akan pakai kubernetes.
Untuk contoh kali ini, saya akan pakai kubernetes dari Civo, bila teman teman menggunakan kubernetes provider yang lain, silahkan dibaca di dokumentasi berikut ya
https://docs.gitlab.com/ee/topics/autodevops/requirements.html
Kubernetes
Pertama kita harus persiapkan kubernetesnya dulu ya, berikut adalah source untuk menyiapkan kubernetes
Mari kita install ingress controller (nginx) nya terlebih dahulu
helm upgrade --install ingress-nginx ingress-nginx \
--repo https://kubernetes.github.io/ingress-nginx \
--namespace ingress-nginx --create-namespace

Buat sebuah namespace dengan command berikut
kubectl create namespace demo-auto-devops

Clone Repo Sample
Silahkan clone repo dibawah sebagai sample
https://github.com/ludesdeveloper/python-docker-example.git
git clone https://github.com/ludesdeveloper/python-docker-example.git
cd python-docker-example
rm -rf .git
Buat Repo di GitLab
Silahkan buat repo baru di GitLab, jangan lupa uncheck “initialize repository with a README”

Copy bagian berikut

Kembali ke folder yang di langkah sebelumnya kita clone, lakukan command berikut
git init
git remote add origin https://gitlab.com/FunGuardian/demo-auto-devops.git
git add .
git commit -m "adding files"
git push origin master


Enable Auto DevOps
Pergi ke bagian Setting -> CI/CD, lalu enable Auto DevOps

Klik “Save changes”
Anda bisa ke bagian CI/CD Pipelines untuk melihatnya

Klik “running” untuk lebih detail

Kita tunggu sejenak ya, ngopi dulu gengz

Dan setelah menunggu beberapa lama, kegagalan pun datang, layaknya kapten amerika berkata


Yup seperti yang kita lihat diatas, test failed, yuk klik buat lebih detail

Berdasarkan github issue dibawah, sepertinya belum ada yang berhasil juga
https://github.com/heroku/heroku-buildpack-python/issues/773
Karena itu mari kita remove dari Auto DevOps
Remove Test
Kita hanya akan melakukan remove pada “Test” untuk referensinya bisa di check dibawah ini
https://docs.gitlab.com/ee/topics/autodevops/customize.html#disable-jobs
Mari kita ke Settings -> CI/CD, lalu configure variable, buat variable baru

Klik Add Variable

Mari kita re run lagi pipelinenya, CI/CD -> Pipelines, click Run Pipeline



Seperti yang kita lihat “test” sudah tidak ada, mari kita tunggu sampai berhasil

Menambahkan Agent Configuration File
Silahkan buka code anda menggunakan visual studio code, atau editor favorite anda

tambahkan folder dan file berikut
./gitlab/agents/demo-auto-devops
./gitlab/agents/demo-auto-devops/config.yaml

push code yang anda buat, pastikan ada di GitLab Repo yang anda miliki

Menambahkan Kubernetes di GitLab
Silahkan ke bagian Infrastructure -> Kubernetes clusters

Klik Connect a cluster, pilih agent yang sudah kita buat menggunakan configuration file, klik “Register”

Copy bagian berikut

Install di kubernetes anda


Bisa kita lihat, bahwa sekarang Kubernetes cluster kita sudah connected, Awyeah

GitLab Variable untuk Kubernetes
Pindah ke Settings -> CI/CD ke bagian Variables, lalu tambahkan variable baru
Untuk penjelasan variable dibawah ini adalah
FunGuardian/demo-auto-devops:demo-auto-devops
Username/project:agent-name
KUBE_CONTEXT

Variable dibawah ini adalah namespace kubernetes yang sebelumnya sudah kita buat

Variable dibawah ini kita bisa dapatkan via ip public yang di generate oleh ingress

Untuk ip public sendiri, anda bisa lihat di bagian svc kubernetes

Saya merubah dari “212.2.240.190” ke “212-2-240-190”, karena berdasarkan experience, menggunakan “.” seringkali bermasalah untuk nip.io
Variable akhir yang kita dapatkan adalah sebagai berikut

Testing Kubernetes Pipeline
Mari pindah ke Pipelines -> CI/CD lalu Run Pipelines nya ya gengz. Auto DevOps akan secara otomatis mendeteksi adanya kubernetes

Kita tunggu sejenak sambil ngopi lagi

Berikut hasilnya, tjakep

Silahkan klik production

Anda bisa melihat alamat nip.io, mari kita coba akses bersama

Mangstap
Beberapa Hal yang Penting Untuk Di Tengokz
Artifacts

Container Registry

Push Tag
git tag v.1.0.0 -m "check versioning"
git push origin v.1.0.0


Push Branch
git checkout -b new_feature
git push origin new_feature


Merge Request

Akhir Kata
Alhamdulillah, Auto DevOps nya sukses ya gengz, semoga bermanfaat
Tinggalkan Balasan