1. Packages
  2. Google Cloud (GCP) Classic
  3. API Docs
  4. container
  5. Cluster
Google Cloud Classic v7.32.0 published on Tuesday, Jul 16, 2024 by Pulumi

gcp.container.Cluster

Explore with Pulumi AI

gcp logo
Google Cloud Classic v7.32.0 published on Tuesday, Jul 16, 2024 by Pulumi

    Manages a Google Kubernetes Engine (GKE) cluster.

    To get more information about GKE clusters, see:

    On version 5.0.0+ of the provider, you must explicitly set deletion_protection = false and run pulumi up to write the field to state in order to destroy a cluster.

    All arguments and attributes (including certificate outputs) will be stored in the raw state as plaintext. Read more about secrets in state.

    Example Usage

    import * as pulumi from "@pulumi/pulumi";
    import * as gcp from "@pulumi/gcp";
    
    const _default = new gcp.serviceaccount.Account("default", {
        accountId: "service-account-id",
        displayName: "Service Account",
    });
    const primary = new gcp.container.Cluster("primary", {
        name: "my-gke-cluster",
        location: "us-central1",
        removeDefaultNodePool: true,
        initialNodeCount: 1,
    });
    const primaryPreemptibleNodes = new gcp.container.NodePool("primary_preemptible_nodes", {
        name: "my-node-pool",
        location: "us-central1",
        cluster: primary.name,
        nodeCount: 1,
        nodeConfig: {
            preemptible: true,
            machineType: "e2-medium",
            serviceAccount: _default.email,
            oauthScopes: ["https://www.googleapis.com/auth/cloud-platform"],
        },
    });
    
    import pulumi
    import pulumi_gcp as gcp
    
    default = gcp.serviceaccount.Account("default",
        account_id="service-account-id",
        display_name="Service Account")
    primary = gcp.container.Cluster("primary",
        name="my-gke-cluster",
        location="us-central1",
        remove_default_node_pool=True,
        initial_node_count=1)
    primary_preemptible_nodes = gcp.container.NodePool("primary_preemptible_nodes",
        name="my-node-pool",
        location="us-central1",
        cluster=primary.name,
        node_count=1,
        node_config={
            "preemptible": True,
            "machineType": "e2-medium",
            "serviceAccount": default.email,
            "oauthScopes": ["https://www.googleapis.com/auth/cloud-platform"],
        })
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/container"
    	"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/serviceaccount"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := serviceaccount.NewAccount(ctx, "default", &serviceaccount.AccountArgs{
    			AccountId:   pulumi.String("service-account-id"),
    			DisplayName: pulumi.String("Service Account"),
    		})
    		if err != nil {
    			return err
    		}
    		primary, err := container.NewCluster(ctx, "primary", &container.ClusterArgs{
    			Name:                  pulumi.String("my-gke-cluster"),
    			Location:              pulumi.String("us-central1"),
    			RemoveDefaultNodePool: pulumi.Bool(true),
    			InitialNodeCount:      pulumi.Int(1),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = container.NewNodePool(ctx, "primary_preemptible_nodes", &container.NodePoolArgs{
    			Name:      pulumi.String("my-node-pool"),
    			Location:  pulumi.String("us-central1"),
    			Cluster:   primary.Name,
    			NodeCount: pulumi.Int(1),
    			NodeConfig: &container.NodePoolNodeConfigArgs{
    				Preemptible:    pulumi.Bool(true),
    				MachineType:    pulumi.String("e2-medium"),
    				ServiceAccount: _default.Email,
    				OauthScopes: pulumi.StringArray{
    					pulumi.String("https://www.googleapis.com/auth/cloud-platform"),
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Gcp = Pulumi.Gcp;
    
    return await Deployment.RunAsync(() => 
    {
        var @default = new Gcp.ServiceAccount.Account("default", new()
        {
            AccountId = "service-account-id",
            DisplayName = "Service Account",
        });
    
        var primary = new Gcp.Container.Cluster("primary", new()
        {
            Name = "my-gke-cluster",
            Location = "us-central1",
            RemoveDefaultNodePool = true,
            InitialNodeCount = 1,
        });
    
        var primaryPreemptibleNodes = new Gcp.Container.NodePool("primary_preemptible_nodes", new()
        {
            Name = "my-node-pool",
            Location = "us-central1",
            Cluster = primary.Name,
            NodeCount = 1,
            NodeConfig = new Gcp.Container.Inputs.NodePoolNodeConfigArgs
            {
                Preemptible = true,
                MachineType = "e2-medium",
                ServiceAccount = @default.Email,
                OauthScopes = new[]
                {
                    "https://www.googleapis.com/auth/cloud-platform",
                },
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.gcp.serviceaccount.Account;
    import com.pulumi.gcp.serviceaccount.AccountArgs;
    import com.pulumi.gcp.container.Cluster;
    import com.pulumi.gcp.container.ClusterArgs;
    import com.pulumi.gcp.container.NodePool;
    import com.pulumi.gcp.container.NodePoolArgs;
    import com.pulumi.gcp.container.inputs.NodePoolNodeConfigArgs;
    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) {
            var default_ = new Account("default", AccountArgs.builder()
                .accountId("service-account-id")
                .displayName("Service Account")
                .build());
    
            var primary = new Cluster("primary", ClusterArgs.builder()
                .name("my-gke-cluster")
                .location("us-central1")
                .removeDefaultNodePool(true)
                .initialNodeCount(1)
                .build());
    
            var primaryPreemptibleNodes = new NodePool("primaryPreemptibleNodes", NodePoolArgs.builder()
                .name("my-node-pool")
                .location("us-central1")
                .cluster(primary.name())
                .nodeCount(1)
                .nodeConfig(NodePoolNodeConfigArgs.builder()
                    .preemptible(true)
                    .machineType("e2-medium")
                    .serviceAccount(default_.email())
                    .oauthScopes("https://www.googleapis.com/auth/cloud-platform")
                    .build())
                .build());
    
        }
    }
    
    resources:
      default:
        type: gcp:serviceaccount:Account
        properties:
          accountId: service-account-id
          displayName: Service Account
      primary:
        type: gcp:container:Cluster
        properties:
          name: my-gke-cluster
          location: us-central1
          removeDefaultNodePool: true
          initialNodeCount: 1
      primaryPreemptibleNodes:
        type: gcp:container:NodePool
        name: primary_preemptible_nodes
        properties:
          name: my-node-pool
          location: us-central1
          cluster: ${primary.name}
          nodeCount: 1
          nodeConfig:
            preemptible: true
            machineType: e2-medium
            serviceAccount: ${default.email}
            oauthScopes:
              - https://www.googleapis.com/auth/cloud-platform
    

    Note: It is recommended that node pools be created and managed as separate resources as in the example above. This allows node pools to be added and removed without recreating the cluster. Node pools defined directly in the gcp.container.Cluster resource cannot be removed without re-creating the cluster.

    With The Default Node Pool

    import * as pulumi from "@pulumi/pulumi";
    import * as gcp from "@pulumi/gcp";
    
    const _default = new gcp.serviceaccount.Account("default", {
        accountId: "service-account-id",
        displayName: "Service Account",
    });
    const primary = new gcp.container.Cluster("primary", {
        name: "marcellus-wallace",
        location: "us-central1-a",
        initialNodeCount: 3,
        nodeConfig: {
            serviceAccount: _default.email,
            oauthScopes: ["https://www.googleapis.com/auth/cloud-platform"],
            labels: {
                foo: "bar",
            },
            tags: [
                "foo",
                "bar",
            ],
        },
    });
    
    import pulumi
    import pulumi_gcp as gcp
    
    default = gcp.serviceaccount.Account("default",
        account_id="service-account-id",
        display_name="Service Account")
    primary = gcp.container.Cluster("primary",
        name="marcellus-wallace",
        location="us-central1-a",
        initial_node_count=3,
        node_config={
            "serviceAccount": default.email,
            "oauthScopes": ["https://www.googleapis.com/auth/cloud-platform"],
            "labels": {
                "foo": "bar",
            },
            "tags": [
                "foo",
                "bar",
            ],
        })
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/container"
    	"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/serviceaccount"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := serviceaccount.NewAccount(ctx, "default", &serviceaccount.AccountArgs{
    			AccountId:   pulumi.String("service-account-id"),
    			DisplayName: pulumi.String("Service Account"),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = container.NewCluster(ctx, "primary", &container.ClusterArgs{
    			Name:             pulumi.String("marcellus-wallace"),
    			Location:         pulumi.String("us-central1-a"),
    			InitialNodeCount: pulumi.Int(3),
    			NodeConfig: &container.ClusterNodeConfigArgs{
    				ServiceAccount: _default.Email,
    				OauthScopes: pulumi.StringArray{
    					pulumi.String("https://www.googleapis.com/auth/cloud-platform"),
    				},
    				Labels: pulumi.StringMap{
    					"foo": pulumi.String("bar"),
    				},
    				Tags: pulumi.StringArray{
    					pulumi.String("foo"),
    					pulumi.String("bar"),
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Gcp = Pulumi.Gcp;
    
    return await Deployment.RunAsync(() => 
    {
        var @default = new Gcp.ServiceAccount.Account("default", new()
        {
            AccountId = "service-account-id",
            DisplayName = "Service Account",
        });
    
        var primary = new Gcp.Container.Cluster("primary", new()
        {
            Name = "marcellus-wallace",
            Location = "us-central1-a",
            InitialNodeCount = 3,
            NodeConfig = new Gcp.Container.Inputs.ClusterNodeConfigArgs
            {
                ServiceAccount = @default.Email,
                OauthScopes = new[]
                {
                    "https://www.googleapis.com/auth/cloud-platform",
                },
                Labels = 
                {
                    { "foo", "bar" },
                },
                Tags = new[]
                {
                    "foo",
                    "bar",
                },
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.gcp.serviceaccount.Account;
    import com.pulumi.gcp.serviceaccount.AccountArgs;
    import com.pulumi.gcp.container.Cluster;
    import com.pulumi.gcp.container.ClusterArgs;
    import com.pulumi.gcp.container.inputs.ClusterNodeConfigArgs;
    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) {
            var default_ = new Account("default", AccountArgs.builder()
                .accountId("service-account-id")
                .displayName("Service Account")
                .build());
    
            var primary = new Cluster("primary", ClusterArgs.builder()
                .name("marcellus-wallace")
                .location("us-central1-a")
                .initialNodeCount(3)
                .nodeConfig(ClusterNodeConfigArgs.builder()
                    .serviceAccount(default_.email())
                    .oauthScopes("https://www.googleapis.com/auth/cloud-platform")
                    .labels(Map.of("foo", "bar"))
                    .tags(                
                        "foo",
                        "bar")
                    .build())
                .build());
    
        }
    }
    
    resources:
      default:
        type: gcp:serviceaccount:Account
        properties:
          accountId: service-account-id
          displayName: Service Account
      primary:
        type: gcp:container:Cluster
        properties:
          name: marcellus-wallace
          location: us-central1-a
          initialNodeCount: 3
          nodeConfig:
            serviceAccount: ${default.email}
            oauthScopes:
              - https://www.googleapis.com/auth/cloud-platform
            labels:
              foo: bar
            tags:
              - foo
              - bar
    

    Autopilot

    import * as pulumi from "@pulumi/pulumi";
    import * as gcp from "@pulumi/gcp";
    
    const _default = new gcp.serviceaccount.Account("default", {
        accountId: "service-account-id",
        displayName: "Service Account",
    });
    const primary = new gcp.container.Cluster("primary", {
        name: "marcellus-wallace",
        location: "us-central1-a",
        enableAutopilot: true,
    });
    
    import pulumi
    import pulumi_gcp as gcp
    
    default = gcp.serviceaccount.Account("default",
        account_id="service-account-id",
        display_name="Service Account")
    primary = gcp.container.Cluster("primary",
        name="marcellus-wallace",
        location="us-central1-a",
        enable_autopilot=True)
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/container"
    	"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/serviceaccount"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := serviceaccount.NewAccount(ctx, "default", &serviceaccount.AccountArgs{
    			AccountId:   pulumi.String("service-account-id"),
    			DisplayName: pulumi.String("Service Account"),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = container.NewCluster(ctx, "primary", &container.ClusterArgs{
    			Name:            pulumi.String("marcellus-wallace"),
    			Location:        pulumi.String("us-central1-a"),
    			EnableAutopilot: pulumi.Bool(true),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Gcp = Pulumi.Gcp;
    
    return await Deployment.RunAsync(() => 
    {
        var @default = new Gcp.ServiceAccount.Account("default", new()
        {
            AccountId = "service-account-id",
            DisplayName = "Service Account",
        });
    
        var primary = new Gcp.Container.Cluster("primary", new()
        {
            Name = "marcellus-wallace",
            Location = "us-central1-a",
            EnableAutopilot = true,
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.gcp.serviceaccount.Account;
    import com.pulumi.gcp.serviceaccount.AccountArgs;
    import com.pulumi.gcp.container.Cluster;
    import com.pulumi.gcp.container.ClusterArgs;
    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) {
            var default_ = new Account("default", AccountArgs.builder()
                .accountId("service-account-id")
                .displayName("Service Account")
                .build());
    
            var primary = new Cluster("primary", ClusterArgs.builder()
                .name("marcellus-wallace")
                .location("us-central1-a")
                .enableAutopilot(true)
                .build());
    
        }
    }
    
    resources:
      default:
        type: gcp:serviceaccount:Account
        properties:
          accountId: service-account-id
          displayName: Service Account
      primary:
        type: gcp:container:Cluster
        properties:
          name: marcellus-wallace
          location: us-central1-a
          enableAutopilot: true
    

    Create Cluster Resource

    Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.

    Constructor syntax

    new Cluster(name: string, args?: ClusterArgs, opts?: CustomResourceOptions);
    @overload
    def Cluster(resource_name: str,
                args: Optional[ClusterArgs] = None,
                opts: Optional[ResourceOptions] = None)
    
    @overload
    def Cluster(resource_name: str,
                opts: Optional[ResourceOptions] = None,
                addons_config: Optional[ClusterAddonsConfigArgs] = None,
                allow_net_admin: Optional[bool] = None,
                authenticator_groups_config: Optional[ClusterAuthenticatorGroupsConfigArgs] = None,
                binary_authorization: Optional[ClusterBinaryAuthorizationArgs] = None,
                cluster_autoscaling: Optional[ClusterClusterAutoscalingArgs] = None,
                cluster_ipv4_cidr: Optional[str] = None,
                cluster_telemetry: Optional[ClusterClusterTelemetryArgs] = None,
                confidential_nodes: Optional[ClusterConfidentialNodesArgs] = None,
                cost_management_config: Optional[ClusterCostManagementConfigArgs] = None,
                database_encryption: Optional[ClusterDatabaseEncryptionArgs] = None,
                datapath_provider: Optional[str] = None,
                default_max_pods_per_node: Optional[int] = None,
                default_snat_status: Optional[ClusterDefaultSnatStatusArgs] = None,
                deletion_protection: Optional[bool] = None,
                description: Optional[str] = None,
                dns_config: Optional[ClusterDnsConfigArgs] = None,
                enable_autopilot: Optional[bool] = None,
                enable_cilium_clusterwide_network_policy: Optional[bool] = None,
                enable_fqdn_network_policy: Optional[bool] = None,
                enable_intranode_visibility: Optional[bool] = None,
                enable_k8s_beta_apis: Optional[ClusterEnableK8sBetaApisArgs] = None,
                enable_kubernetes_alpha: Optional[bool] = None,
                enable_l4_ilb_subsetting: Optional[bool] = None,
                enable_legacy_abac: Optional[bool] = None,
                enable_multi_networking: Optional[bool] = None,
                enable_shielded_nodes: Optional[bool] = None,
                enable_tpu: Optional[bool] = None,
                fleet: Optional[ClusterFleetArgs] = None,
                gateway_api_config: Optional[ClusterGatewayApiConfigArgs] = None,
                identity_service_config: Optional[ClusterIdentityServiceConfigArgs] = None,
                initial_node_count: Optional[int] = None,
                ip_allocation_policy: Optional[ClusterIpAllocationPolicyArgs] = None,
                location: Optional[str] = None,
                logging_config: Optional[ClusterLoggingConfigArgs] = None,
                logging_service: Optional[str] = None,
                maintenance_policy: Optional[ClusterMaintenancePolicyArgs] = None,
                master_auth: Optional[ClusterMasterAuthArgs] = None,
                master_authorized_networks_config: Optional[ClusterMasterAuthorizedNetworksConfigArgs] = None,
                mesh_certificates: Optional[ClusterMeshCertificatesArgs] = None,
                min_master_version: Optional[str] = None,
                monitoring_config: Optional[ClusterMonitoringConfigArgs] = None,
                monitoring_service: Optional[str] = None,
                name: Optional[str] = None,
                network: Optional[str] = None,
                network_policy: Optional[ClusterNetworkPolicyArgs] = None,
                networking_mode: Optional[str] = None,
                node_config: Optional[ClusterNodeConfigArgs] = None,
                node_locations: Optional[Sequence[str]] = None,
                node_pool_auto_config: Optional[ClusterNodePoolAutoConfigArgs] = None,
                node_pool_defaults: Optional[ClusterNodePoolDefaultsArgs] = None,
                node_pools: Optional[Sequence[ClusterNodePoolArgs]] = None,
                node_version: Optional[str] = None,
                notification_config: Optional[ClusterNotificationConfigArgs] = None,
                pod_security_policy_config: Optional[ClusterPodSecurityPolicyConfigArgs] = None,
                private_cluster_config: Optional[ClusterPrivateClusterConfigArgs] = None,
                private_ipv6_google_access: Optional[str] = None,
                project: Optional[str] = None,
                protect_config: Optional[ClusterProtectConfigArgs] = None,
                release_channel: Optional[ClusterReleaseChannelArgs] = None,
                remove_default_node_pool: Optional[bool] = None,
                resource_labels: Optional[Mapping[str, str]] = None,
                resource_usage_export_config: Optional[ClusterResourceUsageExportConfigArgs] = None,
                secret_manager_config: Optional[ClusterSecretManagerConfigArgs] = None,
                security_posture_config: Optional[ClusterSecurityPostureConfigArgs] = None,
                service_external_ips_config: Optional[ClusterServiceExternalIpsConfigArgs] = None,
                subnetwork: Optional[str] = None,
                tpu_config: Optional[ClusterTpuConfigArgs] = None,
                vertical_pod_autoscaling: Optional[ClusterVerticalPodAutoscalingArgs] = None,
                workload_alts_config: Optional[ClusterWorkloadAltsConfigArgs] = None,
                workload_identity_config: Optional[ClusterWorkloadIdentityConfigArgs] = None)
    func NewCluster(ctx *Context, name string, args *ClusterArgs, opts ...ResourceOption) (*Cluster, error)
    public Cluster(string name, ClusterArgs? args = null, CustomResourceOptions? opts = null)
    public Cluster(String name, ClusterArgs args)
    public Cluster(String name, ClusterArgs args, CustomResourceOptions options)
    
    type: gcp:container:Cluster
    properties: # The arguments to resource properties.
    options: # Bag of options to control resource's behavior.
    
    

    Parameters

    name string
    The unique name of the resource.
    args ClusterArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    resource_name str
    The unique name of the resource.
    args ClusterArgs
    The arguments to resource properties.
    opts ResourceOptions
    Bag of options to control resource's behavior.
    ctx Context
    Context object for the current deployment.
    name string
    The unique name of the resource.
    args ClusterArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args ClusterArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args ClusterArgs
    The arguments to resource properties.
    options CustomResourceOptions
    Bag of options to control resource's behavior.

    Constructor example

    The following reference example uses placeholder values for all input properties.

    var gcpClusterResource = new Gcp.Container.Cluster("gcpClusterResource", new()
    {
        AddonsConfig = new Gcp.Container.Inputs.ClusterAddonsConfigArgs
        {
            CloudrunConfig = new Gcp.Container.Inputs.ClusterAddonsConfigCloudrunConfigArgs
            {
                Disabled = false,
                LoadBalancerType = "string",
            },
            ConfigConnectorConfig = new Gcp.Container.Inputs.ClusterAddonsConfigConfigConnectorConfigArgs
            {
                Enabled = false,
            },
            DnsCacheConfig = new Gcp.Container.Inputs.ClusterAddonsConfigDnsCacheConfigArgs
            {
                Enabled = false,
            },
            GcePersistentDiskCsiDriverConfig = new Gcp.Container.Inputs.ClusterAddonsConfigGcePersistentDiskCsiDriverConfigArgs
            {
                Enabled = false,
            },
            GcpFilestoreCsiDriverConfig = new Gcp.Container.Inputs.ClusterAddonsConfigGcpFilestoreCsiDriverConfigArgs
            {
                Enabled = false,
            },
            GcsFuseCsiDriverConfig = new Gcp.Container.Inputs.ClusterAddonsConfigGcsFuseCsiDriverConfigArgs
            {
                Enabled = false,
            },
            GkeBackupAgentConfig = new Gcp.Container.Inputs.ClusterAddonsConfigGkeBackupAgentConfigArgs
            {
                Enabled = false,
            },
            HorizontalPodAutoscaling = new Gcp.Container.Inputs.ClusterAddonsConfigHorizontalPodAutoscalingArgs
            {
                Disabled = false,
            },
            HttpLoadBalancing = new Gcp.Container.Inputs.ClusterAddonsConfigHttpLoadBalancingArgs
            {
                Disabled = false,
            },
            IstioConfig = new Gcp.Container.Inputs.ClusterAddonsConfigIstioConfigArgs
            {
                Disabled = false,
                Auth = "string",
            },
            KalmConfig = new Gcp.Container.Inputs.ClusterAddonsConfigKalmConfigArgs
            {
                Enabled = false,
            },
            NetworkPolicyConfig = new Gcp.Container.Inputs.ClusterAddonsConfigNetworkPolicyConfigArgs
            {
                Disabled = false,
            },
            StatefulHaConfig = new Gcp.Container.Inputs.ClusterAddonsConfigStatefulHaConfigArgs
            {
                Enabled = false,
            },
        },
        AllowNetAdmin = false,
        AuthenticatorGroupsConfig = new Gcp.Container.Inputs.ClusterAuthenticatorGroupsConfigArgs
        {
            SecurityGroup = "string",
        },
        BinaryAuthorization = new Gcp.Container.Inputs.ClusterBinaryAuthorizationArgs
        {
            EvaluationMode = "string",
        },
        ClusterAutoscaling = new Gcp.Container.Inputs.ClusterClusterAutoscalingArgs
        {
            AutoProvisioningDefaults = new Gcp.Container.Inputs.ClusterClusterAutoscalingAutoProvisioningDefaultsArgs
            {
                BootDiskKmsKey = "string",
                DiskSize = 0,
                DiskType = "string",
                ImageType = "string",
                Management = new Gcp.Container.Inputs.ClusterClusterAutoscalingAutoProvisioningDefaultsManagementArgs
                {
                    AutoRepair = false,
                    AutoUpgrade = false,
                    UpgradeOptions = new[]
                    {
                        new Gcp.Container.Inputs.ClusterClusterAutoscalingAutoProvisioningDefaultsManagementUpgradeOptionArgs
                        {
                            AutoUpgradeStartTime = "string",
                            Description = "string",
                        },
                    },
                },
                MinCpuPlatform = "string",
                OauthScopes = new[]
                {
                    "string",
                },
                ServiceAccount = "string",
                ShieldedInstanceConfig = new Gcp.Container.Inputs.ClusterClusterAutoscalingAutoProvisioningDefaultsShieldedInstanceConfigArgs
                {
                    EnableIntegrityMonitoring = false,
                    EnableSecureBoot = false,
                },
                UpgradeSettings = new Gcp.Container.Inputs.ClusterClusterAutoscalingAutoProvisioningDefaultsUpgradeSettingsArgs
                {
                    BlueGreenSettings = new Gcp.Container.Inputs.ClusterClusterAutoscalingAutoProvisioningDefaultsUpgradeSettingsBlueGreenSettingsArgs
                    {
                        NodePoolSoakDuration = "string",
                        StandardRolloutPolicy = new Gcp.Container.Inputs.ClusterClusterAutoscalingAutoProvisioningDefaultsUpgradeSettingsBlueGreenSettingsStandardRolloutPolicyArgs
                        {
                            BatchNodeCount = 0,
                            BatchPercentage = 0,
                            BatchSoakDuration = "string",
                        },
                    },
                    MaxSurge = 0,
                    MaxUnavailable = 0,
                    Strategy = "string",
                },
            },
            AutoscalingProfile = "string",
            Enabled = false,
            ResourceLimits = new[]
            {
                new Gcp.Container.Inputs.ClusterClusterAutoscalingResourceLimitArgs
                {
                    ResourceType = "string",
                    Maximum = 0,
                    Minimum = 0,
                },
            },
        },
        ClusterIpv4Cidr = "string",
        ClusterTelemetry = new Gcp.Container.Inputs.ClusterClusterTelemetryArgs
        {
            Type = "string",
        },
        ConfidentialNodes = new Gcp.Container.Inputs.ClusterConfidentialNodesArgs
        {
            Enabled = false,
        },
        CostManagementConfig = new Gcp.Container.Inputs.ClusterCostManagementConfigArgs
        {
            Enabled = false,
        },
        DatabaseEncryption = new Gcp.Container.Inputs.ClusterDatabaseEncryptionArgs
        {
            State = "string",
            KeyName = "string",
        },
        DatapathProvider = "string",
        DefaultMaxPodsPerNode = 0,
        DefaultSnatStatus = new Gcp.Container.Inputs.ClusterDefaultSnatStatusArgs
        {
            Disabled = false,
        },
        DeletionProtection = false,
        Description = "string",
        DnsConfig = new Gcp.Container.Inputs.ClusterDnsConfigArgs
        {
            AdditiveVpcScopeDnsDomain = "string",
            ClusterDns = "string",
            ClusterDnsDomain = "string",
            ClusterDnsScope = "string",
        },
        EnableAutopilot = false,
        EnableCiliumClusterwideNetworkPolicy = false,
        EnableFqdnNetworkPolicy = false,
        EnableIntranodeVisibility = false,
        EnableK8sBetaApis = new Gcp.Container.Inputs.ClusterEnableK8sBetaApisArgs
        {
            EnabledApis = new[]
            {
                "string",
            },
        },
        EnableKubernetesAlpha = false,
        EnableL4IlbSubsetting = false,
        EnableLegacyAbac = false,
        EnableMultiNetworking = false,
        EnableShieldedNodes = false,
        EnableTpu = false,
        Fleet = new Gcp.Container.Inputs.ClusterFleetArgs
        {
            Membership = "string",
            MembershipId = "string",
            MembershipLocation = "string",
            PreRegistered = false,
            Project = "string",
        },
        GatewayApiConfig = new Gcp.Container.Inputs.ClusterGatewayApiConfigArgs
        {
            Channel = "string",
        },
        IdentityServiceConfig = new Gcp.Container.Inputs.ClusterIdentityServiceConfigArgs
        {
            Enabled = false,
        },
        InitialNodeCount = 0,
        IpAllocationPolicy = new Gcp.Container.Inputs.ClusterIpAllocationPolicyArgs
        {
            AdditionalPodRangesConfig = new Gcp.Container.Inputs.ClusterIpAllocationPolicyAdditionalPodRangesConfigArgs
            {
                PodRangeNames = new[]
                {
                    "string",
                },
            },
            ClusterIpv4CidrBlock = "string",
            ClusterSecondaryRangeName = "string",
            PodCidrOverprovisionConfig = new Gcp.Container.Inputs.ClusterIpAllocationPolicyPodCidrOverprovisionConfigArgs
            {
                Disabled = false,
            },
            ServicesIpv4CidrBlock = "string",
            ServicesSecondaryRangeName = "string",
            StackType = "string",
        },
        Location = "string",
        LoggingConfig = new Gcp.Container.Inputs.ClusterLoggingConfigArgs
        {
            EnableComponents = new[]
            {
                "string",
            },
        },
        LoggingService = "string",
        MaintenancePolicy = new Gcp.Container.Inputs.ClusterMaintenancePolicyArgs
        {
            DailyMaintenanceWindow = new Gcp.Container.Inputs.ClusterMaintenancePolicyDailyMaintenanceWindowArgs
            {
                StartTime = "string",
                Duration = "string",
            },
            MaintenanceExclusions = new[]
            {
                new Gcp.Container.Inputs.ClusterMaintenancePolicyMaintenanceExclusionArgs
                {
                    EndTime = "string",
                    ExclusionName = "string",
                    StartTime = "string",
                    ExclusionOptions = new Gcp.Container.Inputs.ClusterMaintenancePolicyMaintenanceExclusionExclusionOptionsArgs
                    {
                        Scope = "string",
                    },
                },
            },
            RecurringWindow = new Gcp.Container.Inputs.ClusterMaintenancePolicyRecurringWindowArgs
            {
                EndTime = "string",
                Recurrence = "string",
                StartTime = "string",
            },
        },
        MasterAuth = new Gcp.Container.Inputs.ClusterMasterAuthArgs
        {
            ClientCertificateConfig = new Gcp.Container.Inputs.ClusterMasterAuthClientCertificateConfigArgs
            {
                IssueClientCertificate = false,
            },
            ClientCertificate = "string",
            ClientKey = "string",
            ClusterCaCertificate = "string",
        },
        MasterAuthorizedNetworksConfig = new Gcp.Container.Inputs.ClusterMasterAuthorizedNetworksConfigArgs
        {
            CidrBlocks = new[]
            {
                new Gcp.Container.Inputs.ClusterMasterAuthorizedNetworksConfigCidrBlockArgs
                {
                    CidrBlock = "string",
                    DisplayName = "string",
                },
            },
            GcpPublicCidrsAccessEnabled = false,
        },
        MeshCertificates = new Gcp.Container.Inputs.ClusterMeshCertificatesArgs
        {
            EnableCertificates = false,
        },
        MinMasterVersion = "string",
        MonitoringConfig = new Gcp.Container.Inputs.ClusterMonitoringConfigArgs
        {
            AdvancedDatapathObservabilityConfigs = new[]
            {
                new Gcp.Container.Inputs.ClusterMonitoringConfigAdvancedDatapathObservabilityConfigArgs
                {
                    EnableMetrics = false,
                    EnableRelay = false,
                },
            },
            EnableComponents = new[]
            {
                "string",
            },
            ManagedPrometheus = new Gcp.Container.Inputs.ClusterMonitoringConfigManagedPrometheusArgs
            {
                Enabled = false,
            },
        },
        MonitoringService = "string",
        Name = "string",
        Network = "string",
        NetworkPolicy = new Gcp.Container.Inputs.ClusterNetworkPolicyArgs
        {
            Enabled = false,
            Provider = "string",
        },
        NetworkingMode = "string",
        NodeConfig = new Gcp.Container.Inputs.ClusterNodeConfigArgs
        {
            AdvancedMachineFeatures = new Gcp.Container.Inputs.ClusterNodeConfigAdvancedMachineFeaturesArgs
            {
                ThreadsPerCore = 0,
                EnableNestedVirtualization = false,
            },
            BootDiskKmsKey = "string",
            ConfidentialNodes = new Gcp.Container.Inputs.ClusterNodeConfigConfidentialNodesArgs
            {
                Enabled = false,
            },
            ContainerdConfig = new Gcp.Container.Inputs.ClusterNodeConfigContainerdConfigArgs
            {
                PrivateRegistryAccessConfig = new Gcp.Container.Inputs.ClusterNodeConfigContainerdConfigPrivateRegistryAccessConfigArgs
                {
                    Enabled = false,
                    CertificateAuthorityDomainConfigs = new[]
                    {
                        new Gcp.Container.Inputs.ClusterNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigArgs
                        {
                            Fqdns = new[]
                            {
                                "string",
                            },
                            GcpSecretManagerCertificateConfig = new Gcp.Container.Inputs.ClusterNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigGcpSecretManagerCertificateConfigArgs
                            {
                                SecretUri = "string",
                            },
                        },
                    },
                },
            },
            DiskSizeGb = 0,
            DiskType = "string",
            EffectiveTaints = new[]
            {
                new Gcp.Container.Inputs.ClusterNodeConfigEffectiveTaintArgs
                {
                    Effect = "string",
                    Key = "string",
                    Value = "string",
                },
            },
            EnableConfidentialStorage = false,
            EphemeralStorageConfig = new Gcp.Container.Inputs.ClusterNodeConfigEphemeralStorageConfigArgs
            {
                LocalSsdCount = 0,
            },
            EphemeralStorageLocalSsdConfig = new Gcp.Container.Inputs.ClusterNodeConfigEphemeralStorageLocalSsdConfigArgs
            {
                LocalSsdCount = 0,
            },
            FastSocket = new Gcp.Container.Inputs.ClusterNodeConfigFastSocketArgs
            {
                Enabled = false,
            },
            GcfsConfig = new Gcp.Container.Inputs.ClusterNodeConfigGcfsConfigArgs
            {
                Enabled = false,
            },
            GuestAccelerators = new[]
            {
                new Gcp.Container.Inputs.ClusterNodeConfigGuestAcceleratorArgs
                {
                    Count = 0,
                    Type = "string",
                    GpuDriverInstallationConfig = new Gcp.Container.Inputs.ClusterNodeConfigGuestAcceleratorGpuDriverInstallationConfigArgs
                    {
                        GpuDriverVersion = "string",
                    },
                    GpuPartitionSize = "string",
                    GpuSharingConfig = new Gcp.Container.Inputs.ClusterNodeConfigGuestAcceleratorGpuSharingConfigArgs
                    {
                        GpuSharingStrategy = "string",
                        MaxSharedClientsPerGpu = 0,
                    },
                },
            },
            Gvnic = new Gcp.Container.Inputs.ClusterNodeConfigGvnicArgs
            {
                Enabled = false,
            },
            HostMaintenancePolicy = new Gcp.Container.Inputs.ClusterNodeConfigHostMaintenancePolicyArgs
            {
                MaintenanceInterval = "string",
            },
            ImageType = "string",
            KubeletConfig = new Gcp.Container.Inputs.ClusterNodeConfigKubeletConfigArgs
            {
                CpuManagerPolicy = "string",
                CpuCfsQuota = false,
                CpuCfsQuotaPeriod = "string",
                PodPidsLimit = 0,
            },
            Labels = 
            {
                { "string", "string" },
            },
            LinuxNodeConfig = new Gcp.Container.Inputs.ClusterNodeConfigLinuxNodeConfigArgs
            {
                CgroupMode = "string",
                Sysctls = 
                {
                    { "string", "string" },
                },
            },
            LocalNvmeSsdBlockConfig = new Gcp.Container.Inputs.ClusterNodeConfigLocalNvmeSsdBlockConfigArgs
            {
                LocalSsdCount = 0,
            },
            LocalSsdCount = 0,
            LoggingVariant = "string",
            MachineType = "string",
            Metadata = 
            {
                { "string", "string" },
            },
            MinCpuPlatform = "string",
            NodeGroup = "string",
            OauthScopes = new[]
            {
                "string",
            },
            Preemptible = false,
            ReservationAffinity = new Gcp.Container.Inputs.ClusterNodeConfigReservationAffinityArgs
            {
                ConsumeReservationType = "string",
                Key = "string",
                Values = new[]
                {
                    "string",
                },
            },
            ResourceLabels = 
            {
                { "string", "string" },
            },
            ResourceManagerTags = 
            {
                { "string", "any" },
            },
            SandboxConfig = new Gcp.Container.Inputs.ClusterNodeConfigSandboxConfigArgs
            {
                SandboxType = "string",
            },
            SecondaryBootDisks = new[]
            {
                new Gcp.Container.Inputs.ClusterNodeConfigSecondaryBootDiskArgs
                {
                    DiskImage = "string",
                    Mode = "string",
                },
            },
            ServiceAccount = "string",
            ShieldedInstanceConfig = new Gcp.Container.Inputs.ClusterNodeConfigShieldedInstanceConfigArgs
            {
                EnableIntegrityMonitoring = false,
                EnableSecureBoot = false,
            },
            SoleTenantConfig = new Gcp.Container.Inputs.ClusterNodeConfigSoleTenantConfigArgs
            {
                NodeAffinities = new[]
                {
                    new Gcp.Container.Inputs.ClusterNodeConfigSoleTenantConfigNodeAffinityArgs
                    {
                        Key = "string",
                        Operator = "string",
                        Values = new[]
                        {
                            "string",
                        },
                    },
                },
            },
            Spot = false,
            Tags = new[]
            {
                "string",
            },
            Taints = new[]
            {
                new Gcp.Container.Inputs.ClusterNodeConfigTaintArgs
                {
                    Effect = "string",
                    Key = "string",
                    Value = "string",
                },
            },
            WorkloadMetadataConfig = new Gcp.Container.Inputs.ClusterNodeConfigWorkloadMetadataConfigArgs
            {
                Mode = "string",
            },
        },
        NodeLocations = new[]
        {
            "string",
        },
        NodePoolAutoConfig = new Gcp.Container.Inputs.ClusterNodePoolAutoConfigArgs
        {
            NetworkTags = new Gcp.Container.Inputs.ClusterNodePoolAutoConfigNetworkTagsArgs
            {
                Tags = new[]
                {
                    "string",
                },
            },
            ResourceManagerTags = 
            {
                { "string", "any" },
            },
        },
        NodePoolDefaults = new Gcp.Container.Inputs.ClusterNodePoolDefaultsArgs
        {
            NodeConfigDefaults = new Gcp.Container.Inputs.ClusterNodePoolDefaultsNodeConfigDefaultsArgs
            {
                ContainerdConfig = new Gcp.Container.Inputs.ClusterNodePoolDefaultsNodeConfigDefaultsContainerdConfigArgs
                {
                    PrivateRegistryAccessConfig = new Gcp.Container.Inputs.ClusterNodePoolDefaultsNodeConfigDefaultsContainerdConfigPrivateRegistryAccessConfigArgs
                    {
                        Enabled = false,
                        CertificateAuthorityDomainConfigs = new[]
                        {
                            new Gcp.Container.Inputs.ClusterNodePoolDefaultsNodeConfigDefaultsContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigArgs
                            {
                                Fqdns = new[]
                                {
                                    "string",
                                },
                                GcpSecretManagerCertificateConfig = new Gcp.Container.Inputs.ClusterNodePoolDefaultsNodeConfigDefaultsContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigGcpSecretManagerCertificateConfigArgs
                                {
                                    SecretUri = "string",
                                },
                            },
                        },
                    },
                },
                GcfsConfig = new Gcp.Container.Inputs.ClusterNodePoolDefaultsNodeConfigDefaultsGcfsConfigArgs
                {
                    Enabled = false,
                },
                LoggingVariant = "string",
            },
        },
        NodePools = new[]
        {
            new Gcp.Container.Inputs.ClusterNodePoolArgs
            {
                Autoscaling = new Gcp.Container.Inputs.ClusterNodePoolAutoscalingArgs
                {
                    LocationPolicy = "string",
                    MaxNodeCount = 0,
                    MinNodeCount = 0,
                    TotalMaxNodeCount = 0,
                    TotalMinNodeCount = 0,
                },
                InitialNodeCount = 0,
                InstanceGroupUrls = new[]
                {
                    "string",
                },
                ManagedInstanceGroupUrls = new[]
                {
                    "string",
                },
                Management = new Gcp.Container.Inputs.ClusterNodePoolManagementArgs
                {
                    AutoRepair = false,
                    AutoUpgrade = false,
                },
                MaxPodsPerNode = 0,
                Name = "string",
                NamePrefix = "string",
                NetworkConfig = new Gcp.Container.Inputs.ClusterNodePoolNetworkConfigArgs
                {
                    AdditionalNodeNetworkConfigs = new[]
                    {
                        new Gcp.Container.Inputs.ClusterNodePoolNetworkConfigAdditionalNodeNetworkConfigArgs
                        {
                            Network = "string",
                            Subnetwork = "string",
                        },
                    },
                    AdditionalPodNetworkConfigs = new[]
                    {
                        new Gcp.Container.Inputs.ClusterNodePoolNetworkConfigAdditionalPodNetworkConfigArgs
                        {
                            MaxPodsPerNode = 0,
                            SecondaryPodRange = "string",
                            Subnetwork = "string",
                        },
                    },
                    CreatePodRange = false,
                    EnablePrivateNodes = false,
                    NetworkPerformanceConfig = new Gcp.Container.Inputs.ClusterNodePoolNetworkConfigNetworkPerformanceConfigArgs
                    {
                        TotalEgressBandwidthTier = "string",
                    },
                    PodCidrOverprovisionConfig = new Gcp.Container.Inputs.ClusterNodePoolNetworkConfigPodCidrOverprovisionConfigArgs
                    {
                        Disabled = false,
                    },
                    PodIpv4CidrBlock = "string",
                    PodRange = "string",
                },
                NodeConfig = new Gcp.Container.Inputs.ClusterNodePoolNodeConfigArgs
                {
                    AdvancedMachineFeatures = new Gcp.Container.Inputs.ClusterNodePoolNodeConfigAdvancedMachineFeaturesArgs
                    {
                        ThreadsPerCore = 0,
                        EnableNestedVirtualization = false,
                    },
                    BootDiskKmsKey = "string",
                    ConfidentialNodes = new Gcp.Container.Inputs.ClusterNodePoolNodeConfigConfidentialNodesArgs
                    {
                        Enabled = false,
                    },
                    ContainerdConfig = new Gcp.Container.Inputs.ClusterNodePoolNodeConfigContainerdConfigArgs
                    {
                        PrivateRegistryAccessConfig = new Gcp.Container.Inputs.ClusterNodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfigArgs
                        {
                            Enabled = false,
                            CertificateAuthorityDomainConfigs = new[]
                            {
                                new Gcp.Container.Inputs.ClusterNodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigArgs
                                {
                                    Fqdns = new[]
                                    {
                                        "string",
                                    },
                                    GcpSecretManagerCertificateConfig = new Gcp.Container.Inputs.ClusterNodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigGcpSecretManagerCertificateConfigArgs
                                    {
                                        SecretUri = "string",
                                    },
                                },
                            },
                        },
                    },
                    DiskSizeGb = 0,
                    DiskType = "string",
                    EffectiveTaints = new[]
                    {
                        new Gcp.Container.Inputs.ClusterNodePoolNodeConfigEffectiveTaintArgs
                        {
                            Effect = "string",
                            Key = "string",
                            Value = "string",
                        },
                    },
                    EnableConfidentialStorage = false,
                    EphemeralStorageConfig = new Gcp.Container.Inputs.ClusterNodePoolNodeConfigEphemeralStorageConfigArgs
                    {
                        LocalSsdCount = 0,
                    },
                    EphemeralStorageLocalSsdConfig = new Gcp.Container.Inputs.ClusterNodePoolNodeConfigEphemeralStorageLocalSsdConfigArgs
                    {
                        LocalSsdCount = 0,
                    },
                    FastSocket = new Gcp.Container.Inputs.ClusterNodePoolNodeConfigFastSocketArgs
                    {
                        Enabled = false,
                    },
                    GcfsConfig = new Gcp.Container.Inputs.ClusterNodePoolNodeConfigGcfsConfigArgs
                    {
                        Enabled = false,
                    },
                    GuestAccelerators = new[]
                    {
                        new Gcp.Container.Inputs.ClusterNodePoolNodeConfigGuestAcceleratorArgs
                        {
                            Count = 0,
                            Type = "string",
                            GpuDriverInstallationConfig = new Gcp.Container.Inputs.ClusterNodePoolNodeConfigGuestAcceleratorGpuDriverInstallationConfigArgs
                            {
                                GpuDriverVersion = "string",
                            },
                            GpuPartitionSize = "string",
                            GpuSharingConfig = new Gcp.Container.Inputs.ClusterNodePoolNodeConfigGuestAcceleratorGpuSharingConfigArgs
                            {
                                GpuSharingStrategy = "string",
                                MaxSharedClientsPerGpu = 0,
                            },
                        },
                    },
                    Gvnic = new Gcp.Container.Inputs.ClusterNodePoolNodeConfigGvnicArgs
                    {
                        Enabled = false,
                    },
                    HostMaintenancePolicy = new Gcp.Container.Inputs.ClusterNodePoolNodeConfigHostMaintenancePolicyArgs
                    {
                        MaintenanceInterval = "string",
                    },
                    ImageType = "string",
                    KubeletConfig = new Gcp.Container.Inputs.ClusterNodePoolNodeConfigKubeletConfigArgs
                    {
                        CpuManagerPolicy = "string",
                        CpuCfsQuota = false,
                        CpuCfsQuotaPeriod = "string",
                        PodPidsLimit = 0,
                    },
                    Labels = 
                    {
                        { "string", "string" },
                    },
                    LinuxNodeConfig = new Gcp.Container.Inputs.ClusterNodePoolNodeConfigLinuxNodeConfigArgs
                    {
                        CgroupMode = "string",
                        Sysctls = 
                        {
                            { "string", "string" },
                        },
                    },
                    LocalNvmeSsdBlockConfig = new Gcp.Container.Inputs.ClusterNodePoolNodeConfigLocalNvmeSsdBlockConfigArgs
                    {
                        LocalSsdCount = 0,
                    },
                    LocalSsdCount = 0,
                    LoggingVariant = "string",
                    MachineType = "string",
                    Metadata = 
                    {
                        { "string", "string" },
                    },
                    MinCpuPlatform = "string",
                    NodeGroup = "string",
                    OauthScopes = new[]
                    {
                        "string",
                    },
                    Preemptible = false,
                    ReservationAffinity = new Gcp.Container.Inputs.ClusterNodePoolNodeConfigReservationAffinityArgs
                    {
                        ConsumeReservationType = "string",
                        Key = "string",
                        Values = new[]
                        {
                            "string",
                        },
                    },
                    ResourceLabels = 
                    {
                        { "string", "string" },
                    },
                    ResourceManagerTags = 
                    {
                        { "string", "any" },
                    },
                    SandboxConfig = new Gcp.Container.Inputs.ClusterNodePoolNodeConfigSandboxConfigArgs
                    {
                        SandboxType = "string",
                    },
                    SecondaryBootDisks = new[]
                    {
                        new Gcp.Container.Inputs.ClusterNodePoolNodeConfigSecondaryBootDiskArgs
                        {
                            DiskImage = "string",
                            Mode = "string",
                        },
                    },
                    ServiceAccount = "string",
                    ShieldedInstanceConfig = new Gcp.Container.Inputs.ClusterNodePoolNodeConfigShieldedInstanceConfigArgs
                    {
                        EnableIntegrityMonitoring = false,
                        EnableSecureBoot = false,
                    },
                    SoleTenantConfig = new Gcp.Container.Inputs.ClusterNodePoolNodeConfigSoleTenantConfigArgs
                    {
                        NodeAffinities = new[]
                        {
                            new Gcp.Container.Inputs.ClusterNodePoolNodeConfigSoleTenantConfigNodeAffinityArgs
                            {
                                Key = "string",
                                Operator = "string",
                                Values = new[]
                                {
                                    "string",
                                },
                            },
                        },
                    },
                    Spot = false,
                    Tags = new[]
                    {
                        "string",
                    },
                    Taints = new[]
                    {
                        new Gcp.Container.Inputs.ClusterNodePoolNodeConfigTaintArgs
                        {
                            Effect = "string",
                            Key = "string",
                            Value = "string",
                        },
                    },
                    WorkloadMetadataConfig = new Gcp.Container.Inputs.ClusterNodePoolNodeConfigWorkloadMetadataConfigArgs
                    {
                        Mode = "string",
                    },
                },
                NodeCount = 0,
                NodeLocations = new[]
                {
                    "string",
                },
                PlacementPolicy = new Gcp.Container.Inputs.ClusterNodePoolPlacementPolicyArgs
                {
                    Type = "string",
                    PolicyName = "string",
                    TpuTopology = "string",
                },
                QueuedProvisioning = new Gcp.Container.Inputs.ClusterNodePoolQueuedProvisioningArgs
                {
                    Enabled = false,
                },
                UpgradeSettings = new Gcp.Container.Inputs.ClusterNodePoolUpgradeSettingsArgs
                {
                    BlueGreenSettings = new Gcp.Container.Inputs.ClusterNodePoolUpgradeSettingsBlueGreenSettingsArgs
                    {
                        StandardRolloutPolicy = new Gcp.Container.Inputs.ClusterNodePoolUpgradeSettingsBlueGreenSettingsStandardRolloutPolicyArgs
                        {
                            BatchNodeCount = 0,
                            BatchPercentage = 0,
                            BatchSoakDuration = "string",
                        },
                        NodePoolSoakDuration = "string",
                    },
                    MaxSurge = 0,
                    MaxUnavailable = 0,
                    Strategy = "string",
                },
                Version = "string",
            },
        },
        NodeVersion = "string",
        NotificationConfig = new Gcp.Container.Inputs.ClusterNotificationConfigArgs
        {
            Pubsub = new Gcp.Container.Inputs.ClusterNotificationConfigPubsubArgs
            {
                Enabled = false,
                Filter = new Gcp.Container.Inputs.ClusterNotificationConfigPubsubFilterArgs
                {
                    EventTypes = new[]
                    {
                        "string",
                    },
                },
                Topic = "string",
            },
        },
        PodSecurityPolicyConfig = new Gcp.Container.Inputs.ClusterPodSecurityPolicyConfigArgs
        {
            Enabled = false,
        },
        PrivateClusterConfig = new Gcp.Container.Inputs.ClusterPrivateClusterConfigArgs
        {
            EnablePrivateEndpoint = false,
            EnablePrivateNodes = false,
            MasterGlobalAccessConfig = new Gcp.Container.Inputs.ClusterPrivateClusterConfigMasterGlobalAccessConfigArgs
            {
                Enabled = false,
            },
            MasterIpv4CidrBlock = "string",
            PeeringName = "string",
            PrivateEndpoint = "string",
            PrivateEndpointSubnetwork = "string",
            PublicEndpoint = "string",
        },
        PrivateIpv6GoogleAccess = "string",
        Project = "string",
        ProtectConfig = new Gcp.Container.Inputs.ClusterProtectConfigArgs
        {
            WorkloadConfig = new Gcp.Container.Inputs.ClusterProtectConfigWorkloadConfigArgs
            {
                AuditMode = "string",
            },
            WorkloadVulnerabilityMode = "string",
        },
        ReleaseChannel = new Gcp.Container.Inputs.ClusterReleaseChannelArgs
        {
            Channel = "string",
        },
        RemoveDefaultNodePool = false,
        ResourceLabels = 
        {
            { "string", "string" },
        },
        ResourceUsageExportConfig = new Gcp.Container.Inputs.ClusterResourceUsageExportConfigArgs
        {
            BigqueryDestination = new Gcp.Container.Inputs.ClusterResourceUsageExportConfigBigqueryDestinationArgs
            {
                DatasetId = "string",
            },
            EnableNetworkEgressMetering = false,
            EnableResourceConsumptionMetering = false,
        },
        SecretManagerConfig = new Gcp.Container.Inputs.ClusterSecretManagerConfigArgs
        {
            Enabled = false,
        },
        SecurityPostureConfig = new Gcp.Container.Inputs.ClusterSecurityPostureConfigArgs
        {
            Mode = "string",
            VulnerabilityMode = "string",
        },
        ServiceExternalIpsConfig = new Gcp.Container.Inputs.ClusterServiceExternalIpsConfigArgs
        {
            Enabled = false,
        },
        Subnetwork = "string",
        TpuConfig = new Gcp.Container.Inputs.ClusterTpuConfigArgs
        {
            Enabled = false,
            Ipv4CidrBlock = "string",
            UseServiceNetworking = false,
        },
        VerticalPodAutoscaling = new Gcp.Container.Inputs.ClusterVerticalPodAutoscalingArgs
        {
            Enabled = false,
        },
        WorkloadAltsConfig = new Gcp.Container.Inputs.ClusterWorkloadAltsConfigArgs
        {
            EnableAlts = false,
        },
        WorkloadIdentityConfig = new Gcp.Container.Inputs.ClusterWorkloadIdentityConfigArgs
        {
            WorkloadPool = "string",
        },
    });
    
    example, err := container.NewCluster(ctx, "gcpClusterResource", &container.ClusterArgs{
    	AddonsConfig: &container.ClusterAddonsConfigArgs{
    		CloudrunConfig: &container.ClusterAddonsConfigCloudrunConfigArgs{
    			Disabled:         pulumi.Bool(false),
    			LoadBalancerType: pulumi.String("string"),
    		},
    		ConfigConnectorConfig: &container.ClusterAddonsConfigConfigConnectorConfigArgs{
    			Enabled: pulumi.Bool(false),
    		},
    		DnsCacheConfig: &container.ClusterAddonsConfigDnsCacheConfigArgs{
    			Enabled: pulumi.Bool(false),
    		},
    		GcePersistentDiskCsiDriverConfig: &container.ClusterAddonsConfigGcePersistentDiskCsiDriverConfigArgs{
    			Enabled: pulumi.Bool(false),
    		},
    		GcpFilestoreCsiDriverConfig: &container.ClusterAddonsConfigGcpFilestoreCsiDriverConfigArgs{
    			Enabled: pulumi.Bool(false),
    		},
    		GcsFuseCsiDriverConfig: &container.ClusterAddonsConfigGcsFuseCsiDriverConfigArgs{
    			Enabled: pulumi.Bool(false),
    		},
    		GkeBackupAgentConfig: &container.ClusterAddonsConfigGkeBackupAgentConfigArgs{
    			Enabled: pulumi.Bool(false),
    		},
    		HorizontalPodAutoscaling: &container.ClusterAddonsConfigHorizontalPodAutoscalingArgs{
    			Disabled: pulumi.Bool(false),
    		},
    		HttpLoadBalancing: &container.ClusterAddonsConfigHttpLoadBalancingArgs{
    			Disabled: pulumi.Bool(false),
    		},
    		IstioConfig: &container.ClusterAddonsConfigIstioConfigArgs{
    			Disabled: pulumi.Bool(false),
    			Auth:     pulumi.String("string"),
    		},
    		KalmConfig: &container.ClusterAddonsConfigKalmConfigArgs{
    			Enabled: pulumi.Bool(false),
    		},
    		NetworkPolicyConfig: &container.ClusterAddonsConfigNetworkPolicyConfigArgs{
    			Disabled: pulumi.Bool(false),
    		},
    		StatefulHaConfig: &container.ClusterAddonsConfigStatefulHaConfigArgs{
    			Enabled: pulumi.Bool(false),
    		},
    	},
    	AllowNetAdmin: pulumi.Bool(false),
    	AuthenticatorGroupsConfig: &container.ClusterAuthenticatorGroupsConfigArgs{
    		SecurityGroup: pulumi.String("string"),
    	},
    	BinaryAuthorization: &container.ClusterBinaryAuthorizationArgs{
    		EvaluationMode: pulumi.String("string"),
    	},
    	ClusterAutoscaling: &container.ClusterClusterAutoscalingArgs{
    		AutoProvisioningDefaults: &container.ClusterClusterAutoscalingAutoProvisioningDefaultsArgs{
    			BootDiskKmsKey: pulumi.String("string"),
    			DiskSize:       pulumi.Int(0),
    			DiskType:       pulumi.String("string"),
    			ImageType:      pulumi.String("string"),
    			Management: &container.ClusterClusterAutoscalingAutoProvisioningDefaultsManagementArgs{
    				AutoRepair:  pulumi.Bool(false),
    				AutoUpgrade: pulumi.Bool(false),
    				UpgradeOptions: container.ClusterClusterAutoscalingAutoProvisioningDefaultsManagementUpgradeOptionArray{
    					&container.ClusterClusterAutoscalingAutoProvisioningDefaultsManagementUpgradeOptionArgs{
    						AutoUpgradeStartTime: pulumi.String("string"),
    						Description:          pulumi.String("string"),
    					},
    				},
    			},
    			MinCpuPlatform: pulumi.String("string"),
    			OauthScopes: pulumi.StringArray{
    				pulumi.String("string"),
    			},
    			ServiceAccount: pulumi.String("string"),
    			ShieldedInstanceConfig: &container.ClusterClusterAutoscalingAutoProvisioningDefaultsShieldedInstanceConfigArgs{
    				EnableIntegrityMonitoring: pulumi.Bool(false),
    				EnableSecureBoot:          pulumi.Bool(false),
    			},
    			UpgradeSettings: &container.ClusterClusterAutoscalingAutoProvisioningDefaultsUpgradeSettingsArgs{
    				BlueGreenSettings: &container.ClusterClusterAutoscalingAutoProvisioningDefaultsUpgradeSettingsBlueGreenSettingsArgs{
    					NodePoolSoakDuration: pulumi.String("string"),
    					StandardRolloutPolicy: &container.ClusterClusterAutoscalingAutoProvisioningDefaultsUpgradeSettingsBlueGreenSettingsStandardRolloutPolicyArgs{
    						BatchNodeCount:    pulumi.Int(0),
    						BatchPercentage:   pulumi.Float64(0),
    						BatchSoakDuration: pulumi.String("string"),
    					},
    				},
    				MaxSurge:       pulumi.Int(0),
    				MaxUnavailable: pulumi.Int(0),
    				Strategy:       pulumi.String("string"),
    			},
    		},
    		AutoscalingProfile: pulumi.String("string"),
    		Enabled:            pulumi.Bool(false),
    		ResourceLimits: container.ClusterClusterAutoscalingResourceLimitArray{
    			&container.ClusterClusterAutoscalingResourceLimitArgs{
    				ResourceType: pulumi.String("string"),
    				Maximum:      pulumi.Int(0),
    				Minimum:      pulumi.Int(0),
    			},
    		},
    	},
    	ClusterIpv4Cidr: pulumi.String("string"),
    	ClusterTelemetry: &container.ClusterClusterTelemetryArgs{
    		Type: pulumi.String("string"),
    	},
    	ConfidentialNodes: &container.ClusterConfidentialNodesArgs{
    		Enabled: pulumi.Bool(false),
    	},
    	CostManagementConfig: &container.ClusterCostManagementConfigArgs{
    		Enabled: pulumi.Bool(false),
    	},
    	DatabaseEncryption: &container.ClusterDatabaseEncryptionArgs{
    		State:   pulumi.String("string"),
    		KeyName: pulumi.String("string"),
    	},
    	DatapathProvider:      pulumi.String("string"),
    	DefaultMaxPodsPerNode: pulumi.Int(0),
    	DefaultSnatStatus: &container.ClusterDefaultSnatStatusArgs{
    		Disabled: pulumi.Bool(false),
    	},
    	DeletionProtection: pulumi.Bool(false),
    	Description:        pulumi.String("string"),
    	DnsConfig: &container.ClusterDnsConfigArgs{
    		AdditiveVpcScopeDnsDomain: pulumi.String("string"),
    		ClusterDns:                pulumi.String("string"),
    		ClusterDnsDomain:          pulumi.String("string"),
    		ClusterDnsScope:           pulumi.String("string"),
    	},
    	EnableAutopilot:                      pulumi.Bool(false),
    	EnableCiliumClusterwideNetworkPolicy: pulumi.Bool(false),
    	EnableFqdnNetworkPolicy:              pulumi.Bool(false),
    	EnableIntranodeVisibility:            pulumi.Bool(false),
    	EnableK8sBetaApis: &container.ClusterEnableK8sBetaApisArgs{
    		EnabledApis: pulumi.StringArray{
    			pulumi.String("string"),
    		},
    	},
    	EnableKubernetesAlpha: pulumi.Bool(false),
    	EnableL4IlbSubsetting: pulumi.Bool(false),
    	EnableLegacyAbac:      pulumi.Bool(false),
    	EnableMultiNetworking: pulumi.Bool(false),
    	EnableShieldedNodes:   pulumi.Bool(false),
    	EnableTpu:             pulumi.Bool(false),
    	Fleet: &container.ClusterFleetArgs{
    		Membership:         pulumi.String("string"),
    		MembershipId:       pulumi.String("string"),
    		MembershipLocation: pulumi.String("string"),
    		PreRegistered:      pulumi.Bool(false),
    		Project:            pulumi.String("string"),
    	},
    	GatewayApiConfig: &container.ClusterGatewayApiConfigArgs{
    		Channel: pulumi.String("string"),
    	},
    	IdentityServiceConfig: &container.ClusterIdentityServiceConfigArgs{
    		Enabled: pulumi.Bool(false),
    	},
    	InitialNodeCount: pulumi.Int(0),
    	IpAllocationPolicy: &container.ClusterIpAllocationPolicyArgs{
    		AdditionalPodRangesConfig: &container.ClusterIpAllocationPolicyAdditionalPodRangesConfigArgs{
    			PodRangeNames: pulumi.StringArray{
    				pulumi.String("string"),
    			},
    		},
    		ClusterIpv4CidrBlock:      pulumi.String("string"),
    		ClusterSecondaryRangeName: pulumi.String("string"),
    		PodCidrOverprovisionConfig: &container.ClusterIpAllocationPolicyPodCidrOverprovisionConfigArgs{
    			Disabled: pulumi.Bool(false),
    		},
    		ServicesIpv4CidrBlock:      pulumi.String("string"),
    		ServicesSecondaryRangeName: pulumi.String("string"),
    		StackType:                  pulumi.String("string"),
    	},
    	Location: pulumi.String("string"),
    	LoggingConfig: &container.ClusterLoggingConfigArgs{
    		EnableComponents: pulumi.StringArray{
    			pulumi.String("string"),
    		},
    	},
    	LoggingService: pulumi.String("string"),
    	MaintenancePolicy: &container.ClusterMaintenancePolicyArgs{
    		DailyMaintenanceWindow: &container.ClusterMaintenancePolicyDailyMaintenanceWindowArgs{
    			StartTime: pulumi.String("string"),
    			Duration:  pulumi.String("string"),
    		},
    		MaintenanceExclusions: container.ClusterMaintenancePolicyMaintenanceExclusionArray{
    			&container.ClusterMaintenancePolicyMaintenanceExclusionArgs{
    				EndTime:       pulumi.String("string"),
    				ExclusionName: pulumi.String("string"),
    				StartTime:     pulumi.String("string"),
    				ExclusionOptions: &container.ClusterMaintenancePolicyMaintenanceExclusionExclusionOptionsArgs{
    					Scope: pulumi.String("string"),
    				},
    			},
    		},
    		RecurringWindow: &container.ClusterMaintenancePolicyRecurringWindowArgs{
    			EndTime:    pulumi.String("string"),
    			Recurrence: pulumi.String("string"),
    			StartTime:  pulumi.String("string"),
    		},
    	},
    	MasterAuth: &container.ClusterMasterAuthArgs{
    		ClientCertificateConfig: &container.ClusterMasterAuthClientCertificateConfigArgs{
    			IssueClientCertificate: pulumi.Bool(false),
    		},
    		ClientCertificate:    pulumi.String("string"),
    		ClientKey:            pulumi.String("string"),
    		ClusterCaCertificate: pulumi.String("string"),
    	},
    	MasterAuthorizedNetworksConfig: &container.ClusterMasterAuthorizedNetworksConfigArgs{
    		CidrBlocks: container.ClusterMasterAuthorizedNetworksConfigCidrBlockArray{
    			&container.ClusterMasterAuthorizedNetworksConfigCidrBlockArgs{
    				CidrBlock:   pulumi.String("string"),
    				DisplayName: pulumi.String("string"),
    			},
    		},
    		GcpPublicCidrsAccessEnabled: pulumi.Bool(false),
    	},
    	MeshCertificates: &container.ClusterMeshCertificatesArgs{
    		EnableCertificates: pulumi.Bool(false),
    	},
    	MinMasterVersion: pulumi.String("string"),
    	MonitoringConfig: &container.ClusterMonitoringConfigArgs{
    		AdvancedDatapathObservabilityConfigs: container.ClusterMonitoringConfigAdvancedDatapathObservabilityConfigArray{
    			&container.ClusterMonitoringConfigAdvancedDatapathObservabilityConfigArgs{
    				EnableMetrics: pulumi.Bool(false),
    				EnableRelay:   pulumi.Bool(false),
    			},
    		},
    		EnableComponents: pulumi.StringArray{
    			pulumi.String("string"),
    		},
    		ManagedPrometheus: &container.ClusterMonitoringConfigManagedPrometheusArgs{
    			Enabled: pulumi.Bool(false),
    		},
    	},
    	MonitoringService: pulumi.String("string"),
    	Name:              pulumi.String("string"),
    	Network:           pulumi.String("string"),
    	NetworkPolicy: &container.ClusterNetworkPolicyArgs{
    		Enabled:  pulumi.Bool(false),
    		Provider: pulumi.String("string"),
    	},
    	NetworkingMode: pulumi.String("string"),
    	NodeConfig: &container.ClusterNodeConfigArgs{
    		AdvancedMachineFeatures: &container.ClusterNodeConfigAdvancedMachineFeaturesArgs{
    			ThreadsPerCore:             pulumi.Int(0),
    			EnableNestedVirtualization: pulumi.Bool(false),
    		},
    		BootDiskKmsKey: pulumi.String("string"),
    		ConfidentialNodes: &container.ClusterNodeConfigConfidentialNodesArgs{
    			Enabled: pulumi.Bool(false),
    		},
    		ContainerdConfig: &container.ClusterNodeConfigContainerdConfigArgs{
    			PrivateRegistryAccessConfig: &container.ClusterNodeConfigContainerdConfigPrivateRegistryAccessConfigArgs{
    				Enabled: pulumi.Bool(false),
    				CertificateAuthorityDomainConfigs: container.ClusterNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigArray{
    					&container.ClusterNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigArgs{
    						Fqdns: pulumi.StringArray{
    							pulumi.String("string"),
    						},
    						GcpSecretManagerCertificateConfig: &container.ClusterNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigGcpSecretManagerCertificateConfigArgs{
    							SecretUri: pulumi.String("string"),
    						},
    					},
    				},
    			},
    		},
    		DiskSizeGb: pulumi.Int(0),
    		DiskType:   pulumi.String("string"),
    		EffectiveTaints: container.ClusterNodeConfigEffectiveTaintArray{
    			&container.ClusterNodeConfigEffectiveTaintArgs{
    				Effect: pulumi.String("string"),
    				Key:    pulumi.String("string"),
    				Value:  pulumi.String("string"),
    			},
    		},
    		EnableConfidentialStorage: pulumi.Bool(false),
    		EphemeralStorageConfig: &container.ClusterNodeConfigEphemeralStorageConfigArgs{
    			LocalSsdCount: pulumi.Int(0),
    		},
    		EphemeralStorageLocalSsdConfig: &container.ClusterNodeConfigEphemeralStorageLocalSsdConfigArgs{
    			LocalSsdCount: pulumi.Int(0),
    		},
    		FastSocket: &container.ClusterNodeConfigFastSocketArgs{
    			Enabled: pulumi.Bool(false),
    		},
    		GcfsConfig: &container.ClusterNodeConfigGcfsConfigArgs{
    			Enabled: pulumi.Bool(false),
    		},
    		GuestAccelerators: container.ClusterNodeConfigGuestAcceleratorArray{
    			&container.ClusterNodeConfigGuestAcceleratorArgs{
    				Count: pulumi.Int(0),
    				Type:  pulumi.String("string"),
    				GpuDriverInstallationConfig: &container.ClusterNodeConfigGuestAcceleratorGpuDriverInstallationConfigArgs{
    					GpuDriverVersion: pulumi.String("string"),
    				},
    				GpuPartitionSize: pulumi.String("string"),
    				GpuSharingConfig: &container.ClusterNodeConfigGuestAcceleratorGpuSharingConfigArgs{
    					GpuSharingStrategy:     pulumi.String("string"),
    					MaxSharedClientsPerGpu: pulumi.Int(0),
    				},
    			},
    		},
    		Gvnic: &container.ClusterNodeConfigGvnicArgs{
    			Enabled: pulumi.Bool(false),
    		},
    		HostMaintenancePolicy: &container.ClusterNodeConfigHostMaintenancePolicyArgs{
    			MaintenanceInterval: pulumi.String("string"),
    		},
    		ImageType: pulumi.String("string"),
    		KubeletConfig: &container.ClusterNodeConfigKubeletConfigArgs{
    			CpuManagerPolicy:  pulumi.String("string"),
    			CpuCfsQuota:       pulumi.Bool(false),
    			CpuCfsQuotaPeriod: pulumi.String("string"),
    			PodPidsLimit:      pulumi.Int(0),
    		},
    		Labels: pulumi.StringMap{
    			"string": pulumi.String("string"),
    		},
    		LinuxNodeConfig: &container.ClusterNodeConfigLinuxNodeConfigArgs{
    			CgroupMode: pulumi.String("string"),
    			Sysctls: pulumi.StringMap{
    				"string": pulumi.String("string"),
    			},
    		},
    		LocalNvmeSsdBlockConfig: &container.ClusterNodeConfigLocalNvmeSsdBlockConfigArgs{
    			LocalSsdCount: pulumi.Int(0),
    		},
    		LocalSsdCount:  pulumi.Int(0),
    		LoggingVariant: pulumi.String("string"),
    		MachineType:    pulumi.String("string"),
    		Metadata: pulumi.StringMap{
    			"string": pulumi.String("string"),
    		},
    		MinCpuPlatform: pulumi.String("string"),
    		NodeGroup:      pulumi.String("string"),
    		OauthScopes: pulumi.StringArray{
    			pulumi.String("string"),
    		},
    		Preemptible: pulumi.Bool(false),
    		ReservationAffinity: &container.ClusterNodeConfigReservationAffinityArgs{
    			ConsumeReservationType: pulumi.String("string"),
    			Key:                    pulumi.String("string"),
    			Values: pulumi.StringArray{
    				pulumi.String("string"),
    			},
    		},
    		ResourceLabels: pulumi.StringMap{
    			"string": pulumi.String("string"),
    		},
    		ResourceManagerTags: pulumi.Map{
    			"string": pulumi.Any("any"),
    		},
    		SandboxConfig: &container.ClusterNodeConfigSandboxConfigArgs{
    			SandboxType: pulumi.String("string"),
    		},
    		SecondaryBootDisks: container.ClusterNodeConfigSecondaryBootDiskArray{
    			&container.ClusterNodeConfigSecondaryBootDiskArgs{
    				DiskImage: pulumi.String("string"),
    				Mode:      pulumi.String("string"),
    			},
    		},
    		ServiceAccount: pulumi.String("string"),
    		ShieldedInstanceConfig: &container.ClusterNodeConfigShieldedInstanceConfigArgs{
    			EnableIntegrityMonitoring: pulumi.Bool(false),
    			EnableSecureBoot:          pulumi.Bool(false),
    		},
    		SoleTenantConfig: &container.ClusterNodeConfigSoleTenantConfigArgs{
    			NodeAffinities: container.ClusterNodeConfigSoleTenantConfigNodeAffinityArray{
    				&container.ClusterNodeConfigSoleTenantConfigNodeAffinityArgs{
    					Key:      pulumi.String("string"),
    					Operator: pulumi.String("string"),
    					Values: pulumi.StringArray{
    						pulumi.String("string"),
    					},
    				},
    			},
    		},
    		Spot: pulumi.Bool(false),
    		Tags: pulumi.StringArray{
    			pulumi.String("string"),
    		},
    		Taints: container.ClusterNodeConfigTaintArray{
    			&container.ClusterNodeConfigTaintArgs{
    				Effect: pulumi.String("string"),
    				Key:    pulumi.String("string"),
    				Value:  pulumi.String("string"),
    			},
    		},
    		WorkloadMetadataConfig: &container.ClusterNodeConfigWorkloadMetadataConfigArgs{
    			Mode: pulumi.String("string"),
    		},
    	},
    	NodeLocations: pulumi.StringArray{
    		pulumi.String("string"),
    	},
    	NodePoolAutoConfig: &container.ClusterNodePoolAutoConfigArgs{
    		NetworkTags: &container.ClusterNodePoolAutoConfigNetworkTagsArgs{
    			Tags: pulumi.StringArray{
    				pulumi.String("string"),
    			},
    		},
    		ResourceManagerTags: pulumi.Map{
    			"string": pulumi.Any("any"),
    		},
    	},
    	NodePoolDefaults: &container.ClusterNodePoolDefaultsArgs{
    		NodeConfigDefaults: &container.ClusterNodePoolDefaultsNodeConfigDefaultsArgs{
    			ContainerdConfig: &container.ClusterNodePoolDefaultsNodeConfigDefaultsContainerdConfigArgs{
    				PrivateRegistryAccessConfig: &container.ClusterNodePoolDefaultsNodeConfigDefaultsContainerdConfigPrivateRegistryAccessConfigArgs{
    					Enabled: pulumi.Bool(false),
    					CertificateAuthorityDomainConfigs: container.ClusterNodePoolDefaultsNodeConfigDefaultsContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigArray{
    						&container.ClusterNodePoolDefaultsNodeConfigDefaultsContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigArgs{
    							Fqdns: pulumi.StringArray{
    								pulumi.String("string"),
    							},
    							GcpSecretManagerCertificateConfig: &container.ClusterNodePoolDefaultsNodeConfigDefaultsContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigGcpSecretManagerCertificateConfigArgs{
    								SecretUri: pulumi.String("string"),
    							},
    						},
    					},
    				},
    			},
    			GcfsConfig: &container.ClusterNodePoolDefaultsNodeConfigDefaultsGcfsConfigArgs{
    				Enabled: pulumi.Bool(false),
    			},
    			LoggingVariant: pulumi.String("string"),
    		},
    	},
    	NodePools: container.ClusterNodePoolArray{
    		&container.ClusterNodePoolArgs{
    			Autoscaling: &container.ClusterNodePoolAutoscalingArgs{
    				LocationPolicy:    pulumi.String("string"),
    				MaxNodeCount:      pulumi.Int(0),
    				MinNodeCount:      pulumi.Int(0),
    				TotalMaxNodeCount: pulumi.Int(0),
    				TotalMinNodeCount: pulumi.Int(0),
    			},
    			InitialNodeCount: pulumi.Int(0),
    			InstanceGroupUrls: pulumi.StringArray{
    				pulumi.String("string"),
    			},
    			ManagedInstanceGroupUrls: pulumi.StringArray{
    				pulumi.String("string"),
    			},
    			Management: &container.ClusterNodePoolManagementArgs{
    				AutoRepair:  pulumi.Bool(false),
    				AutoUpgrade: pulumi.Bool(false),
    			},
    			MaxPodsPerNode: pulumi.Int(0),
    			Name:           pulumi.String("string"),
    			NamePrefix:     pulumi.String("string"),
    			NetworkConfig: &container.ClusterNodePoolNetworkConfigArgs{
    				AdditionalNodeNetworkConfigs: container.ClusterNodePoolNetworkConfigAdditionalNodeNetworkConfigArray{
    					&container.ClusterNodePoolNetworkConfigAdditionalNodeNetworkConfigArgs{
    						Network:    pulumi.String("string"),
    						Subnetwork: pulumi.String("string"),
    					},
    				},
    				AdditionalPodNetworkConfigs: container.ClusterNodePoolNetworkConfigAdditionalPodNetworkConfigArray{
    					&container.ClusterNodePoolNetworkConfigAdditionalPodNetworkConfigArgs{
    						MaxPodsPerNode:    pulumi.Int(0),
    						SecondaryPodRange: pulumi.String("string"),
    						Subnetwork:        pulumi.String("string"),
    					},
    				},
    				CreatePodRange:     pulumi.Bool(false),
    				EnablePrivateNodes: pulumi.Bool(false),
    				NetworkPerformanceConfig: &container.ClusterNodePoolNetworkConfigNetworkPerformanceConfigArgs{
    					TotalEgressBandwidthTier: pulumi.String("string"),
    				},
    				PodCidrOverprovisionConfig: &container.ClusterNodePoolNetworkConfigPodCidrOverprovisionConfigArgs{
    					Disabled: pulumi.Bool(false),
    				},
    				PodIpv4CidrBlock: pulumi.String("string"),
    				PodRange:         pulumi.String("string"),
    			},
    			NodeConfig: &container.ClusterNodePoolNodeConfigArgs{
    				AdvancedMachineFeatures: &container.ClusterNodePoolNodeConfigAdvancedMachineFeaturesArgs{
    					ThreadsPerCore:             pulumi.Int(0),
    					EnableNestedVirtualization: pulumi.Bool(false),
    				},
    				BootDiskKmsKey: pulumi.String("string"),
    				ConfidentialNodes: &container.ClusterNodePoolNodeConfigConfidentialNodesArgs{
    					Enabled: pulumi.Bool(false),
    				},
    				ContainerdConfig: &container.ClusterNodePoolNodeConfigContainerdConfigArgs{
    					PrivateRegistryAccessConfig: &container.ClusterNodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfigArgs{
    						Enabled: pulumi.Bool(false),
    						CertificateAuthorityDomainConfigs: container.ClusterNodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigArray{
    							&container.ClusterNodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigArgs{
    								Fqdns: pulumi.StringArray{
    									pulumi.String("string"),
    								},
    								GcpSecretManagerCertificateConfig: &container.ClusterNodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigGcpSecretManagerCertificateConfigArgs{
    									SecretUri: pulumi.String("string"),
    								},
    							},
    						},
    					},
    				},
    				DiskSizeGb: pulumi.Int(0),
    				DiskType:   pulumi.String("string"),
    				EffectiveTaints: container.ClusterNodePoolNodeConfigEffectiveTaintArray{
    					&container.ClusterNodePoolNodeConfigEffectiveTaintArgs{
    						Effect: pulumi.String("string"),
    						Key:    pulumi.String("string"),
    						Value:  pulumi.String("string"),
    					},
    				},
    				EnableConfidentialStorage: pulumi.Bool(false),
    				EphemeralStorageConfig: &container.ClusterNodePoolNodeConfigEphemeralStorageConfigArgs{
    					LocalSsdCount: pulumi.Int(0),
    				},
    				EphemeralStorageLocalSsdConfig: &container.ClusterNodePoolNodeConfigEphemeralStorageLocalSsdConfigArgs{
    					LocalSsdCount: pulumi.Int(0),
    				},
    				FastSocket: &container.ClusterNodePoolNodeConfigFastSocketArgs{
    					Enabled: pulumi.Bool(false),
    				},
    				GcfsConfig: &container.ClusterNodePoolNodeConfigGcfsConfigArgs{
    					Enabled: pulumi.Bool(false),
    				},
    				GuestAccelerators: container.ClusterNodePoolNodeConfigGuestAcceleratorArray{
    					&container.ClusterNodePoolNodeConfigGuestAcceleratorArgs{
    						Count: pulumi.Int(0),
    						Type:  pulumi.String("string"),
    						GpuDriverInstallationConfig: &container.ClusterNodePoolNodeConfigGuestAcceleratorGpuDriverInstallationConfigArgs{
    							GpuDriverVersion: pulumi.String("string"),
    						},
    						GpuPartitionSize: pulumi.String("string"),
    						GpuSharingConfig: &container.ClusterNodePoolNodeConfigGuestAcceleratorGpuSharingConfigArgs{
    							GpuSharingStrategy:     pulumi.String("string"),
    							MaxSharedClientsPerGpu: pulumi.Int(0),
    						},
    					},
    				},
    				Gvnic: &container.ClusterNodePoolNodeConfigGvnicArgs{
    					Enabled: pulumi.Bool(false),
    				},
    				HostMaintenancePolicy: &container.ClusterNodePoolNodeConfigHostMaintenancePolicyArgs{
    					MaintenanceInterval: pulumi.String("string"),
    				},
    				ImageType: pulumi.String("string"),
    				KubeletConfig: &container.ClusterNodePoolNodeConfigKubeletConfigArgs{
    					CpuManagerPolicy:  pulumi.String("string"),
    					CpuCfsQuota:       pulumi.Bool(false),
    					CpuCfsQuotaPeriod: pulumi.String("string"),
    					PodPidsLimit:      pulumi.Int(0),
    				},
    				Labels: pulumi.StringMap{
    					"string": pulumi.String("string"),
    				},
    				LinuxNodeConfig: &container.ClusterNodePoolNodeConfigLinuxNodeConfigArgs{
    					CgroupMode: pulumi.String("string"),
    					Sysctls: pulumi.StringMap{
    						"string": pulumi.String("string"),
    					},
    				},
    				LocalNvmeSsdBlockConfig: &container.ClusterNodePoolNodeConfigLocalNvmeSsdBlockConfigArgs{
    					LocalSsdCount: pulumi.Int(0),
    				},
    				LocalSsdCount:  pulumi.Int(0),
    				LoggingVariant: pulumi.String("string"),
    				MachineType:    pulumi.String("string"),
    				Metadata: pulumi.StringMap{
    					"string": pulumi.String("string"),
    				},
    				MinCpuPlatform: pulumi.String("string"),
    				NodeGroup:      pulumi.String("string"),
    				OauthScopes: pulumi.StringArray{
    					pulumi.String("string"),
    				},
    				Preemptible: pulumi.Bool(false),
    				ReservationAffinity: &container.ClusterNodePoolNodeConfigReservationAffinityArgs{
    					ConsumeReservationType: pulumi.String("string"),
    					Key:                    pulumi.String("string"),
    					Values: pulumi.StringArray{
    						pulumi.String("string"),
    					},
    				},
    				ResourceLabels: pulumi.StringMap{
    					"string": pulumi.String("string"),
    				},
    				ResourceManagerTags: pulumi.Map{
    					"string": pulumi.Any("any"),
    				},
    				SandboxConfig: &container.ClusterNodePoolNodeConfigSandboxConfigArgs{
    					SandboxType: pulumi.String("string"),
    				},
    				SecondaryBootDisks: container.ClusterNodePoolNodeConfigSecondaryBootDiskArray{
    					&container.ClusterNodePoolNodeConfigSecondaryBootDiskArgs{
    						DiskImage: pulumi.String("string"),
    						Mode:      pulumi.String("string"),
    					},
    				},
    				ServiceAccount: pulumi.String("string"),
    				ShieldedInstanceConfig: &container.ClusterNodePoolNodeConfigShieldedInstanceConfigArgs{
    					EnableIntegrityMonitoring: pulumi.Bool(false),
    					EnableSecureBoot:          pulumi.Bool(false),
    				},
    				SoleTenantConfig: &container.ClusterNodePoolNodeConfigSoleTenantConfigArgs{
    					NodeAffinities: container.ClusterNodePoolNodeConfigSoleTenantConfigNodeAffinityArray{
    						&container.ClusterNodePoolNodeConfigSoleTenantConfigNodeAffinityArgs{
    							Key:      pulumi.String("string"),
    							Operator: pulumi.String("string"),
    							Values: pulumi.StringArray{
    								pulumi.String("string"),
    							},
    						},
    					},
    				},
    				Spot: pulumi.Bool(false),
    				Tags: pulumi.StringArray{
    					pulumi.String("string"),
    				},
    				Taints: container.ClusterNodePoolNodeConfigTaintArray{
    					&container.ClusterNodePoolNodeConfigTaintArgs{
    						Effect: pulumi.String("string"),
    						Key:    pulumi.String("string"),
    						Value:  pulumi.String("string"),
    					},
    				},
    				WorkloadMetadataConfig: &container.ClusterNodePoolNodeConfigWorkloadMetadataConfigArgs{
    					Mode: pulumi.String("string"),
    				},
    			},
    			NodeCount: pulumi.Int(0),
    			NodeLocations: pulumi.StringArray{
    				pulumi.String("string"),
    			},
    			PlacementPolicy: &container.ClusterNodePoolPlacementPolicyArgs{
    				Type:        pulumi.String("string"),
    				PolicyName:  pulumi.String("string"),
    				TpuTopology: pulumi.String("string"),
    			},
    			QueuedProvisioning: &container.ClusterNodePoolQueuedProvisioningArgs{
    				Enabled: pulumi.Bool(false),
    			},
    			UpgradeSettings: &container.ClusterNodePoolUpgradeSettingsArgs{
    				BlueGreenSettings: &container.ClusterNodePoolUpgradeSettingsBlueGreenSettingsArgs{
    					StandardRolloutPolicy: &container.ClusterNodePoolUpgradeSettingsBlueGreenSettingsStandardRolloutPolicyArgs{
    						BatchNodeCount:    pulumi.Int(0),
    						BatchPercentage:   pulumi.Float64(0),
    						BatchSoakDuration: pulumi.String("string"),
    					},
    					NodePoolSoakDuration: pulumi.String("string"),
    				},
    				MaxSurge:       pulumi.Int(0),
    				MaxUnavailable: pulumi.Int(0),
    				Strategy:       pulumi.String("string"),
    			},
    			Version: pulumi.String("string"),
    		},
    	},
    	NodeVersion: pulumi.String("string"),
    	NotificationConfig: &container.ClusterNotificationConfigArgs{
    		Pubsub: &container.ClusterNotificationConfigPubsubArgs{
    			Enabled: pulumi.Bool(false),
    			Filter: &container.ClusterNotificationConfigPubsubFilterArgs{
    				EventTypes: pulumi.StringArray{
    					pulumi.String("string"),
    				},
    			},
    			Topic: pulumi.String("string"),
    		},
    	},
    	PodSecurityPolicyConfig: &container.ClusterPodSecurityPolicyConfigArgs{
    		Enabled: pulumi.Bool(false),
    	},
    	PrivateClusterConfig: &container.ClusterPrivateClusterConfigArgs{
    		EnablePrivateEndpoint: pulumi.Bool(false),
    		EnablePrivateNodes:    pulumi.Bool(false),
    		MasterGlobalAccessConfig: &container.ClusterPrivateClusterConfigMasterGlobalAccessConfigArgs{
    			Enabled: pulumi.Bool(false),
    		},
    		MasterIpv4CidrBlock:       pulumi.String("string"),
    		PeeringName:               pulumi.String("string"),
    		PrivateEndpoint:           pulumi.String("string"),
    		PrivateEndpointSubnetwork: pulumi.String("string"),
    		PublicEndpoint:            pulumi.String("string"),
    	},
    	PrivateIpv6GoogleAccess: pulumi.String("string"),
    	Project:                 pulumi.String("string"),
    	ProtectConfig: &container.ClusterProtectConfigArgs{
    		WorkloadConfig: &container.ClusterProtectConfigWorkloadConfigArgs{
    			AuditMode: pulumi.String("string"),
    		},
    		WorkloadVulnerabilityMode: pulumi.String("string"),
    	},
    	ReleaseChannel: &container.ClusterReleaseChannelArgs{
    		Channel: pulumi.String("string"),
    	},
    	RemoveDefaultNodePool: pulumi.Bool(false),
    	ResourceLabels: pulumi.StringMap{
    		"string": pulumi.String("string"),
    	},
    	ResourceUsageExportConfig: &container.ClusterResourceUsageExportConfigArgs{
    		BigqueryDestination: &container.ClusterResourceUsageExportConfigBigqueryDestinationArgs{
    			DatasetId: pulumi.String("string"),
    		},
    		EnableNetworkEgressMetering:       pulumi.Bool(false),
    		EnableResourceConsumptionMetering: pulumi.Bool(false),
    	},
    	SecretManagerConfig: &container.ClusterSecretManagerConfigArgs{
    		Enabled: pulumi.Bool(false),
    	},
    	SecurityPostureConfig: &container.ClusterSecurityPostureConfigArgs{
    		Mode:              pulumi.String("string"),
    		VulnerabilityMode: pulumi.String("string"),
    	},
    	ServiceExternalIpsConfig: &container.ClusterServiceExternalIpsConfigArgs{
    		Enabled: pulumi.Bool(false),
    	},
    	Subnetwork: pulumi.String("string"),
    	TpuConfig: &container.ClusterTpuConfigArgs{
    		Enabled:              pulumi.Bool(false),
    		Ipv4CidrBlock:        pulumi.String("string"),
    		UseServiceNetworking: pulumi.Bool(false),
    	},
    	VerticalPodAutoscaling: &container.ClusterVerticalPodAutoscalingArgs{
    		Enabled: pulumi.Bool(false),
    	},
    	WorkloadAltsConfig: &container.ClusterWorkloadAltsConfigArgs{
    		EnableAlts: pulumi.Bool(false),
    	},
    	WorkloadIdentityConfig: &container.ClusterWorkloadIdentityConfigArgs{
    		WorkloadPool: pulumi.String("string"),
    	},
    })
    
    var gcpClusterResource = new Cluster("gcpClusterResource", ClusterArgs.builder()
        .addonsConfig(ClusterAddonsConfigArgs.builder()
            .cloudrunConfig(ClusterAddonsConfigCloudrunConfigArgs.builder()
                .disabled(false)
                .loadBalancerType("string")
                .build())
            .configConnectorConfig(ClusterAddonsConfigConfigConnectorConfigArgs.builder()
                .enabled(false)
                .build())
            .dnsCacheConfig(ClusterAddonsConfigDnsCacheConfigArgs.builder()
                .enabled(false)
                .build())
            .gcePersistentDiskCsiDriverConfig(ClusterAddonsConfigGcePersistentDiskCsiDriverConfigArgs.builder()
                .enabled(false)
                .build())
            .gcpFilestoreCsiDriverConfig(ClusterAddonsConfigGcpFilestoreCsiDriverConfigArgs.builder()
                .enabled(false)
                .build())
            .gcsFuseCsiDriverConfig(ClusterAddonsConfigGcsFuseCsiDriverConfigArgs.builder()
                .enabled(false)
                .build())
            .gkeBackupAgentConfig(ClusterAddonsConfigGkeBackupAgentConfigArgs.builder()
                .enabled(false)
                .build())
            .horizontalPodAutoscaling(ClusterAddonsConfigHorizontalPodAutoscalingArgs.builder()
                .disabled(false)
                .build())
            .httpLoadBalancing(ClusterAddonsConfigHttpLoadBalancingArgs.builder()
                .disabled(false)
                .build())
            .istioConfig(ClusterAddonsConfigIstioConfigArgs.builder()
                .disabled(false)
                .auth("string")
                .build())
            .kalmConfig(ClusterAddonsConfigKalmConfigArgs.builder()
                .enabled(false)
                .build())
            .networkPolicyConfig(ClusterAddonsConfigNetworkPolicyConfigArgs.builder()
                .disabled(false)
                .build())
            .statefulHaConfig(ClusterAddonsConfigStatefulHaConfigArgs.builder()
                .enabled(false)
                .build())
            .build())
        .allowNetAdmin(false)
        .authenticatorGroupsConfig(ClusterAuthenticatorGroupsConfigArgs.builder()
            .securityGroup("string")
            .build())
        .binaryAuthorization(ClusterBinaryAuthorizationArgs.builder()
            .evaluationMode("string")
            .build())
        .clusterAutoscaling(ClusterClusterAutoscalingArgs.builder()
            .autoProvisioningDefaults(ClusterClusterAutoscalingAutoProvisioningDefaultsArgs.builder()
                .bootDiskKmsKey("string")
                .diskSize(0)
                .diskType("string")
                .imageType("string")
                .management(ClusterClusterAutoscalingAutoProvisioningDefaultsManagementArgs.builder()
                    .autoRepair(false)
                    .autoUpgrade(false)
                    .upgradeOptions(ClusterClusterAutoscalingAutoProvisioningDefaultsManagementUpgradeOptionArgs.builder()
                        .autoUpgradeStartTime("string")
                        .description("string")
                        .build())
                    .build())
                .minCpuPlatform("string")
                .oauthScopes("string")
                .serviceAccount("string")
                .shieldedInstanceConfig(ClusterClusterAutoscalingAutoProvisioningDefaultsShieldedInstanceConfigArgs.builder()
                    .enableIntegrityMonitoring(false)
                    .enableSecureBoot(false)
                    .build())
                .upgradeSettings(ClusterClusterAutoscalingAutoProvisioningDefaultsUpgradeSettingsArgs.builder()
                    .blueGreenSettings(ClusterClusterAutoscalingAutoProvisioningDefaultsUpgradeSettingsBlueGreenSettingsArgs.builder()
                        .nodePoolSoakDuration("string")
                        .standardRolloutPolicy(ClusterClusterAutoscalingAutoProvisioningDefaultsUpgradeSettingsBlueGreenSettingsStandardRolloutPolicyArgs.builder()
                            .batchNodeCount(0)
                            .batchPercentage(0)
                            .batchSoakDuration("string")
                            .build())
                        .build())
                    .maxSurge(0)
                    .maxUnavailable(0)
                    .strategy("string")
                    .build())
                .build())
            .autoscalingProfile("string")
            .enabled(false)
            .resourceLimits(ClusterClusterAutoscalingResourceLimitArgs.builder()
                .resourceType("string")
                .maximum(0)
                .minimum(0)
                .build())
            .build())
        .clusterIpv4Cidr("string")
        .clusterTelemetry(ClusterClusterTelemetryArgs.builder()
            .type("string")
            .build())
        .confidentialNodes(ClusterConfidentialNodesArgs.builder()
            .enabled(false)
            .build())
        .costManagementConfig(ClusterCostManagementConfigArgs.builder()
            .enabled(false)
            .build())
        .databaseEncryption(ClusterDatabaseEncryptionArgs.builder()
            .state("string")
            .keyName("string")
            .build())
        .datapathProvider("string")
        .defaultMaxPodsPerNode(0)
        .defaultSnatStatus(ClusterDefaultSnatStatusArgs.builder()
            .disabled(false)
            .build())
        .deletionProtection(false)
        .description("string")
        .dnsConfig(ClusterDnsConfigArgs.builder()
            .additiveVpcScopeDnsDomain("string")
            .clusterDns("string")
            .clusterDnsDomain("string")
            .clusterDnsScope("string")
            .build())
        .enableAutopilot(false)
        .enableCiliumClusterwideNetworkPolicy(false)
        .enableFqdnNetworkPolicy(false)
        .enableIntranodeVisibility(false)
        .enableK8sBetaApis(ClusterEnableK8sBetaApisArgs.builder()
            .enabledApis("string")
            .build())
        .enableKubernetesAlpha(false)
        .enableL4IlbSubsetting(false)
        .enableLegacyAbac(false)
        .enableMultiNetworking(false)
        .enableShieldedNodes(false)
        .enableTpu(false)
        .fleet(ClusterFleetArgs.builder()
            .membership("string")
            .membershipId("string")
            .membershipLocation("string")
            .preRegistered(false)
            .project("string")
            .build())
        .gatewayApiConfig(ClusterGatewayApiConfigArgs.builder()
            .channel("string")
            .build())
        .identityServiceConfig(ClusterIdentityServiceConfigArgs.builder()
            .enabled(false)
            .build())
        .initialNodeCount(0)
        .ipAllocationPolicy(ClusterIpAllocationPolicyArgs.builder()
            .additionalPodRangesConfig(ClusterIpAllocationPolicyAdditionalPodRangesConfigArgs.builder()
                .podRangeNames("string")
                .build())
            .clusterIpv4CidrBlock("string")
            .clusterSecondaryRangeName("string")
            .podCidrOverprovisionConfig(ClusterIpAllocationPolicyPodCidrOverprovisionConfigArgs.builder()
                .disabled(false)
                .build())
            .servicesIpv4CidrBlock("string")
            .servicesSecondaryRangeName("string")
            .stackType("string")
            .build())
        .location("string")
        .loggingConfig(ClusterLoggingConfigArgs.builder()
            .enableComponents("string")
            .build())
        .loggingService("string")
        .maintenancePolicy(ClusterMaintenancePolicyArgs.builder()
            .dailyMaintenanceWindow(ClusterMaintenancePolicyDailyMaintenanceWindowArgs.builder()
                .startTime("string")
                .duration("string")
                .build())
            .maintenanceExclusions(ClusterMaintenancePolicyMaintenanceExclusionArgs.builder()
                .endTime("string")
                .exclusionName("string")
                .startTime("string")
                .exclusionOptions(ClusterMaintenancePolicyMaintenanceExclusionExclusionOptionsArgs.builder()
                    .scope("string")
                    .build())
                .build())
            .recurringWindow(ClusterMaintenancePolicyRecurringWindowArgs.builder()
                .endTime("string")
                .recurrence("string")
                .startTime("string")
                .build())
            .build())
        .masterAuth(ClusterMasterAuthArgs.builder()
            .clientCertificateConfig(ClusterMasterAuthClientCertificateConfigArgs.builder()
                .issueClientCertificate(false)
                .build())
            .clientCertificate("string")
            .clientKey("string")
            .clusterCaCertificate("string")
            .build())
        .masterAuthorizedNetworksConfig(ClusterMasterAuthorizedNetworksConfigArgs.builder()
            .cidrBlocks(ClusterMasterAuthorizedNetworksConfigCidrBlockArgs.builder()
                .cidrBlock("string")
                .displayName("string")
                .build())
            .gcpPublicCidrsAccessEnabled(false)
            .build())
        .meshCertificates(ClusterMeshCertificatesArgs.builder()
            .enableCertificates(false)
            .build())
        .minMasterVersion("string")
        .monitoringConfig(ClusterMonitoringConfigArgs.builder()
            .advancedDatapathObservabilityConfigs(ClusterMonitoringConfigAdvancedDatapathObservabilityConfigArgs.builder()
                .enableMetrics(false)
                .enableRelay(false)
                .build())
            .enableComponents("string")
            .managedPrometheus(ClusterMonitoringConfigManagedPrometheusArgs.builder()
                .enabled(false)
                .build())
            .build())
        .monitoringService("string")
        .name("string")
        .network("string")
        .networkPolicy(ClusterNetworkPolicyArgs.builder()
            .enabled(false)
            .provider("string")
            .build())
        .networkingMode("string")
        .nodeConfig(ClusterNodeConfigArgs.builder()
            .advancedMachineFeatures(ClusterNodeConfigAdvancedMachineFeaturesArgs.builder()
                .threadsPerCore(0)
                .enableNestedVirtualization(false)
                .build())
            .bootDiskKmsKey("string")
            .confidentialNodes(ClusterNodeConfigConfidentialNodesArgs.builder()
                .enabled(false)
                .build())
            .containerdConfig(ClusterNodeConfigContainerdConfigArgs.builder()
                .privateRegistryAccessConfig(ClusterNodeConfigContainerdConfigPrivateRegistryAccessConfigArgs.builder()
                    .enabled(false)
                    .certificateAuthorityDomainConfigs(ClusterNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigArgs.builder()
                        .fqdns("string")
                        .gcpSecretManagerCertificateConfig(ClusterNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigGcpSecretManagerCertificateConfigArgs.builder()
                            .secretUri("string")
                            .build())
                        .build())
                    .build())
                .build())
            .diskSizeGb(0)
            .diskType("string")
            .effectiveTaints(ClusterNodeConfigEffectiveTaintArgs.builder()
                .effect("string")
                .key("string")
                .value("string")
                .build())
            .enableConfidentialStorage(false)
            .ephemeralStorageConfig(ClusterNodeConfigEphemeralStorageConfigArgs.builder()
                .localSsdCount(0)
                .build())
            .ephemeralStorageLocalSsdConfig(ClusterNodeConfigEphemeralStorageLocalSsdConfigArgs.builder()
                .localSsdCount(0)
                .build())
            .fastSocket(ClusterNodeConfigFastSocketArgs.builder()
                .enabled(false)
                .build())
            .gcfsConfig(ClusterNodeConfigGcfsConfigArgs.builder()
                .enabled(false)
                .build())
            .guestAccelerators(ClusterNodeConfigGuestAcceleratorArgs.builder()
                .count(0)
                .type("string")
                .gpuDriverInstallationConfig(ClusterNodeConfigGuestAcceleratorGpuDriverInstallationConfigArgs.builder()
                    .gpuDriverVersion("string")
                    .build())
                .gpuPartitionSize("string")
                .gpuSharingConfig(ClusterNodeConfigGuestAcceleratorGpuSharingConfigArgs.builder()
                    .gpuSharingStrategy("string")
                    .maxSharedClientsPerGpu(0)
                    .build())
                .build())
            .gvnic(ClusterNodeConfigGvnicArgs.builder()
                .enabled(false)
                .build())
            .hostMaintenancePolicy(ClusterNodeConfigHostMaintenancePolicyArgs.builder()
                .maintenanceInterval("string")
                .build())
            .imageType("string")
            .kubeletConfig(ClusterNodeConfigKubeletConfigArgs.builder()
                .cpuManagerPolicy("string")
                .cpuCfsQuota(false)
                .cpuCfsQuotaPeriod("string")
                .podPidsLimit(0)
                .build())
            .labels(Map.of("string", "string"))
            .linuxNodeConfig(ClusterNodeConfigLinuxNodeConfigArgs.builder()
                .cgroupMode("string")
                .sysctls(Map.of("string", "string"))
                .build())
            .localNvmeSsdBlockConfig(ClusterNodeConfigLocalNvmeSsdBlockConfigArgs.builder()
                .localSsdCount(0)
                .build())
            .localSsdCount(0)
            .loggingVariant("string")
            .machineType("string")
            .metadata(Map.of("string", "string"))
            .minCpuPlatform("string")
            .nodeGroup("string")
            .oauthScopes("string")
            .preemptible(false)
            .reservationAffinity(ClusterNodeConfigReservationAffinityArgs.builder()
                .consumeReservationType("string")
                .key("string")
                .values("string")
                .build())
            .resourceLabels(Map.of("string", "string"))
            .resourceManagerTags(Map.of("string", "any"))
            .sandboxConfig(ClusterNodeConfigSandboxConfigArgs.builder()
                .sandboxType("string")
                .build())
            .secondaryBootDisks(ClusterNodeConfigSecondaryBootDiskArgs.builder()
                .diskImage("string")
                .mode("string")
                .build())
            .serviceAccount("string")
            .shieldedInstanceConfig(ClusterNodeConfigShieldedInstanceConfigArgs.builder()
                .enableIntegrityMonitoring(false)
                .enableSecureBoot(false)
                .build())
            .soleTenantConfig(ClusterNodeConfigSoleTenantConfigArgs.builder()
                .nodeAffinities(ClusterNodeConfigSoleTenantConfigNodeAffinityArgs.builder()
                    .key("string")
                    .operator("string")
                    .values("string")
                    .build())
                .build())
            .spot(false)
            .tags("string")
            .taints(ClusterNodeConfigTaintArgs.builder()
                .effect("string")
                .key("string")
                .value("string")
                .build())
            .workloadMetadataConfig(ClusterNodeConfigWorkloadMetadataConfigArgs.builder()
                .mode("string")
                .build())
            .build())
        .nodeLocations("string")
        .nodePoolAutoConfig(ClusterNodePoolAutoConfigArgs.builder()
            .networkTags(ClusterNodePoolAutoConfigNetworkTagsArgs.builder()
                .tags("string")
                .build())
            .resourceManagerTags(Map.of("string", "any"))
            .build())
        .nodePoolDefaults(ClusterNodePoolDefaultsArgs.builder()
            .nodeConfigDefaults(ClusterNodePoolDefaultsNodeConfigDefaultsArgs.builder()
                .containerdConfig(ClusterNodePoolDefaultsNodeConfigDefaultsContainerdConfigArgs.builder()
                    .privateRegistryAccessConfig(ClusterNodePoolDefaultsNodeConfigDefaultsContainerdConfigPrivateRegistryAccessConfigArgs.builder()
                        .enabled(false)
                        .certificateAuthorityDomainConfigs(ClusterNodePoolDefaultsNodeConfigDefaultsContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigArgs.builder()
                            .fqdns("string")
                            .gcpSecretManagerCertificateConfig(ClusterNodePoolDefaultsNodeConfigDefaultsContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigGcpSecretManagerCertificateConfigArgs.builder()
                                .secretUri("string")
                                .build())
                            .build())
                        .build())
                    .build())
                .gcfsConfig(ClusterNodePoolDefaultsNodeConfigDefaultsGcfsConfigArgs.builder()
                    .enabled(false)
                    .build())
                .loggingVariant("string")
                .build())
            .build())
        .nodePools(ClusterNodePoolArgs.builder()
            .autoscaling(ClusterNodePoolAutoscalingArgs.builder()
                .locationPolicy("string")
                .maxNodeCount(0)
                .minNodeCount(0)
                .totalMaxNodeCount(0)
                .totalMinNodeCount(0)
                .build())
            .initialNodeCount(0)
            .instanceGroupUrls("string")
            .managedInstanceGroupUrls("string")
            .management(ClusterNodePoolManagementArgs.builder()
                .autoRepair(false)
                .autoUpgrade(false)
                .build())
            .maxPodsPerNode(0)
            .name("string")
            .namePrefix("string")
            .networkConfig(ClusterNodePoolNetworkConfigArgs.builder()
                .additionalNodeNetworkConfigs(ClusterNodePoolNetworkConfigAdditionalNodeNetworkConfigArgs.builder()
                    .network("string")
                    .subnetwork("string")
                    .build())
                .additionalPodNetworkConfigs(ClusterNodePoolNetworkConfigAdditionalPodNetworkConfigArgs.builder()
                    .maxPodsPerNode(0)
                    .secondaryPodRange("string")
                    .subnetwork("string")
                    .build())
                .createPodRange(false)
                .enablePrivateNodes(false)
                .networkPerformanceConfig(ClusterNodePoolNetworkConfigNetworkPerformanceConfigArgs.builder()
                    .totalEgressBandwidthTier("string")
                    .build())
                .podCidrOverprovisionConfig(ClusterNodePoolNetworkConfigPodCidrOverprovisionConfigArgs.builder()
                    .disabled(false)
                    .build())
                .podIpv4CidrBlock("string")
                .podRange("string")
                .build())
            .nodeConfig(ClusterNodePoolNodeConfigArgs.builder()
                .advancedMachineFeatures(ClusterNodePoolNodeConfigAdvancedMachineFeaturesArgs.builder()
                    .threadsPerCore(0)
                    .enableNestedVirtualization(false)
                    .build())
                .bootDiskKmsKey("string")
                .confidentialNodes(ClusterNodePoolNodeConfigConfidentialNodesArgs.builder()
                    .enabled(false)
                    .build())
                .containerdConfig(ClusterNodePoolNodeConfigContainerdConfigArgs.builder()
                    .privateRegistryAccessConfig(ClusterNodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfigArgs.builder()
                        .enabled(false)
                        .certificateAuthorityDomainConfigs(ClusterNodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigArgs.builder()
                            .fqdns("string")
                            .gcpSecretManagerCertificateConfig(ClusterNodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigGcpSecretManagerCertificateConfigArgs.builder()
                                .secretUri("string")
                                .build())
                            .build())
                        .build())
                    .build())
                .diskSizeGb(0)
                .diskType("string")
                .effectiveTaints(ClusterNodePoolNodeConfigEffectiveTaintArgs.builder()
                    .effect("string")
                    .key("string")
                    .value("string")
                    .build())
                .enableConfidentialStorage(false)
                .ephemeralStorageConfig(ClusterNodePoolNodeConfigEphemeralStorageConfigArgs.builder()
                    .localSsdCount(0)
                    .build())
                .ephemeralStorageLocalSsdConfig(ClusterNodePoolNodeConfigEphemeralStorageLocalSsdConfigArgs.builder()
                    .localSsdCount(0)
                    .build())
                .fastSocket(ClusterNodePoolNodeConfigFastSocketArgs.builder()
                    .enabled(false)
                    .build())
                .gcfsConfig(ClusterNodePoolNodeConfigGcfsConfigArgs.builder()
                    .enabled(false)
                    .build())
                .guestAccelerators(ClusterNodePoolNodeConfigGuestAcceleratorArgs.builder()
                    .count(0)
                    .type("string")
                    .gpuDriverInstallationConfig(ClusterNodePoolNodeConfigGuestAcceleratorGpuDriverInstallationConfigArgs.builder()
                        .gpuDriverVersion("string")
                        .build())
                    .gpuPartitionSize("string")
                    .gpuSharingConfig(ClusterNodePoolNodeConfigGuestAcceleratorGpuSharingConfigArgs.builder()
                        .gpuSharingStrategy("string")
                        .maxSharedClientsPerGpu(0)
                        .build())
                    .build())
                .gvnic(ClusterNodePoolNodeConfigGvnicArgs.builder()
                    .enabled(false)
                    .build())
                .hostMaintenancePolicy(ClusterNodePoolNodeConfigHostMaintenancePolicyArgs.builder()
                    .maintenanceInterval("string")
                    .build())
                .imageType("string")
                .kubeletConfig(ClusterNodePoolNodeConfigKubeletConfigArgs.builder()
                    .cpuManagerPolicy("string")
                    .cpuCfsQuota(false)
                    .cpuCfsQuotaPeriod("string")
                    .podPidsLimit(0)
                    .build())
                .labels(Map.of("string", "string"))
                .linuxNodeConfig(ClusterNodePoolNodeConfigLinuxNodeConfigArgs.builder()
                    .cgroupMode("string")
                    .sysctls(Map.of("string", "string"))
                    .build())
                .localNvmeSsdBlockConfig(ClusterNodePoolNodeConfigLocalNvmeSsdBlockConfigArgs.builder()
                    .localSsdCount(0)
                    .build())
                .localSsdCount(0)
                .loggingVariant("string")
                .machineType("string")
                .metadata(Map.of("string", "string"))
                .minCpuPlatform("string")
                .nodeGroup("string")
                .oauthScopes("string")
                .preemptible(false)
                .reservationAffinity(ClusterNodePoolNodeConfigReservationAffinityArgs.builder()
                    .consumeReservationType("string")
                    .key("string")
                    .values("string")
                    .build())
                .resourceLabels(Map.of("string", "string"))
                .resourceManagerTags(Map.of("string", "any"))
                .sandboxConfig(ClusterNodePoolNodeConfigSandboxConfigArgs.builder()
                    .sandboxType("string")
                    .build())
                .secondaryBootDisks(ClusterNodePoolNodeConfigSecondaryBootDiskArgs.builder()
                    .diskImage("string")
                    .mode("string")
                    .build())
                .serviceAccount("string")
                .shieldedInstanceConfig(ClusterNodePoolNodeConfigShieldedInstanceConfigArgs.builder()
                    .enableIntegrityMonitoring(false)
                    .enableSecureBoot(false)
                    .build())
                .soleTenantConfig(ClusterNodePoolNodeConfigSoleTenantConfigArgs.builder()
                    .nodeAffinities(ClusterNodePoolNodeConfigSoleTenantConfigNodeAffinityArgs.builder()
                        .key("string")
                        .operator("string")
                        .values("string")
                        .build())
                    .build())
                .spot(false)
                .tags("string")
                .taints(ClusterNodePoolNodeConfigTaintArgs.builder()
                    .effect("string")
                    .key("string")
                    .value("string")
                    .build())
                .workloadMetadataConfig(ClusterNodePoolNodeConfigWorkloadMetadataConfigArgs.builder()
                    .mode("string")
                    .build())
                .build())
            .nodeCount(0)
            .nodeLocations("string")
            .placementPolicy(ClusterNodePoolPlacementPolicyArgs.builder()
                .type("string")
                .policyName("string")
                .tpuTopology("string")
                .build())
            .queuedProvisioning(ClusterNodePoolQueuedProvisioningArgs.builder()
                .enabled(false)
                .build())
            .upgradeSettings(ClusterNodePoolUpgradeSettingsArgs.builder()
                .blueGreenSettings(ClusterNodePoolUpgradeSettingsBlueGreenSettingsArgs.builder()
                    .standardRolloutPolicy(ClusterNodePoolUpgradeSettingsBlueGreenSettingsStandardRolloutPolicyArgs.builder()
                        .batchNodeCount(0)
                        .batchPercentage(0)
                        .batchSoakDuration("string")
                        .build())
                    .nodePoolSoakDuration("string")
                    .build())
                .maxSurge(0)
                .maxUnavailable(0)
                .strategy("string")
                .build())
            .version("string")
            .build())
        .nodeVersion("string")
        .notificationConfig(ClusterNotificationConfigArgs.builder()
            .pubsub(ClusterNotificationConfigPubsubArgs.builder()
                .enabled(false)
                .filter(ClusterNotificationConfigPubsubFilterArgs.builder()
                    .eventTypes("string")
                    .build())
                .topic("string")
                .build())
            .build())
        .podSecurityPolicyConfig(ClusterPodSecurityPolicyConfigArgs.builder()
            .enabled(false)
            .build())
        .privateClusterConfig(ClusterPrivateClusterConfigArgs.builder()
            .enablePrivateEndpoint(false)
            .enablePrivateNodes(false)
            .masterGlobalAccessConfig(ClusterPrivateClusterConfigMasterGlobalAccessConfigArgs.builder()
                .enabled(false)
                .build())
            .masterIpv4CidrBlock("string")
            .peeringName("string")
            .privateEndpoint("string")
            .privateEndpointSubnetwork("string")
            .publicEndpoint("string")
            .build())
        .privateIpv6GoogleAccess("string")
        .project("string")
        .protectConfig(ClusterProtectConfigArgs.builder()
            .workloadConfig(ClusterProtectConfigWorkloadConfigArgs.builder()
                .auditMode("string")
                .build())
            .workloadVulnerabilityMode("string")
            .build())
        .releaseChannel(ClusterReleaseChannelArgs.builder()
            .channel("string")
            .build())
        .removeDefaultNodePool(false)
        .resourceLabels(Map.of("string", "string"))
        .resourceUsageExportConfig(ClusterResourceUsageExportConfigArgs.builder()
            .bigqueryDestination(ClusterResourceUsageExportConfigBigqueryDestinationArgs.builder()
                .datasetId("string")
                .build())
            .enableNetworkEgressMetering(false)
            .enableResourceConsumptionMetering(false)
            .build())
        .secretManagerConfig(ClusterSecretManagerConfigArgs.builder()
            .enabled(false)
            .build())
        .securityPostureConfig(ClusterSecurityPostureConfigArgs.builder()
            .mode("string")
            .vulnerabilityMode("string")
            .build())
        .serviceExternalIpsConfig(ClusterServiceExternalIpsConfigArgs.builder()
            .enabled(false)
            .build())
        .subnetwork("string")
        .tpuConfig(ClusterTpuConfigArgs.builder()
            .enabled(false)
            .ipv4CidrBlock("string")
            .useServiceNetworking(false)
            .build())
        .verticalPodAutoscaling(ClusterVerticalPodAutoscalingArgs.builder()
            .enabled(false)
            .build())
        .workloadAltsConfig(ClusterWorkloadAltsConfigArgs.builder()
            .enableAlts(false)
            .build())
        .workloadIdentityConfig(ClusterWorkloadIdentityConfigArgs.builder()
            .workloadPool("string")
            .build())
        .build());
    
    gcp_cluster_resource = gcp.container.Cluster("gcpClusterResource",
        addons_config={
            "cloudrunConfig": {
                "disabled": False,
                "loadBalancerType": "string",
            },
            "configConnectorConfig": {
                "enabled": False,
            },
            "dnsCacheConfig": {
                "enabled": False,
            },
            "gcePersistentDiskCsiDriverConfig": {
                "enabled": False,
            },
            "gcpFilestoreCsiDriverConfig": {
                "enabled": False,
            },
            "gcsFuseCsiDriverConfig": {
                "enabled": False,
            },
            "gkeBackupAgentConfig": {
                "enabled": False,
            },
            "horizontalPodAutoscaling": {
                "disabled": False,
            },
            "httpLoadBalancing": {
                "disabled": False,
            },
            "istioConfig": {
                "disabled": False,
                "auth": "string",
            },
            "kalmConfig": {
                "enabled": False,
            },
            "networkPolicyConfig": {
                "disabled": False,
            },
            "statefulHaConfig": {
                "enabled": False,
            },
        },
        allow_net_admin=False,
        authenticator_groups_config={
            "securityGroup": "string",
        },
        binary_authorization={
            "evaluationMode": "string",
        },
        cluster_autoscaling={
            "autoProvisioningDefaults": {
                "bootDiskKmsKey": "string",
                "diskSize": 0,
                "diskType": "string",
                "imageType": "string",
                "management": {
                    "autoRepair": False,
                    "autoUpgrade": False,
                    "upgradeOptions": [{
                        "autoUpgradeStartTime": "string",
                        "description": "string",
                    }],
                },
                "minCpuPlatform": "string",
                "oauthScopes": ["string"],
                "serviceAccount": "string",
                "shieldedInstanceConfig": {
                    "enableIntegrityMonitoring": False,
                    "enableSecureBoot": False,
                },
                "upgradeSettings": {
                    "blueGreenSettings": {
                        "nodePoolSoakDuration": "string",
                        "standardRolloutPolicy": {
                            "batchNodeCount": 0,
                            "batchPercentage": 0,
                            "batchSoakDuration": "string",
                        },
                    },
                    "maxSurge": 0,
                    "maxUnavailable": 0,
                    "strategy": "string",
                },
            },
            "autoscalingProfile": "string",
            "enabled": False,
            "resourceLimits": [{
                "resourceType": "string",
                "maximum": 0,
                "minimum": 0,
            }],
        },
        cluster_ipv4_cidr="string",
        cluster_telemetry={
            "type": "string",
        },
        confidential_nodes={
            "enabled": False,
        },
        cost_management_config={
            "enabled": False,
        },
        database_encryption={
            "state": "string",
            "keyName": "string",
        },
        datapath_provider="string",
        default_max_pods_per_node=0,
        default_snat_status={
            "disabled": False,
        },
        deletion_protection=False,
        description="string",
        dns_config={
            "additiveVpcScopeDnsDomain": "string",
            "clusterDns": "string",
            "clusterDnsDomain": "string",
            "clusterDnsScope": "string",
        },
        enable_autopilot=False,
        enable_cilium_clusterwide_network_policy=False,
        enable_fqdn_network_policy=False,
        enable_intranode_visibility=False,
        enable_k8s_beta_apis={
            "enabledApis": ["string"],
        },
        enable_kubernetes_alpha=False,
        enable_l4_ilb_subsetting=False,
        enable_legacy_abac=False,
        enable_multi_networking=False,
        enable_shielded_nodes=False,
        enable_tpu=False,
        fleet={
            "membership": "string",
            "membershipId": "string",
            "membershipLocation": "string",
            "preRegistered": False,
            "project": "string",
        },
        gateway_api_config={
            "channel": "string",
        },
        identity_service_config={
            "enabled": False,
        },
        initial_node_count=0,
        ip_allocation_policy={
            "additionalPodRangesConfig": {
                "podRangeNames": ["string"],
            },
            "clusterIpv4CidrBlock": "string",
            "clusterSecondaryRangeName": "string",
            "podCidrOverprovisionConfig": {
                "disabled": False,
            },
            "servicesIpv4CidrBlock": "string",
            "servicesSecondaryRangeName": "string",
            "stackType": "string",
        },
        location="string",
        logging_config={
            "enableComponents": ["string"],
        },
        logging_service="string",
        maintenance_policy={
            "dailyMaintenanceWindow": {
                "startTime": "string",
                "duration": "string",
            },
            "maintenanceExclusions": [{
                "endTime": "string",
                "exclusionName": "string",
                "startTime": "string",
                "exclusionOptions": {
                    "scope": "string",
                },
            }],
            "recurringWindow": {
                "endTime": "string",
                "recurrence": "string",
                "startTime": "string",
            },
        },
        master_auth={
            "clientCertificateConfig": {
                "issueClientCertificate": False,
            },
            "clientCertificate": "string",
            "clientKey": "string",
            "clusterCaCertificate": "string",
        },
        master_authorized_networks_config={
            "cidrBlocks": [{
                "cidrBlock": "string",
                "displayName": "string",
            }],
            "gcpPublicCidrsAccessEnabled": False,
        },
        mesh_certificates={
            "enableCertificates": False,
        },
        min_master_version="string",
        monitoring_config={
            "advancedDatapathObservabilityConfigs": [{
                "enableMetrics": False,
                "enableRelay": False,
            }],
            "enableComponents": ["string"],
            "managedPrometheus": {
                "enabled": False,
            },
        },
        monitoring_service="string",
        name="string",
        network="string",
        network_policy={
            "enabled": False,
            "provider": "string",
        },
        networking_mode="string",
        node_config={
            "advancedMachineFeatures": {
                "threadsPerCore": 0,
                "enableNestedVirtualization": False,
            },
            "bootDiskKmsKey": "string",
            "confidentialNodes": {
                "enabled": False,
            },
            "containerdConfig": {
                "privateRegistryAccessConfig": {
                    "enabled": False,
                    "certificateAuthorityDomainConfigs": [{
                        "fqdns": ["string"],
                        "gcpSecretManagerCertificateConfig": {
                            "secretUri": "string",
                        },
                    }],
                },
            },
            "diskSizeGb": 0,
            "diskType": "string",
            "effectiveTaints": [{
                "effect": "string",
                "key": "string",
                "value": "string",
            }],
            "enableConfidentialStorage": False,
            "ephemeralStorageConfig": {
                "localSsdCount": 0,
            },
            "ephemeralStorageLocalSsdConfig": {
                "localSsdCount": 0,
            },
            "fastSocket": {
                "enabled": False,
            },
            "gcfsConfig": {
                "enabled": False,
            },
            "guestAccelerators": [{
                "count": 0,
                "type": "string",
                "gpuDriverInstallationConfig": {
                    "gpuDriverVersion": "string",
                },
                "gpuPartitionSize": "string",
                "gpuSharingConfig": {
                    "gpuSharingStrategy": "string",
                    "maxSharedClientsPerGpu": 0,
                },
            }],
            "gvnic": {
                "enabled": False,
            },
            "hostMaintenancePolicy": {
                "maintenanceInterval": "string",
            },
            "imageType": "string",
            "kubeletConfig": {
                "cpuManagerPolicy": "string",
                "cpuCfsQuota": False,
                "cpuCfsQuotaPeriod": "string",
                "podPidsLimit": 0,
            },
            "labels": {
                "string": "string",
            },
            "linuxNodeConfig": {
                "cgroupMode": "string",
                "sysctls": {
                    "string": "string",
                },
            },
            "localNvmeSsdBlockConfig": {
                "localSsdCount": 0,
            },
            "localSsdCount": 0,
            "loggingVariant": "string",
            "machineType": "string",
            "metadata": {
                "string": "string",
            },
            "minCpuPlatform": "string",
            "nodeGroup": "string",
            "oauthScopes": ["string"],
            "preemptible": False,
            "reservationAffinity": {
                "consumeReservationType": "string",
                "key": "string",
                "values": ["string"],
            },
            "resourceLabels": {
                "string": "string",
            },
            "resourceManagerTags": {
                "string": "any",
            },
            "sandboxConfig": {
                "sandboxType": "string",
            },
            "secondaryBootDisks": [{
                "diskImage": "string",
                "mode": "string",
            }],
            "serviceAccount": "string",
            "shieldedInstanceConfig": {
                "enableIntegrityMonitoring": False,
                "enableSecureBoot": False,
            },
            "soleTenantConfig": {
                "nodeAffinities": [{
                    "key": "string",
                    "operator": "string",
                    "values": ["string"],
                }],
            },
            "spot": False,
            "tags": ["string"],
            "taints": [{
                "effect": "string",
                "key": "string",
                "value": "string",
            }],
            "workloadMetadataConfig": {
                "mode": "string",
            },
        },
        node_locations=["string"],
        node_pool_auto_config={
            "networkTags": {
                "tags": ["string"],
            },
            "resourceManagerTags": {
                "string": "any",
            },
        },
        node_pool_defaults={
            "nodeConfigDefaults": {
                "containerdConfig": {
                    "privateRegistryAccessConfig": {
                        "enabled": False,
                        "certificateAuthorityDomainConfigs": [{
                            "fqdns": ["string"],
                            "gcpSecretManagerCertificateConfig": {
                                "secretUri": "string",
                            },
                        }],
                    },
                },
                "gcfsConfig": {
                    "enabled": False,
                },
                "loggingVariant": "string",
            },
        },
        node_pools=[{
            "autoscaling": {
                "locationPolicy": "string",
                "maxNodeCount": 0,
                "minNodeCount": 0,
                "totalMaxNodeCount": 0,
                "totalMinNodeCount": 0,
            },
            "initialNodeCount": 0,
            "instanceGroupUrls": ["string"],
            "managedInstanceGroupUrls": ["string"],
            "management": {
                "autoRepair": False,
                "autoUpgrade": False,
            },
            "maxPodsPerNode": 0,
            "name": "string",
            "namePrefix": "string",
            "networkConfig": {
                "additionalNodeNetworkConfigs": [{
                    "network": "string",
                    "subnetwork": "string",
                }],
                "additionalPodNetworkConfigs": [{
                    "maxPodsPerNode": 0,
                    "secondaryPodRange": "string",
                    "subnetwork": "string",
                }],
                "createPodRange": False,
                "enablePrivateNodes": False,
                "networkPerformanceConfig": {
                    "totalEgressBandwidthTier": "string",
                },
                "podCidrOverprovisionConfig": {
                    "disabled": False,
                },
                "podIpv4CidrBlock": "string",
                "podRange": "string",
            },
            "nodeConfig": {
                "advancedMachineFeatures": {
                    "threadsPerCore": 0,
                    "enableNestedVirtualization": False,
                },
                "bootDiskKmsKey": "string",
                "confidentialNodes": {
                    "enabled": False,
                },
                "containerdConfig": {
                    "privateRegistryAccessConfig": {
                        "enabled": False,
                        "certificateAuthorityDomainConfigs": [{
                            "fqdns": ["string"],
                            "gcpSecretManagerCertificateConfig": {
                                "secretUri": "string",
                            },
                        }],
                    },
                },
                "diskSizeGb": 0,
                "diskType": "string",
                "effectiveTaints": [{
                    "effect": "string",
                    "key": "string",
                    "value": "string",
                }],
                "enableConfidentialStorage": False,
                "ephemeralStorageConfig": {
                    "localSsdCount": 0,
                },
                "ephemeralStorageLocalSsdConfig": {
                    "localSsdCount": 0,
                },
                "fastSocket": {
                    "enabled": False,
                },
                "gcfsConfig": {
                    "enabled": False,
                },
                "guestAccelerators": [{
                    "count": 0,
                    "type": "string",
                    "gpuDriverInstallationConfig": {
                        "gpuDriverVersion": "string",
                    },
                    "gpuPartitionSize": "string",
                    "gpuSharingConfig": {
                        "gpuSharingStrategy": "string",
                        "maxSharedClientsPerGpu": 0,
                    },
                }],
                "gvnic": {
                    "enabled": False,
                },
                "hostMaintenancePolicy": {
                    "maintenanceInterval": "string",
                },
                "imageType": "string",
                "kubeletConfig": {
                    "cpuManagerPolicy": "string",
                    "cpuCfsQuota": False,
                    "cpuCfsQuotaPeriod": "string",
                    "podPidsLimit": 0,
                },
                "labels": {
                    "string": "string",
                },
                "linuxNodeConfig": {
                    "cgroupMode": "string",
                    "sysctls": {
                        "string": "string",
                    },
                },
                "localNvmeSsdBlockConfig": {
                    "localSsdCount": 0,
                },
                "localSsdCount": 0,
                "loggingVariant": "string",
                "machineType": "string",
                "metadata": {
                    "string": "string",
                },
                "minCpuPlatform": "string",
                "nodeGroup": "string",
                "oauthScopes": ["string"],
                "preemptible": False,
                "reservationAffinity": {
                    "consumeReservationType": "string",
                    "key": "string",
                    "values": ["string"],
                },
                "resourceLabels": {
                    "string": "string",
                },
                "resourceManagerTags": {
                    "string": "any",
                },
                "sandboxConfig": {
                    "sandboxType": "string",
                },
                "secondaryBootDisks": [{
                    "diskImage": "string",
                    "mode": "string",
                }],
                "serviceAccount": "string",
                "shieldedInstanceConfig": {
                    "enableIntegrityMonitoring": False,
                    "enableSecureBoot": False,
                },
                "soleTenantConfig": {
                    "nodeAffinities": [{
                        "key": "string",
                        "operator": "string",
                        "values": ["string"],
                    }],
                },
                "spot": False,
                "tags": ["string"],
                "taints": [{
                    "effect": "string",
                    "key": "string",
                    "value": "string",
                }],
                "workloadMetadataConfig": {
                    "mode": "string",
                },
            },
            "nodeCount": 0,
            "nodeLocations": ["string"],
            "placementPolicy": {
                "type": "string",
                "policyName": "string",
                "tpuTopology": "string",
            },
            "queuedProvisioning": {
                "enabled": False,
            },
            "upgradeSettings": {
                "blueGreenSettings": {
                    "standardRolloutPolicy": {
                        "batchNodeCount": 0,
                        "batchPercentage": 0,
                        "batchSoakDuration": "string",
                    },
                    "nodePoolSoakDuration": "string",
                },
                "maxSurge": 0,
                "maxUnavailable": 0,
                "strategy": "string",
            },
            "version": "string",
        }],
        node_version="string",
        notification_config={
            "pubsub": {
                "enabled": False,
                "filter": {
                    "eventTypes": ["string"],
                },
                "topic": "string",
            },
        },
        pod_security_policy_config={
            "enabled": False,
        },
        private_cluster_config={
            "enablePrivateEndpoint": False,
            "enablePrivateNodes": False,
            "masterGlobalAccessConfig": {
                "enabled": False,
            },
            "masterIpv4CidrBlock": "string",
            "peeringName": "string",
            "privateEndpoint": "string",
            "privateEndpointSubnetwork": "string",
            "publicEndpoint": "string",
        },
        private_ipv6_google_access="string",
        project="string",
        protect_config={
            "workloadConfig": {
                "auditMode": "string",
            },
            "workloadVulnerabilityMode": "string",
        },
        release_channel={
            "channel": "string",
        },
        remove_default_node_pool=False,
        resource_labels={
            "string": "string",
        },
        resource_usage_export_config={
            "bigqueryDestination": {
                "datasetId": "string",
            },
            "enableNetworkEgressMetering": False,
            "enableResourceConsumptionMetering": False,
        },
        secret_manager_config={
            "enabled": False,
        },
        security_posture_config={
            "mode": "string",
            "vulnerabilityMode": "string",
        },
        service_external_ips_config={
            "enabled": False,
        },
        subnetwork="string",
        tpu_config={
            "enabled": False,
            "ipv4CidrBlock": "string",
            "useServiceNetworking": False,
        },
        vertical_pod_autoscaling={
            "enabled": False,
        },
        workload_alts_config={
            "enableAlts": False,
        },
        workload_identity_config={
            "workloadPool": "string",
        })
    
    const gcpClusterResource = new gcp.container.Cluster("gcpClusterResource", {
        addonsConfig: {
            cloudrunConfig: {
                disabled: false,
                loadBalancerType: "string",
            },
            configConnectorConfig: {
                enabled: false,
            },
            dnsCacheConfig: {
                enabled: false,
            },
            gcePersistentDiskCsiDriverConfig: {
                enabled: false,
            },
            gcpFilestoreCsiDriverConfig: {
                enabled: false,
            },
            gcsFuseCsiDriverConfig: {
                enabled: false,
            },
            gkeBackupAgentConfig: {
                enabled: false,
            },
            horizontalPodAutoscaling: {
                disabled: false,
            },
            httpLoadBalancing: {
                disabled: false,
            },
            istioConfig: {
                disabled: false,
                auth: "string",
            },
            kalmConfig: {
                enabled: false,
            },
            networkPolicyConfig: {
                disabled: false,
            },
            statefulHaConfig: {
                enabled: false,
            },
        },
        allowNetAdmin: false,
        authenticatorGroupsConfig: {
            securityGroup: "string",
        },
        binaryAuthorization: {
            evaluationMode: "string",
        },
        clusterAutoscaling: {
            autoProvisioningDefaults: {
                bootDiskKmsKey: "string",
                diskSize: 0,
                diskType: "string",
                imageType: "string",
                management: {
                    autoRepair: false,
                    autoUpgrade: false,
                    upgradeOptions: [{
                        autoUpgradeStartTime: "string",
                        description: "string",
                    }],
                },
                minCpuPlatform: "string",
                oauthScopes: ["string"],
                serviceAccount: "string",
                shieldedInstanceConfig: {
                    enableIntegrityMonitoring: false,
                    enableSecureBoot: false,
                },
                upgradeSettings: {
                    blueGreenSettings: {
                        nodePoolSoakDuration: "string",
                        standardRolloutPolicy: {
                            batchNodeCount: 0,
                            batchPercentage: 0,
                            batchSoakDuration: "string",
                        },
                    },
                    maxSurge: 0,
                    maxUnavailable: 0,
                    strategy: "string",
                },
            },
            autoscalingProfile: "string",
            enabled: false,
            resourceLimits: [{
                resourceType: "string",
                maximum: 0,
                minimum: 0,
            }],
        },
        clusterIpv4Cidr: "string",
        clusterTelemetry: {
            type: "string",
        },
        confidentialNodes: {
            enabled: false,
        },
        costManagementConfig: {
            enabled: false,
        },
        databaseEncryption: {
            state: "string",
            keyName: "string",
        },
        datapathProvider: "string",
        defaultMaxPodsPerNode: 0,
        defaultSnatStatus: {
            disabled: false,
        },
        deletionProtection: false,
        description: "string",
        dnsConfig: {
            additiveVpcScopeDnsDomain: "string",
            clusterDns: "string",
            clusterDnsDomain: "string",
            clusterDnsScope: "string",
        },
        enableAutopilot: false,
        enableCiliumClusterwideNetworkPolicy: false,
        enableFqdnNetworkPolicy: false,
        enableIntranodeVisibility: false,
        enableK8sBetaApis: {
            enabledApis: ["string"],
        },
        enableKubernetesAlpha: false,
        enableL4IlbSubsetting: false,
        enableLegacyAbac: false,
        enableMultiNetworking: false,
        enableShieldedNodes: false,
        enableTpu: false,
        fleet: {
            membership: "string",
            membershipId: "string",
            membershipLocation: "string",
            preRegistered: false,
            project: "string",
        },
        gatewayApiConfig: {
            channel: "string",
        },
        identityServiceConfig: {
            enabled: false,
        },
        initialNodeCount: 0,
        ipAllocationPolicy: {
            additionalPodRangesConfig: {
                podRangeNames: ["string"],
            },
            clusterIpv4CidrBlock: "string",
            clusterSecondaryRangeName: "string",
            podCidrOverprovisionConfig: {
                disabled: false,
            },
            servicesIpv4CidrBlock: "string",
            servicesSecondaryRangeName: "string",
            stackType: "string",
        },
        location: "string",
        loggingConfig: {
            enableComponents: ["string"],
        },
        loggingService: "string",
        maintenancePolicy: {
            dailyMaintenanceWindow: {
                startTime: "string",
                duration: "string",
            },
            maintenanceExclusions: [{
                endTime: "string",
                exclusionName: "string",
                startTime: "string",
                exclusionOptions: {
                    scope: "string",
                },
            }],
            recurringWindow: {
                endTime: "string",
                recurrence: "string",
                startTime: "string",
            },
        },
        masterAuth: {
            clientCertificateConfig: {
                issueClientCertificate: false,
            },
            clientCertificate: "string",
            clientKey: "string",
            clusterCaCertificate: "string",
        },
        masterAuthorizedNetworksConfig: {
            cidrBlocks: [{
                cidrBlock: "string",
                displayName: "string",
            }],
            gcpPublicCidrsAccessEnabled: false,
        },
        meshCertificates: {
            enableCertificates: false,
        },
        minMasterVersion: "string",
        monitoringConfig: {
            advancedDatapathObservabilityConfigs: [{
                enableMetrics: false,
                enableRelay: false,
            }],
            enableComponents: ["string"],
            managedPrometheus: {
                enabled: false,
            },
        },
        monitoringService: "string",
        name: "string",
        network: "string",
        networkPolicy: {
            enabled: false,
            provider: "string",
        },
        networkingMode: "string",
        nodeConfig: {
            advancedMachineFeatures: {
                threadsPerCore: 0,
                enableNestedVirtualization: false,
            },
            bootDiskKmsKey: "string",
            confidentialNodes: {
                enabled: false,
            },
            containerdConfig: {
                privateRegistryAccessConfig: {
                    enabled: false,
                    certificateAuthorityDomainConfigs: [{
                        fqdns: ["string"],
                        gcpSecretManagerCertificateConfig: {
                            secretUri: "string",
                        },
                    }],
                },
            },
            diskSizeGb: 0,
            diskType: "string",
            effectiveTaints: [{
                effect: "string",
                key: "string",
                value: "string",
            }],
            enableConfidentialStorage: false,
            ephemeralStorageConfig: {
                localSsdCount: 0,
            },
            ephemeralStorageLocalSsdConfig: {
                localSsdCount: 0,
            },
            fastSocket: {
                enabled: false,
            },
            gcfsConfig: {
                enabled: false,
            },
            guestAccelerators: [{
                count: 0,
                type: "string",
                gpuDriverInstallationConfig: {
                    gpuDriverVersion: "string",
                },
                gpuPartitionSize: "string",
                gpuSharingConfig: {
                    gpuSharingStrategy: "string",
                    maxSharedClientsPerGpu: 0,
                },
            }],
            gvnic: {
                enabled: false,
            },
            hostMaintenancePolicy: {
                maintenanceInterval: "string",
            },
            imageType: "string",
            kubeletConfig: {
                cpuManagerPolicy: "string",
                cpuCfsQuota: false,
                cpuCfsQuotaPeriod: "string",
                podPidsLimit: 0,
            },
            labels: {
                string: "string",
            },
            linuxNodeConfig: {
                cgroupMode: "string",
                sysctls: {
                    string: "string",
                },
            },
            localNvmeSsdBlockConfig: {
                localSsdCount: 0,
            },
            localSsdCount: 0,
            loggingVariant: "string",
            machineType: "string",
            metadata: {
                string: "string",
            },
            minCpuPlatform: "string",
            nodeGroup: "string",
            oauthScopes: ["string"],
            preemptible: false,
            reservationAffinity: {
                consumeReservationType: "string",
                key: "string",
                values: ["string"],
            },
            resourceLabels: {
                string: "string",
            },
            resourceManagerTags: {
                string: "any",
            },
            sandboxConfig: {
                sandboxType: "string",
            },
            secondaryBootDisks: [{
                diskImage: "string",
                mode: "string",
            }],
            serviceAccount: "string",
            shieldedInstanceConfig: {
                enableIntegrityMonitoring: false,
                enableSecureBoot: false,
            },
            soleTenantConfig: {
                nodeAffinities: [{
                    key: "string",
                    operator: "string",
                    values: ["string"],
                }],
            },
            spot: false,
            tags: ["string"],
            taints: [{
                effect: "string",
                key: "string",
                value: "string",
            }],
            workloadMetadataConfig: {
                mode: "string",
            },
        },
        nodeLocations: ["string"],
        nodePoolAutoConfig: {
            networkTags: {
                tags: ["string"],
            },
            resourceManagerTags: {
                string: "any",
            },
        },
        nodePoolDefaults: {
            nodeConfigDefaults: {
                containerdConfig: {
                    privateRegistryAccessConfig: {
                        enabled: false,
                        certificateAuthorityDomainConfigs: [{
                            fqdns: ["string"],
                            gcpSecretManagerCertificateConfig: {
                                secretUri: "string",
                            },
                        }],
                    },
                },
                gcfsConfig: {
                    enabled: false,
                },
                loggingVariant: "string",
            },
        },
        nodePools: [{
            autoscaling: {
                locationPolicy: "string",
                maxNodeCount: 0,
                minNodeCount: 0,
                totalMaxNodeCount: 0,
                totalMinNodeCount: 0,
            },
            initialNodeCount: 0,
            instanceGroupUrls: ["string"],
            managedInstanceGroupUrls: ["string"],
            management: {
                autoRepair: false,
                autoUpgrade: false,
            },
            maxPodsPerNode: 0,
            name: "string",
            namePrefix: "string",
            networkConfig: {
                additionalNodeNetworkConfigs: [{
                    network: "string",
                    subnetwork: "string",
                }],
                additionalPodNetworkConfigs: [{
                    maxPodsPerNode: 0,
                    secondaryPodRange: "string",
                    subnetwork: "string",
                }],
                createPodRange: false,
                enablePrivateNodes: false,
                networkPerformanceConfig: {
                    totalEgressBandwidthTier: "string",
                },
                podCidrOverprovisionConfig: {
                    disabled: false,
                },
                podIpv4CidrBlock: "string",
                podRange: "string",
            },
            nodeConfig: {
                advancedMachineFeatures: {
                    threadsPerCore: 0,
                    enableNestedVirtualization: false,
                },
                bootDiskKmsKey: "string",
                confidentialNodes: {
                    enabled: false,
                },
                containerdConfig: {
                    privateRegistryAccessConfig: {
                        enabled: false,
                        certificateAuthorityDomainConfigs: [{
                            fqdns: ["string"],
                            gcpSecretManagerCertificateConfig: {
                                secretUri: "string",
                            },
                        }],
                    },
                },
                diskSizeGb: 0,
                diskType: "string",
                effectiveTaints: [{
                    effect: "string",
                    key: "string",
                    value: "string",
                }],
                enableConfidentialStorage: false,
                ephemeralStorageConfig: {
                    localSsdCount: 0,
                },
                ephemeralStorageLocalSsdConfig: {
                    localSsdCount: 0,
                },
                fastSocket: {
                    enabled: false,
                },
                gcfsConfig: {
                    enabled: false,
                },
                guestAccelerators: [{
                    count: 0,
                    type: "string",
                    gpuDriverInstallationConfig: {
                        gpuDriverVersion: "string",
                    },
                    gpuPartitionSize: "string",
                    gpuSharingConfig: {
                        gpuSharingStrategy: "string",
                        maxSharedClientsPerGpu: 0,
                    },
                }],
                gvnic: {
                    enabled: false,
                },
                hostMaintenancePolicy: {
                    maintenanceInterval: "string",
                },
                imageType: "string",
                kubeletConfig: {
                    cpuManagerPolicy: "string",
                    cpuCfsQuota: false,
                    cpuCfsQuotaPeriod: "string",
                    podPidsLimit: 0,
                },
                labels: {
                    string: "string",
                },
                linuxNodeConfig: {
                    cgroupMode: "string",
                    sysctls: {
                        string: "string",
                    },
                },
                localNvmeSsdBlockConfig: {
                    localSsdCount: 0,
                },
                localSsdCount: 0,
                loggingVariant: "string",
                machineType: "string",
                metadata: {
                    string: "string",
                },
                minCpuPlatform: "string",
                nodeGroup: "string",
                oauthScopes: ["string"],
                preemptible: false,
                reservationAffinity: {
                    consumeReservationType: "string",
                    key: "string",
                    values: ["string"],
                },
                resourceLabels: {
                    string: "string",
                },
                resourceManagerTags: {
                    string: "any",
                },
                sandboxConfig: {
                    sandboxType: "string",
                },
                secondaryBootDisks: [{
                    diskImage: "string",
                    mode: "string",
                }],
                serviceAccount: "string",
                shieldedInstanceConfig: {
                    enableIntegrityMonitoring: false,
                    enableSecureBoot: false,
                },
                soleTenantConfig: {
                    nodeAffinities: [{
                        key: "string",
                        operator: "string",
                        values: ["string"],
                    }],
                },
                spot: false,
                tags: ["string"],
                taints: [{
                    effect: "string",
                    key: "string",
                    value: "string",
                }],
                workloadMetadataConfig: {
                    mode: "string",
                },
            },
            nodeCount: 0,
            nodeLocations: ["string"],
            placementPolicy: {
                type: "string",
                policyName: "string",
                tpuTopology: "string",
            },
            queuedProvisioning: {
                enabled: false,
            },
            upgradeSettings: {
                blueGreenSettings: {
                    standardRolloutPolicy: {
                        batchNodeCount: 0,
                        batchPercentage: 0,
                        batchSoakDuration: "string",
                    },
                    nodePoolSoakDuration: "string",
                },
                maxSurge: 0,
                maxUnavailable: 0,
                strategy: "string",
            },
            version: "string",
        }],
        nodeVersion: "string",
        notificationConfig: {
            pubsub: {
                enabled: false,
                filter: {
                    eventTypes: ["string"],
                },
                topic: "string",
            },
        },
        podSecurityPolicyConfig: {
            enabled: false,
        },
        privateClusterConfig: {
            enablePrivateEndpoint: false,
            enablePrivateNodes: false,
            masterGlobalAccessConfig: {
                enabled: false,
            },
            masterIpv4CidrBlock: "string",
            peeringName: "string",
            privateEndpoint: "string",
            privateEndpointSubnetwork: "string",
            publicEndpoint: "string",
        },
        privateIpv6GoogleAccess: "string",
        project: "string",
        protectConfig: {
            workloadConfig: {
                auditMode: "string",
            },
            workloadVulnerabilityMode: "string",
        },
        releaseChannel: {
            channel: "string",
        },
        removeDefaultNodePool: false,
        resourceLabels: {
            string: "string",
        },
        resourceUsageExportConfig: {
            bigqueryDestination: {
                datasetId: "string",
            },
            enableNetworkEgressMetering: false,
            enableResourceConsumptionMetering: false,
        },
        secretManagerConfig: {
            enabled: false,
        },
        securityPostureConfig: {
            mode: "string",
            vulnerabilityMode: "string",
        },
        serviceExternalIpsConfig: {
            enabled: false,
        },
        subnetwork: "string",
        tpuConfig: {
            enabled: false,
            ipv4CidrBlock: "string",
            useServiceNetworking: false,
        },
        verticalPodAutoscaling: {
            enabled: false,
        },
        workloadAltsConfig: {
            enableAlts: false,
        },
        workloadIdentityConfig: {
            workloadPool: "string",
        },
    });
    
    type: gcp:container:Cluster
    properties:
        addonsConfig:
            cloudrunConfig:
                disabled: false
                loadBalancerType: string
            configConnectorConfig:
                enabled: false
            dnsCacheConfig:
                enabled: false
            gcePersistentDiskCsiDriverConfig:
                enabled: false
            gcpFilestoreCsiDriverConfig:
                enabled: false
            gcsFuseCsiDriverConfig:
                enabled: false
            gkeBackupAgentConfig:
                enabled: false
            horizontalPodAutoscaling:
                disabled: false
            httpLoadBalancing:
                disabled: false
            istioConfig:
                auth: string
                disabled: false
            kalmConfig:
                enabled: false
            networkPolicyConfig:
                disabled: false
            statefulHaConfig:
                enabled: false
        allowNetAdmin: false
        authenticatorGroupsConfig:
            securityGroup: string
        binaryAuthorization:
            evaluationMode: string
        clusterAutoscaling:
            autoProvisioningDefaults:
                bootDiskKmsKey: string
                diskSize: 0
                diskType: string
                imageType: string
                management:
                    autoRepair: false
                    autoUpgrade: false
                    upgradeOptions:
                        - autoUpgradeStartTime: string
                          description: string
                minCpuPlatform: string
                oauthScopes:
                    - string
                serviceAccount: string
                shieldedInstanceConfig:
                    enableIntegrityMonitoring: false
                    enableSecureBoot: false
                upgradeSettings:
                    blueGreenSettings:
                        nodePoolSoakDuration: string
                        standardRolloutPolicy:
                            batchNodeCount: 0
                            batchPercentage: 0
                            batchSoakDuration: string
                    maxSurge: 0
                    maxUnavailable: 0
                    strategy: string
            autoscalingProfile: string
            enabled: false
            resourceLimits:
                - maximum: 0
                  minimum: 0
                  resourceType: string
        clusterIpv4Cidr: string
        clusterTelemetry:
            type: string
        confidentialNodes:
            enabled: false
        costManagementConfig:
            enabled: false
        databaseEncryption:
            keyName: string
            state: string
        datapathProvider: string
        defaultMaxPodsPerNode: 0
        defaultSnatStatus:
            disabled: false
        deletionProtection: false
        description: string
        dnsConfig:
            additiveVpcScopeDnsDomain: string
            clusterDns: string
            clusterDnsDomain: string
            clusterDnsScope: string
        enableAutopilot: false
        enableCiliumClusterwideNetworkPolicy: false
        enableFqdnNetworkPolicy: false
        enableIntranodeVisibility: false
        enableK8sBetaApis:
            enabledApis:
                - string
        enableKubernetesAlpha: false
        enableL4IlbSubsetting: false
        enableLegacyAbac: false
        enableMultiNetworking: false
        enableShieldedNodes: false
        enableTpu: false
        fleet:
            membership: string
            membershipId: string
            membershipLocation: string
            preRegistered: false
            project: string
        gatewayApiConfig:
            channel: string
        identityServiceConfig:
            enabled: false
        initialNodeCount: 0
        ipAllocationPolicy:
            additionalPodRangesConfig:
                podRangeNames:
                    - string
            clusterIpv4CidrBlock: string
            clusterSecondaryRangeName: string
            podCidrOverprovisionConfig:
                disabled: false
            servicesIpv4CidrBlock: string
            servicesSecondaryRangeName: string
            stackType: string
        location: string
        loggingConfig:
            enableComponents:
                - string
        loggingService: string
        maintenancePolicy:
            dailyMaintenanceWindow:
                duration: string
                startTime: string
            maintenanceExclusions:
                - endTime: string
                  exclusionName: string
                  exclusionOptions:
                    scope: string
                  startTime: string
            recurringWindow:
                endTime: string
                recurrence: string
                startTime: string
        masterAuth:
            clientCertificate: string
            clientCertificateConfig:
                issueClientCertificate: false
            clientKey: string
            clusterCaCertificate: string
        masterAuthorizedNetworksConfig:
            cidrBlocks:
                - cidrBlock: string
                  displayName: string
            gcpPublicCidrsAccessEnabled: false
        meshCertificates:
            enableCertificates: false
        minMasterVersion: string
        monitoringConfig:
            advancedDatapathObservabilityConfigs:
                - enableMetrics: false
                  enableRelay: false
            enableComponents:
                - string
            managedPrometheus:
                enabled: false
        monitoringService: string
        name: string
        network: string
        networkPolicy:
            enabled: false
            provider: string
        networkingMode: string
        nodeConfig:
            advancedMachineFeatures:
                enableNestedVirtualization: false
                threadsPerCore: 0
            bootDiskKmsKey: string
            confidentialNodes:
                enabled: false
            containerdConfig:
                privateRegistryAccessConfig:
                    certificateAuthorityDomainConfigs:
                        - fqdns:
                            - string
                          gcpSecretManagerCertificateConfig:
                            secretUri: string
                    enabled: false
            diskSizeGb: 0
            diskType: string
            effectiveTaints:
                - effect: string
                  key: string
                  value: string
            enableConfidentialStorage: false
            ephemeralStorageConfig:
                localSsdCount: 0
            ephemeralStorageLocalSsdConfig:
                localSsdCount: 0
            fastSocket:
                enabled: false
            gcfsConfig:
                enabled: false
            guestAccelerators:
                - count: 0
                  gpuDriverInstallationConfig:
                    gpuDriverVersion: string
                  gpuPartitionSize: string
                  gpuSharingConfig:
                    gpuSharingStrategy: string
                    maxSharedClientsPerGpu: 0
                  type: string
            gvnic:
                enabled: false
            hostMaintenancePolicy:
                maintenanceInterval: string
            imageType: string
            kubeletConfig:
                cpuCfsQuota: false
                cpuCfsQuotaPeriod: string
                cpuManagerPolicy: string
                podPidsLimit: 0
            labels:
                string: string
            linuxNodeConfig:
                cgroupMode: string
                sysctls:
                    string: string
            localNvmeSsdBlockConfig:
                localSsdCount: 0
            localSsdCount: 0
            loggingVariant: string
            machineType: string
            metadata:
                string: string
            minCpuPlatform: string
            nodeGroup: string
            oauthScopes:
                - string
            preemptible: false
            reservationAffinity:
                consumeReservationType: string
                key: string
                values:
                    - string
            resourceLabels:
                string: string
            resourceManagerTags:
                string: any
            sandboxConfig:
                sandboxType: string
            secondaryBootDisks:
                - diskImage: string
                  mode: string
            serviceAccount: string
            shieldedInstanceConfig:
                enableIntegrityMonitoring: false
                enableSecureBoot: false
            soleTenantConfig:
                nodeAffinities:
                    - key: string
                      operator: string
                      values:
                        - string
            spot: false
            tags:
                - string
            taints:
                - effect: string
                  key: string
                  value: string
            workloadMetadataConfig:
                mode: string
        nodeLocations:
            - string
        nodePoolAutoConfig:
            networkTags:
                tags:
                    - string
            resourceManagerTags:
                string: any
        nodePoolDefaults:
            nodeConfigDefaults:
                containerdConfig:
                    privateRegistryAccessConfig:
                        certificateAuthorityDomainConfigs:
                            - fqdns:
                                - string
                              gcpSecretManagerCertificateConfig:
                                secretUri: string
                        enabled: false
                gcfsConfig:
                    enabled: false
                loggingVariant: string
        nodePools:
            - autoscaling:
                locationPolicy: string
                maxNodeCount: 0
                minNodeCount: 0
                totalMaxNodeCount: 0
                totalMinNodeCount: 0
              initialNodeCount: 0
              instanceGroupUrls:
                - string
              managedInstanceGroupUrls:
                - string
              management:
                autoRepair: false
                autoUpgrade: false
              maxPodsPerNode: 0
              name: string
              namePrefix: string
              networkConfig:
                additionalNodeNetworkConfigs:
                    - network: string
                      subnetwork: string
                additionalPodNetworkConfigs:
                    - maxPodsPerNode: 0
                      secondaryPodRange: string
                      subnetwork: string
                createPodRange: false
                enablePrivateNodes: false
                networkPerformanceConfig:
                    totalEgressBandwidthTier: string
                podCidrOverprovisionConfig:
                    disabled: false
                podIpv4CidrBlock: string
                podRange: string
              nodeConfig:
                advancedMachineFeatures:
                    enableNestedVirtualization: false
                    threadsPerCore: 0
                bootDiskKmsKey: string
                confidentialNodes:
                    enabled: false
                containerdConfig:
                    privateRegistryAccessConfig:
                        certificateAuthorityDomainConfigs:
                            - fqdns:
                                - string
                              gcpSecretManagerCertificateConfig:
                                secretUri: string
                        enabled: false
                diskSizeGb: 0
                diskType: string
                effectiveTaints:
                    - effect: string
                      key: string
                      value: string
                enableConfidentialStorage: false
                ephemeralStorageConfig:
                    localSsdCount: 0
                ephemeralStorageLocalSsdConfig:
                    localSsdCount: 0
                fastSocket:
                    enabled: false
                gcfsConfig:
                    enabled: false
                guestAccelerators:
                    - count: 0
                      gpuDriverInstallationConfig:
                        gpuDriverVersion: string
                      gpuPartitionSize: string
                      gpuSharingConfig:
                        gpuSharingStrategy: string
                        maxSharedClientsPerGpu: 0
                      type: string
                gvnic:
                    enabled: false
                hostMaintenancePolicy:
                    maintenanceInterval: string
                imageType: string
                kubeletConfig:
                    cpuCfsQuota: false
                    cpuCfsQuotaPeriod: string
                    cpuManagerPolicy: string
                    podPidsLimit: 0
                labels:
                    string: string
                linuxNodeConfig:
                    cgroupMode: string
                    sysctls:
                        string: string
                localNvmeSsdBlockConfig:
                    localSsdCount: 0
                localSsdCount: 0
                loggingVariant: string
                machineType: string
                metadata:
                    string: string
                minCpuPlatform: string
                nodeGroup: string
                oauthScopes:
                    - string
                preemptible: false
                reservationAffinity:
                    consumeReservationType: string
                    key: string
                    values:
                        - string
                resourceLabels:
                    string: string
                resourceManagerTags:
                    string: any
                sandboxConfig:
                    sandboxType: string
                secondaryBootDisks:
                    - diskImage: string
                      mode: string
                serviceAccount: string
                shieldedInstanceConfig:
                    enableIntegrityMonitoring: false
                    enableSecureBoot: false
                soleTenantConfig:
                    nodeAffinities:
                        - key: string
                          operator: string
                          values:
                            - string
                spot: false
                tags:
                    - string
                taints:
                    - effect: string
                      key: string
                      value: string
                workloadMetadataConfig:
                    mode: string
              nodeCount: 0
              nodeLocations:
                - string
              placementPolicy:
                policyName: string
                tpuTopology: string
                type: string
              queuedProvisioning:
                enabled: false
              upgradeSettings:
                blueGreenSettings:
                    nodePoolSoakDuration: string
                    standardRolloutPolicy:
                        batchNodeCount: 0
                        batchPercentage: 0
                        batchSoakDuration: string
                maxSurge: 0
                maxUnavailable: 0
                strategy: string
              version: string
        nodeVersion: string
        notificationConfig:
            pubsub:
                enabled: false
                filter:
                    eventTypes:
                        - string
                topic: string
        podSecurityPolicyConfig:
            enabled: false
        privateClusterConfig:
            enablePrivateEndpoint: false
            enablePrivateNodes: false
            masterGlobalAccessConfig:
                enabled: false
            masterIpv4CidrBlock: string
            peeringName: string
            privateEndpoint: string
            privateEndpointSubnetwork: string
            publicEndpoint: string
        privateIpv6GoogleAccess: string
        project: string
        protectConfig:
            workloadConfig:
                auditMode: string
            workloadVulnerabilityMode: string
        releaseChannel:
            channel: string
        removeDefaultNodePool: false
        resourceLabels:
            string: string
        resourceUsageExportConfig:
            bigqueryDestination:
                datasetId: string
            enableNetworkEgressMetering: false
            enableResourceConsumptionMetering: false
        secretManagerConfig:
            enabled: false
        securityPostureConfig:
            mode: string
            vulnerabilityMode: string
        serviceExternalIpsConfig:
            enabled: false
        subnetwork: string
        tpuConfig:
            enabled: false
            ipv4CidrBlock: string
            useServiceNetworking: false
        verticalPodAutoscaling:
            enabled: false
        workloadAltsConfig:
            enableAlts: false
        workloadIdentityConfig:
            workloadPool: string
    

    Cluster Resource Properties

    To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.

    Inputs

    The Cluster resource accepts the following input properties:

    AddonsConfig ClusterAddonsConfig
    The configuration for addons supported by GKE. Structure is documented below.
    AllowNetAdmin bool
    Enable NET_ADMIN for the cluster. Defaults to false. This field should only be enabled for Autopilot clusters (enable_autopilot set to true).
    AuthenticatorGroupsConfig ClusterAuthenticatorGroupsConfig
    Configuration for the Google Groups for GKE feature. Structure is documented below.
    BinaryAuthorization ClusterBinaryAuthorization
    Configuration options for the Binary Authorization feature. Structure is documented below.
    ClusterAutoscaling ClusterClusterAutoscaling
    Per-cluster configuration of Node Auto-Provisioning with Cluster Autoscaler to automatically adjust the size of the cluster and create/delete node pools based on the current needs of the cluster's workload. See the guide to using Node Auto-Provisioning for more details. Structure is documented below.
    ClusterIpv4Cidr string
    The IP address range of the Kubernetes pods in this cluster in CIDR notation (e.g. 10.96.0.0/14). Leave blank to have one automatically chosen or specify a /14 block in 10.0.0.0/8. This field will default a new cluster to routes-based, where ip_allocation_policy is not defined.
    ClusterTelemetry ClusterClusterTelemetry
    Configuration for ClusterTelemetry feature, Structure is documented below.
    ConfidentialNodes ClusterConfidentialNodes
    Configuration for Confidential Nodes feature. Structure is documented below documented below.
    CostManagementConfig ClusterCostManagementConfig
    Configuration for the Cost Allocation feature. Structure is documented below.
    DatabaseEncryption ClusterDatabaseEncryption
    Structure is documented below.
    DatapathProvider string
    The desired datapath provider for this cluster. This is set to LEGACY_DATAPATH by default, which uses the IPTables-based kube-proxy implementation. Set to ADVANCED_DATAPATH to enable Dataplane v2.
    DefaultMaxPodsPerNode int
    The default maximum number of pods per node in this cluster. This doesn't work on "routes-based" clusters, clusters that don't have IP Aliasing enabled. See the official documentation for more information.
    DefaultSnatStatus ClusterDefaultSnatStatus
    GKE SNAT DefaultSnatStatus contains the desired state of whether default sNAT should be disabled on the cluster, API doc. Structure is documented below
    DeletionProtection bool
    Description string
    Description of the cluster.
    DnsConfig ClusterDnsConfig
    Configuration for Using Cloud DNS for GKE. Structure is documented below.
    EnableAutopilot bool
    Enable Autopilot for this cluster. Defaults to false. Note that when this option is enabled, certain features of Standard GKE are not available. See the official documentation for available features.
    EnableCiliumClusterwideNetworkPolicy bool
    Whether CiliumClusterWideNetworkPolicy is enabled on this cluster. Defaults to false.
    EnableFqdnNetworkPolicy bool
    Whether FQDN Network Policy is enabled on this cluster. Users who enable this feature for existing Standard clusters must restart the GKE Dataplane V2 anetd DaemonSet after enabling it. See the Enable FQDN Network Policy in an existing cluster for more information.
    EnableIntranodeVisibility bool
    Whether Intra-node visibility is enabled for this cluster. This makes same node pod to pod traffic visible for VPC network.
    EnableK8sBetaApis ClusterEnableK8sBetaApis
    Configuration for Kubernetes Beta APIs. Structure is documented below.
    EnableKubernetesAlpha bool
    Whether to enable Kubernetes Alpha features for this cluster. Note that when this option is enabled, the cluster cannot be upgraded and will be automatically deleted after 30 days.
    EnableL4IlbSubsetting bool
    Whether L4ILB Subsetting is enabled for this cluster.
    EnableLegacyAbac bool
    Whether the ABAC authorizer is enabled for this cluster. When enabled, identities in the system, including service accounts, nodes, and controllers, will have statically granted permissions beyond those provided by the RBAC configuration or IAM. Defaults to false
    EnableMultiNetworking bool
    Whether multi-networking is enabled for this cluster.
    EnableShieldedNodes bool
    Enable Shielded Nodes features on all nodes in this cluster. Defaults to true.
    EnableTpu bool
    Whether to enable Cloud TPU resources in this cluster. See the official documentation.
    Fleet ClusterFleet
    Fleet configuration for the cluster. Structure is documented below.
    GatewayApiConfig ClusterGatewayApiConfig
    Configuration for GKE Gateway API controller. Structure is documented below.
    IdentityServiceConfig ClusterIdentityServiceConfig
    . Structure is documented below.
    InitialNodeCount int
    The number of nodes to create in this cluster's default node pool. In regional or multi-zonal clusters, this is the number of nodes per zone. Must be set if node_pool is not set. If you're using gcp.container.NodePool objects with no default node pool, you'll need to set this to a value of at least 1, alongside setting remove_default_node_pool to true.
    IpAllocationPolicy ClusterIpAllocationPolicy
    Configuration of cluster IP allocation for VPC-native clusters. If this block is unset during creation, it will be set by the GKE backend. Structure is documented below.
    Location string
    The location (region or zone) in which the cluster master will be created, as well as the default node location. If you specify a zone (such as us-central1-a), the cluster will be a zonal cluster with a single cluster master. If you specify a region (such as us-west1), the cluster will be a regional cluster with multiple masters spread across zones in the region, and with default node locations in those zones as well
    LoggingConfig ClusterLoggingConfig
    Logging configuration for the cluster. Structure is documented below.
    LoggingService string
    The logging service that the cluster should write logs to. Available options include logging.googleapis.com(Legacy Stackdriver), logging.googleapis.com/kubernetes(Stackdriver Kubernetes Engine Logging), and none. Defaults to logging.googleapis.com/kubernetes
    MaintenancePolicy ClusterMaintenancePolicy
    The maintenance policy to use for the cluster. Structure is documented below.
    MasterAuth ClusterMasterAuth
    The authentication information for accessing the Kubernetes master. Some values in this block are only returned by the API if your service account has permission to get credentials for your GKE cluster. If you see an unexpected diff unsetting your client cert, ensure you have the container.clusters.getCredentials permission. Structure is documented below.
    MasterAuthorizedNetworksConfig ClusterMasterAuthorizedNetworksConfig
    The desired configuration options for master authorized networks. Omit the nested cidr_blocks attribute to disallow external access (except the cluster node IPs, which GKE automatically whitelists). Structure is documented below.
    MeshCertificates ClusterMeshCertificates
    Structure is documented below.
    MinMasterVersion string

    The minimum version of the master. GKE will auto-update the master to new versions, so this does not guarantee the current master version--use the read-only master_version field to obtain that. If unset, the cluster's version will be set by GKE to the version of the most recent official release (which is not necessarily the latest version). Most users will find the gcp.container.getEngineVersions data source useful - it indicates which versions are available. If you intend to specify versions manually, the docs describe the various acceptable formats for this field.

    If you are using the gcp.container.getEngineVersions datasource with a regional cluster, ensure that you have provided a location to the datasource. A region can have a different set of supported versions than its corresponding zones, and not all zones in a region are guaranteed to support the same version.

    MonitoringConfig ClusterMonitoringConfig
    Monitoring configuration for the cluster. Structure is documented below.
    MonitoringService string
    The monitoring service that the cluster should write metrics to. Automatically send metrics from pods in the cluster to the Google Cloud Monitoring API. VM metrics will be collected by Google Compute Engine regardless of this setting Available options include monitoring.googleapis.com(Legacy Stackdriver), monitoring.googleapis.com/kubernetes(Stackdriver Kubernetes Engine Monitoring), and none. Defaults to monitoring.googleapis.com/kubernetes
    Name string
    The name of the cluster, unique within the project and location.


    Network string
    The name or self_link of the Google Compute Engine network to which the cluster is connected. For Shared VPC, set this to the self link of the shared network.
    NetworkPolicy ClusterNetworkPolicy
    Configuration options for the NetworkPolicy feature. Structure is documented below.
    NetworkingMode string
    Determines whether alias IPs or routes will be used for pod IPs in the cluster. Options are VPC_NATIVE or ROUTES. VPC_NATIVE enables IP aliasing. Newly created clusters will default to VPC_NATIVE.
    NodeConfig ClusterNodeConfig
    Parameters used in creating the default node pool. Generally, this field should not be used at the same time as a gcp.container.NodePool or a node_pool block; this configuration manages the default node pool, which isn't recommended to be used. Structure is documented below.
    NodeLocations List<string>

    The list of zones in which the cluster's nodes are located. Nodes must be in the region of their regional cluster or in the same region as their cluster's zone for zonal clusters. If this is specified for a zonal cluster, omit the cluster's zone.

    A "multi-zonal" cluster is a zonal cluster with at least one additional zone defined; in a multi-zonal cluster, the cluster master is only present in a single zone while nodes are present in each of the primary zone and the node locations. In contrast, in a regional cluster, cluster master nodes are present in multiple zones in the region. For that reason, regional clusters should be preferred.

    NodePoolAutoConfig ClusterNodePoolAutoConfig
    Node pool configs that apply to auto-provisioned node pools in autopilot clusters and node auto-provisioning-enabled clusters. Structure is documented below.
    NodePoolDefaults ClusterNodePoolDefaults
    Default NodePool settings for the entire cluster. These settings are overridden if specified on the specific NodePool object. Structure is documented below.
    NodePools List<ClusterNodePool>
    List of node pools associated with this cluster. See gcp.container.NodePool for schema. Warning: node pools defined inside a cluster can't be changed (or added/removed) after cluster creation without deleting and recreating the entire cluster. Unless you absolutely need the ability to say "these are the only node pools associated with this cluster", use the gcp.container.NodePool resource instead of this property.
    NodeVersion string
    The Kubernetes version on the nodes. Must either be unset or set to the same value as min_master_version on create. Defaults to the default version set by GKE which is not necessarily the latest version. This only affects nodes in the default node pool. While a fuzzy version can be specified, it's recommended that you specify explicit versions as the provider will see spurious diffs when fuzzy versions are used. See the gcp.container.getEngineVersions data source's version_prefix field to approximate fuzzy versions. To update nodes in other node pools, use the version attribute on the node pool.
    NotificationConfig ClusterNotificationConfig
    Configuration for the cluster upgrade notifications feature. Structure is documented below.
    PodSecurityPolicyConfig ClusterPodSecurityPolicyConfig
    Configuration for the PodSecurityPolicy feature. Structure is documented below.
    PrivateClusterConfig ClusterPrivateClusterConfig
    Configuration for private clusters, clusters with private nodes. Structure is documented below.
    PrivateIpv6GoogleAccess string
    The desired state of IPv6 connectivity to Google Services. By default, no private IPv6 access to or from Google Services (all access will be via IPv4).
    Project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    ProtectConfig ClusterProtectConfig
    Enable/Disable Protect API features for the cluster. Structure is documented below.
    ReleaseChannel ClusterReleaseChannel
    Configuration options for the Release channel feature, which provide more control over automatic upgrades of your GKE clusters. When updating this field, GKE imposes specific version requirements. See Selecting a new release channel for more details; the gcp.container.getEngineVersions datasource can provide the default version for a channel. Note that removing the release_channel field from your config will cause the provider to stop managing your cluster's release channel, but will not unenroll it. Instead, use the "UNSPECIFIED" channel. Structure is documented below.
    RemoveDefaultNodePool bool
    If true, deletes the default node pool upon cluster creation. If you're using gcp.container.NodePool resources with no default node pool, this should be set to true, alongside setting initial_node_count to at least 1.
    ResourceLabels Dictionary<string, string>
    The GCE resource labels (a map of key/value pairs) to be applied to the cluster.
    ResourceUsageExportConfig ClusterResourceUsageExportConfig
    Configuration for the ResourceUsageExportConfig feature. Structure is documented below.
    SecretManagerConfig ClusterSecretManagerConfig
    Configuration for the SecretManagerConfig feature. Structure is documented below.
    SecurityPostureConfig ClusterSecurityPostureConfig
    Enable/Disable Security Posture API features for the cluster. Structure is documented below.
    ServiceExternalIpsConfig ClusterServiceExternalIpsConfig
    Structure is documented below.
    Subnetwork string
    The name or self_link of the Google Compute Engine subnetwork in which the cluster's instances are launched.
    TpuConfig ClusterTpuConfig
    TPU configuration for the cluster.
    VerticalPodAutoscaling ClusterVerticalPodAutoscaling
    Vertical Pod Autoscaling automatically adjusts the resources of pods controlled by it. Structure is documented below.
    WorkloadAltsConfig ClusterWorkloadAltsConfig

    Configuration for direct-path (via ALTS) with workload identity.. Structure is documented below.

    The default_snat_status block supports

    WorkloadIdentityConfig ClusterWorkloadIdentityConfig
    Workload Identity allows Kubernetes service accounts to act as a user-managed Google IAM Service Account. Structure is documented below.
    AddonsConfig ClusterAddonsConfigArgs
    The configuration for addons supported by GKE. Structure is documented below.
    AllowNetAdmin bool
    Enable NET_ADMIN for the cluster. Defaults to false. This field should only be enabled for Autopilot clusters (enable_autopilot set to true).
    AuthenticatorGroupsConfig ClusterAuthenticatorGroupsConfigArgs
    Configuration for the Google Groups for GKE feature. Structure is documented below.
    BinaryAuthorization ClusterBinaryAuthorizationArgs
    Configuration options for the Binary Authorization feature. Structure is documented below.
    ClusterAutoscaling ClusterClusterAutoscalingArgs
    Per-cluster configuration of Node Auto-Provisioning with Cluster Autoscaler to automatically adjust the size of the cluster and create/delete node pools based on the current needs of the cluster's workload. See the guide to using Node Auto-Provisioning for more details. Structure is documented below.
    ClusterIpv4Cidr string
    The IP address range of the Kubernetes pods in this cluster in CIDR notation (e.g. 10.96.0.0/14). Leave blank to have one automatically chosen or specify a /14 block in 10.0.0.0/8. This field will default a new cluster to routes-based, where ip_allocation_policy is not defined.
    ClusterTelemetry ClusterClusterTelemetryArgs
    Configuration for ClusterTelemetry feature, Structure is documented below.
    ConfidentialNodes ClusterConfidentialNodesArgs
    Configuration for Confidential Nodes feature. Structure is documented below documented below.
    CostManagementConfig ClusterCostManagementConfigArgs
    Configuration for the Cost Allocation feature. Structure is documented below.
    DatabaseEncryption ClusterDatabaseEncryptionArgs
    Structure is documented below.
    DatapathProvider string
    The desired datapath provider for this cluster. This is set to LEGACY_DATAPATH by default, which uses the IPTables-based kube-proxy implementation. Set to ADVANCED_DATAPATH to enable Dataplane v2.
    DefaultMaxPodsPerNode int
    The default maximum number of pods per node in this cluster. This doesn't work on "routes-based" clusters, clusters that don't have IP Aliasing enabled. See the official documentation for more information.
    DefaultSnatStatus ClusterDefaultSnatStatusArgs
    GKE SNAT DefaultSnatStatus contains the desired state of whether default sNAT should be disabled on the cluster, API doc. Structure is documented below
    DeletionProtection bool
    Description string
    Description of the cluster.
    DnsConfig ClusterDnsConfigArgs
    Configuration for Using Cloud DNS for GKE. Structure is documented below.
    EnableAutopilot bool
    Enable Autopilot for this cluster. Defaults to false. Note that when this option is enabled, certain features of Standard GKE are not available. See the official documentation for available features.
    EnableCiliumClusterwideNetworkPolicy bool
    Whether CiliumClusterWideNetworkPolicy is enabled on this cluster. Defaults to false.
    EnableFqdnNetworkPolicy bool
    Whether FQDN Network Policy is enabled on this cluster. Users who enable this feature for existing Standard clusters must restart the GKE Dataplane V2 anetd DaemonSet after enabling it. See the Enable FQDN Network Policy in an existing cluster for more information.
    EnableIntranodeVisibility bool
    Whether Intra-node visibility is enabled for this cluster. This makes same node pod to pod traffic visible for VPC network.
    EnableK8sBetaApis ClusterEnableK8sBetaApisArgs
    Configuration for Kubernetes Beta APIs. Structure is documented below.
    EnableKubernetesAlpha bool
    Whether to enable Kubernetes Alpha features for this cluster. Note that when this option is enabled, the cluster cannot be upgraded and will be automatically deleted after 30 days.
    EnableL4IlbSubsetting bool
    Whether L4ILB Subsetting is enabled for this cluster.
    EnableLegacyAbac bool
    Whether the ABAC authorizer is enabled for this cluster. When enabled, identities in the system, including service accounts, nodes, and controllers, will have statically granted permissions beyond those provided by the RBAC configuration or IAM. Defaults to false
    EnableMultiNetworking bool
    Whether multi-networking is enabled for this cluster.
    EnableShieldedNodes bool
    Enable Shielded Nodes features on all nodes in this cluster. Defaults to true.
    EnableTpu bool
    Whether to enable Cloud TPU resources in this cluster. See the official documentation.
    Fleet ClusterFleetArgs
    Fleet configuration for the cluster. Structure is documented below.
    GatewayApiConfig ClusterGatewayApiConfigArgs
    Configuration for GKE Gateway API controller. Structure is documented below.
    IdentityServiceConfig ClusterIdentityServiceConfigArgs
    . Structure is documented below.
    InitialNodeCount int
    The number of nodes to create in this cluster's default node pool. In regional or multi-zonal clusters, this is the number of nodes per zone. Must be set if node_pool is not set. If you're using gcp.container.NodePool objects with no default node pool, you'll need to set this to a value of at least 1, alongside setting remove_default_node_pool to true.
    IpAllocationPolicy ClusterIpAllocationPolicyArgs
    Configuration of cluster IP allocation for VPC-native clusters. If this block is unset during creation, it will be set by the GKE backend. Structure is documented below.
    Location string
    The location (region or zone) in which the cluster master will be created, as well as the default node location. If you specify a zone (such as us-central1-a), the cluster will be a zonal cluster with a single cluster master. If you specify a region (such as us-west1), the cluster will be a regional cluster with multiple masters spread across zones in the region, and with default node locations in those zones as well
    LoggingConfig ClusterLoggingConfigArgs
    Logging configuration for the cluster. Structure is documented below.
    LoggingService string
    The logging service that the cluster should write logs to. Available options include logging.googleapis.com(Legacy Stackdriver), logging.googleapis.com/kubernetes(Stackdriver Kubernetes Engine Logging), and none. Defaults to logging.googleapis.com/kubernetes
    MaintenancePolicy ClusterMaintenancePolicyArgs
    The maintenance policy to use for the cluster. Structure is documented below.
    MasterAuth ClusterMasterAuthArgs
    The authentication information for accessing the Kubernetes master. Some values in this block are only returned by the API if your service account has permission to get credentials for your GKE cluster. If you see an unexpected diff unsetting your client cert, ensure you have the container.clusters.getCredentials permission. Structure is documented below.
    MasterAuthorizedNetworksConfig ClusterMasterAuthorizedNetworksConfigArgs
    The desired configuration options for master authorized networks. Omit the nested cidr_blocks attribute to disallow external access (except the cluster node IPs, which GKE automatically whitelists). Structure is documented below.
    MeshCertificates ClusterMeshCertificatesArgs
    Structure is documented below.
    MinMasterVersion string

    The minimum version of the master. GKE will auto-update the master to new versions, so this does not guarantee the current master version--use the read-only master_version field to obtain that. If unset, the cluster's version will be set by GKE to the version of the most recent official release (which is not necessarily the latest version). Most users will find the gcp.container.getEngineVersions data source useful - it indicates which versions are available. If you intend to specify versions manually, the docs describe the various acceptable formats for this field.

    If you are using the gcp.container.getEngineVersions datasource with a regional cluster, ensure that you have provided a location to the datasource. A region can have a different set of supported versions than its corresponding zones, and not all zones in a region are guaranteed to support the same version.

    MonitoringConfig ClusterMonitoringConfigArgs
    Monitoring configuration for the cluster. Structure is documented below.
    MonitoringService string
    The monitoring service that the cluster should write metrics to. Automatically send metrics from pods in the cluster to the Google Cloud Monitoring API. VM metrics will be collected by Google Compute Engine regardless of this setting Available options include monitoring.googleapis.com(Legacy Stackdriver), monitoring.googleapis.com/kubernetes(Stackdriver Kubernetes Engine Monitoring), and none. Defaults to monitoring.googleapis.com/kubernetes
    Name string
    The name of the cluster, unique within the project and location.


    Network string
    The name or self_link of the Google Compute Engine network to which the cluster is connected. For Shared VPC, set this to the self link of the shared network.
    NetworkPolicy ClusterNetworkPolicyArgs
    Configuration options for the NetworkPolicy feature. Structure is documented below.
    NetworkingMode string
    Determines whether alias IPs or routes will be used for pod IPs in the cluster. Options are VPC_NATIVE or ROUTES. VPC_NATIVE enables IP aliasing. Newly created clusters will default to VPC_NATIVE.
    NodeConfig ClusterNodeConfigArgs
    Parameters used in creating the default node pool. Generally, this field should not be used at the same time as a gcp.container.NodePool or a node_pool block; this configuration manages the default node pool, which isn't recommended to be used. Structure is documented below.
    NodeLocations []string

    The list of zones in which the cluster's nodes are located. Nodes must be in the region of their regional cluster or in the same region as their cluster's zone for zonal clusters. If this is specified for a zonal cluster, omit the cluster's zone.

    A "multi-zonal" cluster is a zonal cluster with at least one additional zone defined; in a multi-zonal cluster, the cluster master is only present in a single zone while nodes are present in each of the primary zone and the node locations. In contrast, in a regional cluster, cluster master nodes are present in multiple zones in the region. For that reason, regional clusters should be preferred.

    NodePoolAutoConfig ClusterNodePoolAutoConfigArgs
    Node pool configs that apply to auto-provisioned node pools in autopilot clusters and node auto-provisioning-enabled clusters. Structure is documented below.
    NodePoolDefaults ClusterNodePoolDefaultsArgs
    Default NodePool settings for the entire cluster. These settings are overridden if specified on the specific NodePool object. Structure is documented below.
    NodePools []ClusterNodePoolArgs
    List of node pools associated with this cluster. See gcp.container.NodePool for schema. Warning: node pools defined inside a cluster can't be changed (or added/removed) after cluster creation without deleting and recreating the entire cluster. Unless you absolutely need the ability to say "these are the only node pools associated with this cluster", use the gcp.container.NodePool resource instead of this property.
    NodeVersion string
    The Kubernetes version on the nodes. Must either be unset or set to the same value as min_master_version on create. Defaults to the default version set by GKE which is not necessarily the latest version. This only affects nodes in the default node pool. While a fuzzy version can be specified, it's recommended that you specify explicit versions as the provider will see spurious diffs when fuzzy versions are used. See the gcp.container.getEngineVersions data source's version_prefix field to approximate fuzzy versions. To update nodes in other node pools, use the version attribute on the node pool.
    NotificationConfig ClusterNotificationConfigArgs
    Configuration for the cluster upgrade notifications feature. Structure is documented below.
    PodSecurityPolicyConfig ClusterPodSecurityPolicyConfigArgs
    Configuration for the PodSecurityPolicy feature. Structure is documented below.
    PrivateClusterConfig ClusterPrivateClusterConfigArgs
    Configuration for private clusters, clusters with private nodes. Structure is documented below.
    PrivateIpv6GoogleAccess string
    The desired state of IPv6 connectivity to Google Services. By default, no private IPv6 access to or from Google Services (all access will be via IPv4).
    Project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    ProtectConfig ClusterProtectConfigArgs
    Enable/Disable Protect API features for the cluster. Structure is documented below.
    ReleaseChannel ClusterReleaseChannelArgs
    Configuration options for the Release channel feature, which provide more control over automatic upgrades of your GKE clusters. When updating this field, GKE imposes specific version requirements. See Selecting a new release channel for more details; the gcp.container.getEngineVersions datasource can provide the default version for a channel. Note that removing the release_channel field from your config will cause the provider to stop managing your cluster's release channel, but will not unenroll it. Instead, use the "UNSPECIFIED" channel. Structure is documented below.
    RemoveDefaultNodePool bool
    If true, deletes the default node pool upon cluster creation. If you're using gcp.container.NodePool resources with no default node pool, this should be set to true, alongside setting initial_node_count to at least 1.
    ResourceLabels map[string]string
    The GCE resource labels (a map of key/value pairs) to be applied to the cluster.
    ResourceUsageExportConfig ClusterResourceUsageExportConfigArgs
    Configuration for the ResourceUsageExportConfig feature. Structure is documented below.
    SecretManagerConfig ClusterSecretManagerConfigArgs
    Configuration for the SecretManagerConfig feature. Structure is documented below.
    SecurityPostureConfig ClusterSecurityPostureConfigArgs
    Enable/Disable Security Posture API features for the cluster. Structure is documented below.
    ServiceExternalIpsConfig ClusterServiceExternalIpsConfigArgs
    Structure is documented below.
    Subnetwork string
    The name or self_link of the Google Compute Engine subnetwork in which the cluster's instances are launched.
    TpuConfig ClusterTpuConfigArgs
    TPU configuration for the cluster.
    VerticalPodAutoscaling ClusterVerticalPodAutoscalingArgs
    Vertical Pod Autoscaling automatically adjusts the resources of pods controlled by it. Structure is documented below.
    WorkloadAltsConfig ClusterWorkloadAltsConfigArgs

    Configuration for direct-path (via ALTS) with workload identity.. Structure is documented below.

    The default_snat_status block supports

    WorkloadIdentityConfig ClusterWorkloadIdentityConfigArgs
    Workload Identity allows Kubernetes service accounts to act as a user-managed Google IAM Service Account. Structure is documented below.
    addonsConfig ClusterAddonsConfig
    The configuration for addons supported by GKE. Structure is documented below.
    allowNetAdmin Boolean
    Enable NET_ADMIN for the cluster. Defaults to false. This field should only be enabled for Autopilot clusters (enable_autopilot set to true).
    authenticatorGroupsConfig ClusterAuthenticatorGroupsConfig
    Configuration for the Google Groups for GKE feature. Structure is documented below.
    binaryAuthorization ClusterBinaryAuthorization
    Configuration options for the Binary Authorization feature. Structure is documented below.
    clusterAutoscaling ClusterClusterAutoscaling
    Per-cluster configuration of Node Auto-Provisioning with Cluster Autoscaler to automatically adjust the size of the cluster and create/delete node pools based on the current needs of the cluster's workload. See the guide to using Node Auto-Provisioning for more details. Structure is documented below.
    clusterIpv4Cidr String
    The IP address range of the Kubernetes pods in this cluster in CIDR notation (e.g. 10.96.0.0/14). Leave blank to have one automatically chosen or specify a /14 block in 10.0.0.0/8. This field will default a new cluster to routes-based, where ip_allocation_policy is not defined.
    clusterTelemetry ClusterClusterTelemetry
    Configuration for ClusterTelemetry feature, Structure is documented below.
    confidentialNodes ClusterConfidentialNodes
    Configuration for Confidential Nodes feature. Structure is documented below documented below.
    costManagementConfig ClusterCostManagementConfig
    Configuration for the Cost Allocation feature. Structure is documented below.
    databaseEncryption ClusterDatabaseEncryption
    Structure is documented below.
    datapathProvider String
    The desired datapath provider for this cluster. This is set to LEGACY_DATAPATH by default, which uses the IPTables-based kube-proxy implementation. Set to ADVANCED_DATAPATH to enable Dataplane v2.
    defaultMaxPodsPerNode Integer
    The default maximum number of pods per node in this cluster. This doesn't work on "routes-based" clusters, clusters that don't have IP Aliasing enabled. See the official documentation for more information.
    defaultSnatStatus ClusterDefaultSnatStatus
    GKE SNAT DefaultSnatStatus contains the desired state of whether default sNAT should be disabled on the cluster, API doc. Structure is documented below
    deletionProtection Boolean
    description String
    Description of the cluster.
    dnsConfig ClusterDnsConfig
    Configuration for Using Cloud DNS for GKE. Structure is documented below.
    enableAutopilot Boolean
    Enable Autopilot for this cluster. Defaults to false. Note that when this option is enabled, certain features of Standard GKE are not available. See the official documentation for available features.
    enableCiliumClusterwideNetworkPolicy Boolean
    Whether CiliumClusterWideNetworkPolicy is enabled on this cluster. Defaults to false.
    enableFqdnNetworkPolicy Boolean
    Whether FQDN Network Policy is enabled on this cluster. Users who enable this feature for existing Standard clusters must restart the GKE Dataplane V2 anetd DaemonSet after enabling it. See the Enable FQDN Network Policy in an existing cluster for more information.
    enableIntranodeVisibility Boolean
    Whether Intra-node visibility is enabled for this cluster. This makes same node pod to pod traffic visible for VPC network.
    enableK8sBetaApis ClusterEnableK8sBetaApis
    Configuration for Kubernetes Beta APIs. Structure is documented below.
    enableKubernetesAlpha Boolean
    Whether to enable Kubernetes Alpha features for this cluster. Note that when this option is enabled, the cluster cannot be upgraded and will be automatically deleted after 30 days.
    enableL4IlbSubsetting Boolean
    Whether L4ILB Subsetting is enabled for this cluster.
    enableLegacyAbac Boolean
    Whether the ABAC authorizer is enabled for this cluster. When enabled, identities in the system, including service accounts, nodes, and controllers, will have statically granted permissions beyond those provided by the RBAC configuration or IAM. Defaults to false
    enableMultiNetworking Boolean
    Whether multi-networking is enabled for this cluster.
    enableShieldedNodes Boolean
    Enable Shielded Nodes features on all nodes in this cluster. Defaults to true.
    enableTpu Boolean
    Whether to enable Cloud TPU resources in this cluster. See the official documentation.
    fleet ClusterFleet
    Fleet configuration for the cluster. Structure is documented below.
    gatewayApiConfig ClusterGatewayApiConfig
    Configuration for GKE Gateway API controller. Structure is documented below.
    identityServiceConfig ClusterIdentityServiceConfig
    . Structure is documented below.
    initialNodeCount Integer
    The number of nodes to create in this cluster's default node pool. In regional or multi-zonal clusters, this is the number of nodes per zone. Must be set if node_pool is not set. If you're using gcp.container.NodePool objects with no default node pool, you'll need to set this to a value of at least 1, alongside setting remove_default_node_pool to true.
    ipAllocationPolicy ClusterIpAllocationPolicy
    Configuration of cluster IP allocation for VPC-native clusters. If this block is unset during creation, it will be set by the GKE backend. Structure is documented below.
    location String
    The location (region or zone) in which the cluster master will be created, as well as the default node location. If you specify a zone (such as us-central1-a), the cluster will be a zonal cluster with a single cluster master. If you specify a region (such as us-west1), the cluster will be a regional cluster with multiple masters spread across zones in the region, and with default node locations in those zones as well
    loggingConfig ClusterLoggingConfig
    Logging configuration for the cluster. Structure is documented below.
    loggingService String
    The logging service that the cluster should write logs to. Available options include logging.googleapis.com(Legacy Stackdriver), logging.googleapis.com/kubernetes(Stackdriver Kubernetes Engine Logging), and none. Defaults to logging.googleapis.com/kubernetes
    maintenancePolicy ClusterMaintenancePolicy
    The maintenance policy to use for the cluster. Structure is documented below.
    masterAuth ClusterMasterAuth
    The authentication information for accessing the Kubernetes master. Some values in this block are only returned by the API if your service account has permission to get credentials for your GKE cluster. If you see an unexpected diff unsetting your client cert, ensure you have the container.clusters.getCredentials permission. Structure is documented below.
    masterAuthorizedNetworksConfig ClusterMasterAuthorizedNetworksConfig
    The desired configuration options for master authorized networks. Omit the nested cidr_blocks attribute to disallow external access (except the cluster node IPs, which GKE automatically whitelists). Structure is documented below.
    meshCertificates ClusterMeshCertificates
    Structure is documented below.
    minMasterVersion String

    The minimum version of the master. GKE will auto-update the master to new versions, so this does not guarantee the current master version--use the read-only master_version field to obtain that. If unset, the cluster's version will be set by GKE to the version of the most recent official release (which is not necessarily the latest version). Most users will find the gcp.container.getEngineVersions data source useful - it indicates which versions are available. If you intend to specify versions manually, the docs describe the various acceptable formats for this field.

    If you are using the gcp.container.getEngineVersions datasource with a regional cluster, ensure that you have provided a location to the datasource. A region can have a different set of supported versions than its corresponding zones, and not all zones in a region are guaranteed to support the same version.

    monitoringConfig ClusterMonitoringConfig
    Monitoring configuration for the cluster. Structure is documented below.
    monitoringService String
    The monitoring service that the cluster should write metrics to. Automatically send metrics from pods in the cluster to the Google Cloud Monitoring API. VM metrics will be collected by Google Compute Engine regardless of this setting Available options include monitoring.googleapis.com(Legacy Stackdriver), monitoring.googleapis.com/kubernetes(Stackdriver Kubernetes Engine Monitoring), and none. Defaults to monitoring.googleapis.com/kubernetes
    name String
    The name of the cluster, unique within the project and location.


    network String
    The name or self_link of the Google Compute Engine network to which the cluster is connected. For Shared VPC, set this to the self link of the shared network.
    networkPolicy ClusterNetworkPolicy
    Configuration options for the NetworkPolicy feature. Structure is documented below.
    networkingMode String
    Determines whether alias IPs or routes will be used for pod IPs in the cluster. Options are VPC_NATIVE or ROUTES. VPC_NATIVE enables IP aliasing. Newly created clusters will default to VPC_NATIVE.
    nodeConfig ClusterNodeConfig
    Parameters used in creating the default node pool. Generally, this field should not be used at the same time as a gcp.container.NodePool or a node_pool block; this configuration manages the default node pool, which isn't recommended to be used. Structure is documented below.
    nodeLocations List<String>

    The list of zones in which the cluster's nodes are located. Nodes must be in the region of their regional cluster or in the same region as their cluster's zone for zonal clusters. If this is specified for a zonal cluster, omit the cluster's zone.

    A "multi-zonal" cluster is a zonal cluster with at least one additional zone defined; in a multi-zonal cluster, the cluster master is only present in a single zone while nodes are present in each of the primary zone and the node locations. In contrast, in a regional cluster, cluster master nodes are present in multiple zones in the region. For that reason, regional clusters should be preferred.

    nodePoolAutoConfig ClusterNodePoolAutoConfig
    Node pool configs that apply to auto-provisioned node pools in autopilot clusters and node auto-provisioning-enabled clusters. Structure is documented below.
    nodePoolDefaults ClusterNodePoolDefaults
    Default NodePool settings for the entire cluster. These settings are overridden if specified on the specific NodePool object. Structure is documented below.
    nodePools List<ClusterNodePool>
    List of node pools associated with this cluster. See gcp.container.NodePool for schema. Warning: node pools defined inside a cluster can't be changed (or added/removed) after cluster creation without deleting and recreating the entire cluster. Unless you absolutely need the ability to say "these are the only node pools associated with this cluster", use the gcp.container.NodePool resource instead of this property.
    nodeVersion String
    The Kubernetes version on the nodes. Must either be unset or set to the same value as min_master_version on create. Defaults to the default version set by GKE which is not necessarily the latest version. This only affects nodes in the default node pool. While a fuzzy version can be specified, it's recommended that you specify explicit versions as the provider will see spurious diffs when fuzzy versions are used. See the gcp.container.getEngineVersions data source's version_prefix field to approximate fuzzy versions. To update nodes in other node pools, use the version attribute on the node pool.
    notificationConfig ClusterNotificationConfig
    Configuration for the cluster upgrade notifications feature. Structure is documented below.
    podSecurityPolicyConfig ClusterPodSecurityPolicyConfig
    Configuration for the PodSecurityPolicy feature. Structure is documented below.
    privateClusterConfig ClusterPrivateClusterConfig
    Configuration for private clusters, clusters with private nodes. Structure is documented below.
    privateIpv6GoogleAccess String
    The desired state of IPv6 connectivity to Google Services. By default, no private IPv6 access to or from Google Services (all access will be via IPv4).
    project String
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    protectConfig ClusterProtectConfig
    Enable/Disable Protect API features for the cluster. Structure is documented below.
    releaseChannel ClusterReleaseChannel
    Configuration options for the Release channel feature, which provide more control over automatic upgrades of your GKE clusters. When updating this field, GKE imposes specific version requirements. See Selecting a new release channel for more details; the gcp.container.getEngineVersions datasource can provide the default version for a channel. Note that removing the release_channel field from your config will cause the provider to stop managing your cluster's release channel, but will not unenroll it. Instead, use the "UNSPECIFIED" channel. Structure is documented below.
    removeDefaultNodePool Boolean
    If true, deletes the default node pool upon cluster creation. If you're using gcp.container.NodePool resources with no default node pool, this should be set to true, alongside setting initial_node_count to at least 1.
    resourceLabels Map<String,String>
    The GCE resource labels (a map of key/value pairs) to be applied to the cluster.
    resourceUsageExportConfig ClusterResourceUsageExportConfig
    Configuration for the ResourceUsageExportConfig feature. Structure is documented below.
    secretManagerConfig ClusterSecretManagerConfig
    Configuration for the SecretManagerConfig feature. Structure is documented below.
    securityPostureConfig ClusterSecurityPostureConfig
    Enable/Disable Security Posture API features for the cluster. Structure is documented below.
    serviceExternalIpsConfig ClusterServiceExternalIpsConfig
    Structure is documented below.
    subnetwork String
    The name or self_link of the Google Compute Engine subnetwork in which the cluster's instances are launched.
    tpuConfig ClusterTpuConfig
    TPU configuration for the cluster.
    verticalPodAutoscaling ClusterVerticalPodAutoscaling
    Vertical Pod Autoscaling automatically adjusts the resources of pods controlled by it. Structure is documented below.
    workloadAltsConfig ClusterWorkloadAltsConfig

    Configuration for direct-path (via ALTS) with workload identity.. Structure is documented below.

    The default_snat_status block supports

    workloadIdentityConfig ClusterWorkloadIdentityConfig
    Workload Identity allows Kubernetes service accounts to act as a user-managed Google IAM Service Account. Structure is documented below.
    addonsConfig ClusterAddonsConfig
    The configuration for addons supported by GKE. Structure is documented below.
    allowNetAdmin boolean
    Enable NET_ADMIN for the cluster. Defaults to false. This field should only be enabled for Autopilot clusters (enable_autopilot set to true).
    authenticatorGroupsConfig ClusterAuthenticatorGroupsConfig
    Configuration for the Google Groups for GKE feature. Structure is documented below.
    binaryAuthorization ClusterBinaryAuthorization
    Configuration options for the Binary Authorization feature. Structure is documented below.
    clusterAutoscaling ClusterClusterAutoscaling
    Per-cluster configuration of Node Auto-Provisioning with Cluster Autoscaler to automatically adjust the size of the cluster and create/delete node pools based on the current needs of the cluster's workload. See the guide to using Node Auto-Provisioning for more details. Structure is documented below.
    clusterIpv4Cidr string
    The IP address range of the Kubernetes pods in this cluster in CIDR notation (e.g. 10.96.0.0/14). Leave blank to have one automatically chosen or specify a /14 block in 10.0.0.0/8. This field will default a new cluster to routes-based, where ip_allocation_policy is not defined.
    clusterTelemetry ClusterClusterTelemetry
    Configuration for ClusterTelemetry feature, Structure is documented below.
    confidentialNodes ClusterConfidentialNodes
    Configuration for Confidential Nodes feature. Structure is documented below documented below.
    costManagementConfig ClusterCostManagementConfig
    Configuration for the Cost Allocation feature. Structure is documented below.
    databaseEncryption ClusterDatabaseEncryption
    Structure is documented below.
    datapathProvider string
    The desired datapath provider for this cluster. This is set to LEGACY_DATAPATH by default, which uses the IPTables-based kube-proxy implementation. Set to ADVANCED_DATAPATH to enable Dataplane v2.
    defaultMaxPodsPerNode number
    The default maximum number of pods per node in this cluster. This doesn't work on "routes-based" clusters, clusters that don't have IP Aliasing enabled. See the official documentation for more information.
    defaultSnatStatus ClusterDefaultSnatStatus
    GKE SNAT DefaultSnatStatus contains the desired state of whether default sNAT should be disabled on the cluster, API doc. Structure is documented below
    deletionProtection boolean
    description string
    Description of the cluster.
    dnsConfig ClusterDnsConfig
    Configuration for Using Cloud DNS for GKE. Structure is documented below.
    enableAutopilot boolean
    Enable Autopilot for this cluster. Defaults to false. Note that when this option is enabled, certain features of Standard GKE are not available. See the official documentation for available features.
    enableCiliumClusterwideNetworkPolicy boolean
    Whether CiliumClusterWideNetworkPolicy is enabled on this cluster. Defaults to false.
    enableFqdnNetworkPolicy boolean
    Whether FQDN Network Policy is enabled on this cluster. Users who enable this feature for existing Standard clusters must restart the GKE Dataplane V2 anetd DaemonSet after enabling it. See the Enable FQDN Network Policy in an existing cluster for more information.
    enableIntranodeVisibility boolean
    Whether Intra-node visibility is enabled for this cluster. This makes same node pod to pod traffic visible for VPC network.
    enableK8sBetaApis ClusterEnableK8sBetaApis
    Configuration for Kubernetes Beta APIs. Structure is documented below.
    enableKubernetesAlpha boolean
    Whether to enable Kubernetes Alpha features for this cluster. Note that when this option is enabled, the cluster cannot be upgraded and will be automatically deleted after 30 days.
    enableL4IlbSubsetting boolean
    Whether L4ILB Subsetting is enabled for this cluster.
    enableLegacyAbac boolean
    Whether the ABAC authorizer is enabled for this cluster. When enabled, identities in the system, including service accounts, nodes, and controllers, will have statically granted permissions beyond those provided by the RBAC configuration or IAM. Defaults to false
    enableMultiNetworking boolean
    Whether multi-networking is enabled for this cluster.
    enableShieldedNodes boolean
    Enable Shielded Nodes features on all nodes in this cluster. Defaults to true.
    enableTpu boolean
    Whether to enable Cloud TPU resources in this cluster. See the official documentation.
    fleet ClusterFleet
    Fleet configuration for the cluster. Structure is documented below.
    gatewayApiConfig ClusterGatewayApiConfig
    Configuration for GKE Gateway API controller. Structure is documented below.
    identityServiceConfig ClusterIdentityServiceConfig
    . Structure is documented below.
    initialNodeCount number
    The number of nodes to create in this cluster's default node pool. In regional or multi-zonal clusters, this is the number of nodes per zone. Must be set if node_pool is not set. If you're using gcp.container.NodePool objects with no default node pool, you'll need to set this to a value of at least 1, alongside setting remove_default_node_pool to true.
    ipAllocationPolicy ClusterIpAllocationPolicy
    Configuration of cluster IP allocation for VPC-native clusters. If this block is unset during creation, it will be set by the GKE backend. Structure is documented below.
    location string
    The location (region or zone) in which the cluster master will be created, as well as the default node location. If you specify a zone (such as us-central1-a), the cluster will be a zonal cluster with a single cluster master. If you specify a region (such as us-west1), the cluster will be a regional cluster with multiple masters spread across zones in the region, and with default node locations in those zones as well
    loggingConfig ClusterLoggingConfig
    Logging configuration for the cluster. Structure is documented below.
    loggingService string
    The logging service that the cluster should write logs to. Available options include logging.googleapis.com(Legacy Stackdriver), logging.googleapis.com/kubernetes(Stackdriver Kubernetes Engine Logging), and none. Defaults to logging.googleapis.com/kubernetes
    maintenancePolicy ClusterMaintenancePolicy
    The maintenance policy to use for the cluster. Structure is documented below.
    masterAuth ClusterMasterAuth
    The authentication information for accessing the Kubernetes master. Some values in this block are only returned by the API if your service account has permission to get credentials for your GKE cluster. If you see an unexpected diff unsetting your client cert, ensure you have the container.clusters.getCredentials permission. Structure is documented below.
    masterAuthorizedNetworksConfig ClusterMasterAuthorizedNetworksConfig
    The desired configuration options for master authorized networks. Omit the nested cidr_blocks attribute to disallow external access (except the cluster node IPs, which GKE automatically whitelists). Structure is documented below.
    meshCertificates ClusterMeshCertificates
    Structure is documented below.
    minMasterVersion string

    The minimum version of the master. GKE will auto-update the master to new versions, so this does not guarantee the current master version--use the read-only master_version field to obtain that. If unset, the cluster's version will be set by GKE to the version of the most recent official release (which is not necessarily the latest version). Most users will find the gcp.container.getEngineVersions data source useful - it indicates which versions are available. If you intend to specify versions manually, the docs describe the various acceptable formats for this field.

    If you are using the gcp.container.getEngineVersions datasource with a regional cluster, ensure that you have provided a location to the datasource. A region can have a different set of supported versions than its corresponding zones, and not all zones in a region are guaranteed to support the same version.

    monitoringConfig ClusterMonitoringConfig
    Monitoring configuration for the cluster. Structure is documented below.
    monitoringService string
    The monitoring service that the cluster should write metrics to. Automatically send metrics from pods in the cluster to the Google Cloud Monitoring API. VM metrics will be collected by Google Compute Engine regardless of this setting Available options include monitoring.googleapis.com(Legacy Stackdriver), monitoring.googleapis.com/kubernetes(Stackdriver Kubernetes Engine Monitoring), and none. Defaults to monitoring.googleapis.com/kubernetes
    name string
    The name of the cluster, unique within the project and location.


    network string
    The name or self_link of the Google Compute Engine network to which the cluster is connected. For Shared VPC, set this to the self link of the shared network.
    networkPolicy ClusterNetworkPolicy
    Configuration options for the NetworkPolicy feature. Structure is documented below.
    networkingMode string
    Determines whether alias IPs or routes will be used for pod IPs in the cluster. Options are VPC_NATIVE or ROUTES. VPC_NATIVE enables IP aliasing. Newly created clusters will default to VPC_NATIVE.
    nodeConfig ClusterNodeConfig
    Parameters used in creating the default node pool. Generally, this field should not be used at the same time as a gcp.container.NodePool or a node_pool block; this configuration manages the default node pool, which isn't recommended to be used. Structure is documented below.
    nodeLocations string[]

    The list of zones in which the cluster's nodes are located. Nodes must be in the region of their regional cluster or in the same region as their cluster's zone for zonal clusters. If this is specified for a zonal cluster, omit the cluster's zone.

    A "multi-zonal" cluster is a zonal cluster with at least one additional zone defined; in a multi-zonal cluster, the cluster master is only present in a single zone while nodes are present in each of the primary zone and the node locations. In contrast, in a regional cluster, cluster master nodes are present in multiple zones in the region. For that reason, regional clusters should be preferred.

    nodePoolAutoConfig ClusterNodePoolAutoConfig
    Node pool configs that apply to auto-provisioned node pools in autopilot clusters and node auto-provisioning-enabled clusters. Structure is documented below.
    nodePoolDefaults ClusterNodePoolDefaults
    Default NodePool settings for the entire cluster. These settings are overridden if specified on the specific NodePool object. Structure is documented below.
    nodePools ClusterNodePool[]
    List of node pools associated with this cluster. See gcp.container.NodePool for schema. Warning: node pools defined inside a cluster can't be changed (or added/removed) after cluster creation without deleting and recreating the entire cluster. Unless you absolutely need the ability to say "these are the only node pools associated with this cluster", use the gcp.container.NodePool resource instead of this property.
    nodeVersion string
    The Kubernetes version on the nodes. Must either be unset or set to the same value as min_master_version on create. Defaults to the default version set by GKE which is not necessarily the latest version. This only affects nodes in the default node pool. While a fuzzy version can be specified, it's recommended that you specify explicit versions as the provider will see spurious diffs when fuzzy versions are used. See the gcp.container.getEngineVersions data source's version_prefix field to approximate fuzzy versions. To update nodes in other node pools, use the version attribute on the node pool.
    notificationConfig ClusterNotificationConfig
    Configuration for the cluster upgrade notifications feature. Structure is documented below.
    podSecurityPolicyConfig ClusterPodSecurityPolicyConfig
    Configuration for the PodSecurityPolicy feature. Structure is documented below.
    privateClusterConfig ClusterPrivateClusterConfig
    Configuration for private clusters, clusters with private nodes. Structure is documented below.
    privateIpv6GoogleAccess string
    The desired state of IPv6 connectivity to Google Services. By default, no private IPv6 access to or from Google Services (all access will be via IPv4).
    project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    protectConfig ClusterProtectConfig
    Enable/Disable Protect API features for the cluster. Structure is documented below.
    releaseChannel ClusterReleaseChannel
    Configuration options for the Release channel feature, which provide more control over automatic upgrades of your GKE clusters. When updating this field, GKE imposes specific version requirements. See Selecting a new release channel for more details; the gcp.container.getEngineVersions datasource can provide the default version for a channel. Note that removing the release_channel field from your config will cause the provider to stop managing your cluster's release channel, but will not unenroll it. Instead, use the "UNSPECIFIED" channel. Structure is documented below.
    removeDefaultNodePool boolean
    If true, deletes the default node pool upon cluster creation. If you're using gcp.container.NodePool resources with no default node pool, this should be set to true, alongside setting initial_node_count to at least 1.
    resourceLabels {[key: string]: string}
    The GCE resource labels (a map of key/value pairs) to be applied to the cluster.
    resourceUsageExportConfig ClusterResourceUsageExportConfig
    Configuration for the ResourceUsageExportConfig feature. Structure is documented below.
    secretManagerConfig ClusterSecretManagerConfig
    Configuration for the SecretManagerConfig feature. Structure is documented below.
    securityPostureConfig ClusterSecurityPostureConfig
    Enable/Disable Security Posture API features for the cluster. Structure is documented below.
    serviceExternalIpsConfig ClusterServiceExternalIpsConfig
    Structure is documented below.
    subnetwork string
    The name or self_link of the Google Compute Engine subnetwork in which the cluster's instances are launched.
    tpuConfig ClusterTpuConfig
    TPU configuration for the cluster.
    verticalPodAutoscaling ClusterVerticalPodAutoscaling
    Vertical Pod Autoscaling automatically adjusts the resources of pods controlled by it. Structure is documented below.
    workloadAltsConfig ClusterWorkloadAltsConfig

    Configuration for direct-path (via ALTS) with workload identity.. Structure is documented below.

    The default_snat_status block supports

    workloadIdentityConfig ClusterWorkloadIdentityConfig
    Workload Identity allows Kubernetes service accounts to act as a user-managed Google IAM Service Account. Structure is documented below.
    addons_config ClusterAddonsConfigArgs
    The configuration for addons supported by GKE. Structure is documented below.
    allow_net_admin bool
    Enable NET_ADMIN for the cluster. Defaults to false. This field should only be enabled for Autopilot clusters (enable_autopilot set to true).
    authenticator_groups_config ClusterAuthenticatorGroupsConfigArgs
    Configuration for the Google Groups for GKE feature. Structure is documented below.
    binary_authorization ClusterBinaryAuthorizationArgs
    Configuration options for the Binary Authorization feature. Structure is documented below.
    cluster_autoscaling ClusterClusterAutoscalingArgs
    Per-cluster configuration of Node Auto-Provisioning with Cluster Autoscaler to automatically adjust the size of the cluster and create/delete node pools based on the current needs of the cluster's workload. See the guide to using Node Auto-Provisioning for more details. Structure is documented below.
    cluster_ipv4_cidr str
    The IP address range of the Kubernetes pods in this cluster in CIDR notation (e.g. 10.96.0.0/14). Leave blank to have one automatically chosen or specify a /14 block in 10.0.0.0/8. This field will default a new cluster to routes-based, where ip_allocation_policy is not defined.
    cluster_telemetry ClusterClusterTelemetryArgs
    Configuration for ClusterTelemetry feature, Structure is documented below.
    confidential_nodes ClusterConfidentialNodesArgs
    Configuration for Confidential Nodes feature. Structure is documented below documented below.
    cost_management_config ClusterCostManagementConfigArgs
    Configuration for the Cost Allocation feature. Structure is documented below.
    database_encryption ClusterDatabaseEncryptionArgs
    Structure is documented below.
    datapath_provider str
    The desired datapath provider for this cluster. This is set to LEGACY_DATAPATH by default, which uses the IPTables-based kube-proxy implementation. Set to ADVANCED_DATAPATH to enable Dataplane v2.
    default_max_pods_per_node int
    The default maximum number of pods per node in this cluster. This doesn't work on "routes-based" clusters, clusters that don't have IP Aliasing enabled. See the official documentation for more information.
    default_snat_status ClusterDefaultSnatStatusArgs
    GKE SNAT DefaultSnatStatus contains the desired state of whether default sNAT should be disabled on the cluster, API doc. Structure is documented below
    deletion_protection bool
    description str
    Description of the cluster.
    dns_config ClusterDnsConfigArgs
    Configuration for Using Cloud DNS for GKE. Structure is documented below.
    enable_autopilot bool
    Enable Autopilot for this cluster. Defaults to false. Note that when this option is enabled, certain features of Standard GKE are not available. See the official documentation for available features.
    enable_cilium_clusterwide_network_policy bool
    Whether CiliumClusterWideNetworkPolicy is enabled on this cluster. Defaults to false.
    enable_fqdn_network_policy bool
    Whether FQDN Network Policy is enabled on this cluster. Users who enable this feature for existing Standard clusters must restart the GKE Dataplane V2 anetd DaemonSet after enabling it. See the Enable FQDN Network Policy in an existing cluster for more information.
    enable_intranode_visibility bool
    Whether Intra-node visibility is enabled for this cluster. This makes same node pod to pod traffic visible for VPC network.
    enable_k8s_beta_apis ClusterEnableK8sBetaApisArgs
    Configuration for Kubernetes Beta APIs. Structure is documented below.
    enable_kubernetes_alpha bool
    Whether to enable Kubernetes Alpha features for this cluster. Note that when this option is enabled, the cluster cannot be upgraded and will be automatically deleted after 30 days.
    enable_l4_ilb_subsetting bool
    Whether L4ILB Subsetting is enabled for this cluster.
    enable_legacy_abac bool
    Whether the ABAC authorizer is enabled for this cluster. When enabled, identities in the system, including service accounts, nodes, and controllers, will have statically granted permissions beyond those provided by the RBAC configuration or IAM. Defaults to false
    enable_multi_networking bool
    Whether multi-networking is enabled for this cluster.
    enable_shielded_nodes bool
    Enable Shielded Nodes features on all nodes in this cluster. Defaults to true.
    enable_tpu bool
    Whether to enable Cloud TPU resources in this cluster. See the official documentation.
    fleet ClusterFleetArgs
    Fleet configuration for the cluster. Structure is documented below.
    gateway_api_config ClusterGatewayApiConfigArgs
    Configuration for GKE Gateway API controller. Structure is documented below.
    identity_service_config ClusterIdentityServiceConfigArgs
    . Structure is documented below.
    initial_node_count int
    The number of nodes to create in this cluster's default node pool. In regional or multi-zonal clusters, this is the number of nodes per zone. Must be set if node_pool is not set. If you're using gcp.container.NodePool objects with no default node pool, you'll need to set this to a value of at least 1, alongside setting remove_default_node_pool to true.
    ip_allocation_policy ClusterIpAllocationPolicyArgs
    Configuration of cluster IP allocation for VPC-native clusters. If this block is unset during creation, it will be set by the GKE backend. Structure is documented below.
    location str
    The location (region or zone) in which the cluster master will be created, as well as the default node location. If you specify a zone (such as us-central1-a), the cluster will be a zonal cluster with a single cluster master. If you specify a region (such as us-west1), the cluster will be a regional cluster with multiple masters spread across zones in the region, and with default node locations in those zones as well
    logging_config ClusterLoggingConfigArgs
    Logging configuration for the cluster. Structure is documented below.
    logging_service str
    The logging service that the cluster should write logs to. Available options include logging.googleapis.com(Legacy Stackdriver), logging.googleapis.com/kubernetes(Stackdriver Kubernetes Engine Logging), and none. Defaults to logging.googleapis.com/kubernetes
    maintenance_policy ClusterMaintenancePolicyArgs
    The maintenance policy to use for the cluster. Structure is documented below.
    master_auth ClusterMasterAuthArgs
    The authentication information for accessing the Kubernetes master. Some values in this block are only returned by the API if your service account has permission to get credentials for your GKE cluster. If you see an unexpected diff unsetting your client cert, ensure you have the container.clusters.getCredentials permission. Structure is documented below.
    master_authorized_networks_config ClusterMasterAuthorizedNetworksConfigArgs
    The desired configuration options for master authorized networks. Omit the nested cidr_blocks attribute to disallow external access (except the cluster node IPs, which GKE automatically whitelists). Structure is documented below.
    mesh_certificates ClusterMeshCertificatesArgs
    Structure is documented below.
    min_master_version str

    The minimum version of the master. GKE will auto-update the master to new versions, so this does not guarantee the current master version--use the read-only master_version field to obtain that. If unset, the cluster's version will be set by GKE to the version of the most recent official release (which is not necessarily the latest version). Most users will find the gcp.container.getEngineVersions data source useful - it indicates which versions are available. If you intend to specify versions manually, the docs describe the various acceptable formats for this field.

    If you are using the gcp.container.getEngineVersions datasource with a regional cluster, ensure that you have provided a location to the datasource. A region can have a different set of supported versions than its corresponding zones, and not all zones in a region are guaranteed to support the same version.

    monitoring_config ClusterMonitoringConfigArgs
    Monitoring configuration for the cluster. Structure is documented below.
    monitoring_service str
    The monitoring service that the cluster should write metrics to. Automatically send metrics from pods in the cluster to the Google Cloud Monitoring API. VM metrics will be collected by Google Compute Engine regardless of this setting Available options include monitoring.googleapis.com(Legacy Stackdriver), monitoring.googleapis.com/kubernetes(Stackdriver Kubernetes Engine Monitoring), and none. Defaults to monitoring.googleapis.com/kubernetes
    name str
    The name of the cluster, unique within the project and location.


    network str
    The name or self_link of the Google Compute Engine network to which the cluster is connected. For Shared VPC, set this to the self link of the shared network.
    network_policy ClusterNetworkPolicyArgs
    Configuration options for the NetworkPolicy feature. Structure is documented below.
    networking_mode str
    Determines whether alias IPs or routes will be used for pod IPs in the cluster. Options are VPC_NATIVE or ROUTES. VPC_NATIVE enables IP aliasing. Newly created clusters will default to VPC_NATIVE.
    node_config ClusterNodeConfigArgs
    Parameters used in creating the default node pool. Generally, this field should not be used at the same time as a gcp.container.NodePool or a node_pool block; this configuration manages the default node pool, which isn't recommended to be used. Structure is documented below.
    node_locations Sequence[str]

    The list of zones in which the cluster's nodes are located. Nodes must be in the region of their regional cluster or in the same region as their cluster's zone for zonal clusters. If this is specified for a zonal cluster, omit the cluster's zone.

    A "multi-zonal" cluster is a zonal cluster with at least one additional zone defined; in a multi-zonal cluster, the cluster master is only present in a single zone while nodes are present in each of the primary zone and the node locations. In contrast, in a regional cluster, cluster master nodes are present in multiple zones in the region. For that reason, regional clusters should be preferred.

    node_pool_auto_config ClusterNodePoolAutoConfigArgs
    Node pool configs that apply to auto-provisioned node pools in autopilot clusters and node auto-provisioning-enabled clusters. Structure is documented below.
    node_pool_defaults ClusterNodePoolDefaultsArgs
    Default NodePool settings for the entire cluster. These settings are overridden if specified on the specific NodePool object. Structure is documented below.
    node_pools Sequence[ClusterNodePoolArgs]
    List of node pools associated with this cluster. See gcp.container.NodePool for schema. Warning: node pools defined inside a cluster can't be changed (or added/removed) after cluster creation without deleting and recreating the entire cluster. Unless you absolutely need the ability to say "these are the only node pools associated with this cluster", use the gcp.container.NodePool resource instead of this property.
    node_version str
    The Kubernetes version on the nodes. Must either be unset or set to the same value as min_master_version on create. Defaults to the default version set by GKE which is not necessarily the latest version. This only affects nodes in the default node pool. While a fuzzy version can be specified, it's recommended that you specify explicit versions as the provider will see spurious diffs when fuzzy versions are used. See the gcp.container.getEngineVersions data source's version_prefix field to approximate fuzzy versions. To update nodes in other node pools, use the version attribute on the node pool.
    notification_config ClusterNotificationConfigArgs
    Configuration for the cluster upgrade notifications feature. Structure is documented below.
    pod_security_policy_config ClusterPodSecurityPolicyConfigArgs
    Configuration for the PodSecurityPolicy feature. Structure is documented below.
    private_cluster_config ClusterPrivateClusterConfigArgs
    Configuration for private clusters, clusters with private nodes. Structure is documented below.
    private_ipv6_google_access str
    The desired state of IPv6 connectivity to Google Services. By default, no private IPv6 access to or from Google Services (all access will be via IPv4).
    project str
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    protect_config ClusterProtectConfigArgs
    Enable/Disable Protect API features for the cluster. Structure is documented below.
    release_channel ClusterReleaseChannelArgs
    Configuration options for the Release channel feature, which provide more control over automatic upgrades of your GKE clusters. When updating this field, GKE imposes specific version requirements. See Selecting a new release channel for more details; the gcp.container.getEngineVersions datasource can provide the default version for a channel. Note that removing the release_channel field from your config will cause the provider to stop managing your cluster's release channel, but will not unenroll it. Instead, use the "UNSPECIFIED" channel. Structure is documented below.
    remove_default_node_pool bool
    If true, deletes the default node pool upon cluster creation. If you're using gcp.container.NodePool resources with no default node pool, this should be set to true, alongside setting initial_node_count to at least 1.
    resource_labels Mapping[str, str]
    The GCE resource labels (a map of key/value pairs) to be applied to the cluster.
    resource_usage_export_config ClusterResourceUsageExportConfigArgs
    Configuration for the ResourceUsageExportConfig feature. Structure is documented below.
    secret_manager_config ClusterSecretManagerConfigArgs
    Configuration for the SecretManagerConfig feature. Structure is documented below.
    security_posture_config ClusterSecurityPostureConfigArgs
    Enable/Disable Security Posture API features for the cluster. Structure is documented below.
    service_external_ips_config ClusterServiceExternalIpsConfigArgs
    Structure is documented below.
    subnetwork str
    The name or self_link of the Google Compute Engine subnetwork in which the cluster's instances are launched.
    tpu_config ClusterTpuConfigArgs
    TPU configuration for the cluster.
    vertical_pod_autoscaling ClusterVerticalPodAutoscalingArgs
    Vertical Pod Autoscaling automatically adjusts the resources of pods controlled by it. Structure is documented below.
    workload_alts_config ClusterWorkloadAltsConfigArgs

    Configuration for direct-path (via ALTS) with workload identity.. Structure is documented below.

    The default_snat_status block supports

    workload_identity_config ClusterWorkloadIdentityConfigArgs
    Workload Identity allows Kubernetes service accounts to act as a user-managed Google IAM Service Account. Structure is documented below.
    addonsConfig Property Map
    The configuration for addons supported by GKE. Structure is documented below.
    allowNetAdmin Boolean
    Enable NET_ADMIN for the cluster. Defaults to false. This field should only be enabled for Autopilot clusters (enable_autopilot set to true).
    authenticatorGroupsConfig Property Map
    Configuration for the Google Groups for GKE feature. Structure is documented below.
    binaryAuthorization Property Map
    Configuration options for the Binary Authorization feature. Structure is documented below.