-
Notifications
You must be signed in to change notification settings - Fork 457
/
v1alpha1_types_doc.go
4040 lines (3794 loc) · 169 KB
/
v1alpha1_types_doc.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
// Code generated by hack/docgen tool. DO NOT EDIT.
package v1alpha1
import (
"github.com/siderolabs/go-pointer"
"github.com/siderolabs/talos/pkg/machinery/config/encoder"
"github.com/siderolabs/talos/pkg/machinery/constants"
)
func (Config) Doc() *encoder.Doc {
doc := &encoder.Doc{
Type: "Config",
Comments: [3]string{"" /* encoder.HeadComment */, "Config defines the v1alpha1.Config Talos machine configuration document." /* encoder.LineComment */, "" /* encoder.FootComment */},
Description: "Config defines the v1alpha1.Config Talos machine configuration document.",
Fields: []encoder.Doc{
{
Name: "version",
Type: "string",
Note: "",
Description: "Indicates the schema used to decode the contents.",
Comments: [3]string{"" /* encoder.HeadComment */, "Indicates the schema used to decode the contents." /* encoder.LineComment */, "" /* encoder.FootComment */},
Values: []string{
"v1alpha1",
},
},
{
Name: "debug",
Type: "bool",
Note: "",
Description: "Enable verbose logging to the console.\nAll system containers logs will flow into serial console.\n\n**Note:** To avoid breaking Talos bootstrap flow enable this option only if serial console can handle high message throughput.",
Comments: [3]string{"" /* encoder.HeadComment */, "Enable verbose logging to the console." /* encoder.LineComment */, "" /* encoder.FootComment */},
Values: []string{
"true",
"yes",
"false",
"no",
},
},
{},
{
Name: "machine",
Type: "MachineConfig",
Note: "",
Description: "Provides machine specific configuration options.",
Comments: [3]string{"" /* encoder.HeadComment */, "Provides machine specific configuration options." /* encoder.LineComment */, "" /* encoder.FootComment */},
},
{
Name: "cluster",
Type: "ClusterConfig",
Note: "",
Description: "Provides cluster specific configuration options.",
Comments: [3]string{"" /* encoder.HeadComment */, "Provides cluster specific configuration options." /* encoder.LineComment */, "" /* encoder.FootComment */},
},
},
}
doc.AddExample("", configExample())
return doc
}
func (MachineConfig) Doc() *encoder.Doc {
doc := &encoder.Doc{
Type: "MachineConfig",
Comments: [3]string{"" /* encoder.HeadComment */, "MachineConfig represents the machine-specific config values." /* encoder.LineComment */, "" /* encoder.FootComment */},
Description: "MachineConfig represents the machine-specific config values.",
AppearsIn: []encoder.Appearance{
{
TypeName: "Config",
FieldName: "machine",
},
},
Fields: []encoder.Doc{
{
Name: "type",
Type: "string",
Note: "",
Description: "Defines the role of the machine within the cluster.\n\n**Control Plane**\n\nControl Plane node type designates the node as a control plane member.\nThis means it will host etcd along with the Kubernetes controlplane components such as API Server, Controller Manager, Scheduler.\n\n**Worker**\n\nWorker node type designates the node as a worker node.\nThis means it will be an available compute node for scheduling workloads.\n\nThis node type was previously known as \"join\"; that value is still supported but deprecated.",
Comments: [3]string{"" /* encoder.HeadComment */, "Defines the role of the machine within the cluster." /* encoder.LineComment */, "" /* encoder.FootComment */},
Values: []string{
"controlplane",
"worker",
},
},
{
Name: "token",
Type: "string",
Note: "Warning: It is important to ensure that this token is correct since a machine's certificate has a short TTL by default.\n",
Description: "The `token` is used by a machine to join the PKI of the cluster.\nUsing this token, a machine will create a certificate signing request (CSR), and request a certificate that will be used as its' identity.",
Comments: [3]string{"" /* encoder.HeadComment */, "The `token` is used by a machine to join the PKI of the cluster." /* encoder.LineComment */, "" /* encoder.FootComment */},
},
{
Name: "ca",
Type: "PEMEncodedCertificateAndKey",
Note: "",
Description: "The root certificate authority of the PKI.\nIt is composed of a base64 encoded `crt` and `key`.",
Comments: [3]string{"" /* encoder.HeadComment */, "The root certificate authority of the PKI." /* encoder.LineComment */, "" /* encoder.FootComment */},
},
{
Name: "certSANs",
Type: "[]string",
Note: "",
Description: "Extra certificate subject alternative names for the machine's certificate.\nBy default, all non-loopback interface IPs are automatically added to the certificate's SANs.",
Comments: [3]string{"" /* encoder.HeadComment */, "Extra certificate subject alternative names for the machine's certificate." /* encoder.LineComment */, "" /* encoder.FootComment */},
},
{
Name: "controlPlane",
Type: "MachineControlPlaneConfig",
Note: "",
Description: "Provides machine specific control plane configuration options.",
Comments: [3]string{"" /* encoder.HeadComment */, "Provides machine specific control plane configuration options." /* encoder.LineComment */, "" /* encoder.FootComment */},
},
{
Name: "kubelet",
Type: "KubeletConfig",
Note: "",
Description: "Used to provide additional options to the kubelet.",
Comments: [3]string{"" /* encoder.HeadComment */, "Used to provide additional options to the kubelet." /* encoder.LineComment */, "" /* encoder.FootComment */},
},
{
Name: "pods",
Type: "[]Unstructured",
Note: "",
Description: "Used to provide static pod definitions to be run by the kubelet directly bypassing the kube-apiserver.\n\nStatic pods can be used to run components which should be started before the Kubernetes control plane is up.\nTalos doesn't validate the pod definition.\nUpdates to this field can be applied without a reboot.\n\nSee https://kubernetes.io/docs/tasks/configure-pod-container/static-pod/.",
Comments: [3]string{"" /* encoder.HeadComment */, "Used to provide static pod definitions to be run by the kubelet directly bypassing the kube-apiserver." /* encoder.LineComment */, "" /* encoder.FootComment */},
},
{
Name: "network",
Type: "NetworkConfig",
Note: "",
Description: "Provides machine specific network configuration options.",
Comments: [3]string{"" /* encoder.HeadComment */, "Provides machine specific network configuration options." /* encoder.LineComment */, "" /* encoder.FootComment */},
},
{
Name: "disks",
Type: "[]MachineDisk",
Note: "Note: `size` is in units of bytes.\n",
Description: "Used to partition, format and mount additional disks.\nSince the rootfs is read only with the exception of `/var`, mounts are only valid if they are under `/var`.\nNote that the partitioning and formatting is done only once, if and only if no existing XFS partitions are found.\nIf `size:` is omitted, the partition is sized to occupy the full disk.",
Comments: [3]string{"" /* encoder.HeadComment */, "Used to partition, format and mount additional disks." /* encoder.LineComment */, "" /* encoder.FootComment */},
},
{
Name: "install",
Type: "InstallConfig",
Note: "",
Description: "Used to provide instructions for installations.\n\nNote that this configuration section gets silently ignored by Talos images that are considered pre-installed.\nTo make sure Talos installs according to the provided configuration, Talos should be booted with ISO or PXE-booted.",
Comments: [3]string{"" /* encoder.HeadComment */, "Used to provide instructions for installations." /* encoder.LineComment */, "" /* encoder.FootComment */},
},
{
Name: "files",
Type: "[]MachineFile",
Note: "Note: The specified `path` is relative to `/var`.\n",
Description: "Allows the addition of user specified files.\nThe value of `op` can be `create`, `overwrite`, or `append`.\nIn the case of `create`, `path` must not exist.\nIn the case of `overwrite`, and `append`, `path` must be a valid file.\nIf an `op` value of `append` is used, the existing file will be appended.\nNote that the file contents are not required to be base64 encoded.",
Comments: [3]string{"" /* encoder.HeadComment */, "Allows the addition of user specified files." /* encoder.LineComment */, "" /* encoder.FootComment */},
},
{
Name: "env",
Type: "Env",
Note: "",
Description: "The `env` field allows for the addition of environment variables.\nAll environment variables are set on PID 1 in addition to every service.",
Comments: [3]string{"" /* encoder.HeadComment */, "The `env` field allows for the addition of environment variables." /* encoder.LineComment */, "" /* encoder.FootComment */},
Values: []string{
"`GRPC_GO_LOG_VERBOSITY_LEVEL`",
"`GRPC_GO_LOG_SEVERITY_LEVEL`",
"`http_proxy`",
"`https_proxy`",
"`no_proxy`",
},
},
{
Name: "time",
Type: "TimeConfig",
Note: "",
Description: "Used to configure the machine's time settings.",
Comments: [3]string{"" /* encoder.HeadComment */, "Used to configure the machine's time settings." /* encoder.LineComment */, "" /* encoder.FootComment */},
},
{
Name: "sysctls",
Type: "map[string]string",
Note: "",
Description: "Used to configure the machine's sysctls.",
Comments: [3]string{"" /* encoder.HeadComment */, "Used to configure the machine's sysctls." /* encoder.LineComment */, "" /* encoder.FootComment */},
},
{
Name: "sysfs",
Type: "map[string]string",
Note: "",
Description: "Used to configure the machine's sysfs.",
Comments: [3]string{"" /* encoder.HeadComment */, "Used to configure the machine's sysfs." /* encoder.LineComment */, "" /* encoder.FootComment */},
},
{
Name: "registries",
Type: "RegistriesConfig",
Note: "",
Description: "Used to configure the machine's container image registry mirrors.\n\nAutomatically generates matching CRI configuration for registry mirrors.\n\nThe `mirrors` section allows to redirect requests for images to a non-default registry,\nwhich might be a local registry or a caching mirror.\n\nThe `config` section provides a way to authenticate to the registry with TLS client\nidentity, provide registry CA, or authentication information.\nAuthentication information has same meaning with the corresponding field in [`.docker/config.json`](https://docs.docker.com/engine/api/v1.41/#section/Authentication).\n\nSee also matching configuration for [CRI containerd plugin](https://github.com/containerd/cri/blob/master/docs/registry.md).",
Comments: [3]string{"" /* encoder.HeadComment */, "Used to configure the machine's container image registry mirrors." /* encoder.LineComment */, "" /* encoder.FootComment */},
},
{
Name: "systemDiskEncryption",
Type: "SystemDiskEncryptionConfig",
Note: "",
Description: "Machine system disk encryption configuration.\nDefines each system partition encryption parameters.",
Comments: [3]string{"" /* encoder.HeadComment */, "Machine system disk encryption configuration." /* encoder.LineComment */, "" /* encoder.FootComment */},
},
{
Name: "features",
Type: "FeaturesConfig",
Note: "",
Description: "Features describe individual Talos features that can be switched on or off.",
Comments: [3]string{"" /* encoder.HeadComment */, "Features describe individual Talos features that can be switched on or off." /* encoder.LineComment */, "" /* encoder.FootComment */},
},
{
Name: "udev",
Type: "UdevConfig",
Note: "",
Description: "Configures the udev system.",
Comments: [3]string{"" /* encoder.HeadComment */, "Configures the udev system." /* encoder.LineComment */, "" /* encoder.FootComment */},
},
{
Name: "logging",
Type: "LoggingConfig",
Note: "",
Description: "Configures the logging system.",
Comments: [3]string{"" /* encoder.HeadComment */, "Configures the logging system." /* encoder.LineComment */, "" /* encoder.FootComment */},
},
{
Name: "kernel",
Type: "KernelConfig",
Note: "",
Description: "Configures the kernel.",
Comments: [3]string{"" /* encoder.HeadComment */, "Configures the kernel." /* encoder.LineComment */, "" /* encoder.FootComment */},
},
{
Name: "seccompProfiles",
Type: "[]MachineSeccompProfile",
Note: "",
Description: "Configures the seccomp profiles for the machine.",
Comments: [3]string{"" /* encoder.HeadComment */, "Configures the seccomp profiles for the machine." /* encoder.LineComment */, "" /* encoder.FootComment */},
},
{
Name: "nodeLabels",
Type: "map[string]string",
Note: "",
Description: "Configures the node labels for the machine.\n\nNote: In the default Kubernetes configuration, worker nodes are restricted to set\nlabels with some prefixes (see [NodeRestriction](https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/#noderestriction) admission plugin).",
Comments: [3]string{"" /* encoder.HeadComment */, "Configures the node labels for the machine." /* encoder.LineComment */, "" /* encoder.FootComment */},
},
{
Name: "nodeTaints",
Type: "map[string]string",
Note: "",
Description: "Configures the node taints for the machine. Effect is optional.\n\nNote: In the default Kubernetes configuration, worker nodes are not allowed to\nmodify the taints (see [NodeRestriction](https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/#noderestriction) admission plugin).",
Comments: [3]string{"" /* encoder.HeadComment */, "Configures the node taints for the machine. Effect is optional." /* encoder.LineComment */, "" /* encoder.FootComment */},
},
},
}
doc.AddExample("", machineConfigExample())
doc.Fields[1].AddExample("example token", "328hom.uqjzh6jnn2eie9oi")
doc.Fields[2].AddExample("machine CA example", pemEncodedCertificateExample())
doc.Fields[3].AddExample("Uncomment this to enable SANs.", []string{"10.0.0.10", "172.16.0.10", "192.168.0.10"})
doc.Fields[4].AddExample("ControlPlane definition example.", machineControlplaneExample())
doc.Fields[5].AddExample("Kubelet definition example.", machineKubeletExample())
doc.Fields[6].AddExample("nginx static pod.", machinePodsExample())
doc.Fields[7].AddExample("Network definition example.", machineNetworkConfigExample())
doc.Fields[8].AddExample("MachineDisks list example.", machineDisksExample())
doc.Fields[9].AddExample("MachineInstall config usage example.", machineInstallExample())
doc.Fields[10].AddExample("MachineFiles usage example.", machineFilesExample())
doc.Fields[11].AddExample("Environment variables definition examples.", machineEnvExamples0())
doc.Fields[11].AddExample("", machineEnvExamples1())
doc.Fields[11].AddExample("", machineEnvExamples2())
doc.Fields[12].AddExample("Example configuration for cloudflare ntp server.", machineTimeExample())
doc.Fields[13].AddExample("MachineSysctls usage example.", machineSysctlsExample())
doc.Fields[14].AddExample("MachineSysfs usage example.", machineSysfsExample())
doc.Fields[15].AddExample("", machineConfigRegistriesExample())
doc.Fields[16].AddExample("", machineSystemDiskEncryptionExample())
doc.Fields[17].AddExample("", machineFeaturesExample())
doc.Fields[18].AddExample("", machineUdevExample())
doc.Fields[19].AddExample("", machineLoggingExample())
doc.Fields[20].AddExample("", machineKernelExample())
doc.Fields[21].AddExample("", machineSeccompExample())
doc.Fields[22].AddExample("node labels example.", map[string]string{"exampleLabel": "exampleLabelValue"})
doc.Fields[23].AddExample("node taints example.", map[string]string{"exampleTaint": "exampleTaintValue:NoSchedule"})
return doc
}
func (MachineSeccompProfile) Doc() *encoder.Doc {
doc := &encoder.Doc{
Type: "MachineSeccompProfile",
Comments: [3]string{"" /* encoder.HeadComment */, "MachineSeccompProfile defines seccomp profiles for the machine." /* encoder.LineComment */, "" /* encoder.FootComment */},
Description: "MachineSeccompProfile defines seccomp profiles for the machine.",
AppearsIn: []encoder.Appearance{
{
TypeName: "MachineConfig",
FieldName: "seccompProfiles",
},
},
Fields: []encoder.Doc{
{
Name: "name",
Type: "string",
Note: "",
Description: "The `name` field is used to provide the file name of the seccomp profile.",
Comments: [3]string{"" /* encoder.HeadComment */, "The `name` field is used to provide the file name of the seccomp profile." /* encoder.LineComment */, "" /* encoder.FootComment */},
},
{
Name: "value",
Type: "Unstructured",
Note: "",
Description: "The `value` field is used to provide the seccomp profile.",
Comments: [3]string{"" /* encoder.HeadComment */, "The `value` field is used to provide the seccomp profile." /* encoder.LineComment */, "" /* encoder.FootComment */},
},
},
}
doc.AddExample("", machineSeccompExample())
return doc
}
func (ClusterConfig) Doc() *encoder.Doc {
doc := &encoder.Doc{
Type: "ClusterConfig",
Comments: [3]string{"" /* encoder.HeadComment */, "ClusterConfig represents the cluster-wide config values." /* encoder.LineComment */, "" /* encoder.FootComment */},
Description: "ClusterConfig represents the cluster-wide config values.",
AppearsIn: []encoder.Appearance{
{
TypeName: "Config",
FieldName: "cluster",
},
},
Fields: []encoder.Doc{
{
Name: "id",
Type: "string",
Note: "",
Description: "Globally unique identifier for this cluster (base64 encoded random 32 bytes).",
Comments: [3]string{"" /* encoder.HeadComment */, "Globally unique identifier for this cluster (base64 encoded random 32 bytes)." /* encoder.LineComment */, "" /* encoder.FootComment */},
},
{
Name: "secret",
Type: "string",
Note: "",
Description: "Shared secret of cluster (base64 encoded random 32 bytes).\nThis secret is shared among cluster members but should never be sent over the network.",
Comments: [3]string{"" /* encoder.HeadComment */, "Shared secret of cluster (base64 encoded random 32 bytes)." /* encoder.LineComment */, "" /* encoder.FootComment */},
},
{
Name: "controlPlane",
Type: "ControlPlaneConfig",
Note: "",
Description: "Provides control plane specific configuration options.",
Comments: [3]string{"" /* encoder.HeadComment */, "Provides control plane specific configuration options." /* encoder.LineComment */, "" /* encoder.FootComment */},
},
{
Name: "clusterName",
Type: "string",
Note: "",
Description: "Configures the cluster's name.",
Comments: [3]string{"" /* encoder.HeadComment */, "Configures the cluster's name." /* encoder.LineComment */, "" /* encoder.FootComment */},
},
{
Name: "network",
Type: "ClusterNetworkConfig",
Note: "",
Description: "Provides cluster specific network configuration options.",
Comments: [3]string{"" /* encoder.HeadComment */, "Provides cluster specific network configuration options." /* encoder.LineComment */, "" /* encoder.FootComment */},
},
{
Name: "token",
Type: "string",
Note: "",
Description: "The [bootstrap token](https://kubernetes.io/docs/reference/access-authn-authz/bootstrap-tokens/) used to join the cluster.",
Comments: [3]string{"" /* encoder.HeadComment */, "The [bootstrap token](https://kubernetes.io/docs/reference/access-authn-authz/bootstrap-tokens/) used to join the cluster." /* encoder.LineComment */, "" /* encoder.FootComment */},
},
{
Name: "aescbcEncryptionSecret",
Type: "string",
Note: "",
Description: "A key used for the [encryption of secret data at rest](https://kubernetes.io/docs/tasks/administer-cluster/encrypt-data/).\nEnables encryption with AESCBC.",
Comments: [3]string{"" /* encoder.HeadComment */, "A key used for the [encryption of secret data at rest](https://kubernetes.io/docs/tasks/administer-cluster/encrypt-data/)." /* encoder.LineComment */, "" /* encoder.FootComment */},
},
{
Name: "secretboxEncryptionSecret",
Type: "string",
Note: "",
Description: "A key used for the [encryption of secret data at rest](https://kubernetes.io/docs/tasks/administer-cluster/encrypt-data/).\nEnables encryption with secretbox.\nSecretbox has precedence over AESCBC.",
Comments: [3]string{"" /* encoder.HeadComment */, "A key used for the [encryption of secret data at rest](https://kubernetes.io/docs/tasks/administer-cluster/encrypt-data/)." /* encoder.LineComment */, "" /* encoder.FootComment */},
},
{
Name: "ca",
Type: "PEMEncodedCertificateAndKey",
Note: "",
Description: "The base64 encoded root certificate authority used by Kubernetes.",
Comments: [3]string{"" /* encoder.HeadComment */, "The base64 encoded root certificate authority used by Kubernetes." /* encoder.LineComment */, "" /* encoder.FootComment */},
},
{
Name: "aggregatorCA",
Type: "PEMEncodedCertificateAndKey",
Note: "",
Description: "The base64 encoded aggregator certificate authority used by Kubernetes for front-proxy certificate generation.\n\nThis CA can be self-signed.",
Comments: [3]string{"" /* encoder.HeadComment */, "The base64 encoded aggregator certificate authority used by Kubernetes for front-proxy certificate generation." /* encoder.LineComment */, "" /* encoder.FootComment */},
},
{
Name: "serviceAccount",
Type: "PEMEncodedKey",
Note: "",
Description: "The base64 encoded private key for service account token generation.",
Comments: [3]string{"" /* encoder.HeadComment */, "The base64 encoded private key for service account token generation." /* encoder.LineComment */, "" /* encoder.FootComment */},
},
{
Name: "apiServer",
Type: "APIServerConfig",
Note: "",
Description: "API server specific configuration options.",
Comments: [3]string{"" /* encoder.HeadComment */, "API server specific configuration options." /* encoder.LineComment */, "" /* encoder.FootComment */},
},
{
Name: "controllerManager",
Type: "ControllerManagerConfig",
Note: "",
Description: "Controller manager server specific configuration options.",
Comments: [3]string{"" /* encoder.HeadComment */, "Controller manager server specific configuration options." /* encoder.LineComment */, "" /* encoder.FootComment */},
},
{
Name: "proxy",
Type: "ProxyConfig",
Note: "",
Description: "Kube-proxy server-specific configuration options",
Comments: [3]string{"" /* encoder.HeadComment */, "Kube-proxy server-specific configuration options" /* encoder.LineComment */, "" /* encoder.FootComment */},
},
{
Name: "scheduler",
Type: "SchedulerConfig",
Note: "",
Description: "Scheduler server specific configuration options.",
Comments: [3]string{"" /* encoder.HeadComment */, "Scheduler server specific configuration options." /* encoder.LineComment */, "" /* encoder.FootComment */},
},
{
Name: "discovery",
Type: "ClusterDiscoveryConfig",
Note: "",
Description: "Configures cluster member discovery.",
Comments: [3]string{"" /* encoder.HeadComment */, "Configures cluster member discovery." /* encoder.LineComment */, "" /* encoder.FootComment */},
},
{
Name: "etcd",
Type: "EtcdConfig",
Note: "",
Description: "Etcd specific configuration options.",
Comments: [3]string{"" /* encoder.HeadComment */, "Etcd specific configuration options." /* encoder.LineComment */, "" /* encoder.FootComment */},
},
{
Name: "coreDNS",
Type: "CoreDNS",
Note: "",
Description: "Core DNS specific configuration options.",
Comments: [3]string{"" /* encoder.HeadComment */, "Core DNS specific configuration options." /* encoder.LineComment */, "" /* encoder.FootComment */},
},
{
Name: "externalCloudProvider",
Type: "ExternalCloudProviderConfig",
Note: "",
Description: "External cloud provider configuration.",
Comments: [3]string{"" /* encoder.HeadComment */, "External cloud provider configuration." /* encoder.LineComment */, "" /* encoder.FootComment */},
},
{
Name: "extraManifests",
Type: "[]string",
Note: "",
Description: "A list of urls that point to additional manifests.\nThese will get automatically deployed as part of the bootstrap.",
Comments: [3]string{"" /* encoder.HeadComment */, "A list of urls that point to additional manifests." /* encoder.LineComment */, "" /* encoder.FootComment */},
},
{
Name: "extraManifestHeaders",
Type: "map[string]string",
Note: "",
Description: "A map of key value pairs that will be added while fetching the extraManifests.",
Comments: [3]string{"" /* encoder.HeadComment */, "A map of key value pairs that will be added while fetching the extraManifests." /* encoder.LineComment */, "" /* encoder.FootComment */},
},
{
Name: "inlineManifests",
Type: "[]ClusterInlineManifest",
Note: "",
Description: "A list of inline Kubernetes manifests.\nThese will get automatically deployed as part of the bootstrap.",
Comments: [3]string{"" /* encoder.HeadComment */, "A list of inline Kubernetes manifests." /* encoder.LineComment */, "" /* encoder.FootComment */},
},
{
Name: "adminKubeconfig",
Type: "AdminKubeconfigConfig",
Note: "",
Description: "Settings for admin kubeconfig generation.\nCertificate lifetime can be configured.",
Comments: [3]string{"" /* encoder.HeadComment */, "Settings for admin kubeconfig generation." /* encoder.LineComment */, "" /* encoder.FootComment */},
},
{},
{
Name: "allowSchedulingOnControlPlanes",
Type: "bool",
Note: "",
Description: "Allows running workload on control-plane nodes.",
Comments: [3]string{"" /* encoder.HeadComment */, "Allows running workload on control-plane nodes." /* encoder.LineComment */, "" /* encoder.FootComment */},
Values: []string{
"true",
"yes",
"false",
"no",
},
},
},
}
doc.AddExample("", clusterConfigExample())
doc.Fields[2].AddExample("Setting controlplane endpoint address to 1.2.3.4 and port to 443 example.", clusterControlPlaneExample())
doc.Fields[4].AddExample("Configuring with flannel CNI and setting up subnets.", clusterNetworkExample())
doc.Fields[5].AddExample("Bootstrap token example (do not use in production!).", "wlzjyw.bei2zfylhs2by0wd")
doc.Fields[6].AddExample("Decryption secret example (do not use in production!).", "z01mye6j16bspJYtTB/5SFX8j7Ph4JXxM2Xuu4vsBPM=")
doc.Fields[7].AddExample("Decryption secret example (do not use in production!).", "z01mye6j16bspJYtTB/5SFX8j7Ph4JXxM2Xuu4vsBPM=")
doc.Fields[8].AddExample("ClusterCA example.", pemEncodedCertificateExample())
doc.Fields[9].AddExample("AggregatorCA example.", pemEncodedCertificateExample())
doc.Fields[10].AddExample("AggregatorCA example.", pemEncodedKeyExample())
doc.Fields[11].AddExample("", clusterAPIServerExample())
doc.Fields[12].AddExample("", clusterControllerManagerExample())
doc.Fields[13].AddExample("", clusterProxyExample())
doc.Fields[14].AddExample("", clusterSchedulerExample())
doc.Fields[15].AddExample("", clusterDiscoveryExample())
doc.Fields[16].AddExample("", clusterEtcdExample())
doc.Fields[17].AddExample("", clusterCoreDNSExample())
doc.Fields[18].AddExample("", clusterExternalCloudProviderConfigExample())
doc.Fields[19].AddExample("", []string{
"https://www.example.com/manifest1.yaml",
"https://www.example.com/manifest2.yaml",
})
doc.Fields[20].AddExample("", map[string]string{
"Token": "1234567",
"X-ExtraInfo": "info",
})
doc.Fields[21].AddExample("", clusterInlineManifestsExample())
doc.Fields[22].AddExample("", clusterAdminKubeconfigExample())
doc.Fields[24].AddExample("", true)
return doc
}
func (LinuxIDMapping) Doc() *encoder.Doc {
doc := &encoder.Doc{
Type: "LinuxIDMapping",
Comments: [3]string{"" /* encoder.HeadComment */, "LinuxIDMapping represents the Linux ID mapping." /* encoder.LineComment */, "" /* encoder.FootComment */},
Description: "LinuxIDMapping represents the Linux ID mapping.",
AppearsIn: []encoder.Appearance{
{
TypeName: "ExtraMount",
FieldName: "uidMappings",
},
{
TypeName: "ExtraMount",
FieldName: "gidMappings",
},
},
Fields: []encoder.Doc{
{
Name: "containerID",
Type: "uint32",
Note: "",
Description: "ContainerID is the starting UID/GID in the container.",
Comments: [3]string{"" /* encoder.HeadComment */, "ContainerID is the starting UID/GID in the container." /* encoder.LineComment */, "" /* encoder.FootComment */},
},
{
Name: "hostID",
Type: "uint32",
Note: "",
Description: "HostID is the starting UID/GID on the host to be mapped to 'ContainerID'.",
Comments: [3]string{"" /* encoder.HeadComment */, "HostID is the starting UID/GID on the host to be mapped to 'ContainerID'." /* encoder.LineComment */, "" /* encoder.FootComment */},
},
{
Name: "size",
Type: "uint32",
Note: "",
Description: "Size is the number of IDs to be mapped.",
Comments: [3]string{"" /* encoder.HeadComment */, "Size is the number of IDs to be mapped." /* encoder.LineComment */, "" /* encoder.FootComment */},
},
},
}
return doc
}
func (ExtraMount) Doc() *encoder.Doc {
doc := &encoder.Doc{
Type: "ExtraMount",
Comments: [3]string{"" /* encoder.HeadComment */, "ExtraMount wraps OCI Mount specification." /* encoder.LineComment */, "" /* encoder.FootComment */},
Description: "ExtraMount wraps OCI Mount specification.",
AppearsIn: []encoder.Appearance{
{
TypeName: "KubeletConfig",
FieldName: "extraMounts",
},
},
Fields: []encoder.Doc{
{
Name: "destination",
Type: "string",
Note: "",
Description: "Destination is the absolute path where the mount will be placed in the container.",
Comments: [3]string{"" /* encoder.HeadComment */, "Destination is the absolute path where the mount will be placed in the container." /* encoder.LineComment */, "" /* encoder.FootComment */},
},
{
Name: "type",
Type: "string",
Note: "",
Description: "Type specifies the mount kind.",
Comments: [3]string{"" /* encoder.HeadComment */, "Type specifies the mount kind." /* encoder.LineComment */, "" /* encoder.FootComment */},
},
{
Name: "source",
Type: "string",
Note: "",
Description: "Source specifies the source path of the mount.",
Comments: [3]string{"" /* encoder.HeadComment */, "Source specifies the source path of the mount." /* encoder.LineComment */, "" /* encoder.FootComment */},
},
{
Name: "options",
Type: "[]string",
Note: "",
Description: "Options are fstab style mount options.",
Comments: [3]string{"" /* encoder.HeadComment */, "Options are fstab style mount options." /* encoder.LineComment */, "" /* encoder.FootComment */},
},
{
Name: "uidMappings",
Type: "[]LinuxIDMapping",
Note: "",
Description: "UID/GID mappings used for changing file owners w/o calling chown, fs should support it.\n\nEvery mount point could have its own mapping.",
Comments: [3]string{"" /* encoder.HeadComment */, "UID/GID mappings used for changing file owners w/o calling chown, fs should support it." /* encoder.LineComment */, "" /* encoder.FootComment */},
},
{
Name: "gidMappings",
Type: "[]LinuxIDMapping",
Note: "",
Description: "UID/GID mappings used for changing file owners w/o calling chown, fs should support it.\n\nEvery mount point could have its own mapping.",
Comments: [3]string{"" /* encoder.HeadComment */, "UID/GID mappings used for changing file owners w/o calling chown, fs should support it." /* encoder.LineComment */, "" /* encoder.FootComment */},
},
},
}
doc.AddExample("", kubeletExtraMountsExample())
return doc
}
func (MachineControlPlaneConfig) Doc() *encoder.Doc {
doc := &encoder.Doc{
Type: "MachineControlPlaneConfig",
Comments: [3]string{"" /* encoder.HeadComment */, "MachineControlPlaneConfig machine specific configuration options." /* encoder.LineComment */, "" /* encoder.FootComment */},
Description: "MachineControlPlaneConfig machine specific configuration options.",
AppearsIn: []encoder.Appearance{
{
TypeName: "MachineConfig",
FieldName: "controlPlane",
},
},
Fields: []encoder.Doc{
{
Name: "controllerManager",
Type: "MachineControllerManagerConfig",
Note: "",
Description: "Controller manager machine specific configuration options.",
Comments: [3]string{"" /* encoder.HeadComment */, "Controller manager machine specific configuration options." /* encoder.LineComment */, "" /* encoder.FootComment */},
},
{
Name: "scheduler",
Type: "MachineSchedulerConfig",
Note: "",
Description: "Scheduler machine specific configuration options.",
Comments: [3]string{"" /* encoder.HeadComment */, "Scheduler machine specific configuration options." /* encoder.LineComment */, "" /* encoder.FootComment */},
},
},
}
doc.AddExample("ControlPlane definition example.", machineControlplaneExample())
return doc
}
func (MachineControllerManagerConfig) Doc() *encoder.Doc {
doc := &encoder.Doc{
Type: "MachineControllerManagerConfig",
Comments: [3]string{"" /* encoder.HeadComment */, "MachineControllerManagerConfig represents the machine specific ControllerManager config values." /* encoder.LineComment */, "" /* encoder.FootComment */},
Description: "MachineControllerManagerConfig represents the machine specific ControllerManager config values.",
AppearsIn: []encoder.Appearance{
{
TypeName: "MachineControlPlaneConfig",
FieldName: "controllerManager",
},
},
Fields: []encoder.Doc{
{
Name: "disabled",
Type: "bool",
Note: "",
Description: "Disable kube-controller-manager on the node.",
Comments: [3]string{"" /* encoder.HeadComment */, "Disable kube-controller-manager on the node." /* encoder.LineComment */, "" /* encoder.FootComment */},
},
},
}
return doc
}
func (MachineSchedulerConfig) Doc() *encoder.Doc {
doc := &encoder.Doc{
Type: "MachineSchedulerConfig",
Comments: [3]string{"" /* encoder.HeadComment */, "MachineSchedulerConfig represents the machine specific Scheduler config values." /* encoder.LineComment */, "" /* encoder.FootComment */},
Description: "MachineSchedulerConfig represents the machine specific Scheduler config values.",
AppearsIn: []encoder.Appearance{
{
TypeName: "MachineControlPlaneConfig",
FieldName: "scheduler",
},
},
Fields: []encoder.Doc{
{
Name: "disabled",
Type: "bool",
Note: "",
Description: "Disable kube-scheduler on the node.",
Comments: [3]string{"" /* encoder.HeadComment */, "Disable kube-scheduler on the node." /* encoder.LineComment */, "" /* encoder.FootComment */},
},
},
}
return doc
}
func (KubeletConfig) Doc() *encoder.Doc {
doc := &encoder.Doc{
Type: "KubeletConfig",
Comments: [3]string{"" /* encoder.HeadComment */, "KubeletConfig represents the kubelet config values." /* encoder.LineComment */, "" /* encoder.FootComment */},
Description: "KubeletConfig represents the kubelet config values.",
AppearsIn: []encoder.Appearance{
{
TypeName: "MachineConfig",
FieldName: "kubelet",
},
},
Fields: []encoder.Doc{
{
Name: "image",
Type: "string",
Note: "",
Description: "The `image` field is an optional reference to an alternative kubelet image.",
Comments: [3]string{"" /* encoder.HeadComment */, "The `image` field is an optional reference to an alternative kubelet image." /* encoder.LineComment */, "" /* encoder.FootComment */},
},
{
Name: "clusterDNS",
Type: "[]string",
Note: "",
Description: "The `ClusterDNS` field is an optional reference to an alternative kubelet clusterDNS ip list.",
Comments: [3]string{"" /* encoder.HeadComment */, "The `ClusterDNS` field is an optional reference to an alternative kubelet clusterDNS ip list." /* encoder.LineComment */, "" /* encoder.FootComment */},
},
{
Name: "extraArgs",
Type: "map[string]string",
Note: "",
Description: "The `extraArgs` field is used to provide additional flags to the kubelet.",
Comments: [3]string{"" /* encoder.HeadComment */, "The `extraArgs` field is used to provide additional flags to the kubelet." /* encoder.LineComment */, "" /* encoder.FootComment */},
},
{
Name: "extraMounts",
Type: "[]ExtraMount",
Note: "",
Description: "The `extraMounts` field is used to add additional mounts to the kubelet container.\nNote that either `bind` or `rbind` are required in the `options`.",
Comments: [3]string{"" /* encoder.HeadComment */, "The `extraMounts` field is used to add additional mounts to the kubelet container." /* encoder.LineComment */, "" /* encoder.FootComment */},
},
{
Name: "extraConfig",
Type: "Unstructured",
Note: "",
Description: "The `extraConfig` field is used to provide kubelet configuration overrides.\n\nSome fields are not allowed to be overridden: authentication and authorization, cgroups\nconfiguration, ports, etc.",
Comments: [3]string{"" /* encoder.HeadComment */, "The `extraConfig` field is used to provide kubelet configuration overrides." /* encoder.LineComment */, "" /* encoder.FootComment */},
},
{
Name: "credentialProviderConfig",
Type: "Unstructured",
Note: "",
Description: "The `KubeletCredentialProviderConfig` field is used to provide kubelet credential configuration.",
Comments: [3]string{"" /* encoder.HeadComment */, "The `KubeletCredentialProviderConfig` field is used to provide kubelet credential configuration." /* encoder.LineComment */, "" /* encoder.FootComment */},
},
{
Name: "defaultRuntimeSeccompProfileEnabled",
Type: "bool",
Note: "",
Description: "Enable container runtime default Seccomp profile.",
Comments: [3]string{"" /* encoder.HeadComment */, "Enable container runtime default Seccomp profile." /* encoder.LineComment */, "" /* encoder.FootComment */},
Values: []string{
"true",
"yes",
"false",
"no",
},
},
{
Name: "registerWithFQDN",
Type: "bool",
Note: "",
Description: "The `registerWithFQDN` field is used to force kubelet to use the node FQDN for registration.\nThis is required in clouds like AWS.",
Comments: [3]string{"" /* encoder.HeadComment */, "The `registerWithFQDN` field is used to force kubelet to use the node FQDN for registration." /* encoder.LineComment */, "" /* encoder.FootComment */},
Values: []string{
"true",
"yes",
"false",
"no",
},
},
{
Name: "nodeIP",
Type: "KubeletNodeIPConfig",
Note: "",
Description: "The `nodeIP` field is used to configure `--node-ip` flag for the kubelet.\nThis is used when a node has multiple addresses to choose from.",
Comments: [3]string{"" /* encoder.HeadComment */, "The `nodeIP` field is used to configure `--node-ip` flag for the kubelet." /* encoder.LineComment */, "" /* encoder.FootComment */},
},
{
Name: "skipNodeRegistration",
Type: "bool",
Note: "",
Description: "The `skipNodeRegistration` is used to run the kubelet without registering with the apiserver.\nThis runs kubelet as standalone and only runs static pods.",
Comments: [3]string{"" /* encoder.HeadComment */, "The `skipNodeRegistration` is used to run the kubelet without registering with the apiserver." /* encoder.LineComment */, "" /* encoder.FootComment */},
Values: []string{
"true",
"yes",
"false",
"no",
},
},
{
Name: "disableManifestsDirectory",
Type: "bool",
Note: "",
Description: "The `disableManifestsDirectory` field configures the kubelet to get static pod manifests from the /etc/kubernetes/manifests directory.\nIt's recommended to configure static pods with the \"pods\" key instead.",
Comments: [3]string{"" /* encoder.HeadComment */, "The `disableManifestsDirectory` field configures the kubelet to get static pod manifests from the /etc/kubernetes/manifests directory." /* encoder.LineComment */, "" /* encoder.FootComment */},
Values: []string{
"true",
"yes",
"false",
"no",
},
},
},
}
doc.AddExample("Kubelet definition example.", machineKubeletExample())
doc.Fields[0].AddExample("", kubeletImageExample())
doc.Fields[1].AddExample("", []string{"10.96.0.10", "169.254.2.53"})
doc.Fields[2].AddExample("", map[string]string{
"key": "value",
})
doc.Fields[3].AddExample("", kubeletExtraMountsExample())
doc.Fields[4].AddExample("", kubeletExtraConfigExample())
doc.Fields[5].AddExample("", kubeletCredentialProviderConfigExample())
doc.Fields[8].AddExample("", kubeletNodeIPExample())
return doc
}
func (KubeletNodeIPConfig) Doc() *encoder.Doc {
doc := &encoder.Doc{
Type: "KubeletNodeIPConfig",
Comments: [3]string{"" /* encoder.HeadComment */, "KubeletNodeIPConfig represents the kubelet node IP configuration." /* encoder.LineComment */, "" /* encoder.FootComment */},
Description: "KubeletNodeIPConfig represents the kubelet node IP configuration.",
AppearsIn: []encoder.Appearance{
{
TypeName: "KubeletConfig",
FieldName: "nodeIP",
},
},
Fields: []encoder.Doc{
{
Name: "validSubnets",
Type: "[]string",
Note: "",
Description: "The `validSubnets` field configures the networks to pick kubelet node IP from.\nFor dual stack configuration, there should be two subnets: one for IPv4, another for IPv6.\nIPs can be excluded from the list by using negative match with `!`, e.g `!10.0.0.0/8`.\nNegative subnet matches should be specified last to filter out IPs picked by positive matches.\nIf not specified, node IP is picked based on cluster podCIDRs: IPv4/IPv6 address or both.",
Comments: [3]string{"" /* encoder.HeadComment */, "The `validSubnets` field configures the networks to pick kubelet node IP from." /* encoder.LineComment */, "" /* encoder.FootComment */},
},
},
}
doc.AddExample("", kubeletNodeIPExample())
return doc
}
func (NetworkConfig) Doc() *encoder.Doc {
doc := &encoder.Doc{
Type: "NetworkConfig",
Comments: [3]string{"" /* encoder.HeadComment */, "NetworkConfig represents the machine's networking config values." /* encoder.LineComment */, "" /* encoder.FootComment */},
Description: "NetworkConfig represents the machine's networking config values.",
AppearsIn: []encoder.Appearance{
{
TypeName: "MachineConfig",
FieldName: "network",
},
},
Fields: []encoder.Doc{
{
Name: "hostname",
Type: "string",
Note: "",
Description: "Used to statically set the hostname for the machine.",
Comments: [3]string{"" /* encoder.HeadComment */, "Used to statically set the hostname for the machine." /* encoder.LineComment */, "" /* encoder.FootComment */},
},
{
Name: "interfaces",
Type: "[]Device",
Note: "",
Description: "`interfaces` is used to define the network interface configuration.\nBy default all network interfaces will attempt a DHCP discovery.\nThis can be further tuned through this configuration parameter.",
Comments: [3]string{"" /* encoder.HeadComment */, "`interfaces` is used to define the network interface configuration." /* encoder.LineComment */, "" /* encoder.FootComment */},
},
{
Name: "nameservers",
Type: "[]string",
Note: "",
Description: "Used to statically set the nameservers for the machine.\nDefaults to `1.1.1.1` and `8.8.8.8`",
Comments: [3]string{"" /* encoder.HeadComment */, "Used to statically set the nameservers for the machine." /* encoder.LineComment */, "" /* encoder.FootComment */},
},
{
Name: "extraHostEntries",
Type: "[]ExtraHost",
Note: "",
Description: "Allows for extra entries to be added to the `/etc/hosts` file",
Comments: [3]string{"" /* encoder.HeadComment */, "Allows for extra entries to be added to the `/etc/hosts` file" /* encoder.LineComment */, "" /* encoder.FootComment */},
},
{
Name: "kubespan",
Type: "NetworkKubeSpan",
Note: "",
Description: "Configures KubeSpan feature.",
Comments: [3]string{"" /* encoder.HeadComment */, "Configures KubeSpan feature." /* encoder.LineComment */, "" /* encoder.FootComment */},
},
{
Name: "disableSearchDomain",
Type: "bool",
Note: "",
Description: "Disable generating a default search domain in /etc/resolv.conf\nbased on the machine hostname.\nDefaults to `false`.",
Comments: [3]string{"" /* encoder.HeadComment */, "Disable generating a default search domain in /etc/resolv.conf" /* encoder.LineComment */, "" /* encoder.FootComment */},
Values: []string{
"true",
"yes",
"false",
"no",
},
},
},
}
doc.AddExample("Network definition example.", machineNetworkConfigExample())
doc.Fields[1].AddExample("", machineNetworkConfigExample().NetworkInterfaces)
doc.Fields[2].AddExample("", []string{"8.8.8.8", "1.1.1.1"})
doc.Fields[3].AddExample("", networkConfigExtraHostsExample())
doc.Fields[4].AddExample("", networkKubeSpanExample())
return doc
}
func (InstallConfig) Doc() *encoder.Doc {
doc := &encoder.Doc{
Type: "InstallConfig",
Comments: [3]string{"" /* encoder.HeadComment */, "InstallConfig represents the installation options for preparing a node." /* encoder.LineComment */, "" /* encoder.FootComment */},
Description: "InstallConfig represents the installation options for preparing a node.",
AppearsIn: []encoder.Appearance{
{
TypeName: "MachineConfig",
FieldName: "install",
},
},
Fields: []encoder.Doc{
{
Name: "disk",
Type: "string",
Note: "",
Description: "The disk used for installations.",
Comments: [3]string{"" /* encoder.HeadComment */, "The disk used for installations." /* encoder.LineComment */, "" /* encoder.FootComment */},
},
{
Name: "diskSelector",
Type: "InstallDiskSelector",
Note: "",
Description: "Look up disk using disk attributes like model, size, serial and others.\nAlways has priority over `disk`.",
Comments: [3]string{"" /* encoder.HeadComment */, "Look up disk using disk attributes like model, size, serial and others." /* encoder.LineComment */, "" /* encoder.FootComment */},
},
{
Name: "extraKernelArgs",
Type: "[]string",
Note: "",
Description: "Allows for supplying extra kernel args via the bootloader.\nExisting kernel args can be removed by prefixing the argument with a `-`.\nFor example `-console` removes all `console=<value>` arguments, whereas `-console=tty0` removes the `console=tty0` default argument.",