Optional. The Customer Managed Encryption Key (CMEK)
used to encrypt the boot disk attached to each node in the node pool.
Specify the key using the following format:
<code>projects/<var>KEY_PROJECT_ID</var>/locations/<var>LOCATION</var>/keyRings/<var>RING_NAME</var>/cryptoKeys/<var>KEY_NAME</var></code>.
Optional. The number of local SSD disks to attach to the node, which is
limited by the maximum number of disks allowable per zone (see Adding
Local SSDs).
Optional. Minimum CPU
platform
to be used by this instance. The instance may be scheduled on the
specified or a newer CPU platform. Specify the friendly names of CPU
platforms, such as "Intel Haswell"` or Intel Sandy Bridge".
Optional. Whether the nodes are created as legacy preemptible VM
instances.
Also see
[Spot][google.cloud.dataproc.v1.GkeNodePoolConfig.GkeNodeConfig.spot]
VMs, preemptible VM instances without a maximum lifetime. Legacy and Spot
preemptible nodes cannot be used in a node pool with the CONTROLLERrole
or in the DEFAULT node pool if the CONTROLLER role is not assigned (the
DEFAULT node pool will assume the CONTROLLER role).
Optional. Whether the nodes are created as Spot VM instances.
Spot VMs are the latest update to legacy
[preemptible
VMs][google.cloud.dataproc.v1.GkeNodePoolConfig.GkeNodeConfig.preemptible].
Spot VMs do not have a maximum lifetime. Legacy and Spot preemptible
nodes cannot be used in a node pool with the CONTROLLERrole
or in the DEFAULT node pool if the CONTROLLER role is not assigned (the
DEFAULT node pool will assume the CONTROLLER role).
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-07 UTC."],[[["\u003cp\u003eThe latest version of the \u003ccode\u003eGkeNodePoolConfig.Types.GkeNodeConfig\u003c/code\u003e API is 5.17.0, with multiple older versions available ranging from 5.16.0 to 3.1.0.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eGkeNodePoolConfig.Types.GkeNodeConfig\u003c/code\u003e describes the parameters for cluster nodes within the Google Cloud Dataproc v1 API.\u003c/p\u003e\n"],["\u003cp\u003eThis class implements several interfaces including \u003ccode\u003eIMessage\u003c/code\u003e, \u003ccode\u003eIEquatable\u003c/code\u003e, \u003ccode\u003eIDeepCloneable\u003c/code\u003e, and \u003ccode\u003eIBufferMessage\u003c/code\u003e, allowing it to be used in various contexts.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eGkeNodeConfig\u003c/code\u003e class allows for the specification of various node properties such as accelerators, boot disk encryption keys, local SSD count, machine type, and CPU platform.\u003c/p\u003e\n"],["\u003cp\u003eNodes can be configured as either legacy preemptible VM instances or spot VM instances, but neither can be used in a \u003ccode\u003eCONTROLLER\u003c/code\u003e role node pool.\u003c/p\u003e\n"]]],[],null,["# Google Cloud Dataproc v1 API - Class GkeNodePoolConfig.Types.GkeNodeConfig (5.20.0)\n\nVersion latestkeyboard_arrow_down\n\n- [5.20.0 (latest)](/dotnet/docs/reference/Google.Cloud.Dataproc.V1/latest/Google.Cloud.Dataproc.V1.GkeNodePoolConfig.Types.GkeNodeConfig)\n- [5.19.0](/dotnet/docs/reference/Google.Cloud.Dataproc.V1/5.19.0/Google.Cloud.Dataproc.V1.GkeNodePoolConfig.Types.GkeNodeConfig)\n- [5.18.0](/dotnet/docs/reference/Google.Cloud.Dataproc.V1/5.18.0/Google.Cloud.Dataproc.V1.GkeNodePoolConfig.Types.GkeNodeConfig)\n- [5.17.0](/dotnet/docs/reference/Google.Cloud.Dataproc.V1/5.17.0/Google.Cloud.Dataproc.V1.GkeNodePoolConfig.Types.GkeNodeConfig)\n- [5.16.0](/dotnet/docs/reference/Google.Cloud.Dataproc.V1/5.16.0/Google.Cloud.Dataproc.V1.GkeNodePoolConfig.Types.GkeNodeConfig)\n- [5.15.0](/dotnet/docs/reference/Google.Cloud.Dataproc.V1/5.15.0/Google.Cloud.Dataproc.V1.GkeNodePoolConfig.Types.GkeNodeConfig)\n- [5.14.0](/dotnet/docs/reference/Google.Cloud.Dataproc.V1/5.14.0/Google.Cloud.Dataproc.V1.GkeNodePoolConfig.Types.GkeNodeConfig)\n- [5.13.0](/dotnet/docs/reference/Google.Cloud.Dataproc.V1/5.13.0/Google.Cloud.Dataproc.V1.GkeNodePoolConfig.Types.GkeNodeConfig)\n- [5.12.0](/dotnet/docs/reference/Google.Cloud.Dataproc.V1/5.12.0/Google.Cloud.Dataproc.V1.GkeNodePoolConfig.Types.GkeNodeConfig)\n- [5.11.0](/dotnet/docs/reference/Google.Cloud.Dataproc.V1/5.11.0/Google.Cloud.Dataproc.V1.GkeNodePoolConfig.Types.GkeNodeConfig)\n- [5.10.0](/dotnet/docs/reference/Google.Cloud.Dataproc.V1/5.10.0/Google.Cloud.Dataproc.V1.GkeNodePoolConfig.Types.GkeNodeConfig)\n- [5.9.0](/dotnet/docs/reference/Google.Cloud.Dataproc.V1/5.9.0/Google.Cloud.Dataproc.V1.GkeNodePoolConfig.Types.GkeNodeConfig)\n- [5.8.0](/dotnet/docs/reference/Google.Cloud.Dataproc.V1/5.8.0/Google.Cloud.Dataproc.V1.GkeNodePoolConfig.Types.GkeNodeConfig)\n- [5.7.0](/dotnet/docs/reference/Google.Cloud.Dataproc.V1/5.7.0/Google.Cloud.Dataproc.V1.GkeNodePoolConfig.Types.GkeNodeConfig)\n- [5.6.0](/dotnet/docs/reference/Google.Cloud.Dataproc.V1/5.6.0/Google.Cloud.Dataproc.V1.GkeNodePoolConfig.Types.GkeNodeConfig)\n- [5.5.0](/dotnet/docs/reference/Google.Cloud.Dataproc.V1/5.5.0/Google.Cloud.Dataproc.V1.GkeNodePoolConfig.Types.GkeNodeConfig)\n- [5.4.0](/dotnet/docs/reference/Google.Cloud.Dataproc.V1/5.4.0/Google.Cloud.Dataproc.V1.GkeNodePoolConfig.Types.GkeNodeConfig)\n- [5.3.0](/dotnet/docs/reference/Google.Cloud.Dataproc.V1/5.3.0/Google.Cloud.Dataproc.V1.GkeNodePoolConfig.Types.GkeNodeConfig)\n- [5.2.0](/dotnet/docs/reference/Google.Cloud.Dataproc.V1/5.2.0/Google.Cloud.Dataproc.V1.GkeNodePoolConfig.Types.GkeNodeConfig)\n- [5.1.0](/dotnet/docs/reference/Google.Cloud.Dataproc.V1/5.1.0/Google.Cloud.Dataproc.V1.GkeNodePoolConfig.Types.GkeNodeConfig)\n- [5.0.0](/dotnet/docs/reference/Google.Cloud.Dataproc.V1/5.0.0/Google.Cloud.Dataproc.V1.GkeNodePoolConfig.Types.GkeNodeConfig)\n- [4.0.0](/dotnet/docs/reference/Google.Cloud.Dataproc.V1/4.0.0/Google.Cloud.Dataproc.V1.GkeNodePoolConfig.Types.GkeNodeConfig)\n- [3.4.0](/dotnet/docs/reference/Google.Cloud.Dataproc.V1/3.4.0/Google.Cloud.Dataproc.V1.GkeNodePoolConfig.Types.GkeNodeConfig)\n- [3.3.0](/dotnet/docs/reference/Google.Cloud.Dataproc.V1/3.3.0/Google.Cloud.Dataproc.V1.GkeNodePoolConfig.Types.GkeNodeConfig)\n- [3.2.0](/dotnet/docs/reference/Google.Cloud.Dataproc.V1/3.2.0/Google.Cloud.Dataproc.V1.GkeNodePoolConfig.Types.GkeNodeConfig)\n- [3.1.0](/dotnet/docs/reference/Google.Cloud.Dataproc.V1/3.1.0/Google.Cloud.Dataproc.V1.GkeNodePoolConfig.Types.GkeNodeConfig) \n\n public sealed class GkeNodePoolConfig.Types.GkeNodeConfig : IMessage\u003cGkeNodePoolConfig.Types.GkeNodeConfig\u003e, IEquatable\u003cGkeNodePoolConfig.Types.GkeNodeConfig\u003e, IDeepCloneable\u003cGkeNodePoolConfig.Types.GkeNodeConfig\u003e, IBufferMessage, IMessage\n\nReference documentation and code samples for the Google Cloud Dataproc v1 API class GkeNodePoolConfig.Types.GkeNodeConfig.\n\nParameters that describe cluster nodes. \n\nInheritance\n-----------\n\n[object](https://learn.microsoft.com/dotnet/api/system.object) \\\u003e GkeNodePoolConfig.Types.GkeNodeConfig \n\nImplements\n----------\n\n[IMessage](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IMessage-1.html)[GkeNodePoolConfig](/dotnet/docs/reference/Google.Cloud.Dataproc.V1/latest/Google.Cloud.Dataproc.V1.GkeNodePoolConfig)[Types](/dotnet/docs/reference/Google.Cloud.Dataproc.V1/latest/Google.Cloud.Dataproc.V1.GkeNodePoolConfig.Types)[GkeNodeConfig](/dotnet/docs/reference/Google.Cloud.Dataproc.V1/latest/Google.Cloud.Dataproc.V1.GkeNodePoolConfig.Types.GkeNodeConfig), [IEquatable](https://learn.microsoft.com/dotnet/api/system.iequatable-1)[GkeNodePoolConfig](/dotnet/docs/reference/Google.Cloud.Dataproc.V1/latest/Google.Cloud.Dataproc.V1.GkeNodePoolConfig)[Types](/dotnet/docs/reference/Google.Cloud.Dataproc.V1/latest/Google.Cloud.Dataproc.V1.GkeNodePoolConfig.Types)[GkeNodeConfig](/dotnet/docs/reference/Google.Cloud.Dataproc.V1/latest/Google.Cloud.Dataproc.V1.GkeNodePoolConfig.Types.GkeNodeConfig), [IDeepCloneable](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IDeepCloneable-1.html)[GkeNodePoolConfig](/dotnet/docs/reference/Google.Cloud.Dataproc.V1/latest/Google.Cloud.Dataproc.V1.GkeNodePoolConfig)[Types](/dotnet/docs/reference/Google.Cloud.Dataproc.V1/latest/Google.Cloud.Dataproc.V1.GkeNodePoolConfig.Types)[GkeNodeConfig](/dotnet/docs/reference/Google.Cloud.Dataproc.V1/latest/Google.Cloud.Dataproc.V1.GkeNodePoolConfig.Types.GkeNodeConfig), [IBufferMessage](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IBufferMessage.html), [IMessage](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IMessage.html) \n\nInherited Members\n-----------------\n\n[object.GetHashCode()](https://learn.microsoft.com/dotnet/api/system.object.gethashcode) \n[object.GetType()](https://learn.microsoft.com/dotnet/api/system.object.gettype) \n[object.ToString()](https://learn.microsoft.com/dotnet/api/system.object.tostring)\n\nNamespace\n---------\n\n[Google.Cloud.Dataproc.V1](/dotnet/docs/reference/Google.Cloud.Dataproc.V1/latest/Google.Cloud.Dataproc.V1)\n\nAssembly\n--------\n\nGoogle.Cloud.Dataproc.V1.dll\n\nConstructors\n------------\n\n### GkeNodeConfig()\n\n public GkeNodeConfig()\n\n### GkeNodeConfig(GkeNodeConfig)\n\n public GkeNodeConfig(GkeNodePoolConfig.Types.GkeNodeConfig other)\n\nProperties\n----------\n\n### Accelerators\n\n public RepeatedField\u003cGkeNodePoolConfig.Types.GkeNodePoolAcceleratorConfig\u003e Accelerators { get; }\n\nOptional. A list of [hardware\naccelerators](https://cloud.google.com/compute/docs/gpus) to attach to\neach node.\n\n### BootDiskKmsKey\n\n public string BootDiskKmsKey { get; set; }\n\nOptional. The [Customer Managed Encryption Key (CMEK)](https://cloud.google.com/kubernetes-engine/docs/how-to/using-cmek)\nused to encrypt the boot disk attached to each node in the node pool.\nSpecify the key using the following format:\n\\\u003ccode\\\u003eprojects/\\\u003cvar\\\u003eKEY_PROJECT_ID\\\u003c/var\\\u003e/locations/\\\u003cvar\\\u003eLOCATION\\\u003c/var\\\u003e/keyRings/\\\u003cvar\\\u003eRING_NAME\\\u003c/var\\\u003e/cryptoKeys/\\\u003cvar\\\u003eKEY_NAME\\\u003c/var\\\u003e\\\u003c/code\\\u003e.\n\n### LocalSsdCount\n\n public int LocalSsdCount { get; set; }\n\nOptional. The number of local SSD disks to attach to the node, which is\nlimited by the maximum number of disks allowable per zone (see [Adding\nLocal SSDs](https://cloud.google.com/compute/docs/disks/local-ssd)).\n\n### MachineType\n\n public string MachineType { get; set; }\n\nOptional. The name of a Compute Engine [machine\ntype](https://cloud.google.com/compute/docs/machine-types).\n\n### MinCpuPlatform\n\n public string MinCpuPlatform { get; set; }\n\nOptional. [Minimum CPU\nplatform](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform)\nto be used by this instance. The instance may be scheduled on the\nspecified or a newer CPU platform. Specify the friendly names of CPU\nplatforms, such as \"Intel Haswell\"\\` or Intel Sandy Bridge\".\n\n### Preemptible\n\n public bool Preemptible { get; set; }\n\nOptional. Whether the nodes are created as legacy [preemptible VM\ninstances](https://cloud.google.com/compute/docs/instances/preemptible).\nAlso see\n\\[Spot\\]\\[google.cloud.dataproc.v1.GkeNodePoolConfig.GkeNodeConfig.spot\\]\nVMs, preemptible VM instances without a maximum lifetime. Legacy and Spot\npreemptible nodes cannot be used in a node pool with the `CONTROLLER`\n[role](/dataproc/docs/reference/rest/v1/projects.regions.clusters#role)\nor in the DEFAULT node pool if the CONTROLLER role is not assigned (the\nDEFAULT node pool will assume the CONTROLLER role).\n\n### Spot\n\n public bool Spot { get; set; }\n\nOptional. Whether the nodes are created as [Spot VM instances](https://cloud.google.com/compute/docs/instances/spot).\nSpot VMs are the latest update to legacy\n\\[preemptible\nVMs\\]\\[google.cloud.dataproc.v1.GkeNodePoolConfig.GkeNodeConfig.preemptible\\].\nSpot VMs do not have a maximum lifetime. Legacy and Spot preemptible\nnodes cannot be used in a node pool with the `CONTROLLER`\n[role](/dataproc/docs/reference/rest/v1/projects.regions.clusters#role)\nor in the DEFAULT node pool if the CONTROLLER role is not assigned (the\nDEFAULT node pool will assume the CONTROLLER role)."]]