1. Registry
  2. Packages
  3. Linode Provider
  4. API Docs
  5. LkeCluster
Viewing docs for Linode v6.9.0
published on Saturday, Oct 31, 2026 by Pulumi
linode logo linode logo
Viewing docs for Linode v6.9.0
published on Saturday, Oct 31, 2026 by Pulumi

    Manages an LKE cluster. For more information, see the Linode APIv4 docs.

    Example Usage

    import * as pulumi from "@pulumi/pulumi";
    import * as linode from "@pulumi/linode";
    
    const my_cluster = new linode.LkeCluster("my-cluster", {
        label: "my-cluster",
        k8sVersion: "1.32",
        region: "us-central",
        tags: ["prod"],
        pools: [{
            type: "g6-standard-2",
            count: 3,
        }],
    });
    
    import pulumi
    import pulumi_linode as linode
    
    my_cluster = linode.LkeCluster("my-cluster",
        label="my-cluster",
        k8s_version="1.32",
        region="us-central",
        tags=["prod"],
        pools=[{
            "type": "g6-standard-2",
            "count": 3,
        }])
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-linode/sdk/v6/go/linode"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := linode.NewLkeCluster(ctx, "my-cluster", &linode.LkeClusterArgs{
    			Label:      pulumi.String("my-cluster"),
    			K8sVersion: pulumi.String("1.32"),
    			Region:     pulumi.String("us-central"),
    			Tags: pulumi.StringArray{
    				pulumi.String("prod"),
    			},
    			Pools: linode.LkeClusterPoolArray{
    				&linode.LkeClusterPoolArgs{
    					Type:  pulumi.String("g6-standard-2"),
    					Count: pulumi.Int(3),
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Linode = Pulumi.Linode;
    
    return await Deployment.RunAsync(() => 
    {
        var my_cluster = new Linode.LkeCluster("my-cluster", new()
        {
            Label = "my-cluster",
            K8sVersion = "1.32",
            Region = "us-central",
            Tags = new[]
            {
                "prod",
            },
            Pools = new[]
            {
                new Linode.Inputs.LkeClusterPoolArgs
                {
                    Type = "g6-standard-2",
                    Count = 3,
                },
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.linode.LkeCluster;
    import com.pulumi.linode.LkeClusterArgs;
    import com.pulumi.linode.inputs.LkeClusterPoolArgs;
    import java.util.ArrayList;
    import java.util.Arrays;
    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 my_cluster = new LkeCluster("my-cluster", LkeClusterArgs.builder()
                .label("my-cluster")
                .k8sVersion("1.32")
                .region("us-central")
                .tags("prod")
                .pools(LkeClusterPoolArgs.builder()
                    .type("g6-standard-2")
                    .count(3)
                    .build())
                .build());
    
        }
    }
    
    resources:
      my-cluster:
        type: linode:LkeCluster
        properties:
          label: my-cluster
          k8sVersion: '1.32'
          region: us-central
          tags:
            - prod
          pools:
            - type: g6-standard-2
              count: 3
    
    terraform {
      required_providers {
        linode = {
          source = "pulumi/linode"
        }
      }
    }
    
    resource "linode_lke_cluster" "my-cluster" {
      lifecycle {
        create_before_destroy = true
      }
      label       = "my-cluster"
      k8s_version = "1.32"
      region      = "us-central"
      tags        = ["prod"]
      pool {
        type  = "g6-standard-2"
        count = 3
      }
    }
    
    import * as pulumi from "@pulumi/pulumi";
    import * as linode from "@pulumi/linode";
    
    const test = new linode.LkeCluster("test", {
        label: "lke-e-cluster",
        region: "us-lax",
        k8sVersion: "v1.31.8+lke5",
        tags: ["test"],
        tier: "enterprise",
        pools: [{
            type: "g7-premium-2",
            count: 3,
            tags: ["test"],
        }],
    });
    
    import pulumi
    import pulumi_linode as linode
    
    test = linode.LkeCluster("test",
        label="lke-e-cluster",
        region="us-lax",
        k8s_version="v1.31.8+lke5",
        tags=["test"],
        tier="enterprise",
        pools=[{
            "type": "g7-premium-2",
            "count": 3,
            "tags": ["test"],
        }])
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-linode/sdk/v6/go/linode"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := linode.NewLkeCluster(ctx, "test", &linode.LkeClusterArgs{
    			Label:      pulumi.String("lke-e-cluster"),
    			Region:     pulumi.String("us-lax"),
    			K8sVersion: pulumi.String("v1.31.8+lke5"),
    			Tags: pulumi.StringArray{
    				pulumi.String("test"),
    			},
    			Tier: pulumi.String("enterprise"),
    			Pools: linode.LkeClusterPoolArray{
    				&linode.LkeClusterPoolArgs{
    					Type:  pulumi.String("g7-premium-2"),
    					Count: pulumi.Int(3),
    					Tags: pulumi.StringArray{
    						pulumi.String("test"),
    					},
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Linode = Pulumi.Linode;
    
    return await Deployment.RunAsync(() => 
    {
        var test = new Linode.LkeCluster("test", new()
        {
            Label = "lke-e-cluster",
            Region = "us-lax",
            K8sVersion = "v1.31.8+lke5",
            Tags = new[]
            {
                "test",
            },
            Tier = "enterprise",
            Pools = new[]
            {
                new Linode.Inputs.LkeClusterPoolArgs
                {
                    Type = "g7-premium-2",
                    Count = 3,
                    Tags = new[]
                    {
                        "test",
                    },
                },
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.linode.LkeCluster;
    import com.pulumi.linode.LkeClusterArgs;
    import com.pulumi.linode.inputs.LkeClusterPoolArgs;
    import java.util.ArrayList;
    import java.util.Arrays;
    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 test = new LkeCluster("test", LkeClusterArgs.builder()
                .label("lke-e-cluster")
                .region("us-lax")
                .k8sVersion("v1.31.8+lke5")
                .tags("test")
                .tier("enterprise")
                .pools(LkeClusterPoolArgs.builder()
                    .type("g7-premium-2")
                    .count(3)
                    .tags("test")
                    .build())
                .build());
    
        }
    }
    
    resources:
      test:
        type: linode:LkeCluster
        properties:
          label: lke-e-cluster
          region: us-lax
          k8sVersion: v1.31.8+lke5
          tags:
            - test
          tier: enterprise
          pools:
            - type: g7-premium-2
              count: 3
              tags:
                - test
    
    terraform {
      required_providers {
        linode = {
          source = "pulumi/linode"
        }
      }
    }
    
    resource "linode_lke_cluster" "test" {
      lifecycle {
        create_before_destroy = true
      }
      label       = "lke-e-cluster"
      region      = "us-lax"
      k8s_version = "v1.31.8+lke5"
      tags        = ["test"]
      tier        = "enterprise"
      pool {
        type  = "g7-premium-2"
        count = 3
        tags  = ["test"]
      }
    }
    
    import * as pulumi from "@pulumi/pulumi";
    import * as linode from "@pulumi/linode";
    
    const my_vpc = new linode.Vpc("my-vpc", {
        label: "lke-e-vpc",
        region: "us-lax",
        ipv6s: [{
            range: "/52",
        }],
    });
    const my_subnet = new linode.VpcSubnet("my-subnet", {
        vpcId: my_vpc.id.apply(x =>Number(x)),
        label: "lke-e-subnet",
        ipv4: "10.0.0.0/20",
        ipv6s: [{
            range: "/52",
        }],
    });
    const my_cluster = new linode.LkeCluster("my-cluster", {
        label: "lke-e-vxlan-cluster",
        region: "us-lax",
        k8sVersion: "v1.32.9+lke4",
        tier: "enterprise",
        vpcId: my_vpc.id.apply(x =>Number(x)),
        subnetId: my_subnet.id.apply(x =>Number(x)),
        networking: {
            routingMode: "vxlan",
            clusterCidrIpv4: "100.64.0.0/12",
            nodeCidrMaskSizeIpv4: 25,
            serviceClusterIpRangeIpv4: "100.96.0.0/22",
            maxPods: 64,
            nodebalancerBackendPrefixLength: 22,
        },
        pools: [{
            type: "g7-premium-2",
            count: 3,
        }],
    });
    
    import pulumi
    import pulumi_linode as linode
    
    my_vpc = linode.Vpc("my-vpc",
        label="lke-e-vpc",
        region="us-lax",
        ipv6s=[{
            "range": "/52",
        }])
    my_subnet = linode.VpcSubnet("my-subnet",
        vpc_id=my_vpc.id.apply(lambda x: int(x)),
        label="lke-e-subnet",
        ipv4="10.0.0.0/20",
        ipv6s=[{
            "range": "/52",
        }])
    my_cluster = linode.LkeCluster("my-cluster",
        label="lke-e-vxlan-cluster",
        region="us-lax",
        k8s_version="v1.32.9+lke4",
        tier="enterprise",
        vpc_id=my_vpc.id.apply(lambda x: int(x)),
        subnet_id=my_subnet.id.apply(lambda x: int(x)),
        networking={
            "routing_mode": "vxlan",
            "cluster_cidr_ipv4": "100.64.0.0/12",
            "node_cidr_mask_size_ipv4": 25,
            "service_cluster_ip_range_ipv4": "100.96.0.0/22",
            "max_pods": 64,
            "nodebalancer_backend_prefix_length": 22,
        },
        pools=[{
            "type": "g7-premium-2",
            "count": 3,
        }])
    
    package main
    
    import (
    	"strconv"
    
    	"github.com/pulumi/pulumi-linode/sdk/v6/go/linode"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		my_vpc, err := linode.NewVpc(ctx, "my-vpc", &linode.VpcArgs{
    			Label:  pulumi.String("lke-e-vpc"),
    			Region: pulumi.String("us-lax"),
    			Ipv6s: linode.VpcIpv6Array{
    				&linode.VpcIpv6Args{
    					Range: pulumi.String("/52"),
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		my_subnet, err := linode.NewVpcSubnet(ctx, "my-subnet", &linode.VpcSubnetArgs{
    			VpcId: my_vpc.ID().ToStringOutput().ApplyT(strconv.Atoi).(pulumi.IntOutput),
    			Label: pulumi.String("lke-e-subnet"),
    			Ipv4:  pulumi.String("10.0.0.0/20"),
    			Ipv6s: linode.VpcSubnetIpv6Array{
    				&linode.VpcSubnetIpv6Args{
    					Range: pulumi.String("/52"),
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		_, err = linode.NewLkeCluster(ctx, "my-cluster", &linode.LkeClusterArgs{
    			Label:      pulumi.String("lke-e-vxlan-cluster"),
    			Region:     pulumi.String("us-lax"),
    			K8sVersion: pulumi.String("v1.32.9+lke4"),
    			Tier:       pulumi.String("enterprise"),
    			VpcId:      my_vpc.ID().ToStringOutput().ApplyT(strconv.Atoi).(pulumi.IntOutput),
    			SubnetId:   my_subnet.ID().ToStringOutput().ApplyT(strconv.Atoi).(pulumi.IntOutput),
    			Networking: &linode.LkeClusterNetworkingArgs{
    				RoutingMode:                     pulumi.String("vxlan"),
    				ClusterCidrIpv4:                 pulumi.String("100.64.0.0/12"),
    				NodeCidrMaskSizeIpv4:            pulumi.Int(25),
    				ServiceClusterIpRangeIpv4:       pulumi.String("100.96.0.0/22"),
    				MaxPods:                         pulumi.Int(64),
    				NodebalancerBackendPrefixLength: pulumi.Int(22),
    			},
    			Pools: linode.LkeClusterPoolArray{
    				&linode.LkeClusterPoolArgs{
    					Type:  pulumi.String("g7-premium-2"),
    					Count: pulumi.Int(3),
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Linode = Pulumi.Linode;
    
    return await Deployment.RunAsync(() => 
    {
        var my_vpc = new Linode.Vpc("my-vpc", new()
        {
            Label = "lke-e-vpc",
            Region = "us-lax",
            Ipv6s = new[]
            {
                new Linode.Inputs.VpcIpv6Args
                {
                    Range = "/52",
                },
            },
        });
    
        var my_subnet = new Linode.VpcSubnet("my-subnet", new()
        {
            VpcId = my_vpc.Id.Apply(x => int.Parse(x, System.Globalization.CultureInfo.InvariantCulture)),
            Label = "lke-e-subnet",
            Ipv4 = "10.0.0.0/20",
            Ipv6s = new[]
            {
                new Linode.Inputs.VpcSubnetIpv6Args
                {
                    Range = "/52",
                },
            },
        });
    
        var my_cluster = new Linode.LkeCluster("my-cluster", new()
        {
            Label = "lke-e-vxlan-cluster",
            Region = "us-lax",
            K8sVersion = "v1.32.9+lke4",
            Tier = "enterprise",
            VpcId = my_vpc.Id.Apply(x => int.Parse(x, System.Globalization.CultureInfo.InvariantCulture)),
            SubnetId = my_subnet.Id.Apply(x => int.Parse(x, System.Globalization.CultureInfo.InvariantCulture)),
            Networking = new Linode.Inputs.LkeClusterNetworkingArgs
            {
                RoutingMode = "vxlan",
                ClusterCidrIpv4 = "100.64.0.0/12",
                NodeCidrMaskSizeIpv4 = 25,
                ServiceClusterIpRangeIpv4 = "100.96.0.0/22",
                MaxPods = 64,
                NodebalancerBackendPrefixLength = 22,
            },
            Pools = new[]
            {
                new Linode.Inputs.LkeClusterPoolArgs
                {
                    Type = "g7-premium-2",
                    Count = 3,
                },
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.linode.Vpc;
    import com.pulumi.linode.VpcArgs;
    import com.pulumi.linode.inputs.VpcIpv6Args;
    import com.pulumi.linode.VpcSubnet;
    import com.pulumi.linode.VpcSubnetArgs;
    import com.pulumi.linode.inputs.VpcSubnetIpv6Args;
    import com.pulumi.linode.LkeCluster;
    import com.pulumi.linode.LkeClusterArgs;
    import com.pulumi.linode.inputs.LkeClusterNetworkingArgs;
    import com.pulumi.linode.inputs.LkeClusterPoolArgs;
    import java.util.ArrayList;
    import java.util.Arrays;
    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 my_vpc = new Vpc("my-vpc", VpcArgs.builder()
                .label("lke-e-vpc")
                .region("us-lax")
                .ipv6s(VpcIpv6Args.builder()
                    .range("/52")
                    .build())
                .build());
    
            var my_subnet = new VpcSubnet("my-subnet", VpcSubnetArgs.builder()
                .vpcId(my_vpc.id())
                .label("lke-e-subnet")
                .ipv4("10.0.0.0/20")
                .ipv6s(VpcSubnetIpv6Args.builder()
                    .range("/52")
                    .build())
                .build());
    
            var my_cluster = new LkeCluster("my-cluster", LkeClusterArgs.builder()
                .label("lke-e-vxlan-cluster")
                .region("us-lax")
                .k8sVersion("v1.32.9+lke4")
                .tier("enterprise")
                .vpcId(my_vpc.id())
                .subnetId(my_subnet.id())
                .networking(LkeClusterNetworkingArgs.builder()
                    .routingMode("vxlan")
                    .clusterCidrIpv4("100.64.0.0/12")
                    .nodeCidrMaskSizeIpv4(25)
                    .serviceClusterIpRangeIpv4("100.96.0.0/22")
                    .maxPods(64)
                    .nodebalancerBackendPrefixLength(22)
                    .build())
                .pools(LkeClusterPoolArgs.builder()
                    .type("g7-premium-2")
                    .count(3)
                    .build())
                .build());
    
        }
    }
    
    resources:
      my-vpc:
        type: linode:Vpc
        properties:
          label: lke-e-vpc
          region: us-lax
          ipv6s:
            - range: /52
      my-subnet:
        type: linode:VpcSubnet
        properties:
          vpcId: ${["my-vpc"].id}
          label: lke-e-subnet
          ipv4: 10.0.0.0/20
          ipv6s:
            - range: /52
      my-cluster:
        type: linode:LkeCluster
        properties:
          label: lke-e-vxlan-cluster
          region: us-lax
          k8sVersion: v1.32.9+lke4
          tier: enterprise
          vpcId: ${["my-vpc"].id}
          subnetId: ${["my-subnet"].id}
          networking:
            routingMode: vxlan
            clusterCidrIpv4: 100.64.0.0/12
            nodeCidrMaskSizeIpv4: 25
            serviceClusterIpRangeIpv4: 100.96.0.0/22
            maxPods: 64
            nodebalancerBackendPrefixLength: 22
          pools:
            - type: g7-premium-2
              count: 3
    
    terraform {
      required_providers {
        linode = {
          source = "pulumi/linode"
        }
      }
    }
    
    resource "linode_vpc" "my-vpc" {
      lifecycle {
        create_before_destroy = true
      }
      label  = "lke-e-vpc"
      region = "us-lax"
      ipv6 = [{
        range = "/52"
      }]
    }
    resource "linode_vpc_subnet" "my-subnet" {
      lifecycle {
        create_before_destroy = true
      }
      vpc_id = linode_vpc.my-vpc.id
      label  = "lke-e-subnet"
      ipv4   = "10.0.0.0/20"
      ipv6 = [{
        range = "/52"
      }]
    }
    resource "linode_lke_cluster" "my-cluster" {
      lifecycle {
        create_before_destroy = true
      }
      label       = "lke-e-vxlan-cluster"
      region      = "us-lax"
      k8s_version = "v1.32.9+lke4"
      tier        = "enterprise"
      vpc_id      = linode_vpc.my-vpc.id
      subnet_id   = linode_vpc_subnet.my-subnet.id
      networking {
        routing_mode                       = "vxlan"
        cluster_cidr_ipv4                  = "100.64.0.0/12"
        node_cidr_mask_size_ipv4           = 25
        service_cluster_ip_range_ipv4      = "100.96.0.0/22"
        max_pods                           = 64
        nodebalancer_backend_prefix_length = 22
      }
      pool {
        type  = "g7-premium-2"
        count = 3
      }
    }
    
    import * as pulumi from "@pulumi/pulumi";
    import * as linode from "@pulumi/linode";
    
    // NOTE: When subnet_id is omitted, the VPC's IPv4 ranges must include 10.0.0.0/8.
    const my_vpc = new linode.Vpc("my-vpc", {
        label: "lke-e-vpc",
        region: "us-lax",
        ipv4s: [{
            range: "10.0.0.0/8",
        }],
        ipv6s: [{
            range: "/52",
        }],
    });
    const my_cluster = new linode.LkeCluster("my-cluster", {
        label: "lke-e-vpc-cluster",
        region: "us-lax",
        k8sVersion: "v1.32.9+lke4",
        tier: "enterprise",
        vpcId: my_vpc.id.apply(x =>Number(x)),
        pools: [{
            type: "g7-premium-2",
            count: 3,
        }],
    });
    
    import pulumi
    import pulumi_linode as linode
    
    # NOTE: When subnet_id is omitted, the VPC's IPv4 ranges must include 10.0.0.0/8.
    my_vpc = linode.Vpc("my-vpc",
        label="lke-e-vpc",
        region="us-lax",
        ipv4s=[{
            "range": "10.0.0.0/8",
        }],
        ipv6s=[{
            "range": "/52",
        }])
    my_cluster = linode.LkeCluster("my-cluster",
        label="lke-e-vpc-cluster",
        region="us-lax",
        k8s_version="v1.32.9+lke4",
        tier="enterprise",
        vpc_id=my_vpc.id.apply(lambda x: int(x)),
        pools=[{
            "type": "g7-premium-2",
            "count": 3,
        }])
    
    package main
    
    import (
    	"strconv"
    
    	"github.com/pulumi/pulumi-linode/sdk/v6/go/linode"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		// NOTE: When subnet_id is omitted, the VPC's IPv4 ranges must include 10.0.0.0/8.
    		my_vpc, err := linode.NewVpc(ctx, "my-vpc", &linode.VpcArgs{
    			Label:  pulumi.String("lke-e-vpc"),
    			Region: pulumi.String("us-lax"),
    			Ipv4s: linode.VpcIpv4Array{
    				&linode.VpcIpv4Args{
    					Range: pulumi.String("10.0.0.0/8"),
    				},
    			},
    			Ipv6s: linode.VpcIpv6Array{
    				&linode.VpcIpv6Args{
    					Range: pulumi.String("/52"),
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		_, err = linode.NewLkeCluster(ctx, "my-cluster", &linode.LkeClusterArgs{
    			Label:      pulumi.String("lke-e-vpc-cluster"),
    			Region:     pulumi.String("us-lax"),
    			K8sVersion: pulumi.String("v1.32.9+lke4"),
    			Tier:       pulumi.String("enterprise"),
    			VpcId:      my_vpc.ID().ToStringOutput().ApplyT(strconv.Atoi).(pulumi.IntOutput),
    			Pools: linode.LkeClusterPoolArray{
    				&linode.LkeClusterPoolArgs{
    					Type:  pulumi.String("g7-premium-2"),
    					Count: pulumi.Int(3),
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Linode = Pulumi.Linode;
    
    return await Deployment.RunAsync(() => 
    {
        // NOTE: When subnet_id is omitted, the VPC's IPv4 ranges must include 10.0.0.0/8.
        var my_vpc = new Linode.Vpc("my-vpc", new()
        {
            Label = "lke-e-vpc",
            Region = "us-lax",
            Ipv4s = new[]
            {
                new Linode.Inputs.VpcIpv4Args
                {
                    Range = "10.0.0.0/8",
                },
            },
            Ipv6s = new[]
            {
                new Linode.Inputs.VpcIpv6Args
                {
                    Range = "/52",
                },
            },
        });
    
        var my_cluster = new Linode.LkeCluster("my-cluster", new()
        {
            Label = "lke-e-vpc-cluster",
            Region = "us-lax",
            K8sVersion = "v1.32.9+lke4",
            Tier = "enterprise",
            VpcId = my_vpc.Id.Apply(x => int.Parse(x, System.Globalization.CultureInfo.InvariantCulture)),
            Pools = new[]
            {
                new Linode.Inputs.LkeClusterPoolArgs
                {
                    Type = "g7-premium-2",
                    Count = 3,
                },
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.linode.Vpc;
    import com.pulumi.linode.VpcArgs;
    import com.pulumi.linode.inputs.VpcIpv4Args;
    import com.pulumi.linode.inputs.VpcIpv6Args;
    import com.pulumi.linode.LkeCluster;
    import com.pulumi.linode.LkeClusterArgs;
    import com.pulumi.linode.inputs.LkeClusterPoolArgs;
    import java.util.ArrayList;
    import java.util.Arrays;
    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) {
            // NOTE: When subnet_id is omitted, the VPC's IPv4 ranges must include 10.0.0.0/8.
            var my_vpc = new Vpc("my-vpc", VpcArgs.builder()
                .label("lke-e-vpc")
                .region("us-lax")
                .ipv4s(VpcIpv4Args.builder()
                    .range("10.0.0.0/8")
                    .build())
                .ipv6s(VpcIpv6Args.builder()
                    .range("/52")
                    .build())
                .build());
    
            var my_cluster = new LkeCluster("my-cluster", LkeClusterArgs.builder()
                .label("lke-e-vpc-cluster")
                .region("us-lax")
                .k8sVersion("v1.32.9+lke4")
                .tier("enterprise")
                .vpcId(my_vpc.id())
                .pools(LkeClusterPoolArgs.builder()
                    .type("g7-premium-2")
                    .count(3)
                    .build())
                .build());
    
        }
    }
    
    resources:
      # NOTE: When subnet_id is omitted, the VPC's IPv4 ranges must include 10.0.0.0/8.
      my-vpc:
        type: linode:Vpc
        properties:
          label: lke-e-vpc
          region: us-lax
          ipv4s:
            - range: 10.0.0.0/8
          ipv6s:
            - range: /52
      my-cluster:
        type: linode:LkeCluster
        properties:
          label: lke-e-vpc-cluster
          region: us-lax
          k8sVersion: v1.32.9+lke4
          tier: enterprise
          vpcId: ${["my-vpc"].id}
          pools:
            - type: g7-premium-2
              count: 3
    
    terraform {
      required_providers {
        linode = {
          source = "pulumi/linode"
        }
      }
    }
    
    # NOTE: When subnet_id is omitted, the VPC's IPv4 ranges must include 10.0.0.0/8.
    resource "linode_vpc" "my-vpc" {
      lifecycle {
        create_before_destroy = true
      }
      label  = "lke-e-vpc"
      region = "us-lax"
      ipv4 = [{
        range = "10.0.0.0/8"
      }]
      ipv6 = [{
        range = "/52"
      }]
    }
    resource "linode_lke_cluster" "my-cluster" {
      lifecycle {
        create_before_destroy = true
      }
      label       = "lke-e-vpc-cluster"
      region      = "us-lax"
      k8s_version = "v1.32.9+lke4"
      tier        = "enterprise"
      vpc_id      = linode_vpc.my-vpc.id
      pool {
        type  = "g7-premium-2"
        count = 3
      }
    }
    
    import * as pulumi from "@pulumi/pulumi";
    import * as linode from "@pulumi/linode";
    
    const my_cluster = new linode.LkeCluster("my-cluster", {
        label: "my-cluster",
        k8sVersion: "1.32",
        region: "us-central",
        tags: ["prod"],
        pools: [{
            type: "g6-standard-2",
            autoscaler: {
                min: 3,
                max: 10,
            },
        }],
    });
    
    import pulumi
    import pulumi_linode as linode
    
    my_cluster = linode.LkeCluster("my-cluster",
        label="my-cluster",
        k8s_version="1.32",
        region="us-central",
        tags=["prod"],
        pools=[{
            "type": "g6-standard-2",
            "autoscaler": {
                "min": 3,
                "max": 10,
            },
        }])
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-linode/sdk/v6/go/linode"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := linode.NewLkeCluster(ctx, "my-cluster", &linode.LkeClusterArgs{
    			Label:      pulumi.String("my-cluster"),
    			K8sVersion: pulumi.String("1.32"),
    			Region:     pulumi.String("us-central"),
    			Tags: pulumi.StringArray{
    				pulumi.String("prod"),
    			},
    			Pools: linode.LkeClusterPoolArray{
    				&linode.LkeClusterPoolArgs{
    					Type: pulumi.String("g6-standard-2"),
    					Autoscaler: &linode.LkeClusterPoolAutoscalerArgs{
    						Min: pulumi.Int(3),
    						Max: pulumi.Int(10),
    					},
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Linode = Pulumi.Linode;
    
    return await Deployment.RunAsync(() => 
    {
        var my_cluster = new Linode.LkeCluster("my-cluster", new()
        {
            Label = "my-cluster",
            K8sVersion = "1.32",
            Region = "us-central",
            Tags = new[]
            {
                "prod",
            },
            Pools = new[]
            {
                new Linode.Inputs.LkeClusterPoolArgs
                {
                    Type = "g6-standard-2",
                    Autoscaler = new Linode.Inputs.LkeClusterPoolAutoscalerArgs
                    {
                        Min = 3,
                        Max = 10,
                    },
                },
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.linode.LkeCluster;
    import com.pulumi.linode.LkeClusterArgs;
    import com.pulumi.linode.inputs.LkeClusterPoolArgs;
    import com.pulumi.linode.inputs.LkeClusterPoolAutoscalerArgs;
    import java.util.ArrayList;
    import java.util.Arrays;
    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 my_cluster = new LkeCluster("my-cluster", LkeClusterArgs.builder()
                .label("my-cluster")
                .k8sVersion("1.32")
                .region("us-central")
                .tags("prod")
                .pools(LkeClusterPoolArgs.builder()
                    .type("g6-standard-2")
                    .autoscaler(LkeClusterPoolAutoscalerArgs.builder()
                        .min(3)
                        .max(10)
                        .build())
                    .build())
                .build());
    
        }
    }
    
    resources:
      my-cluster:
        type: linode:LkeCluster
        properties:
          label: my-cluster
          k8sVersion: '1.32'
          region: us-central
          tags:
            - prod
          pools:
            - type: g6-standard-2
              autoscaler:
                min: 3
                max: 10
    
    terraform {
      required_providers {
        linode = {
          source = "pulumi/linode"
        }
      }
    }
    
    resource "linode_lke_cluster" "my-cluster" {
      lifecycle {
        create_before_destroy = true
      }
      label       = "my-cluster"
      k8s_version = "1.32"
      region      = "us-central"
      tags        = ["prod"]
      pool {
        type = "g6-standard-2"
        autoscaler {
          min = 3
          max = 10
        }
      }
    }
    
    import * as pulumi from "@pulumi/pulumi";
    import * as linode from "@pulumi/linode";
    
    const test = new linode.LkeCluster("test", {
        label: "my-cluster",
        k8sVersion: "1.32",
        region: "us-central",
        tags: ["prod"],
        controlPlane: {
            highAvailability: true,
            acl: {
                enabled: true,
                addresses: [{
                    ipv4s: ["0.0.0.0/0"],
                    ipv6s: ["2001:db8::/32"],
                }],
            },
        },
        pools: [{
            type: "g6-standard-2",
            count: 1,
        }],
    });
    
    import pulumi
    import pulumi_linode as linode
    
    test = linode.LkeCluster("test",
        label="my-cluster",
        k8s_version="1.32",
        region="us-central",
        tags=["prod"],
        control_plane={
            "high_availability": True,
            "acl": {
                "enabled": True,
                "addresses": [{
                    "ipv4s": ["0.0.0.0/0"],
                    "ipv6s": ["2001:db8::/32"],
                }],
            },
        },
        pools=[{
            "type": "g6-standard-2",
            "count": 1,
        }])
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-linode/sdk/v6/go/linode"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := linode.NewLkeCluster(ctx, "test", &linode.LkeClusterArgs{
    			Label:      pulumi.String("my-cluster"),
    			K8sVersion: pulumi.String("1.32"),
    			Region:     pulumi.String("us-central"),
    			Tags: pulumi.StringArray{
    				pulumi.String("prod"),
    			},
    			ControlPlane: &linode.LkeClusterControlPlaneArgs{
    				HighAvailability: pulumi.Bool(true),
    				Acl: &linode.LkeClusterControlPlaneAclArgs{
    					Enabled: pulumi.Bool(true),
    					Addresses: linode.LkeClusterControlPlaneAclAddressArray{
    						&linode.LkeClusterControlPlaneAclAddressArgs{
    							Ipv4s: pulumi.StringArray{
    								pulumi.String("0.0.0.0/0"),
    							},
    							Ipv6s: pulumi.StringArray{
    								pulumi.String("2001:db8::/32"),
    							},
    						},
    					},
    				},
    			},
    			Pools: linode.LkeClusterPoolArray{
    				&linode.LkeClusterPoolArgs{
    					Type:  pulumi.String("g6-standard-2"),
    					Count: pulumi.Int(1),
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Linode = Pulumi.Linode;
    
    return await Deployment.RunAsync(() => 
    {
        var test = new Linode.LkeCluster("test", new()
        {
            Label = "my-cluster",
            K8sVersion = "1.32",
            Region = "us-central",
            Tags = new[]
            {
                "prod",
            },
            ControlPlane = new Linode.Inputs.LkeClusterControlPlaneArgs
            {
                HighAvailability = true,
                Acl = new Linode.Inputs.LkeClusterControlPlaneAclArgs
                {
                    Enabled = true,
                    Addresses = new[]
                    {
                        new Linode.Inputs.LkeClusterControlPlaneAclAddressArgs
                        {
                            Ipv4s = new[]
                            {
                                "0.0.0.0/0",
                            },
                            Ipv6s = new[]
                            {
                                "2001:db8::/32",
                            },
                        },
                    },
                },
            },
            Pools = new[]
            {
                new Linode.Inputs.LkeClusterPoolArgs
                {
                    Type = "g6-standard-2",
                    Count = 1,
                },
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.linode.LkeCluster;
    import com.pulumi.linode.LkeClusterArgs;
    import com.pulumi.linode.inputs.LkeClusterControlPlaneArgs;
    import com.pulumi.linode.inputs.LkeClusterControlPlaneAclArgs;
    import com.pulumi.linode.inputs.LkeClusterControlPlaneAclAddressArgs;
    import com.pulumi.linode.inputs.LkeClusterPoolArgs;
    import java.util.ArrayList;
    import java.util.Arrays;
    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 test = new LkeCluster("test", LkeClusterArgs.builder()
                .label("my-cluster")
                .k8sVersion("1.32")
                .region("us-central")
                .tags("prod")
                .controlPlane(LkeClusterControlPlaneArgs.builder()
                    .highAvailability(true)
                    .acl(LkeClusterControlPlaneAclArgs.builder()
                        .enabled(true)
                        .addresses(LkeClusterControlPlaneAclAddressArgs.builder()
                            .ipv4s("0.0.0.0/0")
                            .ipv6s("2001:db8::/32")
                            .build())
                        .build())
                    .build())
                .pools(LkeClusterPoolArgs.builder()
                    .type("g6-standard-2")
                    .count(1)
                    .build())
                .build());
    
        }
    }
    
    resources:
      test:
        type: linode:LkeCluster
        properties:
          label: my-cluster
          k8sVersion: '1.32'
          region: us-central
          tags:
            - prod
          controlPlane:
            highAvailability: true
            acl:
              enabled: true
              addresses:
                - ipv4s:
                    - 0.0.0.0/0
                  ipv6s:
                    - 2001:db8::/32
          pools:
            - type: g6-standard-2
              count: 1
    
    terraform {
      required_providers {
        linode = {
          source = "pulumi/linode"
        }
      }
    }
    
    resource "linode_lke_cluster" "test" {
      lifecycle {
        create_before_destroy = true
      }
      label       = "my-cluster"
      k8s_version = "1.32"
      region      = "us-central"
      tags        = ["prod"]
      control_plane {
        high_availability = true
        acl {
          enabled = true
          addresses {
            ipv4 = ["0.0.0.0/0"]
            ipv6 = ["2001:db8::/32"]
          }
        }
      }
      pool {
        type  = "g6-standard-2"
        count = 1
      }
    }
    
    import * as pulumi from "@pulumi/pulumi";
    import * as linode from "@pulumi/linode";
    
    const my_cluster = new linode.LkeCluster("my-cluster", {
        label: "my-cluster",
        k8sVersion: "1.32",
        region: "us-central",
        tags: ["prod"],
        pools: [
            {
                type: "g6-standard-2",
                count: 2,
                label: "db-pool",
            },
            {
                type: "g6-standard-1",
                count: 3,
                label: "app-pool",
            },
        ],
    });
    
    import pulumi
    import pulumi_linode as linode
    
    my_cluster = linode.LkeCluster("my-cluster",
        label="my-cluster",
        k8s_version="1.32",
        region="us-central",
        tags=["prod"],
        pools=[
            {
                "type": "g6-standard-2",
                "count": 2,
                "label": "db-pool",
            },
            {
                "type": "g6-standard-1",
                "count": 3,
                "label": "app-pool",
            },
        ])
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-linode/sdk/v6/go/linode"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := linode.NewLkeCluster(ctx, "my-cluster", &linode.LkeClusterArgs{
    			Label:      pulumi.String("my-cluster"),
    			K8sVersion: pulumi.String("1.32"),
    			Region:     pulumi.String("us-central"),
    			Tags: pulumi.StringArray{
    				pulumi.String("prod"),
    			},
    			Pools: linode.LkeClusterPoolArray{
    				&linode.LkeClusterPoolArgs{
    					Type:  pulumi.String("g6-standard-2"),
    					Count: pulumi.Int(2),
    					Label: pulumi.String("db-pool"),
    				},
    				&linode.LkeClusterPoolArgs{
    					Type:  pulumi.String("g6-standard-1"),
    					Count: pulumi.Int(3),
    					Label: pulumi.String("app-pool"),
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Linode = Pulumi.Linode;
    
    return await Deployment.RunAsync(() => 
    {
        var my_cluster = new Linode.LkeCluster("my-cluster", new()
        {
            Label = "my-cluster",
            K8sVersion = "1.32",
            Region = "us-central",
            Tags = new[]
            {
                "prod",
            },
            Pools = new[]
            {
                new Linode.Inputs.LkeClusterPoolArgs
                {
                    Type = "g6-standard-2",
                    Count = 2,
                    Label = "db-pool",
                },
                new Linode.Inputs.LkeClusterPoolArgs
                {
                    Type = "g6-standard-1",
                    Count = 3,
                    Label = "app-pool",
                },
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.linode.LkeCluster;
    import com.pulumi.linode.LkeClusterArgs;
    import com.pulumi.linode.inputs.LkeClusterPoolArgs;
    import java.util.ArrayList;
    import java.util.Arrays;
    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 my_cluster = new LkeCluster("my-cluster", LkeClusterArgs.builder()
                .label("my-cluster")
                .k8sVersion("1.32")
                .region("us-central")
                .tags("prod")
                .pools(            
                    LkeClusterPoolArgs.builder()
                        .type("g6-standard-2")
                        .count(2)
                        .label("db-pool")
                        .build(),
                    LkeClusterPoolArgs.builder()
                        .type("g6-standard-1")
                        .count(3)
                        .label("app-pool")
                        .build())
                .build());
    
        }
    }
    
    resources:
      my-cluster:
        type: linode:LkeCluster
        properties:
          label: my-cluster
          k8sVersion: '1.32'
          region: us-central
          tags:
            - prod
          pools:
            - type: g6-standard-2
              count: 2
              label: db-pool
            - type: g6-standard-1
              count: 3
              label: app-pool
    
    terraform {
      required_providers {
        linode = {
          source = "pulumi/linode"
        }
      }
    }
    
    resource "linode_lke_cluster" "my-cluster" {
      lifecycle {
        create_before_destroy = true
      }
      label       = "my-cluster"
      k8s_version = "1.32"
      region      = "us-central"
      tags        = ["prod"]
      pool {
        type  = "g6-standard-2"
        count = 2
        label = "db-pool"
      }
      pool {
        type  = "g6-standard-1"
        count = 3
        label = "app-pool"
      }
    }
    
    import * as pulumi from "@pulumi/pulumi";
    import * as linode from "@pulumi/linode";
    
    const my_cluster = new linode.LkeCluster("my-cluster", {
        label: "my-cluster",
        k8sVersion: "1.32",
        region: "us-central",
        tags: ["prod"],
        pools: [{
            type: "g6-standard-2",
            count: 2,
            label: "db-pool",
            firewallId: 12345,
        }],
    });
    
    import pulumi
    import pulumi_linode as linode
    
    my_cluster = linode.LkeCluster("my-cluster",
        label="my-cluster",
        k8s_version="1.32",
        region="us-central",
        tags=["prod"],
        pools=[{
            "type": "g6-standard-2",
            "count": 2,
            "label": "db-pool",
            "firewall_id": 12345,
        }])
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-linode/sdk/v6/go/linode"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := linode.NewLkeCluster(ctx, "my-cluster", &linode.LkeClusterArgs{
    			Label:      pulumi.String("my-cluster"),
    			K8sVersion: pulumi.String("1.32"),
    			Region:     pulumi.String("us-central"),
    			Tags: pulumi.StringArray{
    				pulumi.String("prod"),
    			},
    			Pools: linode.LkeClusterPoolArray{
    				&linode.LkeClusterPoolArgs{
    					Type:       pulumi.String("g6-standard-2"),
    					Count:      pulumi.Int(2),
    					Label:      pulumi.String("db-pool"),
    					FirewallId: pulumi.Int(12345),
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Linode = Pulumi.Linode;
    
    return await Deployment.RunAsync(() => 
    {
        var my_cluster = new Linode.LkeCluster("my-cluster", new()
        {
            Label = "my-cluster",
            K8sVersion = "1.32",
            Region = "us-central",
            Tags = new[]
            {
                "prod",
            },
            Pools = new[]
            {
                new Linode.Inputs.LkeClusterPoolArgs
                {
                    Type = "g6-standard-2",
                    Count = 2,
                    Label = "db-pool",
                    FirewallId = 12345,
                },
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.linode.LkeCluster;
    import com.pulumi.linode.LkeClusterArgs;
    import com.pulumi.linode.inputs.LkeClusterPoolArgs;
    import java.util.ArrayList;
    import java.util.Arrays;
    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 my_cluster = new LkeCluster("my-cluster", LkeClusterArgs.builder()
                .label("my-cluster")
                .k8sVersion("1.32")
                .region("us-central")
                .tags("prod")
                .pools(LkeClusterPoolArgs.builder()
                    .type("g6-standard-2")
                    .count(2)
                    .label("db-pool")
                    .firewallId(12345)
                    .build())
                .build());
    
        }
    }
    
    resources:
      my-cluster:
        type: linode:LkeCluster
        properties:
          label: my-cluster
          k8sVersion: '1.32'
          region: us-central
          tags:
            - prod
          pools:
            - type: g6-standard-2
              count: 2
              label: db-pool
              firewallId: 12345
    
    terraform {
      required_providers {
        linode = {
          source = "pulumi/linode"
        }
      }
    }
    
    resource "linode_lke_cluster" "my-cluster" {
      lifecycle {
        create_before_destroy = true
      }
      label       = "my-cluster"
      k8s_version = "1.32"
      region      = "us-central"
      tags        = ["prod"]
      pool {
        type        = "g6-standard-2"
        count       = 2
        label       = "db-pool"
        firewall_id = 12345
      }
    }
    
    import * as pulumi from "@pulumi/pulumi";
    import * as linode from "@pulumi/linode";
    
    const my_cluster = new linode.LkeCluster("my-cluster", {
        label: "my-cluster",
        k8sVersion: "1.32",
        region: "us-central",
        tags: ["prod"],
        pools: [
            {
                type: "g6-standard-2",
                count: 2,
                labels: {
                    role: "database",
                    environment: "production",
                },
            },
            {
                type: "g6-standard-1",
                count: 3,
                labels: {
                    role: "application",
                    environment: "production",
                },
            },
        ],
    });
    
    import pulumi
    import pulumi_linode as linode
    
    my_cluster = linode.LkeCluster("my-cluster",
        label="my-cluster",
        k8s_version="1.32",
        region="us-central",
        tags=["prod"],
        pools=[
            {
                "type": "g6-standard-2",
                "count": 2,
                "labels": {
                    "role": "database",
                    "environment": "production",
                },
            },
            {
                "type": "g6-standard-1",
                "count": 3,
                "labels": {
                    "role": "application",
                    "environment": "production",
                },
            },
        ])
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-linode/sdk/v6/go/linode"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := linode.NewLkeCluster(ctx, "my-cluster", &linode.LkeClusterArgs{
    			Label:      pulumi.String("my-cluster"),
    			K8sVersion: pulumi.String("1.32"),
    			Region:     pulumi.String("us-central"),
    			Tags: pulumi.StringArray{
    				pulumi.String("prod"),
    			},
    			Pools: linode.LkeClusterPoolArray{
    				&linode.LkeClusterPoolArgs{
    					Type:  pulumi.String("g6-standard-2"),
    					Count: pulumi.Int(2),
    					Labels: pulumi.StringMap{
    						"role":        pulumi.String("database"),
    						"environment": pulumi.String("production"),
    					},
    				},
    				&linode.LkeClusterPoolArgs{
    					Type:  pulumi.String("g6-standard-1"),
    					Count: pulumi.Int(3),
    					Labels: pulumi.StringMap{
    						"role":        pulumi.String("application"),
    						"environment": pulumi.String("production"),
    					},
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Linode = Pulumi.Linode;
    
    return await Deployment.RunAsync(() => 
    {
        var my_cluster = new Linode.LkeCluster("my-cluster", new()
        {
            Label = "my-cluster",
            K8sVersion = "1.32",
            Region = "us-central",
            Tags = new[]
            {
                "prod",
            },
            Pools = new[]
            {
                new Linode.Inputs.LkeClusterPoolArgs
                {
                    Type = "g6-standard-2",
                    Count = 2,
                    Labels = 
                    {
                        { "role", "database" },
                        { "environment", "production" },
                    },
                },
                new Linode.Inputs.LkeClusterPoolArgs
                {
                    Type = "g6-standard-1",
                    Count = 3,
                    Labels = 
                    {
                        { "role", "application" },
                        { "environment", "production" },
                    },
                },
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.linode.LkeCluster;
    import com.pulumi.linode.LkeClusterArgs;
    import com.pulumi.linode.inputs.LkeClusterPoolArgs;
    import java.util.ArrayList;
    import java.util.Arrays;
    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 my_cluster = new LkeCluster("my-cluster", LkeClusterArgs.builder()
                .label("my-cluster")
                .k8sVersion("1.32")
                .region("us-central")
                .tags("prod")
                .pools(            
                    LkeClusterPoolArgs.builder()
                        .type("g6-standard-2")
                        .count(2)
                        .labels(Map.ofEntries(
                            Map.entry("role", "database"),
                            Map.entry("environment", "production")
                        ))
                        .build(),
                    LkeClusterPoolArgs.builder()
                        .type("g6-standard-1")
                        .count(3)
                        .labels(Map.ofEntries(
                            Map.entry("role", "application"),
                            Map.entry("environment", "production")
                        ))
                        .build())
                .build());
    
        }
    }
    
    resources:
      my-cluster:
        type: linode:LkeCluster
        properties:
          label: my-cluster
          k8sVersion: '1.32'
          region: us-central
          tags:
            - prod
          pools:
            - type: g6-standard-2
              count: 2
              labels:
                role: database
                environment: production
            - type: g6-standard-1
              count: 3
              labels:
                role: application
                environment: production
    
    terraform {
      required_providers {
        linode = {
          source = "pulumi/linode"
        }
      }
    }
    
    resource "linode_lke_cluster" "my-cluster" {
      lifecycle {
        create_before_destroy = true
      }
      label       = "my-cluster"
      k8s_version = "1.32"
      region      = "us-central"
      tags        = ["prod"]
      pool {
        type  = "g6-standard-2"
        count = 2
        labels = {
          "role"        = "database"
          "environment" = "production"
        }
      }
      pool {
        type  = "g6-standard-1"
        count = 3
        labels = {
          "role"        = "application"
          "environment" = "production"
        }
      }
    }
    
    import * as pulumi from "@pulumi/pulumi";
    import * as linode from "@pulumi/linode";
    
    const my_cluster = new linode.LkeCluster("my-cluster", {
        label: "my-cluster",
        k8sVersion: "1.32",
        region: "us-central",
        tags: ["prod"],
        pools: [
            {
                type: "g6-standard-2",
                count: 2,
                diskEncryption: "enabled",
            },
            {
                type: "g6-standard-1",
                count: 1,
                diskEncryption: "disabled",
            },
        ],
    });
    
    import pulumi
    import pulumi_linode as linode
    
    my_cluster = linode.LkeCluster("my-cluster",
        label="my-cluster",
        k8s_version="1.32",
        region="us-central",
        tags=["prod"],
        pools=[
            {
                "type": "g6-standard-2",
                "count": 2,
                "disk_encryption": "enabled",
            },
            {
                "type": "g6-standard-1",
                "count": 1,
                "disk_encryption": "disabled",
            },
        ])
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-linode/sdk/v6/go/linode"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := linode.NewLkeCluster(ctx, "my-cluster", &linode.LkeClusterArgs{
    			Label:      pulumi.String("my-cluster"),
    			K8sVersion: pulumi.String("1.32"),
    			Region:     pulumi.String("us-central"),
    			Tags: pulumi.StringArray{
    				pulumi.String("prod"),
    			},
    			Pools: linode.LkeClusterPoolArray{
    				&linode.LkeClusterPoolArgs{
    					Type:           pulumi.String("g6-standard-2"),
    					Count:          pulumi.Int(2),
    					DiskEncryption: pulumi.String("enabled"),
    				},
    				&linode.LkeClusterPoolArgs{
    					Type:           pulumi.String("g6-standard-1"),
    					Count:          pulumi.Int(1),
    					DiskEncryption: pulumi.String("disabled"),
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Linode = Pulumi.Linode;
    
    return await Deployment.RunAsync(() => 
    {
        var my_cluster = new Linode.LkeCluster("my-cluster", new()
        {
            Label = "my-cluster",
            K8sVersion = "1.32",
            Region = "us-central",
            Tags = new[]
            {
                "prod",
            },
            Pools = new[]
            {
                new Linode.Inputs.LkeClusterPoolArgs
                {
                    Type = "g6-standard-2",
                    Count = 2,
                    DiskEncryption = "enabled",
                },
                new Linode.Inputs.LkeClusterPoolArgs
                {
                    Type = "g6-standard-1",
                    Count = 1,
                    DiskEncryption = "disabled",
                },
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.linode.LkeCluster;
    import com.pulumi.linode.LkeClusterArgs;
    import com.pulumi.linode.inputs.LkeClusterPoolArgs;
    import java.util.ArrayList;
    import java.util.Arrays;
    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 my_cluster = new LkeCluster("my-cluster", LkeClusterArgs.builder()
                .label("my-cluster")
                .k8sVersion("1.32")
                .region("us-central")
                .tags("prod")
                .pools(            
                    LkeClusterPoolArgs.builder()
                        .type("g6-standard-2")
                        .count(2)
                        .diskEncryption("enabled")
                        .build(),
                    LkeClusterPoolArgs.builder()
                        .type("g6-standard-1")
                        .count(1)
                        .diskEncryption("disabled")
                        .build())
                .build());
    
        }
    }
    
    resources:
      my-cluster:
        type: linode:LkeCluster
        properties:
          label: my-cluster
          k8sVersion: '1.32'
          region: us-central
          tags:
            - prod
          pools:
            - type: g6-standard-2
              count: 2
              diskEncryption: enabled
            - type: g6-standard-1
              count: 1
              diskEncryption: disabled
    
    terraform {
      required_providers {
        linode = {
          source = "pulumi/linode"
        }
      }
    }
    
    resource "linode_lke_cluster" "my-cluster" {
      lifecycle {
        create_before_destroy = true
      }
      label       = "my-cluster"
      k8s_version = "1.32"
      region      = "us-central"
      tags        = ["prod"]
      pool {
        type            = "g6-standard-2"
        count           = 2
        disk_encryption = "enabled"
      }
      pool {
        type            = "g6-standard-1"
        count           = 1
        disk_encryption = "disabled"
      }
    }
    

    Nested Node Pool Caveats

    Due to limitations in the provider there are some minor caveats that may cause unexpected behavior when updating nested pool blocks in this resource. Primarily, the order of pool blocks is significant because the ID of each pool is resolved from the Terraform state.

    import * as pulumi from "@pulumi/pulumi";
    import * as linode from "@pulumi/linode";
    
    const my_cluster = new linode.LkeCluster("my-cluster", {pools: [
        {
            type: "g6-standard-1",
            count: 2,
        },
        {
            type: "g6-standard-2",
            count: 3,
        },
    ]});
    
    import pulumi
    import pulumi_linode as linode
    
    my_cluster = linode.LkeCluster("my-cluster", pools=[
        {
            "type": "g6-standard-1",
            "count": 2,
        },
        {
            "type": "g6-standard-2",
            "count": 3,
        },
    ])
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-linode/sdk/v6/go/linode"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := linode.NewLkeCluster(ctx, "my-cluster", &linode.LkeClusterArgs{
    			Pools: linode.LkeClusterPoolArray{
    				&linode.LkeClusterPoolArgs{
    					Type:  pulumi.String("g6-standard-1"),
    					Count: pulumi.Int(2),
    				},
    				&linode.LkeClusterPoolArgs{
    					Type:  pulumi.String("g6-standard-2"),
    					Count: pulumi.Int(3),
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Linode = Pulumi.Linode;
    
    return await Deployment.RunAsync(() => 
    {
        var my_cluster = new Linode.LkeCluster("my-cluster", new()
        {
            Pools = new[]
            {
                new Linode.Inputs.LkeClusterPoolArgs
                {
                    Type = "g6-standard-1",
                    Count = 2,
                },
                new Linode.Inputs.LkeClusterPoolArgs
                {
                    Type = "g6-standard-2",
                    Count = 3,
                },
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.linode.LkeCluster;
    import com.pulumi.linode.LkeClusterArgs;
    import com.pulumi.linode.inputs.LkeClusterPoolArgs;
    import java.util.ArrayList;
    import java.util.Arrays;
    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 my_cluster = new LkeCluster("my-cluster", LkeClusterArgs.builder()
                .pools(            
                    LkeClusterPoolArgs.builder()
                        .type("g6-standard-1")
                        .count(2)
                        .build(),
                    LkeClusterPoolArgs.builder()
                        .type("g6-standard-2")
                        .count(3)
                        .build())
                .build());
    
        }
    }
    
    resources:
      my-cluster:
        type: linode:LkeCluster
        properties:
          pools:
            - type: g6-standard-1
              count: 2
            - type: g6-standard-2
              count: 3
    
    terraform {
      required_providers {
        linode = {
          source = "pulumi/linode"
        }
      }
    }
    
    resource "linode_lke_cluster" "my-cluster" {
      lifecycle {
        create_before_destroy = true
      }
      pool {
        type  = "g6-standard-1"
        count = 2
      }
      pool {
        type  = "g6-standard-2"
        count = 3
      }
    }
    
    import * as pulumi from "@pulumi/pulumi";
    import * as linode from "@pulumi/linode";
    
    const my_cluster = new linode.LkeCluster("my-cluster", {pools: [{
        type: "g6-standard-2",
        count: 3,
    }]});
    
    import pulumi
    import pulumi_linode as linode
    
    my_cluster = linode.LkeCluster("my-cluster", pools=[{
        "type": "g6-standard-2",
        "count": 3,
    }])
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-linode/sdk/v6/go/linode"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := linode.NewLkeCluster(ctx, "my-cluster", &linode.LkeClusterArgs{
    			Pools: linode.LkeClusterPoolArray{
    				&linode.LkeClusterPoolArgs{
    					Type:  pulumi.String("g6-standard-2"),
    					Count: pulumi.Int(3),
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Linode = Pulumi.Linode;
    
    return await Deployment.RunAsync(() => 
    {
        var my_cluster = new Linode.LkeCluster("my-cluster", new()
        {
            Pools = new[]
            {
                new Linode.Inputs.LkeClusterPoolArgs
                {
                    Type = "g6-standard-2",
                    Count = 3,
                },
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.linode.LkeCluster;
    import com.pulumi.linode.LkeClusterArgs;
    import com.pulumi.linode.inputs.LkeClusterPoolArgs;
    import java.util.ArrayList;
    import java.util.Arrays;
    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 my_cluster = new LkeCluster("my-cluster", LkeClusterArgs.builder()
                .pools(LkeClusterPoolArgs.builder()
                    .type("g6-standard-2")
                    .count(3)
                    .build())
                .build());
    
        }
    }
    
    resources:
      my-cluster:
        type: linode:LkeCluster
        properties:
          pools:
            - type: g6-standard-2
              count: 3
    
    terraform {
      required_providers {
        linode = {
          source = "pulumi/linode"
        }
      }
    }
    
    resource "linode_lke_cluster" "my-cluster" {
      lifecycle {
        create_before_destroy = true
      }
      pool {
        type  = "g6-standard-2"
        count = 3
      }
    }
    

    Externally Managed Node Pools

    By default, the linode.LkeCluster resource will account for all node pools under the corresponding cluster, meaning any node pools created externally or managed by other resources will be removed on subsequent applies.

    To signal the provider to ignore externally managed node pools, the externalPoolTags attribute can be defined with tags matching a tag on an externally managed node pool.

    import * as pulumi from "@pulumi/pulumi";
    import * as linode from "@pulumi/linode";
    
    const externalPoolTag = "external";
    const my_cluster = new linode.LkeCluster("my-cluster", {
        label: "my-cluster",
        k8sVersion: "1.32",
        region: "us-mia",
        externalPoolTags: [externalPoolTag],
        pools: [{
            type: "g6-standard-1",
            count: 1,
        }],
    });
    const my_pool = new linode.LkeNodePool("my-pool", {
        clusterId: my_cluster.id.apply(x =>Number(x)),
        type: "g6-standard-2",
        nodeCount: 3,
        tags: [externalPoolTag],
    });
    
    import pulumi
    import pulumi_linode as linode
    
    external_pool_tag = "external"
    my_cluster = linode.LkeCluster("my-cluster",
        label="my-cluster",
        k8s_version="1.32",
        region="us-mia",
        external_pool_tags=[external_pool_tag],
        pools=[{
            "type": "g6-standard-1",
            "count": 1,
        }])
    my_pool = linode.LkeNodePool("my-pool",
        cluster_id=my_cluster.id.apply(lambda x: int(x)),
        type="g6-standard-2",
        node_count=3,
        tags=[external_pool_tag])
    
    package main
    
    import (
    	"strconv"
    
    	"github.com/pulumi/pulumi-linode/sdk/v6/go/linode"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		externalPoolTag := "external"
    		my_cluster, err := linode.NewLkeCluster(ctx, "my-cluster", &linode.LkeClusterArgs{
    			Label:      pulumi.String("my-cluster"),
    			K8sVersion: pulumi.String("1.32"),
    			Region:     pulumi.String("us-mia"),
    			ExternalPoolTags: pulumi.StringArray{
    				pulumi.String(externalPoolTag),
    			},
    			Pools: linode.LkeClusterPoolArray{
    				&linode.LkeClusterPoolArgs{
    					Type:  pulumi.String("g6-standard-1"),
    					Count: pulumi.Int(1),
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		_, err = linode.NewLkeNodePool(ctx, "my-pool", &linode.LkeNodePoolArgs{
    			ClusterId: my_cluster.ID().ToStringOutput().ApplyT(strconv.Atoi).(pulumi.IntOutput),
    			Type:      pulumi.String("g6-standard-2"),
    			NodeCount: pulumi.Int(3),
    			Tags: pulumi.StringArray{
    				pulumi.String(externalPoolTag),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Linode = Pulumi.Linode;
    
    return await Deployment.RunAsync(() => 
    {
        var externalPoolTag = "external";
    
        var my_cluster = new Linode.LkeCluster("my-cluster", new()
        {
            Label = "my-cluster",
            K8sVersion = "1.32",
            Region = "us-mia",
            ExternalPoolTags = new[]
            {
                externalPoolTag,
            },
            Pools = new[]
            {
                new Linode.Inputs.LkeClusterPoolArgs
                {
                    Type = "g6-standard-1",
                    Count = 1,
                },
            },
        });
    
        var my_pool = new Linode.LkeNodePool("my-pool", new()
        {
            ClusterId = my_cluster.Id.Apply(x => int.Parse(x, System.Globalization.CultureInfo.InvariantCulture)),
            Type = "g6-standard-2",
            NodeCount = 3,
            Tags = new[]
            {
                externalPoolTag,
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.linode.LkeCluster;
    import com.pulumi.linode.LkeClusterArgs;
    import com.pulumi.linode.inputs.LkeClusterPoolArgs;
    import com.pulumi.linode.LkeNodePool;
    import com.pulumi.linode.LkeNodePoolArgs;
    import java.util.ArrayList;
    import java.util.Arrays;
    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) {
            final var externalPoolTag = "external";
    
            var my_cluster = new LkeCluster("my-cluster", LkeClusterArgs.builder()
                .label("my-cluster")
                .k8sVersion("1.32")
                .region("us-mia")
                .externalPoolTags(externalPoolTag)
                .pools(LkeClusterPoolArgs.builder()
                    .type("g6-standard-1")
                    .count(1)
                    .build())
                .build());
    
            var my_pool = new LkeNodePool("my-pool", LkeNodePoolArgs.builder()
                .clusterId(my_cluster.id())
                .type("g6-standard-2")
                .nodeCount(3)
                .tags(externalPoolTag)
                .build());
    
        }
    }
    
    resources:
      my-cluster:
        type: linode:LkeCluster
        properties:
          label: my-cluster
          k8sVersion: '1.32'
          region: us-mia
          externalPoolTags:
            - ${externalPoolTag}
          pools:
            - type: g6-standard-1
              count: 1
      my-pool:
        type: linode:LkeNodePool
        properties:
          clusterId: ${["my-cluster"].id}
          type: g6-standard-2
          nodeCount: 3
          tags:
            - ${externalPoolTag}
    variables:
      externalPoolTag: external
    
    terraform {
      required_providers {
        linode = {
          source = "pulumi/linode"
        }
      }
    }
    
    resource "linode_lke_cluster" "my-cluster" {
      lifecycle {
        create_before_destroy = true
      }
      label              = "my-cluster"
      k8s_version        = "1.32"
      region             = "us-mia"
      external_pool_tags = [local.externalPoolTag]
      pool {
        type  = "g6-standard-1"
        count = 1
      }
    }
    resource "linode_lke_node_pool" "my-pool" {
      lifecycle {
        create_before_destroy = true
      }
      cluster_id = linode_lke_cluster.my-cluster.id
      type       = "g6-standard-2"
      node_count = 3
      tags       = [local.externalPoolTag]
    }
    locals {
      externalPoolTag = "external"
    }
    

    Create LkeCluster Resource

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

    Constructor syntax

    new LkeCluster(name: string, args: LkeClusterArgs, opts?: CustomResourceOptions);
    @overload
    def LkeCluster(resource_name: str,
                   args: LkeClusterArgs,
                   opts: Optional[ResourceOptions] = None)
    
    @overload
    def LkeCluster(resource_name: str,
                   opts: Optional[ResourceOptions] = None,
                   k8s_version: Optional[str] = None,
                   region: Optional[str] = None,
                   label: Optional[str] = None,
                   pools: Optional[Sequence[LkeClusterPoolArgs]] = None,
                   external_pool_tags: Optional[Sequence[str]] = None,
                   networking: Optional[LkeClusterNetworkingArgs] = None,
                   apl_enabled: Optional[bool] = None,
                   control_plane: Optional[LkeClusterControlPlaneArgs] = None,
                   stack_type: Optional[str] = None,
                   subnet_id: Optional[int] = None,
                   tags: Optional[Sequence[str]] = None,
                   tier: Optional[str] = None,
                   vpc_id: Optional[int] = None)
    func NewLkeCluster(ctx *Context, name string, args LkeClusterArgs, opts ...ResourceOption) (*LkeCluster, error)
    public LkeCluster(string name, LkeClusterArgs args, CustomResourceOptions? opts = null)
    public LkeCluster(String name, LkeClusterArgs args)
    public LkeCluster(String name, LkeClusterArgs args, CustomResourceOptions options)
    
    type: linode:LkeCluster
    properties: # The arguments to resource properties.
    options: # Bag of options to control resource's behavior.
    
    
    resource "linode_lke_cluster" "name" {
        # resource properties
    }

    Parameters

    name string
    The unique name of the resource.
    args LkeClusterArgs
    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 LkeClusterArgs
    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 LkeClusterArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args LkeClusterArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args LkeClusterArgs
    The arguments to resource properties.
    options CustomResourceOptions
    Bag of options to control resource's behavior.

    Constructor example

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

    var lkeClusterResource = new Linode.LkeCluster("lkeClusterResource", new()
    {
        K8sVersion = "string",
        Region = "string",
        Label = "string",
        Pools = new[]
        {
            new Linode.Inputs.LkeClusterPoolArgs
            {
                Type = "string",
                Label = "string",
                DiskEncryption = "string",
                FirewallId = 0,
                Id = 0,
                K8sVersion = "string",
                Autoscaler = new Linode.Inputs.LkeClusterPoolAutoscalerArgs
                {
                    Max = 0,
                    Min = 0,
                },
                Labels = 
                {
                    { "string", "string" },
                },
                Nodes = new[]
                {
                    new Linode.Inputs.LkeClusterPoolNodeArgs
                    {
                        Id = "string",
                        InstanceId = 0,
                        Status = "string",
                    },
                },
                Tags = new[]
                {
                    "string",
                },
                Taints = new[]
                {
                    new Linode.Inputs.LkeClusterPoolTaintArgs
                    {
                        Effect = "string",
                        Key = "string",
                        Value = "string",
                    },
                },
                Count = 0,
                UpdateStrategy = "string",
            },
        },
        ExternalPoolTags = new[]
        {
            "string",
        },
        Networking = new Linode.Inputs.LkeClusterNetworkingArgs
        {
            ClusterCidrIpv4 = "string",
            ClusterCidrIpv6 = "string",
            MaxPods = 0,
            NodeCidrMaskSizeIpv4 = 0,
            NodeCidrMaskSizeIpv6 = 0,
            NodebalancerBackendPrefixLength = 0,
            RoutingMode = "string",
            ServiceClusterIpRangeIpv4 = "string",
            ServiceClusterIpRangeIpv6 = "string",
        },
        AplEnabled = false,
        ControlPlane = new Linode.Inputs.LkeClusterControlPlaneArgs
        {
            Acl = new Linode.Inputs.LkeClusterControlPlaneAclArgs
            {
                Addresses = new[]
                {
                    new Linode.Inputs.LkeClusterControlPlaneAclAddressArgs
                    {
                        Ipv4s = new[]
                        {
                            "string",
                        },
                        Ipv6s = new[]
                        {
                            "string",
                        },
                    },
                },
                Enabled = false,
            },
            AuditLogsEnabled = false,
            HighAvailability = false,
        },
        StackType = "string",
        SubnetId = 0,
        Tags = new[]
        {
            "string",
        },
        Tier = "string",
        VpcId = 0,
    });
    
    example, err := linode.NewLkeCluster(ctx, "lkeClusterResource", &linode.LkeClusterArgs{
    	K8sVersion: pulumi.String("string"),
    	Region:     pulumi.String("string"),
    	Label:      pulumi.String("string"),
    	Pools: linode.LkeClusterPoolArray{
    		&linode.LkeClusterPoolArgs{
    			Type:           pulumi.String("string"),
    			Label:          pulumi.String("string"),
    			DiskEncryption: pulumi.String("string"),
    			FirewallId:     pulumi.Int(0),
    			Id:             pulumi.Int(0),
    			K8sVersion:     pulumi.String("string"),
    			Autoscaler: &linode.LkeClusterPoolAutoscalerArgs{
    				Max: pulumi.Int(0),
    				Min: pulumi.Int(0),
    			},
    			Labels: pulumi.StringMap{
    				"string": pulumi.String("string"),
    			},
    			Nodes: linode.LkeClusterPoolNodeArray{
    				&linode.LkeClusterPoolNodeArgs{
    					Id:         pulumi.String("string"),
    					InstanceId: pulumi.Int(0),
    					Status:     pulumi.String("string"),
    				},
    			},
    			Tags: pulumi.StringArray{
    				pulumi.String("string"),
    			},
    			Taints: linode.LkeClusterPoolTaintArray{
    				&linode.LkeClusterPoolTaintArgs{
    					Effect: pulumi.String("string"),
    					Key:    pulumi.String("string"),
    					Value:  pulumi.String("string"),
    				},
    			},
    			Count:          pulumi.Int(0),
    			UpdateStrategy: pulumi.String("string"),
    		},
    	},
    	ExternalPoolTags: pulumi.StringArray{
    		pulumi.String("string"),
    	},
    	Networking: &linode.LkeClusterNetworkingArgs{
    		ClusterCidrIpv4:                 pulumi.String("string"),
    		ClusterCidrIpv6:                 pulumi.String("string"),
    		MaxPods:                         pulumi.Int(0),
    		NodeCidrMaskSizeIpv4:            pulumi.Int(0),
    		NodeCidrMaskSizeIpv6:            pulumi.Int(0),
    		NodebalancerBackendPrefixLength: pulumi.Int(0),
    		RoutingMode:                     pulumi.String("string"),
    		ServiceClusterIpRangeIpv4:       pulumi.String("string"),
    		ServiceClusterIpRangeIpv6:       pulumi.String("string"),
    	},
    	AplEnabled: pulumi.Bool(false),
    	ControlPlane: &linode.LkeClusterControlPlaneArgs{
    		Acl: &linode.LkeClusterControlPlaneAclArgs{
    			Addresses: linode.LkeClusterControlPlaneAclAddressArray{
    				&linode.LkeClusterControlPlaneAclAddressArgs{
    					Ipv4s: pulumi.StringArray{
    						pulumi.String("string"),
    					},
    					Ipv6s: pulumi.StringArray{
    						pulumi.String("string"),
    					},
    				},
    			},
    			Enabled: pulumi.Bool(false),
    		},
    		AuditLogsEnabled: pulumi.Bool(false),
    		HighAvailability: pulumi.Bool(false),
    	},
    	StackType: pulumi.String("string"),
    	SubnetId:  pulumi.Int(0),
    	Tags: pulumi.StringArray{
    		pulumi.String("string"),
    	},
    	Tier:  pulumi.String("string"),
    	VpcId: pulumi.Int(0),
    })
    
    resource "linode_lke_cluster" "lkeClusterResource" {
      lifecycle {
        create_before_destroy = true
      }
      k8s_version = "string"
      region      = "string"
      label       = "string"
      pools {
        type            = "string"
        label           = "string"
        disk_encryption = "string"
        firewall_id     = 0
        id              = 0
        k8s_version     = "string"
        autoscaler = {
          max = 0
          min = 0
        }
        labels = {
          "string" = "string"
        }
        nodes {
          id          = "string"
          instance_id = 0
          status      = "string"
        }
        tags = ["string"]
        taints {
          effect = "string"
          key    = "string"
          value  = "string"
        }
        count           = 0
        update_strategy = "string"
      }
      external_pool_tags = ["string"]
      networking = {
        cluster_cidr_ipv4                  = "string"
        cluster_cidr_ipv6                  = "string"
        max_pods                           = 0
        node_cidr_mask_size_ipv4           = 0
        node_cidr_mask_size_ipv6           = 0
        nodebalancer_backend_prefix_length = 0
        routing_mode                       = "string"
        service_cluster_ip_range_ipv4      = "string"
        service_cluster_ip_range_ipv6      = "string"
      }
      apl_enabled = false
      control_plane = {
        acl = {
          addresses = [{
            ipv4s = ["string"]
            ipv6s = ["string"]
          }]
          enabled = false
        }
        audit_logs_enabled = false
        high_availability  = false
      }
      stack_type = "string"
      subnet_id  = 0
      tags       = ["string"]
      tier       = "string"
      vpc_id     = 0
    }
    
    var lkeClusterResource = new LkeCluster("lkeClusterResource", LkeClusterArgs.builder()
        .k8sVersion("string")
        .region("string")
        .label("string")
        .pools(LkeClusterPoolArgs.builder()
            .type("string")
            .label("string")
            .diskEncryption("string")
            .firewallId(0)
            .id(0)
            .k8sVersion("string")
            .autoscaler(LkeClusterPoolAutoscalerArgs.builder()
                .max(0)
                .min(0)
                .build())
            .labels(Map.of("string", "string"))
            .nodes(LkeClusterPoolNodeArgs.builder()
                .id("string")
                .instanceId(0)
                .status("string")
                .build())
            .tags("string")
            .taints(LkeClusterPoolTaintArgs.builder()
                .effect("string")
                .key("string")
                .value("string")
                .build())
            .count(0)
            .updateStrategy("string")
            .build())
        .externalPoolTags("string")
        .networking(LkeClusterNetworkingArgs.builder()
            .clusterCidrIpv4("string")
            .clusterCidrIpv6("string")
            .maxPods(0)
            .nodeCidrMaskSizeIpv4(0)
            .nodeCidrMaskSizeIpv6(0)
            .nodebalancerBackendPrefixLength(0)
            .routingMode("string")
            .serviceClusterIpRangeIpv4("string")
            .serviceClusterIpRangeIpv6("string")
            .build())
        .aplEnabled(false)
        .controlPlane(LkeClusterControlPlaneArgs.builder()
            .acl(LkeClusterControlPlaneAclArgs.builder()
                .addresses(LkeClusterControlPlaneAclAddressArgs.builder()
                    .ipv4s("string")
                    .ipv6s("string")
                    .build())
                .enabled(false)
                .build())
            .auditLogsEnabled(false)
            .highAvailability(false)
            .build())
        .stackType("string")
        .subnetId(0)
        .tags("string")
        .tier("string")
        .vpcId(0)
        .build());
    
    lke_cluster_resource = linode.LkeCluster("lkeClusterResource",
        k8s_version="string",
        region="string",
        label="string",
        pools=[{
            "type": "string",
            "label": "string",
            "disk_encryption": "string",
            "firewall_id": 0,
            "id": 0,
            "k8s_version": "string",
            "autoscaler": {
                "max": 0,
                "min": 0,
            },
            "labels": {
                "string": "string",
            },
            "nodes": [{
                "id": "string",
                "instance_id": 0,
                "status": "string",
            }],
            "tags": ["string"],
            "taints": [{
                "effect": "string",
                "key": "string",
                "value": "string",
            }],
            "count": 0,
            "update_strategy": "string",
        }],
        external_pool_tags=["string"],
        networking={
            "cluster_cidr_ipv4": "string",
            "cluster_cidr_ipv6": "string",
            "max_pods": 0,
            "node_cidr_mask_size_ipv4": 0,
            "node_cidr_mask_size_ipv6": 0,
            "nodebalancer_backend_prefix_length": 0,
            "routing_mode": "string",
            "service_cluster_ip_range_ipv4": "string",
            "service_cluster_ip_range_ipv6": "string",
        },
        apl_enabled=False,
        control_plane={
            "acl": {
                "addresses": [{
                    "ipv4s": ["string"],
                    "ipv6s": ["string"],
                }],
                "enabled": False,
            },
            "audit_logs_enabled": False,
            "high_availability": False,
        },
        stack_type="string",
        subnet_id=0,
        tags=["string"],
        tier="string",
        vpc_id=0)
    
    const lkeClusterResource = new linode.LkeCluster("lkeClusterResource", {
        k8sVersion: "string",
        region: "string",
        label: "string",
        pools: [{
            type: "string",
            label: "string",
            diskEncryption: "string",
            firewallId: 0,
            id: 0,
            k8sVersion: "string",
            autoscaler: {
                max: 0,
                min: 0,
            },
            labels: {
                string: "string",
            },
            nodes: [{
                id: "string",
                instanceId: 0,
                status: "string",
            }],
            tags: ["string"],
            taints: [{
                effect: "string",
                key: "string",
                value: "string",
            }],
            count: 0,
            updateStrategy: "string",
        }],
        externalPoolTags: ["string"],
        networking: {
            clusterCidrIpv4: "string",
            clusterCidrIpv6: "string",
            maxPods: 0,
            nodeCidrMaskSizeIpv4: 0,
            nodeCidrMaskSizeIpv6: 0,
            nodebalancerBackendPrefixLength: 0,
            routingMode: "string",
            serviceClusterIpRangeIpv4: "string",
            serviceClusterIpRangeIpv6: "string",
        },
        aplEnabled: false,
        controlPlane: {
            acl: {
                addresses: [{
                    ipv4s: ["string"],
                    ipv6s: ["string"],
                }],
                enabled: false,
            },
            auditLogsEnabled: false,
            highAvailability: false,
        },
        stackType: "string",
        subnetId: 0,
        tags: ["string"],
        tier: "string",
        vpcId: 0,
    });
    
    type: linode:LkeCluster
    properties:
        aplEnabled: false
        controlPlane:
            acl:
                addresses:
                    - ipv4s:
                        - string
                      ipv6s:
                        - string
                enabled: false
            auditLogsEnabled: false
            highAvailability: false
        externalPoolTags:
            - string
        k8sVersion: string
        label: string
        networking:
            clusterCidrIpv4: string
            clusterCidrIpv6: string
            maxPods: 0
            nodeCidrMaskSizeIpv4: 0
            nodeCidrMaskSizeIpv6: 0
            nodebalancerBackendPrefixLength: 0
            routingMode: string
            serviceClusterIpRangeIpv4: string
            serviceClusterIpRangeIpv6: string
        pools:
            - autoscaler:
                max: 0
                min: 0
              count: 0
              diskEncryption: string
              firewallId: 0
              id: 0
              k8sVersion: string
              label: string
              labels:
                string: string
              nodes:
                - id: string
                  instanceId: 0
                  status: string
              tags:
                - string
              taints:
                - effect: string
                  key: string
                  value: string
              type: string
              updateStrategy: string
        region: string
        stackType: string
        subnetId: 0
        tags:
            - string
        tier: string
        vpcId: 0
    

    LkeCluster Resource Properties

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

    Inputs

    In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.

    The LkeCluster resource accepts the following input properties:

    K8sVersion string
    The desired Kubernetes version for this Kubernetes cluster in the format of major.minor (e.g. 1.21), and the latest supported patch version will be deployed.
    Label string
    This Kubernetes cluster's unique label.
    Region string

    This Kubernetes cluster's location.

    • pool - (Required, Block List) The Node Pool specifications for the Kubernetes cluster. At least one Node Pool is required.

    • controlPlane - (Optional, Block) Defines settings for the Kubernetes Control Plane. Referenced with an index (e.g. control_plane.0.high_availability).

    AplEnabled bool
    Enables the App Platform Layer
    ControlPlane LkeClusterControlPlane
    Defines settings for the Kubernetes Control Plane.
    ExternalPoolTags List<string>
    A set of node pool tags to ignore when planning and applying this cluster. This prevents externally managed node pools from being deleted or unintentionally updated on subsequent applies. See Externally Managed Node Pools for more details.
    Networking LkeClusterNetworking
    (Block) Additional nested attributes:
    Pools List<LkeClusterPool>
    (Block List) Additional nested attributes:
    StackType string
    The networking stack type of the Kubernetes cluster.

    • networking - (Optional, Block) The pod network routing mode and network configuration of an LKE Enterprise cluster. Changing any of these values will cause the cluster to be replaced. Referenced with an index (e.g. networking.0.routing_mode). NOTE: This field may not be available to all users and is only accepted and populated when apiVersion is set to v4beta.
    SubnetId int
    The ID of the VPC subnet to use for the Kubernetes cluster. This subnet must be dual stack (IPv4 and IPv6 should both be enabled). NOTE: This field may not be available for all users and is only accepted and populated when apiVersion is set to v4beta.
    Tags List<string>
    An array of tags applied to the Kubernetes cluster. Tags are case-insensitive and are for organizational purposes only.
    Tier string
    The desired Kubernetes tier. NOTE: This field may not be available to all users and is only accepted and populated when apiVersion is set to v4beta.
    VpcId int
    The ID of the VPC to use for the Kubernetes cluster. If vpcId is set without subnetId, the API allocates a workload subnet for the cluster from the 10.0.0.0/8 range of the VPC: a /13 for the default native routing mode, or a /19 when networking.0.routing_mode is vxlan. In this case the VPC's IPv4 ranges must include 10.0.0.0/8, otherwise the cluster creation is rejected. A VPC created without custom ipv4 ranges already includes 10.0.0.0/8. This requirement does not apply when subnetId is set.
    K8sVersion string
    The desired Kubernetes version for this Kubernetes cluster in the format of major.minor (e.g. 1.21), and the latest supported patch version will be deployed.
    Label string
    This Kubernetes cluster's unique label.
    Region string

    This Kubernetes cluster's location.

    • pool - (Required, Block List) The Node Pool specifications for the Kubernetes cluster. At least one Node Pool is required.

    • controlPlane - (Optional, Block) Defines settings for the Kubernetes Control Plane. Referenced with an index (e.g. control_plane.0.high_availability).

    AplEnabled bool
    Enables the App Platform Layer
    ControlPlane LkeClusterControlPlaneArgs
    Defines settings for the Kubernetes Control Plane.
    ExternalPoolTags []string
    A set of node pool tags to ignore when planning and applying this cluster. This prevents externally managed node pools from being deleted or unintentionally updated on subsequent applies. See Externally Managed Node Pools for more details.
    Networking LkeClusterNetworkingArgs
    (Block) Additional nested attributes:
    Pools []LkeClusterPoolArgs
    (Block List) Additional nested attributes:
    StackType string
    The networking stack type of the Kubernetes cluster.

    • networking - (Optional, Block) The pod network routing mode and network configuration of an LKE Enterprise cluster. Changing any of these values will cause the cluster to be replaced. Referenced with an index (e.g. networking.0.routing_mode). NOTE: This field may not be available to all users and is only accepted and populated when apiVersion is set to v4beta.
    SubnetId int
    The ID of the VPC subnet to use for the Kubernetes cluster. This subnet must be dual stack (IPv4 and IPv6 should both be enabled). NOTE: This field may not be available for all users and is only accepted and populated when apiVersion is set to v4beta.
    Tags []string
    An array of tags applied to the Kubernetes cluster. Tags are case-insensitive and are for organizational purposes only.
    Tier string
    The desired Kubernetes tier. NOTE: This field may not be available to all users and is only accepted and populated when apiVersion is set to v4beta.
    VpcId int
    The ID of the VPC to use for the Kubernetes cluster. If vpcId is set without subnetId, the API allocates a workload subnet for the cluster from the 10.0.0.0/8 range of the VPC: a /13 for the default native routing mode, or a /19 when networking.0.routing_mode is vxlan. In this case the VPC's IPv4 ranges must include 10.0.0.0/8, otherwise the cluster creation is rejected. A VPC created without custom ipv4 ranges already includes 10.0.0.0/8. This requirement does not apply when subnetId is set.
    k8s_version string
    The desired Kubernetes version for this Kubernetes cluster in the format of major.minor (e.g. 1.21), and the latest supported patch version will be deployed.
    label string
    This Kubernetes cluster's unique label.
    region string

    This Kubernetes cluster's location.

    • pool - (Required, Block List) The Node Pool specifications for the Kubernetes cluster. At least one Node Pool is required.

    • controlPlane - (Optional, Block) Defines settings for the Kubernetes Control Plane. Referenced with an index (e.g. control_plane.0.high_availability).

    apl_enabled bool
    Enables the App Platform Layer
    control_plane object
    Defines settings for the Kubernetes Control Plane.
    external_pool_tags list(string)
    A set of node pool tags to ignore when planning and applying this cluster. This prevents externally managed node pools from being deleted or unintentionally updated on subsequent applies. See Externally Managed Node Pools for more details.
    networking object
    (Block) Additional nested attributes:
    pools list(object)
    (Block List) Additional nested attributes:
    stack_type string
    The networking stack type of the Kubernetes cluster.

    • networking - (Optional, Block) The pod network routing mode and network configuration of an LKE Enterprise cluster. Changing any of these values will cause the cluster to be replaced. Referenced with an index (e.g. networking.0.routing_mode). NOTE: This field may not be available to all users and is only accepted and populated when apiVersion is set to v4beta.
    subnet_id number
    The ID of the VPC subnet to use for the Kubernetes cluster. This subnet must be dual stack (IPv4 and IPv6 should both be enabled). NOTE: This field may not be available for all users and is only accepted and populated when apiVersion is set to v4beta.
    tags list(string)
    An array of tags applied to the Kubernetes cluster. Tags are case-insensitive and are for organizational purposes only.
    tier string
    The desired Kubernetes tier. NOTE: This field may not be available to all users and is only accepted and populated when apiVersion is set to v4beta.
    vpc_id number
    The ID of the VPC to use for the Kubernetes cluster. If vpcId is set without subnetId, the API allocates a workload subnet for the cluster from the 10.0.0.0/8 range of the VPC: a /13 for the default native routing mode, or a /19 when networking.0.routing_mode is vxlan. In this case the VPC's IPv4 ranges must include 10.0.0.0/8, otherwise the cluster creation is rejected. A VPC created without custom ipv4 ranges already includes 10.0.0.0/8. This requirement does not apply when subnetId is set.
    k8sVersion String
    The desired Kubernetes version for this Kubernetes cluster in the format of major.minor (e.g. 1.21), and the latest supported patch version will be deployed.
    label String
    This Kubernetes cluster's unique label.
    region String

    This Kubernetes cluster's location.

    • pool - (Required, Block List) The Node Pool specifications for the Kubernetes cluster. At least one Node Pool is required.

    • controlPlane - (Optional, Block) Defines settings for the Kubernetes Control Plane. Referenced with an index (e.g. control_plane.0.high_availability).

    aplEnabled Boolean
    Enables the App Platform Layer
    controlPlane LkeClusterControlPlane
    Defines settings for the Kubernetes Control Plane.
    externalPoolTags List<String>
    A set of node pool tags to ignore when planning and applying this cluster. This prevents externally managed node pools from being deleted or unintentionally updated on subsequent applies. See Externally Managed Node Pools for more details.
    networking LkeClusterNetworking
    (Block) Additional nested attributes:
    pools List<LkeClusterPool>
    (Block List) Additional nested attributes:
    stackType String
    The networking stack type of the Kubernetes cluster.

    • networking - (Optional, Block) The pod network routing mode and network configuration of an LKE Enterprise cluster. Changing any of these values will cause the cluster to be replaced. Referenced with an index (e.g. networking.0.routing_mode). NOTE: This field may not be available to all users and is only accepted and populated when apiVersion is set to v4beta.
    subnetId Integer
    The ID of the VPC subnet to use for the Kubernetes cluster. This subnet must be dual stack (IPv4 and IPv6 should both be enabled). NOTE: This field may not be available for all users and is only accepted and populated when apiVersion is set to v4beta.
    tags List<String>
    An array of tags applied to the Kubernetes cluster. Tags are case-insensitive and are for organizational purposes only.
    tier String
    The desired Kubernetes tier. NOTE: This field may not be available to all users and is only accepted and populated when apiVersion is set to v4beta.
    vpcId Integer
    The ID of the VPC to use for the Kubernetes cluster. If vpcId is set without subnetId, the API allocates a workload subnet for the cluster from the 10.0.0.0/8 range of the VPC: a /13 for the default native routing mode, or a /19 when networking.0.routing_mode is vxlan. In this case the VPC's IPv4 ranges must include 10.0.0.0/8, otherwise the cluster creation is rejected. A VPC created without custom ipv4 ranges already includes 10.0.0.0/8. This requirement does not apply when subnetId is set.
    k8sVersion string
    The desired Kubernetes version for this Kubernetes cluster in the format of major.minor (e.g. 1.21), and the latest supported patch version will be deployed.
    label string
    This Kubernetes cluster's unique label.
    region string

    This Kubernetes cluster's location.

    • pool - (Required, Block List) The Node Pool specifications for the Kubernetes cluster. At least one Node Pool is required.

    • controlPlane - (Optional, Block) Defines settings for the Kubernetes Control Plane. Referenced with an index (e.g. control_plane.0.high_availability).

    aplEnabled boolean
    Enables the App Platform Layer
    controlPlane LkeClusterControlPlane
    Defines settings for the Kubernetes Control Plane.
    externalPoolTags string[]
    A set of node pool tags to ignore when planning and applying this cluster. This prevents externally managed node pools from being deleted or unintentionally updated on subsequent applies. See Externally Managed Node Pools for more details.
    networking LkeClusterNetworking
    (Block) Additional nested attributes:
    pools LkeClusterPool[]
    (Block List) Additional nested attributes:
    stackType string
    The networking stack type of the Kubernetes cluster.

    • networking - (Optional, Block) The pod network routing mode and network configuration of an LKE Enterprise cluster. Changing any of these values will cause the cluster to be replaced. Referenced with an index (e.g. networking.0.routing_mode). NOTE: This field may not be available to all users and is only accepted and populated when apiVersion is set to v4beta.
    subnetId number
    The ID of the VPC subnet to use for the Kubernetes cluster. This subnet must be dual stack (IPv4 and IPv6 should both be enabled). NOTE: This field may not be available for all users and is only accepted and populated when apiVersion is set to v4beta.
    tags string[]
    An array of tags applied to the Kubernetes cluster. Tags are case-insensitive and are for organizational purposes only.
    tier string
    The desired Kubernetes tier. NOTE: This field may not be available to all users and is only accepted and populated when apiVersion is set to v4beta.
    vpcId number
    The ID of the VPC to use for the Kubernetes cluster. If vpcId is set without subnetId, the API allocates a workload subnet for the cluster from the 10.0.0.0/8 range of the VPC: a /13 for the default native routing mode, or a /19 when networking.0.routing_mode is vxlan. In this case the VPC's IPv4 ranges must include 10.0.0.0/8, otherwise the cluster creation is rejected. A VPC created without custom ipv4 ranges already includes 10.0.0.0/8. This requirement does not apply when subnetId is set.
    k8s_version str
    The desired Kubernetes version for this Kubernetes cluster in the format of major.minor (e.g. 1.21), and the latest supported patch version will be deployed.
    label str
    This Kubernetes cluster's unique label.
    region str

    This Kubernetes cluster's location.

    • pool - (Required, Block List) The Node Pool specifications for the Kubernetes cluster. At least one Node Pool is required.

    • controlPlane - (Optional, Block) Defines settings for the Kubernetes Control Plane. Referenced with an index (e.g. control_plane.0.high_availability).

    apl_enabled bool
    Enables the App Platform Layer
    control_plane LkeClusterControlPlaneArgs
    Defines settings for the Kubernetes Control Plane.
    external_pool_tags Sequence[str]
    A set of node pool tags to ignore when planning and applying this cluster. This prevents externally managed node pools from being deleted or unintentionally updated on subsequent applies. See Externally Managed Node Pools for more details.
    networking LkeClusterNetworkingArgs
    (Block) Additional nested attributes:
    pools Sequence[LkeClusterPoolArgs]
    (Block List) Additional nested attributes:
    stack_type str
    The networking stack type of the Kubernetes cluster.

    • networking - (Optional, Block) The pod network routing mode and network configuration of an LKE Enterprise cluster. Changing any of these values will cause the cluster to be replaced. Referenced with an index (e.g. networking.0.routing_mode). NOTE: This field may not be available to all users and is only accepted and populated when apiVersion is set to v4beta.
    subnet_id int
    The ID of the VPC subnet to use for the Kubernetes cluster. This subnet must be dual stack (IPv4 and IPv6 should both be enabled). NOTE: This field may not be available for all users and is only accepted and populated when apiVersion is set to v4beta.
    tags Sequence[str]
    An array of tags applied to the Kubernetes cluster. Tags are case-insensitive and are for organizational purposes only.
    tier str
    The desired Kubernetes tier. NOTE: This field may not be available to all users and is only accepted and populated when apiVersion is set to v4beta.
    vpc_id int
    The ID of the VPC to use for the Kubernetes cluster. If vpcId is set without subnetId, the API allocates a workload subnet for the cluster from the 10.0.0.0/8 range of the VPC: a /13 for the default native routing mode, or a /19 when networking.0.routing_mode is vxlan. In this case the VPC's IPv4 ranges must include 10.0.0.0/8, otherwise the cluster creation is rejected. A VPC created without custom ipv4 ranges already includes 10.0.0.0/8. This requirement does not apply when subnetId is set.
    k8sVersion String
    The desired Kubernetes version for this Kubernetes cluster in the format of major.minor (e.g. 1.21), and the latest supported patch version will be deployed.
    label String
    This Kubernetes cluster's unique label.
    region String

    This Kubernetes cluster's location.

    • pool - (Required, Block List) The Node Pool specifications for the Kubernetes cluster. At least one Node Pool is required.

    • controlPlane - (Optional, Block) Defines settings for the Kubernetes Control Plane. Referenced with an index (e.g. control_plane.0.high_availability).

    aplEnabled Boolean
    Enables the App Platform Layer
    controlPlane Property Map
    Defines settings for the Kubernetes Control Plane.
    externalPoolTags List<String>
    A set of node pool tags to ignore when planning and applying this cluster. This prevents externally managed node pools from being deleted or unintentionally updated on subsequent applies. See Externally Managed Node Pools for more details.
    networking Property Map
    (Block) Additional nested attributes:
    pools List<Property Map>
    (Block List) Additional nested attributes:
    stackType String
    The networking stack type of the Kubernetes cluster.

    • networking - (Optional, Block) The pod network routing mode and network configuration of an LKE Enterprise cluster. Changing any of these values will cause the cluster to be replaced. Referenced with an index (e.g. networking.0.routing_mode). NOTE: This field may not be available to all users and is only accepted and populated when apiVersion is set to v4beta.
    subnetId Number
    The ID of the VPC subnet to use for the Kubernetes cluster. This subnet must be dual stack (IPv4 and IPv6 should both be enabled). NOTE: This field may not be available for all users and is only accepted and populated when apiVersion is set to v4beta.
    tags List<String>
    An array of tags applied to the Kubernetes cluster. Tags are case-insensitive and are for organizational purposes only.
    tier String
    The desired Kubernetes tier. NOTE: This field may not be available to all users and is only accepted and populated when apiVersion is set to v4beta.
    vpcId Number
    The ID of the VPC to use for the Kubernetes cluster. If vpcId is set without subnetId, the API allocates a workload subnet for the cluster from the 10.0.0.0/8 range of the VPC: a /13 for the default native routing mode, or a /19 when networking.0.routing_mode is vxlan. In this case the VPC's IPv4 ranges must include 10.0.0.0/8, otherwise the cluster creation is rejected. A VPC created without custom ipv4 ranges already includes 10.0.0.0/8. This requirement does not apply when subnetId is set.

    Outputs

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

    ApiEndpoints List<string>
    The endpoints for the Kubernetes API server.
    Id string
    The provider-assigned unique ID for this managed resource.
    Kubeconfig string
    The base64 encoded kubeconfig for the Kubernetes cluster.
    Status string
    The status of the node. (ready, notReady)
    ApiEndpoints []string
    The endpoints for the Kubernetes API server.
    Id string
    The provider-assigned unique ID for this managed resource.
    Kubeconfig string
    The base64 encoded kubeconfig for the Kubernetes cluster.
    Status string
    The status of the node. (ready, notReady)
    api_endpoints list(string)
    The endpoints for the Kubernetes API server.
    id string
    The provider-assigned unique ID for this managed resource.
    kubeconfig string
    The base64 encoded kubeconfig for the Kubernetes cluster.
    status string
    The status of the node. (ready, notReady)
    apiEndpoints List<String>
    The endpoints for the Kubernetes API server.
    id String
    The provider-assigned unique ID for this managed resource.
    kubeconfig String
    The base64 encoded kubeconfig for the Kubernetes cluster.
    status String
    The status of the node. (ready, notReady)
    apiEndpoints string[]
    The endpoints for the Kubernetes API server.
    id string
    The provider-assigned unique ID for this managed resource.
    kubeconfig string
    The base64 encoded kubeconfig for the Kubernetes cluster.
    status string
    The status of the node. (ready, notReady)
    api_endpoints Sequence[str]
    The endpoints for the Kubernetes API server.
    id str
    The provider-assigned unique ID for this managed resource.
    kubeconfig str
    The base64 encoded kubeconfig for the Kubernetes cluster.
    status str
    The status of the node. (ready, notReady)
    apiEndpoints List<String>
    The endpoints for the Kubernetes API server.
    id String
    The provider-assigned unique ID for this managed resource.
    kubeconfig String
    The base64 encoded kubeconfig for the Kubernetes cluster.
    status String
    The status of the node. (ready, notReady)

    Look up Existing LkeCluster Resource

    Get an existing LkeCluster 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?: LkeClusterState, opts?: CustomResourceOptions): LkeCluster
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            api_endpoints: Optional[Sequence[str]] = None,
            apl_enabled: Optional[bool] = None,
            control_plane: Optional[LkeClusterControlPlaneArgs] = None,
            external_pool_tags: Optional[Sequence[str]] = None,
            k8s_version: Optional[str] = None,
            kubeconfig: Optional[str] = None,
            label: Optional[str] = None,
            networking: Optional[LkeClusterNetworkingArgs] = None,
            pools: Optional[Sequence[LkeClusterPoolArgs]] = None,
            region: Optional[str] = None,
            stack_type: Optional[str] = None,
            status: Optional[str] = None,
            subnet_id: Optional[int] = None,
            tags: Optional[Sequence[str]] = None,
            tier: Optional[str] = None,
            vpc_id: Optional[int] = None) -> LkeCluster
    func GetLkeCluster(ctx *Context, name string, id IDInput, state *LkeClusterState, opts ...ResourceOption) (*LkeCluster, error)
    public static LkeCluster Get(string name, Input<string> id, LkeClusterState? state, CustomResourceOptions? opts = null)
    public static LkeCluster get(String name, Output<String> id, LkeClusterState state, CustomResourceOptions options)
    resources:  _:    type: linode:LkeCluster    get:      id: ${id}
    import {
      to = linode_lke_cluster.example
      id = "${id}"
    }
    
    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:
    ApiEndpoints List<string>
    The endpoints for the Kubernetes API server.
    AplEnabled bool
    Enables the App Platform Layer
    ControlPlane LkeClusterControlPlane
    Defines settings for the Kubernetes Control Plane.
    ExternalPoolTags List<string>
    A set of node pool tags to ignore when planning and applying this cluster. This prevents externally managed node pools from being deleted or unintentionally updated on subsequent applies. See Externally Managed Node Pools for more details.
    K8sVersion string
    The desired Kubernetes version for this Kubernetes cluster in the format of major.minor (e.g. 1.21), and the latest supported patch version will be deployed.
    Kubeconfig string
    The base64 encoded kubeconfig for the Kubernetes cluster.
    Label string
    This Kubernetes cluster's unique label.
    Networking LkeClusterNetworking
    (Block) Additional nested attributes:
    Pools List<LkeClusterPool>
    (Block List) Additional nested attributes:
    Region string

    This Kubernetes cluster's location.

    • pool - (Required, Block List) The Node Pool specifications for the Kubernetes cluster. At least one Node Pool is required.

    • controlPlane - (Optional, Block) Defines settings for the Kubernetes Control Plane. Referenced with an index (e.g. control_plane.0.high_availability).

    StackType string
    The networking stack type of the Kubernetes cluster.

    • networking - (Optional, Block) The pod network routing mode and network configuration of an LKE Enterprise cluster. Changing any of these values will cause the cluster to be replaced. Referenced with an index (e.g. networking.0.routing_mode). NOTE: This field may not be available to all users and is only accepted and populated when apiVersion is set to v4beta.
    Status string
    The status of the node. (ready, notReady)
    SubnetId int
    The ID of the VPC subnet to use for the Kubernetes cluster. This subnet must be dual stack (IPv4 and IPv6 should both be enabled). NOTE: This field may not be available for all users and is only accepted and populated when apiVersion is set to v4beta.
    Tags List<string>
    An array of tags applied to the Kubernetes cluster. Tags are case-insensitive and are for organizational purposes only.
    Tier string
    The desired Kubernetes tier. NOTE: This field may not be available to all users and is only accepted and populated when apiVersion is set to v4beta.
    VpcId int
    The ID of the VPC to use for the Kubernetes cluster. If vpcId is set without subnetId, the API allocates a workload subnet for the cluster from the 10.0.0.0/8 range of the VPC: a /13 for the default native routing mode, or a /19 when networking.0.routing_mode is vxlan. In this case the VPC's IPv4 ranges must include 10.0.0.0/8, otherwise the cluster creation is rejected. A VPC created without custom ipv4 ranges already includes 10.0.0.0/8. This requirement does not apply when subnetId is set.
    ApiEndpoints []string
    The endpoints for the Kubernetes API server.
    AplEnabled bool
    Enables the App Platform Layer
    ControlPlane LkeClusterControlPlaneArgs
    Defines settings for the Kubernetes Control Plane.
    ExternalPoolTags []string
    A set of node pool tags to ignore when planning and applying this cluster. This prevents externally managed node pools from being deleted or unintentionally updated on subsequent applies. See Externally Managed Node Pools for more details.
    K8sVersion string
    The desired Kubernetes version for this Kubernetes cluster in the format of major.minor (e.g. 1.21), and the latest supported patch version will be deployed.
    Kubeconfig string
    The base64 encoded kubeconfig for the Kubernetes cluster.
    Label string
    This Kubernetes cluster's unique label.
    Networking LkeClusterNetworkingArgs
    (Block) Additional nested attributes:
    Pools []LkeClusterPoolArgs
    (Block List) Additional nested attributes:
    Region string

    This Kubernetes cluster's location.

    • pool - (Required, Block List) The Node Pool specifications for the Kubernetes cluster. At least one Node Pool is required.

    • controlPlane - (Optional, Block) Defines settings for the Kubernetes Control Plane. Referenced with an index (e.g. control_plane.0.high_availability).

    StackType string
    The networking stack type of the Kubernetes cluster.

    • networking - (Optional, Block) The pod network routing mode and network configuration of an LKE Enterprise cluster. Changing any of these values will cause the cluster to be replaced. Referenced with an index (e.g. networking.0.routing_mode). NOTE: This field may not be available to all users and is only accepted and populated when apiVersion is set to v4beta.
    Status string
    The status of the node. (ready, notReady)
    SubnetId int
    The ID of the VPC subnet to use for the Kubernetes cluster. This subnet must be dual stack (IPv4 and IPv6 should both be enabled). NOTE: This field may not be available for all users and is only accepted and populated when apiVersion is set to v4beta.
    Tags []string
    An array of tags applied to the Kubernetes cluster. Tags are case-insensitive and are for organizational purposes only.
    Tier string
    The desired Kubernetes tier. NOTE: This field may not be available to all users and is only accepted and populated when apiVersion is set to v4beta.
    VpcId int
    The ID of the VPC to use for the Kubernetes cluster. If vpcId is set without subnetId, the API allocates a workload subnet for the cluster from the 10.0.0.0/8 range of the VPC: a /13 for the default native routing mode, or a /19 when networking.0.routing_mode is vxlan. In this case the VPC's IPv4 ranges must include 10.0.0.0/8, otherwise the cluster creation is rejected. A VPC created without custom ipv4 ranges already includes 10.0.0.0/8. This requirement does not apply when subnetId is set.
    api_endpoints list(string)
    The endpoints for the Kubernetes API server.
    apl_enabled bool
    Enables the App Platform Layer
    control_plane object
    Defines settings for the Kubernetes Control Plane.
    external_pool_tags list(string)
    A set of node pool tags to ignore when planning and applying this cluster. This prevents externally managed node pools from being deleted or unintentionally updated on subsequent applies. See Externally Managed Node Pools for more details.
    k8s_version string
    The desired Kubernetes version for this Kubernetes cluster in the format of major.minor (e.g. 1.21), and the latest supported patch version will be deployed.
    kubeconfig string
    The base64 encoded kubeconfig for the Kubernetes cluster.
    label string
    This Kubernetes cluster's unique label.
    networking object
    (Block) Additional nested attributes:
    pools list(object)
    (Block List) Additional nested attributes:
    region string

    This Kubernetes cluster's location.

    • pool - (Required, Block List) The Node Pool specifications for the Kubernetes cluster. At least one Node Pool is required.

    • controlPlane - (Optional, Block) Defines settings for the Kubernetes Control Plane. Referenced with an index (e.g. control_plane.0.high_availability).

    stack_type string
    The networking stack type of the Kubernetes cluster.

    • networking - (Optional, Block) The pod network routing mode and network configuration of an LKE Enterprise cluster. Changing any of these values will cause the cluster to be replaced. Referenced with an index (e.g. networking.0.routing_mode). NOTE: This field may not be available to all users and is only accepted and populated when apiVersion is set to v4beta.
    status string
    The status of the node. (ready, notReady)
    subnet_id number
    The ID of the VPC subnet to use for the Kubernetes cluster. This subnet must be dual stack (IPv4 and IPv6 should both be enabled). NOTE: This field may not be available for all users and is only accepted and populated when apiVersion is set to v4beta.
    tags list(string)
    An array of tags applied to the Kubernetes cluster. Tags are case-insensitive and are for organizational purposes only.
    tier string
    The desired Kubernetes tier. NOTE: This field may not be available to all users and is only accepted and populated when apiVersion is set to v4beta.
    vpc_id number
    The ID of the VPC to use for the Kubernetes cluster. If vpcId is set without subnetId, the API allocates a workload subnet for the cluster from the 10.0.0.0/8 range of the VPC: a /13 for the default native routing mode, or a /19 when networking.0.routing_mode is vxlan. In this case the VPC's IPv4 ranges must include 10.0.0.0/8, otherwise the cluster creation is rejected. A VPC created without custom ipv4 ranges already includes 10.0.0.0/8. This requirement does not apply when subnetId is set.
    apiEndpoints List<String>
    The endpoints for the Kubernetes API server.
    aplEnabled Boolean
    Enables the App Platform Layer
    controlPlane LkeClusterControlPlane
    Defines settings for the Kubernetes Control Plane.
    externalPoolTags List<String>
    A set of node pool tags to ignore when planning and applying this cluster. This prevents externally managed node pools from being deleted or unintentionally updated on subsequent applies. See Externally Managed Node Pools for more details.
    k8sVersion String
    The desired Kubernetes version for this Kubernetes cluster in the format of major.minor (e.g. 1.21), and the latest supported patch version will be deployed.
    kubeconfig String
    The base64 encoded kubeconfig for the Kubernetes cluster.
    label String
    This Kubernetes cluster's unique label.
    networking LkeClusterNetworking
    (Block) Additional nested attributes:
    pools List<LkeClusterPool>
    (Block List) Additional nested attributes:
    region String

    This Kubernetes cluster's location.

    • pool - (Required, Block List) The Node Pool specifications for the Kubernetes cluster. At least one Node Pool is required.

    • controlPlane - (Optional, Block) Defines settings for the Kubernetes Control Plane. Referenced with an index (e.g. control_plane.0.high_availability).

    stackType String
    The networking stack type of the Kubernetes cluster.

    • networking - (Optional, Block) The pod network routing mode and network configuration of an LKE Enterprise cluster. Changing any of these values will cause the cluster to be replaced. Referenced with an index (e.g. networking.0.routing_mode). NOTE: This field may not be available to all users and is only accepted and populated when apiVersion is set to v4beta.
    status String
    The status of the node. (ready, notReady)
    subnetId Integer
    The ID of the VPC subnet to use for the Kubernetes cluster. This subnet must be dual stack (IPv4 and IPv6 should both be enabled). NOTE: This field may not be available for all users and is only accepted and populated when apiVersion is set to v4beta.
    tags List<String>
    An array of tags applied to the Kubernetes cluster. Tags are case-insensitive and are for organizational purposes only.
    tier String
    The desired Kubernetes tier. NOTE: This field may not be available to all users and is only accepted and populated when apiVersion is set to v4beta.
    vpcId Integer
    The ID of the VPC to use for the Kubernetes cluster. If vpcId is set without subnetId, the API allocates a workload subnet for the cluster from the 10.0.0.0/8 range of the VPC: a /13 for the default native routing mode, or a /19 when networking.0.routing_mode is vxlan. In this case the VPC's IPv4 ranges must include 10.0.0.0/8, otherwise the cluster creation is rejected. A VPC created without custom ipv4 ranges already includes 10.0.0.0/8. This requirement does not apply when subnetId is set.
    apiEndpoints string[]
    The endpoints for the Kubernetes API server.
    aplEnabled boolean
    Enables the App Platform Layer
    controlPlane LkeClusterControlPlane
    Defines settings for the Kubernetes Control Plane.
    externalPoolTags string[]
    A set of node pool tags to ignore when planning and applying this cluster. This prevents externally managed node pools from being deleted or unintentionally updated on subsequent applies. See Externally Managed Node Pools for more details.
    k8sVersion string
    The desired Kubernetes version for this Kubernetes cluster in the format of major.minor (e.g. 1.21), and the latest supported patch version will be deployed.
    kubeconfig string
    The base64 encoded kubeconfig for the Kubernetes cluster.
    label string
    This Kubernetes cluster's unique label.
    networking LkeClusterNetworking
    (Block) Additional nested attributes:
    pools LkeClusterPool[]
    (Block List) Additional nested attributes:
    region string

    This Kubernetes cluster's location.

    • pool - (Required, Block List) The Node Pool specifications for the Kubernetes cluster. At least one Node Pool is required.

    • controlPlane - (Optional, Block) Defines settings for the Kubernetes Control Plane. Referenced with an index (e.g. control_plane.0.high_availability).

    stackType string
    The networking stack type of the Kubernetes cluster.

    • networking - (Optional, Block) The pod network routing mode and network configuration of an LKE Enterprise cluster. Changing any of these values will cause the cluster to be replaced. Referenced with an index (e.g. networking.0.routing_mode). NOTE: This field may not be available to all users and is only accepted and populated when apiVersion is set to v4beta.
    status string
    The status of the node. (ready, notReady)
    subnetId number
    The ID of the VPC subnet to use for the Kubernetes cluster. This subnet must be dual stack (IPv4 and IPv6 should both be enabled). NOTE: This field may not be available for all users and is only accepted and populated when apiVersion is set to v4beta.
    tags string[]
    An array of tags applied to the Kubernetes cluster. Tags are case-insensitive and are for organizational purposes only.
    tier string
    The desired Kubernetes tier. NOTE: This field may not be available to all users and is only accepted and populated when apiVersion is set to v4beta.
    vpcId number
    The ID of the VPC to use for the Kubernetes cluster. If vpcId is set without subnetId, the API allocates a workload subnet for the cluster from the 10.0.0.0/8 range of the VPC: a /13 for the default native routing mode, or a /19 when networking.0.routing_mode is vxlan. In this case the VPC's IPv4 ranges must include 10.0.0.0/8, otherwise the cluster creation is rejected. A VPC created without custom ipv4 ranges already includes 10.0.0.0/8. This requirement does not apply when subnetId is set.
    api_endpoints Sequence[str]
    The endpoints for the Kubernetes API server.
    apl_enabled bool
    Enables the App Platform Layer
    control_plane LkeClusterControlPlaneArgs
    Defines settings for the Kubernetes Control Plane.
    external_pool_tags Sequence[str]
    A set of node pool tags to ignore when planning and applying this cluster. This prevents externally managed node pools from being deleted or unintentionally updated on subsequent applies. See Externally Managed Node Pools for more details.
    k8s_version str
    The desired Kubernetes version for this Kubernetes cluster in the format of major.minor (e.g. 1.21), and the latest supported patch version will be deployed.
    kubeconfig str
    The base64 encoded kubeconfig for the Kubernetes cluster.
    label str
    This Kubernetes cluster's unique label.
    networking LkeClusterNetworkingArgs
    (Block) Additional nested attributes:
    pools Sequence[LkeClusterPoolArgs]
    (Block List) Additional nested attributes:
    region str

    This Kubernetes cluster's location.

    • pool - (Required, Block List) The Node Pool specifications for the Kubernetes cluster. At least one Node Pool is required.

    • controlPlane - (Optional, Block) Defines settings for the Kubernetes Control Plane. Referenced with an index (e.g. control_plane.0.high_availability).

    stack_type str
    The networking stack type of the Kubernetes cluster.

    • networking - (Optional, Block) The pod network routing mode and network configuration of an LKE Enterprise cluster. Changing any of these values will cause the cluster to be replaced. Referenced with an index (e.g. networking.0.routing_mode). NOTE: This field may not be available to all users and is only accepted and populated when apiVersion is set to v4beta.
    status str
    The status of the node. (ready, notReady)
    subnet_id int
    The ID of the VPC subnet to use for the Kubernetes cluster. This subnet must be dual stack (IPv4 and IPv6 should both be enabled). NOTE: This field may not be available for all users and is only accepted and populated when apiVersion is set to v4beta.
    tags Sequence[str]
    An array of tags applied to the Kubernetes cluster. Tags are case-insensitive and are for organizational purposes only.
    tier str
    The desired Kubernetes tier. NOTE: This field may not be available to all users and is only accepted and populated when apiVersion is set to v4beta.
    vpc_id int
    The ID of the VPC to use for the Kubernetes cluster. If vpcId is set without subnetId, the API allocates a workload subnet for the cluster from the 10.0.0.0/8 range of the VPC: a /13 for the default native routing mode, or a /19 when networking.0.routing_mode is vxlan. In this case the VPC's IPv4 ranges must include 10.0.0.0/8, otherwise the cluster creation is rejected. A VPC created without custom ipv4 ranges already includes 10.0.0.0/8. This requirement does not apply when subnetId is set.
    apiEndpoints List<String>
    The endpoints for the Kubernetes API server.
    aplEnabled Boolean
    Enables the App Platform Layer
    controlPlane Property Map
    Defines settings for the Kubernetes Control Plane.
    externalPoolTags List<String>
    A set of node pool tags to ignore when planning and applying this cluster. This prevents externally managed node pools from being deleted or unintentionally updated on subsequent applies. See Externally Managed Node Pools for more details.
    k8sVersion String
    The desired Kubernetes version for this Kubernetes cluster in the format of major.minor (e.g. 1.21), and the latest supported patch version will be deployed.
    kubeconfig String
    The base64 encoded kubeconfig for the Kubernetes cluster.
    label String
    This Kubernetes cluster's unique label.
    networking Property Map
    (Block) Additional nested attributes:
    pools List<Property Map>
    (Block List) Additional nested attributes:
    region String

    This Kubernetes cluster's location.

    • pool - (Required, Block List) The Node Pool specifications for the Kubernetes cluster. At least one Node Pool is required.

    • controlPlane - (Optional, Block) Defines settings for the Kubernetes Control Plane. Referenced with an index (e.g. control_plane.0.high_availability).

    stackType String
    The networking stack type of the Kubernetes cluster.

    • networking - (Optional, Block) The pod network routing mode and network configuration of an LKE Enterprise cluster. Changing any of these values will cause the cluster to be replaced. Referenced with an index (e.g. networking.0.routing_mode). NOTE: This field may not be available to all users and is only accepted and populated when apiVersion is set to v4beta.
    status String
    The status of the node. (ready, notReady)
    subnetId Number
    The ID of the VPC subnet to use for the Kubernetes cluster. This subnet must be dual stack (IPv4 and IPv6 should both be enabled). NOTE: This field may not be available for all users and is only accepted and populated when apiVersion is set to v4beta.
    tags List<String>
    An array of tags applied to the Kubernetes cluster. Tags are case-insensitive and are for organizational purposes only.
    tier String
    The desired Kubernetes tier. NOTE: This field may not be available to all users and is only accepted and populated when apiVersion is set to v4beta.
    vpcId Number
    The ID of the VPC to use for the Kubernetes cluster. If vpcId is set without subnetId, the API allocates a workload subnet for the cluster from the 10.0.0.0/8 range of the VPC: a /13 for the default native routing mode, or a /19 when networking.0.routing_mode is vxlan. In this case the VPC's IPv4 ranges must include 10.0.0.0/8, otherwise the cluster creation is rejected. A VPC created without custom ipv4 ranges already includes 10.0.0.0/8. This requirement does not apply when subnetId is set.

    Supporting Types

    LkeClusterControlPlane, LkeClusterControlPlaneArgs

    Acl LkeClusterControlPlaneAcl
    Defines the ACL configuration for an LKE cluster's control plane.
    AuditLogsEnabled bool
    Enables audit logs on the cluster's control plane.

    • acl - (Optional, Block) Defines the ACL configuration for an LKE cluster's control plane. Referenced with an index (e.g. acl.0.enabled).
    HighAvailability bool
    Defines whether High Availability is enabled for the cluster Control Plane. This is an irreversible change.
    Acl LkeClusterControlPlaneAcl
    Defines the ACL configuration for an LKE cluster's control plane.
    AuditLogsEnabled bool
    Enables audit logs on the cluster's control plane.

    • acl - (Optional, Block) Defines the ACL configuration for an LKE cluster's control plane. Referenced with an index (e.g. acl.0.enabled).
    HighAvailability bool
    Defines whether High Availability is enabled for the cluster Control Plane. This is an irreversible change.
    acl object
    Defines the ACL configuration for an LKE cluster's control plane.
    audit_logs_enabled bool
    Enables audit logs on the cluster's control plane.

    • acl - (Optional, Block) Defines the ACL configuration for an LKE cluster's control plane. Referenced with an index (e.g. acl.0.enabled).
    high_availability bool
    Defines whether High Availability is enabled for the cluster Control Plane. This is an irreversible change.
    acl LkeClusterControlPlaneAcl
    Defines the ACL configuration for an LKE cluster's control plane.
    auditLogsEnabled Boolean
    Enables audit logs on the cluster's control plane.

    • acl - (Optional, Block) Defines the ACL configuration for an LKE cluster's control plane. Referenced with an index (e.g. acl.0.enabled).
    highAvailability Boolean
    Defines whether High Availability is enabled for the cluster Control Plane. This is an irreversible change.
    acl LkeClusterControlPlaneAcl
    Defines the ACL configuration for an LKE cluster's control plane.
    auditLogsEnabled boolean
    Enables audit logs on the cluster's control plane.

    • acl - (Optional, Block) Defines the ACL configuration for an LKE cluster's control plane. Referenced with an index (e.g. acl.0.enabled).
    highAvailability boolean
    Defines whether High Availability is enabled for the cluster Control Plane. This is an irreversible change.
    acl LkeClusterControlPlaneAcl
    Defines the ACL configuration for an LKE cluster's control plane.
    audit_logs_enabled bool
    Enables audit logs on the cluster's control plane.

    • acl - (Optional, Block) Defines the ACL configuration for an LKE cluster's control plane. Referenced with an index (e.g. acl.0.enabled).
    high_availability bool
    Defines whether High Availability is enabled for the cluster Control Plane. This is an irreversible change.
    acl Property Map
    Defines the ACL configuration for an LKE cluster's control plane.
    auditLogsEnabled Boolean
    Enables audit logs on the cluster's control plane.

    • acl - (Optional, Block) Defines the ACL configuration for an LKE cluster's control plane. Referenced with an index (e.g. acl.0.enabled).
    highAvailability Boolean
    Defines whether High Availability is enabled for the cluster Control Plane. This is an irreversible change.

    LkeClusterControlPlaneAcl, LkeClusterControlPlaneAclArgs

    Addresses List<LkeClusterControlPlaneAclAddress>
    A list of ip addresses to allow.
    Enabled bool
    Defines default policy. A value of true results in a default policy of DENY. A value of false results in default policy of ALLOW, and has the same effect as delete the ACL configuration.

    • addresses - (Optional, Block List) A list of ip addresses to allow.
    Addresses []LkeClusterControlPlaneAclAddress
    A list of ip addresses to allow.
    Enabled bool
    Defines default policy. A value of true results in a default policy of DENY. A value of false results in default policy of ALLOW, and has the same effect as delete the ACL configuration.

    • addresses - (Optional, Block List) A list of ip addresses to allow.
    addresses list(object)
    A list of ip addresses to allow.
    enabled bool
    Defines default policy. A value of true results in a default policy of DENY. A value of false results in default policy of ALLOW, and has the same effect as delete the ACL configuration.

    • addresses - (Optional, Block List) A list of ip addresses to allow.
    addresses List<LkeClusterControlPlaneAclAddress>
    A list of ip addresses to allow.
    enabled Boolean
    Defines default policy. A value of true results in a default policy of DENY. A value of false results in default policy of ALLOW, and has the same effect as delete the ACL configuration.

    • addresses - (Optional, Block List) A list of ip addresses to allow.
    addresses LkeClusterControlPlaneAclAddress[]
    A list of ip addresses to allow.
    enabled boolean
    Defines default policy. A value of true results in a default policy of DENY. A value of false results in default policy of ALLOW, and has the same effect as delete the ACL configuration.

    • addresses - (Optional, Block List) A list of ip addresses to allow.
    addresses Sequence[LkeClusterControlPlaneAclAddress]
    A list of ip addresses to allow.
    enabled bool
    Defines default policy. A value of true results in a default policy of DENY. A value of false results in default policy of ALLOW, and has the same effect as delete the ACL configuration.

    • addresses - (Optional, Block List) A list of ip addresses to allow.
    addresses List<Property Map>
    A list of ip addresses to allow.
    enabled Boolean
    Defines default policy. A value of true results in a default policy of DENY. A value of false results in default policy of ALLOW, and has the same effect as delete the ACL configuration.

    • addresses - (Optional, Block List) A list of ip addresses to allow.

    LkeClusterControlPlaneAclAddress, LkeClusterControlPlaneAclAddressArgs

    Ipv4s List<string>
    A set of individual ipv4 addresses or CIDRs to ALLOW.
    Ipv6s List<string>
    A set of individual ipv6 addresses or CIDRs to ALLOW.
    Ipv4s []string
    A set of individual ipv4 addresses or CIDRs to ALLOW.
    Ipv6s []string
    A set of individual ipv6 addresses or CIDRs to ALLOW.
    ipv4s list(string)
    A set of individual ipv4 addresses or CIDRs to ALLOW.
    ipv6s list(string)
    A set of individual ipv6 addresses or CIDRs to ALLOW.
    ipv4s List<String>
    A set of individual ipv4 addresses or CIDRs to ALLOW.
    ipv6s List<String>
    A set of individual ipv6 addresses or CIDRs to ALLOW.
    ipv4s string[]
    A set of individual ipv4 addresses or CIDRs to ALLOW.
    ipv6s string[]
    A set of individual ipv6 addresses or CIDRs to ALLOW.
    ipv4s Sequence[str]
    A set of individual ipv4 addresses or CIDRs to ALLOW.
    ipv6s Sequence[str]
    A set of individual ipv6 addresses or CIDRs to ALLOW.
    ipv4s List<String>
    A set of individual ipv4 addresses or CIDRs to ALLOW.
    ipv6s List<String>
    A set of individual ipv6 addresses or CIDRs to ALLOW.

    LkeClusterNetworking, LkeClusterNetworkingArgs

    ClusterCidrIpv4 string
    The IPv4 pod network CIDR. The prefix length must be between /11 and /22. Only configurable when routingMode is vxlan.
    ClusterCidrIpv6 string
    The system-assigned IPv6 pod network CIDR. This is empty for IPv4-only clusters.
    MaxPods int
    The maximum number of pods per node. Must be between 16 and 110, and must fit within nodeCidrMaskSizeIpv4. Only configurable when routingMode is vxlan.
    NodeCidrMaskSizeIpv4 int
    The IPv4 pod CIDR prefix length assigned to each node. Must be between 24 and 28. Only configurable when routingMode is vxlan.
    NodeCidrMaskSizeIpv6 int
    The IPv6 pod CIDR prefix length assigned to each node. This is 0 for IPv4-only clusters.
    NodebalancerBackendPrefixLength int

    The prefix length reserved from the highest portion of the VPC subnet for NodeBalancer backends. The valid range depends on the size of the VPC subnet used by the cluster. Only configurable when routingMode is vxlan.

    The pod and service CIDRs must be RFC1918 or CGNAT ranges, and must not overlap each other or the VPC subnet used by the cluster.

    RoutingMode string
    The pod network routing mode. Must be native or vxlan. Defaults to native.
    ServiceClusterIpRangeIpv4 string
    The IPv4 service CIDR. The prefix length must be between /20 and /24. Only configurable when routingMode is vxlan.
    ServiceClusterIpRangeIpv6 string
    The system-assigned IPv6 service CIDR. This is empty for IPv4-only clusters.
    ClusterCidrIpv4 string
    The IPv4 pod network CIDR. The prefix length must be between /11 and /22. Only configurable when routingMode is vxlan.
    ClusterCidrIpv6 string
    The system-assigned IPv6 pod network CIDR. This is empty for IPv4-only clusters.
    MaxPods int
    The maximum number of pods per node. Must be between 16 and 110, and must fit within nodeCidrMaskSizeIpv4. Only configurable when routingMode is vxlan.
    NodeCidrMaskSizeIpv4 int
    The IPv4 pod CIDR prefix length assigned to each node. Must be between 24 and 28. Only configurable when routingMode is vxlan.
    NodeCidrMaskSizeIpv6 int
    The IPv6 pod CIDR prefix length assigned to each node. This is 0 for IPv4-only clusters.
    NodebalancerBackendPrefixLength int

    The prefix length reserved from the highest portion of the VPC subnet for NodeBalancer backends. The valid range depends on the size of the VPC subnet used by the cluster. Only configurable when routingMode is vxlan.

    The pod and service CIDRs must be RFC1918 or CGNAT ranges, and must not overlap each other or the VPC subnet used by the cluster.

    RoutingMode string
    The pod network routing mode. Must be native or vxlan. Defaults to native.
    ServiceClusterIpRangeIpv4 string
    The IPv4 service CIDR. The prefix length must be between /20 and /24. Only configurable when routingMode is vxlan.
    ServiceClusterIpRangeIpv6 string
    The system-assigned IPv6 service CIDR. This is empty for IPv4-only clusters.
    cluster_cidr_ipv4 string
    The IPv4 pod network CIDR. The prefix length must be between /11 and /22. Only configurable when routingMode is vxlan.
    cluster_cidr_ipv6 string
    The system-assigned IPv6 pod network CIDR. This is empty for IPv4-only clusters.
    max_pods number
    The maximum number of pods per node. Must be between 16 and 110, and must fit within nodeCidrMaskSizeIpv4. Only configurable when routingMode is vxlan.
    node_cidr_mask_size_ipv4 number
    The IPv4 pod CIDR prefix length assigned to each node. Must be between 24 and 28. Only configurable when routingMode is vxlan.
    node_cidr_mask_size_ipv6 number
    The IPv6 pod CIDR prefix length assigned to each node. This is 0 for IPv4-only clusters.
    nodebalancer_backend_prefix_length number

    The prefix length reserved from the highest portion of the VPC subnet for NodeBalancer backends. The valid range depends on the size of the VPC subnet used by the cluster. Only configurable when routingMode is vxlan.

    The pod and service CIDRs must be RFC1918 or CGNAT ranges, and must not overlap each other or the VPC subnet used by the cluster.

    routing_mode string
    The pod network routing mode. Must be native or vxlan. Defaults to native.
    service_cluster_ip_range_ipv4 string
    The IPv4 service CIDR. The prefix length must be between /20 and /24. Only configurable when routingMode is vxlan.
    service_cluster_ip_range_ipv6 string
    The system-assigned IPv6 service CIDR. This is empty for IPv4-only clusters.
    clusterCidrIpv4 String
    The IPv4 pod network CIDR. The prefix length must be between /11 and /22. Only configurable when routingMode is vxlan.
    clusterCidrIpv6 String
    The system-assigned IPv6 pod network CIDR. This is empty for IPv4-only clusters.
    maxPods Integer
    The maximum number of pods per node. Must be between 16 and 110, and must fit within nodeCidrMaskSizeIpv4. Only configurable when routingMode is vxlan.
    nodeCidrMaskSizeIpv4 Integer
    The IPv4 pod CIDR prefix length assigned to each node. Must be between 24 and 28. Only configurable when routingMode is vxlan.
    nodeCidrMaskSizeIpv6 Integer
    The IPv6 pod CIDR prefix length assigned to each node. This is 0 for IPv4-only clusters.
    nodebalancerBackendPrefixLength Integer

    The prefix length reserved from the highest portion of the VPC subnet for NodeBalancer backends. The valid range depends on the size of the VPC subnet used by the cluster. Only configurable when routingMode is vxlan.

    The pod and service CIDRs must be RFC1918 or CGNAT ranges, and must not overlap each other or the VPC subnet used by the cluster.

    routingMode String
    The pod network routing mode. Must be native or vxlan. Defaults to native.
    serviceClusterIpRangeIpv4 String
    The IPv4 service CIDR. The prefix length must be between /20 and /24. Only configurable when routingMode is vxlan.
    serviceClusterIpRangeIpv6 String
    The system-assigned IPv6 service CIDR. This is empty for IPv4-only clusters.
    clusterCidrIpv4 string
    The IPv4 pod network CIDR. The prefix length must be between /11 and /22. Only configurable when routingMode is vxlan.
    clusterCidrIpv6 string
    The system-assigned IPv6 pod network CIDR. This is empty for IPv4-only clusters.
    maxPods number
    The maximum number of pods per node. Must be between 16 and 110, and must fit within nodeCidrMaskSizeIpv4. Only configurable when routingMode is vxlan.
    nodeCidrMaskSizeIpv4 number
    The IPv4 pod CIDR prefix length assigned to each node. Must be between 24 and 28. Only configurable when routingMode is vxlan.
    nodeCidrMaskSizeIpv6 number
    The IPv6 pod CIDR prefix length assigned to each node. This is 0 for IPv4-only clusters.
    nodebalancerBackendPrefixLength number

    The prefix length reserved from the highest portion of the VPC subnet for NodeBalancer backends. The valid range depends on the size of the VPC subnet used by the cluster. Only configurable when routingMode is vxlan.

    The pod and service CIDRs must be RFC1918 or CGNAT ranges, and must not overlap each other or the VPC subnet used by the cluster.

    routingMode string
    The pod network routing mode. Must be native or vxlan. Defaults to native.
    serviceClusterIpRangeIpv4 string
    The IPv4 service CIDR. The prefix length must be between /20 and /24. Only configurable when routingMode is vxlan.
    serviceClusterIpRangeIpv6 string
    The system-assigned IPv6 service CIDR. This is empty for IPv4-only clusters.
    cluster_cidr_ipv4 str
    The IPv4 pod network CIDR. The prefix length must be between /11 and /22. Only configurable when routingMode is vxlan.
    cluster_cidr_ipv6 str
    The system-assigned IPv6 pod network CIDR. This is empty for IPv4-only clusters.
    max_pods int
    The maximum number of pods per node. Must be between 16 and 110, and must fit within nodeCidrMaskSizeIpv4. Only configurable when routingMode is vxlan.
    node_cidr_mask_size_ipv4 int
    The IPv4 pod CIDR prefix length assigned to each node. Must be between 24 and 28. Only configurable when routingMode is vxlan.
    node_cidr_mask_size_ipv6 int
    The IPv6 pod CIDR prefix length assigned to each node. This is 0 for IPv4-only clusters.
    nodebalancer_backend_prefix_length int

    The prefix length reserved from the highest portion of the VPC subnet for NodeBalancer backends. The valid range depends on the size of the VPC subnet used by the cluster. Only configurable when routingMode is vxlan.

    The pod and service CIDRs must be RFC1918 or CGNAT ranges, and must not overlap each other or the VPC subnet used by the cluster.

    routing_mode str
    The pod network routing mode. Must be native or vxlan. Defaults to native.
    service_cluster_ip_range_ipv4 str
    The IPv4 service CIDR. The prefix length must be between /20 and /24. Only configurable when routingMode is vxlan.
    service_cluster_ip_range_ipv6 str
    The system-assigned IPv6 service CIDR. This is empty for IPv4-only clusters.
    clusterCidrIpv4 String
    The IPv4 pod network CIDR. The prefix length must be between /11 and /22. Only configurable when routingMode is vxlan.
    clusterCidrIpv6 String
    The system-assigned IPv6 pod network CIDR. This is empty for IPv4-only clusters.
    maxPods Number
    The maximum number of pods per node. Must be between 16 and 110, and must fit within nodeCidrMaskSizeIpv4. Only configurable when routingMode is vxlan.
    nodeCidrMaskSizeIpv4 Number
    The IPv4 pod CIDR prefix length assigned to each node. Must be between 24 and 28. Only configurable when routingMode is vxlan.
    nodeCidrMaskSizeIpv6 Number
    The IPv6 pod CIDR prefix length assigned to each node. This is 0 for IPv4-only clusters.
    nodebalancerBackendPrefixLength Number

    The prefix length reserved from the highest portion of the VPC subnet for NodeBalancer backends. The valid range depends on the size of the VPC subnet used by the cluster. Only configurable when routingMode is vxlan.

    The pod and service CIDRs must be RFC1918 or CGNAT ranges, and must not overlap each other or the VPC subnet used by the cluster.

    routingMode String
    The pod network routing mode. Must be native or vxlan. Defaults to native.
    serviceClusterIpRangeIpv4 String
    The IPv4 service CIDR. The prefix length must be between /20 and /24. Only configurable when routingMode is vxlan.
    serviceClusterIpRangeIpv6 String
    The system-assigned IPv6 service CIDR. This is empty for IPv4-only clusters.

    LkeClusterPool, LkeClusterPoolArgs

    Type string
    A Linode Type for all of the nodes in the Node Pool. See all node types here.
    Autoscaler LkeClusterPoolAutoscaler
    When specified, the number of nodes autoscales within the defined minimum and maximum values.
    Count int
    The number of nodes in the Node Pool. If undefined with an autoscaler the initial node count will equal the autoscaler minimum.
    DiskEncryption string
    The disk encryption policy for nodes in this pool. Must be enabled or disabled. If omitted, the account default encryption policy is applied. Changing this value will cause the pool to be replaced (deleted and recreated).
    FirewallId int
    The ID of the firewall to associate with this node pool. If not provided, default firewall will be associated.
    Id int
    The ID of the node.
    K8sVersion string
    The k8s version of the nodes in this Node Pool. For LKE enterprise only and may not currently available to all users even under v4beta.
    Label string
    A label for the Node Pool. If not provided, it defaults to empty string.
    Labels Dictionary<string, string>
    A map of key/value pairs to apply to all nodes in the pool. Labels are used to identify and organize Kubernetes resources within your cluster.
    Nodes List<LkeClusterPoolNode>
    The nodes in the node pool.
    Tags List<string>
    A set of tags applied to this node pool. Tags can be used to flag node pools as externally managed. See Externally Managed Node Pools for more details.
    Taints List<LkeClusterPoolTaint>
    Kubernetes taints to add to node pool nodes. Taints help control how pods are scheduled onto nodes, specifically allowing them to repel certain pods. See Add Labels and Taints to your LKE Node Pools. Set elements can't be referenced by index; use a for expression or tolist(...) to access them.
    UpdateStrategy string
    The strategy for updating the Node Pool k8s version. For LKE enterprise only and may not currently available to all users even under v4beta.
    Type string
    A Linode Type for all of the nodes in the Node Pool. See all node types here.
    Autoscaler LkeClusterPoolAutoscaler
    When specified, the number of nodes autoscales within the defined minimum and maximum values.
    Count int
    The number of nodes in the Node Pool. If undefined with an autoscaler the initial node count will equal the autoscaler minimum.
    DiskEncryption string
    The disk encryption policy for nodes in this pool. Must be enabled or disabled. If omitted, the account default encryption policy is applied. Changing this value will cause the pool to be replaced (deleted and recreated).
    FirewallId int
    The ID of the firewall to associate with this node pool. If not provided, default firewall will be associated.
    Id int
    The ID of the node.
    K8sVersion string
    The k8s version of the nodes in this Node Pool. For LKE enterprise only and may not currently available to all users even under v4beta.
    Label string
    A label for the Node Pool. If not provided, it defaults to empty string.
    Labels map[string]string
    A map of key/value pairs to apply to all nodes in the pool. Labels are used to identify and organize Kubernetes resources within your cluster.
    Nodes []LkeClusterPoolNode
    The nodes in the node pool.
    Tags []string
    A set of tags applied to this node pool. Tags can be used to flag node pools as externally managed. See Externally Managed Node Pools for more details.
    Taints []LkeClusterPoolTaint
    Kubernetes taints to add to node pool nodes. Taints help control how pods are scheduled onto nodes, specifically allowing them to repel certain pods. See Add Labels and Taints to your LKE Node Pools. Set elements can't be referenced by index; use a for expression or tolist(...) to access them.
    UpdateStrategy string
    The strategy for updating the Node Pool k8s version. For LKE enterprise only and may not currently available to all users even under v4beta.
    type string
    A Linode Type for all of the nodes in the Node Pool. See all node types here.
    autoscaler object
    When specified, the number of nodes autoscales within the defined minimum and maximum values.
    count number
    The number of nodes in the Node Pool. If undefined with an autoscaler the initial node count will equal the autoscaler minimum.
    disk_encryption string
    The disk encryption policy for nodes in this pool. Must be enabled or disabled. If omitted, the account default encryption policy is applied. Changing this value will cause the pool to be replaced (deleted and recreated).
    firewall_id number
    The ID of the firewall to associate with this node pool. If not provided, default firewall will be associated.
    id number
    The ID of the node.
    k8s_version string
    The k8s version of the nodes in this Node Pool. For LKE enterprise only and may not currently available to all users even under v4beta.
    label string
    A label for the Node Pool. If not provided, it defaults to empty string.
    labels map(string)
    A map of key/value pairs to apply to all nodes in the pool. Labels are used to identify and organize Kubernetes resources within your cluster.
    nodes list(object)
    The nodes in the node pool.
    tags list(string)
    A set of tags applied to this node pool. Tags can be used to flag node pools as externally managed. See Externally Managed Node Pools for more details.
    taints list(object)
    Kubernetes taints to add to node pool nodes. Taints help control how pods are scheduled onto nodes, specifically allowing them to repel certain pods. See Add Labels and Taints to your LKE Node Pools. Set elements can't be referenced by index; use a for expression or tolist(...) to access them.
    update_strategy string
    The strategy for updating the Node Pool k8s version. For LKE enterprise only and may not currently available to all users even under v4beta.
    type String
    A Linode Type for all of the nodes in the Node Pool. See all node types here.
    autoscaler LkeClusterPoolAutoscaler
    When specified, the number of nodes autoscales within the defined minimum and maximum values.
    count Integer
    The number of nodes in the Node Pool. If undefined with an autoscaler the initial node count will equal the autoscaler minimum.
    diskEncryption String
    The disk encryption policy for nodes in this pool. Must be enabled or disabled. If omitted, the account default encryption policy is applied. Changing this value will cause the pool to be replaced (deleted and recreated).
    firewallId Integer
    The ID of the firewall to associate with this node pool. If not provided, default firewall will be associated.
    id Integer
    The ID of the node.
    k8sVersion String
    The k8s version of the nodes in this Node Pool. For LKE enterprise only and may not currently available to all users even under v4beta.
    label String
    A label for the Node Pool. If not provided, it defaults to empty string.
    labels Map<String,String>
    A map of key/value pairs to apply to all nodes in the pool. Labels are used to identify and organize Kubernetes resources within your cluster.
    nodes List<LkeClusterPoolNode>
    The nodes in the node pool.
    tags List<String>
    A set of tags applied to this node pool. Tags can be used to flag node pools as externally managed. See Externally Managed Node Pools for more details.
    taints List<LkeClusterPoolTaint>
    Kubernetes taints to add to node pool nodes. Taints help control how pods are scheduled onto nodes, specifically allowing them to repel certain pods. See Add Labels and Taints to your LKE Node Pools. Set elements can't be referenced by index; use a for expression or tolist(...) to access them.
    updateStrategy String
    The strategy for updating the Node Pool k8s version. For LKE enterprise only and may not currently available to all users even under v4beta.
    type string
    A Linode Type for all of the nodes in the Node Pool. See all node types here.
    autoscaler LkeClusterPoolAutoscaler
    When specified, the number of nodes autoscales within the defined minimum and maximum values.
    count number
    The number of nodes in the Node Pool. If undefined with an autoscaler the initial node count will equal the autoscaler minimum.
    diskEncryption string
    The disk encryption policy for nodes in this pool. Must be enabled or disabled. If omitted, the account default encryption policy is applied. Changing this value will cause the pool to be replaced (deleted and recreated).
    firewallId number
    The ID of the firewall to associate with this node pool. If not provided, default firewall will be associated.
    id number
    The ID of the node.
    k8sVersion string
    The k8s version of the nodes in this Node Pool. For LKE enterprise only and may not currently available to all users even under v4beta.
    label string
    A label for the Node Pool. If not provided, it defaults to empty string.
    labels {[key: string]: string}
    A map of key/value pairs to apply to all nodes in the pool. Labels are used to identify and organize Kubernetes resources within your cluster.
    nodes LkeClusterPoolNode[]
    The nodes in the node pool.
    tags string[]
    A set of tags applied to this node pool. Tags can be used to flag node pools as externally managed. See Externally Managed Node Pools for more details.
    taints LkeClusterPoolTaint[]
    Kubernetes taints to add to node pool nodes. Taints help control how pods are scheduled onto nodes, specifically allowing them to repel certain pods. See Add Labels and Taints to your LKE Node Pools. Set elements can't be referenced by index; use a for expression or tolist(...) to access them.
    updateStrategy string
    The strategy for updating the Node Pool k8s version. For LKE enterprise only and may not currently available to all users even under v4beta.
    type str
    A Linode Type for all of the nodes in the Node Pool. See all node types here.
    autoscaler LkeClusterPoolAutoscaler
    When specified, the number of nodes autoscales within the defined minimum and maximum values.
    count int
    The number of nodes in the Node Pool. If undefined with an autoscaler the initial node count will equal the autoscaler minimum.
    disk_encryption str
    The disk encryption policy for nodes in this pool. Must be enabled or disabled. If omitted, the account default encryption policy is applied. Changing this value will cause the pool to be replaced (deleted and recreated).
    firewall_id int
    The ID of the firewall to associate with this node pool. If not provided, default firewall will be associated.
    id int
    The ID of the node.
    k8s_version str
    The k8s version of the nodes in this Node Pool. For LKE enterprise only and may not currently available to all users even under v4beta.
    label str
    A label for the Node Pool. If not provided, it defaults to empty string.
    labels Mapping[str, str]
    A map of key/value pairs to apply to all nodes in the pool. Labels are used to identify and organize Kubernetes resources within your cluster.
    nodes Sequence[LkeClusterPoolNode]
    The nodes in the node pool.
    tags Sequence[str]
    A set of tags applied to this node pool. Tags can be used to flag node pools as externally managed. See Externally Managed Node Pools for more details.
    taints Sequence[LkeClusterPoolTaint]
    Kubernetes taints to add to node pool nodes. Taints help control how pods are scheduled onto nodes, specifically allowing them to repel certain pods. See Add Labels and Taints to your LKE Node Pools. Set elements can't be referenced by index; use a for expression or tolist(...) to access them.
    update_strategy str
    The strategy for updating the Node Pool k8s version. For LKE enterprise only and may not currently available to all users even under v4beta.
    type String
    A Linode Type for all of the nodes in the Node Pool. See all node types here.
    autoscaler Property Map
    When specified, the number of nodes autoscales within the defined minimum and maximum values.
    count Number
    The number of nodes in the Node Pool. If undefined with an autoscaler the initial node count will equal the autoscaler minimum.
    diskEncryption String
    The disk encryption policy for nodes in this pool. Must be enabled or disabled. If omitted, the account default encryption policy is applied. Changing this value will cause the pool to be replaced (deleted and recreated).
    firewallId Number
    The ID of the firewall to associate with this node pool. If not provided, default firewall will be associated.
    id Number
    The ID of the node.
    k8sVersion String
    The k8s version of the nodes in this Node Pool. For LKE enterprise only and may not currently available to all users even under v4beta.
    label String
    A label for the Node Pool. If not provided, it defaults to empty string.
    labels Map<String>
    A map of key/value pairs to apply to all nodes in the pool. Labels are used to identify and organize Kubernetes resources within your cluster.
    nodes List<Property Map>
    The nodes in the node pool.
    tags List<String>
    A set of tags applied to this node pool. Tags can be used to flag node pools as externally managed. See Externally Managed Node Pools for more details.
    taints List<Property Map>
    Kubernetes taints to add to node pool nodes. Taints help control how pods are scheduled onto nodes, specifically allowing them to repel certain pods. See Add Labels and Taints to your LKE Node Pools. Set elements can't be referenced by index; use a for expression or tolist(...) to access them.
    updateStrategy String
    The strategy for updating the Node Pool k8s version. For LKE enterprise only and may not currently available to all users even under v4beta.

    LkeClusterPoolAutoscaler, LkeClusterPoolAutoscalerArgs

    Max int
    The maximum number of nodes to autoscale to.
    Min int
    The minimum number of nodes to autoscale to.
    Max int
    The maximum number of nodes to autoscale to.
    Min int
    The minimum number of nodes to autoscale to.
    max number
    The maximum number of nodes to autoscale to.
    min number
    The minimum number of nodes to autoscale to.
    max Integer
    The maximum number of nodes to autoscale to.
    min Integer
    The minimum number of nodes to autoscale to.
    max number
    The maximum number of nodes to autoscale to.
    min number
    The minimum number of nodes to autoscale to.
    max int
    The maximum number of nodes to autoscale to.
    min int
    The minimum number of nodes to autoscale to.
    max Number
    The maximum number of nodes to autoscale to.
    min Number
    The minimum number of nodes to autoscale to.

    LkeClusterPoolNode, LkeClusterPoolNodeArgs

    Id string
    The ID of the node.
    InstanceId int
    The ID of the underlying Linode instance.
    Status string
    The status of the node. (ready, notReady)
    Id string
    The ID of the node.
    InstanceId int
    The ID of the underlying Linode instance.
    Status string
    The status of the node. (ready, notReady)
    id string
    The ID of the node.
    instance_id number
    The ID of the underlying Linode instance.
    status string
    The status of the node. (ready, notReady)
    id String
    The ID of the node.
    instanceId Integer
    The ID of the underlying Linode instance.
    status String
    The status of the node. (ready, notReady)
    id string
    The ID of the node.
    instanceId number
    The ID of the underlying Linode instance.
    status string
    The status of the node. (ready, notReady)
    id str
    The ID of the node.
    instance_id int
    The ID of the underlying Linode instance.
    status str
    The status of the node. (ready, notReady)
    id String
    The ID of the node.
    instanceId Number
    The ID of the underlying Linode instance.
    status String
    The status of the node. (ready, notReady)

    LkeClusterPoolTaint, LkeClusterPoolTaintArgs

    Effect string
    The Kubernetes taint effect. Accepted values are NoSchedule, PreferNoSchedule, and NoExecute. For the descriptions of these values, see Kubernetes Taints and Tolerations.
    Key string
    The Kubernetes taint key.
    Value string
    The Kubernetes taint value.

    • autoscaler - (Optional, Block) If defined, an autoscaler will be enabled with the given configuration. Referenced with an index (e.g. autoscaler.0.min).
    Effect string
    The Kubernetes taint effect. Accepted values are NoSchedule, PreferNoSchedule, and NoExecute. For the descriptions of these values, see Kubernetes Taints and Tolerations.
    Key string
    The Kubernetes taint key.
    Value string
    The Kubernetes taint value.

    • autoscaler - (Optional, Block) If defined, an autoscaler will be enabled with the given configuration. Referenced with an index (e.g. autoscaler.0.min).
    effect string
    The Kubernetes taint effect. Accepted values are NoSchedule, PreferNoSchedule, and NoExecute. For the descriptions of these values, see Kubernetes Taints and Tolerations.
    key string
    The Kubernetes taint key.
    value string
    The Kubernetes taint value.

    • autoscaler - (Optional, Block) If defined, an autoscaler will be enabled with the given configuration. Referenced with an index (e.g. autoscaler.0.min).
    effect String
    The Kubernetes taint effect. Accepted values are NoSchedule, PreferNoSchedule, and NoExecute. For the descriptions of these values, see Kubernetes Taints and Tolerations.
    key String
    The Kubernetes taint key.
    value String
    The Kubernetes taint value.

    • autoscaler - (Optional, Block) If defined, an autoscaler will be enabled with the given configuration. Referenced with an index (e.g. autoscaler.0.min).
    effect string
    The Kubernetes taint effect. Accepted values are NoSchedule, PreferNoSchedule, and NoExecute. For the descriptions of these values, see Kubernetes Taints and Tolerations.
    key string
    The Kubernetes taint key.
    value string
    The Kubernetes taint value.

    • autoscaler - (Optional, Block) If defined, an autoscaler will be enabled with the given configuration. Referenced with an index (e.g. autoscaler.0.min).
    effect str
    The Kubernetes taint effect. Accepted values are NoSchedule, PreferNoSchedule, and NoExecute. For the descriptions of these values, see Kubernetes Taints and Tolerations.
    key str
    The Kubernetes taint key.
    value str
    The Kubernetes taint value.

    • autoscaler - (Optional, Block) If defined, an autoscaler will be enabled with the given configuration. Referenced with an index (e.g. autoscaler.0.min).
    effect String
    The Kubernetes taint effect. Accepted values are NoSchedule, PreferNoSchedule, and NoExecute. For the descriptions of these values, see Kubernetes Taints and Tolerations.
    key String
    The Kubernetes taint key.
    value String
    The Kubernetes taint value.

    • autoscaler - (Optional, Block) If defined, an autoscaler will be enabled with the given configuration. Referenced with an index (e.g. autoscaler.0.min).

    Import

    LKE Clusters can be imported using the id, e.g.

    $ pulumi import linode:index/lkeCluster:LkeCluster my_cluster 12345
    

    To learn more about importing existing cloud resources, see Importing resources.

    Package Details

    Repository
    Linode pulumi/pulumi-linode
    License
    Apache-2.0
    Notes
    This Pulumi package is based on the linode Terraform Provider.
    linode logo linode logo
    Viewing docs for Linode v6.9.0
    published on Saturday, Oct 31, 2026 by Pulumi

      Try Pulumi Cloud free.
      Your team will thank you.

      Start free trial