Backport PR #16026 to 8.13: Save name came through ENV vars to let Logstash decide using value from either keystore or ENV. #16037
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.
Backport PR #16026 to 8.13 branch, original message:
Release notes
What does this PR do?
This PR fixes the historical bug: when running Logstash in a docker container with ENV variables,
env2yaml
tool saves ENV${KEY}=${VALUE}
by resolving its actual value. This will be an issue when keystore has a same ${KEY} where the expected behavior is to be keystore precedence.Why is it important/What is the impact to the user?
If users are using same ${KEY} in both keystore and docker ENV, they may see the behavior where keystore ${KEY}=VALUE will be used.
Checklist
[ ] I have made corresponding changes to the documentation[ ] I have made corresponding change to the default configuration files (and/or docker env variables)[ ] I have added tests that prove my fix is effective or that my feature worksAuthor's Checklist
How to test this PR locally
rake artifact:docker
-> creates an docker image (see the logs below)docker run --rm --name={preferredName} -e API_ENABLED=false -e {dockerImageHashBuiltByRake}
API_ENABLED
same key to the keystore with value oftrue
,bin/logstash-keystore add API_ENABLED
API_ENABLED=true
config/logstash.yml
file. Before the fix,logstash.yml
would containapi.enabled: false
lines. After the fix it is,api.enabled: ${API_ENABLED}
Related issues
Use cases
Screenshots
Logs