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