ClusterNodeConfig class

Constructors

ClusterNodeConfig({Input<ClusterNodeConfigAdvancedMachineFeatures?>? advancedMachineFeatures, Input<ClusterNodeConfigBootDisk?>? bootDisk, Input<String?>? bootDiskKmsKey, Input<ClusterNodeConfigConfidentialNodes?>? confidentialNodes, Input<ClusterNodeConfigContainerdConfig?>? containerdConfig, Input<int?>? diskSizeGb, Input<String?>? diskType, Input<List<ClusterNodeConfigEffectiveTaint>?>? effectiveTaints, Input<bool?>? enableConfidentialStorage, Input<ClusterNodeConfigEphemeralStorageConfig?>? ephemeralStorageConfig, Input<ClusterNodeConfigEphemeralStorageLocalSsdConfig?>? ephemeralStorageLocalSsdConfig, Input<ClusterNodeConfigFastSocket?>? fastSocket, Input<bool?>? flexStart, Input<ClusterNodeConfigGcfsConfig?>? gcfsConfig, Input<String?>? gpudirectStrategy, Input<List<ClusterNodeConfigGuestAccelerator>?>? guestAccelerators, Input<ClusterNodeConfigGvnic?>? gvnic, Input<ClusterNodeConfigHostMaintenancePolicy?>? hostMaintenancePolicy, Input<String?>? imageType, Input<ClusterNodeConfigKubeletConfig?>? kubeletConfig, Input<Map<String, String>?>? labels, Input<ClusterNodeConfigLinuxNodeConfig?>? linuxNodeConfig, Input<ClusterNodeConfigLocalNvmeSsdBlockConfig?>? localNvmeSsdBlockConfig, Input<int?>? localSsdCount, Input<String?>? localSsdEncryptionMode, Input<String?>? loggingVariant, Input<String?>? machineType, Input<String?>? maxRunDuration, Input<Map<String, String>?>? metadata, Input<String?>? minCpuPlatform, Input<String?>? nodeGroup, Input<List<ClusterNodeConfigNodeImageConfig>?>? nodeImageConfigs, Input<List<String>?>? oauthScopes, Input<bool?>? preemptible, Input<ClusterNodeConfigReservationAffinity?>? reservationAffinity, Input<Map<String, String>?>? resourceLabels, Input<Map<String, String>?>? resourceManagerTags, Input<ClusterNodeConfigSandboxConfig?>? sandboxConfig, Input<List<ClusterNodeConfigSecondaryBootDisk>?>? secondaryBootDisks, Input<String?>? serviceAccount, Input<ClusterNodeConfigShieldedInstanceConfig?>? shieldedInstanceConfig, Input<ClusterNodeConfigSoleTenantConfig?>? soleTenantConfig, Input<bool?>? spot, Input<List<String>?>? storagePools, Input<List<String>?>? tags, Input<ClusterNodeConfigTaintConfig?>? taintConfig, Input<List<ClusterNodeConfigTaint>?>? taints, Input<ClusterNodeConfigWindowsNodeConfig?>? windowsNodeConfig, Input<ClusterNodeConfigWorkloadMetadataConfig?>? workloadMetadataConfig})
Creates a new ClusterNodeConfig. advancedMachineFeatures Specifies options for controlling bootDisk Configuration of the node pool boot disk. Structure is documented below bootDiskKmsKey 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 confidentialNodes Configuration for Confidential Nodes feature. Structure is documented below. containerdConfig Parameters to customize containerd runtime. Structure is documented below. diskSizeGb Size of the disk attached to each node, specified diskType Type of the disk attached to each node effectiveTaints List of kubernetes taints applied to each node. Structure is documented above. enableConfidentialStorage Enabling Confidential Storage will create boot disk with confidential mode. It is disabled by default. ephemeralStorageConfig ) Parameters for the ephemeral storage filesystem. If unspecified, ephemeral storage is backed by the boot disk. Structure is documented below. ephemeralStorageLocalSsdConfig Parameters for the ephemeral storage filesystem. If unspecified, ephemeral storage is backed by the boot disk. Structure is documented below. fastSocket Parameters for the NCCL Fast Socket feature. If unspecified, NCCL Fast Socket will not be enabled on the node pool. flexStart Enables Flex Start provisioning model for the node pool. gcfsConfig Parameters for the Google Container Filesystem (GCFS). gpudirectStrategy The type of GPUDirect strategy to enable on the node. See the GKE network docs for information on available modes. guestAccelerators List of the type and count of accelerator cards attached to the instance. gvnic Google Virtual NIC (gVNIC) is a virtual network interface. hostMaintenancePolicy The maintenance policy for the hosts on which the GKE VMs run on. Structure is documented below. imageType The image type to use for this node. Note that changing the image type kubeletConfig Node kubelet configs. Structure is documented below. labels The Kubernetes labels (key/value pairs) to be applied to each node. The kubernetes.io/ and k8s.io/ prefixes are linuxNodeConfig Parameters that can be configured on Linux nodes. Structure is documented below. localNvmeSsdBlockConfig Parameters for the local NVMe SSDs. Structure is documented below. localSsdCount The amount of local SSD disks that will be localSsdEncryptionMode Possible Local SSD encryption modes: loggingVariant Parameter for specifying the type of logging agent used in a node pool. This will override any cluster-wide default value. Valid values include DEFAULT and MAX_THROUGHPUT. See Increasing logging agent throughput for more information. machineType The name of a Google Compute Engine machine type. maxRunDuration The runtime of each node in the node pool in seconds, terminated by 's'. Example: "3600s". metadata The metadata key/value pairs assigned to instances in minCpuPlatform Minimum CPU platform to be used by this instance. nodeGroup 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. nodeImageConfigs The node image configuration to use for this node pool. Structure is documented below. oauthScopes The set of Google API scopes to be made available preemptible A boolean that represents whether or not the underlying node VMs reservationAffinity The configuration of the desired reservation which instances could take capacity from. Structure is documented below. resourceLabels The GCP labels (key/value pairs) to be applied to each node. Refer here resourceManagerTags A map of resource manager tag keys and values to be attached to the nodes for managing Compute Engine firewalls using Network Firewall Policies. Tags must be according to specifications found here. A maximum of 5 tag key-value pairs can be specified. Existing tags will be replaced with new values. Tags must be in one of the following formats (KEY=VALUE) 1. tagKeys/{tag_key_id}=tagValues/{tag_value_id} 2. {org_id}/{tag_key_name}={tag_value_name} 3. {project_id}/{tag_key_name}={tag_value_name}. sandboxConfig GKE Sandbox configuration. When enabling this feature you must specify imageType = "COS_CONTAINERD" and nodeVersion = "1.12.7-gke.17" or later to use it. secondaryBootDisks Parameters for secondary boot disks to preload container images and data on new nodes. Structure is documented below. gcfsConfig must be enabled=true for this feature to work. minMasterVersion must also be set to use GKE 1.28.3-gke.106700 or later versions. serviceAccount The service account to be used by the Node VMs. shieldedInstanceConfig Shielded Instance options. Structure is documented below. soleTenantConfig Allows specifying multiple node affinities useful for running workloads on sole tenant nodes. Structure is documented below. spot A boolean that represents whether the underlying node VMs are spot. storagePools The list of Storage Pools where boot disks are provisioned. tags The list of instance tags applied to all nodes. Tags are used to identify taintConfig Taint configuration for the node pool. Structure is documented below. taints A list of windowsNodeConfig Windows node configuration, currently supporting OSVersion attribute. The value must be one of OS_VERSION_UNSPECIFIED, OS_VERSION_LTSC2019, OS_VERSION_LTSC2022. For example: workloadMetadataConfig Metadata configuration to expose to workloads on the node pool.
const
ClusterNodeConfig.fromMap(Map<String, dynamic> map)
factory

