ContainerNodePool

Property Value
Google Cloud Service Name Kubernetes Engine
Google Cloud Service Documentation /kubernetes-engine/docs/
Google Cloud REST Resource Name v1.projects.locations.clusters.nodePools
Google Cloud REST Resource Documentation /kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters.nodePools
Config Connector Resource Short Names containernodepool
gcpcontainernodepool
gcpcontainernodepools
Config Connector Service Name container.googleapis.com
Config Connector Resource Fully Qualified Name containernodepools.container.cnrm.cloud.google.com
Can Be Referenced by IAMPolicy/IAMPolicyMember No
Config Connector Default Average Reconcile Interval In Seconds 600

Custom Resource Definition Properties

Annotations

Fields
cnrm.cloud.google.com/project-id

Spec

Schema

autoscaling:
  locationPolicy: string
  maxNodeCount: integer
  minNodeCount: integer
  totalMaxNodeCount: integer
  totalMinNodeCount: integer
clusterRef:
  external: string
  name: string
  namespace: string
initialNodeCount: integer
location: string
management:
  autoRepair: boolean
  autoUpgrade: boolean
maxPodsPerNode: integer
namePrefix: string
networkConfig:
  additionalNodeNetworkConfigs:
  - networkRef:
      external: string
      name: string
      namespace: string
    subnetworkRef:
      external: string
      name: string
      namespace: string
  additionalPodNetworkConfigs:
  - maxPodsPerNode: integer
    secondaryPodRange: string
    subnetworkRef:
      external: string
      name: string
      namespace: string
  createPodRange: boolean
  enablePrivateNodes: boolean
  podCidrOverprovisionConfig:
    disabled: boolean
  podIpv4CidrBlock: string
  podRange: string
  subnetworkRef:
    external: string
    name: string
    namespace: string
nodeConfig:
  advancedMachineFeatures:
    enableNestedVirtualization: boolean
    threadsPerCore: integer
  bootDiskKMSCryptoKeyRef:
    external: string
    name: string
    namespace: string
  confidentialNodes:
    confidentialInstanceType: string
    enabled: boolean
  diskSizeGb: integer
  diskType: string
  ephemeralStorageConfig:
    localSsdCount: integer
  ephemeralStorageLocalSsdConfig:
    dataCacheCount: integer
    localSsdCount: integer
  fastSocket:
    enabled: boolean
  gcfsConfig:
    enabled: boolean
  guestAccelerator:
  - count: integer
    gpuDriverInstallationConfig:
      gpuDriverVersion: string
    gpuPartitionSize: string
    gpuSharingConfig:
      gpuSharingStrategy: string
      maxSharedClientsPerGpu: integer
    type: string
  gvnic:
    enabled: boolean
  hostMaintenancePolicy:
    maintenanceInterval: string
  imageType: string
  kubeletConfig:
    cpuCfsQuota: boolean
    cpuCfsQuotaPeriod: string
    cpuManagerPolicy: string
    podPidsLimit: integer
  labels:
    string: string
  linuxNodeConfig:
    cgroupMode: string
    sysctls:
      string: string
  localNvmeSsdBlockConfig:
    localSsdCount: integer
  localSsdCount: integer
  loggingVariant: string
  machineType: string
  metadata:
    string: string
  minCpuPlatform: string
  nodeGroupRef:
    external: string
    name: string
    namespace: string
  oauthScopes:
  - string
  preemptible: boolean
  reservationAffinity:
    consumeReservationType: string
    key: string
    values:
    - string
  resourceLabels:
    string: string
  sandboxConfig:
    sandboxType: string
  serviceAccountRef:
    external: string
    name: string
    namespace: string
  shieldedInstanceConfig:
    enableIntegrityMonitoring: boolean
    enableSecureBoot: boolean
  soleTenantConfig:
    nodeAffinity:
    - key: string
      operator: string
      values:
      - string
  spot: boolean
  tags:
  - string
  taint:
  - effect: string
    key: string
    value: string
  windowsNodeConfig:
    osVersion: string
  workloadMetadataConfig:
    mode: string
    nodeMetadata: string
