feat(scripts/rekey): rekey scripts for by machine or by admin rekey #671
No reviewers
Labels
No labels
awaiting
awaiting-author
awaiting
awaiting-reviewer
bot
deployed
Silenced alert
bug
duplicate
enhancement
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
DGNum/infrastructure!671
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "rekey-scripts"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
avoid to rekey all secrets when only few needs to, without risk to
forgets some
Très bonne idée
@ -0,0 +1,10 @@# SPDX-FileCopyrightText: 2025 Lubin Bailly <lubin@dgnum.eu>## SPDX-License-Identifier: EUPL-1.2Je pense il faut au moins un exemple d'utilisation en commentaire, dans l'idéal une documentation accessible avec -h ou --help
j'ai mis un
-h, dit moi si ça te semble clair ou si tu veux détailler un truc.@ -0,0 +7,4 @@set -o pipefailshopt -s lastpipecolmena eval -E '{nodes, lib, ...}: let inherit (nodes.iso._module.specialArgs) meta; admins = ['"$(for i; do echo -n " \"$i\" "; done)"']; in lib.filter (node: lib.any (adm: lib.elem adm admins) (meta.organization.groups.root ++ meta.nodes."${node}".admins)) (builtins.attrNames nodes)' | jq -r '.[]' | xargs rekey-machineIl me semble on a des primitives utiles dans dgn-keys (
getNodeAdmins). ça permet d'avoir la logique à un seul endroitBonne idée, mais je veux pas trop faire d'import (note
inherit (nodes.iso._module.specialArgs) metaplutôt que d'import ./meta) pour ne pas dépendre du working dir, juste parce que je déteste les script qui marche que si ton cwd est le bon, si tu me dit osef okdgn-keys est dans les specialArgs il me semble
@ -0,0 +1,13 @@# SPDX-FileCopyrightText: 2024 Tom Hubrecht <tom.hubrecht@dgnum.eu># SPDX-FileContributor: Lubin Bailly <lubin@dgnum.eu>## SPDX-License-Identifier: EUPL-1.2Idem une documentation
j'ai mis un
-h, dit moi si ça te semble clair ou si tu veux détailler un truc.@ -0,0 +8,4 @@set -o pipefailshopt -s lastpipefor sdir in $(colmena eval -E '{ nodes, lib, ... }: builtins.map builtins.toString (lib.unique (lib.concatLists (lib.mapAttrsToList (_: { config, ... }: lib.optionals (lib.hasAttr "age-secrets" config) config.age-secrets.sources) (lib.getAttrs ['"$(for i; do echo -n " \"$i\" "; done)"'] nodes))))' | jq -r '.[]'); doIl me semble tu peux faire
lib.optionals (lib.hasAttr "age-secrets" config) config.age-secrets.sources->config.age-secrets.sources or []très juste, j'ai juste copié le code de rekey-all par Tom 😅
bdd8736d1b59f141967359f1419673723e898034723e89803431ceb6597331ceb65973622a54c813@ -0,0 +12,4 @@echo ""echo "Rekey all agenix secrets sources of machines managed by ADMINS."echo "This will only rekey secrets ADMINS are currently managing from meta,"echo "it won't detect machines the ADMINS stopped managing."J'ai pas compris cette phrase
si tu me retire du group root, ça va pas rekey compute01 car je serai plus admin de compute01
(tw nitpick) Je propose alors
This rekeys secrets only for machines currently managed by ADMINS. It does not rekey machines no longer under ADMINS’ management—do not rely on this script to revoke access rights.@ -0,0 +12,4 @@echo "Usage : $0 HOSTNAMES..."echo ""echo "Rekey all agenix secrets sources for HOSTNAMES,"echo "commonly modules secrets and /machines/CATEGORY/HOSTNAME/secrets."Nitpick: on peut virer cette ligne imo
622a54c813e3a9b33361e3a9b33361afaca21e43New commits pushed, approval review dismissed automatically according to repository settings
afaca21e43c676b7cfbc