概要
過去に Gitlab を helm chart を使って k8s 上にインストールしました
今回は Gitlab Runner のみを k8s 上にデプロイしてみました
環境
- Gitlab 13.10.2
- k8s 1.20.4
リポジトリのインストール
helm repo add gitlab https://charts.gitlab.io/
helm repo search -l gitlab/gitlab
gitlab-runner の chart があることを確認します
Specific runner のデプロイ
プロジェクトの Settings -> CI/CD からトークンを取得します
それを使って helm を実行します
helm install --namespace gitlab gitlab-runner gitlab/gitlab-runner --set gitlabUrl=https://gitlab.example.com:32443/ --set privileged=true --set runnerRegistrationToken=xxxxxxxxxxxxxxx
指定するパラメータは
- gitlabURL
- privileged (dind を使う場合は必須)
- runnerRegistrationToken
になります
無事 Pod が動作すると画面からも Runner が登録されているのが確認できます
Shared runner のデプロイ
Shared Runner 用のトークンは Admin Area から取得します
Overview -> Runners にあります
デプロイコマンドは先程と同じです
トークンを取得する場所が異なる点だけ注意しましょう
また helm デプロイ時のリリース名も先程とは別の名前にしましょう
helm install --namespace gitlab gitlab-shared-runner gitlab/gitlab-runner --set gitlabUrl=https://gitlab.example.com:32443/ --set privileged=true --set runnerRegistrationToken=xxxxxxxxxxxxxxx
デプロイが完了すると一覧にも表示されるようになります
rbac と runners.config を設定する場合は
Runner が Gitlab からリポジトリを clone する場合に URL がおかしいというエラーが出る場合があります
また serviceAccount が default だと権限がないと言われてエラーになります
その場合は rbac.create
と runners.config
を設定してあげましょう
helm upgrade --namespace gitlab gitlab-shared-runner gitlab/gitlab-runner --set gitlabUrl=https://gitlab.example.com:32443/ --set privileged=true --set runnerRegistrationToken=xxxxxxxxxxxxxxx --set rbac.create=true --set runners.config="
[[runners]]
clone_url = \"https://gitlab.example.com:32443/\"
[runners.kubernetes]
image = \"ubuntu:16.04\"
"
runners.config
はヒアドキュメントなので複数行で記載する必要があります
最後に
Gitlab の helm chart をデプロイする際に一緒に Runner もデプロイできるのですが DNS の関係や ACL の関係で一緒にインストールするのが難しい場合は --set gitlab-runner.install=false
にして後からインストールしましょう
おまけ: values の取得方法
helm inspect values gitlab/gitlab-runner
0 件のコメント:
コメントを投稿