Skip to content

docs: document consensus node environment variables (application.env vs extraEnv) - #281

Open
Fantomasa wants to merge 1 commit into
mainfrom
3074-document-consensus-node-environment-variables
Open

docs: document consensus node environment variables (application.env vs extraEnv)#281
Fantomasa wants to merge 1 commit into
mainfrom
3074-document-consensus-node-environment-variables

Conversation

@Fantomasa

Copy link
Copy Markdown
Contributor

Description

Adds a new page under Advanced Solo Setup → Network Deployments documenting how to pass environment variables to the consensus node JVM, resolving the confusion reported in hiero-ledger/solo#3074:

  • application.env (--application-env) is documented as the supported mechanism — the node start script loads it at JVM launch, so any variable (e.g. MALLOC_ARENA_MAX) is visible to the Java process. Solo also mirrors its entries into the pod's extraEnv, keeping container and JVM environments consistent.
  • Chart extraEnv is documented as limited: it sets container-level variables, but the in-container service manager starts the JVM with a controlled environment, so only service-declared variables (JAVA_OPTS, JAVA_HEAP_MIN, JAVA_HEAP_MAX) take effect — exactly why the issue reporter saw MALLOC_ARENA_MAX missing from /proc/<pid>/environ.
  • Includes a kubectl exec verification command and the Falcon values-file form (network: --application-env), matching the structure of the sibling Custom Application Properties page.

Grounded in the solo source: --application-env is a nodeConfigFileFlags entry staged as the application.env ConfigMap (profile-manager.ts), Solo mirrors it into defaults.root.extraEnv (applyApplicationEnvToExtraEnv), and Solo's own small-memory profile passes MALLOC_ARENA_MAX=1 through application.env — confirming this is the working path.

This is the resolution direction requested by the maintainer comments on the issue ("document that extraEnv is limited to variables that are in the systemd service list; document application.env as not limited and the preferred method").

Related Issues

…vs extraEnv)

Chart extraEnv entries only set variables on the node container; the
consensus node JVM is launched by the in-container service manager with
a controlled environment, so only service-declared variables such as
JAVA_OPTS take effect and anything else (e.g. MALLOC_ARENA_MAX) is
silently dropped. Document application.env (--application-env) as the
supported mechanism for JVM-visible environment variables, with a
verification command and the Falcon values-file form.

Fixes hiero-ledger/solo#3074

Signed-off-by: Fantomasa <ivailoinfo@gmail.com>
@Fantomasa Fantomasa self-assigned this Jul 27, 2026
@Fantomasa
Fantomasa requested a review from jeromy-cannon July 27, 2026 13:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Ignored custom vars defined in extraEnv of Charts init-containers-values.yaml

1 participant