GitLab Auto DevOps

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

https://docs.gitlab.com/ee/topics/autodevops/requirements.html#auto-devops-requirements-for-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

Iklan

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout /  Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout /  Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout /  Ubah )

Connecting to %s

Situs yang Didukung WordPress.com.

Atas ↑

%d blogger menyukai ini: