confctl 1.0.0

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