-
Notifications
You must be signed in to change notification settings - Fork 4.7k
/
Copy pathkops.k8s.io_clusters.yaml
6260 lines (6260 loc) · 339 KB
/
kops.k8s.io_clusters.yaml
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
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.13.0
name: clusters.kops.k8s.io
spec:
group: kops.k8s.io
names:
kind: Cluster
listKind: ClusterList
plural: clusters
singular: cluster
scope: Namespaced
versions:
- name: v1alpha2
schema:
openAPIV3Schema:
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: ClusterSpec defines the configuration for a cluster
properties:
DisableSubnetTags:
description: DisableSubnetTags controls if subnets are tagged in AWS
type: boolean
additionalNetworkCIDRs:
description: AdditionalNetworkCIDRs is a list of additional CIDR used
for the AWS VPC or otherwise allocated to k8s. This is a real CIDR,
not the internal k8s network On AWS, it maps to any additional CIDRs
added to a VPC.
items:
type: string
type: array
additionalPolicies:
additionalProperties:
type: string
description: Additional policies to add for roles
type: object
additionalSans:
description: AdditionalSANs adds additional Subject Alternate Names
to apiserver cert that kops generates
items:
type: string
type: array
addons:
description: Additional addons that should be installed on the cluster
items:
description: AddonSpec defines an addon that we want to install
in the cluster
properties:
manifest:
description: Manifest is a path to the manifest that defines
the addon
type: string
type: object
type: array
api:
description: API field controls how the API is exposed outside the
cluster
properties:
dns:
description: DNS will be used to provide config on kube-apiserver
ELB DNS
type: object
loadBalancer:
description: LoadBalancer is the configuration for the kube-apiserver
ELB
properties:
accessLog:
description: AccessLog is the configuration of access logs
properties:
bucket:
description: Bucket is S3 bucket name to store the logs
in
type: string
bucketPrefix:
description: BucketPrefix is S3 bucket prefix. Logs are
stored in the root if not configured.
type: string
interval:
description: Interval is publishing interval in minutes.
This parameter is only used with classic load balancer.
type: integer
type: object
additionalSecurityGroups:
description: AdditionalSecurityGroups attaches additional
security groups (e.g. sg-123456).
items:
type: string
type: array
class:
description: 'LoadBalancerClass specifies the class of load
balancer to create: Classic, Network'
type: string
crossZoneLoadBalancing:
description: CrossZoneLoadBalancing allows you to enable the
cross zone load balancing
type: boolean
idleTimeoutSeconds:
description: IdleTimeoutSeconds sets the timeout of the api
loadbalancer.
format: int64
type: integer
securityGroupOverride:
description: SecurityGroupOverride overrides the default Kops
created SG for the load balancer.
type: string
sslCertificate:
description: SSLCertificate allows you to specify the ACM
cert to be used the LB
type: string
sslPolicy:
description: SSLPolicy allows you to overwrite the LB listener's
Security Policy
type: string
subnets:
description: Subnets allows you to specify the subnets that
must be used for the load balancer
items:
description: LoadBalancerSubnetSpec provides configuration
for subnets used for a load balancer
properties:
allocationId:
description: AllocationID specifies the Elastic IP Allocation
ID for use by a NLB
type: string
name:
description: Name specifies the name of the cluster
subnet
type: string
privateIPv4Address:
description: PrivateIPv4Address specifies the private
IPv4 address to use for a NLB
type: string
type: object
type: array
type:
description: Type of load balancer to create may Public or
Internal.
type: string
useForInternalApi:
description: UseForInternalAPI indicates whether the LB should
be used by the kubelet
type: boolean
type: object
type: object
assets:
description: Alternative locations for files and containers
properties:
containerProxy:
description: ContainerProxy is a url for a pull-through proxy
of a docker registry
type: string
containerRegistry:
description: ContainerRegistry is a url for to a docker registry
type: string
fileRepository:
description: FileRepository is the url for a private file serving
repository
type: string
type: object
authentication:
description: Authentication field controls how the cluster is configured
for authentication
properties:
aws:
properties:
backendMode:
description: BackendMode is the AWS IAM Authenticator backend
to use. Default MountedFile
type: string
clusterID:
description: ClusterID identifies the cluster performing authentication
to prevent certain replay attacks. Default master public
DNS name
type: string
cpuLimit:
anyOf:
- type: integer
- type: string
description: CPULimit CPU limit of AWS IAM Authenticator container.
Default 10m
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
cpuRequest:
anyOf:
- type: integer
- type: string
description: CPURequest CPU request of AWS IAM Authenticator
container. Default 10m
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
identityMappings:
description: IdentityMappings maps IAM Identities to Kubernetes
users/groups
items:
properties:
arn:
description: Arn of the IAM User or IAM Role to be allowed
to authenticate
type: string
groups:
description: Groups to be attached to your users/roles
items:
type: string
type: array
username:
description: Username that Kubernetes will see the user
as
type: string
type: object
type: array
image:
description: Image is the AWS IAM Authenticator container
image to use.
type: string
memoryLimit:
anyOf:
- type: integer
- type: string
description: MemoryLimit memory limit of AWS IAM Authenticator
container. Default 20Mi
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
memoryRequest:
anyOf:
- type: integer
- type: string
description: MemoryRequest memory request of AWS IAM Authenticator
container. Default 20Mi
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
type: object
kopeio:
type: object
type: object
authorization:
description: Authorization field controls how the cluster is configured
for authorization
properties:
alwaysAllow:
type: object
rbac:
type: object
type: object
awsLoadBalancerController:
description: AWSLoadbalancerControllerConfig determines the AWS LB
controller configuration.
properties:
enableShield:
description: 'EnableShield specifies whether the controller can
enable Shield Advanced. Default: false'
type: boolean
enableWAF:
description: 'EnableWAF specifies whether the controller can use
WAFs (Classic Regional). Default: false'
type: boolean
enableWAFv2:
description: 'EnableWAFv2 specifies whether the controller can
use WAFs (V2). Default: false'
type: boolean
enabled:
description: 'Enabled enables the loadbalancer controller. Default:
false'
type: boolean
version:
description: Version is the container image tag used.
type: string
type: object
certManager:
description: CertManager determines the metrics server configuration.
properties:
defaultIssuer:
description: 'defaultIssuer sets a default clusterIssuer Default:
none'
type: string
enabled:
description: 'Enabled enables the cert manager. Default: false'
type: boolean
featureGates:
additionalProperties:
type: boolean
description: FeatureGates is a list of experimental features that
can be enabled or disabled.
type: object
hostedZoneIDs:
description: HostedZoneIDs is a list of route53 hostedzone IDs
that cert-manager will be allowed to do dns-01 validation for
items:
type: string
type: array
image:
description: 'Image is the container image used. Default: the
latest supported image for the specified kubernetes version.'
type: string
managed:
description: Managed controls if cert-manager is manged and deployed
by kOps. The deployment of cert-manager is skipped if this is
set to false.
type: boolean
nameservers:
description: 'nameservers is a list of nameserver IP addresses
to use instead of the pod defaults. Default: none'
items:
type: string
type: array
type: object
channel:
description: The Channel we are following
type: string
cloudConfig:
description: CloudConfiguration defines the cloud provider configuration
properties:
awsEBSCSIDriver:
description: AWSEBSCSIDriver is the config for the AWS EBS CSI
driver
properties:
enabled:
description: 'Enabled enables the AWS EBS CSI driver. Can
only be set to true. Default: true'
type: boolean
hostNetwork:
description: 'HostNetwork can be used for large clusters for
faster access to node info via instance metadata. Default:
false'
type: boolean
kubeAPIBurst:
description: KubeAPIBurst Burst to use while talking with
Kubernetes API server. (default 100)
format: int32
type: integer
kubeAPIQPS:
anyOf:
- type: integer
- type: string
description: KubeAPIQPS QPS to use while talking with Kubernetes
API server. (default 20)
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
managed:
description: Managed controls if aws-ebs-csi-driver is manged
and deployed by kOps. The deployment of aws-ebs-csi-driver
is skipped if this is set to false.
type: boolean
podAnnotations:
additionalProperties:
type: string
description: 'PodAnnotations are the annotations added to
AWS EBS CSI node and controller Pods. Default: none'
type: object
version:
description: 'Version is the container image tag used. Default:
The latest stable release which is compatible with your
Kubernetes version'
type: string
volumeAttachLimit:
description: 'VolumeAttachLimit is the maximum number of volumes
attachable per node. If specified, the limit applies to
all nodes. If not specified, the value is approximated from
the instance type. Default: -'
type: integer
type: object
azure:
description: Azure cloud-config options
properties:
adminUser:
description: AdminUser specifies the admin user of VMs.
type: string
resourceGroupName:
description: ResourceGroupName specifies the name of the resource
group where the cluster is built. If this is empty, kops
will create a new resource group whose name is same as the
cluster name. If this is not empty, kops will not create
a new resource group, and it will just reuse the existing
resource group of the name. This follows the model that
kops takes for AWS VPC.
type: string
routeTableName:
description: RouteTableName is the name of the route table
attached to the subnet that the cluster is deployed in.
type: string
subscriptionId:
description: SubscriptionID specifies the subscription used
for the cluster installation.
type: string
tenantId:
description: TenantID is the ID of the tenant that the cluster
is deployed in.
type: string
required:
- tenantId
type: object
disableSecurityGroupIngress:
description: DisableSecurityGroupIngress disables the Cloud Controller
Manager's creation of an AWS Security Group for each load balancer
provisioned for a Service (AWS only).
type: boolean
elbSecurityGroup:
description: ElbSecurityGroup specifies an existing AWS Security
group for the Cloud Controller Manager to assign to each ELB
provisioned for a Service, instead of creating one per ELB (AWS
only).
type: string
gceServiceAccount:
description: GCEServiceAccount specifies the service account with
which the GCE VM runs
type: string
gcpPDCSIDriver:
description: GCPPDCSIDriver is the config for the GCP PD CSI driver
properties:
enabled:
description: Enabled enables the GCP PD CSI driver
type: boolean
type: object
manageStorageClasses:
description: ManageStorageClasses specifies whether kOps should
create and maintain a set of StorageClasses, one of which it
nominates as the default class for the cluster.
type: boolean
multizone:
description: GCE cloud-config options
type: boolean
nodeIPFamilies:
description: NodeIPFamilies controls the IP families reported
for each node (AWS only).
items:
type: string
type: array
nodeInstancePrefix:
type: string
nodeTags:
type: string
openstack:
description: Openstack cloud-config options
properties:
blockStorage:
properties:
bs-version:
type: string
clusterName:
description: ClusterName sets the --cluster flag for the
cinder-csi-plugin to the provided name
type: string
createStorageClass:
description: CreateStorageClass provisions a default class
for the Cinder plugin
type: boolean
csiPluginImage:
type: string
csiTopologySupport:
type: boolean
ignore-volume-az:
type: boolean
ignore-volume-microversion:
type: boolean
metricsEnabled:
type: boolean
override-volume-az:
type: string
type: object
insecureSkipVerify:
type: boolean
loadbalancer:
description: OpenstackLoadbalancerConfig defines the config
for a neutron loadbalancer
properties:
enableIngressHostname:
type: boolean
flavorID:
type: string
floatingNetwork:
type: string
floatingNetworkID:
type: string
floatingSubnet:
type: string
ingressHostnameSuffix:
type: string
manageSecurityGroups:
type: boolean
method:
type: string
provider:
type: string
subnetID:
type: string
useOctavia:
type: boolean
type: object
metadata:
description: OpenstackMetadata defines config for metadata
service related settings
properties:
configDrive:
description: ConfigDrive specifies to use config drive
for retrieving user data instead of the metadata service
when launching instances
type: boolean
type: object
monitor:
description: OpenstackMonitor defines the config for a health
monitor
properties:
delay:
type: string
maxRetries:
type: integer
timeout:
type: string
type: object
network:
description: OpenstackNetwork defines the config for a network
properties:
addressSortOrder:
type: string
availabilityZoneHints:
items:
type: string
type: array
internalNetworkNames:
items:
type: string
type: array
ipv6SupportDisabled:
type: boolean
publicNetworkNames:
items:
type: string
type: array
type: object
router:
description: OpenstackRouter defines the config for a router
properties:
availabilityZoneHints:
items:
type: string
type: array
dnsServers:
type: string
externalNetwork:
type: string
externalSubnet:
type: string
type: object
type: object
spotinstOrientation:
type: string
spotinstProduct:
description: Spotinst cloud-config specs
type: string
vSphereCoreDNSServer:
description: VSphereCoreDNSServer is unused.
type: string
vSphereDatacenter:
description: VShpereDatacenter is unused.
type: string
vSphereDatastore:
description: VSphereDatastore is unused.
type: string
vSpherePassword:
description: VSpherePassword is unused.
type: string
vSphereResourcePool:
description: VSphereResourcePool is unused.
type: string
vSphereServer:
description: VSphereServer is unused.
type: string
vSphereUsername:
description: VSphereUsername is unused.
type: string
type: object
cloudControllerManager:
description: CloudControllerManagerConfig is the configuration of
the cloud controller
properties:
allocateNodeCIDRs:
description: AllocateNodeCIDRs enables CIDRs for Pods to be allocated
and, if ConfigureCloudRoutes is true, to be set on the cloud
provider.
type: boolean
allowUntaggedCloud:
description: Allow the cluster to run without the cluster-id on
cloud instances
type: boolean
cidrAllocatorType:
description: CIDRAllocatorType specifies the type of CIDR allocator
to use.
type: string
cloudProvider:
description: CloudProvider is the provider for cloud services.
type: string
clusterCIDR:
description: ClusterCIDR is CIDR Range for Pods in cluster.
type: string
clusterName:
description: ClusterName is the instance prefix for the cluster.
type: string
concurrentNodeSyncs:
description: 'ConcurrentNodeSyncs is the number of workers concurrently
synchronizing nodes. (default: 1)'
format: int32
type: integer
configureCloudRoutes:
description: ConfigureCloudRoutes enables CIDRs allocated with
to be configured on the cloud provider.
type: boolean
controllers:
description: Controllers is a list of controllers to enable on
the controller-manager
items:
type: string
type: array
cpuRequest:
anyOf:
- type: integer
- type: string
description: 'CPURequest of CloudControllerManager container.
Default: 200m'
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
enableLeaderMigration:
description: EnableLeaderMigration enables controller leader migration.
type: boolean
image:
description: Image is the OCI image of the cloud controller manager.
type: string
leaderElection:
description: LeaderElection defines the configuration of leader
election client.
properties:
leaderElect:
description: leaderElect enables a leader election client
to gain leadership before executing the main loop. Enable
this when running replicated components for high availability.
type: boolean
leaderElectLeaseDuration:
description: leaderElectLeaseDuration is the length in time
non-leader candidates will wait after observing a leadership
renewal until attempting to acquire leadership of a led
but unrenewed leader slot. This is effectively the maximum
duration that a leader can be stopped before it is replaced
by another candidate
type: string
leaderElectRenewDeadlineDuration:
description: LeaderElectRenewDeadlineDuration is the interval
between attempts by the acting master to renew a leadership
slot before it stops leading. This must be less than or
equal to the lease duration.
type: string
leaderElectResourceLock:
description: LeaderElectResourceLock is the type of resource
object that is used for locking during leader election.
Supported options are endpoints (default) and `configmaps`.
type: string
leaderElectResourceName:
description: LeaderElectResourceName is the name of resource
object that is used for locking during leader election.
type: string
leaderElectResourceNamespace:
description: LeaderElectResourceNamespace is the namespace
of resource object that is used for locking during leader
election.
type: string
leaderElectRetryPeriod:
description: LeaderElectRetryPeriod is The duration the clients
should wait between attempting acquisition and renewal of
a leadership. This is only applicable if leader election
is enabled.
type: string
type: object
logLevel:
description: LogLevel is the verbosity of the logs.
format: int32
type: integer
master:
description: Master is the url for the kube api master.
type: string
nodeStatusUpdateFrequency:
description: 'NodeStatusUpdateFrequency is the duration between
node status updates. (default: 5m)'
type: string
useServiceAccountCredentials:
description: UseServiceAccountCredentials controls whether we
use individual service account credentials for each controller.
type: boolean
type: object
cloudLabels:
additionalProperties:
type: string
description: CloudLabels defines additional tags or labels on cloud
provider resources
type: object
cloudProvider:
description: The CloudProvider to use (aws or gce)
type: string
clusterAutoscaler:
description: ClusterAutoscaler defines the cluster autoscaler configuration.
properties:
awsUseStaticInstanceList:
description: 'AWSUseStaticInstanceList makes the cluster autoscaler
to use statically defined set of AWS EC2 Instance List. Default:
false'
type: boolean
balanceSimilarNodeGroups:
description: 'BalanceSimilarNodeGroups makes the cluster autoscaler
treat similar node groups as one. Default: false'
type: boolean
cordonNodeBeforeTerminating:
description: 'CordonNodeBeforeTerminating should CA cordon nodes
before terminating during downscale process Default: false'
type: boolean
cpuRequest:
anyOf:
- type: integer
- type: string
description: 'CPURequest of cluster autoscaler container. Default:
100m'
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
createPriorityExpanderConfig:
description: 'CreatePriorityExpenderConfig makes kOps create the
priority-expander ConfigMap Default: true'
type: boolean
customPriorityExpanderConfig:
additionalProperties:
items:
type: string
type: array
description: CustomPriorityExpanderConfig overides the priority-expander
ConfigMap with the provided configuration. Any InstanceGroup
configuration will be ignored if this is set. This could be
useful in order to use regex on priorities configuration
type: object
enabled:
description: 'Enabled enables the cluster autoscaler. Default:
false'
type: boolean
expander:
description: 'Expander determines the strategy for which instance
group gets expanded. Supported values: least-waste, most-pods,
random, price, priority. The price expander is only supported
on GCE. By default, kOps will generate the priority expander
ConfigMap based on the `autoscale` and `autoscalePriority` fields
in the InstanceGroup specs. Default: least-waste'
type: string
ignoreDaemonSetsUtilization:
description: 'IgnoreDaemonSetsUtilization causes the cluster autoscaler
to ignore DaemonSet-managed pods when calculating resource utilization
for scaling down. Default: false'
type: boolean
image:
description: 'Image is the container image used. Default: the
latest supported image for the specified kubernetes version.'
type: string
maxNodeProvisionTime:
description: MaxNodeProvisionTime determines how long CAS will
wait for a node to join the cluster.
type: string
memoryRequest:
anyOf:
- type: integer
- type: string
description: 'MemoryRequest of cluster autoscaler container. Default:
300Mi'
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
newPodScaleUpDelay:
description: 'NewPodScaleUpDelay causes the cluster autoscaler
to ignore unschedulable pods until they are a certain "age",
regardless of the scan-interval Default: 0s'
type: string
podAnnotations:
additionalProperties:
type: string
description: 'PodAnnotations are the annotations added to cluster
autoscaler pods when they are created. Default: none'
type: object
scaleDownDelayAfterAdd:
description: 'ScaleDownDelayAfterAdd determines the time after
scale up that scale down evaluation resumes Default: 10m0s'
type: string
scaleDownUnneededTime:
description: 'scaleDownUnneededTime determines the time a node
should be unneeded before it is eligible for scale down Default:
10m0s'
type: string
scaleDownUnreadyTime:
description: 'ScaleDownUnreadyTime determines the time an unready
node should be unneeded before it is eligible for scale down
Default: 20m0s'
type: string
scaleDownUtilizationThreshold:
description: 'ScaleDownUtilizationThreshold determines the utilization
threshold for node scale-down. Default: 0.5'
type: string
skipNodesWithCustomControllerPods:
description: 'SkipNodesWithCustomControllerPods makes the cluster
autoscaler skip scale-down of nodes with pods owned by custom
controllers. Default: true'
type: boolean
skipNodesWithLocalStorage:
description: 'SkipNodesWithLocalStorage makes the cluster autoscaler
skip scale-down of nodes with local storage. Default: true'
type: boolean
skipNodesWithSystemPods:
description: 'SkipNodesWithSystemPods makes the cluster autoscaler
skip scale-down of nodes with non-DaemonSet pods in the kube-system
namespace. Default: true'
type: boolean
type: object
clusterDNSDomain:
description: ClusterDNSDomain is the suffix we use for internal DNS
names (normally cluster.local)
type: string
configBase:
description: ConfigBase is the path where we store configuration for
the cluster This might be different that the location when the cluster
spec itself is stored, both because this must be accessible to the
cluster, and because it might be on a different cloud or storage
system (etcd vs S3)
type: string
configStore:
description: ConfigStore is unused.
type: string
containerRuntime:
description: ContainerRuntime was removed.
type: string
containerd:
description: Component configurations
properties:
address:
description: Address of containerd's GRPC server (default "/run/containerd/containerd.sock").
type: string
configAdditions:
additionalProperties:
anyOf:
- type: integer
- type: string
x-kubernetes-int-or-string: true
description: ConfigAdditions adds additional config entries to
the generated config file.
type: object
configOverride:
description: ConfigOverride is the complete containerd config
file provided by the user.
type: string
logLevel:
description: LogLevel controls the logging details [trace, debug,
info, warn, error, fatal, panic] (default "info").
type: string
nri:
description: NRI configures the Node Resource Interface.
properties:
enabled:
description: Enable NRI support in containerd
type: boolean
pluginRegistrationTimeout:
description: PluginRegistrationTimeout is the timeout for
plugin registration
type: string
pluginRequestTimeout:
description: PluginRequestTimeout is the timeout for a plugin
to handle a request
type: string
type: object
nvidiaGPU:
description: NvidiaGPU configures the Nvidia GPU runtime.
properties:
dcgmExporter:
description: DCGMExporterConfig configures the DCGM exporter
properties:
enabled:
description: Enabled determines if kOps will install the
DCGM exporter
type: boolean
type: object
enabled:
description: Enabled determines if kOps will install the Nvidia
GPU runtime and drivers. They will only be installed on
intances that has an Nvidia GPU.
type: boolean
package:
description: Package is the name of the nvidia driver package
that will be installed. Default is "nvidia-headless-460-server".
type: string
type: object
packages:
description: Packages overrides the URL and hash for the packages.
properties:
hashAmd64:
description: HashAmd64 overrides the hash for the AMD64 package.
type: string
hashArm64:
description: HashArm64 overrides the hash for the ARM64 package.
type: string
urlAmd64:
description: UrlAmd64 overrides the URL for the AMD64 package.
type: string
urlArm64:
description: UrlArm64 overrides the URL for the ARM64 package.
type: string
type: object
registryMirrors:
additionalProperties:
items:
type: string
type: array
description: RegistryMirrors is list of image registries
type: object
root:
description: Root directory for persistent data (default "/var/lib/containerd").
type: string
runc:
description: Runc configures the runc runtime.
properties:
packages:
description: Packages overrides the URL and hash for the packages.
properties:
hashAmd64:
description: HashAmd64 overrides the hash for the AMD64
package.
type: string
hashArm64:
description: HashArm64 overrides the hash for the ARM64
package.
type: string
urlAmd64:
description: UrlAmd64 overrides the URL for the AMD64
package.
type: string
urlArm64:
description: UrlArm64 overrides the URL for the ARM64
package.
type: string
type: object
version:
description: Version used to pick the runc package.
type: string
type: object
selinuxEnabled:
description: SelinuxEnabled enables SELinux support
type: boolean
skipInstall:
description: SkipInstall prevents kOps from installing and modifying
containerd in any way (default "false").
type: boolean
state:
description: State directory for execution state files (default
"/run/containerd").
type: string
version:
description: Version used to pick the containerd package.
type: string
type: object
dnsControllerGossipConfig:
description: DNSControllerGossipConfig for the cluster assuming the
use of gossip DNS
properties:
listen:
type: string
protocol:
type: string
secondary:
properties:
listen:
type: string
protocol:
type: string
secret:
type: string
seed:
type: string
type: object
secret:
type: string
seed:
type: string
type: object
dnsZone:
description: DNSZone is the DNS zone we should use when configuring
DNS This is because some clouds let us define a managed zone foo.bar,
and then have kubernetes.dev.foo.bar, without needing to define
dev.foo.bar as a hosted zone. DNSZone will probably be a suffix
of the MasterPublicName. Note that DNSZone can either by the host
name of the zone (containing dots), or can be an identifier for
the zone.