# Class NodeConfig (2.65.0)

2.65.0 (latest) 2.62.0 2.61.0 2.60.0 2.59.0 2.58.0 2.57.0 2.56.1 2.55.1 2.54.0 2.53.0 2.52.0 2.50.0 2.49.0 2.48.0 2.47.1 2.46.0 2.45.0 2.44.0 2.43.0 2.42.0 2.41.0 2.40.0 2.39.0 2.38.0 2.37.0 2.36.0 2.35.0 2.34.0 2.33.0 2.32.0 2.31.0 2.30.0 2.29.0 2.28.0 2.27.0 2.26.0 2.25.0 2.24.0 2.23.0 2.22.0 2.21.0 2.20.0 2.19.0 2.18.0 2.17.4 2.16.0 2.15.0 2.14.0 2.13.0 2.12.2 2.11.2 2.10.8 2.9.0 2.8.1 2.7.1 2.6.1 2.5.0 2.4.1 2.3.1 2.2.0 2.1.0 2.0.1 1.0.3 0.5.0 0.4.0 0.3.0

    NodeConfig(mapping=None, *, ignore_unknown_fields=False, **kwargs)

Parameters that describe the nodes in a cluster.

GKE Autopilot clusters do not recognize parameters in
`NodeConfig`. Use
`AutoprovisioningNodePoolDefaults][google.container.v1beta1.AutoprovisioningNodePoolDefaults]`
instead.

.. _oneof: <https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields>

