vault:migrate to consul backend
This commit is contained in:
@@ -1,7 +1,25 @@
|
|||||||
{ lib, config, pkgs, ... }:
|
{ lib, config, pkgs, ... }:
|
||||||
{
|
{
|
||||||
|
|
||||||
# Add secrets to conul and nomad configs
|
# Add secrets to nomad, consul and vault
|
||||||
|
systemd.tmpfiles.rules = lib.singleton "d /run/vault - vault vault 1h";
|
||||||
|
systemd.services.vault.preStart =
|
||||||
|
let
|
||||||
|
originalCfg = pkgs.writeText "vaultConfiguration.json" (builtins.toJSON rec {
|
||||||
|
storage."consul" = {
|
||||||
|
address = "10.55.0.2:8500";
|
||||||
|
path = "vault";
|
||||||
|
token = "+++vault_consul_token+++";
|
||||||
|
};
|
||||||
|
api_addr = "https://127.0.0.1:8800";
|
||||||
|
ui = true;
|
||||||
|
});
|
||||||
|
in
|
||||||
|
lib.mkForce ''
|
||||||
|
mkdir -p /run/vault
|
||||||
|
sed -e 's,+++vault_consul_token+++,'"$(cat /var/secrets/vault_consul.key)"',' \
|
||||||
|
${originalCfg} > /run/vault/vault.json
|
||||||
|
'';
|
||||||
systemd.services.consul.preStart =
|
systemd.services.consul.preStart =
|
||||||
let
|
let
|
||||||
originalCfg = pkgs.writeText "consulConfiguration.json" (builtins.toJSON rec {
|
originalCfg = pkgs.writeText "consulConfiguration.json" (builtins.toJSON rec {
|
||||||
@@ -20,8 +38,9 @@
|
|||||||
acl = {
|
acl = {
|
||||||
enabled = true;
|
enabled = true;
|
||||||
default_policy = "deny";
|
default_policy = "deny";
|
||||||
|
enable_token_persistence = true;
|
||||||
tokens = {
|
tokens = {
|
||||||
agent = "+++consul_marisa+++";
|
agent = "+++consul_token+++";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
server = true;
|
server = true;
|
||||||
@@ -40,11 +59,11 @@
|
|||||||
lib.mkForce ''
|
lib.mkForce ''
|
||||||
mkdir -p /run/consul
|
mkdir -p /run/consul
|
||||||
sed -e 's,+++consul_encryption+++,'"$(cat /var/secrets/consul_encryption.key)"',' \
|
sed -e 's,+++consul_encryption+++,'"$(cat /var/secrets/consul_encryption.key)"',' \
|
||||||
-e 's,+++consul_marisa+++,'"$(cat /var/secrets/consul_marisa.token)"',' \
|
-e 's,+++consul_token+++,'"$(cat /var/secrets/consul_bootstrap.token)"',' \
|
||||||
${originalCfg} > /run/consul/consul.json
|
${originalCfg} > /run/consul/consul.json
|
||||||
'';
|
'';
|
||||||
|
|
||||||
systemd.services.nomad.after = [ "consul.service" ];
|
systemd.services.nomad.after = [ "vault.service" ];
|
||||||
systemd.services.nomad.preStart =
|
systemd.services.nomad.preStart =
|
||||||
let
|
let
|
||||||
originalCfg = pkgs.writeText "nomadConfiguration.json"
|
originalCfg = pkgs.writeText "nomadConfiguration.json"
|
||||||
@@ -65,6 +84,11 @@
|
|||||||
pull_activity_timeout = "30m";
|
pull_activity_timeout = "30m";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
plugin."raw_exec" = {
|
||||||
|
config = {
|
||||||
|
enabled = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
client = {
|
client = {
|
||||||
options = {
|
options = {
|
||||||
"docker.privileged.enabled" = true;
|
"docker.privileged.enabled" = true;
|
||||||
@@ -126,12 +150,9 @@
|
|||||||
tlsCertFile = "/var/rootcert/cert.pem";
|
tlsCertFile = "/var/rootcert/cert.pem";
|
||||||
tlsKeyFile = "/var/rootcert/key.pem";
|
tlsKeyFile = "/var/rootcert/key.pem";
|
||||||
address = "0.0.0.0:8800";
|
address = "0.0.0.0:8800";
|
||||||
storageBackend = "file";
|
# storageBackend = "file";
|
||||||
storagePath = "/var/lib/vault";
|
# storagePath = "/var/lib/vault";
|
||||||
extraConfig = ''
|
extraSettingsPaths = lib.singleton "/run/vault/vault.json";
|
||||||
api_addr = "https://127.0.0.1:8800"
|
|
||||||
ui = true
|
|
||||||
'';
|
|
||||||
};
|
};
|
||||||
|
|
||||||
consul = {
|
consul = {
|
||||||
@@ -157,36 +178,12 @@
|
|||||||
];
|
];
|
||||||
};
|
};
|
||||||
template = [
|
template = [
|
||||||
{
|
|
||||||
source = pkgs.writeText "gitea.tpl" ''
|
|
||||||
{{ with secret "kv/systems/Marisa/gitea" }}{{ .Data.data.gitea }}{{ end }}
|
|
||||||
'';
|
|
||||||
destination = "/var/secrets/gitea.key";
|
|
||||||
}
|
|
||||||
{
|
{
|
||||||
source = pkgs.writeText "wg.tpl" ''
|
source = pkgs.writeText "wg.tpl" ''
|
||||||
{{ with secret "kv/systems/Marisa/wg" }}{{ .Data.data.private }}{{ end }}
|
{{ with secret "kv/systems/Marisa/wg" }}{{ .Data.data.private }}{{ end }}
|
||||||
'';
|
'';
|
||||||
destination = "/var/secrets/wg.key";
|
destination = "/var/secrets/wg.key";
|
||||||
}
|
}
|
||||||
{
|
|
||||||
source = pkgs.writeText "consul_marisa.tpl" ''
|
|
||||||
{{ with secret "kv/systems/Marisa/consul" }}{{ .Data.data.agentToken }}{{ end }}
|
|
||||||
'';
|
|
||||||
destination = "/var/secrets/consul_marisa.token";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
source = pkgs.writeText "consul_bootstrap.tpl" ''
|
|
||||||
{{ with secret "kv/consul" }}{{ .Data.data.bootstrapToken }}{{ end }}
|
|
||||||
'';
|
|
||||||
destination = "/var/secrets/consul_bootstrap.token";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
source = pkgs.writeText "consul_encryption.tpl" ''
|
|
||||||
{{ with secret "kv/consul" }}{{ .Data.data.encryptionKey }}{{ end }}
|
|
||||||
'';
|
|
||||||
destination = "/var/secrets/consul_encryption.key";
|
|
||||||
}
|
|
||||||
{
|
{
|
||||||
source = pkgs.writeText "nomad_vault.tpl" ''
|
source = pkgs.writeText "nomad_vault.tpl" ''
|
||||||
{{ with secret "kv/nomad" }}{{ .Data.data.vaultToken }}{{ end }}
|
{{ with secret "kv/nomad" }}{{ .Data.data.vaultToken }}{{ end }}
|
||||||
@@ -208,54 +205,6 @@
|
|||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
postgresql = {
|
|
||||||
enable = true;
|
|
||||||
port = 6060;
|
|
||||||
enableTCPIP = true;
|
|
||||||
authentication = ''
|
|
||||||
local gitea all ident map=gitea-map
|
|
||||||
host vault all 10.55.0.2/32 md5
|
|
||||||
host all all 192.168.0.110/32 md5
|
|
||||||
'';
|
|
||||||
identMap = ''
|
|
||||||
gitea-map gitea gitea
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
gitea = {
|
|
||||||
enable = false;
|
|
||||||
appName = "Natto Tea";
|
|
||||||
rootUrl = "https://git.weirdnatto.in/";
|
|
||||||
cookieSecure = true;
|
|
||||||
dump = {
|
|
||||||
enable = true;
|
|
||||||
backupDir = "/tmp/gitea";
|
|
||||||
type = "tar.gz";
|
|
||||||
file = "gitnigger";
|
|
||||||
};
|
|
||||||
httpPort = 5001;
|
|
||||||
database = rec {
|
|
||||||
createDatabase = false;
|
|
||||||
port = 6060;
|
|
||||||
name = "gitea";
|
|
||||||
user = name;
|
|
||||||
passwordFile = "/var/secrets/gitea.key";
|
|
||||||
type = "postgres";
|
|
||||||
};
|
|
||||||
settings = {
|
|
||||||
oauth2_client = {
|
|
||||||
UPDATE_AVATAR = true;
|
|
||||||
};
|
|
||||||
ui = {
|
|
||||||
DEFAULT_THEME = "arc-green";
|
|
||||||
};
|
|
||||||
security = {
|
|
||||||
LOGIN_REMEMBER_DAYS = 50;
|
|
||||||
};
|
|
||||||
server = {
|
|
||||||
SSH_PORT = lib.mkForce 22001;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
users.users.root.openssh.authorizedKeys.keys = [
|
users.users.root.openssh.authorizedKeys.keys = [
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJHingN2Aho+KGgEvBMjtoez+W1svl9uVoa4vG0d646j"
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJHingN2Aho+KGgEvBMjtoez+W1svl9uVoa4vG0d646j"
|
||||||
|
Reference in New Issue
Block a user