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,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]\&.