check if reference exists in key group before adding, skip if it does

This commit is contained in:
2025-05-05 09:38:43 -05:00
parent cf085c4eec
commit b3aedc5ead
2 changed files with 8 additions and 6 deletions
-2
View File
@@ -1,10 +1,8 @@
keys: keys:
hosts: hosts:
- &laptop age1ldgnl53dmvl4fjz6hgdj0cvensagddn3ltpmxfm72m8q273w75fsk42p8v - &laptop age1ldgnl53dmvl4fjz6hgdj0cvensagddn3ltpmxfm72m8q273w75fsk42p8v
- &nixos-homelab-00 age1kc49egwnslqjjy7yknlv9spxa2xvrq4l6alxumu54ez8vwvf3e2q5ff63k
creation_rules: creation_rules:
- path_regex: secrets/[^/]+\.(yaml|json|env|ini)$ - path_regex: secrets/[^/]+\.(yaml|json|env|ini)$
key_groups: key_groups:
- age: - age:
- *laptop - *laptop
- *nixos-homelab-00
+4
View File
@@ -27,9 +27,13 @@ function sops_update_age_key() {
function sops_add_host_to_key_groups() { function sops_add_host_to_key_groups() {
h="\"$1\"" # quoted hostname for yaml h="\"$1\"" # quoted hostname for yaml
if [[ -z $(yq "select(.creation_rules[].key_groups[].age[] == $h)" "$SOPS_FILE") ]]; then
echo "Adding key to key group" echo "Adding key to key group"
yq -i ".creation_rules[].key_groups[].age += [ $h ]" "$SOPS_FILE" yq -i ".creation_rules[].key_groups[].age += [ $h ]" "$SOPS_FILE"
yq -i ".creation_rules[].key_groups[].age[-1] alias = $h" "$SOPS_FILE" yq -i ".creation_rules[].key_groups[].age[-1] alias = $h" "$SOPS_FILE"
else
echo "Reference already exists in key group"
fi
} }
# Use generated ssh key generate age key, and update sops # Use generated ssh key generate age key, and update sops