Hướng dẫn này cung cấp cách để cài đặt add-on Gitlab vào dịch vụ VNPT K8s bằng giao diện VNPT Cloud Portal.

1.Cài đặt add-on Gitlab tại màn chi tiết dịch vụ Kubernetes

Bước 1: Chọn 1 dịch vụ mà quý khách muốn cài addon Gitlab

Hình 1: Danh sách Kubernetes 

Bước 2: Chọn Tab Add-ons, chọn button Thêm add-on

Tại màn hình danh sách add-ons hệ thống cung cấp, quý khách có 2 cách để cài đặt add-on mong muốn:

  • Cách 1: Click vào icon Cài đặt tương ứng với từng add-on. Khi này Rancher sẽ được cài với phiên bản mới nhất mà VNPT K8s cung cấp và các giá trị mặc định.
  • Cách 2: Click vào tag add-on để xem thông tin chi tiết add-on, quý khách có thể chọn phiên bản, chỉnh sửa cấu hình values, sau đó chọn button Cài đặt. Tham khảo mục 2
Hình 2: Danh sách add-ons hệ thống cung cấp
Hình 3: Thông tin chi tiết add-on Gitlab

Tham khảo chi tiết tại tài liệu Hướng dẫn cài đặt add-on

2. Cấu hình values của add-on Gitlab

Trong phần cấu hình YAML của addon Gitlab trong màn thông tin chi tiết addon quý khách sửa các trường cấu hình dưới đây tùy theo use case.

Development (Minimal)

global:
  hosts:
    domain: dev.example.com
  edition: ce  # Community Edition

# Tắt các dịch vụ không cần thiết
nginx-ingress:
  enabled: false
  # (Tuỳ chọn) Ví dụ giới hạn resource cho ingress controller (nếu bật nginx-ingress)
  controller:
    resources:
      requests:
        cpu: 100m
        memory: 256Mi

prometheus:
  install: false

# Use external PostgreSQL/Redis (recommended for dev)
postgresql:
  install: false

redis:
  install: false

Production (Full-featured)

global:
  hosts:
    domain: gitlab.example.com
  edition: ee  # Enterprise Edition

# Bật tất cả dịch vụ
nginx-ingress:
  enabled: true
  # (Tuỳ chọn) Nâng replica + resource cho ingress controller
  controller:
    replicaCount: 3
    resources:
      requests:
        cpu: 200m
        memory: 256Mi

prometheus:
  install: true

# Cơ sở dữ liệu tích hợp
postgresql:
  install: true

redis:
  install: true

External Services

# PostgreSQL external
global:
  psql:
    host: postgresql.external.com
    port: 5432
    username: gitlab
    database: gitlabhq_production
    password:
      useSecret:
        secret: gitlab-db-secret
        key: password

postgresql:
  install: false

# Redis external
global:
  redis:
    host: redis.external.com
    port: 6379
    auth:
      enabled: true
      secret: gitlab-redis-secret
      key: password

redis:
  install: false

Expose Services

Tùy vào môi trường triển khai,quý khách có thể chọn sử dụng Ingress (khuyến nghị) để quản lý domain và TLS tập trung, LoadBalancer để có IP public trực tiếp từ cloud provider

Ingress (Recommended)

global:
  ingress:
    enabled: true
    configureCertmanager: false  # Sử dụng chứng chỉ hiện có
    class: nginx
    tls:
      enabled: true
      secretName: gitlab-tls

nginx-ingress:
  enabled: true
  controller:
    service:
      type: LoadBalancer

LoadBalancer Service

global:
  ingress:
    enabled: false
    configureCertmanager: false
    class: nginx
    tls:
      enabled: true
      secretName: gitlab-tls

nginx-ingress:
  enabled: false

gitlab:
 webservice:
   service:
     type: LoadBalancer

Tham khảo thêm các trường cấu hình của add-on Gitlab tại đây: https://docs.gitlab.com/charts/

3. Cách kết nối sử dụng add-on Gitlab

Thực hiện truy cập vào dịch vụ Kubernetes thông qua kubeconfig để lấy thông tin credential đăng nhập vào Gitlab nếu không cấu hình bootstrap password

# Get initial root password
kubectl get secret gitlab-gitlab-initial-root-password -n gitlab -o jsonpath="{.data.password}" | base64 --decode

Để truy cập vào giao diện Gitlabquý khách thực hiện truy cập vào giao diện web, sau đó kết nối thông qua URL đã cấu hình trong Ingress hoặc thông qua ip LoadBalancer với thông tin đăng nhập username mặc định là admin và password là thông tin secret đã lấy ở trên.

Hình 4: Giao diện đăng nhập Gitlab

Người dùng cũng có thể kết nối Web UI nhanh thông qua port forward:

kubectl port-forward svc/<gitlab_webservice_service> -n gitlab 8080:8080