nodeCount: integer
nodeLocations:
- string
placementPolicy:
  policyNameRef:
    external: string
    name: string
    namespace: string
  tpuTopology: string
  type: string
queuedProvisioning:
  enabled: boolean
resourceID: string
upgradeSettings:
  blueGreenSettings:
    nodePoolSoakDuration: string
    standardRolloutPolicy:
      batchNodeCount: integer
      batchPercentage: float
      batchSoakDuration: string
  maxSurge: integer
  maxUnavailable: integer
  strategy: string
version: string
Fields

autoscaling

Optional

object

Autoscaler configuration for this NodePool. Autoscaler is enabled only if a valid configuration is present.

autoscaling.locationPolicy

Optional

string

Location policy used when scaling up a nodepool.

autoscaling.maxNodeCount

Optional

integer

Maximum number of nodes for one location in the node pool. Must be >= min_node_count. There has to be enough quota to scale up the cluster.

autoscaling.minNodeCount

Optional

integer

Minimum number of nodes for one location in the node pool. Must be greater than or equal to 0 and less than or equal to max_node_count.

autoscaling.totalMaxNodeCount

Optional

integer

Maximum number of nodes in the node pool. Must be greater than or equal to total_min_node_count. There has to be enough quota to scale up the cluster. The total_*_node_count fields are mutually exclusive with the *_node_count fields.

autoscaling.totalMinNodeCount

Optional

integer

Minimum number of nodes in the node pool. Must be greater than or equal to 0 and less than or equal to total_max_node_count. The total_*_node_count fields are mutually exclusive with the *_node_count fields.

clusterRef

Required

object

The GKE cluster this node pool belongs to.

clusterRef.external

Optional

string

The GKE cluster. Valid formats: `projects/{projectID}/locations/{location}/clusters/{clusterID}` `projects/{projectID}/zones/{zone}/clusters/{clusterID}`

clusterRef.name

Optional

string

Name of the project resource. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names */

clusterRef.namespace

Optional

string

Namespace of the project resource. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ */

initialNodeCount

Optional

integer

The initial node count for the pool. You must ensure that your Compute Engine resource quota is sufficient for this number of instances. You must also have available firewall and routes quota.

location

Required

string

Immutable. The location (region or zone) of the cluster.

management

Optional

object

NodeManagement configuration for this NodePool.

management.autoRepair

Optional

boolean

A flag that specifies whether the node auto-repair is enabled for the node pool. If enabled, the nodes in this node pool will be monitored and, if they fail health checks too many times, an automatic repair action will be triggered.

management.autoUpgrade

Optional

boolean

A flag that specifies whether node auto-upgrade is enabled for the node pool. If enabled, node auto-upgrade helps keep the nodes in your node pool up to date with the latest release version of Kubernetes.

maxPodsPerNode

Optional

integer

The constraint on the maximum number of pods that can be run simultaneously on a node in the node pool.

namePrefix

Optional

string

Immutable. Creates a unique name for the node pool beginning with the specified prefix. Conflicts with name.

networkConfig

Optional

object

Networking configuration for this NodePool. If specified, it overrides the cluster-level defaults.

networkConfig.additionalNodeNetworkConfigs

Optional

list (object)

We specify the additional node networks for this node pool using this list. Each node network corresponds to an additional interface.

networkConfig.additionalNodeNetworkConfigs[]

Optional

object

networkConfig.additionalNodeNetworkConfigs[].networkRef

Optional

object

ComputeNetworkRef is a reference to a Google Cloud ComputeNetwork.

networkConfig.additionalNodeNetworkConfigs[].networkRef.external

Optional

string

A reference to an externally managed ComputeNetwork resource. Should be in the format "projects/{{projectID}}/global/networks/{{networkID}}".

networkConfig.additionalNodeNetworkConfigs[].networkRef.name

Optional

string

The name of a ComputeNetwork resource.

networkConfig.additionalNodeNetworkConfigs[].networkRef.namespace

Optional

string

The namespace of a ComputeNetwork resource.

networkConfig.additionalNodeNetworkConfigs[].subnetworkRef

Optional

object

ComputeSubnetworkRef is a reference to a Google Cloud ComputeSubnetwork.

