Инсталляция GitLab в ubuntu 22.04
Делаю:
2026.01.06
Разбираюсь как устанавливать правильно!!!
Инсталляция GitLab с помощью helm
$ helm repo add gitlab https://charts.gitlab.io/
$ helm repo update
$ export PROFILE=${USER}-minikube
$ export INGRESS_HOST=$(minikube --profile ${PROFILE} ip)
$ echo gitlab.$INGRESS_HOST.nip.io
$ helm search repo gitlab
$ cd ~/tmp
$ cat > gitlab-config.yaml <<EOF
global:
edition: ce
hosts:
domain: $INGRESS_HOST.nip.io
https: false
# Глобальное отключение TLS
ingress:
configureCertmanager: false
tls:
enabled: false
# Отключение встроенного GitLab Runner
gitlab-runner:
install: false
# Отключение встроенного Registry
registry:
enabled: false
installCertmanager: false
# Убираем TLS в настройках веб-сервиса
gitlab:
webservice:
ingress:
tls:
enabled: false
EOF
// --version 9.7.0 \
$ helm install gitlab gitlab/gitlab \
--namespace gitlab \
--create-namespace \
--values gitlab-config.yaml
// helm uninstall gitlab -n gitlab
$ kubectl get ingress -n gitlab
NAME CLASS HOSTS ADDRESS PORTS AGE
gitlab-kas gitlab-nginx kas.192.168.49.2.nip.io 192.168.49.2 80 2m58s
gitlab-minio gitlab-nginx minio.192.168.49.2.nip.io 192.168.49.2 80 2m58s
gitlab-webservice-default gitlab-nginx gitlab.192.168.49.2.nip.io 192.168.49.2 80 2m58s
// Получить root пароль GitLab
$ kubectl get secret -n gitlab gitlab-gitlab-initial-root-password \
-o jsonpath='{.data.password}' | base64 --decode && echo
// root / <root-password>
http://gitlab.192.168.49.2.nip.io
Добавить GitLab Runner
$ RUNNER_TOKEN=$(kubectl exec -n gitlab -it $(kubectl get pods -n gitlab -l app=toolbox -o jsonpath='{.items[0].metadata.name}') -- gitlab-rails runner "runner = Ci::Runner.create!(runner_type: 'instance_type', description: 'k8s-runner', tag_list: [], run_untagged: true); puts runner.token")
$ echo $RUNNER_TOKEN
$ cd ~/tmp
$ cat > runner-config.yaml <<EOF
gitlabUrl: http://gitlab.192.168.49.2.nip.io
runnerToken: $RUNNER_TOKEN
rbac:
create: true
# Решение проблемы Request bottleneck
concurrent: 10
checkInterval: 5
runners:
# Настройка конкурентности (убирает Warning из логов)
requestConcurrency: 4
config: |
[[runners]]
# Отключаем проверку TLS на уровне клиента
tls_verify = false
[runners.kubernetes]
namespace = ""
image = "ubuntu:24.04"
privileged = true
pull_policy = ["always", "if-not-present"]
# Глобальное отключение TLS для сессий
envVars:
- name: CI_SERVER_TLS_CA_FILE
value: ""
- name: GIT_SSL_NO_VERIFY
value: "true"
EOF
// Установить runner в тот же namespace
$ helm install gitlab-runner gitlab/gitlab-runner \
--namespace gitlab \
--values runner-config.yaml \
--wait \
--timeout 15m
// helm uninstall gitlab-runner -n gitlab
http://gitlab.192.168.49.2.nip.io/admin/runners
Проверка Runner
$ kubectl exec -n gitlab -it deployment/gitlab-toolbox -- gitlab-rails runner '
runner = Ci::Runner.instance_type.last
puts "--- Runner Diagnostic ---"
puts "Description: #{runner.description}"
puts "Online: #{runner.online? ? "YES" : "NO"}"
puts "Active: #{runner.active}"
puts "Can pick untagged: #{runner.run_untagged}"
puts "Locked: #{runner.locked}"
puts "Access level: #{runner.access_level}"
puts "Tags: #{runner.tag_list}"
puts "Projects: #{runner.projects.pluck(:name).join(", ")}"
if !runner.online?
puts "\n[!] ВНИМАНИЕ: Раннер OFFLINE. Проверьте логи пода самого раннера."
elsif runner.run_untagged == false && runner.tag_list.empty?
puts "\n[!] ВНИМАНИЕ: Раннер не берет задачи без тегов, но тегов у него нет."
end
'
--- Runner Diagnostic ---
Description: k8s-runner
Online: YES
Active: true
Can pick untagged: true
Locked: false
Access level: not_protected
Tags:
Projects:
Добавить возможность клонировать репо
$ kubectl exec -n gitlab -it deployment/gitlab-toolbox -- gitlab-rails runner "
settings = ApplicationSetting.current
settings.update!(import_sources: ['github', 'git'])
puts \"\nSUCCESS: Import sources updated!\"
puts \"Current sources: #{settings.import_sources.join(', ')}\"
"