Archived
chore(secrets): Phase 4 — remove stale sops.yaml anchors and re-encrypt
Check NixOS configurations / eval-hosts (pull_request) Successful in 10m21s
Check NixOS configurations / eval-hosts (pull_request) Successful in 10m21s
Remove four stale age key anchors from .sops.yaml that correspond to non-lxc build-type variants that were never deployed (or are now superseded by their lxc-* counterparts): &docker → superseded by &lxc-docker (active running host) &server → superseded by &lxc-server (active running host) &nix-cache → superseded by &lxc-nix-cache (active running host) &nix-minimal → superseded by &lxc-minimal (active running host) Also remove the secrets/docker.yaml creation_rules block entirely since that file does not exist. Re-encrypt secrets/common.yaml, secrets/nix-cache.yaml, and secrets/server.yaml with sops updatekeys to drop the stale recipients. The four removed keys can no longer decrypt these files. Update README.md and CLAUDE.md to clarify that deployed lxc-* hosts now use clan vars (vars/per-machine/<target>/openssh/) rather than the gitignored host-keys/ directory. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01B2EJ4qTsM5KUqhS5c3GAwx
This commit is contained in:
@@ -27,9 +27,12 @@ machines when deployed.
|
||||
template for a *real* host — every other host uses sops-nix
|
||||
(`hashedPasswordFile`, see "Security Notes" in `README.md`). Flag any *new*
|
||||
secret-like string you encounter instead of committing it.
|
||||
- `host-keys/` is gitignored — locally-generated *private* SSH host keys for
|
||||
the auto-installer (see `docs/auto-installer.md`). Never commit its
|
||||
contents; if `git status` ever shows it as trackable, something is wrong.
|
||||
- `host-keys/` is gitignored — locally-generated *private* SSH host keys
|
||||
for the auto-installer and non-LXC hosts (see `docs/auto-installer.md`).
|
||||
Never commit its contents; if `git status` ever shows it as trackable,
|
||||
something is wrong. Deployed LXC hosts use clan vars
|
||||
(`vars/per-machine/<target>/openssh/`, committed and sops-encrypted)
|
||||
instead — those ARE tracked by git and belong in the repo.
|
||||
|
||||
### Two Proxmox nodes: `pve1.sweet.home` (production) and `pve-test.sweet.home` (sandbox)
|
||||
|
||||
@@ -203,8 +206,11 @@ instead of copying it.
|
||||
- `scripts/secrets/sync-host-keys.sh` — generates/registers SSH host keys
|
||||
and their `.sops.yaml`/`secrets/*.yaml` recipients for flake targets,
|
||||
idempotently (`--all`, `<target>`, `--remove`, `--regenerate-all-keys`,
|
||||
all with `--dry-run`). The primary tool for provisioning a new host's
|
||||
secrets access — see "Creating a new machine" in `docs/auto-installer.md`.
|
||||
all with `--dry-run`). For lxc-* targets it stores keys as clan vars
|
||||
(`vars/per-machine/<target>/openssh/`, committed and sops-encrypted);
|
||||
for other targets it uses the gitignored `host-keys/` directory. The
|
||||
primary tool for provisioning a new host's secrets access — see
|
||||
"Creating a new machine" in `docs/auto-installer.md`.
|
||||
- `scripts/secrets/prepare-host-key.sh` — narrower predecessor: generates a
|
||||
key by an arbitrary name without touching `.sops.yaml`. Still useful to
|
||||
pre-generate a key before its flake target exists yet, since
|
||||
|
||||
Reference in New Issue
Block a user