networkConfig.additionalNodeNetworkConfigs[].subnetworkRef.external

Optional

string

A reference to an externally managed ComputeSubnetwork resource. Should be in the format "projects/{{projectID}}/regions/{{region}}/subnetworks/{{subnetworkID}}".

networkConfig.additionalNodeNetworkConfigs[].subnetworkRef.name

Optional

string

The name of a ComputeSubnetwork resource.

networkConfig.additionalNodeNetworkConfigs[].subnetworkRef.namespace

Optional

string

The namespace of a ComputeSubnetwork resource.

networkConfig.additionalPodNetworkConfigs

Optional

list (object)

We specify the additional pod networks for this node pool using this list. Each pod network corresponds to an additional alias IP range for the node.

networkConfig.additionalPodNetworkConfigs[]

Optional

object

networkConfig.additionalPodNetworkConfigs[].maxPodsPerNode

Optional

integer

The maximum number of pods per node which use this pod network.

networkConfig.additionalPodNetworkConfigs[].secondaryPodRange

Optional

string

The name of the secondary range on the subnet which provides IP address for this pod range.

networkConfig.additionalPodNetworkConfigs[].subnetworkRef

Optional

object

ComputeSubnetworkRef is a reference to a Google Cloud ComputeSubnetwork.

networkConfig.additionalPodNetworkConfigs[].subnetworkRef.external

Optional

string

A reference to an externally managed ComputeSubnetwork resource. Should be in the format "projects/{{projectID}}/regions/{{region}}/subnetworks/{{subnetworkID}}".

networkConfig.additionalPodNetworkConfigs[].subnetworkRef.name

Optional

string

The name of a ComputeSubnetwork resource.

networkConfig.additionalPodNetworkConfigs[].subnetworkRef.namespace

Optional

string

The namespace of a ComputeSubnetwork resource.

networkConfig.createPodRange

Optional

boolean

Input only. Whether to create a new range for pod IPs in this node pool. Defaults are provided for `pod_range` and `pod_ipv4_cidr_block` if they are not specified. If neither `create_pod_range` or `pod_range` are specified, the cluster-level default (`ip_allocation_policy.cluster_ipv4_cidr_block`) is used. Only applicable if `ip_allocation_policy.use_ip_aliases` is true. This field cannot be changed after the node pool has been created.

networkConfig.enablePrivateNodes

Optional

boolean

Whether nodes have internal IP addresses only. If enable_private_nodes is not specified, then the value is derived from [Cluster.NetworkConfig.default_enable_private_nodes].

networkConfig.podCidrOverprovisionConfig

Optional

object

[PRIVATE FIELD] Pod CIDR size overprovisioning config for the nodepool. Pod CIDR size per node depends on max_pods_per_node. By default, the value of max_pods_per_node is rounded off to next power of 2 and we then double that to get the size of pod CIDR block per node. Example: max_pods_per_node of 30 would result in 64 IPs (/26). This config can disable the doubling of IPs (we still round off to next power of 2) Example: max_pods_per_node of 30 will result in 32 IPs (/27) when overprovisioning is disabled.

networkConfig.podCidrOverprovisionConfig.disabled

Required*

boolean

networkConfig.podIpv4CidrBlock

Optional

string

The IP address range for pod IPs in this node pool. Only applicable if `create_pod_range` is true. Set to blank to have a range chosen with the default size. Set to /netmask (e.g. `/14`) to have a range chosen with a specific netmask. Set to a CIDR notation (e.g. `10.96.0.0/14`) to pick a specific range to use. Only applicable if `ip_allocation_policy.use_ip_aliases` is true. This field cannot be changed after the node pool has been created.

networkConfig.podRange

Optional

string

The ID of the secondary range for pod IPs. If `create_pod_range` is true, this ID is used for the new range. If `create_pod_range` is false, uses an existing secondary range with this ID. Only applicable if `ip_allocation_policy.use_ip_aliases` is true. This field cannot be changed after the node pool has been created.

networkConfig.subnetworkRef

Optional

object

ComputeSubnetworkRef is a reference to a Google Cloud ComputeSubnetwork.