| ## Attributes ||
|---|---|
| **Name** | **Description** |
| `machine_type` | `str` The name of a Google Compute Engine \`machine type |
| `disk_size_gb` | `int` Size of the disk attached to each node, specified in GB. The smallest allowed disk size is 10GB. If unspecified, the default disk size is 100GB. |
| `oauth_scopes` | `MutableSequence[str]` The set of Google API scopes to be made available on all of the node VMs under the "default" service account. The following scopes are recommended, but not required, and by default are not included: - `https://www.googleapis.com/auth/compute` is required for mounting persistent storage on your nodes. - `https://www.googleapis.com/auth/devstorage.read_only` is required for communicating with \*\*gcr.io\*\* (the \`Artifact Registry |
| `service_account` | `str` The Google Cloud Platform Service Account to be used by the node VMs. Specify the email address of the Service Account; otherwise, if no Service Account is specified, the "default" service account is used. |
| `metadata` | `MutableMapping[str, str]` The metadata key/value pairs assigned to instances in the cluster. Keys must conform to the regexp `[a-zA-Z0-9-_]+` and be less than 128 bytes in length. These are reflected as part of a URL in the metadata server. Additionally, to avoid ambiguity, keys must not conflict with any other metadata keys for the project or be one of the reserved keys: - "cluster-location" - "cluster-name" - "cluster-uid" - "configure-sh" - "containerd-configure-sh" - "enable-oslogin" - "gci-ensure-gke-docker" - "gci-metrics-enabled" - "gci-update-strategy" - "instance-template" - "kube-env" - "startup-script" - "user-data" - "disable-address-manager" - "windows-startup-script-ps1" - "common-psm1" - "k8s-node-setup-psm1" - "install-ssh-psm1" - "user-profile-psm1" Values are free-form strings, and only have meaning as interpreted by the image running in the instance. The only restriction placed on them is that each value's size must be less than or equal to 32 KB. The total size of all keys and values must be less than 512 KB. |
| `image_type` | `str` The image type to use for this node. Note that for a given image type, the latest version of it will be used. Please see https://cloud.google.com/kubernetes-engine/docs/concepts/node-images for available image types. |
| `node_image_config` | `https://docs.cloud.google.com/python/docs/reference/container/latest/google.cloud.container_v1beta1.types.CustomImageConfig` The node image configuration to use for this node pool. Note that this is only applicable for node pools using image_type=CUSTOM. |
| `labels` | `MutableMapping[str, str]` The Kubernetes labels (key/value pairs) to apply to each node. The values in this field are added to the set of default labels Kubernetes applies to nodes. This field has the following restrictions: - Labels must use a valid Kubernetes syntax and character set, as defined in https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#syntax-and-character-set. - This field supports up to 1,024 total characters in a single request. Depending on the Kubernetes version, keys in this field might conflict with the keys of the default labels, which might change which of your labels are applied to the nodes. Assume that the behavior is unpredictable and avoid label key conflicts. For more information about the default labels, see: https://kubernetes.io/docs/reference/labels-annotations-taints/ |
| `local_ssd_count` | `int` The number of local SSD disks to be attached to the node. The limit for this value is dependent upon the maximum number of disks available on a machine per zone. See: https://cloud.google.com/compute/docs/disks/local-ssd for more information. |
| `tags` | `MutableSequence[str]` The list of instance tags applied to all nodes. Tags are used to identify valid sources or targets for network firewalls and are specified by the client during cluster or node pool creation. Each tag within the list must comply with RFC1035. |
| `preemptible` | `bool` Whether the nodes are created as preemptible VM instances. See: https://cloud.google.com/compute/docs/instances/preemptible for more information about preemptible VM instances. |
| `accelerators` | `MutableSequence[https://docs.cloud.google.com/python/docs/reference/container/latest/google.cloud.container_v1beta1.types.AcceleratorConfig]` A list of hardware accelerators to be attached to each node. See https://cloud.google.com/compute/docs/gpus for more information about support for GPUs. |
| `sandbox_config` | `https://docs.cloud.google.com/python/docs/reference/container/latest/google.cloud.container_v1beta1.types.SandboxConfig` Sandbox configuration for this node. |
| `node_group` | `str` 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 |
| `reservation_affinity` | `https://docs.cloud.google.com/python/docs/reference/container/latest/google.cloud.container_v1beta1.types.ReservationAffinity` The optional reservation affinity. Setting this field will apply the specified \`Zonal Compute Reservation |
| `disk_type` | `str` Type of the disk attached to each node (e.g. 'pd-standard', 'pd-ssd' or 'pd-balanced') If unspecified, the default disk type is 'pd-standard' |
| `min_cpu_platform` | `str` Minimum CPU platform to be used by this instance. The instance may be scheduled on the specified or newer CPU platform. Applicable values are the friendly names of CPU platforms, such as `minCpuPlatform: "Intel Haswell"` or `minCpuPlatform: "Intel Sandy Bridge"`. For more information, read \`how to specify min CPU platform |
| `workload_metadata_config` | `https://docs.cloud.google.com/python/docs/reference/container/latest/google.cloud.container_v1beta1.types.WorkloadMetadataConfig` The workload metadata configuration for this node. |
| `taints` | `MutableSequence[https://docs.cloud.google.com/python/docs/reference/container/latest/google.cloud.container_v1beta1.types.NodeTaint]` List of kubernetes taints to be applied to each node. For more information, including usage and the valid values, see: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/ |
| `boot_disk_kms_key` | `str` The Customer Managed Encryption Key used to encrypt the boot disk attached to each node in the node pool. This should be of the form projects/\[KEY_PROJECT_ID\]/locations/\[LOCATION\]/keyRings/\[RING_NAME\]/cryptoKeys/\[KEY_NAME\]. For more information about protecting resources with Cloud KMS Keys please see: https://cloud.google.com/compute/docs/disks/customer-managed-encryption |
| `shielded_instance_config` | `https://docs.cloud.google.com/python/docs/reference/container/latest/google.cloud.container_v1beta1.types.ShieldedInstanceConfig` Shielded Instance options. |
| `linux_node_config` | `https://docs.cloud.google.com/python/docs/reference/container/latest/google.cloud.container_v1beta1.types.LinuxNodeConfig` Parameters that can be configured on Linux nodes. |
| `kubelet_config` | `https://docs.cloud.google.com/python/docs/reference/container/latest/google.cloud.container_v1beta1.types.NodeKubeletConfig` Node kubelet configs. |
| `ephemeral_storage_config` | `https://docs.cloud.google.com/python/docs/reference/container/latest/google.cloud.container_v1beta1.types.EphemeralStorageConfig` Parameters for the ephemeral storage filesystem. If unspecified, ephemeral storage is backed by the boot disk. |
| `gcfs_config` | `https://docs.cloud.google.com/python/docs/reference/container/latest/google.cloud.container_v1beta1.types.GcfsConfig` GCFS (Google Container File System) configs. |
| `advanced_machine_features` | `https://docs.cloud.google.com/python/docs/reference/container/latest/google.cloud.container_v1beta1.types.AdvancedMachineFeatures` Advanced features for the Compute Engine VM. |
| `gvnic` | `https://docs.cloud.google.com/python/docs/reference/container/latest/google.cloud.container_v1beta1.types.VirtualNIC` Enable or disable gvnic on the node pool. |
| `spot` | `bool` Spot flag for enabling Spot VM, which is a rebrand of the existing preemptible flag. |
| `confidential_nodes` | `https://docs.cloud.google.com/python/docs/reference/container/latest/google.cloud.container_v1beta1.types.ConfidentialNodes` Confidential nodes config. All the nodes in the node pool will be Confidential VM once enabled. |
| `fast_socket` | `https://docs.cloud.google.com/python/docs/reference/container/latest/google.cloud.container_v1beta1.types.FastSocket` Enable or disable NCCL fast socket for the node pool. This field is a member of `oneof`_ `_fast_socket`. |
| `resource_labels` | `MutableMapping[str, str]` The resource labels for the node pool to use to annotate any related Google Compute Engine resources. |
| `logging_config` | `https://docs.cloud.google.com/python/docs/reference/container/latest/google.cloud.container_v1beta1.types.NodePoolLoggingConfig` Logging configuration. |
| `windows_node_config` | `https://docs.cloud.google.com/python/docs/reference/container/latest/google.cloud.container_v1beta1.types.WindowsNodeConfig` Parameters that can be configured on Windows nodes. |
| `local_nvme_ssd_block_config` | `https://docs.cloud.google.com/python/docs/reference/container/latest/google.cloud.container_v1beta1.types.LocalNvmeSsdBlockConfig` Parameters for using raw-block Local NVMe SSDs. |
| `ephemeral_storage_local_ssd_config` | `https://docs.cloud.google.com/python/docs/reference/container/latest/google.cloud.container_v1beta1.types.EphemeralStorageLocalSsdConfig` Parameters for the node ephemeral storage using Local SSDs. If unspecified, ephemeral storage is backed by the boot disk. This field is functionally equivalent to the ephemeral_storage_config |
| `sole_tenant_config` | `https://docs.cloud.google.com/python/docs/reference/container/latest/google.cloud.container_v1beta1.types.SoleTenantConfig` Parameters for node pools to be backed by shared sole tenant node groups. |
| `containerd_config` | `https://docs.cloud.google.com/python/docs/reference/container/latest/google.cloud.container_v1beta1.types.ContainerdConfig` Parameters for containerd customization. |
| `host_maintenance_policy` | `https://docs.cloud.google.com/python/docs/reference/container/latest/google.cloud.container_v1beta1.types.HostMaintenancePolicy` HostMaintenancePolicy contains the desired maintenance policy for the Google Compute Engine hosts. |
| `resource_manager_tags` | `https://docs.cloud.google.com/python/docs/reference/container/latest/google.cloud.container_v1beta1.types.ResourceManagerTags` A map of resource manager tag keys and values to be attached to the nodes. |
| `enable_confidential_storage` | `bool` Optional. Reserved for future use. |
| `secondary_boot_disks` | `MutableSequence[https://docs.cloud.google.com/python/docs/reference/container/latest/google.cloud.container_v1beta1.types.SecondaryBootDisk]` List of secondary boot disks attached to the nodes. |
| `storage_pools` | `MutableSequence[str]` List of Storage Pools where boot disks are provisioned. |
| `secondary_boot_disk_update_strategy` | `https://docs.cloud.google.com/python/docs/reference/container/latest/google.cloud.container_v1beta1.types.SecondaryBootDiskUpdateStrategy` Secondary boot disk update strategy. This field is a member of `oneof`_ `_secondary_boot_disk_update_strategy`. |
| `gpu_direct_config` | `https://docs.cloud.google.com/python/docs/reference/container/latest/google.cloud.container_v1beta1.types.GPUDirectConfig` The configuration for GPU Direct This field is a member of `oneof`_ `_gpu_direct_config`. |
| `max_run_duration` | `google.protobuf.duration_pb2.Duration` The maximum duration for the nodes to exist. If unspecified, the nodes can exist indefinitely. |
| `local_ssd_encryption_mode` | `https://docs.cloud.google.com/python/docs/reference/container/latest/google.cloud.container_v1beta1.types.NodeConfig.LocalSsdEncryptionMode` Specifies which method should be used for encrypting the Local SSDs attached to the node. This field is a member of `oneof`_ `_local_ssd_encryption_mode`. |
| `effective_cgroup_mode` | `https://docs.cloud.google.com/python/docs/reference/container/latest/google.cloud.container_v1beta1.types.NodeConfig.EffectiveCgroupMode` Output only. effective_cgroup_mode is the cgroup mode actually used by the node pool. It is determined by the cgroup mode specified in the LinuxNodeConfig or the default cgroup mode based on the cluster creation version. |
| `flex_start` | `bool` Flex Start flag for enabling Flex Start VM. This field is a member of `oneof`_ `_flex_start`. |
| `boot_disk` | `https://docs.cloud.google.com/python/docs/reference/container/latest/google.cloud.container_v1beta1.types.BootDisk` Boot disk configuration for the node pool. |
| `consolidation_delay` | `google.protobuf.duration_pb2.Duration` Consolidation delay defines duration after which the Cluster Autoscaler can scale down underutilized nodes. If not set, nodes are scaled down by default behavior, i.e. according to the chosen autoscaling profile. |
| `taint_config` | `https://docs.cloud.google.com/python/docs/reference/container/latest/google.cloud.container_v1beta1.types.TaintConfig` Optional. The taint configuration for the node pool. This field is a member of `oneof`_ `_taint_config`. |

