kubernetesにgitlabをインストールしてみた

January 02, 2019

Jenkinsに続いてGitLabのインストールにもチャレンジしてみました。GitHubに公開したくないようなソースコードの開発用に自宅PCにGitLabを入れて使ってみたいと思っていたのと、Jenkinsとの連携も可能であるようなので、導入してみました。基本的にはこちらに書いている通りですが、色々つまづいた結果、下記のようなコマンド引数でhelmを実行し、インストールすると、正常に動作しました。

helm upgrade --install gitlab gitlab/gitlab \
  --namespace gitlab \
  --timeout 600 \
  --set global.ingress.class=myingress \
  --set nginx-ingress.enabled=false \
  --set gitlab-runner.runners.locked=false \
  --set global.hosts.https=false \
  --set global.ingress.tls.secretName=mycert \
  --set global.hosts.domain=dev.myhost.com \
  --set global.hosts.externalIP=10.32.0.10 \
  --set [email protected]

デフォルトでは、gitlabをインストールすると、nginx ingress controllerが追加されます。ingress controllerは複数共存できますが、今回はすでにjenkinsで使用している物を流用したかったので、nginx-ingress.enabledはfalseにしています。また、ingress controllerを特定するためにglobal.ingress.classですでに設定しているクラス名を指定しています。なお、ingress controllerのクラスの設定については、このサイトを参照しました。global.ingress.tls.secretNameは、事前にSSL証明書を追加した時に指定したsecret名を設定しています。なお、今回はワイルドカードの証明書をこちらを参考にLet’s Encryptで作成し、下記のコマンドでsecretとして登録しました。

kubectl create secret tls mycert --key private_key.pem --cert cert.pem -n gitlab

gitlab-runner.runners.lockedは、gitlab-runnerの不具合を解決するために追加しています。将来的には不具合は修正されると思いますので、不要になるはずです。現状、これを入れないと、GitLabのrunnerの数が0になってしまいますのでひとまず入れています。