feat(nexus3): Allow env vars to be interpolated in INSTALL4J_ADD_VM_PARAMS #827
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Solution
Ensure that the
INSTALL4J_ADD_VM_PARAMS
environment variable is configured after all others. This allows user defined env vars inValues.env
to be interpolated.Background
I am trying to extract JMX metrics from my Nexus app. We are using datadog. Their advice is to set the pod ip address as an environment variable and then set the JVM RMI hostname as the pod ip.
Kubernetes (or is it helm?) can interpolate environment variables. But the environment variables must be defined before they are used.
WORKS (in pod
INSTALL4J_ADD_VM_PARAMS=... -Djava.rmi.server.hostname=1.2.3.4
)BROKEN (in pod
INSTALL4J_ADD_VM_PARAMS=... -Djava.rmi.server.hostname=$(POD_IP)
)Work around
To work around this problem, I currently declare
env[].name=POD_IP
and thenenv[].name=JAVA_TOOL_OPTIONS
.But I'd prefer to declare all of my JVM options more centrally.