merge non-critical infra into toplevel flake
This allows us to have a single place to update nixpkgs
Jörg Thalheim committed
Aug 18, 2024 at 12:52 UTC
da17de1c9107b77659d305a8260a6acf0ed92011
6 files changed
+319
-385
flake.lock
+240
-13
@@ -1,8 +1,113 @@
1
{
2
"nodes": {
3
+ "colmena": {
4
+ "inputs": {
5
+ "flake-compat": "flake-compat",
6
+ "flake-utils": [
7
+ "flake-utils"
8
+ ],
9
+ "nixpkgs": [
10
+ "nixpkgs"
11
+ ],
12
+ "stable": [
13
+ "nixpkgs"
14
+ ]
15
+ },
16
+ "locked": {
17
+ "lastModified": 1711386353,
18
+ "narHash": "sha256-gWEpb8Hybnoqb4O4tmpohGZk6+aerAbJpywKcFIiMlg=",
19
+ "owner": "zhaofengli",
20
+ "repo": "colmena",
21
+ "rev": "cd65ef7a25cdc75052fbd04b120aeb066c3881db",
22
+ "type": "github"
23
+ },
24
+ "original": {
25
+ "owner": "zhaofengli",
26
+ "repo": "colmena",
27
+ "type": "github"
28
+ }
29
+ },
30
+ "disko": {
31
+ "inputs": {
32
+ "nixpkgs": [
33
+ "nixpkgs"
34
+ ]
35
+ },
36
+ "locked": {
37
+ "lastModified": 1723685519,
38
+ "narHash": "sha256-GkXQIoZmW2zCPp1YFtAYGg/xHNyFH/Mgm79lcs81rq0=",
39
+ "owner": "nix-community",
40
+ "repo": "disko",
41
+ "rev": "276a0d055a720691912c6a34abb724e395c8e38a",
42
+ "type": "github"
43
+ },
44
+ "original": {
45
+ "owner": "nix-community",
46
+ "repo": "disko",
47
+ "type": "github"
48
+ }
49
+ },
50
+ "first-time-contribution-tagger": {
51
+ "inputs": {
52
+ "flake-utils": [
53
+ "flake-utils"
54
+ ],
55
+ "nixpkgs": [
56
+ "nixpkgs"
57
+ ],
58
+ "pre-commit": "pre-commit"
59
+ },
60
+ "locked": {
61
+ "lastModified": 1723636455,
62
+ "narHash": "sha256-zy/rVDbaCd1fKfXDG/pXrda+ozFt8YQfr4mIATsexCo=",
63
+ "owner": "Janik-Haag",
64
+ "repo": "first-time-contribution-tagger",
65
+ "rev": "b21f965d650fbdebf6ae4a8df4843871fbc64812",
66
+ "type": "github"
67
+ },
68
+ "original": {
69
+ "owner": "Janik-Haag",
70
+ "repo": "first-time-contribution-tagger",
71
+ "type": "github"
72
+ }
73
+ },
74
+ "flake-compat": {
75
+ "flake": false,
76
+ "locked": {
77
+ "lastModified": 1650374568,
78
+ "narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=",
79
+ "owner": "edolstra",
80
+ "repo": "flake-compat",
81
+ "rev": "b4a34015c698c7793d592d66adbab377907a2be8",
82
+ "type": "github"
83
+ },
84
+ "original": {
85
+ "owner": "edolstra",
86
+ "repo": "flake-compat",
87
+ "type": "github"
88
+ }
89
+ },
90
+ "flake-compat_2": {
91
+ "flake": false,
92
+ "locked": {
93
+ "lastModified": 1673956053,
94
+ "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=",
95
+ "owner": "edolstra",
96
+ "repo": "flake-compat",
97
+ "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9",
98
+ "type": "github"
99
+ },
100
+ "original": {
101
+ "owner": "edolstra",
102
+ "repo": "flake-compat",
103
+ "type": "github"
104
+ }
105
+ },
106
"flake-parts": {
107
"inputs": {
5
- "nixpkgs-lib": "nixpkgs-lib"
108
+ "nixpkgs-lib": [
109
+ "nixpkgs"
110
+ ]
111
},
112
"locked": {
113
"lastModified": 1722555600,
@@ -18,6 +123,46 @@
123
"type": "github"
124
}
125
},
126
+ "flake-utils": {
127
+ "inputs": {
128
+ "systems": "systems"
129
+ },
130
+ "locked": {
131
+ "lastModified": 1710146030,
132
+ "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
133
+ "owner": "numtide",
134
+ "repo": "flake-utils",
135
+ "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
136
+ "type": "github"
137
+ },
138
+ "original": {
139
+ "owner": "numtide",
140
+ "repo": "flake-utils",
141
+ "type": "github"
142
+ }
143
+ },
144
+ "gitignore": {
145
+ "inputs": {
146
+ "nixpkgs": [
147
+ "first-time-contribution-tagger",
148
+ "pre-commit",
149
+ "nixpkgs"
150
+ ]
151
+ },
152
+ "locked": {
153
+ "lastModified": 1660459072,
154
+ "narHash": "sha256-8DFJjXG8zqoONA1vXtgeKXy68KdJL5UaXR8NtVMUbx8=",
155
+ "owner": "hercules-ci",
156
+ "repo": "gitignore.nix",
157
+ "rev": "a20de23b925fd8264fd7fad6454652e142fd7f73",
158
+ "type": "github"
159
+ },
160
+ "original": {
161
+ "owner": "hercules-ci",
162
+ "repo": "gitignore.nix",
163
+ "type": "github"
164
+ }
165
+ },
166
"nixpkgs": {
167
"locked": {
168
"lastModified": 1723688146,
@@ -34,18 +179,6 @@
179
"type": "github"
180
}
181
},
37
- "nixpkgs-lib": {
38
- "locked": {
39
- "lastModified": 1722555339,
40
- "narHash": "sha256-uFf2QeW7eAHlYXuDktm9c25OxOyCoUOQmh5SZ9amE5Q=",
41
- "type": "tarball",
42
- "url": "https://github.com/NixOS/nixpkgs/archive/a5d394176e64ab29c852d03346c1fc9b0b7d33eb.tar.gz"
43
- },
44
- "original": {
45
- "type": "tarball",
46
- "url": "https://github.com/NixOS/nixpkgs/archive/a5d394176e64ab29c852d03346c1fc9b0b7d33eb.tar.gz"
47
- }
48
- },
182
"nixpkgs_2": {
183
"locked": {
184
"lastModified": 1723637854,
@@ -62,13 +195,107 @@
195
"type": "github"
196
}
197
},
198
+ "pre-commit": {
199
+ "inputs": {
200
+ "flake-compat": "flake-compat_2",
201
+ "flake-utils": [
202
+ "first-time-contribution-tagger",
203
+ "flake-utils"
204
+ ],
205
+ "gitignore": "gitignore",
206
+ "nixpkgs": [
207
+ "first-time-contribution-tagger",
208
+ "nixpkgs"
209
+ ],
210
+ "nixpkgs-stable": [
211
+ "first-time-contribution-tagger"
212
+ ]
213
+ },
214
+ "locked": {
215
+ "lastModified": 1702456155,
216
+ "narHash": "sha256-I2XhXGAecdGlqi6hPWYT83AQtMgL+aa3ulA85RAEgOk=",
217
+ "owner": "cachix",
218
+ "repo": "pre-commit-hooks.nix",
219
+ "rev": "007a45d064c1c32d04e1b8a0de5ef00984c419bc",
220
+ "type": "github"
221
+ },
222
+ "original": {
223
+ "owner": "cachix",
224
+ "repo": "pre-commit-hooks.nix",
225
+ "type": "github"
226
+ }
227
+ },
228
"root": {
229
"inputs": {
230
+ "colmena": "colmena",
231
+ "disko": "disko",
232
+ "first-time-contribution-tagger": "first-time-contribution-tagger",
233
"flake-parts": "flake-parts",
234
+ "flake-utils": "flake-utils",
235
"nixpkgs": "nixpkgs",
236
+ "sops-nix": "sops-nix",
237
+ "srvos": "srvos",
238
"treefmt-nix": "treefmt-nix"
239
}
240
},
241
+ "sops-nix": {
242
+ "inputs": {
243
+ "nixpkgs": [
244
+ "nixpkgs"
245
+ ],
246
+ "nixpkgs-stable": [
247
+ "nixpkgs"
248
+ ]
249
+ },
250
+ "locked": {
251
+ "lastModified": 1723501126,
252
+ "narHash": "sha256-N9IcHgj/p1+2Pvk8P4Zc1bfrMwld5PcosVA0nL6IGdE=",
253
+ "owner": "Mic92",
254
+ "repo": "sops-nix",
255
+ "rev": "be0eec2d27563590194a9206f551a6f73d52fa34",
256
+ "type": "github"
257
+ },
258
+ "original": {
259
+ "owner": "Mic92",
260
+ "repo": "sops-nix",
261
+ "type": "github"
262
+ }
263
+ },
264
+ "srvos": {
265
+ "inputs": {
266
+ "nixpkgs": [
267
+ "nixpkgs"
268
+ ]
269
+ },
270
+ "locked": {
271
+ "lastModified": 1723896521,
272
+ "narHash": "sha256-yWxfSFKRhRe8gH8PXcFmExJbOxEOGhSiBdhrHcxtNvo=",
273
+ "owner": "numtide",
274
+ "repo": "srvos",
275
+ "rev": "6c45a75c604159167ef6f3bcd5658fc7ef649350",
276
+ "type": "github"
277
+ },
278
+ "original": {
279
+ "owner": "numtide",
280
+ "repo": "srvos",
281
+ "type": "github"
282
+ }
283
+ },
284
+ "systems": {
285
+ "locked": {
286
+ "lastModified": 1681028828,
287
+ "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
288
+ "owner": "nix-systems",
289
+ "repo": "default",
290
+ "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
291
+ "type": "github"
292
+ },
293
+ "original": {
294
+ "owner": "nix-systems",
295
+ "repo": "default",
296
+ "type": "github"
297
+ }
298
+ },
299
"treefmt-nix": {
300
"inputs": {
301
"nixpkgs": "nixpkgs_2"
flake.nix
+35
-1
@@ -4,7 +4,41 @@
4
inputs = {
5
nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.05";
6
flake-parts.url = "github:hercules-ci/flake-parts";
7
+ flake-parts.inputs.nixpkgs-lib.follows = "nixpkgs";
8
+
9
+ flake-utils.url = "github:numtide/flake-utils";
10
treefmt-nix.url = "github:numtide/treefmt-nix";
11
+
12
+ colmena = {
13
+ url = "github:zhaofengli/colmena";
14
+ inputs = {
15
+ flake-utils.follows = "flake-utils";
16
+ nixpkgs.follows = "nixpkgs";
17
+ stable.follows = "nixpkgs";
18
+ };
19
+ };
20
+ disko = {
21
+ url = "github:nix-community/disko";
22
+ inputs.nixpkgs.follows = "nixpkgs";
23
+ };
24
+ srvos = {
25
+ url = "github:numtide/srvos";
26
+ inputs.nixpkgs.follows = "nixpkgs";
27
+ };
28
+ sops-nix = {
29
+ url = "github:Mic92/sops-nix";
30
+ inputs = {
31
+ nixpkgs.follows = "nixpkgs";
32
+ nixpkgs-stable.follows = "nixpkgs";
33
+ };
34
+ };
35
+ first-time-contribution-tagger = {
36
+ url = "github:Janik-Haag/first-time-contribution-tagger";
37
+ inputs = {
38
+ nixpkgs.follows = "nixpkgs";
39
+ flake-utils.follows = "flake-utils";
40
+ };
41
+ };
42
};
43
outputs =
44
inputs@{ flake-parts, ... }:
@@ -18,7 +52,7 @@
52
imports = [
53
./formatter/flake-module.nix
54
./terraform/flake-module.nix
55
+ ./non-critical-infra/flake-module.nix
56
];
57
};
23
-
58
}
non-critical-infra/.envrc
+1
-1
@@ -1 +1 @@
1
-use flake
1
+use flake .#non-critical-infra
non-critical-infra/flake-module.nix
new
+43
@@ -0,0 +1,43 @@
1
+{ inputs, lib, ... }:
2
+{
3
+ flake =
4
+ let
5
+ importConfig =
6
+ path:
7
+ (lib.mapAttrs (name: _value: import (path + "/${name}/default.nix")) (
8
+ lib.filterAttrs (_: v: v == "directory") (builtins.readDir path)
9
+ ));
10
+ in
11
+ {
12
+ nixosConfigurations = builtins.mapAttrs (
13
+ _name: value:
14
+ inputs.nixpkgs.lib.nixosSystem {
15
+ inherit lib;
16
+ system = "x86_64-linux";
17
+ specialArgs = {
18
+ inherit inputs;
19
+ };
20
+ modules = [
21
+ value
22
+ inputs.disko.nixosModules.disko
23
+ inputs.first-time-contribution-tagger.nixosModule
24
+ inputs.sops-nix.nixosModules.sops
25
+ ];
26
+ extraModules = [ inputs.colmena.nixosModules.deploymentOptions ];
27
+
28
+ }
29
+ ) (importConfig ./hosts);
30
+ };
31
+
32
+ perSystem =
33
+ { pkgs, inputs', ... }:
34
+ {
35
+ devShells.non-critical-infra = pkgs.mkShellNoCC {
36
+ packages = [
37
+ inputs'.colmena.packages.colmena
38
+ pkgs.sops
39
+ pkgs.ssh-to-age
40
+ ];
41
+ };
42
+ };
43
+}
non-critical-infra/flake.lock
deleted
-264
@@ -1,264 +0,0 @@
1
-{
2
- "nodes": {
3
- "colmena": {
4
- "inputs": {
5
- "flake-compat": "flake-compat",
6
- "flake-utils": [
7
- "flake-utils"
8
- ],
9
- "nixpkgs": [
10
- "nixpkgs"
11
- ],
12
- "stable": [
13
- "nixpkgs"
14
- ]
15
- },
16
- "locked": {
17
- "lastModified": 1711386353,
18
- "narHash": "sha256-gWEpb8Hybnoqb4O4tmpohGZk6+aerAbJpywKcFIiMlg=",
19
- "owner": "zhaofengli",
20
- "repo": "colmena",
21
- "rev": "cd65ef7a25cdc75052fbd04b120aeb066c3881db",
22
- "type": "github"
23
- },
24
- "original": {
25
- "owner": "zhaofengli",
26
- "repo": "colmena",
27
- "type": "github"
28
- }
29
- },
30
- "disko": {
31
- "inputs": {
32
- "nixpkgs": [
33
- "nixpkgs"
34
- ]
35
- },
36
- "locked": {
37
- "lastModified": 1723426710,
38
- "narHash": "sha256-yrS9al6l3fYfFfvovnyBWnyELDQOdfKyai4K/jKgoBw=",
39
- "owner": "nix-community",
40
- "repo": "disko",
41
- "rev": "0d510fe40b56ed74907a021d7e1ffd0042592914",
42
- "type": "github"
43
- },
44
- "original": {
45
- "owner": "nix-community",
46
- "repo": "disko",
47
- "type": "github"
48
- }
49
- },
50
- "first-time-contribution-tagger": {
51
- "inputs": {
52
- "flake-utils": [
53
- "flake-utils"
54
- ],
55
- "nixpkgs": [
56
- "nixpkgs"
57
- ],
58
- "pre-commit": "pre-commit"
59
- },
60
- "locked": {
61
- "lastModified": 1723636455,
62
- "narHash": "sha256-zy/rVDbaCd1fKfXDG/pXrda+ozFt8YQfr4mIATsexCo=",
63
- "owner": "Janik-Haag",
64
- "repo": "first-time-contribution-tagger",
65
- "rev": "b21f965d650fbdebf6ae4a8df4843871fbc64812",
66
- "type": "github"
67
- },
68
- "original": {
69
- "owner": "Janik-Haag",
70
- "repo": "first-time-contribution-tagger",
71
- "type": "github"
72
- }
73
- },
74
- "flake-compat": {
75
- "flake": false,
76
- "locked": {
77
- "lastModified": 1650374568,
78
- "narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=",
79
- "owner": "edolstra",
80
- "repo": "flake-compat",
81
- "rev": "b4a34015c698c7793d592d66adbab377907a2be8",
82
- "type": "github"
83
- },
84
- "original": {
85
- "owner": "edolstra",
86
- "repo": "flake-compat",
87
- "type": "github"
88
- }
89
- },
90
- "flake-compat_2": {
91
- "flake": false,
92
- "locked": {
93
- "lastModified": 1673956053,
94
- "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=",
95
- "owner": "edolstra",
96
- "repo": "flake-compat",
97
- "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9",
98
- "type": "github"
99
- },
100
- "original": {
101
- "owner": "edolstra",
102
- "repo": "flake-compat",
103
- "type": "github"
104
- }
105
- },
106
- "flake-utils": {
107
- "inputs": {
108
- "systems": "systems"
109
- },
110
- "locked": {
111
- "lastModified": 1710146030,
112
- "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
113
- "owner": "numtide",
114
- "repo": "flake-utils",
115
- "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
116
- "type": "github"
117
- },
118
- "original": {
119
- "owner": "numtide",
120
- "repo": "flake-utils",
121
- "type": "github"
122
- }
123
- },
124
- "gitignore": {
125
- "inputs": {
126
- "nixpkgs": [
127
- "first-time-contribution-tagger",
128
- "pre-commit",
129
- "nixpkgs"
130
- ]
131
- },
132
- "locked": {
133
- "lastModified": 1660459072,
134
- "narHash": "sha256-8DFJjXG8zqoONA1vXtgeKXy68KdJL5UaXR8NtVMUbx8=",
135
- "owner": "hercules-ci",
136
- "repo": "gitignore.nix",
137
- "rev": "a20de23b925fd8264fd7fad6454652e142fd7f73",
138
- "type": "github"
139
- },
140
- "original": {
141
- "owner": "hercules-ci",
142
- "repo": "gitignore.nix",
143
- "type": "github"
144
- }
145
- },
146
- "nixpkgs": {
147
- "locked": {
148
- "lastModified": 1723556749,
149
- "narHash": "sha256-+CHVZnTnIYRLYsARInHYoWkujzcRkLY/gXm3s5bE52o=",
150
- "owner": "NixOS",
151
- "repo": "nixpkgs",
152
- "rev": "4a92571f9207810b559c9eac203d1f4d79830073",
153
- "type": "github"
154
- },
155
- "original": {
156
- "owner": "NixOS",
157
- "ref": "nixos-24.05",
158
- "repo": "nixpkgs",
159
- "type": "github"
160
- }
161
- },
162
- "pre-commit": {
163
- "inputs": {
164
- "flake-compat": "flake-compat_2",
165
- "flake-utils": [
166
- "first-time-contribution-tagger",
167
- "flake-utils"
168
- ],
169
- "gitignore": "gitignore",
170
- "nixpkgs": [
171
- "first-time-contribution-tagger",
172
- "nixpkgs"
173
- ],
174
- "nixpkgs-stable": [
175
- "first-time-contribution-tagger"
176
- ]
177
- },
178
- "locked": {
179
- "lastModified": 1702456155,
180
- "narHash": "sha256-I2XhXGAecdGlqi6hPWYT83AQtMgL+aa3ulA85RAEgOk=",
181
- "owner": "cachix",
182
- "repo": "pre-commit-hooks.nix",
183
- "rev": "007a45d064c1c32d04e1b8a0de5ef00984c419bc",
184
- "type": "github"
185
- },
186
- "original": {
187
- "owner": "cachix",
188
- "repo": "pre-commit-hooks.nix",
189
- "type": "github"
190
- }
191
- },
192
- "root": {
193
- "inputs": {
194
- "colmena": "colmena",
195
- "disko": "disko",
196
- "first-time-contribution-tagger": "first-time-contribution-tagger",
197
- "flake-utils": "flake-utils",
198
- "nixpkgs": "nixpkgs",
199
- "sops-nix": "sops-nix",
200
- "srvos": "srvos"
201
- }
202
- },
203
- "sops-nix": {
204
- "inputs": {
205
- "nixpkgs": [
206
- "nixpkgs"
207
- ],
208
- "nixpkgs-stable": [
209
- "nixpkgs"
210
- ]
211
- },
212
- "locked": {
213
- "lastModified": 1723501126,
214
- "narHash": "sha256-N9IcHgj/p1+2Pvk8P4Zc1bfrMwld5PcosVA0nL6IGdE=",
215
- "owner": "Mic92",
216
- "repo": "sops-nix",
217
- "rev": "be0eec2d27563590194a9206f551a6f73d52fa34",
218
- "type": "github"
219
- },
220
- "original": {
221
- "owner": "Mic92",
222
- "repo": "sops-nix",
223
- "type": "github"
224
- }
225
- },
226
- "srvos": {
227
- "inputs": {
228
- "nixpkgs": [
229
- "nixpkgs"
230
- ]
231
- },
232
- "locked": {
233
- "lastModified": 1723423676,
234
- "narHash": "sha256-E+DdXV2cFj77vU35cVNoEEE5YueE075HXiJLXwAxJ0k=",
235
- "owner": "numtide",
236
- "repo": "srvos",
237
- "rev": "a7cc81cd76c4c07bb7db01b731199ecd4be17305",
238
- "type": "github"
239
- },
240
- "original": {
241
- "owner": "numtide",
242
- "repo": "srvos",
243
- "type": "github"
244
- }
245
- },
246
- "systems": {
247
- "locked": {
248
- "lastModified": 1681028828,
249
- "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
250
- "owner": "nix-systems",
251
- "repo": "default",
252
- "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
253
- "type": "github"
254
- },
255
- "original": {
256
- "owner": "nix-systems",
257
- "repo": "default",
258
- "type": "github"
259
- }
260
- }
261
- },
262
- "root": "root",
263
- "version": 7
264
-}
non-critical-infra/flake.nix
deleted
-106
@@ -1,106 +0,0 @@
1
-{
2
- description = "Non critical nixos org infra";
3
-
4
- inputs = {
5
- nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.05";
6
- colmena = {
7
- url = "github:zhaofengli/colmena";
8
- inputs = {
9
- flake-utils.follows = "flake-utils";
10
- nixpkgs.follows = "nixpkgs";
11
- stable.follows = "nixpkgs";
12
- };
13
- };
14
- flake-utils.url = "github:numtide/flake-utils";
15
- disko = {
16
- url = "github:nix-community/disko";
17
- inputs.nixpkgs.follows = "nixpkgs";
18
- };
19
- srvos = {
20
- url = "github:numtide/srvos";
21
- inputs.nixpkgs.follows = "nixpkgs";
22
- };
23
- sops-nix = {
24
- url = "github:Mic92/sops-nix";
25
- inputs = {
26
- nixpkgs.follows = "nixpkgs";
27
- nixpkgs-stable.follows = "nixpkgs";
28
- };
29
- };
30
-
31
- first-time-contribution-tagger = {
32
- url = "github:Janik-Haag/first-time-contribution-tagger";
33
- inputs = {
34
- nixpkgs.follows = "nixpkgs";
35
- flake-utils.follows = "flake-utils";
36
- };
37
- };
38
- };
39
-
40
- outputs =
41
- {
42
- self,
43
- nixpkgs,
44
- flake-utils,
45
- colmena,
46
- disko,
47
- first-time-contribution-tagger,
48
- sops-nix,
49
- ...
50
- }@inputs:
51
- let
52
- importConfig =
53
- path:
54
- (lib.mapAttrs (name: _value: import (path + "/${name}/default.nix")) (
55
- lib.filterAttrs (_: v: v == "directory") (builtins.readDir path)
56
- ));
57
- inherit (nixpkgs) lib;
58
- in
59
- {
60
-
61
- nixosConfigurations = builtins.mapAttrs (
62
- _name: value:
63
- nixpkgs.lib.nixosSystem {
64
- inherit lib;
65
- system = "x86_64-linux";
66
- specialArgs = {
67
- inherit inputs;
68
- };
69
- modules = [
70
- value
71
- disko.nixosModules.disko
72
- first-time-contribution-tagger.nixosModule
73
- sops-nix.nixosModules.sops
74
- ];
75
- extraModules = [ inputs.colmena.nixosModules.deploymentOptions ];
76
-
77
- }
78
- ) (importConfig ./hosts);
79
-
80
- colmena = {
81
- meta = {
82
- nixpkgs = import inputs.nixpkgs { system = "x86_64-linux"; };
83
- nodeNixpkgs = builtins.mapAttrs (_: v: v.pkgs) self.nixosConfigurations;
84
- nodeSpecialArgs = builtins.mapAttrs (_: v: v._module.specialArgs) self.nixosConfigurations;
85
- specialArgs.lib = lib;
86
- };
87
- } // builtins.mapAttrs (_: v: { imports = v._module.args.modules; }) self.nixosConfigurations;
88
-
89
- }
90
- // flake-utils.lib.eachDefaultSystem (
91
- system:
92
- let
93
- pkgs = nixpkgs.legacyPackages.${system};
94
- in
95
- {
96
- devShell = pkgs.mkShell {
97
- buildInputs = with pkgs; [
98
- colmena.packages.${system}.colmena
99
- sops
100
- ssh-to-age
101
- ];
102
- };
103
- }
104
- );
105
-
106
-}