メインコンテンツまでスキップ

設定ファイルはどこにあるか

レンダーが上書きします — 修正すべき場所はテンプレートです

起動のたびに config/templates/*.template をレンダーし、各コンポーネントの設定場所に 上書きします。 コンポーネント側のファイルを直接修正すると、次の起動で消えてしまいます。 → 設定の変更方法

データレイクの設定は 「出所は二つ、方向は一つ」 で作られます。オペレーターが修正するファイルは決まっており、コンテナ内の設定ファイルはそれを掛け合わせて生成されたものです。

호스트 /etc/kopens/conf/*.template ← 설정의 «형태» (빈칸이 뚫린 원본)
× /etc/kopens/plantpulse-platform.env ← 시크릿 (비밀번호 · API 키)
× /etc/kopens/platform.node.env ← 이 노드의 값 (IP · 모드)
+ 이미지 안 config/defaults.env ← 비밀 아닌 기본값 (위에서 안 준 것만)
─────────────────────────────────────────
→ pd config render → /opt/kopens/plantpulse-platform/<module>/conf/… (생성물)

pd start は毎回、例外なく最初にレンダーします。そのため、コンテナ内の生成物を手で修正しても次の起動で消えてしまいます。2026-09-01 に実際にコンテナ内の cassandra.yaml を修正して認証を有効にしたところ、再生成でファイルが元に戻り、認証が丸ごと壊れた事故がありました。

正本ファイル四つ​

#ファイル内容形式誰が書くか
1/etc/kopens/plantpulse-platform.envシークレット — サービスアカウントのパスワード・API キー・TLS パスワード。秘密でない共通値もここに書けますVAR=값 1行に1つ、export なし。先頭2行(# generated:・# last rotation:)はツールが管理install.sh が作成し、passwd.sh が更新。秘密でない行はオペレーターが直接
2/etc/kopens/platform.node.envこのボックスだけに真の値 — PP_MASTER_IP・PP_KAFKA_ADVERTISED_HOST・DOCKER_PP_EXTERNAL_IP・PP_NODE_ID同じ形式インストールツールがテンプレートから作成し、オペレーターが直接
3/etc/kopens/conf/*.template設定の形 — 各エンジンの設定ファイル原本33個各エンジンの文法 + ${PP_변수} プレースホルダー初回起動時にイメージからシードし、その後はオペレーターが直接
4(イメージ内) plantpulse-datalake-cli/config/defaults.env秘密でないデフォルト値 — ポート・アカウント名・ディレクトリ・TLS設定KEY=value製品。オペレーターは変更せず、1・2で上書きします
パスワードはファイル編集では変更されません

サイドカーのパスワード行を修正するだけでは反映が完了しません。PostgreSQL・Aster TSDB のようにサーバーアカウントが正本である値は、サーバー側も一緒に変更する必要があり、順序を間違えるとプラットフォームが起動しません。bin/passwd.sh がその順序を代わりに実行します → パスワード・API キーの変更

値が決まる順序​

ホストの bin/env.sh が上から下へ読む順序が、そのまま優先順位です。後から読まれるものが勝ちます。

優先順位出所なぜ勝つか
1 (最上位)/etc/kopens/platform.node.envサイドカーの次に読まれる無条件代入
2/etc/kopens/plantpulse-platform.envVAR=값 無条件代入 — シェルの export も上書きします
3呼び出しシェルの export1・2 がその名前を書いていないときだけ
4 (最下位)bin/env.sh の ${VAR:-기본값}誰も決めていないときだけ

その値は compose を経由してコンテナに環境変数として入り、コンテナ内では渡された値が defaults.env に勝ちます。

インストール完了済みノードでは export は静かに無視されます

PP_PG_PASSWORD=새값 bin/up.sh のようにシェルで値を渡す方法は、サイドカーがまだないノードでのみ有効です。サイドカーがすでにその名前を持っている場合は、サイドカーが勝ちます。実際にこの方法で変更したと思い込んで進めてしまった事故がありました。

いまこのボックスの有効値と出所を確認するには、頭の中でシミュレーションせずに次のコマンドを実行してください。シークレットは **** で隠されます。

cd /opt/kopens/plantpulse-platform-docker
bin/env.sh --print

コンテナ内にはサイドカーはありません​

コンテナには /etc/kopens/plantpulse-platform.env ファイルがマウントされません。 値はホストの bin/env.sh がサイドカーを読み取り、compose がそれを環境変数としてコンテナに渡す経路でのみ入ります。

そのため、二つのことが付随します。

  • サイドカーを修正した後はコンテナを再作成する必要があり、新しい値が入ります。ホストの bin/restart-datalake.sh がその作業を行います。
  • compose が書いていない名前は、サイドカーにいくら書いてもコンテナに届きません。 どの名前が届くかは compose/docker-compose.yml の x-pp-secrets アンカーと plantpulse-datalake サービスの environment: ブロックが決定します。変数リファレンスに「届く名前」だけをまとめています。

pd doctor をコンテナ内で実行すると、サイドカーの行は「ファイルなし」ではなくそもそも表示されず、代わりに all required secrets set 行が実際の測定値です — 正常です。

テンプレート一覧 — 何がどこへレンダーされるか​

ホスト /etc/kopens/conf/ のテンプレート33個(最上位23 + cluster/ 10)が以下の場所へ移動します。対応表の正本はコンテナ内の plantpulse-datalake-cli/config/render.map で、pd config list がこのノードのモードに該当する行を出力します。

テンプレートレンダー先 (PP_HOME 基準)MASTERWORKER
valkey.confplantpulse-storage/cache/valkey/conf/valkey.conf○○ (cluster/)
postgresql.conf・pg_hba.confplantpulse-storage/db/postgres/conf/○○ (cluster/)
cassandra.yaml・jvm-server.optionsplantpulse-storage/db/cassandra/conf/○○ (cluster/)
spark-env.sh・spark-defaults.conf・metrics.propertiesplantpulse-analytics/spark/conf/○○
hive-site.xml・hive-auth.propertiesplantpulse-analytics/spark/conf/○○ (cluster/)
hive-site.xmlplantpulse-analytics/hive/conf/hive-site.xml○—
kyuubi-defaults.confplantpulse-analytics/kyuubi/conf/○○
gravitino-iceberg-rest-server.confplantpulse-analytics/gravitino/conf/○—
kafka.properties・kafka-jaas.confplantpulse-messaging/kafka/config/kafka.properties・jaas.conf○—
hivemq.xml・plantpulse-mq-auth.propertiesplantpulse-messaging/mqtt/conf/config.xml・auth.properties○—
plantpulse-timeseries-engine.confplantpulse-timeseries/engine/conf/ (二つの名前で)○—
plantpulse-datalake-admin-api.propertiesplantpulse-datalake-admin-api/config/○○ (cluster/)
workflow.yaml・application.yamlplantpulse-workflow/temporal/config/・kestra/config/○—
plantpulse-cep.propertiesplantpulse-cep/config/○—
plantpulse-jdbc.properties・plantpulse-data-gateway.propertiesplantpulse-data-gateway/config/○—

cluster/ 表示は、WORKER ノードが /etc/kopens/conf/cluster/ の下の別のテンプレートを使うことを意味します。例えば MASTER の valkey.conf.template には replicaof がなく、cluster/valkey.conf.template には replicaof ${PP_MASTER_IP} ${PP_REDIS_PORT} があります。

テンプレート文法​

三つだけです。

文法意味
${PP_VAR}値がない場合、レンダー全体が失敗します(exit 4)。空の値で埋めて先に進みません
${PP_VAR:기본값}・${PP_VAR:-기본값}値がない場合、デフォルト値

シークレットにはインラインデフォルト値を置けません。昔のレンダラーが空の値で埋めて先に進み、パスワードが空文字列の Aster TSDB が起動したことがあったため、現在は欠けている名前をすべて列挙して停止します。

レンダーされない設定 — 管理コンソールアカウント​

管理コンソールのログインアカウントはどのテンプレートにも含まれません。admin-api プロセスが環境変数から直接読み取ります。ディスクにパスワードのコピーをもう一枚作らないためです。

変数出所デフォルト値
PP_DATALAKE_ADMIN_USERdefaults.envadmin
PP_DATALAKE_ADMIN_PASSWORDサイドカー2026-09-05 以降のインストール版は、Web コンソールの管理者と同じ開発用デフォルト値 → 初期パスワードの変更。それ以前のインストール版は空で、コンソールがオフになっています
PP_DATALAKE_ADMIN_API_KEYサイドカーなし — 空の場合、キー認証のみオフになり、ブラウザログインはそのまま

コンポーネントを選んで停止できません​

変数 PD_OPTIONS はありますが、現在の compose スタックはこの値をコンテナに渡しません。 そのため、コンポーネントを一つだけ除外して起動する構成は現在サポートされていません → FAQ

関連ドキュメント​