gitlab-update-path

Hai semuanya di artikel kali ini saya mau membahas tentang bagaimana cara Upgrade Gitlab Repository (on-premise) dengan cara yang paling mudah yaitu dengan menggunakan Docker.

Pertama yang kita perlukan adalah software requirement:

  1. Install Docker, Docker Compose
  2. Backup Repository gitlab
  3. Backup Credential Store Object
  4. Template Docker Compose

Install docker

Untuk instalasi docker sangat mudah, cukup download dari official website dan install sesuai platform yang digunakan. Kemudian install juga component docker yaitu Docker Compose. Download dari official webiste dan install sesuai dengan platform masing-masing.

Backup Repository github

Untuk backup, disini kondisi gitlab repository yang saya gunakan masih menggunakan versi 11.10.xx, jadi gunakan perintah berikut sesuai dengan dokumentasi berikut

Setelah itu, file backupnya biasanya akan di simpan di folder /var/opt/gitlab/backups/ dengan prefix filename millisond-date.version_gitlab_backup.tar contohnya 1617497494_2021_04_04_11.10.2_gitlab_backup.tar

Backup Credential Object

Setelah di backup, kita ambil juga file credential seperti

  • /etc/gitlab/gitlab-secret.json
  • /etc/gitlab/trusted-certs/your-ssl-cert
  • /etc/gitlab/gitlab.rb

Setup & Preparation Upgrade

Pertama temen-temen download dulu template docker-compose.yaml dari sini, kemudian extract. Setelah extract

  1. Simpan file backup repostiory ke dalam folder backups
  2. Simpan file config credential ke dalam folder gitlab

Jika dilihat hasilnya seperti berikut:

C:\Users\dimasm93\Workspaces\Example\gitlab-ce-updater-docker>tree .
PATH listing

C:\USERS\DIMASM93\WORKSPACES\EXAMPLE\GITLAB-CE-UPDATER-DOCKER
├───backups
│   └───1617497494_2021_04_04_11.10.2_gitlab_backup.tar
├───docker-compose.yaml
└───gitlab
    └───gitlab-secret.json

Kemudian coba liat di file docker-compose.yaml, seperti berikut:

pada property services.gitlab.image ubahlah versinya sesuai dengan file backupnya, yaitu: 11.11.0 kemudian kita check di hub.docker.com/r/gitlab menjadi seperti berikut

services:
  gitlab:
    image: gitlab/gitlab-ce:11.10.2-ce.0

Setelah itu jalankan servicenya dengan perintah:

Kemudian, kita bisa check logsnya dengan perintah berikut:

Setelah gitlabnya running & up, tahap selanjutnya adalah Restore dari backup yang sudah kita siapkan

Restore Gitlab from Backup

Untuk melakukan restore, kita bisa menggunakan perintah docker exec seperti berikut:

Setelah setelah selesai proses restore, kita reconfigure & restart seperti berikut

Dan

Kemudian coba di check pada web gitlabnya: http://localhost:80 kalo sudah sesuai dengan yang ada di server kita. Tahap selanjutnya adalah upgrade

Upgrade Path

Untuk melakukan upgrade, Gitlab tidak bisa secara langsung artinya klo versinya udah ketinggalan jauh tidak bisa langsung dari 11.11 -> latest tpi ada tahapannya seperti pada artikel dokumentasi berikut

Karena kita pake versi 11.10 maka pathnya adalah 11.11.8 -> 12.0.12 -> 12.1.17 -> 12.10.14 -> 13.0.14 -> 13.2.10 -> 13.5.4. Lumayan panjang ya?? yaa lumayan lah, gak terlalu ribet dari pada migrasiin semua repository (sekarang repository ada ratusan di kantor ku :( ) jadi lebih milih upgrade pake docker ja, supaya lebih aman.

Tahap pertama, matikan dulu servicenya docker-compose dengan perintah berikut:

Setelah servicenya mati, pastikan docker volume jangan dihapus. Karena disitu kita simpan data repository kita. Selanjutnya adalah update versi gitlabnya di docker-compose.yaml ke target kita contohnya 11.11.8

services:
  gitlab:
    image: gitlab/gitlab-ce:11.11.8-ce.0

Setelah itu jalankan kembali service docker-composenya dengan perintah yang tadi yaitu seperti berikut:

Maka Otomatis akan malakukan gitlab upgrade. Setelah selesai lakukan sampai versinya sesuai yang kita inginkan. Secara flow

  1. set version 11.11.8 -> docker-compose up -> docker-compose down
  2. set version 12.0.12 -> docker-compose up -> docker-compose down
  3. Backup Gitlab Repository menggunakan docker-compose

  4. set version 12.1.17 -> docker-compose up -> docker-compose down
  5. set version 12.10.14 -> docker-compose up -> docker-compose down
  6. set version 13.0.14 -> docker-compose up -> docker-compose down
  7. Backup Gitlab Repository menggunakan docker-compose

  8. set version 13.0.14 -> docker-compose up -> docker-compose down
  9. dan seterurnya

Yang perlu diingat adalah, jangan lupa Backup dan check gitlab web supaya tidak terjadi hal yang tidak di inginkan seperti project repository yang hilang atau setting rusak atau tidak bisa dibuka.