Last active
January 30, 2023 20:20
-
-
Save Satak/f613431114329e82016238f200bf125e to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
workspace-1: | |
environments: | |
dev: {} | |
test: | |
variables: | |
ws-1-top-var-1: | |
value: ws 1 test var value | |
prod: | |
variables: | |
WS-1-PROD-VAR: | |
value: WS 1 PROD VAR VALUE | |
variables: | |
# environment: {} | |
ws-1-top-var-1: | |
value: ws 1 top level var | |
workspace-2: | |
variables: | |
ws-2-top-var-1: | |
value: ws 2 top level var 1 value AAAAAAAAAAAA | |
ws-2-top-var-2: | |
value: ws 2 top level var 2 value BBBBBBBBBBBB | |
workspace-3: | |
environments: | |
prod: | |
variables: | |
WS-3-PROD-VAR: | |
value: WS 3 PROD VAR VALUE | |
variables: | |
WS-3-TOP-VAR: | |
value: WS 3 top value | |
WS-3-PROD-VAR: | |
value: THIS SHOULD NOT BE FOUND SINCE IT IS DEFINED AT ENV LEVEL |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
locals { | |
workspace_data = yamldecode(file("./config.yaml")) | |
workspace_vars = { for v in flatten( | |
[for ws_name, ws_value in local.workspace_data : | |
[for env_name, env_value in try(ws_value.environments, { "" : {} }) : | |
[for var_name, var_value in merge(try(ws_value.variables, {}), try(env_value.variables, {})) : | |
{ | |
ws_name : ws_name | |
# ws_value : ws_value | |
env_name : env_name | |
# env_value : env_value | |
var_name : var_name | |
var_value : var_value.value | |
} | |
] | |
] | |
] | |
) : join("-", compact([v.ws_name, v.env_name, v.var_name])) => v } | |
} | |
output "workspace_vars" { | |
value = local.workspace_vars | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment