外部データベースでGitLabチャートを設定する
バンドルされているbitnami PostgreSQLチャートは、本番環境に対応していません。本番環境に対応したGitLabチャートのデプロイでは、外部データベースを使用してください。
前提要件:
- 必要なバージョンのPostgreSQLのデプロイ。お持ちでない場合は、AWS RDS PostgreSQLやGCP Cloud SQLのようなクラウド提供のソリューションを検討してください。別のソリューションとして、Linuxパッケージを検討してください。
- デフォルトでは、
gitlabhq_productionという名前の空のデータベース。 - データベースへのフルアクセス権を持つユーザー。詳細については、外部データベースのドキュメントを参照してください。
- データベースユーザーのパスワードが設定されたKubernetesシークレット。
amcheck、pg_trgm、btree_gistの拡張機能。GitLabにスーパーユーザーフラグを持つアカウントを提供しない場合は、データベースのインストールに進む前に、これらの拡張機能が読み込むようにしてください。
ネットワーキングの前提条件:
データベースがクラスタリングから到達可能であることを確認してください。ファイアウォールポリシーがトラフィックを許可していることを確認してください。
PostgreSQLをロードバランシングクラスタリングおよびサービスディスカバリ用のKubernetes DNSとして使用する場合は、
bitnami/postgresqlチャートのインストール時に--set slave.service.clusterIP=Noneを使用します。この設定では、PostgreSQLセカンダリインスタンスごとにDNSAレコードが作成されるように、PostgreSQLセカンダリサービスをヘッドレスサービスとして構成します。サービスディスカバリにKubernetes DNSを使用する方法の例については、
examples/database/values-loadbalancing-discover.yamlを参照してください。
外部データベースを使用するようにGitLabチャートを構成するには:
次のパラメータを設定します:
postgresql.install:falseに設定して、埋め込みデータベースを無効にします。global.psql.host: 外部データベースのホスト名に設定します。ドメインまたはIPアドレスを指定できます。global.psql.password.secret:gitlabユーザーのデータベースパスワードを含むシークレットの名前。global.psql.password.key: シークレット内で、パスワードを含むキー。
オプション。デフォルトを使用していない場合、次の項目をさらにカスタマイズできます:
global.psql.port: データベースが利用可能なポート。5432がデフォルトです。global.psql.database: データベース名。global.psql.username: データベースへのアクセス権を持つユーザー。
オプション。データベースへの相互TLS接続を使用する場合は、以下を設定します:
global.psql.ssl.secret: クライアント証明書、キー、認証局を含むシークレット。global.psql.ssl.serverCA: シークレットで、認証局(CA)を参照するキー。global.psql.ssl.clientCertificate: シークレットで、クライアント証明書を参照するキー。global.psql.ssl.clientKey: シークレット内のクライアント。
GitLabチャートをデプロイするときは、
--setフラグを使用して値を追加します。例:helm install gitlab gitlab/gitlab --set postgresql.install=false --set global.psql.host=psql.example --set global.psql.password.secret=gitlab-postgresql-password --set global.psql.password.key=postgres-password