第2章 外部 PostgreSQL データベースの設定
管理者は、Red Hat Developer Hub で外部 PostgreSQL データベースを設定および使用できます。PostgreSQL 証明書ファイルを使用すると、Operator または Helm チャートを使用して外部 PostgreSQL インスタンスを設定できます。
Developer Hub は、外部 PostgreSQL データベースの設定をサポートします。データのバックアップや外部 PostgreSQL データベースの高可用性 (HA) の設定など、メンテナンスアクティビティーを実行できます。
デフォルトでは、Red Hat Developer Hub Operator または Helm チャートによってローカル PostgreSQL データベースが作成されます。ただし、この設定は実稼働環境には適していません。実稼働環境のデプロイメントでは、ローカルデータベースの作成を無効にし、代わりに外部の PostgreSQL インスタンスに接続するように Developer Hub を設定します。
2.1. Operator を使用した外部 PostgreSQL インスタンスの設定
Red Hat Developer Hub Operator を使用して外部 PostgreSQL インスタンスを設定できます。デフォルトでは、Operator は RHDH インスタンスのデプロイ先と同じ namespace に PostgreSQL のローカルインスタンスを作成して管理します。ただし、このデフォルト設定を変更して、Amazon Web Services (AWS) Relational Database Service (RDS) や Azure データベースなどの外部 PostgreSQL データベースサーバーを設定することもできます。
前提条件
- サポートされているバージョンの PostgreSQL を使用している。詳細は、製品ライフサイクルのページ を参照してください。
次の情報がある。
-
db-host
: PostgreSQL インスタンスの Domain Name System (DNS) または IP アドレスを示します。 -
db-port
: PostgreSQL インスタンスのポート番号 (5432
など) を示します。 -
username
: PostgreSQL インスタンスに接続するためのユーザー名を示します。 -
password
: PostgreSQL インスタンスに接続するためのパスワードを示します。
-
- Red Hat Developer Hub Operator がインストールされている。
- オプション: TLS プロトコルを使用してデータベース接続を保護できるように、CA 証明書、Transport Layer Security (TLS) 秘密鍵、および TLS 証明書がある。詳細は、PostgreSQL ベンダーのドキュメントを参照してください。
デフォルトでは、Developer Hub は各プラグインのデータベースを使用します。見つからない場合は、自動的にデータベースを作成します。外部 PostgreSQL インスタンスを設定するには、PSQL Database
権限に加えて、Create Database
権限が必要になる場合があります。
手順
オプション: TLS 接続を使用して PostgreSQL インスタンスを設定するための証明書シークレットを作成します。
cat <<EOF | oc -n my-rhdh-project create -f - apiVersion: v1 kind: Secret metadata: name: my-rhdh-database-certificates-secrets 1 type: Opaque stringData: postgres-ca.pem: |- -----BEGIN CERTIFICATE----- <ca-certificate-key> 2 postgres-key.key: |- -----BEGIN CERTIFICATE----- <tls-private-key> 3 postgres-crt.pem: |- -----BEGIN CERTIFICATE----- <tls-certificate-key> 4 # ... EOF
PostgreSQL インスタンスに接続するための認証情報シークレットを作成します。
cat <<EOF | oc -n my-rhdh-project create -f - apiVersion: v1 kind: Secret metadata: name: my-rhdh-database-secrets 1 type: Opaque stringData: 2 POSTGRES_PASSWORD: <password> POSTGRES_PORT: "<db-port>" POSTGRES_USER: <username> POSTGRES_HOST: <db-host> PGSSLMODE: <ssl-mode> # for TLS connection 3 NODE_EXTRA_CA_CERTS: <abs-path-to-pem-file> # for TLS connection, e.g. /opt/app-root/src/postgres-crt.pem 4 EOF
- 1
- 認証情報シークレットの名前を指定します。
- 2
- PostgreSQL インスタンスに接続するための認証情報データを指定します。
- 3
- オプション: 必要な Secure Sockets Layer (SSL) モード に応じて値を指定します。
- 4
- オプション: PostgreSQL インスタンスに TLS 接続が必要な場合にのみ値を指定します。
Backstage
カスタムリソース (CR) を作成します。cat <<EOF | oc -n my-rhdh-project create -f - apiVersion: rhdh.redhat.com/v1alpha3 kind: Backstage metadata: name: <backstage-instance-name> spec: database: enableLocalDb: false 1 application: extraFiles: mountPath: <path> # e g /opt/app-root/src secrets: - name: my-rhdh-database-certificates-secrets 2 key: postgres-crt.pem, postgres-ca.pem, postgres-key.key # key name as in my-rhdh-database-certificates-secrets Secret extraEnvs: secrets: - name: my-rhdh-database-secrets 3 # ...
注記Backstage
CR にリストされている環境変数は、Operator のデフォルト設定を使用します。Operator のデフォルト設定を変更した場合は、それに応じてBackstage
CR を再設定する必要があります。-
Backstage
CR を Developer Hub インスタンスをデプロイした namespace に適用します。