Skip to main content

Variable Reference — What the Data Lake Reads

This document collects only the variables that the data lake container actually reads. The source of truth for defaults is plantpulse-datalake-cli/config/defaults.env inside the container; values passed from the host override it. All host-side values (including DOCKER_*) are in the environment variable reference.

«Present» and «reachable» are different

Variables in the table below whose «Changeable from host» column is No do not enter the container at all, even via the sidecar. The compose file does not pass that name to the data lake. The value is set by defaults.env or a template.

Secrets — What happens if missing

The secrets known to pd come in three lists. Values have no defaults anywhere; they enter only via sidecar → compose → environment variable.

ListVariableIf missing
RequiredPP_REDIS_PASSWORD PP_PG_PASSWORD PP_CASSANDRA_PASSWORD PP_MINIO_PASSWORD PP_MQ_PASSWORD PP_TSE_PASSWORD PP_SPARK_PASSWORD PP_HIVE_PASSWORD PP_GRAVITINO_PASSWORD PP_TEMPORAL_PASSWORD PP_KESTRA_DB_PASSWORD PP_KESTRA_ADMIN_PASSWORD PP_TLS_KEYSTORE_PASSWORD PP_CEP_API_KEY PP_DATA_GATEWAY_API_KEYpd start stops with exit 3 and lists all missing names. Compose also demands :? and the stack does not start at all
Worker additionalPP_PG_REPLICA_PASSWORDRequired only on WORKER nodes
OptionalPP_DATALAKE_ADMIN_PASSWORD PP_DATALAKE_ADMIN_API_KEY PP_DATA_GATEWAY_WEB_PASSWORD PP_CEP_WEB_PASSWORDThat one feature only turns off. Stack starts normally. pd doctor tells you the name

How to change them is in passwords · API keys. The derived value set (PP_TLS_TRUSTSTORE_PASSWORD · PP_REDIS_TRUSTSTORE_PASSWORD · PP_MQ_TRUSTSTORE_PASSWORD) is generated from the keystore password and is not set separately.

Node · Address

VariableDefaultMeaningChangeable from host
PP_MODEMASTERMASTER / WORKER. Workers are set by worker-add.shNode file
PP_HOST_IP10.99.0.100 (compose network static IP)This container's address. Basis for advertised addressDOCKER_PP_IP
PP_MASTER_IPPP_HOST_IPAddress where other boxes connect to this data lakeNode file
PP_SERVICE_IPEmptyPublic IP behind NAT. Goes into TLS SANNode file DOCKER_PP_EXTERNAL_IP
PP_KAFKA_ADVERTISED_HOSTInferred at startupAddress Kafka advertises to clientsNode file (NAT · secondary interface only)
PP_CLUSTER_CORESHost cores − 2 (4–30)Number of cores reported to Spark and othersDOCKER_PP_CLUSTER_CORES
PP_DATA_DISK_NAMEDetected from hostDevice to measure disk usage onDOCKER_PP_DATA_DISK_NAME
PP_DATA_DIR · PP_TEMP_DIR · PP_BACKUP_DIR/data1/pp-data · /data1/pp-temp · /data1/pp-backupVolume mount pointsNo (compose literals)
PP_LANG · PP_TZen · Asia/SeoulLanguage · timezoneSidecar

Storage

VariableDefaultChangeable from host
PP_REDIS_USER · PP_REDIS_PORTredis · 6379Account name only (port is no)
PP_PG_USER · PP_POSTGRES_PORT · PP_DB_NAMEplantpulse · 5432 · ppAccount name · database name (port is no)
PP_CASSANDRA_USER · PP_CASSANDRA_PORT · PP_KEYSPACEcassandra · 9042 · ppAccount name · keyspace (port is no)
PP_MINIO_USER · PP_MINIO_PORT · PP_MINIO_BUCKETminio · 9000 · plantpulseAccount name only
PP_PG_REPLICA_USERreplicaSidecar

PP_KEYSPACE · PP_DB_NAME · PP_TOPIC_PREFIX are identifiers that the data lake creates and the app reads, so they live in the compose x-pp-secrets anchor so both sides see them the same. If you change them after installation, a new empty storage appears under the new name and old data remains under the old name.

Analytics · Messaging · Time series · Workflow

