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