networkConfig.subnetworkRef.external

Optional

string

A reference to an externally managed ComputeSubnetwork resource. Should be in the format "projects/{{projectID}}/regions/{{region}}/subnetworks/{{subnetworkID}}".

networkConfig.subnetworkRef.name

Optional

string

The name of a ComputeSubnetwork resource.

networkConfig.subnetworkRef.namespace

Optional

string

The namespace of a ComputeSubnetwork resource.

nodeConfig

Optional

object

The node configuration of the pool.

nodeConfig.advancedMachineFeatures

Optional

object

Immutable. Specifies options for controlling advanced machine features.

nodeConfig.advancedMachineFeatures.enableNestedVirtualization

Optional

boolean

Immutable. Whether or not to enable nested virtualization (defaults to false).

nodeConfig.advancedMachineFeatures.threadsPerCore

Optional

integer

Immutable. The number of threads per physical core. To disable simultaneous multithreading (SMT) set this to 1. If unset, the maximum number of threads supported per core by the underlying processor is assumed.

nodeConfig.bootDiskKMSCryptoKeyRef

Optional

object

Immutable. Cryptographic key used to encrypt the boot disk.

nodeConfig.bootDiskKMSCryptoKeyRef.external

Optional

string

A reference to an externally managed KMSCryptoKey. Should be in the format `projects/[kms_project_id]/locations/[region]/keyRings/[key_ring_id]/cryptoKeys/[key]`.

nodeConfig.bootDiskKMSCryptoKeyRef.name

Optional

string

The `name` of a `KMSCryptoKey` resource.

nodeConfig.bootDiskKMSCryptoKeyRef.namespace

Optional

string

The `namespace` of a `KMSCryptoKey` resource.

nodeConfig.confidentialNodes

Optional

object

Immutable. Configuration for the confidential nodes feature, which makes nodes run on confidential VMs. Warning: This configuration can't be changed (or added/removed) after pool creation without deleting and recreating the entire pool.

nodeConfig.confidentialNodes.confidentialInstanceType

Optional

string

Immutable. Defines the type of technology used by the confidential node.

nodeConfig.confidentialNodes.enabled

Required*

boolean

Immutable. Whether Confidential Nodes feature is enabled for all nodes in this pool.

nodeConfig.diskSizeGb

Optional

integer

Immutable. Size of the disk attached to each node, specified in GB. The smallest allowed disk size is 10GB.

nodeConfig.diskType

Optional

string

Immutable. Type of the disk attached to each node. Such as pd-standard, pd-balanced or pd-ssd.

nodeConfig.ephemeralStorageConfig

Optional

object

Immutable. Parameters for the ephemeral storage filesystem. If unspecified, ephemeral storage is backed by the boot disk.

nodeConfig.ephemeralStorageConfig.localSsdCount

Required*

integer

Immutable. Number of local SSDs to use to back ephemeral storage. Uses NVMe interfaces. Each local SSD must be 375 or 3000 GB in size, and all local SSDs must share the same size.

nodeConfig.ephemeralStorageLocalSsdConfig

Optional

object

Immutable. Parameters for the ephemeral storage filesystem. If unspecified, ephemeral storage is backed by the boot disk.

nodeConfig.ephemeralStorageLocalSsdConfig.dataCacheCount

Optional

integer

Immutable. Number of local SSDs to be utilized for GKE Data Cache. Uses NVMe interfaces.

nodeConfig.ephemeralStorageLocalSsdConfig.localSsdCount

Required*

integer

Immutable. Number of local SSDs to use to back ephemeral storage. Uses NVMe interfaces. Each local SSD must be 375 or 3000 GB in size, and all local SSDs must share the same size.

nodeConfig.fastSocket

Optional

object

Enable or disable NCCL Fast Socket in the node pool.

nodeConfig.fastSocket.enabled

Required*

boolean

Whether or not NCCL Fast Socket is enabled.

nodeConfig.gcfsConfig

Optional

object

Immutable. GCFS configuration for this node.

nodeConfig.gcfsConfig.enabled

Required*

boolean

Whether or not GCFS is enabled.

nodeConfig.guestAccelerator

Optional

list (object)