VariableDefaultChangeable from host
PP_HIVE_USER · PP_HIVE_PORT · PP_HIVE_DBhive · 9083 · hive-metastore-230Account name only
PP_SPARK_USER · PP_SPARK_PORT · PP_SPARK_WEBUI_PORT · PP_KYUUBI_PORTspark · 7077 · 4440 · 10000Account name only
PP_GRAVITINO_USER · PP_GRAVITINO_ICEBERG_REST_PORTgravitino · 19001Account name only
PP_MQ_USER · PP_TOPIC_PREFIXmq · ppSidecar
PP_KAFKA_PORT · PP_KAFKA_TLS_PORT · PP_KAFKA_CONTROLLER_PORT9092 · 9094 · 9093No
PP_MQTT_PORT · PP_MQTT_TLS_PORT1883 · 1884No
PP_TSE_USER · PP_TSE_PORT · PP_TSE_TLS_PORT · PP_TSE_PROTOCOLtse · 7800 · 7801 · httpAccount name only
PP_TSE_DATAPOINT_TTL31536000 (365 days)No — edit template
PP_TEMPORAL_USER · PP_TEMPORAL_PORTtemporal · 7233Account name only
PP_KESTRA_DB_USER · PP_KESTRA_ADMIN_EMAIL · PP_KESTRA_PORTkestra · admin@plantpulse.io · 8380Account name · email
PP_CEP_PORT · PP_CEP_TLS_PORT · PP_CEP_PROTOCOL7400 · 7401 · httpNo
PP_DATA_GATEWAY_PORT · PP_DATA_GATEWAY_TLS_PORT · PP_DATA_GATEWAY_PROTOCOL5500 · 5501 · httpNo
PP_TSE_DATAPOINT_TTL — Lifetime of one time series point

The time series engine stamps this TTL on every write (INSERT … USING TTL). So if you change the value, it applies only to newly written rows, and already-written rows expire by the old value. Increasing it does not resurrect them, decreasing it does not shorten them. To change it, edit /etc/kopens/conf/plantpulse-timeseries-engine.conf.template.

Admin console · Query console

VariableDefaultMeaningChangeable from host
PP_DATALAKE_ADMIN_USERadminAdmin console login nameSidecar
PP_DATALAKE_ADMIN_PASSWORDSet by sidecarAdmin console password. If empty, console only turns offpasswd.sh
PP_DATALAKE_ADMIN_API_KEYNoneX-API-Key for log endpoint. If empty, key auth only turns offpasswd.sh
PP_DATALAKE_ADMIN_PORT4949Listen port inside container. 4950 is TLS for the same consoleNo
PP_DATALAKE_ADMIN_LOGS_ENABLEDtrueIf false, console log screen only turns offSidecar
PP_DATA_GATEWAY_WEB_USER · PP_DATA_GATEWAY_WEB_PASSWORDadmin · NoneData gateway console (SQL) login. If empty, that console closesSidecar
PP_CEP_WEB_USER · PP_CEP_WEB_PASSWORDadmin · NoneCEP console login. If empty, that console closesSidecar
PP_BACKUP_SCHEDULE_ENABLEDtrueGlobal backup timer switchSidecar

The remaining console settings (PP_DATALAKE_ADMIN_PD_PATH · PP_DATALAKE_ADMIN_LOG_ROOT · PP_DATALAKE_ADMIN_BACKUP_HISTORY) are put in by compose as literals. You would not change them.

TLS

VariableDefaultMeaning
PP_TLS_ENABLEDtrueMaster switch
PP_TLS_CERT_DIR/var/security/plantpulseCertificate directory
PP_TLS_DOMAIN · PP_TLS_VALID_DAYSplantpulse.io · 3650Certificate domain · validity period
PP_TLS_SAN_IPS · PP_TLS_SAN_DNSHost IP · host nameCertificate SAN. Must include external access IP
PP_TLS_NODE_NAMES · PP_MAX_WORKERSmaster worker-1 … worker-5 · 5One certificate per worker. Both must match for build to pass

The certificates themselves are created by the plantpulse-certs container → security setup

Variables starting with PD_

PD_ are data lake «local variables». Operators set only two of them; the rest are internal script variables or stamps baked into the image.

VariableMeaning
PD_HOMETree where pd lives. Set by image
PD_OPTIONSComponent on/off JSON — {"enable-hive": false}. Omitted keys turn on. Current compose stack does not pass this value to the container → FAQ
PD_IMAGE_TAG · PD_IMAGE_BUILD_VERSION · PD_IMAGE_BUILT_AT · PD_IMAGE_VCS_REFImage stamps. Do not touch — source attribution by pd env · pd doctor becomes false