Properties

advancedMachineFeatures → Input<ClusterNodeConfigAdvancedMachineFeatures?>?
Specifies options for controlling advanced machine features. Structure is documented below.
final
bootDisk → Input<ClusterNodeConfigBootDisk?>?
Configuration of the node pool boot disk. Structure is documented below
final
bootDiskKmsKey → Input<String?>?
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
final
confidentialNodes → Input<ClusterNodeConfigConfidentialNodes?>?
Configuration for Confidential Nodes feature. Structure is documented below.
final
containerdConfig → Input<ClusterNodeConfigContainerdConfig?>?
Parameters to customize containerd runtime. Structure is documented below.
final
diskSizeGb → Input<int?>?
Size of the disk attached to each node, specified in GB. The smallest allowed disk size is 10GB. Defaults to 100GB. This is being migrated to boot_disk.size_gb, and must match if specified in both places. Prefer configuring bootDisk.
final
diskType → Input<String?>?
Type of the disk attached to each node (e.g. 'pd-standard', 'pd-balanced', 'pd-ssd', or 'hyperdisk-balanced'). Defaults to hyperdisk-balanced if hyperdisk-balanced is supported and pd-balanced is not supported for the machine type; otherwise defaults to pd-balanced. This is being migrated to boot_disk.disk_type, and must match if specified in both places. Prefer configuring bootDisk.
final
effectiveTaints → Input<List<ClusterNodeConfigEffectiveTaint>?>?
List of kubernetes taints applied to each node. Structure is documented above.
final
enableConfidentialStorage → Input<bool?>?
Enabling Confidential Storage will create boot disk with confidential mode. It is disabled by default.
final
ephemeralStorageConfig → Input<ClusterNodeConfigEphemeralStorageConfig?>?
) Parameters for the ephemeral storage filesystem. If unspecified, ephemeral storage is backed by the boot disk. Structure is documented below.
final
ephemeralStorageLocalSsdConfig → Input<ClusterNodeConfigEphemeralStorageLocalSsdConfig?>?
Parameters for the ephemeral storage filesystem. If unspecified, ephemeral storage is backed by the boot disk. Structure is documented below.
final
fastSocket → Input<ClusterNodeConfigFastSocket?>?
Parameters for the NCCL Fast Socket feature. If unspecified, NCCL Fast Socket will not be enabled on the node pool. Node Pool must enable gvnic. GKE version 1.25.2-gke.1700 or later. Structure is documented below.
final
flexStart → Input<bool?>?
Enables Flex Start provisioning model for the node pool.
final
gcfsConfig → Input<ClusterNodeConfigGcfsConfig?>?
Parameters for the Google Container Filesystem (GCFS). If unspecified, GCFS will not be enabled on the node pool. When enabling this feature you must specify imageType = "COS_CONTAINERD" and nodeVersion from GKE versions 1.19 or later to use it. For GKE versions 1.19, 1.20, and 1.21, the recommended minimum nodeVersion would be 1.19.15-gke.1300, 1.20.11-gke.1300, and 1.21.5-gke.1300 respectively. A machineType that has more than 16 GiB of memory is also recommended. GCFS must be enabled in order to use image streaming. Structure is documented below.
final
gpudirectStrategy → Input<String?>?
The type of GPUDirect strategy to enable on the node. See the GKE network docs for information on available modes.
final
guestAccelerators → Input<List<ClusterNodeConfigGuestAccelerator>?>?
List of the type and count of accelerator cards attached to the instance. Structure documented below.
final
gvnic → Input<ClusterNodeConfigGvnic?>?
Google Virtual NIC (gVNIC) is a virtual network interface. Installing the gVNIC driver allows for more efficient traffic transmission across the Google network infrastructure. gVNIC is an alternative to the virtIO-based ethernet driver. GKE nodes must use a Container-Optimized OS node image. GKE node version 1.15.11-gke.15 or later Structure is documented below.
final
hashCode → int
The hash code for this object.
no setterinherited
hostMaintenancePolicy → Input<ClusterNodeConfigHostMaintenancePolicy?>?
The maintenance policy for the hosts on which the GKE VMs run on. Structure is documented below.
final
imageType → Input<String?>?
The image type to use for this node. Note that changing the image type will delete and recreate all nodes in the node pool.
final
kubeletConfig → Input<ClusterNodeConfigKubeletConfig?>?
Node kubelet configs. Structure is documented below.
final
labels → Input<Map<String, String>?>?
The Kubernetes labels (key/value pairs) to be applied to each node. The kubernetes.io/ and k8s.io/ prefixes are reserved by Kubernetes Core components and cannot be specified.
final
linuxNodeConfig → Input<ClusterNodeConfigLinuxNodeConfig?>?
Parameters that can be configured on Linux nodes. Structure is documented below.
final
localNvmeSsdBlockConfig → Input<ClusterNodeConfigLocalNvmeSsdBlockConfig?>?
Parameters for the local NVMe SSDs. Structure is documented below.
final
localSsdCount → Input<int?>?
The amount of local SSD disks that will be attached to each cluster node. Defaults to 0.
final
localSsdEncryptionMode → Input<String?>?
Possible Local SSD encryption modes: Accepted values are:
final
loggingVariant → Input<String?>?
Parameter for specifying the type of logging agent used in a node pool. This will override any cluster-wide default value. Valid values include DEFAULT and MAX_THROUGHPUT. See Increasing logging agent throughput for more information.
final
machineType → Input<String?>?
The name of a Google Compute Engine machine type. Defaults to e2-medium. To create a custom machine type, value should be set as specified here.
final
maxRunDuration → Input<String?>?
The runtime of each node in the node pool in seconds, terminated by 's'. Example: "3600s".
final
metadata → Input<Map<String, String>?>?
The metadata key/value pairs assigned to instances in the cluster. From GKE 1.12 onwards, disable-legacy-endpoints is set to true by the API; if metadata is set but that default value is not included, the provider will attempt to unset the value. To avoid this, set the value in your config.
final
minCpuPlatform → Input<String?>?
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 Intel Haswell. See the official documentation for more information.
final
nodeGroup → Input<String?>?
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.
final
nodeImageConfigs → Input<List<ClusterNodeConfigNodeImageConfig>?>?
The node image configuration to use for this node pool. Structure is documented below.
final
oauthScopes → Input<List<String>?>?
The set of Google API scopes to be made available on all of the node VMs under the "default" service account. Use the "https://www.googleapis.com/auth/cloud-platform" scope to grant access to all APIs. It is recommended that you set serviceAccount to a non-default service account and grant IAM roles to that service account for only the resources that it needs.
final
preemptible → Input<bool?>?
A boolean that represents whether or not the underlying node VMs are preemptible. See the official documentation for more information. Defaults to false.
final
reservationAffinity → Input<ClusterNodeConfigReservationAffinity?>?
The configuration of the desired reservation which instances could take capacity from. Structure is documented below.
final
resourceLabels → Input<Map<String, String>?>?
The GCP labels (key/value pairs) to be applied to each node. Refer here for how these labels are applied to clusters, node pools and nodes.
final
resourceManagerTags → Input<Map<String, String>?>?
A map of resource manager tag keys and values to be attached to the nodes for managing Compute Engine firewalls using Network Firewall Policies. Tags must be according to specifications found here. A maximum of 5 tag key-value pairs can be specified. Existing tags will be replaced with new values. Tags must be in one of the following formats (KEY=VALUE) 1. tagKeys/{tag_key_id}=tagValues/{tag_value_id} 2. {org_id}/{tag_key_name}={tag_value_name} 3. {project_id}/{tag_key_name}={tag_value_name}.
final
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
sandboxConfig → Input<ClusterNodeConfigSandboxConfig?>?
GKE Sandbox configuration. When enabling this feature you must specify imageType = "COS_CONTAINERD" and nodeVersion = "1.12.7-gke.17" or later to use it. Structure is documented below.
final
secondaryBootDisks → Input<List<ClusterNodeConfigSecondaryBootDisk>?>?
Parameters for secondary boot disks to preload container images and data on new nodes. Structure is documented below. gcfsConfig must be enabled=true for this feature to work. minMasterVersion must also be set to use GKE 1.28.3-gke.106700 or later versions.
final
serviceAccount → Input<String?>?
The service account to be used by the Node VMs. If not specified, the "default" service account is used.
final
shieldedInstanceConfig → Input<ClusterNodeConfigShieldedInstanceConfig?>?
Shielded Instance options. Structure is documented below.
final
soleTenantConfig → Input<ClusterNodeConfigSoleTenantConfig?>?
Allows specifying multiple node affinities useful for running workloads on sole tenant nodes. Structure is documented below.
final
spot → Input<bool?>?
A boolean that represents whether the underlying node VMs are spot. See the official documentation for more information. Defaults to false.
final
storagePools → Input<List<String>?>?
The list of Storage Pools where boot disks are provisioned.
final
tags → Input<List<String>?>?
The list of instance tags applied to all nodes. Tags are used to identify valid sources or targets for network firewalls.
final
taintConfig → Input<ClusterNodeConfigTaintConfig?>?
Taint configuration for the node pool. Structure is documented below.
final
taints → Input<List<ClusterNodeConfigTaint>?>?
A list of Kubernetes taints to apply to nodes. This field will only report drift on taint keys that are already managed with Pulumi, use effectiveTaints to view the list of GKE-managed taints on the node pool from all sources. Importing this resource will not record any taints as being Pulumi-managed, and will cause drift with any configured taints. Structure is documented below.
final
windowsNodeConfig → Input<ClusterNodeConfigWindowsNodeConfig?>?
Windows node configuration, currently supporting OSVersion attribute. The value must be one of OS_VERSION_UNSPECIFIED, OS_VERSION_LTSC2019, OS_VERSION_LTSC2022. For example:
final
workloadMetadataConfig → Input<ClusterNodeConfigWorkloadMetadataConfig?>?
Metadata configuration to expose to workloads on the node pool. Structure is documented below.
final

Methods

noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toMap() → Map<String, dynamic>
toString() → String
A string representation of this object.
inherited

Operators

operator ==(Object other) → bool
The equality operator.
inherited