概要
Gitlab helm chart はデフォルトだと minio を使う設定になっています
minio を無効にして外部のオブジェクトストレージを使うことができます
今回は minio は有効にしつつファイルのアップロード部分だけど外部のオブジェクトストレージにする方法を紹介します
環境
- kubernetes 1.20.4
- helm 3.5.2
- Gitlab helm chart 4.10.3
secret の追加
s3 や gcs などに接続するための認証情報を secret に格納します
connection というキーに認証情報を確認します
vim s3.yml
provider: AWS
region: us-east-1
aws_access_key_id: xxxx
aws_secret_access_key: xxxx
aws_signature_version: 4
endpoint: https://s3.us-east-1.amazonaws.com
kubectl create secret generic gitlab-registry-os-secret -n gitlab --from-file=connection=s3.yml
values の追加
以下の設定を追加します
先程追加した認証情報を appConfig.uploads.connection.secret
で参照します
connection キーは global.appConfig.uploads.connection.key
側で指定します
アップロード先のバケット名は global.appConfig.uploads.bucket
で指定します
事前にバケットは作成しておきましょう
--set global.minio.enabled=true \
--set global.appConfig.uploads.bucket=uploads \
--set global.appConfig.uploads.connection.secret=gitlab-registry-os-secret \
--set global.appConfig.uploads.connection.key=connection
あとは helm upgrade などを実行すれば OK です
uploads 以外も外部のオブジェクトストレージにしたい場合は
例えば registry の情報などを外部のオブジェクトストレージにしたい場合は global.registry.bucket
や registry.storage.secret
などを同じように設定します
同じ接続先を使う場合は認証情報は 1 つで OK なので同じ secret を参照するようにしてください
他の設定方法のサンプルはこちらにあるので参照してみてください
https://gitlab.com/gitlab-org/charts/gitlab/blob/master/examples/values-external-objectstorage.yaml
認証情報だけを書き換えた場合は
例えばリージョンや認証情報を変更したい場合は secret を更新します
その場合は Gitlab の webservice Pod を再起動する必要があります
kubectl rollout restart deploy gitlab-webservice-default -n gitlab
0 件のコメント:
コメントを投稿