設定ファイルはどこにあるか
データレイクの設定は**«出典ふたつ、方向ひとつ»で作られます。運用者が修正するファイルは定まっており、コンテナ内の設定ファイルはそれを乗じて生成**したものです。
호스트 /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=값 一行に一つ、export なしで。ヘッダー二行(# 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 · Cassandra のようにサーバー アカウントが正本である値はサーバー側も一緒に変えなければならず、順序を間違えるとプラットフォームが起動しません。bin/passwd.sh がその順序を代わりに踏みます → パスワード · API キーを変更する
値が決定される順序
ホストのbin/env.shが上から下へ読む順序がそのまま優先順位です。後に読まれるものが勝ちます。
| 優先順位 | 出典 | なぜ勝つか |
|---|---|---|
| 1 (最上) | /etc/kopens/platform.node.env | サイドカーの次に読む無条件代入 |
| 2 | /etc/kopens/plantpulse-platform.env | VAR=값 無条件代入 — シェル export も上書きします |
| 3 | 呼び出しシェルのexport | 1 · 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 基準) | MASTER | WORKER |
|---|---|---|---|
valkey.conf | plantpulse-storage/cache/valkey/conf/valkey.conf | ○ | ○ (cluster/) |
postgresql.conf · pg_hba.conf | plantpulse-storage/db/postgres/conf/ | ○ | ○ (cluster/) |
cassandra.yaml · jvm-server.options | plantpulse-storage/db/cassandra/conf/ | ○ | ○ (cluster/) |
spark-env.sh · spark-defaults.conf · metrics.properties | plantpulse-analytics/spark/conf/ | ○ | ○ |
hive-site.xml · hive-auth.properties | plantpulse-analytics/spark/conf/ | ○ | ○ (cluster/) |
hive-site.xml | plantpulse-analytics/hive/conf/hive-site.xml | ○ | — |
kyuubi-defaults.conf | plantpulse-analytics/kyuubi/conf/ | ○ | ○ |
gravitino-iceberg-rest-server.conf | plantpulse-analytics/gravitino/conf/ | ○ | — |
kafka.properties · kafka-jaas.conf | plantpulse-messaging/kafka/config/kafka.properties · jaas.conf | ○ | — |
hivemq.xml · plantpulse-mq-auth.properties | plantpulse-messaging/mqtt/conf/config.xml · auth.properties | ○ | — |
plantpulse-timeseries-engine.conf | plantpulse-timeseries/engine/conf/ (二つの名前で) | ○ | — |
plantpulse-datalake-admin-api.properties | plantpulse-datalake-admin-api/config/ | ○ | ○ (cluster/) |
workflow.yaml · application.yaml | plantpulse-workflow/temporal/config/ · kestra/config/ | ○ | — |
plantpulse-cep.properties | plantpulse-cep/config/ | ○ | — |
plantpulse-jdbc.properties · plantpulse-data-gateway.properties | plantpulse-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:-기본값} | 値がなければ既定値 |
シークレットにはインライン既定値を持てません。旧レンダラーが空の値で埋めて進んだパスワードが空文字列である Cassandra が出た過去があるので、今は欠けた名前を全部列挙して止まります。
レンダリングされない設定 — 管理コンソール アカウント
管理コンソールのログイン アカウントはどのテンプレートにも入りません。admin-api プロセスが環境変数から直接読みます。ディスクにパスワード コピーをもう一つ作らないためです。
| 変数 | どこから来るか | 既定値 |
|---|---|---|
PP_DATALAKE_ADMIN_USER | defaults.env | admin |
PP_DATALAKE_ADMIN_PASSWORD | サイドカー | 2026-09-05 以降インストール本は Web コンソール管理者と同じ開発用既定値 → 初期パスワードを変更する。それ以前のインストール本は空でコンソールが切れています |
PP_DATALAKE_ADMIN_API_KEY | サイドカー | なし — 空ならキー認証だけ切れてブラウザ ログインはそのまま |
旧ガイダンスと異なる点
| 旧ドキュメント | 今 |
|---|---|
configure.sh が設定を生成する | pd config render (そしてpd start が毎回) |
/etc/kopens/conf がplantpulse-startup/template としてマウントされる | plantpulse-datalake-cli/config/templates としてマウントされます(2026-09-03)。旧位置は何も読まないコピーなので運用者編集がレンダリングに届きませんでした |
コンテナ内env.sh · env-reset.sh | なくなりました。値はホストが決めて compose が渡します |
PP_OPTIONS でコンポーネントを切る | 変数名はPD_OPTIONS に変わり、現在 compose スタックはこの値をコンテナに渡しません → FAQ |
PP_TIER (FULL / DATALAKE / APP) | 2026-09-02 に削除されました。すべてのボックスはフル インストールです |