Compare commits

..

2 commits

2 changed files with 17 additions and 10 deletions

View file

@ -15,8 +15,8 @@
services = { services = {
nebula = { nebula = {
publicKeyFile = ./keys/nebula.pub; publicKeyFile = toString ./keys/nebula.pub;
certificateFile = ./keys/nebula.crt; certificateFile = toString ./keys/nebula.crt;
}; };
syncthing = { syncthing = {

View file

@ -7,16 +7,16 @@
text = '' text = ''
if [[ $# -lt 1 ]] || [[ $# -gt 2 ]]; then if [[ $# -lt 1 ]] || [[ $# -gt 2 ]]; then
echo "Usage: $0 <host> [<ca-key-path>]" echo "Usage: $0 <hostname> [<ca-key-path>]"
exit 1 exit 1
fi fi
host="$1" hostname="$1"
address="$(nix eval --raw ".#allHosts.$host.config.custom.networking.overlay.cidr")" address="$(nix eval --raw ".#allHosts.$hostname.config.custom.networking.overlay.cidr")"
groups="$(nix eval --raw ".#allHosts.$host.config.custom.services.nebula.groups" --apply 'builtins.concatStringsSep ","')" groups="$(nix eval --raw ".#allHosts.$hostname.config.custom.services.nebula.groups" --apply 'builtins.concatStringsSep ","')"
ca_cert='modules/system/services/nebula/ca.crt' ca_cert="$(nix eval --raw ".#allHosts.$hostname.config.custom.services.nebula.caCertificateFile")"
host_pub="$(nix eval --raw ".#allHosts.$host.config.custom.services.nebula.publicKeyFile")" host_pub="$(nix eval --raw ".#allHosts.$hostname.config.custom.services.nebula.publicKeyFile")"
host_cert="$(nix eval --raw ".#allHosts.$host.config.custom.services.nebula.certificateFile")" host_cert="$(nix eval --raw ".#allHosts.$hostname.config.custom.services.nebula.certificateFile")"
host_cert="''${host_cert#*-source/}" host_cert="''${host_cert#*-source/}"
if [[ $# -eq 2 ]]; then if [[ $# -eq 2 ]]; then
@ -34,6 +34,13 @@
fi fi
rm -f "$host_cert" rm -f "$host_cert"
nebula-cert sign -name "$host" -networks "$address" -groups "$groups" -ca-crt "$ca_cert" -ca-key "$ca_key" -in-pub "$host_pub" -out-crt "$host_cert" nebula-cert sign \
-name "$hostname" \
-networks "$address" \
-groups "$groups" \
-ca-crt "$ca_cert" \
-ca-key "$ca_key" \
-in-pub "$host_pub" \
-out-crt "$host_cert"
''; '';
} }