メインコンテンツまでスキップ
バージョン: 3.8

Secret リソースを使用して資格情報を環境変数としてプロパティ ファイルに渡す方法

注記

このページは英語版のページが機械翻訳されたものです。英語版との間に矛盾または不一致がある場合は、英語版を正としてください。

Kubernetes の Secret リソースを介して、usernamepassword などの資格情報を環境変数として渡すことができます。 Scalar 製品の以前のバージョンの Docker イメージは、プロパティ ファイルのテンプレート化に dockerize コマンドを使用します。 Scalar 製品の最新バージョンの Docker イメージは、環境変数から直接値を取得します。

注記:次の環境変数名は、Scalar Helm Chart の内部で使用されるため、カスタム値ファイルで使用できません。

HELM_SCALAR_DB_CONTACT_POINTS
HELM_SCALAR_DB_CONTACT_PORT
HELM_SCALAR_DB_USERNAME
HELM_SCALAR_DB_PASSWORD
HELM_SCALAR_DB_STORAGE
HELM_SCALAR_DL_LEDGER_PROOF_ENABLED
HELM_SCALAR_DL_LEDGER_AUDITOR_ENABLED
HELM_SCALAR_DL_LEDGER_PROOF_PRIVATE_KEY_PATH
HELM_SCALAR_DL_AUDITOR_SERVER_PORT
HELM_SCALAR_DL_AUDITOR_SERVER_PRIVILEGED_PORT
HELM_SCALAR_DL_AUDITOR_SERVER_ADMIN_PORT
HELM_SCALAR_DL_AUDITOR_LEDGER_HOST
HELM_SCALAR_DL_AUDITOR_CERT_HOLDER_ID
HELM_SCALAR_DL_AUDITOR_CERT_VERSION
HELM_SCALAR_DL_AUDITOR_CERT_PATH
HELM_SCALAR_DL_AUDITOR_PRIVATE_KEY_PATH
SCALAR_DB_LOG_LEVEL
SCALAR_DL_LEDGER_LOG_LEVEL
SCALAR_DL_AUDITOR_LOG_LEVEL
SCALAR_DB_CLUSTER_MEMBERSHIP_KUBERNETES_ENDPOINT_NAMESPACE_NAME
SCALAR_DB_CLUSTER_MEMBERSHIP_KUBERNETES_ENDPOINT_NAME
  1. 環境変数名をカスタム値ファイルのプロパティ構成に設定します。

      • ScalarDB Server
        • ScalarDB Server 3.7 以前 (Go テンプレート構文)

          scalardb:
          databaseProperties: |
          ...
          scalar.db.username={{ default .Env.SCALAR_DB_USERNAME "" }}
          scalar.db.password={{ default .Env.SCALAR_DB_PASSWORD "" }}
          ...
        • ScalarDB Server 3.8 以降 (Apache Commons Text 構文)

          scalardb:
          databaseProperties: |
          ...
          scalar.db.username=${env:SCALAR_DB_USERNAME}
          scalar.db.password=${env:SCALAR_DB_PASSWORD}
          ...
      • ScalarDB Cluster
        scalardbCluster:
        scalardbClusterNodeProperties: |
        ...
        scalar.db.username=${env:SCALAR_DB_USERNAME}
        scalar.db.password=${env:SCALAR_DB_PASSWORD}
        ...
      • ScalarDB Analytics with PostgreSQL
        scalardbAnalyticsPostgreSQL:
        databaseProperties: |
        ...
        scalar.db.username=${env:SCALAR_DB_USERNAME}
        scalar.db.password=${env:SCALAR_DB_PASSWORD}
        ...
      • ScalarDL Ledger
        • ScalarDL Ledger 3.7 以前 (Go テンプレート構文)

           ledger:
          ledgerProperties: |
          ...
          scalar.db.username={{ default .Env.SCALAR_DB_USERNAME "" }}
          scalar.db.password={{ default .Env.SCALAR_DB_PASSWORD "" }}
          ...
        • ScalarDL Ledger 3.8 以降 (Apache Commons Text 構文)

          ledger:
          ledgerProperties: |
          ...
          scalar.db.username=${env:SCALAR_DB_USERNAME}
          scalar.db.password=${env:SCALAR_DB_PASSWORD}
          ...
      • ScalarDL Auditor
        • ScalarDL Auditor 3.7 以前 (Go テンプレート構文)

          auditor:
          auditorProperties: |
          ...
          scalar.db.username={{ default .Env.SCALAR_DB_USERNAME "" }}
          scalar.db.password={{ default .Env.SCALAR_DB_PASSWORD "" }}
          ...
        • ScalarDL Auditor 3.8 以降 (Apache Commons Text 構文)

          auditor:
          auditorProperties: |
          ...
          scalar.db.username=${env:SCALAR_DB_USERNAME}
          scalar.db.password=${env:SCALAR_DB_PASSWORD}
          ...
      • ScalarDL Schema Loader
        • ScalarDL Schema Loader 3.7 以前 (Go テンプレート構文)

          schemaLoading:
          databaseProperties: |
          ...
          scalar.db.username={{ default .Env.SCALAR_DB_USERNAME "" }}
          scalar.db.password={{ default .Env.SCALAR_DB_PASSWORD "" }}
          ...
        • ScalarDL Schema Loader 3.8 以降 (Apache Commons Text 構文)

          schemaLoading:
          databaseProperties: |
          ...
          scalar.db.username=${env:SCALAR_DB_USERNAME}
          scalar.db.password=${env:SCALAR_DB_PASSWORD}
          ...
  2. 資格情報を含む Secret リソースを作成します。 Secret のキーとして環境変数名を指定する必要があります。

    • kubectl create secret generic scalardb-credentials-secret \
      --from-literal=SCALAR_DB_USERNAME=postgres \
      --from-literal=SCALAR_DB_PASSWORD=postgres
  3. カスタム値ファイル内の次のキーに Secret 名を設定します。

    • キー
      • scalardb.secretName (ScalarDB Server)
      • scalardbCluster.secretName (ScalarDB Cluster)
      • scalardbAnalyticsPostgreSQL.secretName (ScalarDB Analytics with PostgreSQL)
      • ledger.secretName (ScalarDL Ledger)
      • auditor.secretName (ScalarDL Auditor)
      • schemaLoading.secretName (ScalarDL Schema Loader)
      • ScalarDB Server
        scalardb:
        secretName: "scalardb-credentials-secret"
      • ScalarDB Cluster
        scalardbCluster:
        secretName: "scalardb-cluster-credentials-secret"
      • ScalarDB Analytics with PostgreSQL
        scalardbAnalyticsPostgreSQL:
        secretName: scalardb-analytics-postgresql-credentials-secret
      • ScalarDL Ledger
        ledger:
        secretName: "ledger-credentials-secret"
      • ScalarDL Auditor
        auditor:
        secretName: "auditor-credentials-secret"
      • ScalarDL Schema Loader
        schemaLoading:
        secretName: "schema-loader-ledger-credentials-secret"
  4. 上記のカスタム値ファイルを使用して Scalar 製品をデプロイします。

    Scalar 製品をデプロイした後、Go テンプレート文字列 (環境変数) は Secret の値に置き換えられます。

      • カスタム値ファイル

        scalardb:
        databaseProperties: |
        scalar.db.contact_points=jdbc:postgresql://postgresql-scalardb.default.svc.cluster.local:5432/postgres
        scalar.db.username={{ default .Env.SCALAR_DB_USERNAME "" }}
        scalar.db.password={{ default .Env.SCALAR_DB_PASSWORD "" }}
        scalar.db.storage=jdbc
      • コンテナ内のプロパティ ファイル

        scalar.db.contact_points=jdbc:postgresql://postgresql-scalardb.default.svc.cluster.local:5432/postgres
        scalar.db.username=postgres
        scalar.db.password=postgres
        scalar.db.storage=jdbc

    Apache Commons Text 構文を使用する場合、Scalar 製品は環境変数から直接値を取得します。