confctl 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (130) hide show
  1. checksums.yaml +7 -0
  2. data/.editorconfig +11 -0
  3. data/.gitignore +8 -0
  4. data/.overcommit.yml +6 -0
  5. data/.rubocop.yml +67 -0
  6. data/.rubocop_todo.yml +5 -0
  7. data/.ruby-version +1 -0
  8. data/CHANGELOG.md +2 -0
  9. data/Gemfile +2 -0
  10. data/LICENSE.txt +674 -0
  11. data/README.md +522 -0
  12. data/Rakefile +40 -0
  13. data/bin/confctl +4 -0
  14. data/confctl.gemspec +33 -0
  15. data/example/.gitignore +2 -0
  16. data/example/README.md +38 -0
  17. data/example/cluster/cluster.nix +7 -0
  18. data/example/cluster/module-list.nix +3 -0
  19. data/example/cluster/nixos-machine/config.nix +15 -0
  20. data/example/cluster/nixos-machine/hardware.nix +4 -0
  21. data/example/cluster/nixos-machine/module.nix +8 -0
  22. data/example/cluster/vpsadminos-container/config.nix +22 -0
  23. data/example/cluster/vpsadminos-container/module.nix +8 -0
  24. data/example/cluster/vpsadminos-machine/config.nix +22 -0
  25. data/example/cluster/vpsadminos-machine/hardware.nix +4 -0
  26. data/example/cluster/vpsadminos-machine/module.nix +8 -0
  27. data/example/cluster/vpsfreecz-vps/config.nix +25 -0
  28. data/example/cluster/vpsfreecz-vps/module.nix +8 -0
  29. data/example/configs/confctl.nix +10 -0
  30. data/example/configs/swpins.nix +28 -0
  31. data/example/data/default.nix +5 -0
  32. data/example/data/ssh-keys.nix +7 -0
  33. data/example/environments/base.nix +13 -0
  34. data/example/modules/module-list.nix +13 -0
  35. data/example/shell.nix +11 -0
  36. data/example/swpins/channels/nixos-unstable.json +35 -0
  37. data/example/swpins/channels/vpsadminos-staging.json +35 -0
  38. data/lib/confctl/cli/app.rb +551 -0
  39. data/lib/confctl/cli/attr_filters.rb +51 -0
  40. data/lib/confctl/cli/cluster.rb +1248 -0
  41. data/lib/confctl/cli/command.rb +206 -0
  42. data/lib/confctl/cli/configuration.rb +296 -0
  43. data/lib/confctl/cli/gen_data.rb +97 -0
  44. data/lib/confctl/cli/generation.rb +335 -0
  45. data/lib/confctl/cli/log_view.rb +267 -0
  46. data/lib/confctl/cli/output_formatter.rb +288 -0
  47. data/lib/confctl/cli/swpins/base.rb +40 -0
  48. data/lib/confctl/cli/swpins/channel.rb +73 -0
  49. data/lib/confctl/cli/swpins/cluster.rb +80 -0
  50. data/lib/confctl/cli/swpins/core.rb +86 -0
  51. data/lib/confctl/cli/swpins/utils.rb +55 -0
  52. data/lib/confctl/cli/swpins.rb +5 -0
  53. data/lib/confctl/cli/tag_filters.rb +30 -0
  54. data/lib/confctl/cli.rb +5 -0
  55. data/lib/confctl/conf_cache.rb +105 -0
  56. data/lib/confctl/conf_dir.rb +88 -0
  57. data/lib/confctl/erb_template.rb +37 -0
  58. data/lib/confctl/exceptions.rb +3 -0
  59. data/lib/confctl/gcroot.rb +30 -0
  60. data/lib/confctl/generation/build.rb +145 -0
  61. data/lib/confctl/generation/build_list.rb +106 -0
  62. data/lib/confctl/generation/host.rb +35 -0
  63. data/lib/confctl/generation/host_list.rb +81 -0
  64. data/lib/confctl/generation/unified.rb +117 -0
  65. data/lib/confctl/generation/unified_list.rb +63 -0
  66. data/lib/confctl/git_repo_mirror.rb +79 -0
  67. data/lib/confctl/health_checks/base.rb +66 -0
  68. data/lib/confctl/health_checks/run_command.rb +179 -0
  69. data/lib/confctl/health_checks/systemd/properties.rb +84 -0
  70. data/lib/confctl/health_checks/systemd/property_check.rb +31 -0
  71. data/lib/confctl/health_checks/systemd/property_list.rb +20 -0
  72. data/lib/confctl/health_checks.rb +5 -0
  73. data/lib/confctl/hook.rb +35 -0
  74. data/lib/confctl/line_buffer.rb +53 -0
  75. data/lib/confctl/logger.rb +151 -0
  76. data/lib/confctl/machine.rb +107 -0
  77. data/lib/confctl/machine_control.rb +172 -0
  78. data/lib/confctl/machine_list.rb +108 -0
  79. data/lib/confctl/machine_status.rb +135 -0
  80. data/lib/confctl/module_options.rb +95 -0
  81. data/lib/confctl/nix.rb +382 -0
  82. data/lib/confctl/nix_build.rb +108 -0
  83. data/lib/confctl/nix_collect_garbage.rb +64 -0
  84. data/lib/confctl/nix_copy.rb +49 -0
  85. data/lib/confctl/nix_format.rb +124 -0
  86. data/lib/confctl/nix_literal_expression.rb +15 -0
  87. data/lib/confctl/parallel_executor.rb +43 -0
  88. data/lib/confctl/pattern.rb +9 -0
  89. data/lib/confctl/settings.rb +50 -0
  90. data/lib/confctl/std_line_buffer.rb +40 -0
  91. data/lib/confctl/swpins/change_set.rb +151 -0
  92. data/lib/confctl/swpins/channel.rb +62 -0
  93. data/lib/confctl/swpins/channel_list.rb +47 -0
  94. data/lib/confctl/swpins/cluster_name.rb +94 -0
  95. data/lib/confctl/swpins/cluster_name_list.rb +15 -0
  96. data/lib/confctl/swpins/core.rb +137 -0
  97. data/lib/confctl/swpins/deployed_info.rb +23 -0
  98. data/lib/confctl/swpins/spec.rb +20 -0
  99. data/lib/confctl/swpins/specs/base.rb +184 -0
  100. data/lib/confctl/swpins/specs/directory.rb +51 -0
  101. data/lib/confctl/swpins/specs/git.rb +135 -0
  102. data/lib/confctl/swpins/specs/git_rev.rb +24 -0
  103. data/lib/confctl/swpins.rb +17 -0
  104. data/lib/confctl/system_command.rb +10 -0
  105. data/lib/confctl/user_script.rb +13 -0
  106. data/lib/confctl/user_scripts.rb +41 -0
  107. data/lib/confctl/utils/file.rb +21 -0
  108. data/lib/confctl/version.rb +3 -0
  109. data/lib/confctl.rb +43 -0
  110. data/man/man8/confctl-options.nix.8 +1334 -0
  111. data/man/man8/confctl-options.nix.8.md +1340 -0
  112. data/man/man8/confctl.8 +660 -0
  113. data/man/man8/confctl.8.md +654 -0
  114. data/nix/evaluator.nix +160 -0
  115. data/nix/lib/default.nix +83 -0
  116. data/nix/lib/machine/default.nix +74 -0
  117. data/nix/lib/machine/info.nix +5 -0
  118. data/nix/lib/swpins/eval.nix +71 -0
  119. data/nix/lib/swpins/options.nix +94 -0
  120. data/nix/machines.nix +31 -0
  121. data/nix/modules/cluster/default.nix +459 -0
  122. data/nix/modules/confctl/cli.nix +21 -0
  123. data/nix/modules/confctl/generations.nix +84 -0
  124. data/nix/modules/confctl/nix.nix +28 -0
  125. data/nix/modules/confctl/swpins.nix +55 -0
  126. data/nix/modules/module-list.nix +19 -0
  127. data/shell.nix +42 -0
  128. data/template/confctl-options.nix/main.erb +45 -0
  129. data/template/confctl-options.nix/options.erb +15 -0
  130. metadata +353 -0
