GitLabチャートと外部データベースの設定

GitLabチャートを本番環境でデプロイするには、外部データベースを使用します。

前提条件:

  • PostgreSQL 12以降のデプロイ。お持ちでない場合は、AWS RDS PostgreSQLや GCP Cloud SQLのようなクラウド提供のソリューションをご検討ください。自己管理ソリューションの場合は、Linuxパッケージを検討してください。
  • デフォルトではgitlabhq_production という名前の空のデータベース。
  • データベースにフルアクセスできるユーザー。詳細は外部データベースのドキュメントを参照してください。
  • データベースユーザーのパスワードを持つKubernetesシークレット
  • pg_trgmbtree_gist 拡張機能。Superuserフラグを持つアカウントをGitLabに提供していない場合は、データベースのインストールを進める前にこれらの拡張機能がロードされていることを確認してください。

ネットワークの前提条件

  • データベースがクラスターからアクセス可能であることを確認します。ファイアウォールのポリシーでトラフィックが許可されていることを確認してください。
  • PostgreSQLをロードバランシングクラスターとして使用し、Kubernetes DNSをサービス検出に使用する予定の場合は、bitnami/postgresql チャートをインストールするときに、--set slave.service.clusterIP=None を使用します。この設定は、PostgreSQLセカンダリサービスをヘッドレスサービスとして設定し、各セカンダリインスタンスに対してDNSA レコードの作成を許可します。

    サービス検出にKubernetes DNSを使用する方法の例については、examples/database/values-loadbalancing-discover.yamlを参照してください。

GitLab チャートが外部データベースを使うように設定するには:

  1. 以下のパラメータを設定します:

    • postgresql.install:false に設定すると、内部データベースが無効になります。
    • global.psql.host:外部データベースのホスト名(ドメインまたはIPアドレス)を設定します。
    • global.psql.password.secret:gitlab ユーザー](../../installation/secrets.md#postgresql-password)のデータベース・パスワードを含む[シークレットの名前。
    • global.psql.password.key:シークレット内にある、パスワードを含むキー。
  2. オプション。デフォルトを使用しない場合は、以下の項目をさらにカスタマイズできます:

    • global.psql.port:データベースが利用可能なポート。デフォルトは5432 です。
    • global.psql.database:データベースの名前。
    • global.psql.username:データベースにアクセスできるユーザー。
  3. オプション。データベースへの相互 TLS 接続を使用する場合は、以下を設定します:

    • global.psql.ssl.secret:クライアント証明書、キー、および作成者を含むシークレット。
    • global.psql.ssl.serverCA:シークレットの中で、認証局を参照する鍵(CA)。
    • global.psql.ssl.clientCertificate:シークレットでは、クライアント証明書を参照するキー。
    • global.psql.ssl.clientKey:シークレットでは、クライアント。
  4. 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