@@ -99,6 +99,7 @@ type InitConfiguration struct {
99
99
// The list of phases can be obtained with the "kubeadm init --help" command.
100
100
// This option takes effect only on Kubernetes >=1.22.0.
101
101
// +optional
102
+ // +listType=atomic
102
103
// +kubebuilder:validation:MaxItems=50
103
104
// +kubebuilder:validation:items:MinLength=1
104
105
// +kubebuilder:validation:items:MaxLength=256
@@ -211,6 +212,7 @@ type APIServer struct {
211
212
212
213
// certSANs sets extra Subject Alternative Names for the API Server signing cert.
213
214
// +optional
215
+ // +listType=atomic
214
216
// +kubebuilder:validation:MaxItems=100
215
217
// +kubebuilder:validation:items:MinLength=1
216
218
// +kubebuilder:validation:items:MaxLength=253
@@ -357,6 +359,7 @@ type NodeRegistrationOptions struct {
357
359
// ignorePreflightErrors provides a slice of pre-flight errors to be ignored when the current node is registered, e.g. 'IsPrivilegedUser,Swap'.
358
360
// Value 'all' ignores errors from all checks.
359
361
// +optional
362
+ // +listType=atomic
360
363
// +kubebuilder:validation:MaxItems=50
361
364
// +kubebuilder:validation:items:MinLength=1
362
365
// +kubebuilder:validation:items:MaxLength=512
@@ -383,31 +386,38 @@ type BootstrapToken struct {
383
386
// Used for joining nodes in the cluster.
384
387
// +required
385
388
Token * BootstrapTokenString `json:"token"`
389
+
386
390
// description sets a human-friendly message why this token exists and what it's used
387
391
// for, so other administrators can know its purpose.
388
392
// +optional
389
393
// +kubebuilder:validation:MinLength=1
390
394
// +kubebuilder:validation:MaxLength=512
391
395
Description string `json:"description,omitempty"`
396
+
392
397
// ttlSeconds defines the time to live for this token. Defaults to 24h.
393
398
// Expires and ttlSeconds are mutually exclusive.
394
399
// +optional
395
400
// +kubebuilder:validation:Minimum=0
396
401
TTLSeconds * int32 `json:"ttlSeconds,omitempty"`
402
+
397
403
// expires specifies the timestamp when this token expires. Defaults to being set
398
404
// dynamically at runtime based on the ttlSeconds. Expires and ttlSeconds are mutually exclusive.
399
405
// +optional
400
406
Expires * metav1.Time `json:"expires,omitempty"`
407
+
401
408
// usages describes the ways in which this token can be used. Can by default be used
402
409
// for establishing bidirectional trust, but that can be changed here.
403
410
// +optional
411
+ // +listType=atomic
404
412
// +kubebuilder:validation:MaxItems=100
405
413
// +kubebuilder:validation:items:MinLength=1
406
414
// +kubebuilder:validation:items:MaxLength=256
407
415
Usages []string `json:"usages,omitempty"`
416
+
408
417
// groups specifies the extra groups that this token will authenticate as when/if
409
418
// used for authentication
410
419
// +optional
420
+ // +listType=atomic
411
421
// +kubebuilder:validation:MaxItems=100
412
422
// +kubebuilder:validation:items:MinLength=1
413
423
// +kubebuilder:validation:items:MaxLength=256
@@ -461,13 +471,15 @@ type LocalEtcd struct {
461
471
462
472
// serverCertSANs sets extra Subject Alternative Names for the etcd server signing cert.
463
473
// +optional
474
+ // +listType=atomic
464
475
// +kubebuilder:validation:MaxItems=100
465
476
// +kubebuilder:validation:items:MinLength=1
466
477
// +kubebuilder:validation:items:MaxLength=253
467
478
ServerCertSANs []string `json:"serverCertSANs,omitempty"`
468
479
469
480
// peerCertSANs sets extra Subject Alternative Names for the etcd peer signing cert.
470
481
// +optional
482
+ // +listType=atomic
471
483
// +kubebuilder:validation:MaxItems=100
472
484
// +kubebuilder:validation:items:MinLength=1
473
485
// +kubebuilder:validation:items:MaxLength=253
@@ -479,6 +491,7 @@ type LocalEtcd struct {
479
491
type ExternalEtcd struct {
480
492
// endpoints of etcd members. Required for ExternalEtcd.
481
493
// +required
494
+ // +listType=atomic
482
495
// +kubebuilder:validation:MinItems=1
483
496
// +kubebuilder:validation:MaxItems=50
484
497
// +kubebuilder:validation:items:MinLength=1
@@ -538,6 +551,7 @@ type JoinConfiguration struct {
538
551
// The list of phases can be obtained with the "kubeadm init --help" command.
539
552
// This option takes effect only on Kubernetes >=1.22.0.
540
553
// +optional
554
+ // +listType=atomic
541
555
// +kubebuilder:validation:MaxItems=50
542
556
// +kubebuilder:validation:items:MinLength=1
543
557
// +kubebuilder:validation:items:MaxLength=256
@@ -606,6 +620,7 @@ type BootstrapTokenDiscovery struct {
606
620
// ASN.1. These hashes can be calculated using, for example, OpenSSL:
607
621
// openssl x509 -pubkey -in ca.crt openssl rsa -pubin -outform der 2>&/dev/null | openssl dgst -sha256 -hex
608
622
// +optional
623
+ // +listType=atomic
609
624
// +kubebuilder:validation:MaxItems=100
610
625
// +kubebuilder:validation:items:MinLength=1
611
626
// +kubebuilder:validation:items:MaxLength=512
@@ -743,6 +758,7 @@ type KubeConfigAuthExec struct {
743
758
744
759
// args is the arguments to pass to the command when executing it.
745
760
// +optional
761
+ // +listType=atomic
746
762
// +kubebuilder:validation:MaxItems=100
747
763
// +kubebuilder:validation:items:MinLength=1
748
764
// +kubebuilder:validation:items:MaxLength=512
0 commit comments