1. Packages
  2. Google Cloud (GCP) Classic
  3. API Docs
  4. gkeonprem
  5. BareMetalNodePool
Google Cloud Classic v7.11.2 published on Wednesday, Feb 28, 2024 by Pulumi

gcp.gkeonprem.BareMetalNodePool

Explore with Pulumi AI

gcp logo
Google Cloud Classic v7.11.2 published on Wednesday, Feb 28, 2024 by Pulumi

    A Google Bare Metal Node Pool.

    Example Usage

    Gkeonprem Bare Metal Node Pool Basic

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Gcp = Pulumi.Gcp;
    
    return await Deployment.RunAsync(() => 
    {
        var default_basic = new Gcp.GkeOnPrem.BareMetalCluster("default-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",
                            },
                        },
                    },
                },
            },
            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",
                        },
                    },
                },
            },
        });
    
        var nodepool_basic = new Gcp.GkeOnPrem.BareMetalNodePool("nodepool-basic", new()
        {
            Name = "my-nodepool",
            BareMetalCluster = default_basic.Name,
            Location = "us-west1",
            NodePoolConfig = new Gcp.GkeOnPrem.Inputs.BareMetalNodePoolNodePoolConfigArgs
            {
                OperatingSystem = "LINUX",
                NodeConfigs = new[]
                {
                    new Gcp.GkeOnPrem.Inputs.BareMetalNodePoolNodePoolConfigNodeConfigArgs
                    {
                        NodeIp = "10.200.0.11",
                    },
                },
            },
        });
    
    });
    
    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, "default-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"),
    							},
    						},
    					},
    				},
    			},
    			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
    		}
    		_, err = gkeonprem.NewBareMetalNodePool(ctx, "nodepool-basic", &gkeonprem.BareMetalNodePoolArgs{
    			Name:             pulumi.String("my-nodepool"),
    			BareMetalCluster: default_basic.Name,
    			Location:         pulumi.String("us-west1"),
    			NodePoolConfig: &gkeonprem.BareMetalNodePoolNodePoolConfigArgs{
    				OperatingSystem: pulumi.String("LINUX"),
    				NodeConfigs: gkeonprem.BareMetalNodePoolNodePoolConfigNodeConfigArray{
    					&gkeonprem.BareMetalNodePoolNodePoolConfigNodeConfigArgs{
    						NodeIp: pulumi.String("10.200.0.11"),
    					},
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    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 com.pulumi.gcp.gkeonprem.BareMetalNodePool;
    import com.pulumi.gcp.gkeonprem.BareMetalNodePoolArgs;
    import com.pulumi.gcp.gkeonprem.inputs.BareMetalNodePoolNodePoolConfigArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var default_basic = new BareMetalCluster("default-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")
                            .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());
    
            var nodepool_basic = new BareMetalNodePool("nodepool-basic", BareMetalNodePoolArgs.builder()        
                .name("my-nodepool")
                .bareMetalCluster(default_basic.name())
                .location("us-west1")
                .nodePoolConfig(BareMetalNodePoolNodePoolConfigArgs.builder()
                    .operatingSystem("LINUX")
                    .nodeConfigs(BareMetalNodePoolNodePoolConfigNodeConfigArgs.builder()
                        .nodeIp("10.200.0.11")
                        .build())
                    .build())
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_gcp as gcp
    
    default_basic = gcp.gkeonprem.BareMetalCluster("default-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",
                    ],
                )],
            ),
        ),
        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",
                )],
            ),
        ))
    nodepool_basic = gcp.gkeonprem.BareMetalNodePool("nodepool-basic",
        name="my-nodepool",
        bare_metal_cluster=default_basic.name,
        location="us-west1",
        node_pool_config=gcp.gkeonprem.BareMetalNodePoolNodePoolConfigArgs(
            operating_system="LINUX",
            node_configs=[gcp.gkeonprem.BareMetalNodePoolNodePoolConfigNodeConfigArgs(
                node_ip="10.200.0.11",
            )],
        ))
    
    import * as pulumi from "@pulumi/pulumi";
    import * as gcp from "@pulumi/gcp";
    
    const default_basic = new gcp.gkeonprem.BareMetalCluster("default-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",
                    ],
                }],
            },
        },
        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",
                }],
            },
        },
    });
    const nodepool_basic = new gcp.gkeonprem.BareMetalNodePool("nodepool-basic", {
        name: "my-nodepool",
        bareMetalCluster: default_basic.name,
        location: "us-west1",
        nodePoolConfig: {
            operatingSystem: "LINUX",
            nodeConfigs: [{
                nodeIp: "10.200.0.11",
            }],
        },
    });
    
    resources:
      default-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
          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
      nodepool-basic:
        type: gcp:gkeonprem:BareMetalNodePool
        properties:
          name: my-nodepool
          bareMetalCluster: ${["default-basic"].name}
          location: us-west1
          nodePoolConfig:
            operatingSystem: LINUX
            nodeConfigs:
              - nodeIp: 10.200.0.11
    

    Gkeonprem Bare Metal Node Pool Full

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Gcp = Pulumi.Gcp;
    
    return await Deployment.RunAsync(() => 
    {
        var default_full = new Gcp.GkeOnPrem.BareMetalCluster("default-full", 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",
                            },
                        },
                    },
                },
            },
            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",
                        },
                    },
                },
            },
        });
    
        var nodepool_full = new Gcp.GkeOnPrem.BareMetalNodePool("nodepool-full", new()
        {
            Name = "my-nodepool",
            DisplayName = "test-name",
            BareMetalCluster = default_full.Name,
            Location = "us-west1",
            Annotations = null,
            NodePoolConfig = new Gcp.GkeOnPrem.Inputs.BareMetalNodePoolNodePoolConfigArgs
            {
                OperatingSystem = "LINUX",
                Labels = null,
                NodeConfigs = new[]
                {
                    new Gcp.GkeOnPrem.Inputs.BareMetalNodePoolNodePoolConfigNodeConfigArgs
                    {
                        NodeIp = "10.200.0.11",
                        Labels = null,
                    },
                },
                Taints = new[]
                {
                    new Gcp.GkeOnPrem.Inputs.BareMetalNodePoolNodePoolConfigTaintArgs
                    {
                        Key = "test-key",
                        Value = "test-value",
                        Effect = "NO_EXECUTE",
                    },
                },
            },
        });
    
    });
    
    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, "default-full", &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"),
    							},
    						},
    					},
    				},
    			},
    			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
    		}
    		_, err = gkeonprem.NewBareMetalNodePool(ctx, "nodepool-full", &gkeonprem.BareMetalNodePoolArgs{
    			Name:             pulumi.String("my-nodepool"),
    			DisplayName:      pulumi.String("test-name"),
    			BareMetalCluster: default_full.Name,
    			Location:         pulumi.String("us-west1"),
    			Annotations:      nil,
    			NodePoolConfig: &gkeonprem.BareMetalNodePoolNodePoolConfigArgs{
    				OperatingSystem: pulumi.String("LINUX"),
    				Labels:          nil,
    				NodeConfigs: gkeonprem.BareMetalNodePoolNodePoolConfigNodeConfigArray{
    					&gkeonprem.BareMetalNodePoolNodePoolConfigNodeConfigArgs{
    						NodeIp: pulumi.String("10.200.0.11"),
    						Labels: nil,
    					},
    				},
    				Taints: gkeonprem.BareMetalNodePoolNodePoolConfigTaintArray{
    					&gkeonprem.BareMetalNodePoolNodePoolConfigTaintArgs{
    						Key:    pulumi.String("test-key"),
    						Value:  pulumi.String("test-value"),
    						Effect: pulumi.String("NO_EXECUTE"),
    					},
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    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 com.pulumi.gcp.gkeonprem.BareMetalNodePool;
    import com.pulumi.gcp.gkeonprem.BareMetalNodePoolArgs;
    import com.pulumi.gcp.gkeonprem.inputs.BareMetalNodePoolNodePoolConfigArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var default_full = new BareMetalCluster("default-full", 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")
                            .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());
    
            var nodepool_full = new BareMetalNodePool("nodepool-full", BareMetalNodePoolArgs.builder()        
                .name("my-nodepool")
                .displayName("test-name")
                .bareMetalCluster(default_full.name())
                .location("us-west1")
                .annotations()
                .nodePoolConfig(BareMetalNodePoolNodePoolConfigArgs.builder()
                    .operatingSystem("LINUX")
                    .labels()
                    .nodeConfigs(BareMetalNodePoolNodePoolConfigNodeConfigArgs.builder()
                        .nodeIp("10.200.0.11")
                        .labels()
                        .build())
                    .taints(BareMetalNodePoolNodePoolConfigTaintArgs.builder()
                        .key("test-key")
                        .value("test-value")
                        .effect("NO_EXECUTE")
                        .build())
                    .build())
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_gcp as gcp
    
    default_full = gcp.gkeonprem.BareMetalCluster("default-full",
        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",
                    ],
                )],
            ),
        ),
        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",
                )],
            ),
        ))
    nodepool_full = gcp.gkeonprem.BareMetalNodePool("nodepool-full",
        name="my-nodepool",
        display_name="test-name",
        bare_metal_cluster=default_full.name,
        location="us-west1",
        annotations={},
        node_pool_config=gcp.gkeonprem.BareMetalNodePoolNodePoolConfigArgs(
            operating_system="LINUX",
            labels={},
            node_configs=[gcp.gkeonprem.BareMetalNodePoolNodePoolConfigNodeConfigArgs(
                node_ip="10.200.0.11",
                labels={},
            )],
            taints=[gcp.gkeonprem.BareMetalNodePoolNodePoolConfigTaintArgs(
                key="test-key",
                value="test-value",
                effect="NO_EXECUTE",
            )],
        ))
    
    import * as pulumi from "@pulumi/pulumi";
    import * as gcp from "@pulumi/gcp";
    
    const default_full = new gcp.gkeonprem.BareMetalCluster("default-full", {
        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",
                    ],
                }],
            },
        },
        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",
                }],
            },
        },
    });
    const nodepool_full = new gcp.gkeonprem.BareMetalNodePool("nodepool-full", {
        name: "my-nodepool",
        displayName: "test-name",
        bareMetalCluster: default_full.name,
        location: "us-west1",
        annotations: {},
        nodePoolConfig: {
            operatingSystem: "LINUX",
            labels: {},
            nodeConfigs: [{
                nodeIp: "10.200.0.11",
                labels: {},
            }],
            taints: [{
                key: "test-key",
                value: "test-value",
                effect: "NO_EXECUTE",
            }],
        },
    });
    
    resources:
      default-full:
        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
          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
      nodepool-full:
        type: gcp:gkeonprem:BareMetalNodePool
        properties:
          name: my-nodepool
          displayName: test-name
          bareMetalCluster: ${["default-full"].name}
          location: us-west1
          annotations: {}
          nodePoolConfig:
            operatingSystem: LINUX
            labels: {}
            nodeConfigs:
              - nodeIp: 10.200.0.11
                labels: {}
            taints:
              - key: test-key
                value: test-value
                effect: NO_EXECUTE
    

    Create BareMetalNodePool Resource

    new BareMetalNodePool(name: string, args: BareMetalNodePoolArgs, opts?: CustomResourceOptions);
    @overload
    def BareMetalNodePool(resource_name: str,
                          opts: Optional[ResourceOptions] = None,
                          annotations: Optional[Mapping[str, str]] = None,
                          bare_metal_cluster: Optional[str] = None,
                          display_name: Optional[str] = None,
                          location: Optional[str] = None,
                          name: Optional[str] = None,
                          node_pool_config: Optional[BareMetalNodePoolNodePoolConfigArgs] = None,
                          project: Optional[str] = None)
    @overload
    def BareMetalNodePool(resource_name: str,
                          args: BareMetalNodePoolArgs,
                          opts: Optional[ResourceOptions] = None)
    func NewBareMetalNodePool(ctx *Context, name string, args BareMetalNodePoolArgs, opts ...ResourceOption) (*BareMetalNodePool, error)
    public BareMetalNodePool(string name, BareMetalNodePoolArgs args, CustomResourceOptions? opts = null)
    public BareMetalNodePool(String name, BareMetalNodePoolArgs args)
    public BareMetalNodePool(String name, BareMetalNodePoolArgs args, CustomResourceOptions options)
    
    type: gcp:gkeonprem:BareMetalNodePool
    properties: # The arguments to resource properties.
    options: # Bag of options to control resource's behavior.
    
    
    name string
    The unique name of the resource.
    args BareMetalNodePoolArgs
    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 BareMetalNodePoolArgs
    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 BareMetalNodePoolArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args BareMetalNodePoolArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args BareMetalNodePoolArgs
    The arguments to resource properties.
    options CustomResourceOptions
    Bag of options to control resource's behavior.

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

    BareMetalCluster string
    The cluster this node pool belongs to.
    Location string
    The location of the resource.
    NodePoolConfig BareMetalNodePoolNodePoolConfig
    Node pool configuration. Structure is documented below.
    Annotations Dictionary<string, string>

    Annotations on the Bare Metal Node Pool. 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.

    DisplayName string
    The display name for the Bare Metal Node Pool.
    Name string
    The bare metal node pool name.
    Project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    BareMetalCluster string
    The cluster this node pool belongs to.
    Location string
    The location of the resource.
    NodePoolConfig BareMetalNodePoolNodePoolConfigArgs
    Node pool configuration. Structure is documented below.
    Annotations map[string]string

    Annotations on the Bare Metal Node Pool. 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.

    DisplayName string
    The display name for the Bare Metal Node Pool.
    Name string
    The bare metal node pool name.
    Project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    bareMetalCluster String
    The cluster this node pool belongs to.
    location String
    The location of the resource.
    nodePoolConfig BareMetalNodePoolNodePoolConfig
    Node pool configuration. Structure is documented below.
    annotations Map<String,String>

    Annotations on the Bare Metal Node Pool. 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.

    displayName String
    The display name for the Bare Metal Node Pool.
    name String
    The bare metal node pool name.
    project String
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    bareMetalCluster string
    The cluster this node pool belongs to.
    location string
    The location of the resource.
    nodePoolConfig BareMetalNodePoolNodePoolConfig
    Node pool configuration. Structure is documented below.
    annotations {[key: string]: string}

    Annotations on the Bare Metal Node Pool. 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.

    displayName string
    The display name for the Bare Metal Node Pool.
    name string
    The bare metal node pool name.
    project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    bare_metal_cluster str
    The cluster this node pool belongs to.
    location str
    The location of the resource.
    node_pool_config BareMetalNodePoolNodePoolConfigArgs
    Node pool configuration. Structure is documented below.
    annotations Mapping[str, str]

    Annotations on the Bare Metal Node Pool. 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.

    display_name str
    The display name for the Bare Metal Node Pool.
    name str
    The bare metal node pool name.
    project str
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    bareMetalCluster String
    The cluster this node pool belongs to.
    location String
    The location of the resource.
    nodePoolConfig Property Map
    Node pool configuration. Structure is documented below.
    annotations Map<String>

    Annotations on the Bare Metal Node Pool. 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.

    displayName String
    The display name for the Bare Metal Node Pool.
    name String
    The bare metal node pool name.
    project String
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.

    Outputs

    All input properties are implicitly available as output properties. Additionally, the BareMetalNodePool 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>
    All of annotations (key/value pairs) present on the resource in GCP, including the annotations configured through Terraform, other clients and services.
    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.
    Id string
    The provider-assigned unique ID for this managed resource.
    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<BareMetalNodePoolStatus>
    Specifies detailed node pool status. Structure is documented below.
    Uid string
    The unique identifier of the Bare Metal Node Pool.
    UpdateTime string
    The time the cluster was last updated, in RFC3339 text format.
    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
    All of annotations (key/value pairs) present on the resource in GCP, including the annotations configured through Terraform, other clients and services.
    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.
    Id string
    The provider-assigned unique ID for this managed resource.
    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 []BareMetalNodePoolStatus
    Specifies detailed node pool status. Structure is documented below.
    Uid string
    The unique identifier of the Bare Metal Node Pool.
    UpdateTime string
    The time the cluster was last updated, in RFC3339 text format.
    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>
    All of annotations (key/value pairs) present on the resource in GCP, including the annotations configured through Terraform, other clients and services.
    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.
    id String
    The provider-assigned unique ID for this managed resource.
    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<BareMetalNodePoolStatus>
    Specifies detailed node pool status. Structure is documented below.
    uid String
    The unique identifier of the Bare Metal Node Pool.
    updateTime String
    The time the cluster was last updated, in RFC3339 text format.
    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}
    All of annotations (key/value pairs) present on the resource in GCP, including the annotations configured through Terraform, other clients and services.
    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.
    id string
    The provider-assigned unique ID for this managed resource.
    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 BareMetalNodePoolStatus[]
    Specifies detailed node pool status. Structure is documented below.
    uid string
    The unique identifier of the Bare Metal Node Pool.
    updateTime string
    The time the cluster was last updated, in RFC3339 text format.
    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]
    All of annotations (key/value pairs) present on the resource in GCP, including the annotations configured through Terraform, other clients and services.
    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.
    id str
    The provider-assigned unique ID for this managed resource.
    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[BareMetalNodePoolStatus]
    Specifies detailed node pool status. Structure is documented below.
    uid str
    The unique identifier of the Bare Metal Node Pool.
    update_time str
    The time the cluster was last updated, in RFC3339 text format.
    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>
    All of annotations (key/value pairs) present on the resource in GCP, including the annotations configured through Terraform, other clients and services.
    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.
    id String
    The provider-assigned unique ID for this managed resource.
    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>
    Specifies detailed node pool status. Structure is documented below.
    uid String
    The unique identifier of the Bare Metal Node Pool.
    updateTime String
    The time the cluster was last updated, in RFC3339 text format.

    Look up Existing BareMetalNodePool Resource

    Get an existing BareMetalNodePool 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?: BareMetalNodePoolState, opts?: CustomResourceOptions): BareMetalNodePool
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            annotations: Optional[Mapping[str, str]] = None,
            bare_metal_cluster: Optional[str] = None,
            create_time: Optional[str] = None,
            delete_time: Optional[str] = None,
            display_name: Optional[str] = None,
            effective_annotations: Optional[Mapping[str, str]] = None,
            etag: Optional[str] = None,
            location: Optional[str] = None,
            name: Optional[str] = None,
            node_pool_config: Optional[BareMetalNodePoolNodePoolConfigArgs] = None,
            project: Optional[str] = None,
            reconciling: Optional[bool] = None,
            state: Optional[str] = None,
            statuses: Optional[Sequence[BareMetalNodePoolStatusArgs]] = None,
            uid: Optional[str] = None,
            update_time: Optional[str] = None) -> BareMetalNodePool
    func GetBareMetalNodePool(ctx *Context, name string, id IDInput, state *BareMetalNodePoolState, opts ...ResourceOption) (*BareMetalNodePool, error)
    public static BareMetalNodePool Get(string name, Input<string> id, BareMetalNodePoolState? state, CustomResourceOptions? opts = null)
    public static BareMetalNodePool get(String name, Output<String> id, BareMetalNodePoolState 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:
    Annotations Dictionary<string, string>

    Annotations on the Bare Metal Node Pool. 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.

    BareMetalCluster string
    The cluster this node pool belongs to.
    CreateTime string
    The time the cluster was created, in RFC3339 text format.
    DeleteTime string
    The time the cluster was deleted, in RFC3339 text format.
    DisplayName string
    The display name for the Bare Metal Node Pool.
    EffectiveAnnotations Dictionary<string, string>
    All of annotations (key/value pairs) present on the resource in GCP, including the annotations configured through Terraform, other clients and services.
    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.
    Location string
    The location of the resource.
    Name string
    The bare metal node pool name.
    NodePoolConfig BareMetalNodePoolNodePoolConfig
    Node pool configuration. Structure is documented below.
    Project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    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<BareMetalNodePoolStatus>
    Specifies detailed node pool status. Structure is documented below.
    Uid string
    The unique identifier of the Bare Metal Node Pool.
    UpdateTime string
    The time the cluster was last updated, in RFC3339 text format.
    Annotations map[string]string

    Annotations on the Bare Metal Node Pool. 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.

    BareMetalCluster string
    The cluster this node pool belongs to.
    CreateTime string
    The time the cluster was created, in RFC3339 text format.
    DeleteTime string
    The time the cluster was deleted, in RFC3339 text format.
    DisplayName string
    The display name for the Bare Metal Node Pool.
    EffectiveAnnotations map[string]string
    All of annotations (key/value pairs) present on the resource in GCP, including the annotations configured through Terraform, other clients and services.
    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.
    Location string
    The location of the resource.
    Name string
    The bare metal node pool name.
    NodePoolConfig BareMetalNodePoolNodePoolConfigArgs
    Node pool configuration. Structure is documented below.
    Project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    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 []BareMetalNodePoolStatusArgs
    Specifies detailed node pool status. Structure is documented below.
    Uid string
    The unique identifier of the Bare Metal Node Pool.
    UpdateTime string
    The time the cluster was last updated, in RFC3339 text format.
    annotations Map<String,String>

    Annotations on the Bare Metal Node Pool. 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.

    bareMetalCluster String
    The cluster this node pool belongs to.
    createTime String
    The time the cluster was created, in RFC3339 text format.
    deleteTime String
    The time the cluster was deleted, in RFC3339 text format.
    displayName String
    The display name for the Bare Metal Node Pool.
    effectiveAnnotations Map<String,String>
    All of annotations (key/value pairs) present on the resource in GCP, including the annotations configured through Terraform, other clients and services.
    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.
    location String
    The location of the resource.
    name String
    The bare metal node pool name.
    nodePoolConfig BareMetalNodePoolNodePoolConfig
    Node pool configuration. Structure is documented below.
    project String
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    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<BareMetalNodePoolStatus>
    Specifies detailed node pool status. Structure is documented below.
    uid String
    The unique identifier of the Bare Metal Node Pool.
    updateTime String
    The time the cluster was last updated, in RFC3339 text format.
    annotations {[key: string]: string}

    Annotations on the Bare Metal Node Pool. 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.

    bareMetalCluster string
    The cluster this node pool belongs to.
    createTime string
    The time the cluster was created, in RFC3339 text format.
    deleteTime string
    The time the cluster was deleted, in RFC3339 text format.
    displayName string
    The display name for the Bare Metal Node Pool.
    effectiveAnnotations {[key: string]: string}
    All of annotations (key/value pairs) present on the resource in GCP, including the annotations configured through Terraform, other clients and services.
    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.
    location string
    The location of the resource.
    name string
    The bare metal node pool name.
    nodePoolConfig BareMetalNodePoolNodePoolConfig
    Node pool configuration. Structure is documented below.
    project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    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 BareMetalNodePoolStatus[]
    Specifies detailed node pool status. Structure is documented below.
    uid string
    The unique identifier of the Bare Metal Node Pool.
    updateTime string
    The time the cluster was last updated, in RFC3339 text format.
    annotations Mapping[str, str]

    Annotations on the Bare Metal Node Pool. 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_cluster str
    The cluster this node pool belongs to.
    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.
    display_name str
    The display name for the Bare Metal Node Pool.
    effective_annotations Mapping[str, str]
    All of annotations (key/value pairs) present on the resource in GCP, including the annotations configured through Terraform, other clients and services.
    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.
    location str
    The location of the resource.
    name str
    The bare metal node pool name.
    node_pool_config BareMetalNodePoolNodePoolConfigArgs
    Node pool configuration. Structure is documented below.
    project str
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    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[BareMetalNodePoolStatusArgs]
    Specifies detailed node pool status. Structure is documented below.
    uid str
    The unique identifier of the Bare Metal Node Pool.
    update_time str
    The time the cluster was last updated, in RFC3339 text format.
    annotations Map<String>

    Annotations on the Bare Metal Node Pool. 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.

    bareMetalCluster String
    The cluster this node pool belongs to.
    createTime String
    The time the cluster was created, in RFC3339 text format.
    deleteTime String
    The time the cluster was deleted, in RFC3339 text format.
    displayName String
    The display name for the Bare Metal Node Pool.
    effectiveAnnotations Map<String>
    All of annotations (key/value pairs) present on the resource in GCP, including the annotations configured through Terraform, other clients and services.
    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.
    location String
    The location of the resource.
    name String
    The bare metal node pool name.
    nodePoolConfig Property Map
    Node pool configuration. Structure is documented below.
    project String
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    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>
    Specifies detailed node pool status. Structure is documented below.
    uid String
    The unique identifier of the Bare Metal Node Pool.
    updateTime String
    The time the cluster was last updated, in RFC3339 text format.

    Supporting Types

    BareMetalNodePoolNodePoolConfig, BareMetalNodePoolNodePoolConfigArgs

    NodeConfigs List<BareMetalNodePoolNodePoolConfigNodeConfig>
    The list of machine addresses in the Bare Metal Node Pool. 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" }.
    OperatingSystem string
    Specifies the nodes operating system (default: LINUX).
    Taints List<BareMetalNodePoolNodePoolConfigTaint>
    The initial taints assigned to nodes of this node pool. Structure is documented below.
    NodeConfigs []BareMetalNodePoolNodePoolConfigNodeConfig
    The list of machine addresses in the Bare Metal 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" }.
    OperatingSystem string
    Specifies the nodes operating system (default: LINUX).
    Taints []BareMetalNodePoolNodePoolConfigTaint
    The initial taints assigned to nodes of this node pool. Structure is documented below.
    nodeConfigs List<BareMetalNodePoolNodePoolConfigNodeConfig>
    The list of machine addresses in the Bare Metal 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" }.
    operatingSystem String
    Specifies the nodes operating system (default: LINUX).
    taints List<BareMetalNodePoolNodePoolConfigTaint>
    The initial taints assigned to nodes of this node pool. Structure is documented below.
    nodeConfigs BareMetalNodePoolNodePoolConfigNodeConfig[]
    The list of machine addresses in the Bare Metal 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" }.
    operatingSystem string
    Specifies the nodes operating system (default: LINUX).
    taints BareMetalNodePoolNodePoolConfigTaint[]
    The initial taints assigned to nodes of this node pool. Structure is documented below.
    node_configs Sequence[BareMetalNodePoolNodePoolConfigNodeConfig]
    The list of machine addresses in the Bare Metal 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" }.
    operating_system str
    Specifies the nodes operating system (default: LINUX).
    taints Sequence[BareMetalNodePoolNodePoolConfigTaint]
    The initial taints assigned to nodes of this node pool. Structure is documented below.
    nodeConfigs List<Property Map>
    The list of machine addresses in the Bare Metal 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" }.
    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.

    BareMetalNodePoolNodePoolConfigNodeConfig, BareMetalNodePoolNodePoolConfigNodeConfigArgs

    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

    BareMetalNodePoolNodePoolConfigTaint, BareMetalNodePoolNodePoolConfigTaintArgs

    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.

    BareMetalNodePoolStatus, BareMetalNodePoolStatusArgs

    Conditions List<BareMetalNodePoolStatusCondition>
    (Output) ResourceConditions provide a standard mechanism for higher-level status reporting from user cluster controller. Structure is documented below.
    ErrorMessage string
    (Output) Human-friendly representation of the error message from the user cluster controller. The error message can be temporary as the user cluster controller creates a cluster or node pool. If the error message persists for a longer period of time, it can be used to surface error message to indicate real problems requiring user intervention.
    Conditions []BareMetalNodePoolStatusCondition
    (Output) ResourceConditions provide a standard mechanism for higher-level status reporting from user cluster controller. Structure is documented below.
    ErrorMessage string
    (Output) Human-friendly representation of the error message from the user cluster controller. The error message can be temporary as the user cluster controller creates a cluster or node pool. If the error message persists for a longer period of time, it can be used to surface error message to indicate real problems requiring user intervention.
    conditions List<BareMetalNodePoolStatusCondition>
    (Output) ResourceConditions provide a standard mechanism for higher-level status reporting from user cluster controller. Structure is documented below.
    errorMessage String
    (Output) Human-friendly representation of the error message from the user cluster controller. The error message can be temporary as the user cluster controller creates a cluster or node pool. If the error message persists for a longer period of time, it can be used to surface error message to indicate real problems requiring user intervention.
    conditions BareMetalNodePoolStatusCondition[]
    (Output) ResourceConditions provide a standard mechanism for higher-level status reporting from user cluster controller. Structure is documented below.
    errorMessage string
    (Output) Human-friendly representation of the error message from the user cluster controller. The error message can be temporary as the user cluster controller creates a cluster or node pool. If the error message persists for a longer period of time, it can be used to surface error message to indicate real problems requiring user intervention.
    conditions Sequence[BareMetalNodePoolStatusCondition]
    (Output) ResourceConditions provide a standard mechanism for higher-level status reporting from user cluster controller. Structure is documented below.
    error_message str
    (Output) Human-friendly representation of the error message from the user cluster controller. The error message can be temporary as the user cluster controller creates a cluster or node pool. If the error message persists for a longer period of time, it can be used to surface error message to indicate real problems requiring user intervention.
    conditions List<Property Map>
    (Output) ResourceConditions provide a standard mechanism for higher-level status reporting from user cluster controller. Structure is documented below.
    errorMessage String
    (Output) Human-friendly representation of the error message from the user cluster controller. The error message can be temporary as the user cluster controller creates a cluster or node pool. If the error message persists for a longer period of time, it can be used to surface error message to indicate real problems requiring user intervention.

    BareMetalNodePoolStatusCondition, BareMetalNodePoolStatusConditionArgs

    LastTransitionTime string
    (Output) Last time the condition transit from one status to another.
    Message string
    Human-readable message indicating details about last transition.
    Reason string
    Machine-readable message indicating details about last transition.
    State string
    (Output) The lifecycle state of the condition.
    Type string
    Type of the condition. (e.g., ClusterRunning, NodePoolRunning or ServerSidePreflightReady)
    LastTransitionTime string
    (Output) Last time the condition transit from one status to another.
    Message string
    Human-readable message indicating details about last transition.
    Reason string
    Machine-readable message indicating details about last transition.
    State string
    (Output) The lifecycle state of the condition.
    Type string
    Type of the condition. (e.g., ClusterRunning, NodePoolRunning or ServerSidePreflightReady)
    lastTransitionTime String
    (Output) Last time the condition transit from one status to another.
    message String
    Human-readable message indicating details about last transition.
    reason String
    Machine-readable message indicating details about last transition.
    state String
    (Output) The lifecycle state of the condition.
    type String
    Type of the condition. (e.g., ClusterRunning, NodePoolRunning or ServerSidePreflightReady)
    lastTransitionTime string
    (Output) Last time the condition transit from one status to another.
    message string
    Human-readable message indicating details about last transition.
    reason string
    Machine-readable message indicating details about last transition.
    state string
    (Output) The lifecycle state of the condition.
    type string
    Type of the condition. (e.g., ClusterRunning, NodePoolRunning or ServerSidePreflightReady)
    last_transition_time str
    (Output) Last time the condition transit from one status to another.
    message str
    Human-readable message indicating details about last transition.
    reason str
    Machine-readable message indicating details about last transition.
    state str
    (Output) The lifecycle state of the condition.
    type str
    Type of the condition. (e.g., ClusterRunning, NodePoolRunning or ServerSidePreflightReady)
    lastTransitionTime String
    (Output) Last time the condition transit from one status to another.
    message String
    Human-readable message indicating details about last transition.
    reason String
    Machine-readable message indicating details about last transition.
    state String
    (Output) The lifecycle state of the condition.
    type String
    Type of the condition. (e.g., ClusterRunning, NodePoolRunning or ServerSidePreflightReady)

    Import

    BareMetalNodePool can be imported using any of these accepted formats:

    • projects/{{project}}/locations/{{location}}/bareMetalClusters/{{bare_metal_cluster}}/bareMetalNodePools/{{name}}

    • {{project}}/{{location}}/{{bare_metal_cluster}}/{{name}}

    • {{location}}/{{bare_metal_cluster}}/{{name}}

    When using the pulumi import command, BareMetalNodePool can be imported using one of the formats above. For example:

    $ pulumi import gcp:gkeonprem/bareMetalNodePool:BareMetalNodePool default projects/{{project}}/locations/{{location}}/bareMetalClusters/{{bare_metal_cluster}}/bareMetalNodePools/{{name}}
    
    $ pulumi import gcp:gkeonprem/bareMetalNodePool:BareMetalNodePool default {{project}}/{{location}}/{{bare_metal_cluster}}/{{name}}
    
    $ pulumi import gcp:gkeonprem/bareMetalNodePool:BareMetalNodePool default {{location}}/{{bare_metal_cluster}}/{{name}}
    

    Package Details

    Repository
    Google Cloud (GCP) Classic pulumi/pulumi-gcp
    License
    Apache-2.0
    Notes
    This Pulumi package is based on the google-beta Terraform Provider.
    gcp logo
    Google Cloud Classic v7.11.2 published on Wednesday, Feb 28, 2024 by Pulumi