1. Packages
  2. Google Cloud (GCP) Classic
  3. API Docs
  4. gkeonprem
  5. BareMetalCluster
Google Cloud Classic v7.27.0 published on Thursday, Jun 13, 2024 by Pulumi

gcp.gkeonprem.BareMetalCluster

Explore with Pulumi AI

gcp logo
Google Cloud Classic v7.27.0 published on Thursday, Jun 13, 2024 by Pulumi

    A Google Bare Metal User Cluster.

    Example Usage

    Gkeonprem Bare Metal Cluster Basic

    import * as pulumi from "@pulumi/pulumi";
    import * as gcp from "@pulumi/gcp";
    
    const cluster_basic = new gcp.gkeonprem.BareMetalCluster("cluster-basic", {
        name: "my-cluster",
        location: "us-west1",
        adminClusterMembership: "projects/870316890899/locations/global/memberships/gkeonprem-terraform-test",
        bareMetalVersion: "1.12.3",
        networkConfig: {
            islandModeCidr: {
                serviceAddressCidrBlocks: ["172.26.0.0/16"],
                podAddressCidrBlocks: ["10.240.0.0/13"],
            },
        },
        controlPlane: {
            controlPlaneNodePoolConfig: {
                nodePoolConfig: {
                    labels: {},
                    operatingSystem: "LINUX",
                    nodeConfigs: [{
                        labels: {},
                        nodeIp: "10.200.0.9",
                    }],
                },
            },
        },
        loadBalancer: {
            portConfig: {
                controlPlaneLoadBalancerPort: 443,
            },
            vipConfig: {
                controlPlaneVip: "10.200.0.13",
                ingressVip: "10.200.0.14",
            },
            metalLbConfig: {
                addressPools: [{
                    pool: "pool1",
                    addresses: [
                        "10.200.0.14/32",
                        "10.200.0.15/32",
                        "10.200.0.16/32",
                        "10.200.0.17/32",
                        "10.200.0.18/32",
                        "fd00:1::f/128",
                        "fd00:1::10/128",
                        "fd00:1::11/128",
                        "fd00:1::12/128",
                    ],
                    avoidBuggyIps: true,
                    manualAssign: true,
                }],
            },
        },
        storage: {
            lvpShareConfig: {
                lvpConfig: {
                    path: "/mnt/localpv-share",
                    storageClass: "local-shared",
                },
                sharedPathPvCount: 5,
            },
            lvpNodeMountsConfig: {
                path: "/mnt/localpv-disk",
                storageClass: "local-disks",
            },
        },
        securityConfig: {
            authorization: {
                adminUsers: [{
                    username: "admin@hashicorptest.com",
                }],
            },
        },
    });
    
    import pulumi
    import pulumi_gcp as gcp
    
    cluster_basic = gcp.gkeonprem.BareMetalCluster("cluster-basic",
        name="my-cluster",
        location="us-west1",
        admin_cluster_membership="projects/870316890899/locations/global/memberships/gkeonprem-terraform-test",
        bare_metal_version="1.12.3",
        network_config=gcp.gkeonprem.BareMetalClusterNetworkConfigArgs(
            island_mode_cidr=gcp.gkeonprem.BareMetalClusterNetworkConfigIslandModeCidrArgs(
                service_address_cidr_blocks=["172.26.0.0/16"],
                pod_address_cidr_blocks=["10.240.0.0/13"],
            ),
        ),
        control_plane=gcp.gkeonprem.BareMetalClusterControlPlaneArgs(
            control_plane_node_pool_config=gcp.gkeonprem.BareMetalClusterControlPlaneControlPlaneNodePoolConfigArgs(
                node_pool_config=gcp.gkeonprem.BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigArgs(
                    labels={},
                    operating_system="LINUX",
                    node_configs=[gcp.gkeonprem.BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfigArgs(
                        labels={},
                        node_ip="10.200.0.9",
                    )],
                ),
            ),
        ),
        load_balancer=gcp.gkeonprem.BareMetalClusterLoadBalancerArgs(
            port_config=gcp.gkeonprem.BareMetalClusterLoadBalancerPortConfigArgs(
                control_plane_load_balancer_port=443,
            ),
            vip_config=gcp.gkeonprem.BareMetalClusterLoadBalancerVipConfigArgs(
                control_plane_vip="10.200.0.13",
                ingress_vip="10.200.0.14",
            ),
            metal_lb_config=gcp.gkeonprem.BareMetalClusterLoadBalancerMetalLbConfigArgs(
                address_pools=[gcp.gkeonprem.BareMetalClusterLoadBalancerMetalLbConfigAddressPoolArgs(
                    pool="pool1",
                    addresses=[
                        "10.200.0.14/32",
                        "10.200.0.15/32",
                        "10.200.0.16/32",
                        "10.200.0.17/32",
                        "10.200.0.18/32",
                        "fd00:1::f/128",
                        "fd00:1::10/128",
                        "fd00:1::11/128",
                        "fd00:1::12/128",
                    ],
                    avoid_buggy_ips=True,
                    manual_assign=True,
                )],
            ),
        ),
        storage=gcp.gkeonprem.BareMetalClusterStorageArgs(
            lvp_share_config=gcp.gkeonprem.BareMetalClusterStorageLvpShareConfigArgs(
                lvp_config=gcp.gkeonprem.BareMetalClusterStorageLvpShareConfigLvpConfigArgs(
                    path="/mnt/localpv-share",
                    storage_class="local-shared",
                ),
                shared_path_pv_count=5,
            ),
            lvp_node_mounts_config=gcp.gkeonprem.BareMetalClusterStorageLvpNodeMountsConfigArgs(
                path="/mnt/localpv-disk",
                storage_class="local-disks",
            ),
        ),
        security_config=gcp.gkeonprem.BareMetalClusterSecurityConfigArgs(
            authorization=gcp.gkeonprem.BareMetalClusterSecurityConfigAuthorizationArgs(
                admin_users=[gcp.gkeonprem.BareMetalClusterSecurityConfigAuthorizationAdminUserArgs(
                    username="admin@hashicorptest.com",
                )],
            ),
        ))
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/gkeonprem"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := gkeonprem.NewBareMetalCluster(ctx, "cluster-basic", &gkeonprem.BareMetalClusterArgs{
    			Name:                   pulumi.String("my-cluster"),
    			Location:               pulumi.String("us-west1"),
    			AdminClusterMembership: pulumi.String("projects/870316890899/locations/global/memberships/gkeonprem-terraform-test"),
    			BareMetalVersion:       pulumi.String("1.12.3"),
    			NetworkConfig: &gkeonprem.BareMetalClusterNetworkConfigArgs{
    				IslandModeCidr: &gkeonprem.BareMetalClusterNetworkConfigIslandModeCidrArgs{
    					ServiceAddressCidrBlocks: pulumi.StringArray{
    						pulumi.String("172.26.0.0/16"),
    					},
    					PodAddressCidrBlocks: pulumi.StringArray{
    						pulumi.String("10.240.0.0/13"),
    					},
    				},
    			},
    			ControlPlane: &gkeonprem.BareMetalClusterControlPlaneArgs{
    				ControlPlaneNodePoolConfig: &gkeonprem.BareMetalClusterControlPlaneControlPlaneNodePoolConfigArgs{
    					NodePoolConfig: &gkeonprem.BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigArgs{
    						Labels:          nil,
    						OperatingSystem: pulumi.String("LINUX"),
    						NodeConfigs: gkeonprem.BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfigArray{
    							&gkeonprem.BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfigArgs{
    								Labels: nil,
    								NodeIp: pulumi.String("10.200.0.9"),
    							},
    						},
    					},
    				},
    			},
    			LoadBalancer: &gkeonprem.BareMetalClusterLoadBalancerArgs{
    				PortConfig: &gkeonprem.BareMetalClusterLoadBalancerPortConfigArgs{
    					ControlPlaneLoadBalancerPort: pulumi.Int(443),
    				},
    				VipConfig: &gkeonprem.BareMetalClusterLoadBalancerVipConfigArgs{
    					ControlPlaneVip: pulumi.String("10.200.0.13"),
    					IngressVip:      pulumi.String("10.200.0.14"),
    				},
    				MetalLbConfig: &gkeonprem.BareMetalClusterLoadBalancerMetalLbConfigArgs{
    					AddressPools: gkeonprem.BareMetalClusterLoadBalancerMetalLbConfigAddressPoolArray{
    						&gkeonprem.BareMetalClusterLoadBalancerMetalLbConfigAddressPoolArgs{
    							Pool: pulumi.String("pool1"),
    							Addresses: pulumi.StringArray{
    								pulumi.String("10.200.0.14/32"),
    								pulumi.String("10.200.0.15/32"),
    								pulumi.String("10.200.0.16/32"),
    								pulumi.String("10.200.0.17/32"),
    								pulumi.String("10.200.0.18/32"),
    								pulumi.String("fd00:1::f/128"),
    								pulumi.String("fd00:1::10/128"),
    								pulumi.String("fd00:1::11/128"),
    								pulumi.String("fd00:1::12/128"),
    							},
    							AvoidBuggyIps: pulumi.Bool(true),
    							ManualAssign:  pulumi.Bool(true),
    						},
    					},
    				},
    			},
    			Storage: &gkeonprem.BareMetalClusterStorageArgs{
    				LvpShareConfig: &gkeonprem.BareMetalClusterStorageLvpShareConfigArgs{
    					LvpConfig: &gkeonprem.BareMetalClusterStorageLvpShareConfigLvpConfigArgs{
    						Path:         pulumi.String("/mnt/localpv-share"),
    						StorageClass: pulumi.String("local-shared"),
    					},
    					SharedPathPvCount: pulumi.Int(5),
    				},
    				LvpNodeMountsConfig: &gkeonprem.BareMetalClusterStorageLvpNodeMountsConfigArgs{
    					Path:         pulumi.String("/mnt/localpv-disk"),
    					StorageClass: pulumi.String("local-disks"),
    				},
    			},
    			SecurityConfig: &gkeonprem.BareMetalClusterSecurityConfigArgs{
    				Authorization: &gkeonprem.BareMetalClusterSecurityConfigAuthorizationArgs{
    					AdminUsers: gkeonprem.BareMetalClusterSecurityConfigAuthorizationAdminUserArray{
    						&gkeonprem.BareMetalClusterSecurityConfigAuthorizationAdminUserArgs{
    							Username: pulumi.String("admin@hashicorptest.com"),
    						},
    					},
    				},
    			},
    		})
    		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 cluster_basic = new Gcp.GkeOnPrem.BareMetalCluster("cluster-basic", new()
        {
            Name = "my-cluster",
            Location = "us-west1",
            AdminClusterMembership = "projects/870316890899/locations/global/memberships/gkeonprem-terraform-test",
            BareMetalVersion = "1.12.3",
            NetworkConfig = new Gcp.GkeOnPrem.Inputs.BareMetalClusterNetworkConfigArgs
            {
                IslandModeCidr = new Gcp.GkeOnPrem.Inputs.BareMetalClusterNetworkConfigIslandModeCidrArgs
                {
                    ServiceAddressCidrBlocks = new[]
                    {
                        "172.26.0.0/16",
                    },
                    PodAddressCidrBlocks = new[]
                    {
                        "10.240.0.0/13",
                    },
                },
            },
            ControlPlane = new Gcp.GkeOnPrem.Inputs.BareMetalClusterControlPlaneArgs
            {
                ControlPlaneNodePoolConfig = new Gcp.GkeOnPrem.Inputs.BareMetalClusterControlPlaneControlPlaneNodePoolConfigArgs
                {
                    NodePoolConfig = new Gcp.GkeOnPrem.Inputs.BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigArgs
                    {
                        Labels = null,
                        OperatingSystem = "LINUX",
                        NodeConfigs = new[]
                        {
                            new Gcp.GkeOnPrem.Inputs.BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfigArgs
                            {
                                Labels = null,
                                NodeIp = "10.200.0.9",
                            },
                        },
                    },
                },
            },
            LoadBalancer = new Gcp.GkeOnPrem.Inputs.BareMetalClusterLoadBalancerArgs
            {
                PortConfig = new Gcp.GkeOnPrem.Inputs.BareMetalClusterLoadBalancerPortConfigArgs
                {
                    ControlPlaneLoadBalancerPort = 443,
                },
                VipConfig = new Gcp.GkeOnPrem.Inputs.BareMetalClusterLoadBalancerVipConfigArgs
                {
                    ControlPlaneVip = "10.200.0.13",
                    IngressVip = "10.200.0.14",
                },
                MetalLbConfig = new Gcp.GkeOnPrem.Inputs.BareMetalClusterLoadBalancerMetalLbConfigArgs
                {
                    AddressPools = new[]
                    {
                        new Gcp.GkeOnPrem.Inputs.BareMetalClusterLoadBalancerMetalLbConfigAddressPoolArgs
                        {
                            Pool = "pool1",
                            Addresses = new[]
                            {
                                "10.200.0.14/32",
                                "10.200.0.15/32",
                                "10.200.0.16/32",
                                "10.200.0.17/32",
                                "10.200.0.18/32",
                                "fd00:1::f/128",
                                "fd00:1::10/128",
                                "fd00:1::11/128",
                                "fd00:1::12/128",
                            },
                            AvoidBuggyIps = true,
                            ManualAssign = true,
                        },
                    },
                },
            },
            Storage = new Gcp.GkeOnPrem.Inputs.BareMetalClusterStorageArgs
            {
                LvpShareConfig = new Gcp.GkeOnPrem.Inputs.BareMetalClusterStorageLvpShareConfigArgs
                {
                    LvpConfig = new Gcp.GkeOnPrem.Inputs.BareMetalClusterStorageLvpShareConfigLvpConfigArgs
                    {
                        Path = "/mnt/localpv-share",
                        StorageClass = "local-shared",
                    },
                    SharedPathPvCount = 5,
                },
                LvpNodeMountsConfig = new Gcp.GkeOnPrem.Inputs.BareMetalClusterStorageLvpNodeMountsConfigArgs
                {
                    Path = "/mnt/localpv-disk",
                    StorageClass = "local-disks",
                },
            },
            SecurityConfig = new Gcp.GkeOnPrem.Inputs.BareMetalClusterSecurityConfigArgs
            {
                Authorization = new Gcp.GkeOnPrem.Inputs.BareMetalClusterSecurityConfigAuthorizationArgs
                {
                    AdminUsers = new[]
                    {
                        new Gcp.GkeOnPrem.Inputs.BareMetalClusterSecurityConfigAuthorizationAdminUserArgs
                        {
                            Username = "admin@hashicorptest.com",
                        },
                    },
                },
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.gcp.gkeonprem.BareMetalCluster;
    import com.pulumi.gcp.gkeonprem.BareMetalClusterArgs;
    import com.pulumi.gcp.gkeonprem.inputs.BareMetalClusterNetworkConfigArgs;
    import com.pulumi.gcp.gkeonprem.inputs.BareMetalClusterNetworkConfigIslandModeCidrArgs;
    import com.pulumi.gcp.gkeonprem.inputs.BareMetalClusterControlPlaneArgs;
    import com.pulumi.gcp.gkeonprem.inputs.BareMetalClusterControlPlaneControlPlaneNodePoolConfigArgs;
    import com.pulumi.gcp.gkeonprem.inputs.BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigArgs;
    import com.pulumi.gcp.gkeonprem.inputs.BareMetalClusterLoadBalancerArgs;
    import com.pulumi.gcp.gkeonprem.inputs.BareMetalClusterLoadBalancerPortConfigArgs;
    import com.pulumi.gcp.gkeonprem.inputs.BareMetalClusterLoadBalancerVipConfigArgs;
    import com.pulumi.gcp.gkeonprem.inputs.BareMetalClusterLoadBalancerMetalLbConfigArgs;
    import com.pulumi.gcp.gkeonprem.inputs.BareMetalClusterStorageArgs;
    import com.pulumi.gcp.gkeonprem.inputs.BareMetalClusterStorageLvpShareConfigArgs;
    import com.pulumi.gcp.gkeonprem.inputs.BareMetalClusterStorageLvpShareConfigLvpConfigArgs;
    import com.pulumi.gcp.gkeonprem.inputs.BareMetalClusterStorageLvpNodeMountsConfigArgs;
    import com.pulumi.gcp.gkeonprem.inputs.BareMetalClusterSecurityConfigArgs;
    import com.pulumi.gcp.gkeonprem.inputs.BareMetalClusterSecurityConfigAuthorizationArgs;
    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 cluster_basic = new BareMetalCluster("cluster-basic", BareMetalClusterArgs.builder()
                .name("my-cluster")
                .location("us-west1")
                .adminClusterMembership("projects/870316890899/locations/global/memberships/gkeonprem-terraform-test")
                .bareMetalVersion("1.12.3")
                .networkConfig(BareMetalClusterNetworkConfigArgs.builder()
                    .islandModeCidr(BareMetalClusterNetworkConfigIslandModeCidrArgs.builder()
                        .serviceAddressCidrBlocks("172.26.0.0/16")
                        .podAddressCidrBlocks("10.240.0.0/13")
                        .build())
                    .build())
                .controlPlane(BareMetalClusterControlPlaneArgs.builder()
                    .controlPlaneNodePoolConfig(BareMetalClusterControlPlaneControlPlaneNodePoolConfigArgs.builder()
                        .nodePoolConfig(BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigArgs.builder()
                            .labels()
                            .operatingSystem("LINUX")
                            .nodeConfigs(BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfigArgs.builder()
                                .labels()
                                .nodeIp("10.200.0.9")
                                .build())
                            .build())
                        .build())
                    .build())
                .loadBalancer(BareMetalClusterLoadBalancerArgs.builder()
                    .portConfig(BareMetalClusterLoadBalancerPortConfigArgs.builder()
                        .controlPlaneLoadBalancerPort(443)
                        .build())
                    .vipConfig(BareMetalClusterLoadBalancerVipConfigArgs.builder()
                        .controlPlaneVip("10.200.0.13")
                        .ingressVip("10.200.0.14")
                        .build())
                    .metalLbConfig(BareMetalClusterLoadBalancerMetalLbConfigArgs.builder()
                        .addressPools(BareMetalClusterLoadBalancerMetalLbConfigAddressPoolArgs.builder()
                            .pool("pool1")
                            .addresses(                        
                                "10.200.0.14/32",
                                "10.200.0.15/32",
                                "10.200.0.16/32",
                                "10.200.0.17/32",
                                "10.200.0.18/32",
                                "fd00:1::f/128",
                                "fd00:1::10/128",
                                "fd00:1::11/128",
                                "fd00:1::12/128")
                            .avoidBuggyIps(true)
                            .manualAssign(true)
                            .build())
                        .build())
                    .build())
                .storage(BareMetalClusterStorageArgs.builder()
                    .lvpShareConfig(BareMetalClusterStorageLvpShareConfigArgs.builder()
                        .lvpConfig(BareMetalClusterStorageLvpShareConfigLvpConfigArgs.builder()
                            .path("/mnt/localpv-share")
                            .storageClass("local-shared")
                            .build())
                        .sharedPathPvCount(5)
                        .build())
                    .lvpNodeMountsConfig(BareMetalClusterStorageLvpNodeMountsConfigArgs.builder()
                        .path("/mnt/localpv-disk")
                        .storageClass("local-disks")
                        .build())
                    .build())
                .securityConfig(BareMetalClusterSecurityConfigArgs.builder()
                    .authorization(BareMetalClusterSecurityConfigAuthorizationArgs.builder()
                        .adminUsers(BareMetalClusterSecurityConfigAuthorizationAdminUserArgs.builder()
                            .username("admin@hashicorptest.com")
                            .build())
                        .build())
                    .build())
                .build());
    
        }
    }
    
    resources:
      cluster-basic:
        type: gcp:gkeonprem:BareMetalCluster
        properties:
          name: my-cluster
          location: us-west1
          adminClusterMembership: projects/870316890899/locations/global/memberships/gkeonprem-terraform-test
          bareMetalVersion: 1.12.3
          networkConfig:
            islandModeCidr:
              serviceAddressCidrBlocks:
                - 172.26.0.0/16
              podAddressCidrBlocks:
                - 10.240.0.0/13
          controlPlane:
            controlPlaneNodePoolConfig:
              nodePoolConfig:
                labels: {}
                operatingSystem: LINUX
                nodeConfigs:
                  - labels: {}
                    nodeIp: 10.200.0.9
          loadBalancer:
            portConfig:
              controlPlaneLoadBalancerPort: 443
            vipConfig:
              controlPlaneVip: 10.200.0.13
              ingressVip: 10.200.0.14
            metalLbConfig:
              addressPools:
                - pool: pool1
                  addresses:
                    - 10.200.0.14/32
                    - 10.200.0.15/32
                    - 10.200.0.16/32
                    - 10.200.0.17/32
                    - 10.200.0.18/32
                    - fd00:1::f/128
                    - fd00:1::10/128
                    - fd00:1::11/128
                    - fd00:1::12/128
                  avoidBuggyIps: true
                  manualAssign: true
          storage:
            lvpShareConfig:
              lvpConfig:
                path: /mnt/localpv-share
                storageClass: local-shared
              sharedPathPvCount: 5
            lvpNodeMountsConfig:
              path: /mnt/localpv-disk
              storageClass: local-disks
          securityConfig:
            authorization:
              adminUsers:
                - username: admin@hashicorptest.com
    

    Gkeonprem Bare Metal Cluster Manuallb

    import * as pulumi from "@pulumi/pulumi";
    import * as gcp from "@pulumi/gcp";
    
    const cluster_manuallb = new gcp.gkeonprem.BareMetalCluster("cluster-manuallb", {
        name: "cluster-manuallb",
        location: "us-west1",
        adminClusterMembership: "projects/870316890899/locations/global/memberships/gkeonprem-terraform-test",
        bareMetalVersion: "1.12.3",
        networkConfig: {
            islandModeCidr: {
                serviceAddressCidrBlocks: ["172.26.0.0/16"],
                podAddressCidrBlocks: ["10.240.0.0/13"],
            },
        },
        controlPlane: {
            controlPlaneNodePoolConfig: {
                nodePoolConfig: {
                    labels: {},
                    operatingSystem: "LINUX",
                    nodeConfigs: [{
                        labels: {},
                        nodeIp: "10.200.0.9",
                    }],
                },
            },
        },
        loadBalancer: {
            portConfig: {
                controlPlaneLoadBalancerPort: 443,
            },
            vipConfig: {
                controlPlaneVip: "10.200.0.13",
                ingressVip: "10.200.0.14",
            },
            manualLbConfig: {
                enabled: true,
            },
        },
        storage: {
            lvpShareConfig: {
                lvpConfig: {
                    path: "/mnt/localpv-share",
                    storageClass: "local-shared",
                },
                sharedPathPvCount: 5,
            },
            lvpNodeMountsConfig: {
                path: "/mnt/localpv-disk",
                storageClass: "local-disks",
            },
        },
        securityConfig: {
            authorization: {
                adminUsers: [{
                    username: "admin@hashicorptest.com",
                }],
            },
        },
        binaryAuthorization: {
            evaluationMode: "DISABLED",
        },
        upgradePolicy: {
            policy: "SERIAL",
        },
    });
    
    import pulumi
    import pulumi_gcp as gcp
    
    cluster_manuallb = gcp.gkeonprem.BareMetalCluster("cluster-manuallb",
        name="cluster-manuallb",
        location="us-west1",
        admin_cluster_membership="projects/870316890899/locations/global/memberships/gkeonprem-terraform-test",
        bare_metal_version="1.12.3",
        network_config=gcp.gkeonprem.BareMetalClusterNetworkConfigArgs(
            island_mode_cidr=gcp.gkeonprem.BareMetalClusterNetworkConfigIslandModeCidrArgs(
                service_address_cidr_blocks=["172.26.0.0/16"],
                pod_address_cidr_blocks=["10.240.0.0/13"],
            ),
        ),
        control_plane=gcp.gkeonprem.BareMetalClusterControlPlaneArgs(
            control_plane_node_pool_config=gcp.gkeonprem.BareMetalClusterControlPlaneControlPlaneNodePoolConfigArgs(
                node_pool_config=gcp.gkeonprem.BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigArgs(
                    labels={},
                    operating_system="LINUX",
                    node_configs=[gcp.gkeonprem.BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfigArgs(
                        labels={},
                        node_ip="10.200.0.9",
                    )],
                ),
            ),
        ),
        load_balancer=gcp.gkeonprem.BareMetalClusterLoadBalancerArgs(
            port_config=gcp.gkeonprem.BareMetalClusterLoadBalancerPortConfigArgs(
                control_plane_load_balancer_port=443,
            ),
            vip_config=gcp.gkeonprem.BareMetalClusterLoadBalancerVipConfigArgs(
                control_plane_vip="10.200.0.13",
                ingress_vip="10.200.0.14",
            ),
            manual_lb_config=gcp.gkeonprem.BareMetalClusterLoadBalancerManualLbConfigArgs(
                enabled=True,
            ),
        ),
        storage=gcp.gkeonprem.BareMetalClusterStorageArgs(
            lvp_share_config=gcp.gkeonprem.BareMetalClusterStorageLvpShareConfigArgs(
                lvp_config=gcp.gkeonprem.BareMetalClusterStorageLvpShareConfigLvpConfigArgs(
                    path="/mnt/localpv-share",
                    storage_class="local-shared",
                ),
                shared_path_pv_count=5,
            ),
            lvp_node_mounts_config=gcp.gkeonprem.BareMetalClusterStorageLvpNodeMountsConfigArgs(
                path="/mnt/localpv-disk",
                storage_class="local-disks",
            ),
        ),
        security_config=gcp.gkeonprem.BareMetalClusterSecurityConfigArgs(
            authorization=gcp.gkeonprem.BareMetalClusterSecurityConfigAuthorizationArgs(
                admin_users=[gcp.gkeonprem.BareMetalClusterSecurityConfigAuthorizationAdminUserArgs(
                    username="admin@hashicorptest.com",
                )],
            ),
        ),
        binary_authorization=gcp.gkeonprem.BareMetalClusterBinaryAuthorizationArgs(
            evaluation_mode="DISABLED",
        ),
        upgrade_policy=gcp.gkeonprem.BareMetalClusterUpgradePolicyArgs(
            policy="SERIAL",
        ))
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/gkeonprem"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := gkeonprem.NewBareMetalCluster(ctx, "cluster-manuallb", &gkeonprem.BareMetalClusterArgs{
    			Name:                   pulumi.String("cluster-manuallb"),
    			Location:               pulumi.String("us-west1"),
    			AdminClusterMembership: pulumi.String("projects/870316890899/locations/global/memberships/gkeonprem-terraform-test"),
    			BareMetalVersion:       pulumi.String("1.12.3"),
    			NetworkConfig: &gkeonprem.BareMetalClusterNetworkConfigArgs{
    				IslandModeCidr: &gkeonprem.BareMetalClusterNetworkConfigIslandModeCidrArgs{
    					ServiceAddressCidrBlocks: pulumi.StringArray{
    						pulumi.String("172.26.0.0/16"),
    					},
    					PodAddressCidrBlocks: pulumi.StringArray{
    						pulumi.String("10.240.0.0/13"),
    					},
    				},
    			},
    			ControlPlane: &gkeonprem.BareMetalClusterControlPlaneArgs{
    				ControlPlaneNodePoolConfig: &gkeonprem.BareMetalClusterControlPlaneControlPlaneNodePoolConfigArgs{
    					NodePoolConfig: &gkeonprem.BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigArgs{
    						Labels:          nil,
    						OperatingSystem: pulumi.String("LINUX"),
    						NodeConfigs: gkeonprem.BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfigArray{
    							&gkeonprem.BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfigArgs{
    								Labels: nil,
    								NodeIp: pulumi.String("10.200.0.9"),
    							},
    						},
    					},
    				},
    			},
    			LoadBalancer: &gkeonprem.BareMetalClusterLoadBalancerArgs{
    				PortConfig: &gkeonprem.BareMetalClusterLoadBalancerPortConfigArgs{
    					ControlPlaneLoadBalancerPort: pulumi.Int(443),
    				},
    				VipConfig: &gkeonprem.BareMetalClusterLoadBalancerVipConfigArgs{
    					ControlPlaneVip: pulumi.String("10.200.0.13"),
    					IngressVip:      pulumi.String("10.200.0.14"),
    				},
    				ManualLbConfig: &gkeonprem.BareMetalClusterLoadBalancerManualLbConfigArgs{
    					Enabled: pulumi.Bool(true),
    				},
    			},
    			Storage: &gkeonprem.BareMetalClusterStorageArgs{
    				LvpShareConfig: &gkeonprem.BareMetalClusterStorageLvpShareConfigArgs{
    					LvpConfig: &gkeonprem.BareMetalClusterStorageLvpShareConfigLvpConfigArgs{
    						Path:         pulumi.String("/mnt/localpv-share"),
    						StorageClass: pulumi.String("local-shared"),
    					},
    					SharedPathPvCount: pulumi.Int(5),
    				},
    				LvpNodeMountsConfig: &gkeonprem.BareMetalClusterStorageLvpNodeMountsConfigArgs{
    					Path:         pulumi.String("/mnt/localpv-disk"),
    					StorageClass: pulumi.String("local-disks"),
    				},
    			},
    			SecurityConfig: &gkeonprem.BareMetalClusterSecurityConfigArgs{
    				Authorization: &gkeonprem.BareMetalClusterSecurityConfigAuthorizationArgs{
    					AdminUsers: gkeonprem.BareMetalClusterSecurityConfigAuthorizationAdminUserArray{
    						&gkeonprem.BareMetalClusterSecurityConfigAuthorizationAdminUserArgs{
    							Username: pulumi.String("admin@hashicorptest.com"),
    						},
    					},
    				},
    			},
    			BinaryAuthorization: &gkeonprem.BareMetalClusterBinaryAuthorizationArgs{
    				EvaluationMode: pulumi.String("DISABLED"),
    			},
    			UpgradePolicy: &gkeonprem.BareMetalClusterUpgradePolicyArgs{
    				Policy: pulumi.String("SERIAL"),
    			},
    		})
    		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 cluster_manuallb = new Gcp.GkeOnPrem.BareMetalCluster("cluster-manuallb", new()
        {
            Name = "cluster-manuallb",
            Location = "us-west1",
            AdminClusterMembership = "projects/870316890899/locations/global/memberships/gkeonprem-terraform-test",
            BareMetalVersion = "1.12.3",
            NetworkConfig = new Gcp.GkeOnPrem.Inputs.BareMetalClusterNetworkConfigArgs
            {
                IslandModeCidr = new Gcp.GkeOnPrem.Inputs.BareMetalClusterNetworkConfigIslandModeCidrArgs
                {
                    ServiceAddressCidrBlocks = new[]
                    {
                        "172.26.0.0/16",
                    },
                    PodAddressCidrBlocks = new[]
                    {
                        "10.240.0.0/13",
                    },
                },
            },
            ControlPlane = new Gcp.GkeOnPrem.Inputs.BareMetalClusterControlPlaneArgs
            {
                ControlPlaneNodePoolConfig = new Gcp.GkeOnPrem.Inputs.BareMetalClusterControlPlaneControlPlaneNodePoolConfigArgs
                {
                    NodePoolConfig = new Gcp.GkeOnPrem.Inputs.BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigArgs
                    {
                        Labels = null,
                        OperatingSystem = "LINUX",
                        NodeConfigs = new[]
                        {
                            new Gcp.GkeOnPrem.Inputs.BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfigArgs
                            {
                                Labels = null,
                                NodeIp = "10.200.0.9",
                            },
                        },
                    },
                },
            },
            LoadBalancer = new Gcp.GkeOnPrem.Inputs.BareMetalClusterLoadBalancerArgs
            {
                PortConfig = new Gcp.GkeOnPrem.Inputs.BareMetalClusterLoadBalancerPortConfigArgs
                {
                    ControlPlaneLoadBalancerPort = 443,
                },
                VipConfig = new Gcp.GkeOnPrem.Inputs.BareMetalClusterLoadBalancerVipConfigArgs
                {
                    ControlPlaneVip = "10.200.0.13",
                    IngressVip = "10.200.0.14",
                },
                ManualLbConfig = new Gcp.GkeOnPrem.Inputs.BareMetalClusterLoadBalancerManualLbConfigArgs
                {
                    Enabled = true,
                },
            },
            Storage = new Gcp.GkeOnPrem.Inputs.BareMetalClusterStorageArgs
            {
                LvpShareConfig = new Gcp.GkeOnPrem.Inputs.BareMetalClusterStorageLvpShareConfigArgs
                {
                    LvpConfig = new Gcp.GkeOnPrem.Inputs.BareMetalClusterStorageLvpShareConfigLvpConfigArgs
                    {
                        Path = "/mnt/localpv-share",
                        StorageClass = "local-shared",
                    },
                    SharedPathPvCount = 5,
                },
                LvpNodeMountsConfig = new Gcp.GkeOnPrem.Inputs.BareMetalClusterStorageLvpNodeMountsConfigArgs
                {
                    Path = "/mnt/localpv-disk",
                    StorageClass = "local-disks",
                },
            },
            SecurityConfig = new Gcp.GkeOnPrem.Inputs.BareMetalClusterSecurityConfigArgs
            {
                Authorization = new Gcp.GkeOnPrem.Inputs.BareMetalClusterSecurityConfigAuthorizationArgs
                {
                    AdminUsers = new[]
                    {
                        new Gcp.GkeOnPrem.Inputs.BareMetalClusterSecurityConfigAuthorizationAdminUserArgs
                        {
                            Username = "admin@hashicorptest.com",
                        },
                    },
                },
            },
            BinaryAuthorization = new Gcp.GkeOnPrem.Inputs.BareMetalClusterBinaryAuthorizationArgs
            {
                EvaluationMode = "DISABLED",
            },
            UpgradePolicy = new Gcp.GkeOnPrem.Inputs.BareMetalClusterUpgradePolicyArgs
            {
                Policy = "SERIAL",
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.gcp.gkeonprem.BareMetalCluster;
    import com.pulumi.gcp.gkeonprem.BareMetalClusterArgs;
    import com.pulumi.gcp.gkeonprem.inputs.BareMetalClusterNetworkConfigArgs;
    import com.pulumi.gcp.gkeonprem.inputs.BareMetalClusterNetworkConfigIslandModeCidrArgs;
    import com.pulumi.gcp.gkeonprem.inputs.BareMetalClusterControlPlaneArgs;
    import com.pulumi.gcp.gkeonprem.inputs.BareMetalClusterControlPlaneControlPlaneNodePoolConfigArgs;
    import com.pulumi.gcp.gkeonprem.inputs.BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigArgs;
    import com.pulumi.gcp.gkeonprem.inputs.BareMetalClusterLoadBalancerArgs;
    import com.pulumi.gcp.gkeonprem.inputs.BareMetalClusterLoadBalancerPortConfigArgs;
    import com.pulumi.gcp.gkeonprem.inputs.BareMetalClusterLoadBalancerVipConfigArgs;
    import com.pulumi.gcp.gkeonprem.inputs.BareMetalClusterLoadBalancerManualLbConfigArgs;
    import com.pulumi.gcp.gkeonprem.inputs.BareMetalClusterStorageArgs;
    import com.pulumi.gcp.gkeonprem.inputs.BareMetalClusterStorageLvpShareConfigArgs;
    import com.pulumi.gcp.gkeonprem.inputs.BareMetalClusterStorageLvpShareConfigLvpConfigArgs;
    import com.pulumi.gcp.gkeonprem.inputs.BareMetalClusterStorageLvpNodeMountsConfigArgs;
    import com.pulumi.gcp.gkeonprem.inputs.BareMetalClusterSecurityConfigArgs;
    import com.pulumi.gcp.gkeonprem.inputs.BareMetalClusterSecurityConfigAuthorizationArgs;
    import com.pulumi.gcp.gkeonprem.inputs.BareMetalClusterBinaryAuthorizationArgs;
    import com.pulumi.gcp.gkeonprem.inputs.BareMetalClusterUpgradePolicyArgs;
    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 cluster_manuallb = new BareMetalCluster("cluster-manuallb", BareMetalClusterArgs.builder()
                .name("cluster-manuallb")
                .location("us-west1")
                .adminClusterMembership("projects/870316890899/locations/global/memberships/gkeonprem-terraform-test")
                .bareMetalVersion("1.12.3")
                .networkConfig(BareMetalClusterNetworkConfigArgs.builder()
                    .islandModeCidr(BareMetalClusterNetworkConfigIslandModeCidrArgs.builder()
                        .serviceAddressCidrBlocks("172.26.0.0/16")
                        .podAddressCidrBlocks("10.240.0.0/13")
                        .build())
                    .build())
                .controlPlane(BareMetalClusterControlPlaneArgs.builder()
                    .controlPlaneNodePoolConfig(BareMetalClusterControlPlaneControlPlaneNodePoolConfigArgs.builder()
                        .nodePoolConfig(BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigArgs.builder()
                            .labels()
                            .operatingSystem("LINUX")
                            .nodeConfigs(BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfigArgs.builder()
                                .labels()
                                .nodeIp("10.200.0.9")
                                .build())
                            .build())
                        .build())
                    .build())
                .loadBalancer(BareMetalClusterLoadBalancerArgs.builder()
                    .portConfig(BareMetalClusterLoadBalancerPortConfigArgs.builder()
                        .controlPlaneLoadBalancerPort(443)
                        .build())
                    .vipConfig(BareMetalClusterLoadBalancerVipConfigArgs.builder()
                        .controlPlaneVip("10.200.0.13")
                        .ingressVip("10.200.0.14")
                        .build())
                    .manualLbConfig(BareMetalClusterLoadBalancerManualLbConfigArgs.builder()
                        .enabled(true)
                        .build())
                    .build())
                .storage(BareMetalClusterStorageArgs.builder()
                    .lvpShareConfig(BareMetalClusterStorageLvpShareConfigArgs.builder()
                        .lvpConfig(BareMetalClusterStorageLvpShareConfigLvpConfigArgs.builder()
                            .path("/mnt/localpv-share")
                            .storageClass("local-shared")
                            .build())
                        .sharedPathPvCount(5)
                        .build())
                    .lvpNodeMountsConfig(BareMetalClusterStorageLvpNodeMountsConfigArgs.builder()
                        .path("/mnt/localpv-disk")
                        .storageClass("local-disks")
                        .build())
                    .build())
                .securityConfig(BareMetalClusterSecurityConfigArgs.builder()
                    .authorization(BareMetalClusterSecurityConfigAuthorizationArgs.builder()
                        .adminUsers(BareMetalClusterSecurityConfigAuthorizationAdminUserArgs.builder()
                            .username("admin@hashicorptest.com")
                            .build())
                        .build())
                    .build())
                .binaryAuthorization(BareMetalClusterBinaryAuthorizationArgs.builder()
                    .evaluationMode("DISABLED")
                    .build())
                .upgradePolicy(BareMetalClusterUpgradePolicyArgs.builder()
                    .policy("SERIAL")
                    .build())
                .build());
    
        }
    }
    
    resources:
      cluster-manuallb:
        type: gcp:gkeonprem:BareMetalCluster
        properties:
          name: cluster-manuallb
          location: us-west1
          adminClusterMembership: projects/870316890899/locations/global/memberships/gkeonprem-terraform-test
          bareMetalVersion: 1.12.3
          networkConfig:
            islandModeCidr:
              serviceAddressCidrBlocks:
                - 172.26.0.0/16
              podAddressCidrBlocks:
                - 10.240.0.0/13
          controlPlane:
            controlPlaneNodePoolConfig:
              nodePoolConfig:
                labels: {}
                operatingSystem: LINUX
                nodeConfigs:
                  - labels: {}
                    nodeIp: 10.200.0.9
          loadBalancer:
            portConfig:
              controlPlaneLoadBalancerPort: 443
            vipConfig:
              controlPlaneVip: 10.200.0.13
              ingressVip: 10.200.0.14
            manualLbConfig:
              enabled: true
          storage:
            lvpShareConfig:
              lvpConfig:
                path: /mnt/localpv-share
                storageClass: local-shared
              sharedPathPvCount: 5
            lvpNodeMountsConfig:
              path: /mnt/localpv-disk
              storageClass: local-disks
          securityConfig:
            authorization:
              adminUsers:
                - username: admin@hashicorptest.com
          binaryAuthorization:
            evaluationMode: DISABLED
          upgradePolicy:
            policy: SERIAL
    

    Gkeonprem Bare Metal Cluster Bgplb

    import * as pulumi from "@pulumi/pulumi";
    import * as gcp from "@pulumi/gcp";
    
    const cluster_bgplb = new gcp.gkeonprem.BareMetalCluster("cluster-bgplb", {
        name: "cluster-bgplb",
        location: "us-west1",
        adminClusterMembership: "projects/870316890899/locations/global/memberships/gkeonprem-terraform-test",
        bareMetalVersion: "1.12.3",
        networkConfig: {
            islandModeCidr: {
                serviceAddressCidrBlocks: ["172.26.0.0/16"],
                podAddressCidrBlocks: ["10.240.0.0/13"],
            },
            advancedNetworking: true,
            multipleNetworkInterfacesConfig: {
                enabled: true,
            },
            srIovConfig: {
                enabled: true,
            },
        },
        controlPlane: {
            controlPlaneNodePoolConfig: {
                nodePoolConfig: {
                    labels: {},
                    operatingSystem: "LINUX",
                    nodeConfigs: [{
                        labels: {},
                        nodeIp: "10.200.0.9",
                    }],
                    taints: [{
                        key: "test-key",
                        value: "test-value",
                        effect: "NO_EXECUTE",
                    }],
                },
            },
            apiServerArgs: [{
                argument: "test-argument",
                value: "test-value",
            }],
        },
        loadBalancer: {
            portConfig: {
                controlPlaneLoadBalancerPort: 443,
            },
            vipConfig: {
                controlPlaneVip: "10.200.0.13",
                ingressVip: "10.200.0.14",
            },
            bgpLbConfig: {
                asn: 123456,
                bgpPeerConfigs: [{
                    asn: 123457,
                    ipAddress: "10.0.0.1",
                    controlPlaneNodes: ["test-node"],
                }],
                addressPools: [{
                    pool: "pool1",
                    addresses: [
                        "10.200.0.14/32",
                        "10.200.0.15/32",
                        "10.200.0.16/32",
                        "10.200.0.17/32",
                        "10.200.0.18/32",
                        "fd00:1::f/128",
                        "fd00:1::10/128",
                        "fd00:1::11/128",
                        "fd00:1::12/128",
                    ],
                }],
                loadBalancerNodePoolConfig: {
                    nodePoolConfig: {
                        labels: {},
                        operatingSystem: "LINUX",
                        nodeConfigs: [{
                            labels: {},
                            nodeIp: "10.200.0.9",
                        }],
                        taints: [{
                            key: "test-key",
                            value: "test-value",
                            effect: "NO_EXECUTE",
                        }],
                        kubeletConfig: {
                            registryPullQps: 10,
                            registryBurst: 12,
                            serializeImagePullsDisabled: true,
                        },
                    },
                },
            },
        },
        storage: {
            lvpShareConfig: {
                lvpConfig: {
                    path: "/mnt/localpv-share",
                    storageClass: "local-shared",
                },
                sharedPathPvCount: 5,
            },
            lvpNodeMountsConfig: {
                path: "/mnt/localpv-disk",
                storageClass: "local-disks",
            },
        },
        securityConfig: {
            authorization: {
                adminUsers: [{
                    username: "admin@hashicorptest.com",
                }],
            },
        },
        proxy: {
            uri: "http://test-domain/test",
            noProxies: ["127.0.0.1"],
        },
        clusterOperations: {
            enableApplicationLogs: true,
        },
        maintenanceConfig: {
            maintenanceAddressCidrBlocks: ["192.168.0.1/20"],
        },
        nodeConfig: {
            maxPodsPerNode: 10,
            containerRuntime: "CONTAINERD",
        },
        nodeAccessConfig: {
            loginUser: "test@example.com",
        },
        osEnvironmentConfig: {
            packageRepoExcluded: true,
        },
    });
    
    import pulumi
    import pulumi_gcp as gcp
    
    cluster_bgplb = gcp.gkeonprem.BareMetalCluster("cluster-bgplb",
        name="cluster-bgplb",
        location="us-west1",
        admin_cluster_membership="projects/870316890899/locations/global/memberships/gkeonprem-terraform-test",
        bare_metal_version="1.12.3",
        network_config=gcp.gkeonprem.BareMetalClusterNetworkConfigArgs(
            island_mode_cidr=gcp.gkeonprem.BareMetalClusterNetworkConfigIslandModeCidrArgs(
                service_address_cidr_blocks=["172.26.0.0/16"],
                pod_address_cidr_blocks=["10.240.0.0/13"],
            ),
            advanced_networking=True,
            multiple_network_interfaces_config=gcp.gkeonprem.BareMetalClusterNetworkConfigMultipleNetworkInterfacesConfigArgs(
                enabled=True,
            ),
            sr_iov_config=gcp.gkeonprem.BareMetalClusterNetworkConfigSrIovConfigArgs(
                enabled=True,
            ),
        ),
        control_plane=gcp.gkeonprem.BareMetalClusterControlPlaneArgs(
            control_plane_node_pool_config=gcp.gkeonprem.BareMetalClusterControlPlaneControlPlaneNodePoolConfigArgs(
                node_pool_config=gcp.gkeonprem.BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigArgs(
                    labels={},
                    operating_system="LINUX",
                    node_configs=[gcp.gkeonprem.BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfigArgs(
                        labels={},
                        node_ip="10.200.0.9",
                    )],
                    taints=[gcp.gkeonprem.BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigTaintArgs(
                        key="test-key",
                        value="test-value",
                        effect="NO_EXECUTE",
                    )],
                ),
            ),
            api_server_args=[gcp.gkeonprem.BareMetalClusterControlPlaneApiServerArgArgs(
                argument="test-argument",
                value="test-value",
            )],
        ),
        load_balancer=gcp.gkeonprem.BareMetalClusterLoadBalancerArgs(
            port_config=gcp.gkeonprem.BareMetalClusterLoadBalancerPortConfigArgs(
                control_plane_load_balancer_port=443,
            ),
            vip_config=gcp.gkeonprem.BareMetalClusterLoadBalancerVipConfigArgs(
                control_plane_vip="10.200.0.13",
                ingress_vip="10.200.0.14",
            ),
            bgp_lb_config=gcp.gkeonprem.BareMetalClusterLoadBalancerBgpLbConfigArgs(
                asn=123456,
                bgp_peer_configs=[gcp.gkeonprem.BareMetalClusterLoadBalancerBgpLbConfigBgpPeerConfigArgs(
                    asn=123457,
                    ip_address="10.0.0.1",
                    control_plane_nodes=["test-node"],
                )],
                address_pools=[gcp.gkeonprem.BareMetalClusterLoadBalancerBgpLbConfigAddressPoolArgs(
                    pool="pool1",
                    addresses=[
                        "10.200.0.14/32",
                        "10.200.0.15/32",
                        "10.200.0.16/32",
                        "10.200.0.17/32",
                        "10.200.0.18/32",
                        "fd00:1::f/128",
                        "fd00:1::10/128",
                        "fd00:1::11/128",
                        "fd00:1::12/128",
                    ],
                )],
                load_balancer_node_pool_config=gcp.gkeonprem.BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigArgs(
                    node_pool_config=gcp.gkeonprem.BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigArgs(
                        labels={},
                        operating_system="LINUX",
                        node_configs=[gcp.gkeonprem.BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfigArgs(
                            labels={},
                            node_ip="10.200.0.9",
                        )],
                        taints=[gcp.gkeonprem.BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigTaintArgs(
                            key="test-key",
                            value="test-value",
                            effect="NO_EXECUTE",
                        )],
                        kubelet_config=gcp.gkeonprem.BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigKubeletConfigArgs(
                            registry_pull_qps=10,
                            registry_burst=12,
                            serialize_image_pulls_disabled=True,
                        ),
                    ),
                ),
            ),
        ),
        storage=gcp.gkeonprem.BareMetalClusterStorageArgs(
            lvp_share_config=gcp.gkeonprem.BareMetalClusterStorageLvpShareConfigArgs(
                lvp_config=gcp.gkeonprem.BareMetalClusterStorageLvpShareConfigLvpConfigArgs(
                    path="/mnt/localpv-share",
                    storage_class="local-shared",
                ),
                shared_path_pv_count=5,
            ),
            lvp_node_mounts_config=gcp.gkeonprem.BareMetalClusterStorageLvpNodeMountsConfigArgs(
                path="/mnt/localpv-disk",
                storage_class="local-disks",
            ),
        ),
        security_config=gcp.gkeonprem.BareMetalClusterSecurityConfigArgs(
            authorization=gcp.gkeonprem.BareMetalClusterSecurityConfigAuthorizationArgs(
                admin_users=[gcp.gkeonprem.BareMetalClusterSecurityConfigAuthorizationAdminUserArgs(
                    username="admin@hashicorptest.com",
                )],
            ),
        ),
        proxy=gcp.gkeonprem.BareMetalClusterProxyArgs(
            uri="http://test-domain/test",
            no_proxies=["127.0.0.1"],
        ),
        cluster_operations=gcp.gkeonprem.BareMetalClusterClusterOperationsArgs(
            enable_application_logs=True,
        ),
        maintenance_config=gcp.gkeonprem.BareMetalClusterMaintenanceConfigArgs(
            maintenance_address_cidr_blocks=["192.168.0.1/20"],
        ),
        node_config=gcp.gkeonprem.BareMetalClusterNodeConfigArgs(
            max_pods_per_node=10,
            container_runtime="CONTAINERD",
        ),
        node_access_config=gcp.gkeonprem.BareMetalClusterNodeAccessConfigArgs(
            login_user="test@example.com",
        ),
        os_environment_config=gcp.gkeonprem.BareMetalClusterOsEnvironmentConfigArgs(
            package_repo_excluded=True,
        ))
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/gkeonprem"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := gkeonprem.NewBareMetalCluster(ctx, "cluster-bgplb", &gkeonprem.BareMetalClusterArgs{
    			Name:                   pulumi.String("cluster-bgplb"),
    			Location:               pulumi.String("us-west1"),
    			AdminClusterMembership: pulumi.String("projects/870316890899/locations/global/memberships/gkeonprem-terraform-test"),
    			BareMetalVersion:       pulumi.String("1.12.3"),
    			NetworkConfig: &gkeonprem.BareMetalClusterNetworkConfigArgs{
    				IslandModeCidr: &gkeonprem.BareMetalClusterNetworkConfigIslandModeCidrArgs{
    					ServiceAddressCidrBlocks: pulumi.StringArray{
    						pulumi.String("172.26.0.0/16"),
    					},
    					PodAddressCidrBlocks: pulumi.StringArray{
    						pulumi.String("10.240.0.0/13"),
    					},
    				},
    				AdvancedNetworking: pulumi.Bool(true),
    				MultipleNetworkInterfacesConfig: &gkeonprem.BareMetalClusterNetworkConfigMultipleNetworkInterfacesConfigArgs{
    					Enabled: pulumi.Bool(true),
    				},
    				SrIovConfig: &gkeonprem.BareMetalClusterNetworkConfigSrIovConfigArgs{
    					Enabled: pulumi.Bool(true),
    				},
    			},
    			ControlPlane: &gkeonprem.BareMetalClusterControlPlaneArgs{
    				ControlPlaneNodePoolConfig: &gkeonprem.BareMetalClusterControlPlaneControlPlaneNodePoolConfigArgs{
    					NodePoolConfig: &gkeonprem.BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigArgs{
    						Labels:          nil,
    						OperatingSystem: pulumi.String("LINUX"),
    						NodeConfigs: gkeonprem.BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfigArray{
    							&gkeonprem.BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfigArgs{
    								Labels: nil,
    								NodeIp: pulumi.String("10.200.0.9"),
    							},
    						},
    						Taints: gkeonprem.BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigTaintArray{
    							&gkeonprem.BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigTaintArgs{
    								Key:    pulumi.String("test-key"),
    								Value:  pulumi.String("test-value"),
    								Effect: pulumi.String("NO_EXECUTE"),
    							},
    						},
    					},
    				},
    				ApiServerArgs: gkeonprem.BareMetalClusterControlPlaneApiServerArgArray{
    					&gkeonprem.BareMetalClusterControlPlaneApiServerArgArgs{
    						Argument: pulumi.String("test-argument"),
    						Value:    pulumi.String("test-value"),
    					},
    				},
    			},
    			LoadBalancer: &gkeonprem.BareMetalClusterLoadBalancerArgs{
    				PortConfig: &gkeonprem.BareMetalClusterLoadBalancerPortConfigArgs{
    					ControlPlaneLoadBalancerPort: pulumi.Int(443),
    				},
    				VipConfig: &gkeonprem.BareMetalClusterLoadBalancerVipConfigArgs{
    					ControlPlaneVip: pulumi.String("10.200.0.13"),
    					IngressVip:      pulumi.String("10.200.0.14"),
    				},
    				BgpLbConfig: &gkeonprem.BareMetalClusterLoadBalancerBgpLbConfigArgs{
    					Asn: pulumi.Int(123456),
    					BgpPeerConfigs: gkeonprem.BareMetalClusterLoadBalancerBgpLbConfigBgpPeerConfigArray{
    						&gkeonprem.BareMetalClusterLoadBalancerBgpLbConfigBgpPeerConfigArgs{
    							Asn:       pulumi.Int(123457),
    							IpAddress: pulumi.String("10.0.0.1"),
    							ControlPlaneNodes: pulumi.StringArray{
    								pulumi.String("test-node"),
    							},
    						},
    					},
    					AddressPools: gkeonprem.BareMetalClusterLoadBalancerBgpLbConfigAddressPoolArray{
    						&gkeonprem.BareMetalClusterLoadBalancerBgpLbConfigAddressPoolArgs{
    							Pool: pulumi.String("pool1"),
    							Addresses: pulumi.StringArray{
    								pulumi.String("10.200.0.14/32"),
    								pulumi.String("10.200.0.15/32"),
    								pulumi.String("10.200.0.16/32"),
    								pulumi.String("10.200.0.17/32"),
    								pulumi.String("10.200.0.18/32"),
    								pulumi.String("fd00:1::f/128"),
    								pulumi.String("fd00:1::10/128"),
    								pulumi.String("fd00:1::11/128"),
    								pulumi.String("fd00:1::12/128"),
    							},
    						},
    					},
    					LoadBalancerNodePoolConfig: &gkeonprem.BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigArgs{
    						NodePoolConfig: &gkeonprem.BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigArgs{
    							Labels:          nil,
    							OperatingSystem: pulumi.String("LINUX"),
    							NodeConfigs: gkeonprem.BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfigArray{
    								&gkeonprem.BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfigArgs{
    									Labels: nil,
    									NodeIp: pulumi.String("10.200.0.9"),
    								},
    							},
    							Taints: gkeonprem.BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigTaintArray{
    								&gkeonprem.BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigTaintArgs{
    									Key:    pulumi.String("test-key"),
    									Value:  pulumi.String("test-value"),
    									Effect: pulumi.String("NO_EXECUTE"),
    								},
    							},
    							KubeletConfig: &gkeonprem.BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigKubeletConfigArgs{
    								RegistryPullQps:             pulumi.Int(10),
    								RegistryBurst:               pulumi.Int(12),
    								SerializeImagePullsDisabled: pulumi.Bool(true),
    							},
    						},
    					},
    				},
    			},
    			Storage: &gkeonprem.BareMetalClusterStorageArgs{
    				LvpShareConfig: &gkeonprem.BareMetalClusterStorageLvpShareConfigArgs{
    					LvpConfig: &gkeonprem.BareMetalClusterStorageLvpShareConfigLvpConfigArgs{
    						Path:         pulumi.String("/mnt/localpv-share"),
    						StorageClass: pulumi.String("local-shared"),
    					},
    					SharedPathPvCount: pulumi.Int(5),
    				},
    				LvpNodeMountsConfig: &gkeonprem.BareMetalClusterStorageLvpNodeMountsConfigArgs{
    					Path:         pulumi.String("/mnt/localpv-disk"),
    					StorageClass: pulumi.String("local-disks"),
    				},
    			},
    			SecurityConfig: &gkeonprem.BareMetalClusterSecurityConfigArgs{
    				Authorization: &gkeonprem.BareMetalClusterSecurityConfigAuthorizationArgs{
    					AdminUsers: gkeonprem.BareMetalClusterSecurityConfigAuthorizationAdminUserArray{
    						&gkeonprem.BareMetalClusterSecurityConfigAuthorizationAdminUserArgs{
    							Username: pulumi.String("admin@hashicorptest.com"),
    						},
    					},
    				},
    			},
    			Proxy: &gkeonprem.BareMetalClusterProxyArgs{
    				Uri: pulumi.String("http://test-domain/test"),
    				NoProxies: pulumi.StringArray{
    					pulumi.String("127.0.0.1"),
    				},
    			},
    			ClusterOperations: &gkeonprem.BareMetalClusterClusterOperationsArgs{
    				EnableApplicationLogs: pulumi.Bool(true),
    			},
    			MaintenanceConfig: &gkeonprem.BareMetalClusterMaintenanceConfigArgs{
    				MaintenanceAddressCidrBlocks: pulumi.StringArray{
    					pulumi.String("192.168.0.1/20"),
    				},
    			},
    			NodeConfig: &gkeonprem.BareMetalClusterNodeConfigArgs{
    				MaxPodsPerNode:   pulumi.Int(10),
    				ContainerRuntime: pulumi.String("CONTAINERD"),
    			},
    			NodeAccessConfig: &gkeonprem.BareMetalClusterNodeAccessConfigArgs{
    				LoginUser: pulumi.String("test@example.com"),
    			},
    			OsEnvironmentConfig: &gkeonprem.BareMetalClusterOsEnvironmentConfigArgs{
    				PackageRepoExcluded: 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 cluster_bgplb = new Gcp.GkeOnPrem.BareMetalCluster("cluster-bgplb", new()
        {
            Name = "cluster-bgplb",
            Location = "us-west1",
            AdminClusterMembership = "projects/870316890899/locations/global/memberships/gkeonprem-terraform-test",
            BareMetalVersion = "1.12.3",
            NetworkConfig = new Gcp.GkeOnPrem.Inputs.BareMetalClusterNetworkConfigArgs
            {
                IslandModeCidr = new Gcp.GkeOnPrem.Inputs.BareMetalClusterNetworkConfigIslandModeCidrArgs
                {
                    ServiceAddressCidrBlocks = new[]
                    {
                        "172.26.0.0/16",
                    },
                    PodAddressCidrBlocks = new[]
                    {
                        "10.240.0.0/13",
                    },
                },
                AdvancedNetworking = true,
                MultipleNetworkInterfacesConfig = new Gcp.GkeOnPrem.Inputs.BareMetalClusterNetworkConfigMultipleNetworkInterfacesConfigArgs
                {
                    Enabled = true,
                },
                SrIovConfig = new Gcp.GkeOnPrem.Inputs.BareMetalClusterNetworkConfigSrIovConfigArgs
                {
                    Enabled = true,
                },
            },
            ControlPlane = new Gcp.GkeOnPrem.Inputs.BareMetalClusterControlPlaneArgs
            {
                ControlPlaneNodePoolConfig = new Gcp.GkeOnPrem.Inputs.BareMetalClusterControlPlaneControlPlaneNodePoolConfigArgs
                {
                    NodePoolConfig = new Gcp.GkeOnPrem.Inputs.BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigArgs
                    {
                        Labels = null,
                        OperatingSystem = "LINUX",
                        NodeConfigs = new[]
                        {
                            new Gcp.GkeOnPrem.Inputs.BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfigArgs
                            {
                                Labels = null,
                                NodeIp = "10.200.0.9",
                            },
                        },
                        Taints = new[]
                        {
                            new Gcp.GkeOnPrem.Inputs.BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigTaintArgs
                            {
                                Key = "test-key",
                                Value = "test-value",
                                Effect = "NO_EXECUTE",
                            },
                        },
                    },
                },
                ApiServerArgs = new[]
                {
                    new Gcp.GkeOnPrem.Inputs.BareMetalClusterControlPlaneApiServerArgArgs
                    {
                        Argument = "test-argument",
                        Value = "test-value",
                    },
                },
            },
            LoadBalancer = new Gcp.GkeOnPrem.Inputs.BareMetalClusterLoadBalancerArgs
            {
                PortConfig = new Gcp.GkeOnPrem.Inputs.BareMetalClusterLoadBalancerPortConfigArgs
                {
                    ControlPlaneLoadBalancerPort = 443,
                },
                VipConfig = new Gcp.GkeOnPrem.Inputs.BareMetalClusterLoadBalancerVipConfigArgs
                {
                    ControlPlaneVip = "10.200.0.13",
                    IngressVip = "10.200.0.14",
                },
                BgpLbConfig = new Gcp.GkeOnPrem.Inputs.BareMetalClusterLoadBalancerBgpLbConfigArgs
                {
                    Asn = 123456,
                    BgpPeerConfigs = new[]
                    {
                        new Gcp.GkeOnPrem.Inputs.BareMetalClusterLoadBalancerBgpLbConfigBgpPeerConfigArgs
                        {
                            Asn = 123457,
                            IpAddress = "10.0.0.1",
                            ControlPlaneNodes = new[]
                            {
                                "test-node",
                            },
                        },
                    },
                    AddressPools = new[]
                    {
                        new Gcp.GkeOnPrem.Inputs.BareMetalClusterLoadBalancerBgpLbConfigAddressPoolArgs
                        {
                            Pool = "pool1",
                            Addresses = new[]
                            {
                                "10.200.0.14/32",
                                "10.200.0.15/32",
                                "10.200.0.16/32",
                                "10.200.0.17/32",
                                "10.200.0.18/32",
                                "fd00:1::f/128",
                                "fd00:1::10/128",
                                "fd00:1::11/128",
                                "fd00:1::12/128",
                            },
                        },
                    },
                    LoadBalancerNodePoolConfig = new Gcp.GkeOnPrem.Inputs.BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigArgs
                    {
                        NodePoolConfig = new Gcp.GkeOnPrem.Inputs.BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigArgs
                        {
                            Labels = null,
                            OperatingSystem = "LINUX",
                            NodeConfigs = new[]
                            {
                                new Gcp.GkeOnPrem.Inputs.BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfigArgs
                                {
                                    Labels = null,
                                    NodeIp = "10.200.0.9",
                                },
                            },
                            Taints = new[]
                            {
                                new Gcp.GkeOnPrem.Inputs.BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigTaintArgs
                                {
                                    Key = "test-key",
                                    Value = "test-value",
                                    Effect = "NO_EXECUTE",
                                },
                            },
                            KubeletConfig = new Gcp.GkeOnPrem.Inputs.BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigKubeletConfigArgs
                            {
                                RegistryPullQps = 10,
                                RegistryBurst = 12,
                                SerializeImagePullsDisabled = true,
                            },
                        },
                    },
                },
            },
            Storage = new Gcp.GkeOnPrem.Inputs.BareMetalClusterStorageArgs
            {
                LvpShareConfig = new Gcp.GkeOnPrem.Inputs.BareMetalClusterStorageLvpShareConfigArgs
                {
                    LvpConfig = new Gcp.GkeOnPrem.Inputs.BareMetalClusterStorageLvpShareConfigLvpConfigArgs
                    {
                        Path = "/mnt/localpv-share",
                        StorageClass = "local-shared",
                    },
                    SharedPathPvCount = 5,
                },
                LvpNodeMountsConfig = new Gcp.GkeOnPrem.Inputs.BareMetalClusterStorageLvpNodeMountsConfigArgs
                {
                    Path = "/mnt/localpv-disk",
                    StorageClass = "local-disks",
                },
            },
            SecurityConfig = new Gcp.GkeOnPrem.Inputs.BareMetalClusterSecurityConfigArgs
            {
                Authorization = new Gcp.GkeOnPrem.Inputs.BareMetalClusterSecurityConfigAuthorizationArgs
                {
                    AdminUsers = new[]
                    {
                        new Gcp.GkeOnPrem.Inputs.BareMetalClusterSecurityConfigAuthorizationAdminUserArgs
                        {
                            Username = "admin@hashicorptest.com",
                        },
                    },
                },
            },
            Proxy = new Gcp.GkeOnPrem.Inputs.BareMetalClusterProxyArgs
            {
                Uri = "http://test-domain/test",
                NoProxies = new[]
                {
                    "127.0.0.1",
                },
            },
            ClusterOperations = new Gcp.GkeOnPrem.Inputs.BareMetalClusterClusterOperationsArgs
            {
                EnableApplicationLogs = true,
            },
            MaintenanceConfig = new Gcp.GkeOnPrem.Inputs.BareMetalClusterMaintenanceConfigArgs
            {
                MaintenanceAddressCidrBlocks = new[]
                {
                    "192.168.0.1/20",
                },
            },
            NodeConfig = new Gcp.GkeOnPrem.Inputs.BareMetalClusterNodeConfigArgs
            {
                MaxPodsPerNode = 10,
                ContainerRuntime = "CONTAINERD",
            },
            NodeAccessConfig = new Gcp.GkeOnPrem.Inputs.BareMetalClusterNodeAccessConfigArgs
            {
                LoginUser = "test@example.com",
            },
            OsEnvironmentConfig = new Gcp.GkeOnPrem.Inputs.BareMetalClusterOsEnvironmentConfigArgs
            {
                PackageRepoExcluded = true,
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.gcp.gkeonprem.BareMetalCluster;
    import com.pulumi.gcp.gkeonprem.BareMetalClusterArgs;
    import com.pulumi.gcp.gkeonprem.inputs.BareMetalClusterNetworkConfigArgs;
    import com.pulumi.gcp.gkeonprem.inputs.BareMetalClusterNetworkConfigIslandModeCidrArgs;
    import com.pulumi.gcp.gkeonprem.inputs.BareMetalClusterNetworkConfigMultipleNetworkInterfacesConfigArgs;
    import com.pulumi.gcp.gkeonprem.inputs.BareMetalClusterNetworkConfigSrIovConfigArgs;
    import com.pulumi.gcp.gkeonprem.inputs.BareMetalClusterControlPlaneArgs;
    import com.pulumi.gcp.gkeonprem.inputs.BareMetalClusterControlPlaneControlPlaneNodePoolConfigArgs;
    import com.pulumi.gcp.gkeonprem.inputs.BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigArgs;
    import com.pulumi.gcp.gkeonprem.inputs.BareMetalClusterLoadBalancerArgs;
    import com.pulumi.gcp.gkeonprem.inputs.BareMetalClusterLoadBalancerPortConfigArgs;
    import com.pulumi.gcp.gkeonprem.inputs.BareMetalClusterLoadBalancerVipConfigArgs;
    import com.pulumi.gcp.gkeonprem.inputs.BareMetalClusterLoadBalancerBgpLbConfigArgs;
    import com.pulumi.gcp.gkeonprem.inputs.BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigArgs;
    import com.pulumi.gcp.gkeonprem.inputs.BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigArgs;
    import com.pulumi.gcp.gkeonprem.inputs.BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigKubeletConfigArgs;
    import com.pulumi.gcp.gkeonprem.inputs.BareMetalClusterStorageArgs;
    import com.pulumi.gcp.gkeonprem.inputs.BareMetalClusterStorageLvpShareConfigArgs;
    import com.pulumi.gcp.gkeonprem.inputs.BareMetalClusterStorageLvpShareConfigLvpConfigArgs;
    import com.pulumi.gcp.gkeonprem.inputs.BareMetalClusterStorageLvpNodeMountsConfigArgs;
    import com.pulumi.gcp.gkeonprem.inputs.BareMetalClusterSecurityConfigArgs;
    import com.pulumi.gcp.gkeonprem.inputs.BareMetalClusterSecurityConfigAuthorizationArgs;
    import com.pulumi.gcp.gkeonprem.inputs.BareMetalClusterProxyArgs;
    import com.pulumi.gcp.gkeonprem.inputs.BareMetalClusterClusterOperationsArgs;
    import com.pulumi.gcp.gkeonprem.inputs.BareMetalClusterMaintenanceConfigArgs;
    import com.pulumi.gcp.gkeonprem.inputs.BareMetalClusterNodeConfigArgs;
    import com.pulumi.gcp.gkeonprem.inputs.BareMetalClusterNodeAccessConfigArgs;
    import com.pulumi.gcp.gkeonprem.inputs.BareMetalClusterOsEnvironmentConfigArgs;
    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 cluster_bgplb = new BareMetalCluster("cluster-bgplb", BareMetalClusterArgs.builder()
                .name("cluster-bgplb")
                .location("us-west1")
                .adminClusterMembership("projects/870316890899/locations/global/memberships/gkeonprem-terraform-test")
                .bareMetalVersion("1.12.3")
                .networkConfig(BareMetalClusterNetworkConfigArgs.builder()
                    .islandModeCidr(BareMetalClusterNetworkConfigIslandModeCidrArgs.builder()
                        .serviceAddressCidrBlocks("172.26.0.0/16")
                        .podAddressCidrBlocks("10.240.0.0/13")
                        .build())
                    .advancedNetworking(true)
                    .multipleNetworkInterfacesConfig(BareMetalClusterNetworkConfigMultipleNetworkInterfacesConfigArgs.builder()
                        .enabled(true)
                        .build())
                    .srIovConfig(BareMetalClusterNetworkConfigSrIovConfigArgs.builder()
                        .enabled(true)
                        .build())
                    .build())
                .controlPlane(BareMetalClusterControlPlaneArgs.builder()
                    .controlPlaneNodePoolConfig(BareMetalClusterControlPlaneControlPlaneNodePoolConfigArgs.builder()
                        .nodePoolConfig(BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigArgs.builder()
                            .labels()
                            .operatingSystem("LINUX")
                            .nodeConfigs(BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfigArgs.builder()
                                .labels()
                                .nodeIp("10.200.0.9")
                                .build())
                            .taints(BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigTaintArgs.builder()
                                .key("test-key")
                                .value("test-value")
                                .effect("NO_EXECUTE")
                                .build())
                            .build())
                        .build())
                    .apiServerArgs(BareMetalClusterControlPlaneApiServerArgArgs.builder()
                        .argument("test-argument")
                        .value("test-value")
                        .build())
                    .build())
                .loadBalancer(BareMetalClusterLoadBalancerArgs.builder()
                    .portConfig(BareMetalClusterLoadBalancerPortConfigArgs.builder()
                        .controlPlaneLoadBalancerPort(443)
                        .build())
                    .vipConfig(BareMetalClusterLoadBalancerVipConfigArgs.builder()
                        .controlPlaneVip("10.200.0.13")
                        .ingressVip("10.200.0.14")
                        .build())
                    .bgpLbConfig(BareMetalClusterLoadBalancerBgpLbConfigArgs.builder()
                        .asn(123456)
                        .bgpPeerConfigs(BareMetalClusterLoadBalancerBgpLbConfigBgpPeerConfigArgs.builder()
                            .asn(123457)
                            .ipAddress("10.0.0.1")
                            .controlPlaneNodes("test-node")
                            .build())
                        .addressPools(BareMetalClusterLoadBalancerBgpLbConfigAddressPoolArgs.builder()
                            .pool("pool1")
                            .addresses(                        
                                "10.200.0.14/32",
                                "10.200.0.15/32",
                                "10.200.0.16/32",
                                "10.200.0.17/32",
                                "10.200.0.18/32",
                                "fd00:1::f/128",
                                "fd00:1::10/128",
                                "fd00:1::11/128",
                                "fd00:1::12/128")
                            .build())
                        .loadBalancerNodePoolConfig(BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigArgs.builder()
                            .nodePoolConfig(BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigArgs.builder()
                                .labels()
                                .operatingSystem("LINUX")
                                .nodeConfigs(BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfigArgs.builder()
                                    .labels()
                                    .nodeIp("10.200.0.9")
                                    .build())
                                .taints(BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigTaintArgs.builder()
                                    .key("test-key")
                                    .value("test-value")
                                    .effect("NO_EXECUTE")
                                    .build())
                                .kubeletConfig(BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigKubeletConfigArgs.builder()
                                    .registryPullQps(10)
                                    .registryBurst(12)
                                    .serializeImagePullsDisabled(true)
                                    .build())
                                .build())
                            .build())
                        .build())
                    .build())
                .storage(BareMetalClusterStorageArgs.builder()
                    .lvpShareConfig(BareMetalClusterStorageLvpShareConfigArgs.builder()
                        .lvpConfig(BareMetalClusterStorageLvpShareConfigLvpConfigArgs.builder()
                            .path("/mnt/localpv-share")
                            .storageClass("local-shared")
                            .build())
                        .sharedPathPvCount(5)
                        .build())
                    .lvpNodeMountsConfig(BareMetalClusterStorageLvpNodeMountsConfigArgs.builder()
                        .path("/mnt/localpv-disk")
                        .storageClass("local-disks")
                        .build())
                    .build())
                .securityConfig(BareMetalClusterSecurityConfigArgs.builder()
                    .authorization(BareMetalClusterSecurityConfigAuthorizationArgs.builder()
                        .adminUsers(BareMetalClusterSecurityConfigAuthorizationAdminUserArgs.builder()
                            .username("admin@hashicorptest.com")
                            .build())
                        .build())
                    .build())
                .proxy(BareMetalClusterProxyArgs.builder()
                    .uri("http://test-domain/test")
                    .noProxies("127.0.0.1")
                    .build())
                .clusterOperations(BareMetalClusterClusterOperationsArgs.builder()
                    .enableApplicationLogs(true)
                    .build())
                .maintenanceConfig(BareMetalClusterMaintenanceConfigArgs.builder()
                    .maintenanceAddressCidrBlocks("192.168.0.1/20")
                    .build())
                .nodeConfig(BareMetalClusterNodeConfigArgs.builder()
                    .maxPodsPerNode(10)
                    .containerRuntime("CONTAINERD")
                    .build())
                .nodeAccessConfig(BareMetalClusterNodeAccessConfigArgs.builder()
                    .loginUser("test@example.com")
                    .build())
                .osEnvironmentConfig(BareMetalClusterOsEnvironmentConfigArgs.builder()
                    .packageRepoExcluded(true)
                    .build())
                .build());
    
        }
    }
    
    resources:
      cluster-bgplb:
        type: gcp:gkeonprem:BareMetalCluster
        properties:
          name: cluster-bgplb
          location: us-west1
          adminClusterMembership: projects/870316890899/locations/global/memberships/gkeonprem-terraform-test
          bareMetalVersion: 1.12.3
          networkConfig:
            islandModeCidr:
              serviceAddressCidrBlocks:
                - 172.26.0.0/16
              podAddressCidrBlocks:
                - 10.240.0.0/13
            advancedNetworking: true
            multipleNetworkInterfacesConfig:
              enabled: true
            srIovConfig:
              enabled: true
          controlPlane:
            controlPlaneNodePoolConfig:
              nodePoolConfig:
                labels: {}
                operatingSystem: LINUX
                nodeConfigs:
                  - labels: {}
                    nodeIp: 10.200.0.9
                taints:
                  - key: test-key
                    value: test-value
                    effect: NO_EXECUTE
            apiServerArgs:
              - argument: test-argument
                value: test-value
          loadBalancer:
            portConfig:
              controlPlaneLoadBalancerPort: 443
            vipConfig:
              controlPlaneVip: 10.200.0.13
              ingressVip: 10.200.0.14
            bgpLbConfig:
              asn: 123456
              bgpPeerConfigs:
                - asn: 123457
                  ipAddress: 10.0.0.1
                  controlPlaneNodes:
                    - test-node
              addressPools:
                - pool: pool1
                  addresses:
                    - 10.200.0.14/32
                    - 10.200.0.15/32
                    - 10.200.0.16/32
                    - 10.200.0.17/32
                    - 10.200.0.18/32
                    - fd00:1::f/128
                    - fd00:1::10/128
                    - fd00:1::11/128
                    - fd00:1::12/128
              loadBalancerNodePoolConfig:
                nodePoolConfig:
                  labels: {}
                  operatingSystem: LINUX
                  nodeConfigs:
                    - labels: {}
                      nodeIp: 10.200.0.9
                  taints:
                    - key: test-key
                      value: test-value
                      effect: NO_EXECUTE
                  kubeletConfig:
                    registryPullQps: 10
                    registryBurst: 12
                    serializeImagePullsDisabled: true
          storage:
            lvpShareConfig:
              lvpConfig:
                path: /mnt/localpv-share
                storageClass: local-shared
              sharedPathPvCount: 5
            lvpNodeMountsConfig:
              path: /mnt/localpv-disk
              storageClass: local-disks
          securityConfig:
            authorization:
              adminUsers:
                - username: admin@hashicorptest.com
          proxy:
            uri: http://test-domain/test
            noProxies:
              - 127.0.0.1
          clusterOperations:
            enableApplicationLogs: true
          maintenanceConfig:
            maintenanceAddressCidrBlocks:
              - 192.168.0.1/20
          nodeConfig:
            maxPodsPerNode: 10
            containerRuntime: CONTAINERD
          nodeAccessConfig:
            loginUser: test@example.com
          osEnvironmentConfig:
            packageRepoExcluded: true
    

    Create BareMetalCluster Resource

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

    Constructor syntax

    new BareMetalCluster(name: string, args: BareMetalClusterArgs, opts?: CustomResourceOptions);
    @overload
    def BareMetalCluster(resource_name: str,
                         args: BareMetalClusterArgs,
                         opts: Optional[ResourceOptions] = None)
    
    @overload
    def BareMetalCluster(resource_name: str,
                         opts: Optional[ResourceOptions] = None,
                         load_balancer: Optional[BareMetalClusterLoadBalancerArgs] = None,
                         storage: Optional[BareMetalClusterStorageArgs] = None,
                         bare_metal_version: Optional[str] = None,
                         network_config: Optional[BareMetalClusterNetworkConfigArgs] = None,
                         admin_cluster_membership: Optional[str] = None,
                         control_plane: Optional[BareMetalClusterControlPlaneArgs] = None,
                         location: Optional[str] = None,
                         name: Optional[str] = None,
                         description: Optional[str] = None,
                         maintenance_config: Optional[BareMetalClusterMaintenanceConfigArgs] = None,
                         cluster_operations: Optional[BareMetalClusterClusterOperationsArgs] = None,
                         binary_authorization: Optional[BareMetalClusterBinaryAuthorizationArgs] = None,
                         node_access_config: Optional[BareMetalClusterNodeAccessConfigArgs] = None,
                         node_config: Optional[BareMetalClusterNodeConfigArgs] = None,
                         os_environment_config: Optional[BareMetalClusterOsEnvironmentConfigArgs] = None,
                         project: Optional[str] = None,
                         proxy: Optional[BareMetalClusterProxyArgs] = None,
                         security_config: Optional[BareMetalClusterSecurityConfigArgs] = None,
                         annotations: Optional[Mapping[str, str]] = None,
                         upgrade_policy: Optional[BareMetalClusterUpgradePolicyArgs] = None)
    func NewBareMetalCluster(ctx *Context, name string, args BareMetalClusterArgs, opts ...ResourceOption) (*BareMetalCluster, error)
    public BareMetalCluster(string name, BareMetalClusterArgs args, CustomResourceOptions? opts = null)
    public BareMetalCluster(String name, BareMetalClusterArgs args)
    public BareMetalCluster(String name, BareMetalClusterArgs args, CustomResourceOptions options)
    
    type: gcp:gkeonprem:BareMetalCluster
    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 BareMetalClusterArgs
    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 BareMetalClusterArgs
    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 BareMetalClusterArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args BareMetalClusterArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args BareMetalClusterArgs
    The arguments to resource properties.
    options CustomResourceOptions
    Bag of options to control resource's behavior.

    Example

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

    var bareMetalClusterResource = new Gcp.GkeOnPrem.BareMetalCluster("bareMetalClusterResource", new()
    {
        LoadBalancer = new Gcp.GkeOnPrem.Inputs.BareMetalClusterLoadBalancerArgs
        {
            PortConfig = new Gcp.GkeOnPrem.Inputs.BareMetalClusterLoadBalancerPortConfigArgs
            {
                ControlPlaneLoadBalancerPort = 0,
            },
            VipConfig = new Gcp.GkeOnPrem.Inputs.BareMetalClusterLoadBalancerVipConfigArgs
            {
                ControlPlaneVip = "string",
                IngressVip = "string",
            },
            BgpLbConfig = new Gcp.GkeOnPrem.Inputs.BareMetalClusterLoadBalancerBgpLbConfigArgs
            {
                AddressPools = new[]
                {
                    new Gcp.GkeOnPrem.Inputs.BareMetalClusterLoadBalancerBgpLbConfigAddressPoolArgs
                    {
                        Addresses = new[]
                        {
                            "string",
                        },
                        Pool = "string",
                        AvoidBuggyIps = false,
                        ManualAssign = "string",
                    },
                },
                Asn = 0,
                BgpPeerConfigs = new[]
                {
                    new Gcp.GkeOnPrem.Inputs.BareMetalClusterLoadBalancerBgpLbConfigBgpPeerConfigArgs
                    {
                        Asn = 0,
                        IpAddress = "string",
                        ControlPlaneNodes = new[]
                        {
                            "string",
                        },
                    },
                },
                LoadBalancerNodePoolConfig = new Gcp.GkeOnPrem.Inputs.BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigArgs
                {
                    NodePoolConfig = new Gcp.GkeOnPrem.Inputs.BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigArgs
                    {
                        KubeletConfig = new Gcp.GkeOnPrem.Inputs.BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigKubeletConfigArgs
                        {
                            RegistryBurst = 0,
                            RegistryPullQps = 0,
                            SerializeImagePullsDisabled = false,
                        },
                        Labels = 
                        {
                            { "string", "string" },
                        },
                        NodeConfigs = new[]
                        {
                            new Gcp.GkeOnPrem.Inputs.BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfigArgs
                            {
                                Labels = 
                                {
                                    { "string", "string" },
                                },
                                NodeIp = "string",
                            },
                        },
                        OperatingSystem = "string",
                        Taints = new[]
                        {
                            new Gcp.GkeOnPrem.Inputs.BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigTaintArgs
                            {
                                Effect = "string",
                                Key = "string",
                                Value = "string",
                            },
                        },
                    },
                },
            },
            ManualLbConfig = new Gcp.GkeOnPrem.Inputs.BareMetalClusterLoadBalancerManualLbConfigArgs
            {
                Enabled = false,
            },
            MetalLbConfig = new Gcp.GkeOnPrem.Inputs.BareMetalClusterLoadBalancerMetalLbConfigArgs
            {
                AddressPools = new[]
                {
                    new Gcp.GkeOnPrem.Inputs.BareMetalClusterLoadBalancerMetalLbConfigAddressPoolArgs
                    {
                        Addresses = new[]
                        {
                            "string",
                        },
                        Pool = "string",
                        AvoidBuggyIps = false,
                        ManualAssign = false,
                    },
                },
                LoadBalancerNodePoolConfig = new Gcp.GkeOnPrem.Inputs.BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigArgs
                {
                    NodePoolConfig = new Gcp.GkeOnPrem.Inputs.BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigArgs
                    {
                        Labels = 
                        {
                            { "string", "string" },
                        },
                        NodeConfigs = new[]
                        {
                            new Gcp.GkeOnPrem.Inputs.BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfigArgs
                            {
                                Labels = 
                                {
                                    { "string", "string" },
                                },
                                NodeIp = "string",
                            },
                        },
                        OperatingSystem = "string",
                        Taints = new[]
                        {
                            new Gcp.GkeOnPrem.Inputs.BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigTaintArgs
                            {
                                Effect = "string",
                                Key = "string",
                                Value = "string",
                            },
                        },
                    },
                },
            },
        },
        Storage = new Gcp.GkeOnPrem.Inputs.BareMetalClusterStorageArgs
        {
            LvpNodeMountsConfig = new Gcp.GkeOnPrem.Inputs.BareMetalClusterStorageLvpNodeMountsConfigArgs
            {
                Path = "string",
                StorageClass = "string",
            },
            LvpShareConfig = new Gcp.GkeOnPrem.Inputs.BareMetalClusterStorageLvpShareConfigArgs
            {
                LvpConfig = new Gcp.GkeOnPrem.Inputs.BareMetalClusterStorageLvpShareConfigLvpConfigArgs
                {
                    Path = "string",
                    StorageClass = "string",
                },
                SharedPathPvCount = 0,
            },
        },
        BareMetalVersion = "string",
        NetworkConfig = new Gcp.GkeOnPrem.Inputs.BareMetalClusterNetworkConfigArgs
        {
            AdvancedNetworking = false,
            IslandModeCidr = new Gcp.GkeOnPrem.Inputs.BareMetalClusterNetworkConfigIslandModeCidrArgs
            {
                PodAddressCidrBlocks = new[]
                {
                    "string",
                },
                ServiceAddressCidrBlocks = new[]
                {
                    "string",
                },
            },
            MultipleNetworkInterfacesConfig = new Gcp.GkeOnPrem.Inputs.BareMetalClusterNetworkConfigMultipleNetworkInterfacesConfigArgs
            {
                Enabled = false,
            },
            SrIovConfig = new Gcp.GkeOnPrem.Inputs.BareMetalClusterNetworkConfigSrIovConfigArgs
            {
                Enabled = false,
            },
        },
        AdminClusterMembership = "string",
        ControlPlane = new Gcp.GkeOnPrem.Inputs.BareMetalClusterControlPlaneArgs
        {
            ControlPlaneNodePoolConfig = new Gcp.GkeOnPrem.Inputs.BareMetalClusterControlPlaneControlPlaneNodePoolConfigArgs
            {
                NodePoolConfig = new Gcp.GkeOnPrem.Inputs.BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigArgs
                {
                    Labels = 
                    {
                        { "string", "string" },
                    },
                    NodeConfigs = new[]
                    {
                        new Gcp.GkeOnPrem.Inputs.BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfigArgs
                        {
                            Labels = 
                            {
                                { "string", "string" },
                            },
                            NodeIp = "string",
                        },
                    },
                    OperatingSystem = "string",
                    Taints = new[]
                    {
                        new Gcp.GkeOnPrem.Inputs.BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigTaintArgs
                        {
                            Effect = "string",
                            Key = "string",
                            Value = "string",
                        },
                    },
                },
            },
            ApiServerArgs = new[]
            {
                new Gcp.GkeOnPrem.Inputs.BareMetalClusterControlPlaneApiServerArgArgs
                {
                    Argument = "string",
                    Value = "string",
                },
            },
        },
        Location = "string",
        Name = "string",
        Description = "string",
        MaintenanceConfig = new Gcp.GkeOnPrem.Inputs.BareMetalClusterMaintenanceConfigArgs
        {
            MaintenanceAddressCidrBlocks = new[]
            {
                "string",
            },
        },
        ClusterOperations = new Gcp.GkeOnPrem.Inputs.BareMetalClusterClusterOperationsArgs
        {
            EnableApplicationLogs = false,
        },
        BinaryAuthorization = new Gcp.GkeOnPrem.Inputs.BareMetalClusterBinaryAuthorizationArgs
        {
            EvaluationMode = "string",
        },
        NodeAccessConfig = new Gcp.GkeOnPrem.Inputs.BareMetalClusterNodeAccessConfigArgs
        {
            LoginUser = "string",
        },
        NodeConfig = new Gcp.GkeOnPrem.Inputs.BareMetalClusterNodeConfigArgs
        {
            ContainerRuntime = "string",
            MaxPodsPerNode = 0,
        },
        OsEnvironmentConfig = new Gcp.GkeOnPrem.Inputs.BareMetalClusterOsEnvironmentConfigArgs
        {
            PackageRepoExcluded = false,
        },
        Project = "string",
        Proxy = new Gcp.GkeOnPrem.Inputs.BareMetalClusterProxyArgs
        {
            Uri = "string",
            NoProxies = new[]
            {
                "string",
            },
        },
        SecurityConfig = new Gcp.GkeOnPrem.Inputs.BareMetalClusterSecurityConfigArgs
        {
            Authorization = new Gcp.GkeOnPrem.Inputs.BareMetalClusterSecurityConfigAuthorizationArgs
            {
                AdminUsers = new[]
                {
                    new Gcp.GkeOnPrem.Inputs.BareMetalClusterSecurityConfigAuthorizationAdminUserArgs
                    {
                        Username = "string",
                    },
                },
            },
        },
        Annotations = 
        {
            { "string", "string" },
        },
        UpgradePolicy = new Gcp.GkeOnPrem.Inputs.BareMetalClusterUpgradePolicyArgs
        {
            Policy = "string",
        },
    });
    
    example, err := gkeonprem.NewBareMetalCluster(ctx, "bareMetalClusterResource", &gkeonprem.BareMetalClusterArgs{
    	LoadBalancer: &gkeonprem.BareMetalClusterLoadBalancerArgs{
    		PortConfig: &gkeonprem.BareMetalClusterLoadBalancerPortConfigArgs{
    			ControlPlaneLoadBalancerPort: pulumi.Int(0),
    		},
    		VipConfig: &gkeonprem.BareMetalClusterLoadBalancerVipConfigArgs{
    			ControlPlaneVip: pulumi.String("string"),
    			IngressVip:      pulumi.String("string"),
    		},
    		BgpLbConfig: &gkeonprem.BareMetalClusterLoadBalancerBgpLbConfigArgs{
    			AddressPools: gkeonprem.BareMetalClusterLoadBalancerBgpLbConfigAddressPoolArray{
    				&gkeonprem.BareMetalClusterLoadBalancerBgpLbConfigAddressPoolArgs{
    					Addresses: pulumi.StringArray{
    						pulumi.String("string"),
    					},
    					Pool:          pulumi.String("string"),
    					AvoidBuggyIps: pulumi.Bool(false),
    					ManualAssign:  pulumi.String("string"),
    				},
    			},
    			Asn: pulumi.Int(0),
    			BgpPeerConfigs: gkeonprem.BareMetalClusterLoadBalancerBgpLbConfigBgpPeerConfigArray{
    				&gkeonprem.BareMetalClusterLoadBalancerBgpLbConfigBgpPeerConfigArgs{
    					Asn:       pulumi.Int(0),
    					IpAddress: pulumi.String("string"),
    					ControlPlaneNodes: pulumi.StringArray{
    						pulumi.String("string"),
    					},
    				},
    			},
    			LoadBalancerNodePoolConfig: &gkeonprem.BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigArgs{
    				NodePoolConfig: &gkeonprem.BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigArgs{
    					KubeletConfig: &gkeonprem.BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigKubeletConfigArgs{
    						RegistryBurst:               pulumi.Int(0),
    						RegistryPullQps:             pulumi.Int(0),
    						SerializeImagePullsDisabled: pulumi.Bool(false),
    					},
    					Labels: pulumi.StringMap{
    						"string": pulumi.String("string"),
    					},
    					NodeConfigs: gkeonprem.BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfigArray{
    						&gkeonprem.BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfigArgs{
    							Labels: pulumi.StringMap{
    								"string": pulumi.String("string"),
    							},
    							NodeIp: pulumi.String("string"),
    						},
    					},
    					OperatingSystem: pulumi.String("string"),
    					Taints: gkeonprem.BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigTaintArray{
    						&gkeonprem.BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigTaintArgs{
    							Effect: pulumi.String("string"),
    							Key:    pulumi.String("string"),
    							Value:  pulumi.String("string"),
    						},
    					},
    				},
    			},
    		},
    		ManualLbConfig: &gkeonprem.BareMetalClusterLoadBalancerManualLbConfigArgs{
    			Enabled: pulumi.Bool(false),
    		},
    		MetalLbConfig: &gkeonprem.BareMetalClusterLoadBalancerMetalLbConfigArgs{
    			AddressPools: gkeonprem.BareMetalClusterLoadBalancerMetalLbConfigAddressPoolArray{
    				&gkeonprem.BareMetalClusterLoadBalancerMetalLbConfigAddressPoolArgs{
    					Addresses: pulumi.StringArray{
    						pulumi.String("string"),
    					},
    					Pool:          pulumi.String("string"),
    					AvoidBuggyIps: pulumi.Bool(false),
    					ManualAssign:  pulumi.Bool(false),
    				},
    			},
    			LoadBalancerNodePoolConfig: &gkeonprem.BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigArgs{
    				NodePoolConfig: &gkeonprem.BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigArgs{
    					Labels: pulumi.StringMap{
    						"string": pulumi.String("string"),
    					},
    					NodeConfigs: gkeonprem.BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfigArray{
    						&gkeonprem.BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfigArgs{
    							Labels: pulumi.StringMap{
    								"string": pulumi.String("string"),
    							},
    							NodeIp: pulumi.String("string"),
    						},
    					},
    					OperatingSystem: pulumi.String("string"),
    					Taints: gkeonprem.BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigTaintArray{
    						&gkeonprem.BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigTaintArgs{
    							Effect: pulumi.String("string"),
    							Key:    pulumi.String("string"),
    							Value:  pulumi.String("string"),
    						},
    					},
    				},
    			},
    		},
    	},
    	Storage: &gkeonprem.BareMetalClusterStorageArgs{
    		LvpNodeMountsConfig: &gkeonprem.BareMetalClusterStorageLvpNodeMountsConfigArgs{
    			Path:         pulumi.String("string"),
    			StorageClass: pulumi.String("string"),
    		},
    		LvpShareConfig: &gkeonprem.BareMetalClusterStorageLvpShareConfigArgs{
    			LvpConfig: &gkeonprem.BareMetalClusterStorageLvpShareConfigLvpConfigArgs{
    				Path:         pulumi.String("string"),
    				StorageClass: pulumi.String("string"),
    			},
    			SharedPathPvCount: pulumi.Int(0),
    		},
    	},
    	BareMetalVersion: pulumi.String("string"),
    	NetworkConfig: &gkeonprem.BareMetalClusterNetworkConfigArgs{
    		AdvancedNetworking: pulumi.Bool(false),
    		IslandModeCidr: &gkeonprem.BareMetalClusterNetworkConfigIslandModeCidrArgs{
    			PodAddressCidrBlocks: pulumi.StringArray{
    				pulumi.String("string"),
    			},
    			ServiceAddressCidrBlocks: pulumi.StringArray{
    				pulumi.String("string"),
    			},
    		},
    		MultipleNetworkInterfacesConfig: &gkeonprem.BareMetalClusterNetworkConfigMultipleNetworkInterfacesConfigArgs{
    			Enabled: pulumi.Bool(false),
    		},
    		SrIovConfig: &gkeonprem.BareMetalClusterNetworkConfigSrIovConfigArgs{
    			Enabled: pulumi.Bool(false),
    		},
    	},
    	AdminClusterMembership: pulumi.String("string"),
    	ControlPlane: &gkeonprem.BareMetalClusterControlPlaneArgs{
    		ControlPlaneNodePoolConfig: &gkeonprem.BareMetalClusterControlPlaneControlPlaneNodePoolConfigArgs{
    			NodePoolConfig: &gkeonprem.BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigArgs{
    				Labels: pulumi.StringMap{
    					"string": pulumi.String("string"),
    				},
    				NodeConfigs: gkeonprem.BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfigArray{
    					&gkeonprem.BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfigArgs{
    						Labels: pulumi.StringMap{
    							"string": pulumi.String("string"),
    						},
    						NodeIp: pulumi.String("string"),
    					},
    				},
    				OperatingSystem: pulumi.String("string"),
    				Taints: gkeonprem.BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigTaintArray{
    					&gkeonprem.BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigTaintArgs{
    						Effect: pulumi.String("string"),
    						Key:    pulumi.String("string"),
    						Value:  pulumi.String("string"),
    					},
    				},
    			},
    		},
    		ApiServerArgs: gkeonprem.BareMetalClusterControlPlaneApiServerArgArray{
    			&gkeonprem.BareMetalClusterControlPlaneApiServerArgArgs{
    				Argument: pulumi.String("string"),
    				Value:    pulumi.String("string"),
    			},
    		},
    	},
    	Location:    pulumi.String("string"),
    	Name:        pulumi.String("string"),
    	Description: pulumi.String("string"),
    	MaintenanceConfig: &gkeonprem.BareMetalClusterMaintenanceConfigArgs{
    		MaintenanceAddressCidrBlocks: pulumi.StringArray{
    			pulumi.String("string"),
    		},
    	},
    	ClusterOperations: &gkeonprem.BareMetalClusterClusterOperationsArgs{
    		EnableApplicationLogs: pulumi.Bool(false),
    	},
    	BinaryAuthorization: &gkeonprem.BareMetalClusterBinaryAuthorizationArgs{
    		EvaluationMode: pulumi.String("string"),
    	},
    	NodeAccessConfig: &gkeonprem.BareMetalClusterNodeAccessConfigArgs{
    		LoginUser: pulumi.String("string"),
    	},
    	NodeConfig: &gkeonprem.BareMetalClusterNodeConfigArgs{
    		ContainerRuntime: pulumi.String("string"),
    		MaxPodsPerNode:   pulumi.Int(0),
    	},
    	OsEnvironmentConfig: &gkeonprem.BareMetalClusterOsEnvironmentConfigArgs{
    		PackageRepoExcluded: pulumi.Bool(false),
    	},
    	Project: pulumi.String("string"),
    	Proxy: &gkeonprem.BareMetalClusterProxyArgs{
    		Uri: pulumi.String("string"),
    		NoProxies: pulumi.StringArray{
    			pulumi.String("string"),
    		},
    	},
    	SecurityConfig: &gkeonprem.BareMetalClusterSecurityConfigArgs{
    		Authorization: &gkeonprem.BareMetalClusterSecurityConfigAuthorizationArgs{
    			AdminUsers: gkeonprem.BareMetalClusterSecurityConfigAuthorizationAdminUserArray{
    				&gkeonprem.BareMetalClusterSecurityConfigAuthorizationAdminUserArgs{
    					Username: pulumi.String("string"),
    				},
    			},
    		},
    	},
    	Annotations: pulumi.StringMap{
    		"string": pulumi.String("string"),
    	},
    	UpgradePolicy: &gkeonprem.BareMetalClusterUpgradePolicyArgs{
    		Policy: pulumi.String("string"),
    	},
    })
    
    var bareMetalClusterResource = new BareMetalCluster("bareMetalClusterResource", BareMetalClusterArgs.builder()
        .loadBalancer(BareMetalClusterLoadBalancerArgs.builder()
            .portConfig(BareMetalClusterLoadBalancerPortConfigArgs.builder()
                .controlPlaneLoadBalancerPort(0)
                .build())
            .vipConfig(BareMetalClusterLoadBalancerVipConfigArgs.builder()
                .controlPlaneVip("string")
                .ingressVip("string")
                .build())
            .bgpLbConfig(BareMetalClusterLoadBalancerBgpLbConfigArgs.builder()
                .addressPools(BareMetalClusterLoadBalancerBgpLbConfigAddressPoolArgs.builder()
                    .addresses("string")
                    .pool("string")
                    .avoidBuggyIps(false)
                    .manualAssign("string")
                    .build())
                .asn(0)
                .bgpPeerConfigs(BareMetalClusterLoadBalancerBgpLbConfigBgpPeerConfigArgs.builder()
                    .asn(0)
                    .ipAddress("string")
                    .controlPlaneNodes("string")
                    .build())
                .loadBalancerNodePoolConfig(BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigArgs.builder()
                    .nodePoolConfig(BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigArgs.builder()
                        .kubeletConfig(BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigKubeletConfigArgs.builder()
                            .registryBurst(0)
                            .registryPullQps(0)
                            .serializeImagePullsDisabled(false)
                            .build())
                        .labels(Map.of("string", "string"))
                        .nodeConfigs(BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfigArgs.builder()
                            .labels(Map.of("string", "string"))
                            .nodeIp("string")
                            .build())
                        .operatingSystem("string")
                        .taints(BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigTaintArgs.builder()
                            .effect("string")
                            .key("string")
                            .value("string")
                            .build())
                        .build())
                    .build())
                .build())
            .manualLbConfig(BareMetalClusterLoadBalancerManualLbConfigArgs.builder()
                .enabled(false)
                .build())
            .metalLbConfig(BareMetalClusterLoadBalancerMetalLbConfigArgs.builder()
                .addressPools(BareMetalClusterLoadBalancerMetalLbConfigAddressPoolArgs.builder()
                    .addresses("string")
                    .pool("string")
                    .avoidBuggyIps(false)
                    .manualAssign(false)
                    .build())
                .loadBalancerNodePoolConfig(BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigArgs.builder()
                    .nodePoolConfig(BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigArgs.builder()
                        .labels(Map.of("string", "string"))
                        .nodeConfigs(BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfigArgs.builder()
                            .labels(Map.of("string", "string"))
                            .nodeIp("string")
                            .build())
                        .operatingSystem("string")
                        .taints(BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigTaintArgs.builder()
                            .effect("string")
                            .key("string")
                            .value("string")
                            .build())
                        .build())
                    .build())
                .build())
            .build())
        .storage(BareMetalClusterStorageArgs.builder()
            .lvpNodeMountsConfig(BareMetalClusterStorageLvpNodeMountsConfigArgs.builder()
                .path("string")
                .storageClass("string")
                .build())
            .lvpShareConfig(BareMetalClusterStorageLvpShareConfigArgs.builder()
                .lvpConfig(BareMetalClusterStorageLvpShareConfigLvpConfigArgs.builder()
                    .path("string")
                    .storageClass("string")
                    .build())
                .sharedPathPvCount(0)
                .build())
            .build())
        .bareMetalVersion("string")
        .networkConfig(BareMetalClusterNetworkConfigArgs.builder()
            .advancedNetworking(false)
            .islandModeCidr(BareMetalClusterNetworkConfigIslandModeCidrArgs.builder()
                .podAddressCidrBlocks("string")
                .serviceAddressCidrBlocks("string")
                .build())
            .multipleNetworkInterfacesConfig(BareMetalClusterNetworkConfigMultipleNetworkInterfacesConfigArgs.builder()
                .enabled(false)
                .build())
            .srIovConfig(BareMetalClusterNetworkConfigSrIovConfigArgs.builder()
                .enabled(false)
                .build())
            .build())
        .adminClusterMembership("string")
        .controlPlane(BareMetalClusterControlPlaneArgs.builder()
            .controlPlaneNodePoolConfig(BareMetalClusterControlPlaneControlPlaneNodePoolConfigArgs.builder()
                .nodePoolConfig(BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigArgs.builder()
                    .labels(Map.of("string", "string"))
                    .nodeConfigs(BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfigArgs.builder()
                        .labels(Map.of("string", "string"))
                        .nodeIp("string")
                        .build())
                    .operatingSystem("string")
                    .taints(BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigTaintArgs.builder()
                        .effect("string")
                        .key("string")
                        .value("string")
                        .build())
                    .build())
                .build())
            .apiServerArgs(BareMetalClusterControlPlaneApiServerArgArgs.builder()
                .argument("string")
                .value("string")
                .build())
            .build())
        .location("string")
        .name("string")
        .description("string")
        .maintenanceConfig(BareMetalClusterMaintenanceConfigArgs.builder()
            .maintenanceAddressCidrBlocks("string")
            .build())
        .clusterOperations(BareMetalClusterClusterOperationsArgs.builder()
            .enableApplicationLogs(false)
            .build())
        .binaryAuthorization(BareMetalClusterBinaryAuthorizationArgs.builder()
            .evaluationMode("string")
            .build())
        .nodeAccessConfig(BareMetalClusterNodeAccessConfigArgs.builder()
            .loginUser("string")
            .build())
        .nodeConfig(BareMetalClusterNodeConfigArgs.builder()
            .containerRuntime("string")
            .maxPodsPerNode(0)
            .build())
        .osEnvironmentConfig(BareMetalClusterOsEnvironmentConfigArgs.builder()
            .packageRepoExcluded(false)
            .build())
        .project("string")
        .proxy(BareMetalClusterProxyArgs.builder()
            .uri("string")
            .noProxies("string")
            .build())
        .securityConfig(BareMetalClusterSecurityConfigArgs.builder()
            .authorization(BareMetalClusterSecurityConfigAuthorizationArgs.builder()
                .adminUsers(BareMetalClusterSecurityConfigAuthorizationAdminUserArgs.builder()
                    .username("string")
                    .build())
                .build())
            .build())
        .annotations(Map.of("string", "string"))
        .upgradePolicy(BareMetalClusterUpgradePolicyArgs.builder()
            .policy("string")
            .build())
        .build());
    
    bare_metal_cluster_resource = gcp.gkeonprem.BareMetalCluster("bareMetalClusterResource",
        load_balancer=gcp.gkeonprem.BareMetalClusterLoadBalancerArgs(
            port_config=gcp.gkeonprem.BareMetalClusterLoadBalancerPortConfigArgs(
                control_plane_load_balancer_port=0,
            ),
            vip_config=gcp.gkeonprem.BareMetalClusterLoadBalancerVipConfigArgs(
                control_plane_vip="string",
                ingress_vip="string",
            ),
            bgp_lb_config=gcp.gkeonprem.BareMetalClusterLoadBalancerBgpLbConfigArgs(
                address_pools=[gcp.gkeonprem.BareMetalClusterLoadBalancerBgpLbConfigAddressPoolArgs(
                    addresses=["string"],
                    pool="string",
                    avoid_buggy_ips=False,
                    manual_assign="string",
                )],
                asn=0,
                bgp_peer_configs=[gcp.gkeonprem.BareMetalClusterLoadBalancerBgpLbConfigBgpPeerConfigArgs(
                    asn=0,
                    ip_address="string",
                    control_plane_nodes=["string"],
                )],
                load_balancer_node_pool_config=gcp.gkeonprem.BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigArgs(
                    node_pool_config=gcp.gkeonprem.BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigArgs(
                        kubelet_config=gcp.gkeonprem.BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigKubeletConfigArgs(
                            registry_burst=0,
                            registry_pull_qps=0,
                            serialize_image_pulls_disabled=False,
                        ),
                        labels={
                            "string": "string",
                        },
                        node_configs=[gcp.gkeonprem.BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfigArgs(
                            labels={
                                "string": "string",
                            },
                            node_ip="string",
                        )],
                        operating_system="string",
                        taints=[gcp.gkeonprem.BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigTaintArgs(
                            effect="string",
                            key="string",
                            value="string",
                        )],
                    ),
                ),
            ),
            manual_lb_config=gcp.gkeonprem.BareMetalClusterLoadBalancerManualLbConfigArgs(
                enabled=False,
            ),
            metal_lb_config=gcp.gkeonprem.BareMetalClusterLoadBalancerMetalLbConfigArgs(
                address_pools=[gcp.gkeonprem.BareMetalClusterLoadBalancerMetalLbConfigAddressPoolArgs(
                    addresses=["string"],
                    pool="string",
                    avoid_buggy_ips=False,
                    manual_assign=False,
                )],
                load_balancer_node_pool_config=gcp.gkeonprem.BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigArgs(
                    node_pool_config=gcp.gkeonprem.BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigArgs(
                        labels={
                            "string": "string",
                        },
                        node_configs=[gcp.gkeonprem.BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfigArgs(
                            labels={
                                "string": "string",
                            },
                            node_ip="string",
                        )],
                        operating_system="string",
                        taints=[gcp.gkeonprem.BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigTaintArgs(
                            effect="string",
                            key="string",
                            value="string",
                        )],
                    ),
                ),
            ),
        ),
        storage=gcp.gkeonprem.BareMetalClusterStorageArgs(
            lvp_node_mounts_config=gcp.gkeonprem.BareMetalClusterStorageLvpNodeMountsConfigArgs(
                path="string",
                storage_class="string",
            ),
            lvp_share_config=gcp.gkeonprem.BareMetalClusterStorageLvpShareConfigArgs(
                lvp_config=gcp.gkeonprem.BareMetalClusterStorageLvpShareConfigLvpConfigArgs(
                    path="string",
                    storage_class="string",
                ),
                shared_path_pv_count=0,
            ),
        ),
        bare_metal_version="string",
        network_config=gcp.gkeonprem.BareMetalClusterNetworkConfigArgs(
            advanced_networking=False,
            island_mode_cidr=gcp.gkeonprem.BareMetalClusterNetworkConfigIslandModeCidrArgs(
                pod_address_cidr_blocks=["string"],
                service_address_cidr_blocks=["string"],
            ),
            multiple_network_interfaces_config=gcp.gkeonprem.BareMetalClusterNetworkConfigMultipleNetworkInterfacesConfigArgs(
                enabled=False,
            ),
            sr_iov_config=gcp.gkeonprem.BareMetalClusterNetworkConfigSrIovConfigArgs(
                enabled=False,
            ),
        ),
        admin_cluster_membership="string",
        control_plane=gcp.gkeonprem.BareMetalClusterControlPlaneArgs(
            control_plane_node_pool_config=gcp.gkeonprem.BareMetalClusterControlPlaneControlPlaneNodePoolConfigArgs(
                node_pool_config=gcp.gkeonprem.BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigArgs(
                    labels={
                        "string": "string",
                    },
                    node_configs=[gcp.gkeonprem.BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfigArgs(
                        labels={
                            "string": "string",
                        },
                        node_ip="string",
                    )],
                    operating_system="string",
                    taints=[gcp.gkeonprem.BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigTaintArgs(
                        effect="string",
                        key="string",
                        value="string",
                    )],
                ),
            ),
            api_server_args=[gcp.gkeonprem.BareMetalClusterControlPlaneApiServerArgArgs(
                argument="string",
                value="string",
            )],
        ),
        location="string",
        name="string",
        description="string",
        maintenance_config=gcp.gkeonprem.BareMetalClusterMaintenanceConfigArgs(
            maintenance_address_cidr_blocks=["string"],
        ),
        cluster_operations=gcp.gkeonprem.BareMetalClusterClusterOperationsArgs(
            enable_application_logs=False,
        ),
        binary_authorization=gcp.gkeonprem.BareMetalClusterBinaryAuthorizationArgs(
            evaluation_mode="string",
        ),
        node_access_config=gcp.gkeonprem.BareMetalClusterNodeAccessConfigArgs(
            login_user="string",
        ),
        node_config=gcp.gkeonprem.BareMetalClusterNodeConfigArgs(
            container_runtime="string",
            max_pods_per_node=0,
        ),
        os_environment_config=gcp.gkeonprem.BareMetalClusterOsEnvironmentConfigArgs(
            package_repo_excluded=False,
        ),
        project="string",
        proxy=gcp.gkeonprem.BareMetalClusterProxyArgs(
            uri="string",
            no_proxies=["string"],
        ),
        security_config=gcp.gkeonprem.BareMetalClusterSecurityConfigArgs(
            authorization=gcp.gkeonprem.BareMetalClusterSecurityConfigAuthorizationArgs(
                admin_users=[gcp.gkeonprem.BareMetalClusterSecurityConfigAuthorizationAdminUserArgs(
                    username="string",
                )],
            ),
        ),
        annotations={
            "string": "string",
        },
        upgrade_policy=gcp.gkeonprem.BareMetalClusterUpgradePolicyArgs(
            policy="string",
        ))
    
    const bareMetalClusterResource = new gcp.gkeonprem.BareMetalCluster("bareMetalClusterResource", {
        loadBalancer: {
            portConfig: {
                controlPlaneLoadBalancerPort: 0,
            },
            vipConfig: {
                controlPlaneVip: "string",
                ingressVip: "string",
            },
            bgpLbConfig: {
                addressPools: [{
                    addresses: ["string"],
                    pool: "string",
                    avoidBuggyIps: false,
                    manualAssign: "string",
                }],
                asn: 0,
                bgpPeerConfigs: [{
                    asn: 0,
                    ipAddress: "string",
                    controlPlaneNodes: ["string"],
                }],
                loadBalancerNodePoolConfig: {
                    nodePoolConfig: {
                        kubeletConfig: {
                            registryBurst: 0,
                            registryPullQps: 0,
                            serializeImagePullsDisabled: false,
                        },
                        labels: {
                            string: "string",
                        },
                        nodeConfigs: [{
                            labels: {
                                string: "string",
                            },
                            nodeIp: "string",
                        }],
                        operatingSystem: "string",
                        taints: [{
                            effect: "string",
                            key: "string",
                            value: "string",
                        }],
                    },
                },
            },
            manualLbConfig: {
                enabled: false,
            },
            metalLbConfig: {
                addressPools: [{
                    addresses: ["string"],
                    pool: "string",
                    avoidBuggyIps: false,
                    manualAssign: false,
                }],
                loadBalancerNodePoolConfig: {
                    nodePoolConfig: {
                        labels: {
                            string: "string",
                        },
                        nodeConfigs: [{
                            labels: {
                                string: "string",
                            },
                            nodeIp: "string",
                        }],
                        operatingSystem: "string",
                        taints: [{
                            effect: "string",
                            key: "string",
                            value: "string",
                        }],
                    },
                },
            },
        },
        storage: {
            lvpNodeMountsConfig: {
                path: "string",
                storageClass: "string",
            },
            lvpShareConfig: {
                lvpConfig: {
                    path: "string",
                    storageClass: "string",
                },
                sharedPathPvCount: 0,
            },
        },
        bareMetalVersion: "string",
        networkConfig: {
            advancedNetworking: false,
            islandModeCidr: {
                podAddressCidrBlocks: ["string"],
                serviceAddressCidrBlocks: ["string"],
            },
            multipleNetworkInterfacesConfig: {
                enabled: false,
            },
            srIovConfig: {
                enabled: false,
            },
        },
        adminClusterMembership: "string",
        controlPlane: {
            controlPlaneNodePoolConfig: {
                nodePoolConfig: {
                    labels: {
                        string: "string",
                    },
                    nodeConfigs: [{
                        labels: {
                            string: "string",
                        },
                        nodeIp: "string",
                    }],
                    operatingSystem: "string",
                    taints: [{
                        effect: "string",
                        key: "string",
                        value: "string",
                    }],
                },
            },
            apiServerArgs: [{
                argument: "string",
                value: "string",
            }],
        },
        location: "string",
        name: "string",
        description: "string",
        maintenanceConfig: {
            maintenanceAddressCidrBlocks: ["string"],
        },
        clusterOperations: {
            enableApplicationLogs: false,
        },
        binaryAuthorization: {
            evaluationMode: "string",
        },
        nodeAccessConfig: {
            loginUser: "string",
        },
        nodeConfig: {
            containerRuntime: "string",
            maxPodsPerNode: 0,
        },
        osEnvironmentConfig: {
            packageRepoExcluded: false,
        },
        project: "string",
        proxy: {
            uri: "string",
            noProxies: ["string"],
        },
        securityConfig: {
            authorization: {
                adminUsers: [{
                    username: "string",
                }],
            },
        },
        annotations: {
            string: "string",
        },
        upgradePolicy: {
            policy: "string",
        },
    });
    
    type: gcp:gkeonprem:BareMetalCluster
    properties:
        adminClusterMembership: string
        annotations:
            string: string
        bareMetalVersion: string
        binaryAuthorization:
            evaluationMode: string
        clusterOperations:
            enableApplicationLogs: false
        controlPlane:
            apiServerArgs:
                - argument: string
                  value: string
            controlPlaneNodePoolConfig:
                nodePoolConfig:
                    labels:
                        string: string
                    nodeConfigs:
                        - labels:
                            string: string
                          nodeIp: string
                    operatingSystem: string
                    taints:
                        - effect: string
                          key: string
                          value: string
        description: string
        loadBalancer:
            bgpLbConfig:
                addressPools:
                    - addresses:
                        - string
                      avoidBuggyIps: false
                      manualAssign: string
                      pool: string
                asn: 0
                bgpPeerConfigs:
                    - asn: 0
                      controlPlaneNodes:
                        - string
                      ipAddress: string
                loadBalancerNodePoolConfig:
                    nodePoolConfig:
                        kubeletConfig:
                            registryBurst: 0
                            registryPullQps: 0
                            serializeImagePullsDisabled: false
                        labels:
                            string: string
                        nodeConfigs:
                            - labels:
                                string: string
                              nodeIp: string
                        operatingSystem: string
                        taints:
                            - effect: string
                              key: string
                              value: string
            manualLbConfig:
                enabled: false
            metalLbConfig:
                addressPools:
                    - addresses:
                        - string
                      avoidBuggyIps: false
                      manualAssign: false
                      pool: string
                loadBalancerNodePoolConfig:
                    nodePoolConfig:
                        labels:
                            string: string
                        nodeConfigs:
                            - labels:
                                string: string
                              nodeIp: string
                        operatingSystem: string
                        taints:
                            - effect: string
                              key: string
                              value: string
            portConfig:
                controlPlaneLoadBalancerPort: 0
            vipConfig:
                controlPlaneVip: string
                ingressVip: string
        location: string
        maintenanceConfig:
            maintenanceAddressCidrBlocks:
                - string
        name: string
        networkConfig:
            advancedNetworking: false
            islandModeCidr:
                podAddressCidrBlocks:
                    - string
                serviceAddressCidrBlocks:
                    - string
            multipleNetworkInterfacesConfig:
                enabled: false
            srIovConfig:
                enabled: false
        nodeAccessConfig:
            loginUser: string
        nodeConfig:
            containerRuntime: string
            maxPodsPerNode: 0
        osEnvironmentConfig:
            packageRepoExcluded: false
        project: string
        proxy:
            noProxies:
                - string
            uri: string
        securityConfig:
            authorization:
                adminUsers:
                    - username: string
        storage:
            lvpNodeMountsConfig:
                path: string
                storageClass: string
            lvpShareConfig:
                lvpConfig:
                    path: string
                    storageClass: string
                sharedPathPvCount: 0
        upgradePolicy:
            policy: string
    

    BareMetalCluster 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 BareMetalCluster resource accepts the following input properties:

    AdminClusterMembership string
    The Admin Cluster this Bare Metal User Cluster belongs to. This is the full resource name of the Admin Cluster's hub membership.
    BareMetalVersion string
    A human readable description of this Bare Metal User Cluster.
    ControlPlane BareMetalClusterControlPlane
    Specifies the control plane configuration. Structure is documented below.
    LoadBalancer BareMetalClusterLoadBalancer
    Specifies the load balancer configuration. Structure is documented below.
    Location string
    The location of the resource.
    NetworkConfig BareMetalClusterNetworkConfig
    Network configuration. Structure is documented below.
    Storage BareMetalClusterStorage
    Specifies the cluster storage configuration. Structure is documented below.
    Annotations Dictionary<string, string>
    Annotations on the Bare Metal User Cluster. This field has the same restrictions as Kubernetes annotations. The total size of all keys and values combined is limited to 256k. Key can have 2 segments: prefix (optional) and name (required), separated by a slash (/). Prefix must be a DNS subdomain. Name must be 63 characters or less, begin and end with alphanumerics, with dashes (-), underscores (_), dots (.), and alphanumerics between. Note: This field is non-authoritative, and will only manage the annotations present in your configuration. Please refer to the field 'effective_annotations' for all of the annotations present on the resource.
    BinaryAuthorization BareMetalClusterBinaryAuthorization
    Binary Authorization related configurations.
    ClusterOperations BareMetalClusterClusterOperations
    Specifies the User Cluster's observability infrastructure.
    Description string
    (Output) The description of the validation check.
    MaintenanceConfig BareMetalClusterMaintenanceConfig
    Specifies the workload node configurations.
    Name string
    The bare metal cluster name.
    NodeAccessConfig BareMetalClusterNodeAccessConfig
    Specifies the node access related settings for the bare metal user cluster.
    NodeConfig BareMetalClusterNodeConfig
    Specifies the workload node configurations.
    OsEnvironmentConfig BareMetalClusterOsEnvironmentConfig
    OS environment related configurations.
    Project string
    Proxy BareMetalClusterProxy
    Specifies the cluster proxy configuration.
    SecurityConfig BareMetalClusterSecurityConfig
    Specifies the security related settings for the Bare Metal User Cluster.
    UpgradePolicy BareMetalClusterUpgradePolicy
    The cluster upgrade policy.
    AdminClusterMembership string
    The Admin Cluster this Bare Metal User Cluster belongs to. This is the full resource name of the Admin Cluster's hub membership.
    BareMetalVersion string
    A human readable description of this Bare Metal User Cluster.
    ControlPlane BareMetalClusterControlPlaneArgs
    Specifies the control plane configuration. Structure is documented below.
    LoadBalancer BareMetalClusterLoadBalancerArgs
    Specifies the load balancer configuration. Structure is documented below.
    Location string
    The location of the resource.
    NetworkConfig BareMetalClusterNetworkConfigArgs
    Network configuration. Structure is documented below.
    Storage BareMetalClusterStorageArgs
    Specifies the cluster storage configuration. Structure is documented below.
    Annotations map[string]string
    Annotations on the Bare Metal User Cluster. This field has the same restrictions as Kubernetes annotations. The total size of all keys and values combined is limited to 256k. Key can have 2 segments: prefix (optional) and name (required), separated by a slash (/). Prefix must be a DNS subdomain. Name must be 63 characters or less, begin and end with alphanumerics, with dashes (-), underscores (_), dots (.), and alphanumerics between. Note: This field is non-authoritative, and will only manage the annotations present in your configuration. Please refer to the field 'effective_annotations' for all of the annotations present on the resource.
    BinaryAuthorization BareMetalClusterBinaryAuthorizationArgs
    Binary Authorization related configurations.
    ClusterOperations BareMetalClusterClusterOperationsArgs
    Specifies the User Cluster's observability infrastructure.
    Description string
    (Output) The description of the validation check.
    MaintenanceConfig BareMetalClusterMaintenanceConfigArgs
    Specifies the workload node configurations.
    Name string
    The bare metal cluster name.
    NodeAccessConfig BareMetalClusterNodeAccessConfigArgs
    Specifies the node access related settings for the bare metal user cluster.
    NodeConfig BareMetalClusterNodeConfigArgs
    Specifies the workload node configurations.
    OsEnvironmentConfig BareMetalClusterOsEnvironmentConfigArgs
    OS environment related configurations.
    Project string
    Proxy BareMetalClusterProxyArgs
    Specifies the cluster proxy configuration.
    SecurityConfig BareMetalClusterSecurityConfigArgs
    Specifies the security related settings for the Bare Metal User Cluster.
    UpgradePolicy BareMetalClusterUpgradePolicyArgs
    The cluster upgrade policy.
    adminClusterMembership String
    The Admin Cluster this Bare Metal User Cluster belongs to. This is the full resource name of the Admin Cluster's hub membership.
    bareMetalVersion String
    A human readable description of this Bare Metal User Cluster.
    controlPlane BareMetalClusterControlPlane
    Specifies the control plane configuration. Structure is documented below.
    loadBalancer BareMetalClusterLoadBalancer
    Specifies the load balancer configuration. Structure is documented below.
    location String
    The location of the resource.
    networkConfig BareMetalClusterNetworkConfig
    Network configuration. Structure is documented below.
    storage BareMetalClusterStorage
    Specifies the cluster storage configuration. Structure is documented below.
    annotations Map<String,String>
    Annotations on the Bare Metal User Cluster. This field has the same restrictions as Kubernetes annotations. The total size of all keys and values combined is limited to 256k. Key can have 2 segments: prefix (optional) and name (required), separated by a slash (/). Prefix must be a DNS subdomain. Name must be 63 characters or less, begin and end with alphanumerics, with dashes (-), underscores (_), dots (.), and alphanumerics between. Note: This field is non-authoritative, and will only manage the annotations present in your configuration. Please refer to the field 'effective_annotations' for all of the annotations present on the resource.
    binaryAuthorization BareMetalClusterBinaryAuthorization
    Binary Authorization related configurations.
    clusterOperations BareMetalClusterClusterOperations
    Specifies the User Cluster's observability infrastructure.
    description String
    (Output) The description of the validation check.
    maintenanceConfig BareMetalClusterMaintenanceConfig
    Specifies the workload node configurations.
    name String
    The bare metal cluster name.
    nodeAccessConfig BareMetalClusterNodeAccessConfig
    Specifies the node access related settings for the bare metal user cluster.
    nodeConfig BareMetalClusterNodeConfig
    Specifies the workload node configurations.
    osEnvironmentConfig BareMetalClusterOsEnvironmentConfig
    OS environment related configurations.
    project String
    proxy BareMetalClusterProxy
    Specifies the cluster proxy configuration.
    securityConfig BareMetalClusterSecurityConfig
    Specifies the security related settings for the Bare Metal User Cluster.
    upgradePolicy BareMetalClusterUpgradePolicy
    The cluster upgrade policy.
    adminClusterMembership string
    The Admin Cluster this Bare Metal User Cluster belongs to. This is the full resource name of the Admin Cluster's hub membership.
    bareMetalVersion string
    A human readable description of this Bare Metal User Cluster.
    controlPlane BareMetalClusterControlPlane
    Specifies the control plane configuration. Structure is documented below.
    loadBalancer BareMetalClusterLoadBalancer
    Specifies the load balancer configuration. Structure is documented below.
    location string
    The location of the resource.
    networkConfig BareMetalClusterNetworkConfig
    Network configuration. Structure is documented below.
    storage BareMetalClusterStorage
    Specifies the cluster storage configuration. Structure is documented below.
    annotations {[key: string]: string}
    Annotations on the Bare Metal User Cluster. This field has the same restrictions as Kubernetes annotations. The total size of all keys and values combined is limited to 256k. Key can have 2 segments: prefix (optional) and name (required), separated by a slash (/). Prefix must be a DNS subdomain. Name must be 63 characters or less, begin and end with alphanumerics, with dashes (-), underscores (_), dots (.), and alphanumerics between. Note: This field is non-authoritative, and will only manage the annotations present in your configuration. Please refer to the field 'effective_annotations' for all of the annotations present on the resource.
    binaryAuthorization BareMetalClusterBinaryAuthorization
    Binary Authorization related configurations.
    clusterOperations BareMetalClusterClusterOperations
    Specifies the User Cluster's observability infrastructure.
    description string
    (Output) The description of the validation check.
    maintenanceConfig BareMetalClusterMaintenanceConfig
    Specifies the workload node configurations.
    name string
    The bare metal cluster name.
    nodeAccessConfig BareMetalClusterNodeAccessConfig
    Specifies the node access related settings for the bare metal user cluster.
    nodeConfig BareMetalClusterNodeConfig
    Specifies the workload node configurations.
    osEnvironmentConfig BareMetalClusterOsEnvironmentConfig
    OS environment related configurations.
    project string
    proxy BareMetalClusterProxy
    Specifies the cluster proxy configuration.
    securityConfig BareMetalClusterSecurityConfig
    Specifies the security related settings for the Bare Metal User Cluster.
    upgradePolicy BareMetalClusterUpgradePolicy
    The cluster upgrade policy.
    admin_cluster_membership str
    The Admin Cluster this Bare Metal User Cluster belongs to. This is the full resource name of the Admin Cluster's hub membership.
    bare_metal_version str
    A human readable description of this Bare Metal User Cluster.
    control_plane BareMetalClusterControlPlaneArgs
    Specifies the control plane configuration. Structure is documented below.
    load_balancer BareMetalClusterLoadBalancerArgs
    Specifies the load balancer configuration. Structure is documented below.
    location str
    The location of the resource.
    network_config BareMetalClusterNetworkConfigArgs
    Network configuration. Structure is documented below.
    storage BareMetalClusterStorageArgs
    Specifies the cluster storage configuration. Structure is documented below.
    annotations Mapping[str, str]
    Annotations on the Bare Metal User Cluster. This field has the same restrictions as Kubernetes annotations. The total size of all keys and values combined is limited to 256k. Key can have 2 segments: prefix (optional) and name (required), separated by a slash (/). Prefix must be a DNS subdomain. Name must be 63 characters or less, begin and end with alphanumerics, with dashes (-), underscores (_), dots (.), and alphanumerics between. Note: This field is non-authoritative, and will only manage the annotations present in your configuration. Please refer to the field 'effective_annotations' for all of the annotations present on the resource.
    binary_authorization BareMetalClusterBinaryAuthorizationArgs
    Binary Authorization related configurations.
    cluster_operations BareMetalClusterClusterOperationsArgs
    Specifies the User Cluster's observability infrastructure.
    description str
    (Output) The description of the validation check.
    maintenance_config BareMetalClusterMaintenanceConfigArgs
    Specifies the workload node configurations.
    name str
    The bare metal cluster name.
    node_access_config BareMetalClusterNodeAccessConfigArgs
    Specifies the node access related settings for the bare metal user cluster.
    node_config BareMetalClusterNodeConfigArgs
    Specifies the workload node configurations.
    os_environment_config BareMetalClusterOsEnvironmentConfigArgs
    OS environment related configurations.
    project str
    proxy BareMetalClusterProxyArgs
    Specifies the cluster proxy configuration.
    security_config BareMetalClusterSecurityConfigArgs
    Specifies the security related settings for the Bare Metal User Cluster.
    upgrade_policy BareMetalClusterUpgradePolicyArgs
    The cluster upgrade policy.
    adminClusterMembership String
    The Admin Cluster this Bare Metal User Cluster belongs to. This is the full resource name of the Admin Cluster's hub membership.
    bareMetalVersion String
    A human readable description of this Bare Metal User Cluster.
    controlPlane Property Map
    Specifies the control plane configuration. Structure is documented below.
    loadBalancer Property Map
    Specifies the load balancer configuration. Structure is documented below.
    location String
    The location of the resource.
    networkConfig Property Map
    Network configuration. Structure is documented below.
    storage Property Map
    Specifies the cluster storage configuration. Structure is documented below.
    annotations Map<String>
    Annotations on the Bare Metal User Cluster. This field has the same restrictions as Kubernetes annotations. The total size of all keys and values combined is limited to 256k. Key can have 2 segments: prefix (optional) and name (required), separated by a slash (/). Prefix must be a DNS subdomain. Name must be 63 characters or less, begin and end with alphanumerics, with dashes (-), underscores (_), dots (.), and alphanumerics between. Note: This field is non-authoritative, and will only manage the annotations present in your configuration. Please refer to the field 'effective_annotations' for all of the annotations present on the resource.
    binaryAuthorization Property Map
    Binary Authorization related configurations.
    clusterOperations Property Map
    Specifies the User Cluster's observability infrastructure.
    description String
    (Output) The description of the validation check.
    maintenanceConfig Property Map
    Specifies the workload node configurations.
    name String
    The bare metal cluster name.
    nodeAccessConfig Property Map
    Specifies the node access related settings for the bare metal user cluster.
    nodeConfig Property Map
    Specifies the workload node configurations.
    osEnvironmentConfig Property Map
    OS environment related configurations.
    project String
    proxy Property Map
    Specifies the cluster proxy configuration.
    securityConfig Property Map
    Specifies the security related settings for the Bare Metal User Cluster.
    upgradePolicy Property Map
    The cluster upgrade policy.

    Outputs

    All input properties are implicitly available as output properties. Additionally, the BareMetalCluster resource produces the following output properties:

    CreateTime string
    The time the cluster was created, in RFC3339 text format.
    DeleteTime string
    The time the cluster was deleted, in RFC3339 text format.
    EffectiveAnnotations Dictionary<string, string>
    Endpoint string
    The IP address name of Bare Metal User Cluster's API server.
    Etag string
    This checksum is computed by the server based on the value of other fields, and may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding. Allows clients to perform consistent read-modify-writes through optimistic concurrency control.
    Fleets List<BareMetalClusterFleet>
    Fleet related configuration. Fleets are a Google Cloud concept for logically organizing clusters, letting you use and manage multi-cluster capabilities and apply consistent policies across your systems. See Anthos Fleets for more details on Anthos multi-cluster capabilities using Fleets. Structure is documented below.
    Id string
    The provider-assigned unique ID for this managed resource.
    LocalName string
    The object name of the Bare Metal Cluster custom resource on the associated admin cluster. This field is used to support conflicting names when enrolling existing clusters to the API. When used as a part of cluster enrollment, this field will differ from the ID in the resource name. For new clusters, this field will match the user provided cluster ID and be visible in the last component of the resource name. It is not modifiable. All users should use this name to access their cluster using gkectl or kubectl and should expect to see the local name when viewing admin cluster controller logs.
    Reconciling bool
    If set, there are currently changes in flight to the Bare Metal User Cluster.
    State string
    (Output) The lifecycle state of the condition.
    Statuses List<BareMetalClusterStatus>
    (Output) Specifies the detailed validation check status Structure is documented below.
    Uid string
    The unique identifier of the Bare Metal User Cluster.
    UpdateTime string
    The time the cluster was last updated, in RFC3339 text format.
    ValidationChecks List<BareMetalClusterValidationCheck>
    Specifies the security related settings for the Bare Metal User Cluster. Structure is documented below.
    CreateTime string
    The time the cluster was created, in RFC3339 text format.
    DeleteTime string
    The time the cluster was deleted, in RFC3339 text format.
    EffectiveAnnotations map[string]string
    Endpoint string
    The IP address name of Bare Metal User Cluster's API server.
    Etag string
    This checksum is computed by the server based on the value of other fields, and may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding. Allows clients to perform consistent read-modify-writes through optimistic concurrency control.
    Fleets []BareMetalClusterFleet
    Fleet related configuration. Fleets are a Google Cloud concept for logically organizing clusters, letting you use and manage multi-cluster capabilities and apply consistent policies across your systems. See Anthos Fleets for more details on Anthos multi-cluster capabilities using Fleets. Structure is documented below.
    Id string
    The provider-assigned unique ID for this managed resource.
    LocalName string
    The object name of the Bare Metal Cluster custom resource on the associated admin cluster. This field is used to support conflicting names when enrolling existing clusters to the API. When used as a part of cluster enrollment, this field will differ from the ID in the resource name. For new clusters, this field will match the user provided cluster ID and be visible in the last component of the resource name. It is not modifiable. All users should use this name to access their cluster using gkectl or kubectl and should expect to see the local name when viewing admin cluster controller logs.
    Reconciling bool
    If set, there are currently changes in flight to the Bare Metal User Cluster.
    State string
    (Output) The lifecycle state of the condition.
    Statuses []BareMetalClusterStatus
    (Output) Specifies the detailed validation check status Structure is documented below.
    Uid string
    The unique identifier of the Bare Metal User Cluster.
    UpdateTime string
    The time the cluster was last updated, in RFC3339 text format.
    ValidationChecks []BareMetalClusterValidationCheck
    Specifies the security related settings for the Bare Metal User Cluster. Structure is documented below.
    createTime String
    The time the cluster was created, in RFC3339 text format.
    deleteTime String
    The time the cluster was deleted, in RFC3339 text format.
    effectiveAnnotations Map<String,String>
    endpoint String
    The IP address name of Bare Metal User Cluster's API server.
    etag String
    This checksum is computed by the server based on the value of other fields, and may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding. Allows clients to perform consistent read-modify-writes through optimistic concurrency control.
    fleets List<BareMetalClusterFleet>
    Fleet related configuration. Fleets are a Google Cloud concept for logically organizing clusters, letting you use and manage multi-cluster capabilities and apply consistent policies across your systems. See Anthos Fleets for more details on Anthos multi-cluster capabilities using Fleets. Structure is documented below.
    id String
    The provider-assigned unique ID for this managed resource.
    localName String
    The object name of the Bare Metal Cluster custom resource on the associated admin cluster. This field is used to support conflicting names when enrolling existing clusters to the API. When used as a part of cluster enrollment, this field will differ from the ID in the resource name. For new clusters, this field will match the user provided cluster ID and be visible in the last component of the resource name. It is not modifiable. All users should use this name to access their cluster using gkectl or kubectl and should expect to see the local name when viewing admin cluster controller logs.
    reconciling Boolean
    If set, there are currently changes in flight to the Bare Metal User Cluster.
    state String
    (Output) The lifecycle state of the condition.
    statuses List<BareMetalClusterStatus>
    (Output) Specifies the detailed validation check status Structure is documented below.
    uid String
    The unique identifier of the Bare Metal User Cluster.
    updateTime String
    The time the cluster was last updated, in RFC3339 text format.
    validationChecks List<BareMetalClusterValidationCheck>
    Specifies the security related settings for the Bare Metal User Cluster. Structure is documented below.
    createTime string
    The time the cluster was created, in RFC3339 text format.
    deleteTime string
    The time the cluster was deleted, in RFC3339 text format.
    effectiveAnnotations {[key: string]: string}
    endpoint string
    The IP address name of Bare Metal User Cluster's API server.
    etag string
    This checksum is computed by the server based on the value of other fields, and may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding. Allows clients to perform consistent read-modify-writes through optimistic concurrency control.
    fleets BareMetalClusterFleet[]
    Fleet related configuration. Fleets are a Google Cloud concept for logically organizing clusters, letting you use and manage multi-cluster capabilities and apply consistent policies across your systems. See Anthos Fleets for more details on Anthos multi-cluster capabilities using Fleets. Structure is documented below.
    id string
    The provider-assigned unique ID for this managed resource.
    localName string
    The object name of the Bare Metal Cluster custom resource on the associated admin cluster. This field is used to support conflicting names when enrolling existing clusters to the API. When used as a part of cluster enrollment, this field will differ from the ID in the resource name. For new clusters, this field will match the user provided cluster ID and be visible in the last component of the resource name. It is not modifiable. All users should use this name to access their cluster using gkectl or kubectl and should expect to see the local name when viewing admin cluster controller logs.
    reconciling boolean
    If set, there are currently changes in flight to the Bare Metal User Cluster.
    state string
    (Output) The lifecycle state of the condition.
    statuses BareMetalClusterStatus[]
    (Output) Specifies the detailed validation check status Structure is documented below.
    uid string
    The unique identifier of the Bare Metal User Cluster.
    updateTime string
    The time the cluster was last updated, in RFC3339 text format.
    validationChecks BareMetalClusterValidationCheck[]
    Specifies the security related settings for the Bare Metal User Cluster. Structure is documented below.
    create_time str
    The time the cluster was created, in RFC3339 text format.
    delete_time str
    The time the cluster was deleted, in RFC3339 text format.
    effective_annotations Mapping[str, str]
    endpoint str
    The IP address name of Bare Metal User Cluster's API server.
    etag str
    This checksum is computed by the server based on the value of other fields, and may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding. Allows clients to perform consistent read-modify-writes through optimistic concurrency control.
    fleets Sequence[BareMetalClusterFleet]
    Fleet related configuration. Fleets are a Google Cloud concept for logically organizing clusters, letting you use and manage multi-cluster capabilities and apply consistent policies across your systems. See Anthos Fleets for more details on Anthos multi-cluster capabilities using Fleets. Structure is documented below.
    id str
    The provider-assigned unique ID for this managed resource.
    local_name str
    The object name of the Bare Metal Cluster custom resource on the associated admin cluster. This field is used to support conflicting names when enrolling existing clusters to the API. When used as a part of cluster enrollment, this field will differ from the ID in the resource name. For new clusters, this field will match the user provided cluster ID and be visible in the last component of the resource name. It is not modifiable. All users should use this name to access their cluster using gkectl or kubectl and should expect to see the local name when viewing admin cluster controller logs.
    reconciling bool
    If set, there are currently changes in flight to the Bare Metal User Cluster.
    state str
    (Output) The lifecycle state of the condition.
    statuses Sequence[BareMetalClusterStatus]
    (Output) Specifies the detailed validation check status Structure is documented below.
    uid str
    The unique identifier of the Bare Metal User Cluster.
    update_time str
    The time the cluster was last updated, in RFC3339 text format.
    validation_checks Sequence[BareMetalClusterValidationCheck]
    Specifies the security related settings for the Bare Metal User Cluster. Structure is documented below.
    createTime String
    The time the cluster was created, in RFC3339 text format.
    deleteTime String
    The time the cluster was deleted, in RFC3339 text format.
    effectiveAnnotations Map<String>
    endpoint String
    The IP address name of Bare Metal User Cluster's API server.
    etag String
    This checksum is computed by the server based on the value of other fields, and may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding. Allows clients to perform consistent read-modify-writes through optimistic concurrency control.
    fleets List<Property Map>
    Fleet related configuration. Fleets are a Google Cloud concept for logically organizing clusters, letting you use and manage multi-cluster capabilities and apply consistent policies across your systems. See Anthos Fleets for more details on Anthos multi-cluster capabilities using Fleets. Structure is documented below.
    id String
    The provider-assigned unique ID for this managed resource.
    localName String
    The object name of the Bare Metal Cluster custom resource on the associated admin cluster. This field is used to support conflicting names when enrolling existing clusters to the API. When used as a part of cluster enrollment, this field will differ from the ID in the resource name. For new clusters, this field will match the user provided cluster ID and be visible in the last component of the resource name. It is not modifiable. All users should use this name to access their cluster using gkectl or kubectl and should expect to see the local name when viewing admin cluster controller logs.
    reconciling Boolean
    If set, there are currently changes in flight to the Bare Metal User Cluster.
    state String
    (Output) The lifecycle state of the condition.
    statuses List<Property Map>
    (Output) Specifies the detailed validation check status Structure is documented below.
    uid String
    The unique identifier of the Bare Metal User Cluster.
    updateTime String
    The time the cluster was last updated, in RFC3339 text format.
    validationChecks List<Property Map>
    Specifies the security related settings for the Bare Metal User Cluster. Structure is documented below.

    Look up Existing BareMetalCluster Resource

    Get an existing BareMetalCluster resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.

    public static get(name: string, id: Input<ID>, state?: BareMetalClusterState, opts?: CustomResourceOptions): BareMetalCluster
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            admin_cluster_membership: Optional[str] = None,
            annotations: Optional[Mapping[str, str]] = None,
            bare_metal_version: Optional[str] = None,
            binary_authorization: Optional[BareMetalClusterBinaryAuthorizationArgs] = None,
            cluster_operations: Optional[BareMetalClusterClusterOperationsArgs] = None,
            control_plane: Optional[BareMetalClusterControlPlaneArgs] = None,
            create_time: Optional[str] = None,
            delete_time: Optional[str] = None,
            description: Optional[str] = None,
            effective_annotations: Optional[Mapping[str, str]] = None,
            endpoint: Optional[str] = None,
            etag: Optional[str] = None,
            fleets: Optional[Sequence[BareMetalClusterFleetArgs]] = None,
            load_balancer: Optional[BareMetalClusterLoadBalancerArgs] = None,
            local_name: Optional[str] = None,
            location: Optional[str] = None,
            maintenance_config: Optional[BareMetalClusterMaintenanceConfigArgs] = None,
            name: Optional[str] = None,
            network_config: Optional[BareMetalClusterNetworkConfigArgs] = None,
            node_access_config: Optional[BareMetalClusterNodeAccessConfigArgs] = None,
            node_config: Optional[BareMetalClusterNodeConfigArgs] = None,
            os_environment_config: Optional[BareMetalClusterOsEnvironmentConfigArgs] = None,
            project: Optional[str] = None,
            proxy: Optional[BareMetalClusterProxyArgs] = None,
            reconciling: Optional[bool] = None,
            security_config: Optional[BareMetalClusterSecurityConfigArgs] = None,
            state: Optional[str] = None,
            statuses: Optional[Sequence[BareMetalClusterStatusArgs]] = None,
            storage: Optional[BareMetalClusterStorageArgs] = None,
            uid: Optional[str] = None,
            update_time: Optional[str] = None,
            upgrade_policy: Optional[BareMetalClusterUpgradePolicyArgs] = None,
            validation_checks: Optional[Sequence[BareMetalClusterValidationCheckArgs]] = None) -> BareMetalCluster
    func GetBareMetalCluster(ctx *Context, name string, id IDInput, state *BareMetalClusterState, opts ...ResourceOption) (*BareMetalCluster, error)
    public static BareMetalCluster Get(string name, Input<string> id, BareMetalClusterState? state, CustomResourceOptions? opts = null)
    public static BareMetalCluster get(String name, Output<String> id, BareMetalClusterState state, CustomResourceOptions options)
    Resource lookup is not supported in YAML
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    resource_name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    The following state arguments are supported:
    AdminClusterMembership string
    The Admin Cluster this Bare Metal User Cluster belongs to. This is the full resource name of the Admin Cluster's hub membership.
    Annotations Dictionary<string, string>
    Annotations on the Bare Metal User Cluster. This field has the same restrictions as Kubernetes annotations. The total size of all keys and values combined is limited to 256k. Key can have 2 segments: prefix (optional) and name (required), separated by a slash (/). Prefix must be a DNS subdomain. Name must be 63 characters or less, begin and end with alphanumerics, with dashes (-), underscores (_), dots (.), and alphanumerics between. Note: This field is non-authoritative, and will only manage the annotations present in your configuration. Please refer to the field 'effective_annotations' for all of the annotations present on the resource.
    BareMetalVersion string
    A human readable description of this Bare Metal User Cluster.
    BinaryAuthorization BareMetalClusterBinaryAuthorization
    Binary Authorization related configurations.
    ClusterOperations BareMetalClusterClusterOperations
    Specifies the User Cluster's observability infrastructure.
    ControlPlane BareMetalClusterControlPlane
    Specifies the control plane configuration. Structure is documented below.
    CreateTime string
    The time the cluster was created, in RFC3339 text format.
    DeleteTime string
    The time the cluster was deleted, in RFC3339 text format.
    Description string
    (Output) The description of the validation check.
    EffectiveAnnotations Dictionary<string, string>
    Endpoint string
    The IP address name of Bare Metal User Cluster's API server.
    Etag string
    This checksum is computed by the server based on the value of other fields, and may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding. Allows clients to perform consistent read-modify-writes through optimistic concurrency control.
    Fleets List<BareMetalClusterFleet>
    Fleet related configuration. Fleets are a Google Cloud concept for logically organizing clusters, letting you use and manage multi-cluster capabilities and apply consistent policies across your systems. See Anthos Fleets for more details on Anthos multi-cluster capabilities using Fleets. Structure is documented below.
    LoadBalancer BareMetalClusterLoadBalancer
    Specifies the load balancer configuration. Structure is documented below.
    LocalName string
    The object name of the Bare Metal Cluster custom resource on the associated admin cluster. This field is used to support conflicting names when enrolling existing clusters to the API. When used as a part of cluster enrollment, this field will differ from the ID in the resource name. For new clusters, this field will match the user provided cluster ID and be visible in the last component of the resource name. It is not modifiable. All users should use this name to access their cluster using gkectl or kubectl and should expect to see the local name when viewing admin cluster controller logs.
    Location string
    The location of the resource.
    MaintenanceConfig BareMetalClusterMaintenanceConfig
    Specifies the workload node configurations.
    Name string
    The bare metal cluster name.
    NetworkConfig BareMetalClusterNetworkConfig
    Network configuration. Structure is documented below.
    NodeAccessConfig BareMetalClusterNodeAccessConfig
    Specifies the node access related settings for the bare metal user cluster.
    NodeConfig BareMetalClusterNodeConfig
    Specifies the workload node configurations.
    OsEnvironmentConfig BareMetalClusterOsEnvironmentConfig
    OS environment related configurations.
    Project string
    Proxy BareMetalClusterProxy
    Specifies the cluster proxy configuration.
    Reconciling bool
    If set, there are currently changes in flight to the Bare Metal User Cluster.
    SecurityConfig BareMetalClusterSecurityConfig
    Specifies the security related settings for the Bare Metal User Cluster.
    State string
    (Output) The lifecycle state of the condition.
    Statuses List<BareMetalClusterStatus>
    (Output) Specifies the detailed validation check status Structure is documented below.
    Storage BareMetalClusterStorage
    Specifies the cluster storage configuration. Structure is documented below.
    Uid string
    The unique identifier of the Bare Metal User Cluster.
    UpdateTime string
    The time the cluster was last updated, in RFC3339 text format.
    UpgradePolicy BareMetalClusterUpgradePolicy
    The cluster upgrade policy.
    ValidationChecks List<BareMetalClusterValidationCheck>
    Specifies the security related settings for the Bare Metal User Cluster. Structure is documented below.
    AdminClusterMembership string
    The Admin Cluster this Bare Metal User Cluster belongs to. This is the full resource name of the Admin Cluster's hub membership.
    Annotations map[string]string
    Annotations on the Bare Metal User Cluster. This field has the same restrictions as Kubernetes annotations. The total size of all keys and values combined is limited to 256k. Key can have 2 segments: prefix (optional) and name (required), separated by a slash (/). Prefix must be a DNS subdomain. Name must be 63 characters or less, begin and end with alphanumerics, with dashes (-), underscores (_), dots (.), and alphanumerics between. Note: This field is non-authoritative, and will only manage the annotations present in your configuration. Please refer to the field 'effective_annotations' for all of the annotations present on the resource.
    BareMetalVersion string
    A human readable description of this Bare Metal User Cluster.
    BinaryAuthorization BareMetalClusterBinaryAuthorizationArgs
    Binary Authorization related configurations.
    ClusterOperations BareMetalClusterClusterOperationsArgs
    Specifies the User Cluster's observability infrastructure.
    ControlPlane BareMetalClusterControlPlaneArgs
    Specifies the control plane configuration. Structure is documented below.
    CreateTime string
    The time the cluster was created, in RFC3339 text format.
    DeleteTime string
    The time the cluster was deleted, in RFC3339 text format.
    Description string
    (Output) The description of the validation check.
    EffectiveAnnotations map[string]string
    Endpoint string
    The IP address name of Bare Metal User Cluster's API server.
    Etag string
    This checksum is computed by the server based on the value of other fields, and may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding. Allows clients to perform consistent read-modify-writes through optimistic concurrency control.
    Fleets []BareMetalClusterFleetArgs
    Fleet related configuration. Fleets are a Google Cloud concept for logically organizing clusters, letting you use and manage multi-cluster capabilities and apply consistent policies across your systems. See Anthos Fleets for more details on Anthos multi-cluster capabilities using Fleets. Structure is documented below.
    LoadBalancer BareMetalClusterLoadBalancerArgs
    Specifies the load balancer configuration. Structure is documented below.
    LocalName string
    The object name of the Bare Metal Cluster custom resource on the associated admin cluster. This field is used to support conflicting names when enrolling existing clusters to the API. When used as a part of cluster enrollment, this field will differ from the ID in the resource name. For new clusters, this field will match the user provided cluster ID and be visible in the last component of the resource name. It is not modifiable. All users should use this name to access their cluster using gkectl or kubectl and should expect to see the local name when viewing admin cluster controller logs.
    Location string
    The location of the resource.
    MaintenanceConfig BareMetalClusterMaintenanceConfigArgs
    Specifies the workload node configurations.
    Name string
    The bare metal cluster name.
    NetworkConfig BareMetalClusterNetworkConfigArgs
    Network configuration. Structure is documented below.
    NodeAccessConfig BareMetalClusterNodeAccessConfigArgs
    Specifies the node access related settings for the bare metal user cluster.
    NodeConfig BareMetalClusterNodeConfigArgs
    Specifies the workload node configurations.
    OsEnvironmentConfig BareMetalClusterOsEnvironmentConfigArgs
    OS environment related configurations.
    Project string
    Proxy BareMetalClusterProxyArgs
    Specifies the cluster proxy configuration.
    Reconciling bool
    If set, there are currently changes in flight to the Bare Metal User Cluster.
    SecurityConfig BareMetalClusterSecurityConfigArgs
    Specifies the security related settings for the Bare Metal User Cluster.
    State string
    (Output) The lifecycle state of the condition.
    Statuses []BareMetalClusterStatusArgs
    (Output) Specifies the detailed validation check status Structure is documented below.
    Storage BareMetalClusterStorageArgs
    Specifies the cluster storage configuration. Structure is documented below.
    Uid string
    The unique identifier of the Bare Metal User Cluster.
    UpdateTime string
    The time the cluster was last updated, in RFC3339 text format.
    UpgradePolicy BareMetalClusterUpgradePolicyArgs
    The cluster upgrade policy.
    ValidationChecks []BareMetalClusterValidationCheckArgs
    Specifies the security related settings for the Bare Metal User Cluster. Structure is documented below.
    adminClusterMembership String
    The Admin Cluster this Bare Metal User Cluster belongs to. This is the full resource name of the Admin Cluster's hub membership.
    annotations Map<String,String>
    Annotations on the Bare Metal User Cluster. This field has the same restrictions as Kubernetes annotations. The total size of all keys and values combined is limited to 256k. Key can have 2 segments: prefix (optional) and name (required), separated by a slash (/). Prefix must be a DNS subdomain. Name must be 63 characters or less, begin and end with alphanumerics, with dashes (-), underscores (_), dots (.), and alphanumerics between. Note: This field is non-authoritative, and will only manage the annotations present in your configuration. Please refer to the field 'effective_annotations' for all of the annotations present on the resource.
    bareMetalVersion String
    A human readable description of this Bare Metal User Cluster.
    binaryAuthorization BareMetalClusterBinaryAuthorization
    Binary Authorization related configurations.
    clusterOperations BareMetalClusterClusterOperations
    Specifies the User Cluster's observability infrastructure.
    controlPlane BareMetalClusterControlPlane
    Specifies the control plane configuration. Structure is documented below.
    createTime String
    The time the cluster was created, in RFC3339 text format.
    deleteTime String
    The time the cluster was deleted, in RFC3339 text format.
    description String
    (Output) The description of the validation check.
    effectiveAnnotations Map<String,String>
    endpoint String
    The IP address name of Bare Metal User Cluster's API server.
    etag String
    This checksum is computed by the server based on the value of other fields, and may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding. Allows clients to perform consistent read-modify-writes through optimistic concurrency control.
    fleets List<BareMetalClusterFleet>
    Fleet related configuration. Fleets are a Google Cloud concept for logically organizing clusters, letting you use and manage multi-cluster capabilities and apply consistent policies across your systems. See Anthos Fleets for more details on Anthos multi-cluster capabilities using Fleets. Structure is documented below.
    loadBalancer BareMetalClusterLoadBalancer
    Specifies the load balancer configuration. Structure is documented below.
    localName String
    The object name of the Bare Metal Cluster custom resource on the associated admin cluster. This field is used to support conflicting names when enrolling existing clusters to the API. When used as a part of cluster enrollment, this field will differ from the ID in the resource name. For new clusters, this field will match the user provided cluster ID and be visible in the last component of the resource name. It is not modifiable. All users should use this name to access their cluster using gkectl or kubectl and should expect to see the local name when viewing admin cluster controller logs.
    location String
    The location of the resource.
    maintenanceConfig BareMetalClusterMaintenanceConfig
    Specifies the workload node configurations.
    name String
    The bare metal cluster name.
    networkConfig BareMetalClusterNetworkConfig
    Network configuration. Structure is documented below.
    nodeAccessConfig BareMetalClusterNodeAccessConfig
    Specifies the node access related settings for the bare metal user cluster.
    nodeConfig BareMetalClusterNodeConfig
    Specifies the workload node configurations.
    osEnvironmentConfig BareMetalClusterOsEnvironmentConfig
    OS environment related configurations.
    project String
    proxy BareMetalClusterProxy
    Specifies the cluster proxy configuration.
    reconciling Boolean
    If set, there are currently changes in flight to the Bare Metal User Cluster.
    securityConfig BareMetalClusterSecurityConfig
    Specifies the security related settings for the Bare Metal User Cluster.
    state String
    (Output) The lifecycle state of the condition.
    statuses List<BareMetalClusterStatus>
    (Output) Specifies the detailed validation check status Structure is documented below.
    storage BareMetalClusterStorage
    Specifies the cluster storage configuration. Structure is documented below.
    uid String
    The unique identifier of the Bare Metal User Cluster.
    updateTime String
    The time the cluster was last updated, in RFC3339 text format.
    upgradePolicy BareMetalClusterUpgradePolicy
    The cluster upgrade policy.
    validationChecks List<BareMetalClusterValidationCheck>
    Specifies the security related settings for the Bare Metal User Cluster. Structure is documented below.
    adminClusterMembership string
    The Admin Cluster this Bare Metal User Cluster belongs to. This is the full resource name of the Admin Cluster's hub membership.
    annotations {[key: string]: string}
    Annotations on the Bare Metal User Cluster. This field has the same restrictions as Kubernetes annotations. The total size of all keys and values combined is limited to 256k. Key can have 2 segments: prefix (optional) and name (required), separated by a slash (/). Prefix must be a DNS subdomain. Name must be 63 characters or less, begin and end with alphanumerics, with dashes (-), underscores (_), dots (.), and alphanumerics between. Note: This field is non-authoritative, and will only manage the annotations present in your configuration. Please refer to the field 'effective_annotations' for all of the annotations present on the resource.
    bareMetalVersion string
    A human readable description of this Bare Metal User Cluster.
    binaryAuthorization BareMetalClusterBinaryAuthorization
    Binary Authorization related configurations.
    clusterOperations BareMetalClusterClusterOperations
    Specifies the User Cluster's observability infrastructure.
    controlPlane BareMetalClusterControlPlane
    Specifies the control plane configuration. Structure is documented below.
    createTime string
    The time the cluster was created, in RFC3339 text format.
    deleteTime string
    The time the cluster was deleted, in RFC3339 text format.
    description string
    (Output) The description of the validation check.
    effectiveAnnotations {[key: string]: string}
    endpoint string
    The IP address name of Bare Metal User Cluster's API server.
    etag string
    This checksum is computed by the server based on the value of other fields, and may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding. Allows clients to perform consistent read-modify-writes through optimistic concurrency control.
    fleets BareMetalClusterFleet[]
    Fleet related configuration. Fleets are a Google Cloud concept for logically organizing clusters, letting you use and manage multi-cluster capabilities and apply consistent policies across your systems. See Anthos Fleets for more details on Anthos multi-cluster capabilities using Fleets. Structure is documented below.
    loadBalancer BareMetalClusterLoadBalancer
    Specifies the load balancer configuration. Structure is documented below.
    localName string
    The object name of the Bare Metal Cluster custom resource on the associated admin cluster. This field is used to support conflicting names when enrolling existing clusters to the API. When used as a part of cluster enrollment, this field will differ from the ID in the resource name. For new clusters, this field will match the user provided cluster ID and be visible in the last component of the resource name. It is not modifiable. All users should use this name to access their cluster using gkectl or kubectl and should expect to see the local name when viewing admin cluster controller logs.
    location string
    The location of the resource.
    maintenanceConfig BareMetalClusterMaintenanceConfig
    Specifies the workload node configurations.
    name string
    The bare metal cluster name.
    networkConfig BareMetalClusterNetworkConfig
    Network configuration. Structure is documented below.
    nodeAccessConfig BareMetalClusterNodeAccessConfig
    Specifies the node access related settings for the bare metal user cluster.
    nodeConfig BareMetalClusterNodeConfig
    Specifies the workload node configurations.
    osEnvironmentConfig BareMetalClusterOsEnvironmentConfig
    OS environment related configurations.
    project string
    proxy BareMetalClusterProxy
    Specifies the cluster proxy configuration.
    reconciling boolean
    If set, there are currently changes in flight to the Bare Metal User Cluster.
    securityConfig BareMetalClusterSecurityConfig
    Specifies the security related settings for the Bare Metal User Cluster.
    state string
    (Output) The lifecycle state of the condition.
    statuses BareMetalClusterStatus[]
    (Output) Specifies the detailed validation check status Structure is documented below.
    storage BareMetalClusterStorage
    Specifies the cluster storage configuration. Structure is documented below.
    uid string
    The unique identifier of the Bare Metal User Cluster.
    updateTime string
    The time the cluster was last updated, in RFC3339 text format.
    upgradePolicy BareMetalClusterUpgradePolicy
    The cluster upgrade policy.
    validationChecks BareMetalClusterValidationCheck[]
    Specifies the security related settings for the Bare Metal User Cluster. Structure is documented below.
    admin_cluster_membership str
    The Admin Cluster this Bare Metal User Cluster belongs to. This is the full resource name of the Admin Cluster's hub membership.
    annotations Mapping[str, str]
    Annotations on the Bare Metal User Cluster. This field has the same restrictions as Kubernetes annotations. The total size of all keys and values combined is limited to 256k. Key can have 2 segments: prefix (optional) and name (required), separated by a slash (/). Prefix must be a DNS subdomain. Name must be 63 characters or less, begin and end with alphanumerics, with dashes (-), underscores (_), dots (.), and alphanumerics between. Note: This field is non-authoritative, and will only manage the annotations present in your configuration. Please refer to the field 'effective_annotations' for all of the annotations present on the resource.
    bare_metal_version str
    A human readable description of this Bare Metal User Cluster.
    binary_authorization BareMetalClusterBinaryAuthorizationArgs
    Binary Authorization related configurations.
    cluster_operations BareMetalClusterClusterOperationsArgs
    Specifies the User Cluster's observability infrastructure.
    control_plane BareMetalClusterControlPlaneArgs
    Specifies the control plane configuration. Structure is documented below.
    create_time str
    The time the cluster was created, in RFC3339 text format.
    delete_time str
    The time the cluster was deleted, in RFC3339 text format.
    description str
    (Output) The description of the validation check.
    effective_annotations Mapping[str, str]
    endpoint str
    The IP address name of Bare Metal User Cluster's API server.
    etag str
    This checksum is computed by the server based on the value of other fields, and may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding. Allows clients to perform consistent read-modify-writes through optimistic concurrency control.
    fleets Sequence[BareMetalClusterFleetArgs]
    Fleet related configuration. Fleets are a Google Cloud concept for logically organizing clusters, letting you use and manage multi-cluster capabilities and apply consistent policies across your systems. See Anthos Fleets for more details on Anthos multi-cluster capabilities using Fleets. Structure is documented below.
    load_balancer BareMetalClusterLoadBalancerArgs
    Specifies the load balancer configuration. Structure is documented below.
    local_name str
    The object name of the Bare Metal Cluster custom resource on the associated admin cluster. This field is used to support conflicting names when enrolling existing clusters to the API. When used as a part of cluster enrollment, this field will differ from the ID in the resource name. For new clusters, this field will match the user provided cluster ID and be visible in the last component of the resource name. It is not modifiable. All users should use this name to access their cluster using gkectl or kubectl and should expect to see the local name when viewing admin cluster controller logs.
    location str
    The location of the resource.
    maintenance_config BareMetalClusterMaintenanceConfigArgs
    Specifies the workload node configurations.
    name str
    The bare metal cluster name.
    network_config BareMetalClusterNetworkConfigArgs
    Network configuration. Structure is documented below.
    node_access_config BareMetalClusterNodeAccessConfigArgs
    Specifies the node access related settings for the bare metal user cluster.
    node_config BareMetalClusterNodeConfigArgs
    Specifies the workload node configurations.
    os_environment_config BareMetalClusterOsEnvironmentConfigArgs
    OS environment related configurations.
    project str
    proxy BareMetalClusterProxyArgs
    Specifies the cluster proxy configuration.
    reconciling bool
    If set, there are currently changes in flight to the Bare Metal User Cluster.
    security_config BareMetalClusterSecurityConfigArgs
    Specifies the security related settings for the Bare Metal User Cluster.
    state str
    (Output) The lifecycle state of the condition.
    statuses Sequence[BareMetalClusterStatusArgs]
    (Output) Specifies the detailed validation check status Structure is documented below.
    storage BareMetalClusterStorageArgs
    Specifies the cluster storage configuration. Structure is documented below.
    uid str
    The unique identifier of the Bare Metal User Cluster.
    update_time str
    The time the cluster was last updated, in RFC3339 text format.
    upgrade_policy BareMetalClusterUpgradePolicyArgs
    The cluster upgrade policy.
    validation_checks Sequence[BareMetalClusterValidationCheckArgs]
    Specifies the security related settings for the Bare Metal User Cluster. Structure is documented below.
    adminClusterMembership String
    The Admin Cluster this Bare Metal User Cluster belongs to. This is the full resource name of the Admin Cluster's hub membership.
    annotations Map<String>
    Annotations on the Bare Metal User Cluster. This field has the same restrictions as Kubernetes annotations. The total size of all keys and values combined is limited to 256k. Key can have 2 segments: prefix (optional) and name (required), separated by a slash (/). Prefix must be a DNS subdomain. Name must be 63 characters or less, begin and end with alphanumerics, with dashes (-), underscores (_), dots (.), and alphanumerics between. Note: This field is non-authoritative, and will only manage the annotations present in your configuration. Please refer to the field 'effective_annotations' for all of the annotations present on the resource.
    bareMetalVersion String
    A human readable description of this Bare Metal User Cluster.
    binaryAuthorization Property Map
    Binary Authorization related configurations.
    clusterOperations Property Map
    Specifies the User Cluster's observability infrastructure.
    controlPlane Property Map
    Specifies the control plane configuration. Structure is documented below.
    createTime String
    The time the cluster was created, in RFC3339 text format.
    deleteTime String
    The time the cluster was deleted, in RFC3339 text format.
    description String
    (Output) The description of the validation check.
    effectiveAnnotations Map<String>
    endpoint String
    The IP address name of Bare Metal User Cluster's API server.
    etag String
    This checksum is computed by the server based on the value of other fields, and may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding. Allows clients to perform consistent read-modify-writes through optimistic concurrency control.
    fleets List<Property Map>
    Fleet related configuration. Fleets are a Google Cloud concept for logically organizing clusters, letting you use and manage multi-cluster capabilities and apply consistent policies across your systems. See Anthos Fleets for more details on Anthos multi-cluster capabilities using Fleets. Structure is documented below.
    loadBalancer Property Map
    Specifies the load balancer configuration. Structure is documented below.
    localName String
    The object name of the Bare Metal Cluster custom resource on the associated admin cluster. This field is used to support conflicting names when enrolling existing clusters to the API. When used as a part of cluster enrollment, this field will differ from the ID in the resource name. For new clusters, this field will match the user provided cluster ID and be visible in the last component of the resource name. It is not modifiable. All users should use this name to access their cluster using gkectl or kubectl and should expect to see the local name when viewing admin cluster controller logs.
    location String
    The location of the resource.
    maintenanceConfig Property Map
    Specifies the workload node configurations.
    name String
    The bare metal cluster name.
    networkConfig Property Map
    Network configuration. Structure is documented below.
    nodeAccessConfig Property Map
    Specifies the node access related settings for the bare metal user cluster.
    nodeConfig Property Map
    Specifies the workload node configurations.
    osEnvironmentConfig Property Map
    OS environment related configurations.
    project String
    proxy Property Map
    Specifies the cluster proxy configuration.
    reconciling Boolean
    If set, there are currently changes in flight to the Bare Metal User Cluster.
    securityConfig Property Map
    Specifies the security related settings for the Bare Metal User Cluster.
    state String
    (Output) The lifecycle state of the condition.
    statuses List<Property Map>
    (Output) Specifies the detailed validation check status Structure is documented below.
    storage Property Map
    Specifies the cluster storage configuration. Structure is documented below.
    uid String
    The unique identifier of the Bare Metal User Cluster.
    updateTime String
    The time the cluster was last updated, in RFC3339 text format.
    upgradePolicy Property Map
    The cluster upgrade policy.
    validationChecks List<Property Map>
    Specifies the security related settings for the Bare Metal User Cluster. Structure is documented below.

    Supporting Types

    BareMetalClusterBinaryAuthorization, BareMetalClusterBinaryAuthorizationArgs

    EvaluationMode string
    Mode of operation for binauthz policy evaluation. If unspecified, defaults to DISABLED. Possible values are: DISABLED, PROJECT_SINGLETON_POLICY_ENFORCE.
    EvaluationMode string
    Mode of operation for binauthz policy evaluation. If unspecified, defaults to DISABLED. Possible values are: DISABLED, PROJECT_SINGLETON_POLICY_ENFORCE.
    evaluationMode String
    Mode of operation for binauthz policy evaluation. If unspecified, defaults to DISABLED. Possible values are: DISABLED, PROJECT_SINGLETON_POLICY_ENFORCE.
    evaluationMode string
    Mode of operation for binauthz policy evaluation. If unspecified, defaults to DISABLED. Possible values are: DISABLED, PROJECT_SINGLETON_POLICY_ENFORCE.
    evaluation_mode str
    Mode of operation for binauthz policy evaluation. If unspecified, defaults to DISABLED. Possible values are: DISABLED, PROJECT_SINGLETON_POLICY_ENFORCE.
    evaluationMode String
    Mode of operation for binauthz policy evaluation. If unspecified, defaults to DISABLED. Possible values are: DISABLED, PROJECT_SINGLETON_POLICY_ENFORCE.

    BareMetalClusterClusterOperations, BareMetalClusterClusterOperationsArgs

    EnableApplicationLogs bool
    Whether collection of application logs/metrics should be enabled (in addition to system logs/metrics).
    EnableApplicationLogs bool
    Whether collection of application logs/metrics should be enabled (in addition to system logs/metrics).
    enableApplicationLogs Boolean
    Whether collection of application logs/metrics should be enabled (in addition to system logs/metrics).
    enableApplicationLogs boolean
    Whether collection of application logs/metrics should be enabled (in addition to system logs/metrics).
    enable_application_logs bool
    Whether collection of application logs/metrics should be enabled (in addition to system logs/metrics).
    enableApplicationLogs Boolean
    Whether collection of application logs/metrics should be enabled (in addition to system logs/metrics).

    BareMetalClusterControlPlane, BareMetalClusterControlPlaneArgs

    ControlPlaneNodePoolConfig BareMetalClusterControlPlaneControlPlaneNodePoolConfig
    Configures the node pool running the control plane. If specified the corresponding NodePool will be created for the cluster's control plane. The NodePool will have the same name and namespace as the cluster. Structure is documented below.
    ApiServerArgs List<BareMetalClusterControlPlaneApiServerArg>
    Customizes the default API server args. Only a subset of customized flags are supported. Please refer to the API server documentation below to know the exact format: https://kubernetes.io/docs/reference/command-line-tools-reference/kube-apiserver/ Structure is documented below.
    ControlPlaneNodePoolConfig BareMetalClusterControlPlaneControlPlaneNodePoolConfig
    Configures the node pool running the control plane. If specified the corresponding NodePool will be created for the cluster's control plane. The NodePool will have the same name and namespace as the cluster. Structure is documented below.
    ApiServerArgs []BareMetalClusterControlPlaneApiServerArg
    Customizes the default API server args. Only a subset of customized flags are supported. Please refer to the API server documentation below to know the exact format: https://kubernetes.io/docs/reference/command-line-tools-reference/kube-apiserver/ Structure is documented below.
    controlPlaneNodePoolConfig BareMetalClusterControlPlaneControlPlaneNodePoolConfig
    Configures the node pool running the control plane. If specified the corresponding NodePool will be created for the cluster's control plane. The NodePool will have the same name and namespace as the cluster. Structure is documented below.
    apiServerArgs List<BareMetalClusterControlPlaneApiServerArg>
    Customizes the default API server args. Only a subset of customized flags are supported. Please refer to the API server documentation below to know the exact format: https://kubernetes.io/docs/reference/command-line-tools-reference/kube-apiserver/ Structure is documented below.
    controlPlaneNodePoolConfig BareMetalClusterControlPlaneControlPlaneNodePoolConfig
    Configures the node pool running the control plane. If specified the corresponding NodePool will be created for the cluster's control plane. The NodePool will have the same name and namespace as the cluster. Structure is documented below.
    apiServerArgs BareMetalClusterControlPlaneApiServerArg[]
    Customizes the default API server args. Only a subset of customized flags are supported. Please refer to the API server documentation below to know the exact format: https://kubernetes.io/docs/reference/command-line-tools-reference/kube-apiserver/ Structure is documented below.
    control_plane_node_pool_config BareMetalClusterControlPlaneControlPlaneNodePoolConfig
    Configures the node pool running the control plane. If specified the corresponding NodePool will be created for the cluster's control plane. The NodePool will have the same name and namespace as the cluster. Structure is documented below.
    api_server_args Sequence[BareMetalClusterControlPlaneApiServerArg]
    Customizes the default API server args. Only a subset of customized flags are supported. Please refer to the API server documentation below to know the exact format: https://kubernetes.io/docs/reference/command-line-tools-reference/kube-apiserver/ Structure is documented below.
    controlPlaneNodePoolConfig Property Map
    Configures the node pool running the control plane. If specified the corresponding NodePool will be created for the cluster's control plane. The NodePool will have the same name and namespace as the cluster. Structure is documented below.
    apiServerArgs List<Property Map>
    Customizes the default API server args. Only a subset of customized flags are supported. Please refer to the API server documentation below to know the exact format: https://kubernetes.io/docs/reference/command-line-tools-reference/kube-apiserver/ Structure is documented below.

    BareMetalClusterControlPlaneApiServerArg, BareMetalClusterControlPlaneApiServerArgArgs

    Argument string
    The argument name as it appears on the API Server command line please make sure to remove the leading dashes.
    Value string
    The value of the arg as it will be passed to the API Server command line.
    Argument string
    The argument name as it appears on the API Server command line please make sure to remove the leading dashes.
    Value string
    The value of the arg as it will be passed to the API Server command line.
    argument String
    The argument name as it appears on the API Server command line please make sure to remove the leading dashes.
    value String
    The value of the arg as it will be passed to the API Server command line.
    argument string
    The argument name as it appears on the API Server command line please make sure to remove the leading dashes.
    value string
    The value of the arg as it will be passed to the API Server command line.
    argument str
    The argument name as it appears on the API Server command line please make sure to remove the leading dashes.
    value str
    The value of the arg as it will be passed to the API Server command line.
    argument String
    The argument name as it appears on the API Server command line please make sure to remove the leading dashes.
    value String
    The value of the arg as it will be passed to the API Server command line.

    BareMetalClusterControlPlaneControlPlaneNodePoolConfig, BareMetalClusterControlPlaneControlPlaneNodePoolConfigArgs

    NodePoolConfig BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfig
    The generic configuration for a node pool running the control plane. Structure is documented below.
    NodePoolConfig BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfig
    The generic configuration for a node pool running the control plane. Structure is documented below.
    nodePoolConfig BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfig
    The generic configuration for a node pool running the control plane. Structure is documented below.
    nodePoolConfig BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfig
    The generic configuration for a node pool running the control plane. Structure is documented below.
    node_pool_config BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfig
    The generic configuration for a node pool running the control plane. Structure is documented below.
    nodePoolConfig Property Map
    The generic configuration for a node pool running the control plane. Structure is documented below.

    BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfig, BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigArgs

    Labels Dictionary<string, string>
    The map of Kubernetes labels (key/value pairs) to be applied to each node. These will added in addition to any default label(s) that Kubernetes may apply to the node. In case of conflict in label keys, the applied set may differ depending on the Kubernetes version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.
    NodeConfigs List<BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfig>
    The list of machine addresses in the Bare Metal Node Pool. Structure is documented below.
    OperatingSystem string
    Specifies the nodes operating system (default: LINUX).
    Taints List<BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigTaint>
    The initial taints assigned to nodes of this node pool. Structure is documented below.
    Labels map[string]string
    The map of Kubernetes labels (key/value pairs) to be applied to each node. These will added in addition to any default label(s) that Kubernetes may apply to the node. In case of conflict in label keys, the applied set may differ depending on the Kubernetes version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.
    NodeConfigs []BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfig
    The list of machine addresses in the Bare Metal Node Pool. Structure is documented below.
    OperatingSystem string
    Specifies the nodes operating system (default: LINUX).
    Taints []BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigTaint
    The initial taints assigned to nodes of this node pool. Structure is documented below.
    labels Map<String,String>
    The map of Kubernetes labels (key/value pairs) to be applied to each node. These will added in addition to any default label(s) that Kubernetes may apply to the node. In case of conflict in label keys, the applied set may differ depending on the Kubernetes version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.
    nodeConfigs List<BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfig>
    The list of machine addresses in the Bare Metal Node Pool. Structure is documented below.
    operatingSystem String
    Specifies the nodes operating system (default: LINUX).
    taints List<BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigTaint>
    The initial taints assigned to nodes of this node pool. Structure is documented below.
    labels {[key: string]: string}
    The map of Kubernetes labels (key/value pairs) to be applied to each node. These will added in addition to any default label(s) that Kubernetes may apply to the node. In case of conflict in label keys, the applied set may differ depending on the Kubernetes version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.
    nodeConfigs BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfig[]
    The list of machine addresses in the Bare Metal Node Pool. Structure is documented below.
    operatingSystem string
    Specifies the nodes operating system (default: LINUX).
    taints BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigTaint[]
    The initial taints assigned to nodes of this node pool. Structure is documented below.
    labels Mapping[str, str]
    The map of Kubernetes labels (key/value pairs) to be applied to each node. These will added in addition to any default label(s) that Kubernetes may apply to the node. In case of conflict in label keys, the applied set may differ depending on the Kubernetes version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.
    node_configs Sequence[BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfig]
    The list of machine addresses in the Bare Metal Node Pool. Structure is documented below.
    operating_system str
    Specifies the nodes operating system (default: LINUX).
    taints Sequence[BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigTaint]
    The initial taints assigned to nodes of this node pool. Structure is documented below.
    labels Map<String>
    The map of Kubernetes labels (key/value pairs) to be applied to each node. These will added in addition to any default label(s) that Kubernetes may apply to the node. In case of conflict in label keys, the applied set may differ depending on the Kubernetes version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.
    nodeConfigs List<Property Map>
    The list of machine addresses in the Bare Metal Node Pool. Structure is documented below.
    operatingSystem String
    Specifies the nodes operating system (default: LINUX).
    taints List<Property Map>
    The initial taints assigned to nodes of this node pool. Structure is documented below.

    BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfig, BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfigArgs

    Labels Dictionary<string, string>
    The map of Kubernetes labels (key/value pairs) to be applied to each node. These will added in addition to any default label(s) that Kubernetes may apply to the node. In case of conflict in label keys, the applied set may differ depending on the Kubernetes version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.
    NodeIp string
    The default IPv4 address for SSH access and Kubernetes node. Example: 192.168.0.1
    Labels map[string]string
    The map of Kubernetes labels (key/value pairs) to be applied to each node. These will added in addition to any default label(s) that Kubernetes may apply to the node. In case of conflict in label keys, the applied set may differ depending on the Kubernetes version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.
    NodeIp string
    The default IPv4 address for SSH access and Kubernetes node. Example: 192.168.0.1
    labels Map<String,String>
    The map of Kubernetes labels (key/value pairs) to be applied to each node. These will added in addition to any default label(s) that Kubernetes may apply to the node. In case of conflict in label keys, the applied set may differ depending on the Kubernetes version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.
    nodeIp String
    The default IPv4 address for SSH access and Kubernetes node. Example: 192.168.0.1
    labels {[key: string]: string}
    The map of Kubernetes labels (key/value pairs) to be applied to each node. These will added in addition to any default label(s) that Kubernetes may apply to the node. In case of conflict in label keys, the applied set may differ depending on the Kubernetes version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.
    nodeIp string
    The default IPv4 address for SSH access and Kubernetes node. Example: 192.168.0.1
    labels Mapping[str, str]
    The map of Kubernetes labels (key/value pairs) to be applied to each node. These will added in addition to any default label(s) that Kubernetes may apply to the node. In case of conflict in label keys, the applied set may differ depending on the Kubernetes version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.
    node_ip str
    The default IPv4 address for SSH access and Kubernetes node. Example: 192.168.0.1
    labels Map<String>
    The map of Kubernetes labels (key/value pairs) to be applied to each node. These will added in addition to any default label(s) that Kubernetes may apply to the node. In case of conflict in label keys, the applied set may differ depending on the Kubernetes version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.
    nodeIp String
    The default IPv4 address for SSH access and Kubernetes node. Example: 192.168.0.1

    BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigTaint, BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigTaintArgs

    Effect string
    Specifies the nodes operating system (default: LINUX). Possible values are: EFFECT_UNSPECIFIED, PREFER_NO_SCHEDULE, NO_EXECUTE.
    Key string
    Key associated with the effect.
    Value string
    Value associated with the effect.
    Effect string
    Specifies the nodes operating system (default: LINUX). Possible values are: EFFECT_UNSPECIFIED, PREFER_NO_SCHEDULE, NO_EXECUTE.
    Key string
    Key associated with the effect.
    Value string
    Value associated with the effect.
    effect String
    Specifies the nodes operating system (default: LINUX). Possible values are: EFFECT_UNSPECIFIED, PREFER_NO_SCHEDULE, NO_EXECUTE.
    key String
    Key associated with the effect.
    value String
    Value associated with the effect.
    effect string
    Specifies the nodes operating system (default: LINUX). Possible values are: EFFECT_UNSPECIFIED, PREFER_NO_SCHEDULE, NO_EXECUTE.
    key string
    Key associated with the effect.
    value string
    Value associated with the effect.
    effect str
    Specifies the nodes operating system (default: LINUX). Possible values are: EFFECT_UNSPECIFIED, PREFER_NO_SCHEDULE, NO_EXECUTE.
    key str
    Key associated with the effect.
    value str
    Value associated with the effect.
    effect String
    Specifies the nodes operating system (default: LINUX). Possible values are: EFFECT_UNSPECIFIED, PREFER_NO_SCHEDULE, NO_EXECUTE.
    key String
    Key associated with the effect.
    value String
    Value associated with the effect.

    BareMetalClusterFleet, BareMetalClusterFleetArgs

    Membership string
    (Output) The name of the managed Hub Membership resource associated to this cluster. Membership names are formatted as projects/<project-number>/locations/<location>/memberships/<cluster-id>.
    Membership string
    (Output) The name of the managed Hub Membership resource associated to this cluster. Membership names are formatted as projects/<project-number>/locations/<location>/memberships/<cluster-id>.
    membership String
    (Output) The name of the managed Hub Membership resource associated to this cluster. Membership names are formatted as projects/<project-number>/locations/<location>/memberships/<cluster-id>.
    membership string
    (Output) The name of the managed Hub Membership resource associated to this cluster. Membership names are formatted as projects/<project-number>/locations/<location>/memberships/<cluster-id>.
    membership str
    (Output) The name of the managed Hub Membership resource associated to this cluster. Membership names are formatted as projects/<project-number>/locations/<location>/memberships/<cluster-id>.
    membership String
    (Output) The name of the managed Hub Membership resource associated to this cluster. Membership names are formatted as projects/<project-number>/locations/<location>/memberships/<cluster-id>.

    BareMetalClusterLoadBalancer, BareMetalClusterLoadBalancerArgs

    PortConfig BareMetalClusterLoadBalancerPortConfig
    Specifies the load balancer ports. Structure is documented below.
    VipConfig BareMetalClusterLoadBalancerVipConfig
    Specified the Bare Metal Load Balancer Config Structure is documented below.
    BgpLbConfig BareMetalClusterLoadBalancerBgpLbConfig
    Configuration for BGP typed load balancers. Structure is documented below.
    ManualLbConfig BareMetalClusterLoadBalancerManualLbConfig
    A nested object resource Structure is documented below.
    MetalLbConfig BareMetalClusterLoadBalancerMetalLbConfig
    A nested object resource Structure is documented below.
    PortConfig BareMetalClusterLoadBalancerPortConfig
    Specifies the load balancer ports. Structure is documented below.
    VipConfig BareMetalClusterLoadBalancerVipConfig
    Specified the Bare Metal Load Balancer Config Structure is documented below.
    BgpLbConfig BareMetalClusterLoadBalancerBgpLbConfig
    Configuration for BGP typed load balancers. Structure is documented below.
    ManualLbConfig BareMetalClusterLoadBalancerManualLbConfig
    A nested object resource Structure is documented below.
    MetalLbConfig BareMetalClusterLoadBalancerMetalLbConfig
    A nested object resource Structure is documented below.
    portConfig BareMetalClusterLoadBalancerPortConfig
    Specifies the load balancer ports. Structure is documented below.
    vipConfig BareMetalClusterLoadBalancerVipConfig
    Specified the Bare Metal Load Balancer Config Structure is documented below.
    bgpLbConfig BareMetalClusterLoadBalancerBgpLbConfig
    Configuration for BGP typed load balancers. Structure is documented below.
    manualLbConfig BareMetalClusterLoadBalancerManualLbConfig
    A nested object resource Structure is documented below.
    metalLbConfig BareMetalClusterLoadBalancerMetalLbConfig
    A nested object resource Structure is documented below.
    portConfig BareMetalClusterLoadBalancerPortConfig
    Specifies the load balancer ports. Structure is documented below.
    vipConfig BareMetalClusterLoadBalancerVipConfig
    Specified the Bare Metal Load Balancer Config Structure is documented below.
    bgpLbConfig BareMetalClusterLoadBalancerBgpLbConfig
    Configuration for BGP typed load balancers. Structure is documented below.
    manualLbConfig BareMetalClusterLoadBalancerManualLbConfig
    A nested object resource Structure is documented below.
    metalLbConfig BareMetalClusterLoadBalancerMetalLbConfig
    A nested object resource Structure is documented below.
    port_config BareMetalClusterLoadBalancerPortConfig
    Specifies the load balancer ports. Structure is documented below.
    vip_config BareMetalClusterLoadBalancerVipConfig
    Specified the Bare Metal Load Balancer Config Structure is documented below.
    bgp_lb_config BareMetalClusterLoadBalancerBgpLbConfig
    Configuration for BGP typed load balancers. Structure is documented below.
    manual_lb_config BareMetalClusterLoadBalancerManualLbConfig
    A nested object resource Structure is documented below.
    metal_lb_config BareMetalClusterLoadBalancerMetalLbConfig
    A nested object resource Structure is documented below.
    portConfig Property Map
    Specifies the load balancer ports. Structure is documented below.
    vipConfig Property Map
    Specified the Bare Metal Load Balancer Config Structure is documented below.
    bgpLbConfig Property Map
    Configuration for BGP typed load balancers. Structure is documented below.
    manualLbConfig Property Map
    A nested object resource Structure is documented below.
    metalLbConfig Property Map
    A nested object resource Structure is documented below.

    BareMetalClusterLoadBalancerBgpLbConfig, BareMetalClusterLoadBalancerBgpLbConfigArgs

    AddressPools List<BareMetalClusterLoadBalancerBgpLbConfigAddressPool>
    AddressPools is a list of non-overlapping IP pools used by load balancer typed services. All addresses must be routable to load balancer nodes. IngressVIP must be included in the pools. Structure is documented below.
    Asn int
    BGP autonomous system number (ASN) of the cluster. This field can be updated after cluster creation.
    BgpPeerConfigs List<BareMetalClusterLoadBalancerBgpLbConfigBgpPeerConfig>
    The list of BGP peers that the cluster will connect to. At least one peer must be configured for each control plane node. Control plane nodes will connect to these peers to advertise the control plane VIP. The Services load balancer also uses these peers by default. This field can be updated after cluster creation. Structure is documented below.
    LoadBalancerNodePoolConfig BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfig
    Specifies the node pool running data plane load balancing. L2 connectivity is required among nodes in this pool. If missing, the control plane node pool is used for data plane load balancing. Structure is documented below.
    AddressPools []BareMetalClusterLoadBalancerBgpLbConfigAddressPool
    AddressPools is a list of non-overlapping IP pools used by load balancer typed services. All addresses must be routable to load balancer nodes. IngressVIP must be included in the pools. Structure is documented below.
    Asn int
    BGP autonomous system number (ASN) of the cluster. This field can be updated after cluster creation.
    BgpPeerConfigs []BareMetalClusterLoadBalancerBgpLbConfigBgpPeerConfig
    The list of BGP peers that the cluster will connect to. At least one peer must be configured for each control plane node. Control plane nodes will connect to these peers to advertise the control plane VIP. The Services load balancer also uses these peers by default. This field can be updated after cluster creation. Structure is documented below.
    LoadBalancerNodePoolConfig BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfig
    Specifies the node pool running data plane load balancing. L2 connectivity is required among nodes in this pool. If missing, the control plane node pool is used for data plane load balancing. Structure is documented below.
    addressPools List<BareMetalClusterLoadBalancerBgpLbConfigAddressPool>
    AddressPools is a list of non-overlapping IP pools used by load balancer typed services. All addresses must be routable to load balancer nodes. IngressVIP must be included in the pools. Structure is documented below.
    asn Integer
    BGP autonomous system number (ASN) of the cluster. This field can be updated after cluster creation.
    bgpPeerConfigs List<BareMetalClusterLoadBalancerBgpLbConfigBgpPeerConfig>
    The list of BGP peers that the cluster will connect to. At least one peer must be configured for each control plane node. Control plane nodes will connect to these peers to advertise the control plane VIP. The Services load balancer also uses these peers by default. This field can be updated after cluster creation. Structure is documented below.
    loadBalancerNodePoolConfig BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfig
    Specifies the node pool running data plane load balancing. L2 connectivity is required among nodes in this pool. If missing, the control plane node pool is used for data plane load balancing. Structure is documented below.
    addressPools BareMetalClusterLoadBalancerBgpLbConfigAddressPool[]
    AddressPools is a list of non-overlapping IP pools used by load balancer typed services. All addresses must be routable to load balancer nodes. IngressVIP must be included in the pools. Structure is documented below.
    asn number
    BGP autonomous system number (ASN) of the cluster. This field can be updated after cluster creation.
    bgpPeerConfigs BareMetalClusterLoadBalancerBgpLbConfigBgpPeerConfig[]
    The list of BGP peers that the cluster will connect to. At least one peer must be configured for each control plane node. Control plane nodes will connect to these peers to advertise the control plane VIP. The Services load balancer also uses these peers by default. This field can be updated after cluster creation. Structure is documented below.
    loadBalancerNodePoolConfig BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfig
    Specifies the node pool running data plane load balancing. L2 connectivity is required among nodes in this pool. If missing, the control plane node pool is used for data plane load balancing. Structure is documented below.
    address_pools Sequence[BareMetalClusterLoadBalancerBgpLbConfigAddressPool]
    AddressPools is a list of non-overlapping IP pools used by load balancer typed services. All addresses must be routable to load balancer nodes. IngressVIP must be included in the pools. Structure is documented below.
    asn int
    BGP autonomous system number (ASN) of the cluster. This field can be updated after cluster creation.
    bgp_peer_configs Sequence[BareMetalClusterLoadBalancerBgpLbConfigBgpPeerConfig]
    The list of BGP peers that the cluster will connect to. At least one peer must be configured for each control plane node. Control plane nodes will connect to these peers to advertise the control plane VIP. The Services load balancer also uses these peers by default. This field can be updated after cluster creation. Structure is documented below.
    load_balancer_node_pool_config BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfig
    Specifies the node pool running data plane load balancing. L2 connectivity is required among nodes in this pool. If missing, the control plane node pool is used for data plane load balancing. Structure is documented below.
    addressPools List<Property Map>
    AddressPools is a list of non-overlapping IP pools used by load balancer typed services. All addresses must be routable to load balancer nodes. IngressVIP must be included in the pools. Structure is documented below.
    asn Number
    BGP autonomous system number (ASN) of the cluster. This field can be updated after cluster creation.
    bgpPeerConfigs List<Property Map>
    The list of BGP peers that the cluster will connect to. At least one peer must be configured for each control plane node. Control plane nodes will connect to these peers to advertise the control plane VIP. The Services load balancer also uses these peers by default. This field can be updated after cluster creation. Structure is documented below.
    loadBalancerNodePoolConfig Property Map
    Specifies the node pool running data plane load balancing. L2 connectivity is required among nodes in this pool. If missing, the control plane node pool is used for data plane load balancing. Structure is documented below.

    BareMetalClusterLoadBalancerBgpLbConfigAddressPool, BareMetalClusterLoadBalancerBgpLbConfigAddressPoolArgs

    Addresses List<string>
    The addresses that are part of this pool. Each address must be either in the CIDR form (1.2.3.0/24) or range form (1.2.3.1-1.2.3.5).
    Pool string
    The name of the address pool.
    AvoidBuggyIps bool
    If true, avoid using IPs ending in .0 or .255. This avoids buggy consumer devices mistakenly dropping IPv4 traffic for those special IP addresses.
    ManualAssign string
    If true, prevent IP addresses from being automatically assigned.
    Addresses []string
    The addresses that are part of this pool. Each address must be either in the CIDR form (1.2.3.0/24) or range form (1.2.3.1-1.2.3.5).
    Pool string
    The name of the address pool.
    AvoidBuggyIps bool
    If true, avoid using IPs ending in .0 or .255. This avoids buggy consumer devices mistakenly dropping IPv4 traffic for those special IP addresses.
    ManualAssign string
    If true, prevent IP addresses from being automatically assigned.
    addresses List<String>
    The addresses that are part of this pool. Each address must be either in the CIDR form (1.2.3.0/24) or range form (1.2.3.1-1.2.3.5).
    pool String
    The name of the address pool.
    avoidBuggyIps Boolean
    If true, avoid using IPs ending in .0 or .255. This avoids buggy consumer devices mistakenly dropping IPv4 traffic for those special IP addresses.
    manualAssign String
    If true, prevent IP addresses from being automatically assigned.
    addresses string[]
    The addresses that are part of this pool. Each address must be either in the CIDR form (1.2.3.0/24) or range form (1.2.3.1-1.2.3.5).
    pool string
    The name of the address pool.
    avoidBuggyIps boolean
    If true, avoid using IPs ending in .0 or .255. This avoids buggy consumer devices mistakenly dropping IPv4 traffic for those special IP addresses.
    manualAssign string
    If true, prevent IP addresses from being automatically assigned.
    addresses Sequence[str]
    The addresses that are part of this pool. Each address must be either in the CIDR form (1.2.3.0/24) or range form (1.2.3.1-1.2.3.5).
    pool str
    The name of the address pool.
    avoid_buggy_ips bool
    If true, avoid using IPs ending in .0 or .255. This avoids buggy consumer devices mistakenly dropping IPv4 traffic for those special IP addresses.
    manual_assign str
    If true, prevent IP addresses from being automatically assigned.
    addresses List<String>
    The addresses that are part of this pool. Each address must be either in the CIDR form (1.2.3.0/24) or range form (1.2.3.1-1.2.3.5).
    pool String
    The name of the address pool.
    avoidBuggyIps Boolean
    If true, avoid using IPs ending in .0 or .255. This avoids buggy consumer devices mistakenly dropping IPv4 traffic for those special IP addresses.
    manualAssign String
    If true, prevent IP addresses from being automatically assigned.

    BareMetalClusterLoadBalancerBgpLbConfigBgpPeerConfig, BareMetalClusterLoadBalancerBgpLbConfigBgpPeerConfigArgs

    Asn int
    BGP autonomous system number (ASN) for the network that contains the external peer device.
    IpAddress string
    The IP address of the external peer device.
    ControlPlaneNodes List<string>
    The IP address of the control plane node that connects to the external peer. If you don't specify any control plane nodes, all control plane nodes can connect to the external peer. If you specify one or more IP addresses, only the nodes specified participate in peering sessions.
    Asn int
    BGP autonomous system number (ASN) for the network that contains the external peer device.
    IpAddress string
    The IP address of the external peer device.
    ControlPlaneNodes []string
    The IP address of the control plane node that connects to the external peer. If you don't specify any control plane nodes, all control plane nodes can connect to the external peer. If you specify one or more IP addresses, only the nodes specified participate in peering sessions.
    asn Integer
    BGP autonomous system number (ASN) for the network that contains the external peer device.
    ipAddress String
    The IP address of the external peer device.
    controlPlaneNodes List<String>
    The IP address of the control plane node that connects to the external peer. If you don't specify any control plane nodes, all control plane nodes can connect to the external peer. If you specify one or more IP addresses, only the nodes specified participate in peering sessions.
    asn number
    BGP autonomous system number (ASN) for the network that contains the external peer device.
    ipAddress string
    The IP address of the external peer device.
    controlPlaneNodes string[]
    The IP address of the control plane node that connects to the external peer. If you don't specify any control plane nodes, all control plane nodes can connect to the external peer. If you specify one or more IP addresses, only the nodes specified participate in peering sessions.
    asn int
    BGP autonomous system number (ASN) for the network that contains the external peer device.
    ip_address str
    The IP address of the external peer device.
    control_plane_nodes Sequence[str]
    The IP address of the control plane node that connects to the external peer. If you don't specify any control plane nodes, all control plane nodes can connect to the external peer. If you specify one or more IP addresses, only the nodes specified participate in peering sessions.
    asn Number
    BGP autonomous system number (ASN) for the network that contains the external peer device.
    ipAddress String
    The IP address of the external peer device.
    controlPlaneNodes List<String>
    The IP address of the control plane node that connects to the external peer. If you don't specify any control plane nodes, all control plane nodes can connect to the external peer. If you specify one or more IP addresses, only the nodes specified participate in peering sessions.

    BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfig, BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigArgs

    NodePoolConfig BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfig
    The generic configuration for a node pool running a load balancer. Structure is documented below.
    NodePoolConfig BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfig
    The generic configuration for a node pool running a load balancer. Structure is documented below.
    nodePoolConfig BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfig
    The generic configuration for a node pool running a load balancer. Structure is documented below.
    nodePoolConfig BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfig
    The generic configuration for a node pool running a load balancer. Structure is documented below.
    node_pool_config BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfig
    The generic configuration for a node pool running a load balancer. Structure is documented below.
    nodePoolConfig Property Map
    The generic configuration for a node pool running a load balancer. Structure is documented below.

    BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfig, BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigArgs

    KubeletConfig BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigKubeletConfig
    The modifiable kubelet configurations for the baremetal machines. Structure is documented below.
    Labels Dictionary<string, string>
    The map of Kubernetes labels (key/value pairs) to be applied to each node. These will added in addition to any default label(s) that Kubernetes may apply to the node. In case of conflict in label keys, the applied set may differ depending on the Kubernetes version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.
    NodeConfigs List<BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfig>
    The list of machine addresses in the Bare Metal Node Pool. Structure is documented below.
    OperatingSystem string
    Specifies the nodes operating system (default: LINUX).
    Taints List<BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigTaint>
    The initial taints assigned to nodes of this node pool. Structure is documented below.
    KubeletConfig BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigKubeletConfig
    The modifiable kubelet configurations for the baremetal machines. Structure is documented below.
    Labels map[string]string
    The map of Kubernetes labels (key/value pairs) to be applied to each node. These will added in addition to any default label(s) that Kubernetes may apply to the node. In case of conflict in label keys, the applied set may differ depending on the Kubernetes version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.
    NodeConfigs []BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfig
    The list of machine addresses in the Bare Metal Node Pool. Structure is documented below.
    OperatingSystem string
    Specifies the nodes operating system (default: LINUX).
    Taints []BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigTaint
    The initial taints assigned to nodes of this node pool. Structure is documented below.
    kubeletConfig BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigKubeletConfig
    The modifiable kubelet configurations for the baremetal machines. Structure is documented below.
    labels Map<String,String>
    The map of Kubernetes labels (key/value pairs) to be applied to each node. These will added in addition to any default label(s) that Kubernetes may apply to the node. In case of conflict in label keys, the applied set may differ depending on the Kubernetes version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.
    nodeConfigs List<BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfig>
    The list of machine addresses in the Bare Metal Node Pool. Structure is documented below.
    operatingSystem String
    Specifies the nodes operating system (default: LINUX).
    taints List<BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigTaint>
    The initial taints assigned to nodes of this node pool. Structure is documented below.
    kubeletConfig BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigKubeletConfig
    The modifiable kubelet configurations for the baremetal machines. Structure is documented below.
    labels {[key: string]: string}
    The map of Kubernetes labels (key/value pairs) to be applied to each node. These will added in addition to any default label(s) that Kubernetes may apply to the node. In case of conflict in label keys, the applied set may differ depending on the Kubernetes version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.
    nodeConfigs BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfig[]
    The list of machine addresses in the Bare Metal Node Pool. Structure is documented below.
    operatingSystem string
    Specifies the nodes operating system (default: LINUX).
    taints BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigTaint[]
    The initial taints assigned to nodes of this node pool. Structure is documented below.
    kubelet_config BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigKubeletConfig
    The modifiable kubelet configurations for the baremetal machines. Structure is documented below.
    labels Mapping[str, str]
    The map of Kubernetes labels (key/value pairs) to be applied to each node. These will added in addition to any default label(s) that Kubernetes may apply to the node. In case of conflict in label keys, the applied set may differ depending on the Kubernetes version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.
    node_configs Sequence[BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfig]
    The list of machine addresses in the Bare Metal Node Pool. Structure is documented below.
    operating_system str
    Specifies the nodes operating system (default: LINUX).
    taints Sequence[BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigTaint]
    The initial taints assigned to nodes of this node pool. Structure is documented below.
    kubeletConfig Property Map
    The modifiable kubelet configurations for the baremetal machines. Structure is documented below.
    labels Map<String>
    The map of Kubernetes labels (key/value pairs) to be applied to each node. These will added in addition to any default label(s) that Kubernetes may apply to the node. In case of conflict in label keys, the applied set may differ depending on the Kubernetes version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.
    nodeConfigs List<Property Map>
    The list of machine addresses in the Bare Metal Node Pool. Structure is documented below.
    operatingSystem String
    Specifies the nodes operating system (default: LINUX).
    taints List<Property Map>
    The initial taints assigned to nodes of this node pool. Structure is documented below.

    BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigKubeletConfig, BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigKubeletConfigArgs

    RegistryBurst int
    The maximum size of bursty pulls, temporarily allows pulls to burst to this number, while still not exceeding registry_pull_qps. The value must not be a negative number. Updating this field may impact scalability by changing the amount of traffic produced by image pulls. Defaults to 10.
    RegistryPullQps int
    The limit of registry pulls per second. Setting this value to 0 means no limit. Updating this field may impact scalability by changing the amount of traffic produced by image pulls. Defaults to 5.
    SerializeImagePullsDisabled bool
    Prevents the Kubelet from pulling multiple images at a time. We recommend not changing the default value on nodes that run docker daemon with version < 1.9 or an Another Union File System (Aufs) storage backend. Issue https://github.com/kubernetes/kubernetes/issues/10959 has more details.
    RegistryBurst int
    The maximum size of bursty pulls, temporarily allows pulls to burst to this number, while still not exceeding registry_pull_qps. The value must not be a negative number. Updating this field may impact scalability by changing the amount of traffic produced by image pulls. Defaults to 10.
    RegistryPullQps int
    The limit of registry pulls per second. Setting this value to 0 means no limit. Updating this field may impact scalability by changing the amount of traffic produced by image pulls. Defaults to 5.
    SerializeImagePullsDisabled bool
    Prevents the Kubelet from pulling multiple images at a time. We recommend not changing the default value on nodes that run docker daemon with version < 1.9 or an Another Union File System (Aufs) storage backend. Issue https://github.com/kubernetes/kubernetes/issues/10959 has more details.
    registryBurst Integer
    The maximum size of bursty pulls, temporarily allows pulls to burst to this number, while still not exceeding registry_pull_qps. The value must not be a negative number. Updating this field may impact scalability by changing the amount of traffic produced by image pulls. Defaults to 10.
    registryPullQps Integer
    The limit of registry pulls per second. Setting this value to 0 means no limit. Updating this field may impact scalability by changing the amount of traffic produced by image pulls. Defaults to 5.
    serializeImagePullsDisabled Boolean
    Prevents the Kubelet from pulling multiple images at a time. We recommend not changing the default value on nodes that run docker daemon with version < 1.9 or an Another Union File System (Aufs) storage backend. Issue https://github.com/kubernetes/kubernetes/issues/10959 has more details.
    registryBurst number
    The maximum size of bursty pulls, temporarily allows pulls to burst to this number, while still not exceeding registry_pull_qps. The value must not be a negative number. Updating this field may impact scalability by changing the amount of traffic produced by image pulls. Defaults to 10.
    registryPullQps number
    The limit of registry pulls per second. Setting this value to 0 means no limit. Updating this field may impact scalability by changing the amount of traffic produced by image pulls. Defaults to 5.
    serializeImagePullsDisabled boolean
    Prevents the Kubelet from pulling multiple images at a time. We recommend not changing the default value on nodes that run docker daemon with version < 1.9 or an Another Union File System (Aufs) storage backend. Issue https://github.com/kubernetes/kubernetes/issues/10959 has more details.
    registry_burst int
    The maximum size of bursty pulls, temporarily allows pulls to burst to this number, while still not exceeding registry_pull_qps. The value must not be a negative number. Updating this field may impact scalability by changing the amount of traffic produced by image pulls. Defaults to 10.
    registry_pull_qps int
    The limit of registry pulls per second. Setting this value to 0 means no limit. Updating this field may impact scalability by changing the amount of traffic produced by image pulls. Defaults to 5.
    serialize_image_pulls_disabled bool
    Prevents the Kubelet from pulling multiple images at a time. We recommend not changing the default value on nodes that run docker daemon with version < 1.9 or an Another Union File System (Aufs) storage backend. Issue https://github.com/kubernetes/kubernetes/issues/10959 has more details.
    registryBurst Number
    The maximum size of bursty pulls, temporarily allows pulls to burst to this number, while still not exceeding registry_pull_qps. The value must not be a negative number. Updating this field may impact scalability by changing the amount of traffic produced by image pulls. Defaults to 10.
    registryPullQps Number
    The limit of registry pulls per second. Setting this value to 0 means no limit. Updating this field may impact scalability by changing the amount of traffic produced by image pulls. Defaults to 5.
    serializeImagePullsDisabled Boolean
    Prevents the Kubelet from pulling multiple images at a time. We recommend not changing the default value on nodes that run docker daemon with version < 1.9 or an Another Union File System (Aufs) storage backend. Issue https://github.com/kubernetes/kubernetes/issues/10959 has more details.

    BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfig, BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfigArgs

    Labels Dictionary<string, string>
    The map of Kubernetes labels (key/value pairs) to be applied to each node. These will added in addition to any default label(s) that Kubernetes may apply to the node. In case of conflict in label keys, the applied set may differ depending on the Kubernetes version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.
    NodeIp string
    The default IPv4 address for SSH access and Kubernetes node. Example: 192.168.0.1
    Labels map[string]string
    The map of Kubernetes labels (key/value pairs) to be applied to each node. These will added in addition to any default label(s) that Kubernetes may apply to the node. In case of conflict in label keys, the applied set may differ depending on the Kubernetes version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.
    NodeIp string
    The default IPv4 address for SSH access and Kubernetes node. Example: 192.168.0.1
    labels Map<String,String>
    The map of Kubernetes labels (key/value pairs) to be applied to each node. These will added in addition to any default label(s) that Kubernetes may apply to the node. In case of conflict in label keys, the applied set may differ depending on the Kubernetes version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.
    nodeIp String
    The default IPv4 address for SSH access and Kubernetes node. Example: 192.168.0.1
    labels {[key: string]: string}
    The map of Kubernetes labels (key/value pairs) to be applied to each node. These will added in addition to any default label(s) that Kubernetes may apply to the node. In case of conflict in label keys, the applied set may differ depending on the Kubernetes version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.
    nodeIp string
    The default IPv4 address for SSH access and Kubernetes node. Example: 192.168.0.1
    labels Mapping[str, str]
    The map of Kubernetes labels (key/value pairs) to be applied to each node. These will added in addition to any default label(s) that Kubernetes may apply to the node. In case of conflict in label keys, the applied set may differ depending on the Kubernetes version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.
    node_ip str
    The default IPv4 address for SSH access and Kubernetes node. Example: 192.168.0.1
    labels Map<String>
    The map of Kubernetes labels (key/value pairs) to be applied to each node. These will added in addition to any default label(s) that Kubernetes may apply to the node. In case of conflict in label keys, the applied set may differ depending on the Kubernetes version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.
    nodeIp String
    The default IPv4 address for SSH access and Kubernetes node. Example: 192.168.0.1

    BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigTaint, BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigTaintArgs

    Effect string
    Specifies the nodes operating system (default: LINUX). Possible values are: EFFECT_UNSPECIFIED, PREFER_NO_SCHEDULE, NO_EXECUTE.
    Key string
    Key associated with the effect.
    Value string
    Value associated with the effect.
    Effect string
    Specifies the nodes operating system (default: LINUX). Possible values are: EFFECT_UNSPECIFIED, PREFER_NO_SCHEDULE, NO_EXECUTE.
    Key string
    Key associated with the effect.
    Value string
    Value associated with the effect.
    effect String
    Specifies the nodes operating system (default: LINUX). Possible values are: EFFECT_UNSPECIFIED, PREFER_NO_SCHEDULE, NO_EXECUTE.
    key String
    Key associated with the effect.
    value String
    Value associated with the effect.
    effect string
    Specifies the nodes operating system (default: LINUX). Possible values are: EFFECT_UNSPECIFIED, PREFER_NO_SCHEDULE, NO_EXECUTE.
    key string
    Key associated with the effect.
    value string
    Value associated with the effect.
    effect str
    Specifies the nodes operating system (default: LINUX). Possible values are: EFFECT_UNSPECIFIED, PREFER_NO_SCHEDULE, NO_EXECUTE.
    key str
    Key associated with the effect.
    value str
    Value associated with the effect.
    effect String
    Specifies the nodes operating system (default: LINUX). Possible values are: EFFECT_UNSPECIFIED, PREFER_NO_SCHEDULE, NO_EXECUTE.
    key String
    Key associated with the effect.
    value String
    Value associated with the effect.

    BareMetalClusterLoadBalancerManualLbConfig, BareMetalClusterLoadBalancerManualLbConfigArgs

    Enabled bool
    Whether manual load balancing is enabled.
    Enabled bool
    Whether manual load balancing is enabled.
    enabled Boolean
    Whether manual load balancing is enabled.
    enabled boolean
    Whether manual load balancing is enabled.
    enabled bool
    Whether manual load balancing is enabled.
    enabled Boolean
    Whether manual load balancing is enabled.

    BareMetalClusterLoadBalancerMetalLbConfig, BareMetalClusterLoadBalancerMetalLbConfigArgs

    AddressPools List<BareMetalClusterLoadBalancerMetalLbConfigAddressPool>
    AddressPools is a list of non-overlapping IP pools used by load balancer typed services. All addresses must be routable to load balancer nodes. IngressVIP must be included in the pools. Structure is documented below.
    LoadBalancerNodePoolConfig BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfig
    Specifies the load balancer's node pool configuration. Structure is documented below.
    AddressPools []BareMetalClusterLoadBalancerMetalLbConfigAddressPool
    AddressPools is a list of non-overlapping IP pools used by load balancer typed services. All addresses must be routable to load balancer nodes. IngressVIP must be included in the pools. Structure is documented below.
    LoadBalancerNodePoolConfig BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfig
    Specifies the load balancer's node pool configuration. Structure is documented below.
    addressPools List<BareMetalClusterLoadBalancerMetalLbConfigAddressPool>
    AddressPools is a list of non-overlapping IP pools used by load balancer typed services. All addresses must be routable to load balancer nodes. IngressVIP must be included in the pools. Structure is documented below.
    loadBalancerNodePoolConfig BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfig
    Specifies the load balancer's node pool configuration. Structure is documented below.
    addressPools BareMetalClusterLoadBalancerMetalLbConfigAddressPool[]
    AddressPools is a list of non-overlapping IP pools used by load balancer typed services. All addresses must be routable to load balancer nodes. IngressVIP must be included in the pools. Structure is documented below.
    loadBalancerNodePoolConfig BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfig
    Specifies the load balancer's node pool configuration. Structure is documented below.
    address_pools Sequence[BareMetalClusterLoadBalancerMetalLbConfigAddressPool]
    AddressPools is a list of non-overlapping IP pools used by load balancer typed services. All addresses must be routable to load balancer nodes. IngressVIP must be included in the pools. Structure is documented below.
    load_balancer_node_pool_config BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfig
    Specifies the load balancer's node pool configuration. Structure is documented below.
    addressPools List<Property Map>
    AddressPools is a list of non-overlapping IP pools used by load balancer typed services. All addresses must be routable to load balancer nodes. IngressVIP must be included in the pools. Structure is documented below.
    loadBalancerNodePoolConfig Property Map
    Specifies the load balancer's node pool configuration. Structure is documented below.

    BareMetalClusterLoadBalancerMetalLbConfigAddressPool, BareMetalClusterLoadBalancerMetalLbConfigAddressPoolArgs

    Addresses List<string>
    The addresses that are part of this pool. Each address must be either in the CIDR form (1.2.3.0/24) or range form (1.2.3.1-1.2.3.5).
    Pool string
    The name of the address pool.
    AvoidBuggyIps bool
    If true, avoid using IPs ending in .0 or .255. This avoids buggy consumer devices mistakenly dropping IPv4 traffic for those special IP addresses.
    ManualAssign bool
    If true, prevent IP addresses from being automatically assigned.
    Addresses []string
    The addresses that are part of this pool. Each address must be either in the CIDR form (1.2.3.0/24) or range form (1.2.3.1-1.2.3.5).
    Pool string
    The name of the address pool.
    AvoidBuggyIps bool
    If true, avoid using IPs ending in .0 or .255. This avoids buggy consumer devices mistakenly dropping IPv4 traffic for those special IP addresses.
    ManualAssign bool
    If true, prevent IP addresses from being automatically assigned.
    addresses List<String>
    The addresses that are part of this pool. Each address must be either in the CIDR form (1.2.3.0/24) or range form (1.2.3.1-1.2.3.5).
    pool String
    The name of the address pool.
    avoidBuggyIps Boolean
    If true, avoid using IPs ending in .0 or .255. This avoids buggy consumer devices mistakenly dropping IPv4 traffic for those special IP addresses.
    manualAssign Boolean
    If true, prevent IP addresses from being automatically assigned.
    addresses string[]
    The addresses that are part of this pool. Each address must be either in the CIDR form (1.2.3.0/24) or range form (1.2.3.1-1.2.3.5).
    pool string
    The name of the address pool.
    avoidBuggyIps boolean
    If true, avoid using IPs ending in .0 or .255. This avoids buggy consumer devices mistakenly dropping IPv4 traffic for those special IP addresses.
    manualAssign boolean
    If true, prevent IP addresses from being automatically assigned.
    addresses Sequence[str]
    The addresses that are part of this pool. Each address must be either in the CIDR form (1.2.3.0/24) or range form (1.2.3.1-1.2.3.5).
    pool str
    The name of the address pool.
    avoid_buggy_ips bool
    If true, avoid using IPs ending in .0 or .255. This avoids buggy consumer devices mistakenly dropping IPv4 traffic for those special IP addresses.
    manual_assign bool
    If true, prevent IP addresses from being automatically assigned.
    addresses List<String>
    The addresses that are part of this pool. Each address must be either in the CIDR form (1.2.3.0/24) or range form (1.2.3.1-1.2.3.5).
    pool String
    The name of the address pool.
    avoidBuggyIps Boolean
    If true, avoid using IPs ending in .0 or .255. This avoids buggy consumer devices mistakenly dropping IPv4 traffic for those special IP addresses.
    manualAssign Boolean
    If true, prevent IP addresses from being automatically assigned.

    BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfig, BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigArgs

    NodePoolConfig BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfig
    The generic configuration for a node pool running a load balancer. Structure is documented below.
    NodePoolConfig BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfig
    The generic configuration for a node pool running a load balancer. Structure is documented below.
    nodePoolConfig BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfig
    The generic configuration for a node pool running a load balancer. Structure is documented below.
    nodePoolConfig BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfig
    The generic configuration for a node pool running a load balancer. Structure is documented below.
    node_pool_config BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfig
    The generic configuration for a node pool running a load balancer. Structure is documented below.
    nodePoolConfig Property Map
    The generic configuration for a node pool running a load balancer. Structure is documented below.

    BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfig, BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigArgs

    Labels Dictionary<string, string>
    The map of Kubernetes labels (key/value pairs) to be applied to each node. These will added in addition to any default label(s) that Kubernetes may apply to the node. In case of conflict in label keys, the applied set may differ depending on the Kubernetes version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.
    NodeConfigs List<BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfig>
    The list of machine addresses in the Bare Metal Node Pool. Structure is documented below.
    OperatingSystem string
    Specifies the nodes operating system (default: LINUX).
    Taints List<BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigTaint>
    The initial taints assigned to nodes of this node pool. Structure is documented below.
    Labels map[string]string
    The map of Kubernetes labels (key/value pairs) to be applied to each node. These will added in addition to any default label(s) that Kubernetes may apply to the node. In case of conflict in label keys, the applied set may differ depending on the Kubernetes version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.
    NodeConfigs []BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfig
    The list of machine addresses in the Bare Metal Node Pool. Structure is documented below.
    OperatingSystem string
    Specifies the nodes operating system (default: LINUX).
    Taints []BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigTaint
    The initial taints assigned to nodes of this node pool. Structure is documented below.
    labels Map<String,String>
    The map of Kubernetes labels (key/value pairs) to be applied to each node. These will added in addition to any default label(s) that Kubernetes may apply to the node. In case of conflict in label keys, the applied set may differ depending on the Kubernetes version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.
    nodeConfigs List<BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfig>
    The list of machine addresses in the Bare Metal Node Pool. Structure is documented below.
    operatingSystem String
    Specifies the nodes operating system (default: LINUX).
    taints List<BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigTaint>
    The initial taints assigned to nodes of this node pool. Structure is documented below.
    labels {[key: string]: string}
    The map of Kubernetes labels (key/value pairs) to be applied to each node. These will added in addition to any default label(s) that Kubernetes may apply to the node. In case of conflict in label keys, the applied set may differ depending on the Kubernetes version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.
    nodeConfigs BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfig[]
    The list of machine addresses in the Bare Metal Node Pool. Structure is documented below.
    operatingSystem string
    Specifies the nodes operating system (default: LINUX).
    taints BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigTaint[]
    The initial taints assigned to nodes of this node pool. Structure is documented below.
    labels Mapping[str, str]
    The map of Kubernetes labels (key/value pairs) to be applied to each node. These will added in addition to any default label(s) that Kubernetes may apply to the node. In case of conflict in label keys, the applied set may differ depending on the Kubernetes version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.
    node_configs Sequence[BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfig]
    The list of machine addresses in the Bare Metal Node Pool. Structure is documented below.
    operating_system str
    Specifies the nodes operating system (default: LINUX).
    taints Sequence[BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigTaint]
    The initial taints assigned to nodes of this node pool. Structure is documented below.
    labels Map<String>
    The map of Kubernetes labels (key/value pairs) to be applied to each node. These will added in addition to any default label(s) that Kubernetes may apply to the node. In case of conflict in label keys, the applied set may differ depending on the Kubernetes version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.
    nodeConfigs List<Property Map>
    The list of machine addresses in the Bare Metal Node Pool. Structure is documented below.
    operatingSystem String
    Specifies the nodes operating system (default: LINUX).
    taints List<Property Map>
    The initial taints assigned to nodes of this node pool. Structure is documented below.

    BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfig, BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfigArgs

    Labels Dictionary<string, string>
    The map of Kubernetes labels (key/value pairs) to be applied to each node. These will added in addition to any default label(s) that Kubernetes may apply to the node. In case of conflict in label keys, the applied set may differ depending on the Kubernetes version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.
    NodeIp string
    The default IPv4 address for SSH access and Kubernetes node. Example: 192.168.0.1
    Labels map[string]string
    The map of Kubernetes labels (key/value pairs) to be applied to each node. These will added in addition to any default label(s) that Kubernetes may apply to the node. In case of conflict in label keys, the applied set may differ depending on the Kubernetes version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.
    NodeIp string
    The default IPv4 address for SSH access and Kubernetes node. Example: 192.168.0.1
    labels Map<String,String>
    The map of Kubernetes labels (key/value pairs) to be applied to each node. These will added in addition to any default label(s) that Kubernetes may apply to the node. In case of conflict in label keys, the applied set may differ depending on the Kubernetes version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.
    nodeIp String
    The default IPv4 address for SSH access and Kubernetes node. Example: 192.168.0.1
    labels {[key: string]: string}
    The map of Kubernetes labels (key/value pairs) to be applied to each node. These will added in addition to any default label(s) that Kubernetes may apply to the node. In case of conflict in label keys, the applied set may differ depending on the Kubernetes version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.
    nodeIp string
    The default IPv4 address for SSH access and Kubernetes node. Example: 192.168.0.1
    labels Mapping[str, str]
    The map of Kubernetes labels (key/value pairs) to be applied to each node. These will added in addition to any default label(s) that Kubernetes may apply to the node. In case of conflict in label keys, the applied set may differ depending on the Kubernetes version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.
    node_ip str
    The default IPv4 address for SSH access and Kubernetes node. Example: 192.168.0.1
    labels Map<String>
    The map of Kubernetes labels (key/value pairs) to be applied to each node. These will added in addition to any default label(s) that Kubernetes may apply to the node. In case of conflict in label keys, the applied set may differ depending on the Kubernetes version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.
    nodeIp String
    The default IPv4 address for SSH access and Kubernetes node. Example: 192.168.0.1

    BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigTaint, BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigTaintArgs

    Effect string
    Specifies the nodes operating system (default: LINUX). Possible values are: EFFECT_UNSPECIFIED, PREFER_NO_SCHEDULE, NO_EXECUTE.
    Key string
    Key associated with the effect.
    Value string
    Value associated with the effect.
    Effect string
    Specifies the nodes operating system (default: LINUX). Possible values are: EFFECT_UNSPECIFIED, PREFER_NO_SCHEDULE, NO_EXECUTE.
    Key string
    Key associated with the effect.
    Value string
    Value associated with the effect.
    effect String
    Specifies the nodes operating system (default: LINUX). Possible values are: EFFECT_UNSPECIFIED, PREFER_NO_SCHEDULE, NO_EXECUTE.
    key String
    Key associated with the effect.
    value String
    Value associated with the effect.
    effect string
    Specifies the nodes operating system (default: LINUX). Possible values are: EFFECT_UNSPECIFIED, PREFER_NO_SCHEDULE, NO_EXECUTE.
    key string
    Key associated with the effect.
    value string
    Value associated with the effect.
    effect str
    Specifies the nodes operating system (default: LINUX). Possible values are: EFFECT_UNSPECIFIED, PREFER_NO_SCHEDULE, NO_EXECUTE.
    key str
    Key associated with the effect.
    value str
    Value associated with the effect.
    effect String
    Specifies the nodes operating system (default: LINUX). Possible values are: EFFECT_UNSPECIFIED, PREFER_NO_SCHEDULE, NO_EXECUTE.
    key String
    Key associated with the effect.
    value String
    Value associated with the effect.

    BareMetalClusterLoadBalancerPortConfig, BareMetalClusterLoadBalancerPortConfigArgs

    ControlPlaneLoadBalancerPort int
    The port that control plane hosted load balancers will listen on.
    ControlPlaneLoadBalancerPort int
    The port that control plane hosted load balancers will listen on.
    controlPlaneLoadBalancerPort Integer
    The port that control plane hosted load balancers will listen on.
    controlPlaneLoadBalancerPort number
    The port that control plane hosted load balancers will listen on.
    control_plane_load_balancer_port int
    The port that control plane hosted load balancers will listen on.
    controlPlaneLoadBalancerPort Number
    The port that control plane hosted load balancers will listen on.

    BareMetalClusterLoadBalancerVipConfig, BareMetalClusterLoadBalancerVipConfigArgs

    ControlPlaneVip string
    The VIP which you previously set aside for the Kubernetes API of this Bare Metal User Cluster.
    IngressVip string
    The VIP which you previously set aside for ingress traffic into this Bare Metal User Cluster.
    ControlPlaneVip string
    The VIP which you previously set aside for the Kubernetes API of this Bare Metal User Cluster.
    IngressVip string
    The VIP which you previously set aside for ingress traffic into this Bare Metal User Cluster.
    controlPlaneVip String
    The VIP which you previously set aside for the Kubernetes API of this Bare Metal User Cluster.
    ingressVip String
    The VIP which you previously set aside for ingress traffic into this Bare Metal User Cluster.
    controlPlaneVip string
    The VIP which you previously set aside for the Kubernetes API of this Bare Metal User Cluster.
    ingressVip string
    The VIP which you previously set aside for ingress traffic into this Bare Metal User Cluster.
    control_plane_vip str
    The VIP which you previously set aside for the Kubernetes API of this Bare Metal User Cluster.
    ingress_vip str
    The VIP which you previously set aside for ingress traffic into this Bare Metal User Cluster.
    controlPlaneVip String
    The VIP which you previously set aside for the Kubernetes API of this Bare Metal User Cluster.
    ingressVip String
    The VIP which you previously set aside for ingress traffic into this Bare Metal User Cluster.

    BareMetalClusterMaintenanceConfig, BareMetalClusterMaintenanceConfigArgs

    MaintenanceAddressCidrBlocks List<string>
    All IPv4 address from these ranges will be placed into maintenance mode. Nodes in maintenance mode will be cordoned and drained. When both of these are true, the "baremetal.cluster.gke.io/maintenance" annotation will be set on the node resource.
    MaintenanceAddressCidrBlocks []string
    All IPv4 address from these ranges will be placed into maintenance mode. Nodes in maintenance mode will be cordoned and drained. When both of these are true, the "baremetal.cluster.gke.io/maintenance" annotation will be set on the node resource.
    maintenanceAddressCidrBlocks List<String>
    All IPv4 address from these ranges will be placed into maintenance mode. Nodes in maintenance mode will be cordoned and drained. When both of these are true, the "baremetal.cluster.gke.io/maintenance" annotation will be set on the node resource.
    maintenanceAddressCidrBlocks string[]
    All IPv4 address from these ranges will be placed into maintenance mode. Nodes in maintenance mode will be cordoned and drained. When both of these are true, the "baremetal.cluster.gke.io/maintenance" annotation will be set on the node resource.
    maintenance_address_cidr_blocks Sequence[str]
    All IPv4 address from these ranges will be placed into maintenance mode. Nodes in maintenance mode will be cordoned and drained. When both of these are true, the "baremetal.cluster.gke.io/maintenance" annotation will be set on the node resource.
    maintenanceAddressCidrBlocks List<String>
    All IPv4 address from these ranges will be placed into maintenance mode. Nodes in maintenance mode will be cordoned and drained. When both of these are true, the "baremetal.cluster.gke.io/maintenance" annotation will be set on the node resource.

    BareMetalClusterNetworkConfig, BareMetalClusterNetworkConfigArgs

    AdvancedNetworking bool
    Enables the use of advanced Anthos networking features, such as Bundled Load Balancing with BGP or the egress NAT gateway. Setting configuration for advanced networking features will automatically set this flag.
    IslandModeCidr BareMetalClusterNetworkConfigIslandModeCidr
    A nested object resource Structure is documented below.
    MultipleNetworkInterfacesConfig BareMetalClusterNetworkConfigMultipleNetworkInterfacesConfig
    Configuration for multiple network interfaces. Structure is documented below.
    SrIovConfig BareMetalClusterNetworkConfigSrIovConfig
    Configuration for SR-IOV. Structure is documented below.
    AdvancedNetworking bool
    Enables the use of advanced Anthos networking features, such as Bundled Load Balancing with BGP or the egress NAT gateway. Setting configuration for advanced networking features will automatically set this flag.
    IslandModeCidr BareMetalClusterNetworkConfigIslandModeCidr
    A nested object resource Structure is documented below.
    MultipleNetworkInterfacesConfig BareMetalClusterNetworkConfigMultipleNetworkInterfacesConfig
    Configuration for multiple network interfaces. Structure is documented below.
    SrIovConfig BareMetalClusterNetworkConfigSrIovConfig
    Configuration for SR-IOV. Structure is documented below.
    advancedNetworking Boolean
    Enables the use of advanced Anthos networking features, such as Bundled Load Balancing with BGP or the egress NAT gateway. Setting configuration for advanced networking features will automatically set this flag.
    islandModeCidr BareMetalClusterNetworkConfigIslandModeCidr
    A nested object resource Structure is documented below.
    multipleNetworkInterfacesConfig BareMetalClusterNetworkConfigMultipleNetworkInterfacesConfig
    Configuration for multiple network interfaces. Structure is documented below.
    srIovConfig BareMetalClusterNetworkConfigSrIovConfig
    Configuration for SR-IOV. Structure is documented below.
    advancedNetworking boolean
    Enables the use of advanced Anthos networking features, such as Bundled Load Balancing with BGP or the egress NAT gateway. Setting configuration for advanced networking features will automatically set this flag.
    islandModeCidr BareMetalClusterNetworkConfigIslandModeCidr
    A nested object resource Structure is documented below.
    multipleNetworkInterfacesConfig BareMetalClusterNetworkConfigMultipleNetworkInterfacesConfig
    Configuration for multiple network interfaces. Structure is documented below.
    srIovConfig BareMetalClusterNetworkConfigSrIovConfig
    Configuration for SR-IOV. Structure is documented below.
    advanced_networking bool
    Enables the use of advanced Anthos networking features, such as Bundled Load Balancing with BGP or the egress NAT gateway. Setting configuration for advanced networking features will automatically set this flag.
    island_mode_cidr BareMetalClusterNetworkConfigIslandModeCidr
    A nested object resource Structure is documented below.
    multiple_network_interfaces_config BareMetalClusterNetworkConfigMultipleNetworkInterfacesConfig
    Configuration for multiple network interfaces. Structure is documented below.
    sr_iov_config BareMetalClusterNetworkConfigSrIovConfig
    Configuration for SR-IOV. Structure is documented below.
    advancedNetworking Boolean
    Enables the use of advanced Anthos networking features, such as Bundled Load Balancing with BGP or the egress NAT gateway. Setting configuration for advanced networking features will automatically set this flag.
    islandModeCidr Property Map
    A nested object resource Structure is documented below.
    multipleNetworkInterfacesConfig Property Map
    Configuration for multiple network interfaces. Structure is documented below.
    srIovConfig Property Map
    Configuration for SR-IOV. Structure is documented below.

    BareMetalClusterNetworkConfigIslandModeCidr, BareMetalClusterNetworkConfigIslandModeCidrArgs

    PodAddressCidrBlocks List<string>
    All pods in the cluster are assigned an RFC1918 IPv4 address from these ranges. This field cannot be changed after creation.
    ServiceAddressCidrBlocks List<string>
    All services in the cluster are assigned an RFC1918 IPv4 address from these ranges. This field cannot be changed after creation.
    PodAddressCidrBlocks []string
    All pods in the cluster are assigned an RFC1918 IPv4 address from these ranges. This field cannot be changed after creation.
    ServiceAddressCidrBlocks []string
    All services in the cluster are assigned an RFC1918 IPv4 address from these ranges. This field cannot be changed after creation.
    podAddressCidrBlocks List<String>
    All pods in the cluster are assigned an RFC1918 IPv4 address from these ranges. This field cannot be changed after creation.
    serviceAddressCidrBlocks List<String>
    All services in the cluster are assigned an RFC1918 IPv4 address from these ranges. This field cannot be changed after creation.
    podAddressCidrBlocks string[]
    All pods in the cluster are assigned an RFC1918 IPv4 address from these ranges. This field cannot be changed after creation.
    serviceAddressCidrBlocks string[]
    All services in the cluster are assigned an RFC1918 IPv4 address from these ranges. This field cannot be changed after creation.
    pod_address_cidr_blocks Sequence[str]
    All pods in the cluster are assigned an RFC1918 IPv4 address from these ranges. This field cannot be changed after creation.
    service_address_cidr_blocks Sequence[str]
    All services in the cluster are assigned an RFC1918 IPv4 address from these ranges. This field cannot be changed after creation.
    podAddressCidrBlocks List<String>
    All pods in the cluster are assigned an RFC1918 IPv4 address from these ranges. This field cannot be changed after creation.
    serviceAddressCidrBlocks List<String>
    All services in the cluster are assigned an RFC1918 IPv4 address from these ranges. This field cannot be changed after creation.

    BareMetalClusterNetworkConfigMultipleNetworkInterfacesConfig, BareMetalClusterNetworkConfigMultipleNetworkInterfacesConfigArgs

    Enabled bool
    Whether to enable multiple network interfaces for your pods. When set network_config.advanced_networking is automatically set to true.
    Enabled bool
    Whether to enable multiple network interfaces for your pods. When set network_config.advanced_networking is automatically set to true.
    enabled Boolean
    Whether to enable multiple network interfaces for your pods. When set network_config.advanced_networking is automatically set to true.
    enabled boolean
    Whether to enable multiple network interfaces for your pods. When set network_config.advanced_networking is automatically set to true.
    enabled bool
    Whether to enable multiple network interfaces for your pods. When set network_config.advanced_networking is automatically set to true.
    enabled Boolean
    Whether to enable multiple network interfaces for your pods. When set network_config.advanced_networking is automatically set to true.

    BareMetalClusterNetworkConfigSrIovConfig, BareMetalClusterNetworkConfigSrIovConfigArgs

    Enabled bool
    Whether to install the SR-IOV operator.
    Enabled bool
    Whether to install the SR-IOV operator.
    enabled Boolean
    Whether to install the SR-IOV operator.
    enabled boolean
    Whether to install the SR-IOV operator.
    enabled bool
    Whether to install the SR-IOV operator.
    enabled Boolean
    Whether to install the SR-IOV operator.

    BareMetalClusterNodeAccessConfig, BareMetalClusterNodeAccessConfigArgs

    LoginUser string
    Logi