## Classes

### EffectiveCgroupMode

    EffectiveCgroupMode(value)

Possible effective cgroup modes for the node.

### LabelsEntry

    LabelsEntry(mapping=None, *, ignore_unknown_fields=False, **kwargs)

The abstract base class for a message.

| **Parameters** ||
|---|---|
| **Name** | **Description** |
| `kwargs` | `dict` Keys and values corresponding to the fields of the message. |
| `mapping` | ``Union[dict, `.Message`]`` A dictionary or message to be used to determine the values for this message. |
| `ignore_unknown_fields` | `Optional(bool)` If True, do not raise errors for unknown fields. Only applied if `mapping` is a mapping type or there are keyword parameters. |

### LocalSsdEncryptionMode

    LocalSsdEncryptionMode(value)

LocalSsdEncryptionMode specifies the method used for
encrypting the Local SSDs attached to the node.

### MetadataEntry

    MetadataEntry(mapping=None, *, ignore_unknown_fields=False, **kwargs)

The abstract base class for a message.

| **Parameters** ||
|---|---|
| **Name** | **Description** |
| `kwargs` | `dict` Keys and values corresponding to the fields of the message. |
| `mapping` | ``Union[dict, `.Message`]`` A dictionary or message to be used to determine the values for this message. |
| `ignore_unknown_fields` | `Optional(bool)` If True, do not raise errors for unknown fields. Only applied if `mapping` is a mapping type or there are keyword parameters. |

### ResourceLabelsEntry

    ResourceLabelsEntry(mapping=None, *, ignore_unknown_fields=False, **kwargs)

The abstract base class for a message.

| **Parameters** ||
|---|---|
| **Name** | **Description** |
| `kwargs` | `dict` Keys and values corresponding to the fields of the message. |
| `mapping` | ``Union[dict, `.Message`]`` A dictionary or message to be used to determine the values for this message. |
| `ignore_unknown_fields` | `Optional(bool)` If True, do not raise errors for unknown fields. Only applied if `mapping` is a mapping type or there are keyword parameters. |