staging-hydra: init
Michael Schneider committed
Feb 12, 2025 at 10:54 UTC
5fbc76cc63330f401514113d18c3f0a669fcf37c
8 files changed
+76
-58
non-critical-infra/.sops.yaml
+2
-2
@@ -3,7 +3,7 @@ keys:
3
- &zimbatm age1jrh8yyq3swjru09s75s4mspu0mphh7h6z54z946raa9wx3pcdegq0x8t4h
4
- &caliban age1sv307kkrxwgjah8pjpap5kzl4j2r6fqr3vg234n7m32chlchs9lsey7nlq
5
- &umbriel age15vcp7875xwtf64j4yshyld0a3hpgzv6n2kxky493s3q0swr9hdaqxugpv6
6
- - &staging-hydra age13emk4xkrde0qhgnuu24jl7vt6mdq99w56c4ngse9mxh4j0pxvuvq3zsppt
6
+ - &staging-hydra age1vawam63mv097z4ae94tm2xlzkc66u3s87n7neu5jzm6687482u4sx8us3v
7
- &m1-s age1j3spleg4m7rtjww4zqsws6qaj69v5j0rc3asaxxlpwnu7fmx8p9qvmvjn8
8
- &mic92 age17n64ahe3wesh8l8lj0zylf4nljdmqn28hvqns2g7hgm9mdkhlsvsjuvkxz
9
@@ -23,7 +23,7 @@ creation_rules:
23
- *zimbatm
24
25
# ssh keys used to bootstrap new machines
26
- - path_regex: secrets/[^/]+.hostkeys
26
+ - path_regex: secrets/[^/]+-hostkeys.yaml
27
key_groups:
28
- age:
29
- *m1-s
non-critical-infra/flake-module.nix
+19
-21
@@ -1,7 +1,7 @@
1
{
2
- inputs
3
-, lib
4
-, ...
2
+ inputs,
3
+ lib,
4
+ ...
5
}:
6
{
7
colmena.hosts = {
@@ -17,25 +17,23 @@
17
));
18
in
19
{
20
- nixosConfigurations = builtins.mapAttrs
21
- (
22
- _name: value:
23
- inputs.nixpkgs.lib.nixosSystem {
24
- inherit lib;
25
- system = "x86_64-linux";
26
- specialArgs = {
27
- inherit inputs;
28
- };
29
- modules = [
30
- value
31
- inputs.disko.nixosModules.disko
32
- inputs.sops-nix.nixosModules.sops
33
- ];
34
- extraModules = [ inputs.colmena.nixosModules.deploymentOptions ];
20
+ nixosConfigurations = builtins.mapAttrs (
21
+ _name: value:
22
+ inputs.nixpkgs.lib.nixosSystem {
23
+ inherit lib;
24
+ system = "x86_64-linux";
25
+ specialArgs = {
26
+ inherit inputs;
27
+ };
28
+ modules = [
29
+ value
30
+ inputs.disko.nixosModules.disko
31
+ inputs.sops-nix.nixosModules.sops
32
+ ];
33
+ extraModules = [ inputs.colmena.nixosModules.deploymentOptions ];
34
36
- }
37
- )
38
- (importConfig ./hosts);
35
+ }
36
+ ) (importConfig ./hosts);
37
38
};
39
non-critical-infra/hosts/staging-hydra/bootstrap-staging-hydra.sh
new
+21
@@ -0,0 +1,21 @@
1
+#!/usr/bin/env bash
2
+
3
+# Use this script to deploy the initial keys when bootstrapping a new machines.
4
+
5
+set -euo pipefail
6
+tmpDir=$(mktemp -d)
7
+sshDir="$tmpDir/etc/ssh"
8
+mkdir -p "$sshDir"
9
+trap 'rm -rf "$tmpDir"' EXIT
10
+
11
+SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
12
+
13
+for keyname in ssh_host_ed25519_key ssh_host_ed25519_key.pub; do
14
+ if [[ $keyname == *.pub ]]; then
15
+ umask 0133
16
+ else
17
+ umask 0177
18
+ fi
19
+ sops --extract '["'$keyname'"]' --decrypt "$SCRIPT_DIR/../../secrets/staging-hydra-hostkeys.yaml" >"$sshDir/$keyname"
20
+done
21
+nix run nixpkgs#nixos-anywhere -- --extra-files "$tmpDir" -f .#staging-hydra root@157.180.25.203
non-critical-infra/secrets/signing-key.staging-hydra
+3
-3
@@ -1,5 +1,5 @@
1
{
2
- "data": "ENC[AES256_GCM,data:r5OuTSn3XvJnDotfbVuCC/CmMJM30GTpvi9xYd824nc8RwoFG5ivV29mUo8kj2A/C8I1sgmxHbRSM3zCDQ5nDV6ul9XFqsFlK+9l5O2hZXSEq7crE6IEPJKXlYvQGTbZH9VcIrigDOCUiZgbfDFTnWIQ,iv:DcMMvNoINfUwCp4kKcQt3Ya5iOD1rQ08ft0blz7QuoA=,tag:APdvyc+0L9rz+5vhtothtQ==,type:str]",
2
+ "data": "ENC[AES256_GCM,data:cPViz9seX59g1dneq/kngFZSIUP81osOEs/kbLr+OrKB8MSe4tg6O1G5c3uSHPfMNbeYdhG6CinZZCY5Lk22rRyrFLaJfHi8xTsnsEtIcC9v4q+cFyOfPmJE7SblmiNGyjYNTZl6sdC5awnbXjo1aNPGfQ==,iv:DrY/VDNXiV/WMNjyD8wrQmEE36jHbCTUn7UiHk/PeDM=,tag:DRVVu7VMqlfnxwDJaobSpw==,type:str]",
3
"sops": {
4
"kms": null,
5
"gcp_kms": null,
@@ -19,8 +19,8 @@
19
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBWb2ljNWl5SUhGUXZmQXhP\nTDF4bzhVYnpSdUFFVWVzeURnS1gxSVUrNWtVClR0S05HWUtpSU5ETWh0YVhJcS9C\nMmtwS1ZZSnRSMlVYQWtMMk5GVGhWVjAKLS0tIGdnYmEyaDBMbDhaUVpOUzN5OWk3\nKzkvSU1wQWxETDJiMWxVYUhuV1V4aEkKwjiLNhN2WvjV1WC648tl2bUIgcthFo/r\nwGF2G+J7ueAp3WGWRtd1a2kQNn8MLqCZksUMeksy4+3570kKmdCOrg==\n-----END AGE ENCRYPTED FILE-----\n"
20
}
21
],
22
- "lastmodified": "2025-02-12T07:28:02Z",
23
- "mac": "ENC[AES256_GCM,data:Kk+FO9fjspAPkzs1orp5iXuVc1iLXbMr5PRmM9lDULjGZ2gpgS2JJF/Uf+4OeWrmLRmUwqa0dPPr3gR4/BEQmPk7FKqlr66iFun8Y/ExV38hWKGzBOvDxZIGdzT5i0S5SrohjhjQN2qzM8l6YANN21wogv/I0Mb/KKUNlBK/z9E=,iv:2fN19YDoZ7+0BVBo9FQJkPpjyGr2AB9GtYp4kvX+tUw=,tag:KrYOLR38mxv1eYOEoG9pNg==,type:str]",
22
+ "lastmodified": "2025-02-12T09:27:43Z",
23
+ "mac": "ENC[AES256_GCM,data:6IPR2vcE0XxIbwsyaTIADl34wHSikT/Jy1UYPJPexvw22JbAQyIJn8dZQvpa6IrIi1+thLyambL1BXwiYmOepQWCXIWTYNDhu3xNi9UwpjdwGpLGCFQz18eXnqRLWZT3UXyZ5aEFdHGHgbMbHEkJ+suK3FqJCXn4AvmlqER211Q=,iv:q1ZKHd4VwLLmx5lUekt0yVdSy7kiZCUMzuygjg/jCh8=,tag:VBkblBU0osFoANXymHiWcw==,type:str]",
24
"pgp": null,
25
"unencrypted_suffix": "_unencrypted",
26
"version": "3.9.4"
non-critical-infra/secrets/staging-hydra-hostkeys.yaml
new
+31
@@ -0,0 +1,31 @@
1
+ssh_host_ed25519_key: ENC[AES256_GCM,data:Okg9SB54M1j/Os2cjYL4b7Xy9qafNKjTD+/pJx8NoPg5+GACiPuiseDa3WcF7gtozzpzLOn+37nrnE11Qy+GT7FrRFnbhWlv41ZEWaktaysOOnVdclHu1e8gGdLYqX32cK2AL4hQYxVJgk9aVVQ+Zm0cnv9Tz8FEdCPuItOwaph6N0WF9+Ssq+zf50RKn8DwOrssGb/QOM45JC4R1wLP6Qf3OjvJRThP8TvVoFCn2kaQS1rKmJ84kn6HAjOkkDZVIHekea0OegKY1szA4FL+Tt+9S1PbtTcjkWnLVISCOkH3FpzNFWDRkLAloZtAHOSOUCwxumzBKApLpvp1K4Z/ctFWIqEI7pCpVxL32KJC2S7u2xc/tXvH2KWG+/u0dfX9UXHEm5UCZ8njHZYGRQl46tbBfBv45KQUi+mL+Xpcv176XGpx08kYeIlKIQ/vKqp2hPfBQkHMisA+bUwzIqg3eWQrrfbNU1cevMqSPg3VzXtfdf7sTnG5tsIqsEHspTURzIdBFSEKPxB5TR2MWLPM9iO9LQCLuyvA/qTG,iv:kWEbM4cKF2gBc6YFkjag38CQFHwPr1WjoFazQJKJCPA=,tag:JTcCuDq5VbwcvnLX7/fT3Q==,type:str]
2
+ssh_host_ed25519_key.pub: ENC[AES256_GCM,data:l81c4JwjKoWutFi1+WzyDh8Hcr5spDbRCOtghyPlRjq8vIzCqwnhtf5ifTKVgIvN1Updd0oYDSWa9YhjFhrWvCGBh0JVqKLVKB/ejm1jRdUO,iv:W9CY6YjtnCv6L7kdSwpFB/38GoU2AIIzdWTsxUPHnGU=,tag:TNq7oDVbUb6mrSdZ4Z6/wg==,type:str]
3
+sops:
4
+ kms: []
5
+ gcp_kms: []
6
+ azure_kv: []
7
+ hc_vault: []
8
+ age:
9
+ - recipient: age1v5qpkvs3zpz65gvfr2gv3ln7x6yfexvpregdr02hyvxnunu63ujqgwevf8
10
+ enc: |
11
+ -----BEGIN AGE ENCRYPTED FILE-----
12
+ YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBubThhZ2U2Tnp3VjEyVEtD
13
+ TnNScHFVaVFVV21WbmZNSjlEcG1FSGYvbHhBClVHVEJPZnNvVGhHbWJvRkVENXFu
14
+ OGlZWUFBL2N2T0kvWnI0cXZnU01vMHcKLS0tIEcrUG84bGhQZEVpWVN3REZhNVgy
15
+ bUFzL0xJZVlTaGpEdnk3NG8rS1o5VDAKDQc62S+uy/sl7lDyUMfrqDhurqAua5ik
16
+ l2y+nFnzv4/RVa3Y4xbJyy/TEuNpEsNS0s3bgnHD5kOAgjtIKjEFkQ==
17
+ -----END AGE ENCRYPTED FILE-----
18
+ - recipient: age17n64ahe3wesh8l8lj0zylf4nljdmqn28hvqns2g7hgm9mdkhlsvsjuvkxz
19
+ enc: |
20
+ -----BEGIN AGE ENCRYPTED FILE-----
21
+ YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBGaEZVMVVqSlYyTDVuT29p
22
+ Yk9lT0VZb2dIV3MyR2luV21taGV2ZC85akRJCjNnYktKWFg0MjlqU2hDNXZOYk9J
23
+ Y0VUK3BJR1l5S0d3eVRjM3MxR3hUSzgKLS0tIFNPNitGOGgrK05hSXhCWkFDNHZa
24
+ eFF2SlQwSmVoVUszeVI0SWRZK2ROS0kKUAjRNmIDiavnbL9/sgLu12DPf5qEXiFu
25
+ w0vTGO5ffR0I04SYpHznSf28Ja/EcbpDrZ6fMh6bC7Q+k1uLvASBEA==
26
+ -----END AGE ENCRYPTED FILE-----
27
+ lastmodified: "2025-02-12T09:19:59Z"
28
+ mac: ENC[AES256_GCM,data:Ym3YsYfQOd4D8iZ0K01gF6IzvYYvQEKFWzLqL815Nk0ozW1g3D8xPcNxVxb0juvRjbeBXlz0fkDLXxJ1N0ZMASmZ2wHxfR9w5J+CL8hyCmsutJ+ofdiZVJ+ZwEKfenPp/Ke02ce+5EixxU5X3Ad04kLjNalOmmkNhTd5WRFbFe8=,iv:guGa3Nz1DC8Bo5yVP6unoCFGVigKmAKliXA8r5gKyNg=,tag:k69LdmsWW5gYbamdD2S4Ig==,type:str]
29
+ pgp: []
30
+ unencrypted_suffix: _unencrypted
31
+ version: 3.9.4
non-critical-infra/secrets/staging-hydra.hostkeys
deleted
-24
@@ -1,24 +0,0 @@
1
-{
2
- "data": "ENC[AES256_GCM,data:6b/6T5yhrAHKFORpq0JM0ge/lI0LUTdT+IcyYu5oDwy4LEhIKfICpziYqKeRm1JWHf+DAjCweJlTsK53HT31h6wcC7eA9j4J2pEk2ws7UYKKAeeqaAdaQO0EKaZvcwcVq48tY2gvdVhsaIS9s7/rvZEWXrrAOaNn9h3hM/HWLgfZTo9HZm87A+EKMPnQ75LRYZubZFLgrkKU/t82ocSIQD4VGk8ne58ncLY8BT/BdXOdwauyho6BQ8VKMK4JzXEK4ISvOwW+xrnOjuOz0R5QwPHyewBF9hLx6Wd8JT1fDqLdpTsWTi2uPlGHgkvBFcrbBxHpioJ5Z5wQVIWkKG21+7cRhLK1TJCi0O+z0czxS2BMNaPxrKiE5QfL+vtmnyX2xfYTcxrWdg3pqkemaM7T54kIa3O1SIQxitGXlgBsFQxr9Nw/iiz+Ys05ObhWPmENQIZlslUUg3ounnXmTA7eU7ogoH05feNOawPDWcUdyLX9eQ2JfhC9SlfQnKSJ7egNZd1592ybFPJkTnQeE5QFCxUOzISSV33BTnObFPSXYOEHYixvyPm8ALHZQdL9xbWu7qSADouc4xgR9vWm85BxJwjSqUNAM/L2CCDJtJqYT+O8k8M0DLHqrYeuMlnL5zLQ4ZcDYF2agezZStf7Cdm8xVHdd+Tfi1AePU9op3MeHmYMHzIIkc/eLGNOhBlQ5pZZ3S0gjqbD+0av+qSLTdx6fjaqnUCp7eS44QRSVUbzqO8mYWgXbRlfh0ewpBIHaTM=,iv:5z+8/wJR2tFuZF5aRKUX7xa89QqHVx0YVCjsPfIoC8Y=,tag:sC4/gyabxyFhdhWc7jAFIg==,type:str]",
3
- "sops": {
4
- "kms": null,
5
- "gcp_kms": null,
6
- "azure_kv": null,
7
- "hc_vault": null,
8
- "age": [
9
- {
10
- "recipient": "age1j3spleg4m7rtjww4zqsws6qaj69v5j0rc3asaxxlpwnu7fmx8p9qvmvjn8",
11
- "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBTSzY3WFc2dDhPRVNTOFJH\ncVlkWnQ2L1V4dGNhZllvZVhlYnlVZXQvVzFnCnBiWXkwS2FFbVMrdjNZOGhIU001\nL3VmOGp1QTRpMWlRY2s5UGFqN01tc0UKLS0tIHV1b2FwWEhTY09SdGlGc3NhbnVZ\nUmd5dVdIZE9jWUV2VW8vb3dNK0JDYlkKElQj+C53jgVk2QTKAhsHCFMzKAwXWozP\ngSI8j4osvza/GqEM6XvQl/tW/TYcxIPDazK9tXOJEfbHmGh8ADyCaA==\n-----END AGE ENCRYPTED FILE-----\n"
12
- },
13
- {
14
- "recipient": "age17n64ahe3wesh8l8lj0zylf4nljdmqn28hvqns2g7hgm9mdkhlsvsjuvkxz",
15
- "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBMakVLWHFSaDVwTnpud2ZF\nZExnSDY1VGI1YjF4ZGl0NWdLQi9udGlwS2d3CnhwVEtIU1ZLMGdFaGhLQlNMSjVJ\nTjZXTUo4SzJiVUZiM2tjQVJJT3ZiL2MKLS0tIDkxUlhTZnZmVEN6RVdSTndwazdn\nZU1QcWlWL0gwTWIvWXhtQVFOb2VYaWsKEZX9COQbwRP/OvimWL6ijR2lsQBihssd\n7lZwH5xcKNWXH/u4lLxXQx7ARtEBX9kMKGtF8uGq6NCt2Gjlt/lJWg==\n-----END AGE ENCRYPTED FILE-----\n"
16
- }
17
- ],
18
- "lastmodified": "2025-02-12T07:19:21Z",
19
- "mac": "ENC[AES256_GCM,data:ZS6cY/umbUO7Aj1cnmLiCMLyhiiyAupEBL8/qDkO5JYZ4ufQN3WfiKebbndpLyl+35bMBL9C640BWTFh90Y0AwaZ2IxbAmTLGiqaeMG7ESzNXv1XYWF1MJdIa5i7hsl6DdKn26aHocmDIMMQ1tglZfk42fucJTWncUbio4trPfg=,iv:9dPqNw6utDO9boVzbRdtd1CtKSTG84upG0QQDPfH5Ow=,tag:CJm4QzxRi0SwCuGHxxw/Ew==,type:str]",
20
- "pgp": null,
21
- "unencrypted_suffix": "_unencrypted",
22
- "version": "3.9.1"
23
- }
24
-}
\ No newline at end of file
non-critical-infra/secrets/staging-hydra.hostkeys.pub.tmp
deleted
-1
@@ -1 +0,0 @@
1
-ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIK81IHfeA/GXIgb9N5hl/qtCSsSBqs+FkppGklxworUD m1-s@thinkbook
non-critical-infra/secrets/staging-hydra.hostkeys.tmp
deleted
-7
@@ -1,7 +0,0 @@
1
------BEGIN OPENSSH PRIVATE KEY-----
2
-b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW
3
-QyNTUxOQAAACCvNSB33gPxlyIG/TeYZf6rQkrEgarPhZKaRpJccKK1AwAAAJhqdU+1anVP
4
-tQAAAAtzc2gtZWQyNTUxOQAAACCvNSB33gPxlyIG/TeYZf6rQkrEgarPhZKaRpJccKK1Aw
5
-AAAEBsDJIMqVf7Y3FoTZk42DsRyLaBz0fGJUjazwskqATxxq81IHfeA/GXIgb9N5hl/qtC
6
-SsSBqs+FkppGklxworUDAAAADm0xLXNAdGhpbmtib29rAQIDBAUGBw==
7
------END OPENSSH PRIVATE KEY-----