add agenix to deploy darwin secrets
This commit is contained in:
parent
4b682d296c
commit
03fb7492bb
11 changed files with 113 additions and 69 deletions
|
@ -72,14 +72,6 @@ creation_rules:
|
||||||
- *zimbatm
|
- *zimbatm
|
||||||
- *zowoq
|
- *zowoq
|
||||||
- *adisbladis
|
- *adisbladis
|
||||||
- path_regex: modules/darwin/.+\.yaml$
|
|
||||||
key_groups:
|
|
||||||
- age:
|
|
||||||
- *mic92
|
|
||||||
- *ryantm
|
|
||||||
- *zimbatm
|
|
||||||
- *zowoq
|
|
||||||
- *adisbladis
|
|
||||||
- path_regex: modules/nixos/hercules-ci/.+\.yaml$
|
- path_regex: modules/nixos/hercules-ci/.+\.yaml$
|
||||||
key_groups:
|
key_groups:
|
||||||
- age:
|
- age:
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
{ pkgs, ... }:
|
{ inputs', pkgs, ... }:
|
||||||
{
|
{
|
||||||
devShells = {
|
devShells = {
|
||||||
default = with pkgs; mkShellNoCC {
|
default = with pkgs; mkShellNoCC {
|
||||||
packages = [
|
packages = [
|
||||||
|
inputs'.agenix.packages.default
|
||||||
jq
|
jq
|
||||||
python3.pkgs.deploykit
|
python3.pkgs.deploykit
|
||||||
python3.pkgs.invoke
|
python3.pkgs.invoke
|
||||||
|
|
|
@ -30,6 +30,7 @@
|
||||||
editorconfig-checker = {
|
editorconfig-checker = {
|
||||||
command = pkgs.editorconfig-checker;
|
command = pkgs.editorconfig-checker;
|
||||||
includes = [ "*" ];
|
includes = [ "*" ];
|
||||||
|
excludes = [ "*.age" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
nix = {
|
nix = {
|
||||||
|
|
42
flake.lock
generated
42
flake.lock
generated
|
@ -1,5 +1,31 @@
|
||||||
{
|
{
|
||||||
"nodes": {
|
"nodes": {
|
||||||
|
"agenix": {
|
||||||
|
"inputs": {
|
||||||
|
"darwin": [
|
||||||
|
"nix-darwin"
|
||||||
|
],
|
||||||
|
"home-manager": [],
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"systems": "systems"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1714879853,
|
||||||
|
"narHash": "sha256-URv/JEimxdhCEgokhY9xdMF09iGX8UE96GXFs3RXiJg=",
|
||||||
|
"owner": "qowoz",
|
||||||
|
"repo": "agenix",
|
||||||
|
"rev": "0248db39f453e47c04f39922d170e11b78fa026a",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "qowoz",
|
||||||
|
"ref": "darwin",
|
||||||
|
"repo": "agenix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"buildbot-nix": {
|
"buildbot-nix": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-parts": [
|
"flake-parts": [
|
||||||
|
@ -197,6 +223,7 @@
|
||||||
},
|
},
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
|
"agenix": "agenix",
|
||||||
"buildbot-nix": "buildbot-nix",
|
"buildbot-nix": "buildbot-nix",
|
||||||
"comin": "comin",
|
"comin": "comin",
|
||||||
"disko": "disko",
|
"disko": "disko",
|
||||||
|
@ -268,6 +295,21 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"systems": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"treefmt-nix": {
|
"treefmt-nix": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
|
|
|
@ -21,6 +21,12 @@
|
||||||
# actually not used when using the modules but than nothing ever will try to fetch this nixpkgs variant
|
# actually not used when using the modules but than nothing ever will try to fetch this nixpkgs variant
|
||||||
srvos.inputs.nixpkgs.follows = "nixpkgs";
|
srvos.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
|
||||||
|
# rebased patch from https://github.com/ryantm/agenix/pull/241
|
||||||
|
agenix.url = "github:qowoz/agenix/darwin";
|
||||||
|
agenix.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
agenix.inputs.home-manager.follows = "";
|
||||||
|
agenix.inputs.darwin.follows = "nix-darwin";
|
||||||
|
|
||||||
nixpkgs-update.url = "github:nix-community/nixpkgs-update";
|
nixpkgs-update.url = "github:nix-community/nixpkgs-update";
|
||||||
nixpkgs-update.inputs.mmdoc.follows = "";
|
nixpkgs-update.inputs.mmdoc.follows = "";
|
||||||
nixpkgs-update.inputs.treefmt-nix.follows = "treefmt-nix";
|
nixpkgs-update.inputs.treefmt-nix.follows = "treefmt-nix";
|
||||||
|
|
|
@ -15,6 +15,7 @@ in
|
||||||
./upgrade-diff.nix
|
./upgrade-diff.nix
|
||||||
../../shared/known-hosts.nix
|
../../shared/known-hosts.nix
|
||||||
../../shared/nix-daemon.nix
|
../../shared/nix-daemon.nix
|
||||||
|
inputs.agenix.darwinModules.age
|
||||||
];
|
];
|
||||||
|
|
||||||
# TODO: refactor this to share /users with nixos
|
# TODO: refactor this to share /users with nixos
|
||||||
|
|
|
@ -5,10 +5,27 @@ let
|
||||||
'';
|
'';
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
# hercules secrets are installed manually from ./secrets.yaml
|
age.secrets.binary-caches = {
|
||||||
# https://docs.hercules-ci.com/hercules-ci/getting-started/deploy/nix-darwin
|
file = ../../../secrets/binary-caches.age;
|
||||||
|
mode = "600";
|
||||||
|
owner = "_hercules-ci-agent";
|
||||||
|
group = "_hercules-ci-agent";
|
||||||
|
};
|
||||||
|
|
||||||
|
age.secrets.cluster-join-token = {
|
||||||
|
file = ../../../secrets/cluster-join-token.age;
|
||||||
|
mode = "600";
|
||||||
|
owner = "_hercules-ci-agent";
|
||||||
|
group = "_hercules-ci-agent";
|
||||||
|
};
|
||||||
|
|
||||||
services.hercules-ci-agent.enable = true;
|
services.hercules-ci-agent.enable = true;
|
||||||
|
|
||||||
|
services.hercules-ci-agent.settings = {
|
||||||
|
binaryCachesPath = config.age.secrets.binary-caches.path;
|
||||||
|
clusterJoinTokenPath = config.age.secrets.cluster-join-token.path;
|
||||||
|
};
|
||||||
|
|
||||||
# hercules-ci-agent: security: createProcess: posix_spawnp: does not exist
|
# hercules-ci-agent: security: createProcess: posix_spawnp: does not exist
|
||||||
# https://github.com/LnL7/nix-darwin/blob/36524adc31566655f2f4d55ad6b875fb5c1a4083/modules/services/hercules-ci-agent/default.nix#L28
|
# https://github.com/LnL7/nix-darwin/blob/36524adc31566655f2f4d55ad6b875fb5c1a4083/modules/services/hercules-ci-agent/default.nix#L28
|
||||||
launchd.daemons.hercules-ci-agent.path = pkgs.lib.mkForce [ config.nix.package securityWrapper ];
|
launchd.daemons.hercules-ci-agent.path = pkgs.lib.mkForce [ config.nix.package securityWrapper ];
|
||||||
|
|
|
@ -1,58 +0,0 @@
|
||||||
cluster-join-token.key: ENC[AES256_GCM,data:23z3EpVexVRC5Tlv9Spo0zxqA2dDI7SnVWjpXuqfFsLvFjgbMbv1rw8svHvlL3h3ROV6GQNqa2LtzsiGO4rCDKDui6CpV5pnIH7VnkvS7kqt9OHgkFOJ/dPqgJ6sB4kubEBhvSXqxehbGS+V8y/djhmOM8/faHC8dqryXE30K0LUZ1adI9vE+5r3lmSq6ICeDyq8QgEHVyygaOdP7YvY2ZKZd9aedG35aohAn1XEuJniNXkqpA/W7psCzQtQoKomrjTouuHF6LYDiCSxMLc4SLcfsQO28M+hsovN7Xiugq5OfpQ53FqCsKHXcXw=,iv:bOnyxOYGQyhK4zL9dMcCjVgCdUNtL8Sy1iuWL+OqYgM=,tag:ORqKCRFmN+C16j/Ksamt3g==,type:str]
|
|
||||||
binary-caches.json: ENC[AES256_GCM,data:b+YoC3vomkFFZGhix04yvLPFe1h9FW5g561IAY6uBCjiHmCWBJRs5tWHXiTb7tdSR3c37Xkkz8oagLKJv8Fg2+rQgTfPOvsFjsalc54f5QhRFx+/nG+DQ/xE9HMWyT7DsJhERuFmh/ZnfmddB/ESfjOZvSMqluOiB9iT4ypUMTvSU2LH8NGr6bZXFNAkbU/JJFtxxk4p9Deo5+9QbF/jRSVgrg33up/m2zjcW5DQEgL4mLAQSfggaH0R/6wqztErX2uhffVvgKZTt5UPErXe9FpdfU9ndQSrGXrtBKE2NYQEIyI3t55RSNlqdjoFZT5jAc3tD/RIP0uf+qIjfF0i3B8xbRhj8odalwQ7bANjr9TXSWu5wBY8L9Uk4Tp4aFguVdwT7YCGsLYRIME1VKYl5xvvnqYdUbzk7+Azxc1W1Zc=,iv:7tN1ZaJDV+rhNbuQJM11i/GgpkZUmHnflHiZ4DIFIQY=,tag:zOZMTucFA4WAwXAT+bQm0w==,type:str]
|
|
||||||
sops:
|
|
||||||
kms: []
|
|
||||||
gcp_kms: []
|
|
||||||
azure_kv: []
|
|
||||||
hc_vault: []
|
|
||||||
age:
|
|
||||||
- recipient: age17n64ahe3wesh8l8lj0zylf4nljdmqn28hvqns2g7hgm9mdkhlsvsjuvkxz
|
|
||||||
enc: |
|
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA1VW4vSnA3S0taNGtNMERC
|
|
||||||
Yzlwa3FFTXZKTzZ3cnlDRFhVRnFEZ3d6eEdjClFIbHYzR0RYZ1ZuQ0tmZTdXaEFF
|
|
||||||
TkRROThkdlV6Y1FxV0NBZmVPaWRNamcKLS0tIDdyOGMyak5yUWhoUUxUWTlZalRl
|
|
||||||
WTYrc0xHcklQd1c0VkZpZDVVWTQ3WlkK7clbIbcIKxb9XJFg7Crf90Xz2iOG7qsg
|
|
||||||
xNr1iv7lqrWQIO0mb1b8EC/PN8BpP24NmKXurD5BYJUHVoZQnq5tFA==
|
|
||||||
-----END AGE ENCRYPTED FILE-----
|
|
||||||
- recipient: age1d87z3zqlv6ullnzyng8l722xzxwqr677csacf3zf3l28dau7avfs6pc7ay
|
|
||||||
enc: |
|
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA2SUtGN2R6K0VQeUd1MjBI
|
|
||||||
dGdUN3VrWGl2aUQ0VCtidnZhVXNJQnRvQ2c0CjQwT25RR1NMdmdUZ0JqcXJlaUdS
|
|
||||||
TFFwelltdWtQbkVBVVZYUEloNlAxVEEKLS0tIERZZ0tHUURSaXVWZmZtekJtRjlo
|
|
||||||
WEI3dVE5QVJXMmJQNGxjSm1GMWJ2bUUKciFofJsB2vLgWbJiozL4Dc3XJRNyYfr5
|
|
||||||
uhN29RDVGA0WjRsExPc/9TyCVFynE6NKIYr6bNFgq/MTuU/Oc7uUig==
|
|
||||||
-----END AGE ENCRYPTED FILE-----
|
|
||||||
- recipient: age1jrh8yyq3swjru09s75s4mspu0mphh7h6z54z946raa9wx3pcdegq0x8t4h
|
|
||||||
enc: |
|
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBlM1RpdWlsQXYxd3gyUTJO
|
|
||||||
MUl1Z0RSMDBCSmlLM1E0V0ZxcjByMG4rSVFjCjNXd1lsMldEMDZ2cWNQK1hzQlFh
|
|
||||||
b2dJRUtPTkdNOTBRUlYxYlBkVTVBQVEKLS0tIHdxTDI2WnMvR2RlaUtTek4vdGJO
|
|
||||||
MmtSQnZqaVJHTG1pbDg5MmgxSnVxQUkKqAuztZ/LNVzCn03nQxbN6rJlngijvPbo
|
|
||||||
RI45pv5o6BKR3Ty1sI/Gmr/WTp1mQPjgP7Am8CTxjVXzcQzvgnlSQA==
|
|
||||||
-----END AGE ENCRYPTED FILE-----
|
|
||||||
- recipient: age1m7xhem3qll35d539f364pm6txexvnp6k0tk34d8jxu4ry3pptv7smm0k5n
|
|
||||||
enc: |
|
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA1djhWYWZXVmh2ellhSlNU
|
|
||||||
QkZ6SEwzNFhib3dSdXNqOTBCN0Zld3VMYlFZClAvcWY3VlVjYlJjLzdlbG05QTlH
|
|
||||||
M0UrVURwU3hkZ2tUdS9USlBxY3AwVzQKLS0tICtCNGtPd2RIWFJvRmgrVnR5OXl3
|
|
||||||
QW1ZQ2Rab1hsbTRFb3Z3dCt3UzV0ekEK2sn0tU7lM09mjsys5WZhhn+WVJ+uCy70
|
|
||||||
lNK30Wu50f2wv0JjdwcANXY1tWOJyZJAcp75p8Rgy+JS+xIoJb1QqQ==
|
|
||||||
-----END AGE ENCRYPTED FILE-----
|
|
||||||
- recipient: age1dzvjjum2p240qtdt2qcxpm7pl2s5w36mh4fs3q9dhhq0uezvdqaq9vrgfy
|
|
||||||
enc: |
|
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBCNGt3dVdvdUptY1VOdEVQ
|
|
||||||
NFA3dG81SVkzRm1IWmN4MkZrNWZ3SU5hT0c0CkdldDJFODVGNnJENlRmRnVrNGJ4
|
|
||||||
OVo3d0M2L3lYczVVenRRRVkrTnBtemcKLS0tIGI3K3ViZ0swdE1yWmI3TGpqQ0hG
|
|
||||||
U3hITzJvWUthY1hkd1hod09LbUhXaE0KSS10Ocvu5bRgLAZCQv+A8dptHNQxsAfz
|
|
||||||
8xU6aSgMMI1rxP4DcuEe/+ysTAyAQUnXwAmeYWGdfIxUpVG/84xsOw==
|
|
||||||
-----END AGE ENCRYPTED FILE-----
|
|
||||||
lastmodified: "2023-07-17T03:50:09Z"
|
|
||||||
mac: ENC[AES256_GCM,data:8HpTYCODhaPNU9blJuIO6uDnYHwQGNpnZYUuiiP3oH4a870R8+/aj5qziRgL/kXkufZnjKBo6IbEXj9qfMVi+/+SxV+cFQHaQy8mPpD9QpzVeWEHRVypuBx4wY3T08fcKSZVCRYsumEMnF5cHZfse6vB5Fe/gclTE22OaYlHEXA=,iv:WJJqyLZ97kRr44iJOo7q2Rzu4W4yvZyuH8TdJYmmCTQ=,tag:omyuDAEkR7w8+XOE1EGDvQ==,type:str]
|
|
||||||
pgp: []
|
|
||||||
unencrypted_suffix: _unencrypted
|
|
||||||
version: 3.7.3
|
|
BIN
secrets/binary-caches.age
Normal file
BIN
secrets/binary-caches.age
Normal file
Binary file not shown.
24
secrets/cluster-join-token.age
Normal file
24
secrets/cluster-join-token.age
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
age-encryption.org/v1
|
||||||
|
-> ssh-rsa ALNSWw
|
||||||
|
k14GuxixIuiA4WhYtWW5PaevHx5QZc2HF9HM7Ia2ji4mNg2Pc1+cXFZG/QLROTVo
|
||||||
|
EL0c3/MzZBGAdFYkkm8hlA+S9JLdgiP8ROIT8hjhOE55uWWaH8uDQGODQX42nBe0
|
||||||
|
w1wN9iBDKJJ0s4kSak9K8GqS0afVvppLPZTcqoaHbh2YapXSYu7LK8BBgz4+nBUP
|
||||||
|
0axc3TIVgUzEDls7VGU1c+aavDvBb8c/fg5w5pJZy379bzU5TWpppmi7U7hEboCA
|
||||||
|
IMeAH5iffaksmyPIHlK/iwpHdkchLKX+2YHAu8DxywHeowm4rbxKv3oHfH+/3uM3
|
||||||
|
28VUeqYY/SCqwLSe84ZnSg
|
||||||
|
-> ssh-ed25519 Qi7vNw W23Q9s5rainiPnp67oLEcLKpEfmvqxUUWL5u+yvN+0o
|
||||||
|
/Tiyf6QaTM1NIKPPdrK9e8K43Ee0cNAV5uS5fiab3p8
|
||||||
|
-> ssh-ed25519 MW0fCg 2AXjCOaTHC6kJ+m5OnVwyuy6DEI2+6E//fZ7PkZsfFo
|
||||||
|
gEvzFrYhSCCvBaOjPb1aI49kCJBK5mpDGShJuVpbSn4
|
||||||
|
-> ssh-ed25519 92bXiA xv18v2ncQRE9MWJbpNsGUkwhho/NNZ465zcOl1qi3HQ
|
||||||
|
OKP7B3ecWEeBF7GA0Vx72BMRbM6iE6/fQ4mkCaGx4R0
|
||||||
|
-> ssh-ed25519 h1lenA tBhqzlU6IKkHKkTb9p8p2R/OOyLtOhLyAIujO+1oyEg
|
||||||
|
8ORTR81GImpbXu4rJ0HTSOwbFb3Zw+JmfYSGFoQXLHg
|
||||||
|
-> ssh-ed25519 7tFeRw BpJpUC2tTiDfGnO5JvYwW/JiTU2RSfeKzDOCMfLBUxY
|
||||||
|
u0mDqrcX/vKNJvqu9Bjl6qUrf1CAkGm5cBRhg984lXk
|
||||||
|
-> ssh-ed25519 /B167A t3O6wWHJ1GAxe/e7XwiUzl+uWVBG5F7vc088zFYoFm0
|
||||||
|
T954lFCHmJTuOnMy5N1OizGzySbd5/ow1eBbcpJl/F4
|
||||||
|
--- BHVcjNVuUaft0wyxOjncdhbpiC9UtUgWSk8sUr6lBCw
|
||||||
|
•Ù'À¡Æyá"‚N¬ÌTm;ö)wªVõĬ‚»÷ÑœwtÖ½,ùžÛø}-ã1Œ|ÌÊ…©ù¸’¿
b¤Š t%†‚¶+l0ë`à<>Wˆ« Îvw6¯>"7Øi3í‹&LêòY*“P(Sƒà <ò Žœ„³÷°´ëm™–Ë TqdK$(׿y7¢PG(y‹*¢¤7p¾ÀEÅ/gTÆ?3AqϪ¶16µ#±È‹æT'y˜öG¢e%.øÛ€Ê¡Opâý:Å
|
||||||
|
¹”Ò¨3Hvµ¦E%(¥ô–õ¤s󳸧²lÁä¿%Š<>¶×øÄ…¨¹„Ïû
|
||||||
|
`Õw©æ£FLX
|
18
secrets/secrets.nix
Normal file
18
secrets/secrets.nix
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
let
|
||||||
|
adisbladis = builtins.readFile ../users/keys/adisbladis;
|
||||||
|
mic92 = builtins.readFile ../users/keys/mic92;
|
||||||
|
ryantm = builtins.readFile ../users/keys/ryantm;
|
||||||
|
zimbatm = builtins.readFile ../users/keys/zimbatm;
|
||||||
|
zowoq = builtins.readFile ../users/keys/zowoq;
|
||||||
|
|
||||||
|
users = [ adisbladis mic92 ryantm zimbatm zowoq ];
|
||||||
|
|
||||||
|
inherit ((import ../modules/shared/known-hosts.nix).programs.ssh) knownHosts;
|
||||||
|
|
||||||
|
darwin02 = knownHosts.darwin02.publicKey;
|
||||||
|
darwin03 = knownHosts.darwin03.publicKey;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
"binary-caches.age".publicKeys = users ++ [ darwin02 darwin03 ];
|
||||||
|
"cluster-join-token.age".publicKeys = users ++ [ darwin02 darwin03 ];
|
||||||
|
}
|
Loading…
Add table
Reference in a new issue