2.2. Helm チャートを使用した外部 PostgreSQL インスタンスの設定


Helm チャートを使用して外部 PostgreSQL インスタンスを設定できます。デフォルトでは、Helm チャートは 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 インスタンスに接続するためのパスワードを示します。
  • Helm チャートを使用して RHDH アプリケーションをインストールした。
  • オプション: TLS プロトコルを使用してデータベース接続を保護できるように、CA 証明書、Transport Layer Security (TLS) 秘密鍵、および TLS 証明書がある。詳細は、PostgreSQL ベンダーのドキュメントを参照してください。
注記

デフォルトでは、Developer Hub は各プラグインのデータベースを使用します。見つからない場合は、自動的にデータベースを作成します。外部 PostgreSQL インスタンスを設定するには、PSQL Database 権限に加えて、Create Database 権限が必要になる場合があります。

手順

  1. オプション: TLS 接続を使用して PostgreSQL インスタンスを設定するための証明書シークレットを作成します。

    cat <<EOF | oc -n <your-namespace> 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
    Copy to Clipboard Toggle word wrap
    1
    証明書シークレットの名前を指定します。
    2
    CA 証明書の鍵を指定します。
    3
    オプション: TLS 秘密鍵を指定します。
    4
    オプション: TLS 証明書の鍵を指定します。
  2. PostgreSQL インスタンスに接続するための認証情報シークレットを作成します。

    cat <<EOF | oc -n <your-namespace> 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
    Copy to Clipboard Toggle word wrap
    1
    認証情報シークレットの名前を指定します。
    2
    PostgreSQL インスタンスに接続するための認証情報データを指定します。
    3
    オプション: 必要な Secure Sockets Layer (SSL) モード に応じて値を指定します。
    4
    オプション: PostgreSQL インスタンスに TLS 接続が必要な場合にのみ値を指定します。
  3. values.yaml という名前の Helm 設定ファイルで PostgreSQL インスタンスを設定します。

    # ...
    upstream:
      postgresql:
        enabled: false  # disable PostgreSQL instance creation 
    1
    
        auth:
          existingSecret: my-rhdh-database-secrets # inject credentials secret to Backstage 
    2
    
      backstage:
        appConfig:
          backend:
            database:
              connection:  # configure Backstage DB connection parameters
                host: ${POSTGRES_HOST}
                port: ${POSTGRES_PORT}
                user: ${POSTGRES_USER}
                password: ${POSTGRES_PASSWORD}
                ssl:
                  rejectUnauthorized: true,
                  ca:
                    $file: /opt/app-root/src/postgres-ca.pem
                  key:
                    $file: /opt/app-root/src/postgres-key.key
                  cert:
                    $file: /opt/app-root/src/postgres-crt.pem
      extraEnvVarsSecrets:
        - my-rhdh-database-secrets # inject credentials secret to Backstage 
    3
    
      extraEnvVars:
        - name: BACKEND_SECRET
          valueFrom:
            secretKeyRef:
              key: backend-secret
              name: '{{ include "janus-idp.backend-secret-name" $ }}'
      extraVolumeMounts:
        - mountPath: /opt/app-root/src/dynamic-plugins-root
          name: dynamic-plugins-root
        - mountPath: /opt/app-root/src/postgres-crt.pem
          name: postgres-crt # inject TLS certificate to Backstage cont. 
    4
    
          subPath: postgres-crt.pem
        - mountPath: /opt/app-root/src/postgres-ca.pem
          name: postgres-ca # inject CA certificate to Backstage cont. 
    5
    
          subPath: postgres-ca.pem
        - mountPath: /opt/app-root/src/postgres-key.key
          name: postgres-key # inject TLS private key to Backstage cont. 
    6
    
          subPath: postgres-key.key
      extraVolumes:
        - ephemeral:
            volumeClaimTemplate:
              spec:
                accessModes:
                  - ReadWriteOnce
                resources:
                  requests:
                    storage: 1Gi
          name: dynamic-plugins-root
        - configMap:
            defaultMode: 420
            name: dynamic-plugins
            optional: true
          name: dynamic-plugins
        - name: dynamic-plugins-npmrc
          secret:
            defaultMode: 420
            optional: true
            secretName: '{{ printf "%s-dynamic-plugins-npmrc" .Release.Name }}'
        - name: postgres-crt
          secret:
            secretName: my-rhdh-database-certificates-secrets 
    7
    
            # ...
    Copy to Clipboard Toggle word wrap
    1
    upstream.postgresql.enabled パラメーターの値を false に設定して、PostgreSQL のローカルインスタンスの作成を無効にします。
    2
    認証情報シークレットの名前を指定します。
    3
    認証情報シークレットの名前を指定します。
    4
    オプション: TLS 接続の場合のみ、TLS 証明書の名前を指定します。
    5
    オプション: TLS 接続の場合のみ、CA 証明書の名前を指定します。
    6
    オプション: TLS 接続に秘密鍵が必要な場合にのみ、TLS 秘密鍵の名前を指定します。
    7
    TLS 接続を設定した場合は、証明書シークレットの名前を指定します。
  4. values.yaml という名前の Helm 設定ファイルに設定の変更を適用します。

    helm upgrade -n <your-namespace> <your-deploy-name> openshift-helm-charts/redhat-developer-hub -f values.yaml --version 1.4.3
    Copy to Clipboard Toggle word wrap
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat