secrets: migrate all hosts from sops to OpenBao vault
Replace sops-nix secrets with OpenBao vault secrets across all hosts. Hardcode root password hash, add extractKey option to vault-secrets module, update Terraform with secrets/policies for all hosts, and create AppRole provisioning playbook. Hosts migrated: ha1, monitoring01, ns1, ns2, http-proxy, nix-cache01 Wave 1 hosts (nats1, jelly01, pgdb1) get AppRole policies only. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,8 +1,10 @@
|
||||
{ pkgs, config, ... }:
|
||||
{
|
||||
sops.secrets."actions-token-1" = {
|
||||
sopsFile = ../../secrets/nix-cache01/actions_token_1;
|
||||
format = "binary";
|
||||
vault.secrets.actions-token = {
|
||||
secretPath = "hosts/nix-cache01/actions-token";
|
||||
extractKey = "token";
|
||||
outputDir = "/run/secrets/actions-token-1";
|
||||
services = [ "gitea-runner-actions1" ];
|
||||
};
|
||||
|
||||
virtualisation.podman = {
|
||||
@@ -13,7 +15,7 @@
|
||||
services.gitea-actions-runner.instances = {
|
||||
actions1 = {
|
||||
enable = true;
|
||||
tokenFile = config.sops.secrets.actions-token-1.path;
|
||||
tokenFile = "/run/secrets/actions-token-1";
|
||||
name = "actions1.home.2rjus.net";
|
||||
settings = {
|
||||
log = {
|
||||
|
||||
@@ -1,12 +1,18 @@
|
||||
{ pkgs, config, ... }:
|
||||
{
|
||||
sops.secrets."nats_nkey" = { };
|
||||
vault.secrets.nats-nkey = {
|
||||
secretPath = "shared/nats/nkey";
|
||||
extractKey = "nkey";
|
||||
outputDir = "/run/secrets/nats_nkey";
|
||||
services = [ "alerttonotify" ];
|
||||
};
|
||||
|
||||
systemd.services."alerttonotify" = {
|
||||
enable = true;
|
||||
wants = [ "network-online.target" ];
|
||||
after = [
|
||||
"network-online.target"
|
||||
"sops-nix.service"
|
||||
"vault-secret-nats-nkey.service"
|
||||
];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
restartIfChanged = true;
|
||||
|
||||
@@ -1,14 +1,16 @@
|
||||
{ config, ... }:
|
||||
{
|
||||
sops.secrets.pve_exporter = {
|
||||
format = "yaml";
|
||||
sopsFile = ../../secrets/monitoring01/pve-exporter.yaml;
|
||||
key = "";
|
||||
vault.secrets.pve-exporter = {
|
||||
secretPath = "hosts/monitoring01/pve-exporter";
|
||||
extractKey = "config";
|
||||
outputDir = "/run/secrets/pve_exporter";
|
||||
mode = "0444";
|
||||
services = [ "prometheus-pve-exporter" ];
|
||||
};
|
||||
|
||||
services.prometheus.exporters.pve = {
|
||||
enable = true;
|
||||
configFile = config.sops.secrets.pve_exporter.path;
|
||||
configFile = "/run/secrets/pve_exporter";
|
||||
collectors = {
|
||||
cluster = false;
|
||||
replication = false;
|
||||
|
||||
@@ -1,14 +1,16 @@
|
||||
{ pkgs, config, ... }:
|
||||
{
|
||||
sops.secrets."cache-secret" = {
|
||||
sopsFile = ../../secrets/nix-cache01/cache-secret;
|
||||
format = "binary";
|
||||
vault.secrets.cache-secret = {
|
||||
secretPath = "hosts/nix-cache01/cache-secret";
|
||||
extractKey = "key";
|
||||
outputDir = "/run/secrets/cache-secret";
|
||||
services = [ "harmonia" ];
|
||||
};
|
||||
|
||||
services.harmonia = {
|
||||
enable = true;
|
||||
package = pkgs.unstable.harmonia;
|
||||
signKeyPaths = [ config.sops.secrets.cache-secret.path ];
|
||||
signKeyPaths = [ "/run/secrets/cache-secret" ];
|
||||
};
|
||||
systemd.services.harmonia = {
|
||||
environment.RUST_LOG = "info,actix_web=debug";
|
||||
|
||||
@@ -12,8 +12,11 @@ let
|
||||
};
|
||||
in
|
||||
{
|
||||
sops.secrets.ns_xfer_key = {
|
||||
path = "/etc/nsd/xfer.key";
|
||||
vault.secrets.ns-xfer-key = {
|
||||
secretPath = "shared/dns/xfer-key";
|
||||
extractKey = "key";
|
||||
outputDir = "/etc/nsd/xfer.key";
|
||||
services = [ "nsd" ];
|
||||
};
|
||||
|
||||
networking.firewall.allowedTCPPorts = [ 8053 ];
|
||||
|
||||
@@ -12,8 +12,11 @@ let
|
||||
};
|
||||
in
|
||||
{
|
||||
sops.secrets.ns_xfer_key = {
|
||||
path = "/etc/nsd/xfer.key";
|
||||
vault.secrets.ns-xfer-key = {
|
||||
secretPath = "shared/dns/xfer-key";
|
||||
extractKey = "key";
|
||||
outputDir = "/etc/nsd/xfer.key";
|
||||
services = [ "nsd" ];
|
||||
};
|
||||
networking.firewall.allowedTCPPorts = [ 8053 ];
|
||||
networking.firewall.allowedUDPPorts = [ 8053 ];
|
||||
|
||||
Reference in New Issue
Block a user