@@ -0,0 +1,1340 @@
1
+ # confctl-options.nix 8 2024-02-17 master
2
+
3
+ ## NAME
4
+ `confctl-options.nix` - confctl configuration documentation
5
+
6
+ ## DESCRIPTION
7
+ This document describes Nix options, which can be used in confctl(8) cluster
8
+ configurations to configure `confctl` and machines within the cluster.
9
+
10
+ ## CONFCTL SETTINGS
11
+ The following `confctl` settings can be configured in `configs/confctl.nix`
12
+ within the deployment configuration directory:
13
+
14
+ `confctl.buildGenerations.max`
15
+ The maximum number of build generations to be kept.
16
+
17
+ This is the default value, which can be overriden per host.
18
+
19
+ *Type:* signed integer
20
+
21
+ *Default:* `30`
22
+
23
+ *Declared by:* `<confctl/nix/modules/confctl/generations.nix>`
24
+
25
+ `confctl.buildGenerations.maxAge`
26
+ Delete build generations older than
27
+ `confctl.buildGenerations.maxAge` seconds. Old generations
28
+ are deleted even if `confctl.buildGenerations.max` is
29
+ not reached.
30
+
31
+ This is the default value, which can be overriden per host.
32
+
33
+ *Type:* signed integer
34
+
35
+ *Default:* `15552000`
36
+
37
+ *Declared by:* `<confctl/nix/modules/confctl/generations.nix>`
38
+
39
+ `confctl.buildGenerations.min`
40
+ The minimum number of build generations to be kept.
41
+
42
+ This is the default value, which can be overriden per host.
43
+
44
+ *Type:* signed integer
45
+
46
+ *Default:* `5`
47
+
48
+ *Declared by:* `<confctl/nix/modules/confctl/generations.nix>`
49
+
50
+ `confctl.hostGenerations.collectGarbage`
51
+ Run nix-collect-garbage
52
+
53
+ *Type:* boolean
54
+
55
+ *Default:* `true`
56
+
57
+ *Declared by:* `<confctl/nix/modules/confctl/generations.nix>`
58
+
59
+ `confctl.hostGenerations.max`
60
+ The maximum number of generations to be kept on machines.
61
+
62
+ This is the default value, which can be overriden per host.
63
+
64
+ *Type:* signed integer
65
+
66
+ *Default:* `30`
67
+
68
+ *Declared by:* `<confctl/nix/modules/confctl/generations.nix>`
69
+
70
+ `confctl.hostGenerations.maxAge`
71
+ Delete generations older than
72
+ `confctl.hostGenerations.maxAge` seconds from
73
+ machines. Old generations
74
+ are deleted even if `confctl.hostGenerations.max` is
75
+ not reached.
76
+
77
+ This is the default value, which can be overriden per host.
78
+
79
+ *Type:* signed integer
80
+
81
+ *Default:* `15552000`
82
+
83
+ *Declared by:* `<confctl/nix/modules/confctl/generations.nix>`
84
+
85
+ `confctl.hostGenerations.min`
86
+ The minimum number of generations to be kept on machines.
87
+
88
+ This is the default value, which can be overriden per host.
89
+
90
+ *Type:* signed integer
91
+
92
+ *Default:* `5`
93
+
94
+ *Declared by:* `<confctl/nix/modules/confctl/generations.nix>`
95
+
96
+ `confctl.list.columns`
97
+ Configure which columns should `confctl ls` show.
98
+ Names correspond to options within `cluster.<name>`
99
+ module.
100
+
101
+ *Type:* list of string
102
+
103
+ *Default:* `[
104
+ "name"
105
+ "spin"
106
+ "host.fqdn"
107
+ ]`
108
+
109
+ *Declared by:* `<confctl/nix/modules/confctl/cli.nix>`
110
+
111
+ `confctl.nix.maxJobs`
112
+ Maximum number of build jobs, passed to `nix-build`
113
+ commands.
114
+
115
+ *Type:* null or signed integer or value "auto" (singular enum)
116
+
117
+ *Default:* `null`
118
+
119
+ *Declared by:* `<confctl/nix/modules/confctl/nix.nix>`
120
+
121
+ `confctl.nix.nixPath`
122
+ List of extra paths added to environment variable
123
+ `NIX_PATH` for all `nix-build`
124
+ invokations
125
+
126
+ *Type:* list of string
127
+
128
+ *Default:* `[ ]`
129
+
130
+ *Declared by:* `<confctl/nix/modules/confctl/nix.nix>`
131
+
132
+
133
+
134
+ ## SOFTWARE PIN CHANNELS
135
+ The following `confctl` settings for software pin channels can be configured
136
+ in `configs/swpins.nix` within the deployment configuration directory:
137
+
138
+ `confctl.swpins.channels`
139
+ Software pin channels
140
+
141
+ *Type:* attribute set of attribute set of (submodule)
142
+
143
+ *Default:* `{ }`
144
+
145
+ *Declared by:* `<confctl/nix/modules/confctl/swpins.nix>`
146
+
147
+ `confctl.swpins.channels.<name>.<name>.directory`
148
+ This option has no description.
149
+
150
+ *Type:* null or (submodule)
151
+
152
+ *Default:* `null`
153
+
154
+ *Declared by:* `<confctl/nix/modules/confctl/swpins.nix>`
155
+
156
+ `confctl.swpins.channels.<name>.<name>.directory.path`
157
+ Absolute path to the directory
158
+
159
+ *Type:* string
160
+
161
+ *Default:* `null`
162
+
163
+ *Example:* `"/opt/my-swpin"`
164
+
165
+ *Declared by:* `<confctl/nix/modules/confctl/swpins.nix>`
166
+
167
+ `confctl.swpins.channels.<name>.<name>.git`
168
+ This option has no description.
169
+
170
+ *Type:* null or (submodule)
171
+
172
+ *Default:* `null`
173
+
174
+ *Declared by:* `<confctl/nix/modules/confctl/swpins.nix>`
175
+
176
+ `confctl.swpins.channels.<name>.<name>.git.fetchSubmodules`
177
+ Fetch git submodules
178
+
179
+ *Type:* boolean
180
+
181
+ *Default:* `false`
182
+
183
+ *Declared by:* `<confctl/nix/modules/confctl/swpins.nix>`
184
+
185
+ `confctl.swpins.channels.<name>.<name>.git.update.auto`
186
+ When enabled, the pin is automatically updated to
187
+ `ref` before building machines.
188
+
189
+ *Type:* boolean
190
+
191
+ *Default:* `false`
192
+
193
+ *Declared by:* `<confctl/nix/modules/confctl/swpins.nix>`
194
+
195
+ `confctl.swpins.channels.<name>.<name>.git.update.interval`
196
+ Number of seconds from the last update to trigger the next
197
+ auto-update, if auto-update is enabled.
198
+
199
+ *Type:* signed integer
200
+
201
+ *Default:* `3600`
202
+
203
+ *Declared by:* `<confctl/nix/modules/confctl/swpins.nix>`
204
+
205
+ `confctl.swpins.channels.<name>.<name>.git.update.ref`
206
+ Implicit git reference to use for both manual and automatic updates
207
+
208
+ *Type:* null or string
209
+
210
+ *Default:* `null`
211
+
212
+ *Example:* `"refs/heads/master"`
213
+
214
+ *Declared by:* `<confctl/nix/modules/confctl/swpins.nix>`
215
+
216
+ `confctl.swpins.channels.<name>.<name>.git.url`
217
+ URL of the git repository
218
+
219
+ *Type:* string
220
+
221
+ *Default:* `null`
222
+
223
+ *Example:* `"https://github.com/vpsfreecz/vpsadminos"`
224
+
225
+ *Declared by:* `<confctl/nix/modules/confctl/swpins.nix>`
226
+
227
+ `confctl.swpins.channels.<name>.<name>.git-rev`
228
+ This option has no description.
229
+
230
+ *Type:* null or (submodule)
231
+
232
+ *Default:* `null`
233
+
234
+ *Declared by:* `<confctl/nix/modules/confctl/swpins.nix>`
235
+
236
+ `confctl.swpins.channels.<name>.<name>.git-rev.fetchSubmodules`
237
+ Fetch git submodules
238
+
239
+ *Type:* boolean
240
+
241
+ *Default:* `false`
242
+
243
+ *Declared by:* `<confctl/nix/modules/confctl/swpins.nix>`
244
+
245
+ `confctl.swpins.channels.<name>.<name>.git-rev.update.auto`
246
+ When enabled, the pin is automatically updated to
247
+ `ref` before building machines.
248
+
249
+ *Type:* boolean
250
+
251
+ *Default:* `false`
252
+
253
+ *Declared by:* `<confctl/nix/modules/confctl/swpins.nix>`
254
+
255
+ `confctl.swpins.channels.<name>.<name>.git-rev.update.interval`
256
+ Number of seconds from the last update to trigger the next
257
+ auto-update, if auto-update is enabled.
258
+
259
+ *Type:* signed integer
260
+
261
+ *Default:* `3600`
262
+
263
+ *Declared by:* `<confctl/nix/modules/confctl/swpins.nix>`
264
+
265
+ `confctl.swpins.channels.<name>.<name>.git-rev.update.ref`
266
+ Implicit git reference to use for both manual and automatic updates
267
+
268
+ *Type:* null or string
269
+
270
+ *Default:* `null`
271
+
272
+ *Example:* `"refs/heads/master"`
273
+
274
+ *Declared by:* `<confctl/nix/modules/confctl/swpins.nix>`
275
+
276
+ `confctl.swpins.channels.<name>.<name>.git-rev.url`
277
+ URL of the git repository
278
+
279
+ *Type:* string
280
+
281
+ *Default:* `null`
282
+
283
+ *Example:* `"https://github.com/vpsfreecz/vpsadminos"`
284
+
285
+ *Declared by:* `<confctl/nix/modules/confctl/swpins.nix>`
286
+
287
+ `confctl.swpins.channels.<name>.<name>.type`
288
+ This option has no description.
289
+
290
+ *Type:* one of "directory", "git", "git-rev"
291
+
292
+ *Default:* `"git"`
293
+
294
+ *Declared by:* `<confctl/nix/modules/confctl/swpins.nix>`
295
+
296
+ `confctl.swpins.core.channels`
297
+ List of channels from `confctl.swpins.channels`
298
+ to use for core swpins
299
+
300
+ *Type:* list of string
301
+
302
+ *Default:* `[ ]`
303
+
304
+ *Declared by:* `<confctl/nix/modules/confctl/swpins.nix>`
305
+
306
+ `confctl.swpins.core.pins`
307
+ Core software packages used internally by confctl
308
+
309
+ It has to contain package `nixpkgs`, which is used
310
+ to resolve other software pins from channels or cluster machines.
311
+
312
+ *Type:* attribute set of (submodule)
313
+
314
+ *Default:* `{
315
+ nixpkgs = {
316
+ git-rev = {
317
+ update = {
318
+ auto = true;
319
+ interval = 2592000;
320
+ ref = "refs/heads/nixos-unstable";
321
+ };
322
+ url = "https://github.com/NixOS/nixpkgs";
323
+ };
324
+ type = "git-rev";
325
+ };
326
+ }`
327
+
328
+ *Declared by:* `<confctl/nix/modules/confctl/swpins.nix>`
329
+
330
+ `confctl.swpins.core.pins.<name>.directory`
331
+ This option has no description.
332
+
333
+ *Type:* null or (submodule)
334
+
335
+ *Default:* `null`
336
+
337
+ *Declared by:* `<confctl/nix/modules/confctl/swpins.nix>`
338
+
339
+ `confctl.swpins.core.pins.<name>.directory.path`
340
+ Absolute path to the directory
341
+
342
+ *Type:* string
343
+
344
+ *Default:* `null`
345
+
346
+ *Example:* `"/opt/my-swpin"`
347
+
348
+ *Declared by:* `<confctl/nix/modules/confctl/swpins.nix>`
349
+
350
+ `confctl.swpins.core.pins.<name>.git`
351
+ This option has no description.
352
+
353
+ *Type:* null or (submodule)
354
+
355
+ *Default:* `null`
356
+
357
+ *Declared by:* `<confctl/nix/modules/confctl/swpins.nix>`
358
+
359
+ `confctl.swpins.core.pins.<name>.git.fetchSubmodules`
360
+ Fetch git submodules
361
+
362
+ *Type:* boolean
363
+
364
+ *Default:* `false`
365
+
366
+ *Declared by:* `<confctl/nix/modules/confctl/swpins.nix>`
367
+
368
+ `confctl.swpins.core.pins.<name>.git.update.auto`
369
+ When enabled, the pin is automatically updated to
370
+ `ref` before building machines.
371
+
372
+ *Type:* boolean
373
+
374
+ *Default:* `false`
375
+
376
+ *Declared by:* `<confctl/nix/modules/confctl/swpins.nix>`
377
+
378
+ `confctl.swpins.core.pins.<name>.git.update.interval`
379
+ Number of seconds from the last update to trigger the next
380
+ auto-update, if auto-update is enabled.
381
+
382
+ *Type:* signed integer
383
+
384
+ *Default:* `3600`
385
+
386
+ *Declared by:* `<confctl/nix/modules/confctl/swpins.nix>`
387
+
388
+ `confctl.swpins.core.pins.<name>.git.update.ref`
389
+ Implicit git reference to use for both manual and automatic updates
390
+
391
+ *Type:* null or string
392
+
393
+ *Default:* `null`
394
+
395
+ *Example:* `"refs/heads/master"`
396
+
397
+ *Declared by:* `<confctl/nix/modules/confctl/swpins.nix>`
398
+
399
+ `confctl.swpins.core.pins.<name>.git.url`
400
+ URL of the git repository
401
+
402
+ *Type:* string
403
+
404
+ *Default:* `null`
405
+
406
+ *Example:* `"https://github.com/vpsfreecz/vpsadminos"`
407
+
408
+ *Declared by:* `<confctl/nix/modules/confctl/swpins.nix>`
409
+
410
+ `confctl.swpins.core.pins.<name>.git-rev`
411
+ This option has no description.
412
+
413
+ *Type:* null or (submodule)
414
+
415
+ *Default:* `null`
416
+
417
+ *Declared by:* `<confctl/nix/modules/confctl/swpins.nix>`
418
+
419
+ `confctl.swpins.core.pins.<name>.git-rev.fetchSubmodules`
420
+ Fetch git submodules
421
+
422
+ *Type:* boolean
423
+
424
+ *Default:* `false`
425
+
426
+ *Declared by:* `<confctl/nix/modules/confctl/swpins.nix>`
427
+
428
+ `confctl.swpins.core.pins.<name>.git-rev.update.auto`
429
+ When enabled, the pin is automatically updated to
430
+ `ref` before building machines.
431
+
432
+ *Type:* boolean
433
+
434
+ *Default:* `false`
435
+
436
+ *Declared by:* `<confctl/nix/modules/confctl/swpins.nix>`
437
+
438
+ `confctl.swpins.core.pins.<name>.git-rev.update.interval`
439
+ Number of seconds from the last update to trigger the next
440
+ auto-update, if auto-update is enabled.
441
+
442
+ *Type:* signed integer
443
+
444
+ *Default:* `3600`
445
+
446
+ *Declared by:* `<confctl/nix/modules/confctl/swpins.nix>`
447
+
448
+ `confctl.swpins.core.pins.<name>.git-rev.update.ref`
449
+ Implicit git reference to use for both manual and automatic updates
450
+
451
+ *Type:* null or string
452
+
453
+ *Default:* `null`
454
+
455
+ *Example:* `"refs/heads/master"`
456
+
457
+ *Declared by:* `<confctl/nix/modules/confctl/swpins.nix>`
458
+
459
+ `confctl.swpins.core.pins.<name>.git-rev.url`
460
+ URL of the git repository
461
+
462
+ *Type:* string
463
+
464
+ *Default:* `null`
465
+
466
+ *Example:* `"https://github.com/vpsfreecz/vpsadminos"`
467
+
468
+ *Declared by:* `<confctl/nix/modules/confctl/swpins.nix>`
469
+
470
+ `confctl.swpins.core.pins.<name>.type`
471
+ This option has no description.
472
+
473
+ *Type:* one of "directory", "git", "git-rev"
474
+
475
+ *Default:* `"git"`
476
+
477
+ *Declared by:* `<confctl/nix/modules/confctl/swpins.nix>`
478
+
479
+
480
+
481
+ ## MACHINE CONFIGURATION
482
+ The following options can be configured in per-machine `module.nix` files within
483
+ the deployment configuration directory, i.e. `cluster/<machine-name>/module.nix`:
484
+
485
+ `cluster.<name>.addresses`
486
+ IP addresses
487
+
488
+ *Type:* null or (submodule)
489
+
490
+ *Default:* `null`
491
+
492
+ *Declared by:* `<confctl/nix/modules/cluster>`
493
+
494
+ `cluster.<name>.addresses.primary`
495
+ Default address other machines should use to connect to this machine
496
+
497
+ Defaults to the first IPv4 address if not set
498
+
499
+ *Type:* null or (submodule)
500
+
501
+ *Default:* `null`
502
+
503
+ *Declared by:* `<confctl/nix/modules/cluster>`
504
+
505
+ `cluster.<name>.addresses.primary.address`
506
+ IPv4 address
507
+
508
+ *Type:* string
509
+
510
+ *Default:* `null`
511
+
512
+ *Declared by:* `<confctl/nix/modules/cluster>`
513
+
514
+ `cluster.<name>.addresses.primary.prefix`
515
+ Prefix length
516
+
517
+ *Type:* positive integer, meaning >0
518
+
519
+ *Default:* `null`
520
+
521
+ *Declared by:* `<confctl/nix/modules/cluster>`
522
+
523
+ `cluster.<name>.addresses.primary.string`
524
+ Address with prefix as string
525
+
526
+ *Type:* null or string
527
+
528
+ *Default:* `null`
529
+
530
+ *Declared by:* `<confctl/nix/modules/cluster>`
531
+
532
+ `cluster.<name>.addresses.v4`
533
+ List of IPv4 addresses this machine responds to
534
+
535
+ *Type:* list of (submodule)
536
+
537
+ *Default:* `[ ]`
538
+
539
+ *Declared by:* `<confctl/nix/modules/cluster>`
540
+
541
+ `cluster.<name>.addresses.v4.*.address`
542
+ IPv4 address
543
+
544
+ *Type:* string
545
+
546
+ *Default:* `null`
547
+
548
+ *Declared by:* `<confctl/nix/modules/cluster>`
549
+
550
+ `cluster.<name>.addresses.v4.*.prefix`
551
+ Prefix length
552
+
553
+ *Type:* positive integer, meaning >0
554
+
555
+ *Default:* `null`
556
+
557
+ *Declared by:* `<confctl/nix/modules/cluster>`
558
+
559
+ `cluster.<name>.addresses.v4.*.string`
560
+ Address with prefix as string
561
+
562
+ *Type:* null or string
563
+
564
+ *Default:* `null`
565
+
566
+ *Declared by:* `<confctl/nix/modules/cluster>`
567
+
568
+ `cluster.<name>.addresses.v6`
569
+ List of IPv6 addresses this machine responds to
570
+
571
+ *Type:* list of (submodule)
572
+
573
+ *Default:* `[ ]`
574
+
575
+ *Declared by:* `<confctl/nix/modules/cluster>`
576
+
577
+ `cluster.<name>.addresses.v6.*.address`
578
+ IPv6 address
579
+
580
+ *Type:* string
581
+
582
+ *Default:* `null`
583
+
584
+ *Declared by:* `<confctl/nix/modules/cluster>`
585
+
586
+ `cluster.<name>.addresses.v6.*.prefix`
587
+ Prefix length
588
+
589
+ *Type:* positive integer, meaning >0
590
+
591
+ *Default:* `null`
592
+
593
+ *Declared by:* `<confctl/nix/modules/cluster>`
594
+
595
+ `cluster.<name>.addresses.v6.*.string`
596
+ Address with prefix as string
597
+
598
+ *Type:* null or string
599
+
600
+ *Default:* `null`
601
+
602
+ *Declared by:* `<confctl/nix/modules/cluster>`
603
+
604
+ `cluster.<name>.buildGenerations.max`
605
+ The maximum number of build generations to be kept on the build
606
+ machine.
607
+
608
+ *Type:* null or signed integer
609
+
610
+ *Default:* `null`
611
+
612
+ *Declared by:* `<confctl/nix/modules/cluster>`
613
+
614
+ `cluster.<name>.buildGenerations.maxAge`
615
+ Delete build generations older than
616
+ `cluster.<name>.buildGenerations.maxAge`
617
+ seconds from the build machine. Old generations are deleted even
618
+ if `cluster.<name>.buildGenerations.max` is
619
+ not reached.
620
+
621
+ *Type:* null or signed integer
622
+
623
+ *Default:* `null`
624
+
625
+ *Declared by:* `<confctl/nix/modules/cluster>`
626
+
627
+ `cluster.<name>.buildGenerations.min`
628
+ The minimum number of build generations to be kept on the build
629
+ machine.
630
+
631
+ *Type:* null or signed integer
632
+
633
+ *Default:* `null`
634
+
635
+ *Declared by:* `<confctl/nix/modules/cluster>`
636
+
637
+ `cluster.<name>.healthChecks.builderCommands`
638
+ Check commands run on the build machine
639
+
640
+ *Type:* list of (submodule)
641
+
642
+ *Default:* `[ ]`
643
+
644
+ *Example:* `[
645
+ { description = "ping"; command = [ "ping" "-c1" "{host.fqdn}" ]; }
646
+ ]`
647
+
648
+ *Declared by:* `<confctl/nix/modules/cluster>`
649
+
650
+ `cluster.<name>.healthChecks.builderCommands.*.command`
651
+ Command and its arguments
652
+
653
+ It is possible to access machine attributes as from CLI using curly
654
+ brackets. For example, {host.fqdn} would be replaced by machine FQDN.
655
+ See confctl ls -L for a list of available attributes.
656
+
657
+ *Type:* list of string
658
+
659
+ *Default:* `null`
660
+
661
+ *Declared by:* `<confctl/nix/modules/cluster>`
662
+
663
+ `cluster.<name>.healthChecks.builderCommands.*.cooldown`
664
+ Number of seconds in between check attempts
665
+
666
+ *Type:* unsigned integer, meaning >=0
667
+
668
+ *Default:* `3`
669
+
670
+ *Declared by:* `<confctl/nix/modules/cluster>`
671
+
672
+ `cluster.<name>.healthChecks.builderCommands.*.description`
673
+ Command description
674
+
675
+ *Type:* string
676
+
677
+ *Default:* `""`
678
+
679
+ *Declared by:* `<confctl/nix/modules/cluster>`
680
+
681
+ `cluster.<name>.healthChecks.builderCommands.*.exitStatus`
682
+ Expected exit status
683
+
684
+ *Type:* unsigned integer, meaning >=0
685
+
686
+ *Default:* `0`
687
+
688
+ *Declared by:* `<confctl/nix/modules/cluster>`
689
+
690
+ `cluster.<name>.healthChecks.builderCommands.*.standardError.exclude`
691
+ String that must not be included in standard error
692
+
693
+ *Type:* list of string
694
+
695
+ *Default:* `[ ]`
696
+
697
+ *Declared by:* `<confctl/nix/modules/cluster>`
698
+
699
+ `cluster.<name>.healthChecks.builderCommands.*.standardError.include`
700
+ String that must be included in standard error
701
+
702
+ *Type:* list of string
703
+
704
+ *Default:* `[ ]`
705
+
706
+ *Declared by:* `<confctl/nix/modules/cluster>`
707
+
708
+ `cluster.<name>.healthChecks.builderCommands.*.standardError.match`
709
+ Standard error must match this string
710
+
711
+ *Type:* null or string
712
+
713
+ *Default:* `null`
714
+
715
+ *Declared by:* `<confctl/nix/modules/cluster>`
716
+
717
+ `cluster.<name>.healthChecks.builderCommands.*.standardOutput.exclude`
718
+ Strings that must not be included in standard output
719
+
720
+ *Type:* list of string
721
+
722
+ *Default:* `[ ]`
723
+
724
+ *Declared by:* `<confctl/nix/modules/cluster>`
725
+
726
+ `cluster.<name>.healthChecks.builderCommands.*.standardOutput.include`
727
+ Strings that must be included in standard output
728
+
729
+ *Type:* list of string
730
+
731
+ *Default:* `[ ]`
732
+
733
+ *Declared by:* `<confctl/nix/modules/cluster>`
734
+
735
+ `cluster.<name>.healthChecks.builderCommands.*.standardOutput.match`
736
+ Standard output must match this string
737
+
738
+ *Type:* null or string
739
+
740
+ *Default:* `null`
741
+
742
+ *Declared by:* `<confctl/nix/modules/cluster>`
743
+
744
+ `cluster.<name>.healthChecks.builderCommands.*.timeout`
745
+ Max number of seconds to wait for the check to pass
746
+
747
+ *Type:* unsigned integer, meaning >=0
748
+
749
+ *Default:* `60`
750
+
751
+ *Declared by:* `<confctl/nix/modules/cluster>`
752
+
753
+ `cluster.<name>.healthChecks.machineCommands`
754
+ Check commands run on the target machine
755
+
756
+ Note that the commands have to be available on the machine.
757
+
758
+ *Type:* list of (submodule)
759
+
760
+ *Default:* `[ ]`
761
+
762
+ *Example:* `[
763
+ { description = "curl"; command = [ "curl" "-s" "http://localhost:80" ]; }
764
+ ]`
765
+
766
+ *Declared by:* `<confctl/nix/modules/cluster>`
767
+
768
+ `cluster.<name>.healthChecks.machineCommands.*.command`
769
+ Command and its arguments
770
+
771
+ It is possible to access machine attributes as from CLI using curly
772
+ brackets. For example, {host.fqdn} would be replaced by machine FQDN.
773
+ See confctl ls -L for a list of available attributes.
774
+
775
+ *Type:* list of string
776
+
777
+ *Default:* `null`
778
+
779
+ *Declared by:* `<confctl/nix/modules/cluster>`
780
+
781
+ `cluster.<name>.healthChecks.machineCommands.*.cooldown`
782
+ Number of seconds in between check attempts
783
+
784
+ *Type:* unsigned integer, meaning >=0
785
+
786
+ *Default:* `3`
787
+
788
+ *Declared by:* `<confctl/nix/modules/cluster>`
789
+
790
+ `cluster.<name>.healthChecks.machineCommands.*.description`
791
+ Command description
792
+
793
+ *Type:* string
794
+
795
+ *Default:* `""`
796
+
797
+ *Declared by:* `<confctl/nix/modules/cluster>`
798
+
799
+ `cluster.<name>.healthChecks.machineCommands.*.exitStatus`
800
+ Expected exit status
801
+
802
+ *Type:* unsigned integer, meaning >=0
803
+
804
+ *Default:* `0`
805
+
806
+ *Declared by:* `<confctl/nix/modules/cluster>`
807
+
808
+ `cluster.<name>.healthChecks.machineCommands.*.standardError.exclude`
809
+ String that must not be included in standard error
810
+
811
+ *Type:* list of string
812
+
813
+ *Default:* `[ ]`
814
+
815
+ *Declared by:* `<confctl/nix/modules/cluster>`
816
+
817
+ `cluster.<name>.healthChecks.machineCommands.*.standardError.include`
818
+ String that must be included in standard error
819
+
820
+ *Type:* list of string
821
+
822
+ *Default:* `[ ]`
823
+
824
+ *Declared by:* `<confctl/nix/modules/cluster>`
825
+
826
+ `cluster.<name>.healthChecks.machineCommands.*.standardError.match`
827
+ Standard error must match this string
828
+
829
+ *Type:* null or string
830
+
831
+ *Default:* `null`
832
+
833
+ *Declared by:* `<confctl/nix/modules/cluster>`
834
+
835
+ `cluster.<name>.healthChecks.machineCommands.*.standardOutput.exclude`
836
+ Strings that must not be included in standard output
837
+
838
+ *Type:* list of string
839
+
840
+ *Default:* `[ ]`
841
+
842
+ *Declared by:* `<confctl/nix/modules/cluster>`
843
+
844
+ `cluster.<name>.healthChecks.machineCommands.*.standardOutput.include`
845
+ Strings that must be included in standard output
846
+
847
+ *Type:* list of string
848
+
849
+ *Default:* `[ ]`
850
+
851
+ *Declared by:* `<confctl/nix/modules/cluster>`
852
+
853
+ `cluster.<name>.healthChecks.machineCommands.*.standardOutput.match`
854
+ Standard output must match this string
855
+
856
+ *Type:* null or string
857
+
858
+ *Default:* `null`
859
+
860
+ *Declared by:* `<confctl/nix/modules/cluster>`
861
+
862
+ `cluster.<name>.healthChecks.machineCommands.*.timeout`
863
+ Max number of seconds to wait for the check to pass
864
+
865
+ *Type:* unsigned integer, meaning >=0
866
+
867
+ *Default:* `60`
868
+
869
+ *Declared by:* `<confctl/nix/modules/cluster>`
870
+
871
+ `cluster.<name>.healthChecks.systemd.enable`
872
+ Enable systemd checks, enabled by default
873
+
874
+ *Type:* boolean
875
+
876
+ *Default:* `true`
877
+
878
+ *Declared by:* `<confctl/nix/modules/cluster>`
879
+
880
+ `cluster.<name>.healthChecks.systemd.systemProperties`
881
+ Check systemd manager properties reported by systemctl show
882
+
883
+ *Type:* list of (submodule)
884
+
885
+ *Default:* `[
886
+ {
887
+ property = "SystemState";
888
+ value = "running";
889
+ }
890
+ ]`
891
+
892
+ *Declared by:* `<confctl/nix/modules/cluster>`
893
+
894
+ `cluster.<name>.healthChecks.systemd.systemProperties.*.cooldown`
895
+ Number of seconds in between check attempts
896
+
897
+ *Type:* unsigned integer, meaning >=0
898
+
899
+ *Default:* `3`
900
+
901
+ *Declared by:* `<confctl/nix/modules/cluster>`
902
+
903
+ `cluster.<name>.healthChecks.systemd.systemProperties.*.property`
904
+ systemd property name
905
+
906
+ *Type:* string
907
+
908
+ *Default:* `null`
909
+
910
+ *Declared by:* `<confctl/nix/modules/cluster>`
911
+
912
+ `cluster.<name>.healthChecks.systemd.systemProperties.*.timeout`
913
+ Max number of seconds to wait for the check to pass
914
+
915
+ *Type:* unsigned integer, meaning >=0
916
+
917
+ *Default:* `60`
918
+
919
+ *Declared by:* `<confctl/nix/modules/cluster>`
920
+
921
+ `cluster.<name>.healthChecks.systemd.systemProperties.*.value`
922
+ value to be checked
923
+
924
+ *Type:* string
925
+
926
+ *Default:* `null`
927
+
928
+ *Declared by:* `<confctl/nix/modules/cluster>`
929
+
930
+ `cluster.<name>.healthChecks.systemd.unitProperties`
931
+ Check systemd unit properties reported by systemctl show <unit>
932
+
933
+ *Type:* attribute set of list of (submodule)
934
+
935
+ *Default:* `{ }`
936
+
937
+ *Example:* `{
938
+ "firewall.service" = [
939
+ { property = "ActiveState"; value = "active"; }
940
+ ];
941
+ }`
942
+
943
+ *Declared by:* `<confctl/nix/modules/cluster>`
944
+
945
+ `cluster.<name>.healthChecks.systemd.unitProperties.<name>.*.cooldown`
946
+ Number of seconds in between check attempts
947
+
948
+ *Type:* unsigned integer, meaning >=0
949
+
950
+ *Default:* `3`
951
+
952
+ *Declared by:* `<confctl/nix/modules/cluster>`
953
+
954
+ `cluster.<name>.healthChecks.systemd.unitProperties.<name>.*.property`
955
+ systemd property name
956
+
957
+ *Type:* string
958
+
959
+ *Default:* `null`
960
+
961
+ *Declared by:* `<confctl/nix/modules/cluster>`
962
+
963
+ `cluster.<name>.healthChecks.systemd.unitProperties.<name>.*.timeout`
964
+ Max number of seconds to wait for the check to pass
965
+
966
+ *Type:* unsigned integer, meaning >=0
967
+
968
+ *Default:* `60`
969
+
970
+ *Declared by:* `<confctl/nix/modules/cluster>`
971
+
972
+ `cluster.<name>.healthChecks.systemd.unitProperties.<name>.*.value`
973
+ value to be checked
974
+
975
+ *Type:* string
976
+
977
+ *Default:* `null`
978
+
979
+ *Declared by:* `<confctl/nix/modules/cluster>`
980
+
981
+ `cluster.<name>.host`
982
+ This option has no description.
983
+
984
+ *Type:* null or (submodule)
985
+
986
+ *Default:* `null`
987
+
988
+ *Declared by:* `<confctl/nix/modules/cluster>`
989
+
990
+ `cluster.<name>.host.domain`
991
+ Host domain
992
+
993
+ *Type:* null or string
994
+
995
+ *Default:* `null`
996
+
997
+ *Declared by:* `<confctl/nix/modules/cluster>`
998
+
999
+ `cluster.<name>.host.fqdn`
1000
+ Host FQDN
1001
+
1002
+ *Type:* null or string
1003
+
1004
+ *Default:* `null`
1005
+
1006
+ *Declared by:* `<confctl/nix/modules/cluster>`
1007
+
1008
+ `cluster.<name>.host.fullDomain`
1009
+ Domain including location, i.e. FQDN without host name
1010
+
1011
+ *Type:* null or string
1012
+
1013
+ *Default:* `null`
1014
+
1015
+ *Declared by:* `<confctl/nix/modules/cluster>`
1016
+
1017
+ `cluster.<name>.host.location`
1018
+ Host location domain
1019
+
1020
+ *Type:* null or string
1021
+
1022
+ *Default:* `null`
1023
+
1024
+ *Declared by:* `<confctl/nix/modules/cluster>`
1025
+
1026
+ `cluster.<name>.host.name`
1027
+ Host name
1028
+
1029
+ *Type:* null or string
1030
+
1031
+ *Default:* `null`
1032
+
1033
+ *Declared by:* `<confctl/nix/modules/cluster>`
1034
+
1035
+ `cluster.<name>.host.target`
1036
+ Address/host to which the configuration is deployed to
1037
+
1038
+ *Type:* null or string
1039
+
1040
+ *Default:* `null`
1041
+
1042
+ *Declared by:* `<confctl/nix/modules/cluster>`
1043
+
1044
+ `cluster.<name>.hostGenerations.collectGarbage`
1045
+ Run nix-collect-garbage
1046
+
1047
+ *Type:* null or boolean
1048
+
1049
+ *Default:* `null`
1050
+
1051
+ *Declared by:* `<confctl/nix/modules/cluster>`
1052
+
1053
+ `cluster.<name>.hostGenerations.max`
1054
+ The maximum number of generations to be kept on the machine.
1055
+
1056
+ *Type:* null or signed integer
1057
+
1058
+ *Default:* `null`
1059
+
1060
+ *Declared by:* `<confctl/nix/modules/cluster>`
1061
+
1062
+ `cluster.<name>.hostGenerations.maxAge`
1063
+ Delete generations older than
1064
+ `cluster.<name>.hostGenerations.maxAge`
1065
+ seconds from the machine. Old generations are deleted even
1066
+ if `cluster.<name>.hostGenerations.max` is
1067
+ not reached.
1068
+
1069
+ *Type:* null or signed integer
1070
+
1071
+ *Default:* `null`
1072
+
1073
+ *Declared by:* `<confctl/nix/modules/cluster>`
1074
+
1075
+ `cluster.<name>.hostGenerations.min`
1076
+ The minimum number of generations to be kept on the machine.
1077
+
1078
+ *Type:* null or signed integer
1079
+
1080
+ *Default:* `null`
1081
+
1082
+ *Declared by:* `<confctl/nix/modules/cluster>`
1083
+
1084
+ `cluster.<name>.labels`
1085
+ Optional user-defined labels to classify the machine
1086
+
1087
+ *Type:* attribute set
1088
+
1089
+ *Default:* `{ }`
1090
+
1091
+ *Declared by:* `<confctl/nix/modules/cluster>`
1092
+
1093
+ `cluster.<name>.managed`
1094
+ Determines whether the machine is managed using confctl or not
1095
+
1096
+ By default, NixOS and vpsAdminOS machines are managed by confctl.
1097
+
1098
+ *Type:* null or boolean
1099
+
1100
+ *Default:* `null`
1101
+
1102
+ *Declared by:* `<confctl/nix/modules/cluster>`
1103
+
1104
+ `cluster.<name>.netboot.enable`
1105
+ Whether to enable Include this system on pxe servers.
1106
+
1107
+ *Type:* boolean
1108
+
1109
+ *Default:* `false`
1110
+
1111
+ *Example:* `true`
1112
+
1113
+ *Declared by:* `<confctl/nix/modules/cluster>`
1114
+
1115
+ `cluster.<name>.netboot.macs`
1116
+ List of MAC addresses for iPXE node auto-detection
1117
+
1118
+ *Type:* list of string
1119
+
1120
+ *Default:* `[ ]`
1121
+
1122
+ *Declared by:* `<confctl/nix/modules/cluster>`
1123
+
1124
+ `cluster.<name>.nix.nixPath`
1125
+ List of extra paths added to environment variable
1126
+ `NIX_PATH` for `nix-build`
1127
+
1128
+ *Type:* list of string
1129
+
1130
+ *Default:* `[ ]`
1131
+
1132
+ *Declared by:* `<confctl/nix/modules/cluster>`
1133
+
1134
+ `cluster.<name>.spin`
1135
+ OS type
1136
+
1137
+ *Type:* one of "openvz", "nixos", "vpsadminos", "other"
1138
+
1139
+ *Default:* `null`
1140
+
1141
+ *Declared by:* `<confctl/nix/modules/cluster>`
1142
+
1143
+ `cluster.<name>.swpins.channels`
1144
+ List of channels from `confctl.swpins.channels`
1145
+ to use on this machine
1146
+
1147
+ *Type:* list of string
1148
+
1149
+ *Default:* `[ ]`
1150
+
1151
+ *Declared by:* `<confctl/nix/modules/cluster>`
1152
+
1153
+ `cluster.<name>.swpins.pins`
1154
+ List of swpins for this machine, which can supplement or
1155
+ override swpins from configured channels
1156
+
1157
+ *Type:* attribute set of (submodule)
1158
+
1159
+ *Default:* `{ }`
1160
+
1161
+ *Declared by:* `<confctl/nix/modules/cluster>`
1162
+
1163
+ `cluster.<name>.swpins.pins.<name>.directory`
1164
+ This option has no description.
1165
+
1166
+ *Type:* null or (submodule)
1167
+
1168
+ *Default:* `null`
1169
+
1170
+ *Declared by:* `<confctl/nix/modules/cluster>`
1171
+
1172
+ `cluster.<name>.swpins.pins.<name>.directory.path`
1173
+ Absolute path to the directory
1174
+
1175
+ *Type:* string
1176
+
1177
+ *Default:* `null`
1178
+
1179
+ *Example:* `"/opt/my-swpin"`
1180
+
1181
+ *Declared by:* `<confctl/nix/modules/cluster>`
1182
+
1183
+ `cluster.<name>.swpins.pins.<name>.git`
1184
+ This option has no description.
1185
+
1186
+ *Type:* null or (submodule)
1187
+
1188
+ *Default:* `null`
1189
+
1190
+ *Declared by:* `<confctl/nix/modules/cluster>`
1191
+
1192
+ `cluster.<name>.swpins.pins.<name>.git.fetchSubmodules`
1193
+ Fetch git submodules
1194
+
1195
+ *Type:* boolean
1196
+
1197
+ *Default:* `false`
1198
+
1199
+ *Declared by:* `<confctl/nix/modules/cluster>`
1200
+
1201
+ `cluster.<name>.swpins.pins.<name>.git.update.auto`
1202
+ When enabled, the pin is automatically updated to
1203
+ `ref` before building machines.
1204
+
1205
+ *Type:* boolean
1206
+
1207
+ *Default:* `false`
1208
+
1209
+ *Declared by:* `<confctl/nix/modules/cluster>`
1210
+
1211
+ `cluster.<name>.swpins.pins.<name>.git.update.interval`
1212
+ Number of seconds from the last update to trigger the next
1213
+ auto-update, if auto-update is enabled.
1214
+
1215
+ *Type:* signed integer
1216
+
1217
+ *Default:* `3600`
1218
+
1219
+ *Declared by:* `<confctl/nix/modules/cluster>`
1220
+
1221
+ `cluster.<name>.swpins.pins.<name>.git.update.ref`
1222
+ Implicit git reference to use for both manual and automatic updates
1223
+
1224
+ *Type:* null or string
1225
+
1226
+ *Default:* `null`
1227
+
1228
+ *Example:* `"refs/heads/master"`
1229
+
1230
+ *Declared by:* `<confctl/nix/modules/cluster>`
1231
+
1232
+ `cluster.<name>.swpins.pins.<name>.git.url`
1233
+ URL of the git repository
1234
+
1235
+ *Type:* string
1236
+
1237
+ *Default:* `null`
1238
+
1239
+ *Example:* `"https://github.com/vpsfreecz/vpsadminos"`
1240
+
1241
+ *Declared by:* `<confctl/nix/modules/cluster>`
1242
+
1243
+ `cluster.<name>.swpins.pins.<name>.git-rev`
1244
+ This option has no description.
1245
+
1246
+ *Type:* null or (submodule)
1247
+
1248
+ *Default:* `null`
1249
+
1250
+ *Declared by:* `<confctl/nix/modules/cluster>`
1251
+
1252
+ `cluster.<name>.swpins.pins.<name>.git-rev.fetchSubmodules`
1253
+ Fetch git submodules
1254
+
1255
+ *Type:* boolean
1256
+
1257
+ *Default:* `false`
1258
+
1259
+ *Declared by:* `<confctl/nix/modules/cluster>`
1260
+
1261
+ `cluster.<name>.swpins.pins.<name>.git-rev.update.auto`
1262
+ When enabled, the pin is automatically updated to
1263
+ `ref` before building machines.
1264
+
1265
+ *Type:* boolean
1266
+
1267
+ *Default:* `false`
1268
+
1269
+ *Declared by:* `<confctl/nix/modules/cluster>`
1270
+
1271
+ `cluster.<name>.swpins.pins.<name>.git-rev.update.interval`
1272
+ Number of seconds from the last update to trigger the next
1273
+ auto-update, if auto-update is enabled.
1274
+
1275
+ *Type:* signed integer
1276
+
1277
+ *Default:* `3600`
1278
+
1279
+ *Declared by:* `<confctl/nix/modules/cluster>`
1280
+
1281
+ `cluster.<name>.swpins.pins.<name>.git-rev.update.ref`
1282
+ Implicit git reference to use for both manual and automatic updates
1283
+
1284
+ *Type:* null or string
1285
+
1286
+ *Default:* `null`
1287
+
1288
+ *Example:* `"refs/heads/master"`
1289
+
1290
+ *Declared by:* `<confctl/nix/modules/cluster>`
1291
+
1292
+ `cluster.<name>.swpins.pins.<name>.git-rev.url`
1293
+ URL of the git repository
1294
+
1295
+ *Type:* string
1296
+
1297
+ *Default:* `null`
1298
+
1299
+ *Example:* `"https://github.com/vpsfreecz/vpsadminos"`
1300
+
1301
+ *Declared by:* `<confctl/nix/modules/cluster>`
1302
+
1303
+ `cluster.<name>.swpins.pins.<name>.type`
1304
+ This option has no description.
1305
+
1306
+ *Type:* one of "directory", "git", "git-rev"
1307
+
1308
+ *Default:* `"git"`
1309
+
1310
+ *Declared by:* `<confctl/nix/modules/cluster>`
1311
+
1312
+ `cluster.<name>.tags`
1313
+ Optional user-defined tags to classify the machine
1314
+
1315
+ *Type:* list of string
1316
+
1317
+ *Default:* `[ ]`
1318
+
1319
+ *Declared by:* `<confctl/nix/modules/cluster>`
1320
+
1321
+
1322
+
1323
+ ## SERVICES
1324
+ The following options can be configured in per-machine `config.nix` files within
1325
+ the deployment configuration directory, i.e. `cluster/<machine-name>/config.nix`,
1326
+ or any other imported Nix file. These options are added by `confctl` in addition
1327
+ to options from `NixOS` or `vpsAdminOS`.
1328
+
1329
+
1330
+
1331
+ ## SEE ALSO
1332
+ confctl(8)
1333
+
1334
+ ## BUGS
1335
+ Report bugs to https://github.com/vpsfreecz/confctl/issues.
1336
+
1337
+ ## ABOUT
1338
+ `confctl` was originally developed for the purposes of
1339
+ [vpsFree.cz](https://vpsfree.org) and its cluster
1340
+ [configuration](https://github.com/vpsfreecz/vpsfree-cz-configuration).