Skip to content

Conversation

karlderkaefer
Copy link
Contributor

Give the user the option to filter out environment variables passed to envsubt by passing NGINX_ENVSUBST_FILTER

closes #705

@thresheek
Copy link
Member

Please squash the commits

@karlderkaefer
Copy link
Contributor Author

karlderkaefer commented Sep 16, 2022

I have tested this on ubuntu and alpine docker image

#!/bin/bash auto_envsubst() { local filter="${NGINX_ENVSUBST_FILTER:-}" for INDEX in {1..20} do export VAR_$INDEX=$INDEX done echo "Filter: $filter" defined_envs=$(printf '${%s} ' $(xargs -0n1 -a /proc/self/environ sh -c "echo \"\$@\" | grep -- \"${filter}\" | grep -oEm1 \"^[^=]+\"" --)); echo $defined_envs echo $defined_envs | grep -o ' ' | wc -l envsubst "$defined_envs" < "./template.yaml" } auto_envsubst 
@karlderkaefer karlderkaefer marked this pull request as draft September 16, 2022 11:15
closes nginx#705 Co-authored-by: Erik Sjölund <erik.sjolund@gmail.com>
@karlderkaefer
Copy link
Contributor Author

ok PR is ok now from side and ready for review

@karlderkaefer karlderkaefer marked this pull request as ready for review September 16, 2022 12:22
@karlderkaefer
Copy link
Contributor Author

karlderkaefer commented Sep 18, 2022

I did a comment to double-check if the last change defined_envs was really needed. It could be as simple as previous version

defined_envs=$(printf '${%s} ' $(env | grep "$filter" | cut -d= -f1)); 

local template defined_envs relative_path output_path subdir
defined_envs=$(printf '${%s} ' $(xargs -0n1 -a /proc/self/environ sh -c 'echo "$@" | grep -oEm1 "^[^=]+"' --));
defined_envs=$(printf '${%s} ' $(xargs -0n1 -a /proc/self/environ sh -c "echo \"\$@\" | grep -- \"${filter}\" | grep -oEm1 \"^[^=]+\"" --));
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess defined_envs could be removed completely as envsubst doesn't require it? Then NGINX_ENVSUBST_FILTER won't be needed anymore.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

4 participants