Skip to content

Commit a12a843

Browse files
authored
Merge pull request #53 from stackhpc/config-diff-find-vaulted-files
feat: find vaulted files automatically for `config-diff`
2 parents 08a5753 + 2d8bceb commit a12a843

File tree

1 file changed

+21
-12
lines changed

1 file changed

+21
-12
lines changed

scripts/config-diff.sh

Lines changed: 21 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ function pre_config_init {
3030
}
3131

3232
function post_config_init {
33-
# Overrides from config.sh
3433
KAYOBE_CONFIG_SECRET_PATHS_DEFAULT=(
3534
"etc/kayobe/kolla/passwords.yml"
3635
"etc/kayobe/secrets.yml"
@@ -39,25 +38,34 @@ function post_config_init {
3938
${KAYOBE_CONFIG_SECRET_PATHS_EXTRA[@]}
4039
)
4140
KAYOBE_CONFIG_SECRET_PATHS=("${KAYOBE_CONFIG_SECRET_PATHS[@]:-${KAYOBE_CONFIG_SECRET_PATHS_DEFAULT[@]}}")
42-
# TODO: could auto detect which files? e.g. "grep -irl "ANSIBLE_VAULT;1" etc/kayobe/kolla/config"
43-
KAYOBE_CONFIG_VAULTED_FILES_PATHS_DEFAULT=(
44-
"etc/kayobe/kolla/config/octavia/server_ca.key.pem"
45-
"etc/kayobe/kolla/config/octavia/client.cert-and-key.pem"
46-
"etc/kayobe/kolla/config/octavia/client_ca.key.pem"
47-
"etc/kayobe/environments/$KAYOBE_ENVIRONMENT/kolla/config/octavia/client_ca.key.pem"
48-
"etc/kayobe/environments/$KAYOBE_ENVIRONMENT/kolla/config/octavia/server_ca.key.pem"
49-
"etc/kayobe/environments/$KAYOBE_ENVIRONMENT/kolla/config/octavia/client.cert-and-key.pem"
50-
${KAYOBE_CONFIG_VAULTED_FILES_PATHS_EXTRA[@]}
51-
)
52-
KAYOBE_CONFIG_VAULTED_FILES_PATHS=("${KAYOBE_CONFIG_VAULTED_FILES_PATHS[@]:-${KAYOBE_CONFIG_VAULTED_FILES_PATHS_DEFAULT[@]}}")
41+
42+
find_redacted_files "/stack/kayobe-automation-env/src/kayobe-config/etc/kayobe"
5343

5444
# Some values are currently determined dynamically from container versions
5545
export KAYOBE_AUTOMATION_CONFIG_DIFF_FLUENTD_BINARY="${KAYOBE_AUTOMATION_CONFIG_DIFF_FLUENTD_BINARY:-td-agent}"
5646
export KAYOBE_AUTOMATION_CONFIG_DIFF_FLUENTD_VERSION="${KAYOBE_AUTOMATION_CONFIG_DIFF_FLUENTD_BINARY:-0.14}"
5747

5848
export KAYOBE_AUTOMATION_CONFIG_DIFF_INJECT_FACTS="${KAYOBE_AUTOMATION_CONFIG_DIFF_INJECT_FACTS=-0}"
5949
export KAYOBE_AUTOMATION_CONFIG_DIFF_AUTO_UNSET_ENVIRONMENT="${KAYOBE_AUTOMATION_CONFIG_DIFF_AUTO_UNSET_ENVIRONMENT=-0}"
50+
}
6051

52+
function find_redacted_files {
53+
KAYOBE_CONFIG_VAULTED_FILES_PATHS=()
54+
local directory="$1"
55+
56+
echo $directory
57+
58+
# Search for vaulted files recursively in the directory
59+
while IFS= read -r -d '' file; do
60+
if grep -q "ANSIBLE_VAULT;1" "$file"; then
61+
truncated_path="${file#"$directory/"}"
62+
vaulted_file="etc/kayobe/$truncated_path"
63+
if ! [[ "${KAYOBE_CONFIG_SECRET_PATHS_DEFAULT[*]}" =~ "$vaulted_file" ]]; then
64+
KAYOBE_CONFIG_VAULTED_FILES_PATHS+=("etc/kayobe/$truncated_path")
65+
fi
66+
fi
67+
done < <(find "$directory" -type f -print0)
68+
echo ${KAYOBE_CONFIG_VAULTED_FILES_PATHS[*]}
6169
}
6270

6371
function redact_file {
@@ -254,6 +262,7 @@ function main {
254262
# Perform same steps as above, but for the source branch
255263
# Merge in the target branch so that we don't see changes that were added since we branched.
256264
merge "$source_kayobe_config_dir" $1
265+
find_redacted_files "$source_kayobe_config_dir/etc/kayobe"
257266
create_kayobe_environment "$environment_path" "$source_kayobe_config_dir"
258267
# Supplying a reference kayobe-config will do a diff on the secrets
259268
redact_config_dir "$environment_path" "$target_kayobe_config_dir"

0 commit comments

Comments
 (0)