Immutable. List of the type and count of accelerator cards attached to the instance.

nodeConfig.guestAccelerator[]

Optional

object

nodeConfig.guestAccelerator[].count

Required*

integer

Immutable. The number of the accelerator cards exposed to an instance.

nodeConfig.guestAccelerator[].gpuDriverInstallationConfig

Optional

object

Immutable. Configuration for auto installation of GPU driver.

nodeConfig.guestAccelerator[].gpuDriverInstallationConfig.gpuDriverVersion

Required*

string

Immutable. Mode for how the GPU driver is installed.

nodeConfig.guestAccelerator[].gpuPartitionSize

Optional

string

Immutable. Size of partitions to create on the GPU. Valid values are described in the NVIDIA mig user guide (https://docs.nvidia.com/datacenter/tesla/mig-user-guide/#partitioning).

nodeConfig.guestAccelerator[].gpuSharingConfig

Optional

object

Immutable. Configuration for GPU sharing.

nodeConfig.guestAccelerator[].gpuSharingConfig.gpuSharingStrategy

Required*

string

Immutable. The type of GPU sharing strategy to enable on the GPU node. Possible values are described in the API package (https://pkg.go.dev/google.golang.org/api/container/v1#GPUSharingConfig).

nodeConfig.guestAccelerator[].gpuSharingConfig.maxSharedClientsPerGpu

Required*

integer

Immutable. The maximum number of containers that can share a GPU.

nodeConfig.guestAccelerator[].type

Required*

string

Immutable. The accelerator type resource name.

nodeConfig.gvnic

Optional

object

Immutable. Enable or disable gvnic in the node pool.

nodeConfig.gvnic.enabled

Required*

boolean

Immutable. Whether or not gvnic is enabled.

nodeConfig.hostMaintenancePolicy

Optional

object

Immutable. The maintenance policy for the hosts on which the GKE VMs run on.

nodeConfig.hostMaintenancePolicy.maintenanceInterval

Required*

string

Immutable. .

nodeConfig.imageType

Optional

string

The image type to use for this node. Note that for a given image type, the latest version of it will be used.

nodeConfig.kubeletConfig

Optional

object

Node kubelet configs.

nodeConfig.kubeletConfig.cpuCfsQuota

Optional

boolean

Enable CPU CFS quota enforcement for containers that specify CPU limits.

nodeConfig.kubeletConfig.cpuCfsQuotaPeriod

Optional

string

Set the CPU CFS quota period value 'cpu.cfs_period_us'.

nodeConfig.kubeletConfig.cpuManagerPolicy

Required*

string

Control the CPU management policy on the node.

nodeConfig.kubeletConfig.podPidsLimit

Optional

integer

Controls the maximum number of processes allowed to run in a pod.

nodeConfig.labels

Optional

map (key: string, value: string)

Immutable. The map of Kubernetes labels (key/value pairs) to be applied to each node. These will added in addition to any default label(s) that Kubernetes may apply to the node.

nodeConfig.linuxNodeConfig

Optional

object

Parameters that can be configured on Linux nodes.

nodeConfig.linuxNodeConfig.cgroupMode

Optional

string

cgroupMode specifies the cgroup mode to be used on the node.

nodeConfig.linuxNodeConfig.sysctls

Optional

map (key: string, value: string)

The Linux kernel parameters to be applied to the nodes and all pods running on the nodes.

nodeConfig.localNvmeSsdBlockConfig

Optional

object

Immutable. Parameters for raw-block local NVMe SSDs.

nodeConfig.localNvmeSsdBlockConfig.localSsdCount

Required*

integer

Immutable. Number of raw-block local NVMe SSD disks to be attached to the node. Each local SSD is 375 GB in size.

nodeConfig.localSsdCount

Optional

integer

Immutable. The number of local SSD disks to be attached to the node.

nodeConfig.loggingVariant

Optional

string

Type of logging agent that is used as the default value for node pools in the cluster. Valid values include DEFAULT and MAX_THROUGHPUT.

nodeConfig.machineType

Optional

string

Immutable. The name of a Google Compute Engine machine type.

nodeConfig.metadata

Optional

map (key: string, value: string)

Immutable. The metadata key/value pairs assigned to instances in the cluster.

nodeConfig.minCpuPlatform

Optional

string

Immutable. Minimum CPU platform to be used by this instance. The instance may be scheduled on the specified or newer CPU platform.

nodeConfig.nodeGroupRef

Optional

object

Immutable. Setting this field will assign instances of this pool to run on the specified node group. This is useful for running workloads on sole tenant nodes.

nodeConfig.nodeGroupRef.external

Optional

string

A reference to an externally managed ComputeNodeGroup resource. Should be in the format "projects/{{projectID}}/zones/{{zone}}/nodeGroups/{{nodeGroupID}}".

nodeConfig.nodeGroupRef.name

Optional

string

The name of a ComputeNodeGroup resource.

nodeConfig.nodeGroupRef.namespace

Optional

string

The namespace of a ComputeNodeGroup resource.

nodeConfig.oauthScopes

Optional

list (string)

Immutable. The set of Google API scopes to be made available on all of the node VMs.

nodeConfig.oauthScopes[]

Optional

string

nodeConfig.preemptible

Optional

boolean

Immutable. Whether the nodes are created as preemptible VM instances.

nodeConfig.reservationAffinity

Optional

object

Immutable. The reservation affinity configuration for the node pool.

nodeConfig.reservationAffinity.consumeReservationType

Required*

string

Immutable. Corresponds to the type of reservation consumption.

nodeConfig.reservationAffinity.key

Optional

string

Immutable. The label key of a reservation resource.

nodeConfig.reservationAffinity.values

Optional

list (string)

Immutable. The label values of the reservation resource.

nodeConfig.reservationAffinity.values[]

Optional

string

nodeConfig.resourceLabels

Optional

map (key: string, value: string)

The GCE resource labels (a map of key/value pairs) to be applied to the node pool.

nodeConfig.sandboxConfig

Optional

object

Immutable. Sandbox configuration for this node.

nodeConfig.sandboxConfig.sandboxType

Required*

string

Type of the sandbox to use for the node (e.g. 'gvisor').

nodeConfig.serviceAccountRef

Optional

object

nodeConfig.serviceAccountRef.external

Optional

string

The `email` field of an `IAMServiceAccount` resource.

nodeConfig.serviceAccountRef.name

Optional

string

Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

nodeConfig.serviceAccountRef.namespace

Optional

string

Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/

nodeConfig.shieldedInstanceConfig

Optional

object

Immutable. Shielded Instance options.

nodeConfig.shieldedInstanceConfig.enableIntegrityMonitoring

Optional

boolean

Immutable. Defines whether the instance has integrity monitoring enabled.

nodeConfig.shieldedInstanceConfig.enableSecureBoot

Optional

boolean

Immutable. Defines whether the instance has Secure Boot enabled.

nodeConfig.soleTenantConfig

Optional

object

Immutable. Node affinity options for sole tenant node pools.

nodeConfig.soleTenantConfig.nodeAffinity

Required*

list (object)

Immutable. .

nodeConfig.soleTenantConfig.nodeAffinity[]

Required*

object

nodeConfig.soleTenantConfig.nodeAffinity[].key

Required*

string

Immutable. .

nodeConfig.soleTenantConfig.nodeAffinity[].operator

Required*

string

Immutable. .

nodeConfig.soleTenantConfig.nodeAffinity[].values

Required*

list (string)

Immutable. .

nodeConfig.soleTenantConfig.nodeAffinity[].values[]

Required*

string

nodeConfig.spot

Optional

boolean

Immutable. Whether the nodes are created as spot VM instances.

nodeConfig.tags

Optional

list (string)

The list of instance tags applied to all nodes.

nodeConfig.tags[]

Optional

string

nodeConfig.taint

Optional

list (object)

List of Kubernetes taints to be applied to each node.

nodeConfig.taint[]

Optional

object

nodeConfig.taint[].effect

Required*

string

Effect for taint.

nodeConfig.taint[].key

Required*

string

Key for taint.

nodeConfig.taint[].value

Required*

string

Value for taint.

nodeConfig.windowsNodeConfig

Optional

object

Parameters that can be configured on Windows nodes.

nodeConfig.windowsNodeConfig.osVersion

Optional

string

Operating system version of the Windows nodes.

nodeConfig.workloadMetadataConfig

Optional

object

The workload metadata configuration for this node.

nodeConfig.workloadMetadataConfig.mode

Optional

string

Mode is the configuration for how to expose metadata to workloads running on the node.

nodeConfig.workloadMetadataConfig.nodeMetadata

Optional

string

DEPRECATED. Deprecated in favor of mode. NodeMetadata is the configuration for how to expose metadata to the workloads running on the node.

nodeCount

Optional

integer

The node count of the pool.

nodeLocations

Optional

list (string)

The list of Google Compute Engine zones in which the NodePool's nodes should be located.

nodeLocations[]

Optional

string

placementPolicy

Optional

object

Specifies the node placement policy.

placementPolicy.policyNameRef

Optional

object

If set, refers to the name of a custom resource policy supplied by the user. The resource policy must be in the same project and region as the node pool. If not found, InvalidArgument error is returned.

placementPolicy.policyNameRef.external

Optional

string

A reference to an externally managed ComputeResourcePolicy resource. Should be in the format "projects/{project}/regions/{region}/resourcePolicies/{resourcePolicy}".

placementPolicy.policyNameRef.name

Optional

string

The name of a ComputeResourcePolicy resource.

placementPolicy.policyNameRef.namespace

Optional

string

The namespace of a ComputeResourcePolicy resource.

placementPolicy.tpuTopology

Optional

string

Optional. TPU placement topology for pod slice node pool.

placementPolicy.type

Required*

string

The type of placement.

queuedProvisioning

Optional

object

Immutable. Specifies the configuration of queued provisioning.

queuedProvisioning.enabled

Optional

boolean

Immutable. Denotes that this node pool is QRM specific, meaning nodes can be only obtained through queuing via the Cluster Autoscaler ProvisioningRequest API.

resourceID

Optional

string

Immutable. Optional. The name of the resource. Used for creation and acquisition. When unset, the value of `metadata.name` is used as the default.

upgradeSettings

Optional

object

Upgrade settings control disruption and speed of the upgrade.

upgradeSettings.blueGreenSettings

Optional

object

Settings for blue-green upgrade strategy.

upgradeSettings.blueGreenSettings.nodePoolSoakDuration

Optional

string

Time needed after draining entire blue pool. After this period, blue pool will be cleaned up.

upgradeSettings.blueGreenSettings.standardRolloutPolicy

Required*

object

Standard policy for the blue-green upgrade.

upgradeSettings.blueGreenSettings.standardRolloutPolicy.batchNodeCount

Optional

integer

Number of blue nodes to drain in a batch.

upgradeSettings.blueGreenSettings.standardRolloutPolicy.batchPercentage

Optional

float

Percentage of the bool pool nodes to drain in a batch. The range of this field should be (0.0, 1.0].

upgradeSettings.blueGreenSettings.standardRolloutPolicy.batchSoakDuration

Optional

string

Soak time after each batch gets drained. A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".

upgradeSettings.maxSurge

Optional

integer

The maximum number of nodes that can be created beyond the current size of the node pool during the upgrade process.

upgradeSettings.maxUnavailable

Optional

integer

The maximum number of nodes that can be simultaneously unavailable during the upgrade process. A node is considered available if its status is Ready.

upgradeSettings.strategy

Optional

string

Update strategy of the node pool.

version

Optional

string

The version of Kubernetes running on this NodePool's nodes.

* Field is required when parent field is specified

Status

Schema

conditions:
- lastTransitionTime: string
  message: string
  reason: string
  status: string
  type: string
externalRef: string
instanceGroupUrls:
- string
managedInstanceGroupUrls:
- string
observedGeneration: integer
observedState:
  nodeConfig:
    taint:
    - effect: string
      key: string
      value: string
  version: string
operation: string
Fields
conditions

list (object)

Conditions represent the latest available observations of the ContainerNodePool's current state.

conditions[]

object

conditions[].lastTransitionTime

string

Last time the condition transitioned from one status to another.

conditions[].message

string

Human-readable message indicating details about last transition.

conditions[].reason

string

Unique, one-word, CamelCase reason for the condition's last transition.

conditions[].status

string

Status is the status of the condition. Can be True, False, Unknown.

conditions[].type

string

Type is the type of the condition.

externalRef

string

A unique specifier for the ContainerNodePool resource in Google Cloud.

instanceGroupUrls

list (string)

The resource URLs of the managed instance groups associated with this node pool.

instanceGroupUrls[]

string

managedInstanceGroupUrls

list (string)

List of instance group URLs which have been assigned to this node pool.

managedInstanceGroupUrls[]

string

observedGeneration

integer

ObservedGeneration is the generation of the resource that was most recently observed by the Config Connector controller. If this is equal to metadata.generation, then that means that the current reported status reflects the most recent desired state of the resource.

observedState

object

The observed state of the underlying Google Cloud resource.

observedState.nodeConfig

object

The observed node config of the GKE node pool.

observedState.nodeConfig.taint

list (object)

List of Kubernetes taints to be applied to each node.

observedState.nodeConfig.taint[]

object

observedState.nodeConfig.taint[].effect

string

Effect for taint.

observedState.nodeConfig.taint[].key

string

Key for taint.

observedState.nodeConfig.taint[].value

string

Value for taint.

observedState.version

string

operation

string

Sample YAML(s)

Basic Node Pool

# Copyright 2020 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
apiVersion: container.cnrm.cloud.google.com/v1beta1
kind: ContainerNodePool
metadata:
  labels:
    label-one: "value-one"
  name: containernodepool-sample-basic
spec:
  location: us-east1-c
  autoscaling:
    minNodeCount: 1
    maxNodeCount: 3
  nodeConfig:
    machineType: n1-standard-1
    diskSizeGb: 100
    diskType: pd-standard
    tags:
      - tagone
      - tagtwo
    preemptible: false
    minCpuPlatform: "Intel Haswell"
    oauthScopes:
      - "https://www.googleapis.com/auth/logging.write"
      - "https://www.googleapis.com/auth/monitoring"
    guestAccelerator:
      - type: "nvidia-tesla-t4"
        count: 1
    metadata:
      disable-legacy-endpoints: "true"
  management:
    autoRepair: true
    autoUpgrade: true
  clusterRef:
    name: containernodepool-dep-basic
---
apiVersion: container.cnrm.cloud.google.com/v1beta1
kind: ContainerCluster
metadata:
  annotations:
    cnrm.cloud.google.com/remove-default-node-pool: "true"
  name: containernodepool-dep-basic
spec:
  location: us-east1-c
  initialNodeCount: 1

Sole Tenant Node Pool

# Copyright 2020 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
apiVersion: container.cnrm.cloud.google.com/v1beta1
kind: ContainerNodePool
metadata:
  name: containernodepool-sample-soletenancy
spec:
  location: us-central1-b
  autoscaling:
    minNodeCount: 1
    maxNodeCount: 3
  nodeConfig:
    machineType: n1-standard-2
    nodeGroupRef:
      name: containernodepool-dep-soletenancy
  clusterRef:
    name: containernodepool-dep-soletenancy
---
apiVersion: compute.cnrm.cloud.google.com/v1beta1
kind: ComputeNodeGroup
metadata:
  name: containernodepool-dep-soletenancy
spec:
  description: A single sole-tenant node in the us-central1-b zone.
  size: 1
  nodeTemplateRef:
    name: containernodepool-dep-soletenancy
  zone: us-central1-b
---
apiVersion: compute.cnrm.cloud.google.com/v1beta1
kind: ComputeNodeTemplate
metadata:
  name: containernodepool-dep-soletenancy
spec:
  region: us-central1
  nodeType: n1-node-96-624
---
apiVersion: container.cnrm.cloud.google.com/v1beta1
kind: ContainerCluster
metadata:
  annotations:
    cnrm.cloud.google.com/remove-default-node-pool: "true"
  name: containernodepool-dep-soletenancy
spec:
  description: A cluster using the Compute Engine sole-tenant node.
  location: us-central1-b
  initialNodeCount: 1