Class ClusterNodeConfigArgs


  • public final class ClusterNodeConfigArgs
    extends com.pulumi.resources.ResourceArgs
    • Method Detail

      • advancedMachineFeatures

        public java.util.Optional<com.pulumi.core.Output<ClusterNodeConfigAdvancedMachineFeaturesArgs>> advancedMachineFeatures()
        Returns:
        Specifies options for controlling advanced machine features. Structure is documented below.
      • bootDiskKmsKey

        public java.util.Optional<com.pulumi.core.Output<java.lang.String>> bootDiskKmsKey()
        Returns:
        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>
      • diskSizeGb

        public java.util.Optional<com.pulumi.core.Output<java.lang.Integer>> diskSizeGb()
        Returns:
        Size of the disk attached to each node, specified in GB. The smallest allowed disk size is 10GB. Defaults to 100GB.
      • diskType

        public java.util.Optional<com.pulumi.core.Output<java.lang.String>> diskType()
        Returns:
        Type of the disk attached to each node (e.g. 'pd-standard', 'pd-balanced' or 'pd-ssd'). If unspecified, the default disk type is 'pd-standard'
      • ephemeralStorageConfig

        public java.util.Optional<com.pulumi.core.Output<ClusterNodeConfigEphemeralStorageConfigArgs>> ephemeralStorageConfig()
        Returns:
        ) Parameters for the ephemeral storage filesystem. If unspecified, ephemeral storage is backed by the boot disk. Structure is documented below. ```java package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import java.util.List; import java.util.ArrayList; import java.util.Map; import java.io.File; import java.nio.file.Files; import java.nio.file.Paths; public class App { public static void main(String[] args) { Pulumi.run(App::stack); } public static void stack(Context ctx) { } } ```
      • ephemeralStorageLocalSsdConfig

        public java.util.Optional<com.pulumi.core.Output<ClusterNodeConfigEphemeralStorageLocalSsdConfigArgs>> ephemeralStorageLocalSsdConfig()
        Returns:
        Parameters for the ephemeral storage filesystem. If unspecified, ephemeral storage is backed by the boot disk. Structure is documented below. ```java package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import java.util.List; import java.util.ArrayList; import java.util.Map; import java.io.File; import java.nio.file.Files; import java.nio.file.Paths; public class App { public static void main(String[] args) { Pulumi.run(App::stack); } public static void stack(Context ctx) { } } ```
      • gcfsConfig

        public java.util.Optional<com.pulumi.core.Output<ClusterNodeConfigGcfsConfigArgs>> gcfsConfig()
        Returns:
        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 `image_type = "COS_CONTAINERD"` and `node_version` from GKE versions 1.19 or later to use it. For GKE versions 1.19, 1.20, and 1.21, the recommended minimum `node_version` would be 1.19.15-gke.1300, 1.20.11-gke.1300, and 1.21.5-gke.1300 respectively. A `machine_type` that has more than 16 GiB of memory is also recommended. GCFS must be enabled in order to use [image streaming](https://cloud.google.com/kubernetes-engine/docs/how-to/image-streaming). Structure is documented below. ```java package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import java.util.List; import java.util.ArrayList; import java.util.Map; import java.io.File; import java.nio.file.Files; import java.nio.file.Paths; public class App { public static void main(String[] args) { Pulumi.run(App::stack); } public static void stack(Context ctx) { } } ```
      • guestAccelerators

        public java.util.Optional<com.pulumi.core.Output<java.util.List<ClusterNodeConfigGuestAcceleratorArgs>>> guestAccelerators()
        Returns:
        List of the type and count of accelerator cards attached to the instance. Structure documented below.
      • gvnic

        public java.util.Optional<com.pulumi.core.Output<ClusterNodeConfigGvnicArgs>> gvnic()
        Returns:
        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. ```java package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import java.util.List; import java.util.ArrayList; import java.util.Map; import java.io.File; import java.nio.file.Files; import java.nio.file.Paths; public class App { public static void main(String[] args) { Pulumi.run(App::stack); } public static void stack(Context ctx) { } } ```
      • imageType

        public java.util.Optional<com.pulumi.core.Output<java.lang.String>> imageType()
        Returns:
        The image type to use for this node. Note that changing the image type will delete and recreate all nodes in the node pool.
      • kubeletConfig

        public java.util.Optional<com.pulumi.core.Output<ClusterNodeConfigKubeletConfigArgs>> kubeletConfig()
        Returns:
        Kubelet configuration, currently supported attributes can be found [here](https://cloud.google.com/sdk/gcloud/reference/beta/container/node-pools/create#--system-config-from-file). Structure is documented below. ```java package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import java.util.List; import java.util.ArrayList; import java.util.Map; import java.io.File; import java.nio.file.Files; import java.nio.file.Paths; public class App { public static void main(String[] args) { Pulumi.run(App::stack); } public static void stack(Context ctx) { } } ```
      • labels

        public java.util.Optional<com.pulumi.core.Output<java.util.Map<java.lang.String,​java.lang.String>>> labels()
        Returns:
        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.
      • linuxNodeConfig

        public java.util.Optional<com.pulumi.core.Output<ClusterNodeConfigLinuxNodeConfigArgs>> linuxNodeConfig()
        Returns:
        Linux node configuration, currently supported attributes can be found [here](https://cloud.google.com/sdk/gcloud/reference/beta/container/node-pools/create#--system-config-from-file). Note that validations happen all server side. All attributes are optional. Structure is documented below. ```java package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import java.util.List; import java.util.ArrayList; import java.util.Map; import java.io.File; import java.nio.file.Files; import java.nio.file.Paths; public class App { public static void main(String[] args) { Pulumi.run(App::stack); } public static void stack(Context ctx) { } } ```
      • localNvmeSsdBlockConfig

        public java.util.Optional<com.pulumi.core.Output<ClusterNodeConfigLocalNvmeSsdBlockConfigArgs>> localNvmeSsdBlockConfig()
        Returns:
        Parameters for the local NVMe SSDs. Structure is documented below.
      • localSsdCount

        public java.util.Optional<com.pulumi.core.Output<java.lang.Integer>> localSsdCount()
        Returns:
        The amount of local SSD disks that will be attached to each cluster node. Defaults to 0.
      • loggingVariant

        public java.util.Optional<com.pulumi.core.Output<java.lang.String>> loggingVariant()
        Returns:
        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](https://cloud.google.com/stackdriver/docs/solutions/gke/managing-logs#throughput) for more information.
      • machineType

        public java.util.Optional<com.pulumi.core.Output<java.lang.String>> machineType()
        Returns:
        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](https://cloud.google.com/compute/docs/reference/latest/instances#machineType).
      • metadata

        public java.util.Optional<com.pulumi.core.Output<java.util.Map<java.lang.String,​java.lang.String>>> metadata()
        Returns:
        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.
      • minCpuPlatform

        public java.util.Optional<com.pulumi.core.Output<java.lang.String>> minCpuPlatform()
        Returns:
        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](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform) for more information.
      • nodeGroup

        public java.util.Optional<com.pulumi.core.Output<java.lang.String>> nodeGroup()
        Returns:
        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](https://cloud.google.com/compute/docs/nodes/sole-tenant-nodes).
      • oauthScopes

        public java.util.Optional<com.pulumi.core.Output<java.util.List<java.lang.String>>> oauthScopes()
        Returns:
        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 `service_account` to a non-default service account and grant IAM roles to that service account for only the resources that it needs. See the [official documentation](https://cloud.google.com/kubernetes-engine/docs/how-to/access-scopes) for information on migrating off of legacy access scopes.
      • preemptible

        public java.util.Optional<com.pulumi.core.Output<java.lang.Boolean>> preemptible()
        Returns:
        A boolean that represents whether or not the underlying node VMs are preemptible. See the [official documentation](https://cloud.google.com/container-engine/docs/preemptible-vm) for more information. Defaults to false.
      • reservationAffinity

        public java.util.Optional<com.pulumi.core.Output<ClusterNodeConfigReservationAffinityArgs>> reservationAffinity()
        Returns:
        The configuration of the desired reservation which instances could take capacity from. Structure is documented below.
      • resourceLabels

        public java.util.Optional<com.pulumi.core.Output<java.util.Map<java.lang.String,​java.lang.String>>> resourceLabels()
        Returns:
        The GCP labels (key/value pairs) to be applied to each node. Refer [here](https://cloud.google.com/kubernetes-engine/docs/how-to/creating-managing-labels) for how these labels are applied to clusters, node pools and nodes.
      • serviceAccount

        public java.util.Optional<com.pulumi.core.Output<java.lang.String>> serviceAccount()
        Returns:
        The service account to be used by the Node VMs. If not specified, the "default" service account is used.
      • soleTenantConfig

        public java.util.Optional<com.pulumi.core.Output<ClusterNodeConfigSoleTenantConfigArgs>> soleTenantConfig()
        Returns:
        Allows specifying multiple [node affinities](https://cloud.google.com/compute/docs/nodes/sole-tenant-nodes#node_affinity_and_anti-affinity) useful for running workloads on [sole tenant nodes](https://cloud.google.com/kubernetes-engine/docs/how-to/sole-tenancy). `node_affinity` structure is documented below. ```java package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import java.util.List; import java.util.ArrayList; import java.util.Map; import java.io.File; import java.nio.file.Files; import java.nio.file.Paths; public class App { public static void main(String[] args) { Pulumi.run(App::stack); } public static void stack(Context ctx) { } } ```
      • spot

        public java.util.Optional<com.pulumi.core.Output<java.lang.Boolean>> spot()
        Returns:
        A boolean that represents whether the underlying node VMs are spot. See the [official documentation](https://cloud.google.com/kubernetes-engine/docs/concepts/spot-vms) for more information. Defaults to false.
      • tags

        public java.util.Optional<com.pulumi.core.Output<java.util.List<java.lang.String>>> tags()
        Returns:
        The list of instance tags applied to all nodes. Tags are used to identify valid sources or targets for network firewalls.
      • taints

        public java.util.Optional<com.pulumi.core.Output<java.util.List<ClusterNodeConfigTaintArgs>>> taints()
        Returns:
        A list of [Kubernetes taints](https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/) to apply to nodes. GKE's API can only set this field on cluster creation. However, GKE will add taints to your nodes if you enable certain features such as GPUs. If this field is set, any diffs on this field will cause the provider to recreate the underlying resource. Taint values can be updated safely in Kubernetes (eg. through `kubectl`), and it's recommended that you do not use this field to manage taints. If you do, `lifecycle.ignore_changes` is recommended. Structure is documented below.
      • workloadMetadataConfig

        public java.util.Optional<com.pulumi.core.Output<ClusterNodeConfigWorkloadMetadataConfigArgs>> workloadMetadataConfig()
        Returns:
        Metadata configuration to expose to workloads on the node pool. Structure is documented below.