...
1apiVersion: apiextensions.k8s.io/v1
2kind: CustomResourceDefinition
3metadata:
4 annotations:
5 cnrm.cloud.google.com/version: 0.0.0-dev
6 creationTimestamp: null
7 labels:
8 cnrm.cloud.google.com/managed-by-kcc: "true"
9 cnrm.cloud.google.com/stability-level: stable
10 cnrm.cloud.google.com/system: "true"
11 cnrm.cloud.google.com/tf2crd: "true"
12 name: containernodepools.container.cnrm.cloud.google.com
13spec:
14 group: container.cnrm.cloud.google.com
15 names:
16 categories:
17 - gcp
18 kind: ContainerNodePool
19 plural: containernodepools
20 shortNames:
21 - gcpcontainernodepool
22 - gcpcontainernodepools
23 singular: containernodepool
24 preserveUnknownFields: false
25 scope: Namespaced
26 versions:
27 - additionalPrinterColumns:
28 - jsonPath: .metadata.creationTimestamp
29 name: Age
30 type: date
31 - description: When 'True', the most recent reconcile of the resource succeeded
32 jsonPath: .status.conditions[?(@.type=='Ready')].status
33 name: Ready
34 type: string
35 - description: The reason for the value in 'Ready'
36 jsonPath: .status.conditions[?(@.type=='Ready')].reason
37 name: Status
38 type: string
39 - description: The last transition time for the value in 'Status'
40 jsonPath: .status.conditions[?(@.type=='Ready')].lastTransitionTime
41 name: Status Age
42 type: date
43 name: v1beta1
44 schema:
45 openAPIV3Schema:
46 properties:
47 apiVersion:
48 description: 'apiVersion defines the versioned schema of this representation
49 of an object. Servers should convert recognized schemas to the latest
50 internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources'
51 type: string
52 kind:
53 description: 'kind is a string value representing the REST resource this
54 object represents. Servers may infer this from the endpoint the client
55 submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds'
56 type: string
57 metadata:
58 type: object
59 spec:
60 properties:
61 autoscaling:
62 description: Configuration required by cluster autoscaler to adjust
63 the size of the node pool to the current cluster usage. To disable
64 autoscaling, set minNodeCount and maxNodeCount to 0.
65 properties:
66 locationPolicy:
67 description: Location policy specifies the algorithm used when
68 scaling-up the node pool. "BALANCED" - Is a best effort policy
69 that aims to balance the sizes of available zones. "ANY" - Instructs
70 the cluster autoscaler to prioritize utilization of unused reservations,
71 and reduces preemption risk for Spot VMs.
72 type: string
73 maxNodeCount:
74 description: Maximum number of nodes per zone in the node pool.
75 Must be >= min_node_count. Cannot be used with total limits.
76 type: integer
77 minNodeCount:
78 description: Minimum number of nodes per zone in the node pool.
79 Must be >=0 and <= max_node_count. Cannot be used with total
80 limits.
81 type: integer
82 totalMaxNodeCount:
83 description: Maximum number of all nodes in the node pool. Must
84 be >= total_min_node_count. Cannot be used with per zone limits.
85 type: integer
86 totalMinNodeCount:
87 description: Minimum number of all nodes in the node pool. Must
88 be >=0 and <= total_max_node_count. Cannot be used with per
89 zone limits.
90 type: integer
91 type: object
92 clusterRef:
93 oneOf:
94 - not:
95 required:
96 - external
97 required:
98 - name
99 - not:
100 anyOf:
101 - required:
102 - name
103 - required:
104 - namespace
105 required:
106 - external
107 properties:
108 external:
109 description: 'Allowed value: The `name` field of a `ContainerCluster`
110 resource.'
111 type: string
112 name:
113 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
114 type: string
115 namespace:
116 description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
117 type: string
118 type: object
119 initialNodeCount:
120 description: Immutable. The initial number of nodes for the pool.
121 In regional or multi-zonal clusters, this is the number of nodes
122 per zone. Changing this will force recreation of the resource.
123 type: integer
124 location:
125 description: Immutable. The location (region or zone) of the cluster.
126 type: string
127 management:
128 description: Node management configuration, wherein auto-repair and
129 auto-upgrade is configured.
130 properties:
131 autoRepair:
132 description: Whether the nodes will be automatically repaired.
133 type: boolean
134 autoUpgrade:
135 description: Whether the nodes will be automatically upgraded.
136 type: boolean
137 type: object
138 maxPodsPerNode:
139 description: Immutable. The maximum number of pods per node in this
140 node pool. Note that this does not work on node pools which are
141 "route-based" - that is, node pools belonging to clusters that do
142 not have IP Aliasing enabled.
143 type: integer
144 namePrefix:
145 description: Immutable. Creates a unique name for the node pool beginning
146 with the specified prefix. Conflicts with name.
147 type: string
148 networkConfig:
149 description: Networking configuration for this NodePool. If specified,
150 it overrides the cluster-level defaults.
151 properties:
152 createPodRange:
153 description: Immutable. Whether to create a new range for pod
154 IPs in this node pool. Defaults are provided for pod_range and
155 pod_ipv4_cidr_block if they are not specified.
156 type: boolean
157 enablePrivateNodes:
158 description: Whether nodes have internal IP addresses only.
159 type: boolean
160 podCidrOverprovisionConfig:
161 description: Immutable. Configuration for node-pool level pod
162 cidr overprovision. If not set, the cluster level setting will
163 be inherited.
164 properties:
165 disabled:
166 type: boolean
167 required:
168 - disabled
169 type: object
170 podIpv4CidrBlock:
171 description: Immutable. The IP address range for pod IPs in this
172 node pool. Only applicable if create_pod_range is true. Set
173 to blank to have a range chosen with the default size. Set to
174 /netmask (e.g. /14) to have a range chosen with a specific netmask.
175 Set to a CIDR notation (e.g. 10.96.0.0/14) to pick a specific
176 range to use.
177 type: string
178 podRange:
179 description: Immutable. The ID of the secondary range for pod
180 IPs. If create_pod_range is true, this ID is used for the new
181 range. If create_pod_range is false, uses an existing secondary
182 range with this ID.
183 type: string
184 type: object
185 nodeConfig:
186 description: Immutable. The configuration of the nodepool.
187 properties:
188 advancedMachineFeatures:
189 description: Immutable. Specifies options for controlling advanced
190 machine features.
191 properties:
192 threadsPerCore:
193 description: Immutable. The number of threads per physical
194 core. To disable simultaneous multithreading (SMT) set this
195 to 1. If unset, the maximum number of threads supported
196 per core by the underlying processor is assumed.
197 type: integer
198 required:
199 - threadsPerCore
200 type: object
201 bootDiskKMSCryptoKeyRef:
202 oneOf:
203 - not:
204 required:
205 - external
206 required:
207 - name
208 - not:
209 anyOf:
210 - required:
211 - name
212 - required:
213 - namespace
214 required:
215 - external
216 properties:
217 external:
218 description: 'Allowed value: The `selfLink` field of a `KMSCryptoKey`
219 resource.'
220 type: string
221 name:
222 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
223 type: string
224 namespace:
225 description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
226 type: string
227 type: object
228 diskSizeGb:
229 description: Immutable. Size of the disk attached to each node,
230 specified in GB. The smallest allowed disk size is 10GB.
231 type: integer
232 diskType:
233 description: Immutable. Type of the disk attached to each node.
234 Such as pd-standard, pd-balanced or pd-ssd.
235 type: string
236 ephemeralStorageConfig:
237 description: Immutable. Parameters for the ephemeral storage filesystem.
238 If unspecified, ephemeral storage is backed by the boot disk.
239 properties:
240 localSsdCount:
241 description: Immutable. Number of local SSDs to use to back
242 ephemeral storage. Uses NVMe interfaces. Each local SSD
243 must be 375 or 3000 GB in size, and all local SSDs must
244 share the same size.
245 type: integer
246 required:
247 - localSsdCount
248 type: object
249 ephemeralStorageLocalSsdConfig:
250 description: Immutable. Parameters for the ephemeral storage filesystem.
251 If unspecified, ephemeral storage is backed by the boot disk.
252 properties:
253 localSsdCount:
254 description: Immutable. Number of local SSDs to use to back
255 ephemeral storage. Uses NVMe interfaces. Each local SSD
256 must be 375 or 3000 GB in size, and all local SSDs must
257 share the same size.
258 type: integer
259 required:
260 - localSsdCount
261 type: object
262 gcfsConfig:
263 description: Immutable. GCFS configuration for this node.
264 properties:
265 enabled:
266 description: Immutable. Whether or not GCFS is enabled.
267 type: boolean
268 required:
269 - enabled
270 type: object
271 guestAccelerator:
272 description: Immutable. List of the type and count of accelerator
273 cards attached to the instance.
274 items:
275 properties:
276 count:
277 description: Immutable. The number of the accelerator cards
278 exposed to an instance.
279 type: integer
280 gpuPartitionSize:
281 description: Immutable. Size of partitions to create on
282 the GPU. Valid values are described in the NVIDIA mig
283 user guide (https://docs.nvidia.com/datacenter/tesla/mig-user-guide/#partitioning).
284 type: string
285 gpuSharingConfig:
286 description: Immutable. Configuration for GPU sharing.
287 properties:
288 gpuSharingStrategy:
289 description: Immutable. The type of GPU sharing strategy
290 to enable on the GPU node. Possible values are described
291 in the API package (https://pkg.go.dev/google.golang.org/api/container/v1#GPUSharingConfig).
292 type: string
293 maxSharedClientsPerGpu:
294 description: Immutable. The maximum number of containers
295 that can share a GPU.
296 type: integer
297 required:
298 - gpuSharingStrategy
299 - maxSharedClientsPerGpu
300 type: object
301 type:
302 description: Immutable. The accelerator type resource name.
303 type: string
304 required:
305 - count
306 - type
307 type: object
308 type: array
309 gvnic:
310 description: Immutable. Enable or disable gvnic in the node pool.
311 properties:
312 enabled:
313 description: Immutable. Whether or not gvnic is enabled.
314 type: boolean
315 required:
316 - enabled
317 type: object
318 imageType:
319 description: The image type to use for this node. Note that for
320 a given image type, the latest version of it will be used.
321 type: string
322 kubeletConfig:
323 description: Node kubelet configs.
324 properties:
325 cpuCfsQuota:
326 description: Enable CPU CFS quota enforcement for containers
327 that specify CPU limits.
328 type: boolean
329 cpuCfsQuotaPeriod:
330 description: Set the CPU CFS quota period value 'cpu.cfs_period_us'.
331 type: string
332 cpuManagerPolicy:
333 description: Control the CPU management policy on the node.
334 type: string
335 podPidsLimit:
336 description: Controls the maximum number of processes allowed
337 to run in a pod.
338 type: integer
339 required:
340 - cpuManagerPolicy
341 type: object
342 labels:
343 additionalProperties:
344 type: string
345 description: The map of Kubernetes labels (key/value pairs) to
346 be applied to each node. These will added in addition to any
347 default label(s) that Kubernetes may apply to the node.
348 type: object
349 linuxNodeConfig:
350 description: Parameters that can be configured on Linux nodes.
351 properties:
352 sysctls:
353 additionalProperties:
354 type: string
355 description: The Linux kernel parameters to be applied to
356 the nodes and all pods running on the nodes.
357 type: object
358 required:
359 - sysctls
360 type: object
361 localNvmeSsdBlockConfig:
362 description: Immutable. Parameters for raw-block local NVMe SSDs.
363 properties:
364 localSsdCount:
365 description: Immutable. Number of raw-block local NVMe SSD
366 disks to be attached to the node. Each local SSD is 375
367 GB in size.
368 type: integer
369 required:
370 - localSsdCount
371 type: object
372 localSsdCount:
373 description: Immutable. The number of local SSD disks to be attached
374 to the node.
375 type: integer
376 loggingVariant:
377 description: Type of logging agent that is used as the default
378 value for node pools in the cluster. Valid values include DEFAULT
379 and MAX_THROUGHPUT.
380 type: string
381 machineType:
382 description: Immutable. The name of a Google Compute Engine machine
383 type.
384 type: string
385 metadata:
386 additionalProperties:
387 type: string
388 description: Immutable. The metadata key/value pairs assigned
389 to instances in the cluster.
390 type: object
391 minCpuPlatform:
392 description: Immutable. Minimum CPU platform to be used by this
393 instance. The instance may be scheduled on the specified or
394 newer CPU platform.
395 type: string
396 nodeGroupRef:
397 description: |-
398 Immutable. Setting this field will assign instances
399 of this pool to run on the specified node group. This is useful
400 for running workloads on sole tenant nodes.
401 oneOf:
402 - not:
403 required:
404 - external
405 required:
406 - name
407 - not:
408 anyOf:
409 - required:
410 - name
411 - required:
412 - namespace
413 required:
414 - external
415 properties:
416 external:
417 description: 'Allowed value: The `name` field of a `ComputeNodeGroup`
418 resource.'
419 type: string
420 name:
421 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
422 type: string
423 namespace:
424 description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
425 type: string
426 type: object
427 oauthScopes:
428 description: Immutable. The set of Google API scopes to be made
429 available on all of the node VMs.
430 items:
431 type: string
432 type: array
433 preemptible:
434 description: Immutable. Whether the nodes are created as preemptible
435 VM instances.
436 type: boolean
437 reservationAffinity:
438 description: Immutable. The reservation affinity configuration
439 for the node pool.
440 properties:
441 consumeReservationType:
442 description: Immutable. Corresponds to the type of reservation
443 consumption.
444 type: string
445 key:
446 description: Immutable. The label key of a reservation resource.
447 type: string
448 values:
449 description: Immutable. The label values of the reservation
450 resource.
451 items:
452 type: string
453 type: array
454 required:
455 - consumeReservationType
456 type: object
457 resourceLabels:
458 additionalProperties:
459 type: string
460 description: The GCE resource labels (a map of key/value pairs)
461 to be applied to the node pool.
462 type: object
463 sandboxConfig:
464 description: Immutable. Sandbox configuration for this node.
465 properties:
466 sandboxType:
467 description: Type of the sandbox to use for the node (e.g.
468 'gvisor').
469 type: string
470 required:
471 - sandboxType
472 type: object
473 serviceAccountRef:
474 oneOf:
475 - not:
476 required:
477 - external
478 required:
479 - name
480 - not:
481 anyOf:
482 - required:
483 - name
484 - required:
485 - namespace
486 required:
487 - external
488 properties:
489 external:
490 description: 'Allowed value: The `email` field of an `IAMServiceAccount`
491 resource.'
492 type: string
493 name:
494 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
495 type: string
496 namespace:
497 description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
498 type: string
499 type: object
500 shieldedInstanceConfig:
501 description: Immutable. Shielded Instance options.
502 properties:
503 enableIntegrityMonitoring:
504 description: Immutable. Defines whether the instance has integrity
505 monitoring enabled.
506 type: boolean
507 enableSecureBoot:
508 description: Immutable. Defines whether the instance has Secure
509 Boot enabled.
510 type: boolean
511 type: object
512 spot:
513 description: Immutable. Whether the nodes are created as spot
514 VM instances.
515 type: boolean
516 tags:
517 description: The list of instance tags applied to all nodes.
518 items:
519 type: string
520 type: array
521 taint:
522 description: Immutable. List of Kubernetes taints to be applied
523 to each node.
524 items:
525 properties:
526 effect:
527 description: Immutable. Effect for taint.
528 type: string
529 key:
530 description: Immutable. Key for taint.
531 type: string
532 value:
533 description: Immutable. Value for taint.
534 type: string
535 required:
536 - effect
537 - key
538 - value
539 type: object
540 type: array
541 workloadMetadataConfig:
542 description: The workload metadata configuration for this node.
543 properties:
544 mode:
545 description: Mode is the configuration for how to expose metadata
546 to workloads running on the node.
547 type: string
548 nodeMetadata:
549 description: DEPRECATED. Deprecated in favor of mode. NodeMetadata
550 is the configuration for how to expose metadata to the workloads
551 running on the node.
552 type: string
553 type: object
554 type: object
555 nodeCount:
556 description: The number of nodes per instance group. This field can
557 be used to update the number of nodes per instance group but should
558 not be used alongside autoscaling.
559 type: integer
560 nodeLocations:
561 description: The list of zones in which the node pool's nodes should
562 be located. Nodes must be in the region of their regional cluster
563 or in the same region as their cluster's zone for zonal clusters.
564 If unspecified, the cluster-level node_locations will be used.
565 items:
566 type: string
567 type: array
568 placementPolicy:
569 description: Immutable. Specifies the node placement policy.
570 properties:
571 type:
572 description: Type defines the type of placement policy.
573 type: string
574 required:
575 - type
576 type: object
577 resourceID:
578 description: Immutable. Optional. The name of the resource. Used for
579 creation and acquisition. When unset, the value of `metadata.name`
580 is used as the default.
581 type: string
582 upgradeSettings:
583 description: Specify node upgrade settings to change how many nodes
584 GKE attempts to upgrade at once. The number of nodes upgraded simultaneously
585 is the sum of max_surge and max_unavailable. The maximum number
586 of nodes upgraded simultaneously is limited to 20.
587 properties:
588 blueGreenSettings:
589 description: Settings for BlueGreen node pool upgrade.
590 properties:
591 nodePoolSoakDuration:
592 description: Time needed after draining entire blue pool.
593 After this period, blue pool will be cleaned up.
594 type: string
595 standardRolloutPolicy:
596 description: Standard rollout policy is the default policy
597 for blue-green.
598 properties:
599 batchNodeCount:
600 description: Number of blue nodes to drain in a batch.
601 type: integer
602 batchPercentage:
603 description: Percentage of the blue pool nodes to drain
604 in a batch.
605 type: number
606 batchSoakDuration:
607 description: Soak time after each batch gets drained.
608 type: string
609 type: object
610 required:
611 - standardRolloutPolicy
612 type: object
613 maxSurge:
614 description: The number of additional nodes that can be added
615 to the node pool during an upgrade. Increasing max_surge raises
616 the number of nodes that can be upgraded simultaneously. Can
617 be set to 0 or greater.
618 type: integer
619 maxUnavailable:
620 description: The number of nodes that can be simultaneously unavailable
621 during an upgrade. Increasing max_unavailable raises the number
622 of nodes that can be upgraded in parallel. Can be set to 0 or
623 greater.
624 type: integer
625 strategy:
626 description: Update strategy for the given nodepool.
627 type: string
628 type: object
629 version:
630 type: string
631 required:
632 - clusterRef
633 - location
634 type: object
635 status:
636 properties:
637 conditions:
638 description: Conditions represent the latest available observation
639 of the resource's current state.
640 items:
641 properties:
642 lastTransitionTime:
643 description: Last time the condition transitioned from one status
644 to another.
645 type: string
646 message:
647 description: Human-readable message indicating details about
648 last transition.
649 type: string
650 reason:
651 description: Unique, one-word, CamelCase reason for the condition's
652 last transition.
653 type: string
654 status:
655 description: Status is the status of the condition. Can be True,
656 False, Unknown.
657 type: string
658 type:
659 description: Type is the type of the condition.
660 type: string
661 type: object
662 type: array
663 instanceGroupUrls:
664 description: The resource URLs of the managed instance groups associated
665 with this node pool.
666 items:
667 type: string
668 type: array
669 managedInstanceGroupUrls:
670 description: List of instance group URLs which have been assigned
671 to this node pool.
672 items:
673 type: string
674 type: array
675 observedGeneration:
676 description: ObservedGeneration is the generation of the resource
677 that was most recently observed by the Config Connector controller.
678 If this is equal to metadata.generation, then that means that the
679 current reported status reflects the most recent desired state of
680 the resource.
681 type: integer
682 operation:
683 type: string
684 type: object
685 required:
686 - spec
687 type: object
688 served: true
689 storage: true
690 subresources:
691 status: {}
692status:
693 acceptedNames:
694 kind: ""
695 plural: ""
696 conditions: []
697 storedVersions: []
View as plain text