1. Packages
  2. Scaleway
  3. API Docs
  4. KubernetesCluster
Scaleway v1.20.0 published on Monday, Nov 4, 2024 by pulumiverse

scaleway.KubernetesCluster

Explore with Pulumi AI

scaleway logo
Scaleway v1.20.0 published on Monday, Nov 4, 2024 by pulumiverse

    Creates and manages Scaleway Kubernetes clusters. For more information, see the documentation.

    Example Usage

    Basic

    import * as pulumi from "@pulumi/pulumi";
    import * as scaleway from "@pulumiverse/scaleway";
    
    const pn = new scaleway.VpcPrivateNetwork("pn", {});
    const cluster = new scaleway.KubernetesCluster("cluster", {
        name: "tf-cluster",
        version: "1.29.1",
        cni: "cilium",
        privateNetworkId: pn.id,
        deleteAdditionalResources: false,
    });
    const pool = new scaleway.KubernetesNodePool("pool", {
        clusterId: cluster.id,
        name: "tf-pool",
        nodeType: "DEV1-M",
        size: 1,
    });
    
    import pulumi
    import pulumiverse_scaleway as scaleway
    
    pn = scaleway.VpcPrivateNetwork("pn")
    cluster = scaleway.KubernetesCluster("cluster",
        name="tf-cluster",
        version="1.29.1",
        cni="cilium",
        private_network_id=pn.id,
        delete_additional_resources=False)
    pool = scaleway.KubernetesNodePool("pool",
        cluster_id=cluster.id,
        name="tf-pool",
        node_type="DEV1-M",
        size=1)
    
    package main
    
    import (
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    	"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		pn, err := scaleway.NewVpcPrivateNetwork(ctx, "pn", nil)
    		if err != nil {
    			return err
    		}
    		cluster, err := scaleway.NewKubernetesCluster(ctx, "cluster", &scaleway.KubernetesClusterArgs{
    			Name:                      pulumi.String("tf-cluster"),
    			Version:                   pulumi.String("1.29.1"),
    			Cni:                       pulumi.String("cilium"),
    			PrivateNetworkId:          pn.ID(),
    			DeleteAdditionalResources: pulumi.Bool(false),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = scaleway.NewKubernetesNodePool(ctx, "pool", &scaleway.KubernetesNodePoolArgs{
    			ClusterId: cluster.ID(),
    			Name:      pulumi.String("tf-pool"),
    			NodeType:  pulumi.String("DEV1-M"),
    			Size:      pulumi.Int(1),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Scaleway = Pulumiverse.Scaleway;
    
    return await Deployment.RunAsync(() => 
    {
        var pn = new Scaleway.VpcPrivateNetwork("pn");
    
        var cluster = new Scaleway.KubernetesCluster("cluster", new()
        {
            Name = "tf-cluster",
            Version = "1.29.1",
            Cni = "cilium",
            PrivateNetworkId = pn.Id,
            DeleteAdditionalResources = false,
        });
    
        var pool = new Scaleway.KubernetesNodePool("pool", new()
        {
            ClusterId = cluster.Id,
            Name = "tf-pool",
            NodeType = "DEV1-M",
            Size = 1,
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.scaleway.VpcPrivateNetwork;
    import com.pulumi.scaleway.KubernetesCluster;
    import com.pulumi.scaleway.KubernetesClusterArgs;
    import com.pulumi.scaleway.KubernetesNodePool;
    import com.pulumi.scaleway.KubernetesNodePoolArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var pn = new VpcPrivateNetwork("pn");
    
            var cluster = new KubernetesCluster("cluster", KubernetesClusterArgs.builder()
                .name("tf-cluster")
                .version("1.29.1")
                .cni("cilium")
                .privateNetworkId(pn.id())
                .deleteAdditionalResources(false)
                .build());
    
            var pool = new KubernetesNodePool("pool", KubernetesNodePoolArgs.builder()
                .clusterId(cluster.id())
                .name("tf-pool")
                .nodeType("DEV1-M")
                .size(1)
                .build());
    
        }
    }
    
    resources:
      pn:
        type: scaleway:VpcPrivateNetwork
      cluster:
        type: scaleway:KubernetesCluster
        properties:
          name: tf-cluster
          version: 1.29.1
          cni: cilium
          privateNetworkId: ${pn.id}
          deleteAdditionalResources: false
      pool:
        type: scaleway:KubernetesNodePool
        properties:
          clusterId: ${cluster.id}
          name: tf-pool
          nodeType: DEV1-M
          size: 1
    

    Multicloud

    import * as pulumi from "@pulumi/pulumi";
    import * as scaleway from "@pulumiverse/scaleway";
    
    const cluster = new scaleway.KubernetesCluster("cluster", {
        name: "tf-cluster",
        type: "multicloud",
        version: "1.29.1",
        cni: "kilo",
        deleteAdditionalResources: false,
    });
    const pool = new scaleway.KubernetesNodePool("pool", {
        clusterId: cluster.id,
        name: "tf-pool",
        nodeType: "external",
        size: 0,
        minSize: 0,
    });
    
    import pulumi
    import pulumiverse_scaleway as scaleway
    
    cluster = scaleway.KubernetesCluster("cluster",
        name="tf-cluster",
        type="multicloud",
        version="1.29.1",
        cni="kilo",
        delete_additional_resources=False)
    pool = scaleway.KubernetesNodePool("pool",
        cluster_id=cluster.id,
        name="tf-pool",
        node_type="external",
        size=0,
        min_size=0)
    
    package main
    
    import (
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    	"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		cluster, err := scaleway.NewKubernetesCluster(ctx, "cluster", &scaleway.KubernetesClusterArgs{
    			Name:                      pulumi.String("tf-cluster"),
    			Type:                      pulumi.String("multicloud"),
    			Version:                   pulumi.String("1.29.1"),
    			Cni:                       pulumi.String("kilo"),
    			DeleteAdditionalResources: pulumi.Bool(false),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = scaleway.NewKubernetesNodePool(ctx, "pool", &scaleway.KubernetesNodePoolArgs{
    			ClusterId: cluster.ID(),
    			Name:      pulumi.String("tf-pool"),
    			NodeType:  pulumi.String("external"),
    			Size:      pulumi.Int(0),
    			MinSize:   pulumi.Int(0),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Scaleway = Pulumiverse.Scaleway;
    
    return await Deployment.RunAsync(() => 
    {
        var cluster = new Scaleway.KubernetesCluster("cluster", new()
        {
            Name = "tf-cluster",
            Type = "multicloud",
            Version = "1.29.1",
            Cni = "kilo",
            DeleteAdditionalResources = false,
        });
    
        var pool = new Scaleway.KubernetesNodePool("pool", new()
        {
            ClusterId = cluster.Id,
            Name = "tf-pool",
            NodeType = "external",
            Size = 0,
            MinSize = 0,
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.scaleway.KubernetesCluster;
    import com.pulumi.scaleway.KubernetesClusterArgs;
    import com.pulumi.scaleway.KubernetesNodePool;
    import com.pulumi.scaleway.KubernetesNodePoolArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var cluster = new KubernetesCluster("cluster", KubernetesClusterArgs.builder()
                .name("tf-cluster")
                .type("multicloud")
                .version("1.29.1")
                .cni("kilo")
                .deleteAdditionalResources(false)
                .build());
    
            var pool = new KubernetesNodePool("pool", KubernetesNodePoolArgs.builder()
                .clusterId(cluster.id())
                .name("tf-pool")
                .nodeType("external")
                .size(0)
                .minSize(0)
                .build());
    
        }
    }
    
    resources:
      cluster:
        type: scaleway:KubernetesCluster
        properties:
          name: tf-cluster
          type: multicloud
          version: 1.29.1
          cni: kilo
          deleteAdditionalResources: false
      pool:
        type: scaleway:KubernetesNodePool
        properties:
          clusterId: ${cluster.id}
          name: tf-pool
          nodeType: external
          size: 0
          minSize: 0
    

    For a detailed example of how to add or run Elastic Metal servers instead of Instances on your cluster, please refer to this guide.

    With additional configuration

    import * as pulumi from "@pulumi/pulumi";
    import * as scaleway from "@pulumiverse/scaleway";
    
    const pn = new scaleway.VpcPrivateNetwork("pn", {});
    const cluster = new scaleway.KubernetesCluster("cluster", {
        name: "tf-cluster",
        description: "cluster made in terraform",
        version: "1.29.1",
        cni: "calico",
        tags: ["terraform"],
        privateNetworkId: pn.id,
        deleteAdditionalResources: false,
        autoscalerConfig: {
            disableScaleDown: false,
            scaleDownDelayAfterAdd: "5m",
            estimator: "binpacking",
            expander: "random",
            ignoreDaemonsetsUtilization: true,
            balanceSimilarNodeGroups: true,
            expendablePodsPriorityCutoff: -5,
        },
    });
    const pool = new scaleway.KubernetesNodePool("pool", {
        clusterId: cluster.id,
        name: "tf-pool",
        nodeType: "DEV1-M",
        size: 3,
        autoscaling: true,
        autohealing: true,
        minSize: 1,
        maxSize: 5,
    });
    
    import pulumi
    import pulumiverse_scaleway as scaleway
    
    pn = scaleway.VpcPrivateNetwork("pn")
    cluster = scaleway.KubernetesCluster("cluster",
        name="tf-cluster",
        description="cluster made in terraform",
        version="1.29.1",
        cni="calico",
        tags=["terraform"],
        private_network_id=pn.id,
        delete_additional_resources=False,
        autoscaler_config={
            "disable_scale_down": False,
            "scale_down_delay_after_add": "5m",
            "estimator": "binpacking",
            "expander": "random",
            "ignore_daemonsets_utilization": True,
            "balance_similar_node_groups": True,
            "expendable_pods_priority_cutoff": -5,
        })
    pool = scaleway.KubernetesNodePool("pool",
        cluster_id=cluster.id,
        name="tf-pool",
        node_type="DEV1-M",
        size=3,
        autoscaling=True,
        autohealing=True,
        min_size=1,
        max_size=5)
    
    package main
    
    import (
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    	"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		pn, err := scaleway.NewVpcPrivateNetwork(ctx, "pn", nil)
    		if err != nil {
    			return err
    		}
    		cluster, err := scaleway.NewKubernetesCluster(ctx, "cluster", &scaleway.KubernetesClusterArgs{
    			Name:        pulumi.String("tf-cluster"),
    			Description: pulumi.String("cluster made in terraform"),
    			Version:     pulumi.String("1.29.1"),
    			Cni:         pulumi.String("calico"),
    			Tags: pulumi.StringArray{
    				pulumi.String("terraform"),
    			},
    			PrivateNetworkId:          pn.ID(),
    			DeleteAdditionalResources: pulumi.Bool(false),
    			AutoscalerConfig: &scaleway.KubernetesClusterAutoscalerConfigArgs{
    				DisableScaleDown:             pulumi.Bool(false),
    				ScaleDownDelayAfterAdd:       pulumi.String("5m"),
    				Estimator:                    pulumi.String("binpacking"),
    				Expander:                     pulumi.String("random"),
    				IgnoreDaemonsetsUtilization:  pulumi.Bool(true),
    				BalanceSimilarNodeGroups:     pulumi.Bool(true),
    				ExpendablePodsPriorityCutoff: pulumi.Int(-5),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		_, err = scaleway.NewKubernetesNodePool(ctx, "pool", &scaleway.KubernetesNodePoolArgs{
    			ClusterId:   cluster.ID(),
    			Name:        pulumi.String("tf-pool"),
    			NodeType:    pulumi.String("DEV1-M"),
    			Size:        pulumi.Int(3),
    			Autoscaling: pulumi.Bool(true),
    			Autohealing: pulumi.Bool(true),
    			MinSize:     pulumi.Int(1),
    			MaxSize:     pulumi.Int(5),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Scaleway = Pulumiverse.Scaleway;
    
    return await Deployment.RunAsync(() => 
    {
        var pn = new Scaleway.VpcPrivateNetwork("pn");
    
        var cluster = new Scaleway.KubernetesCluster("cluster", new()
        {
            Name = "tf-cluster",
            Description = "cluster made in terraform",
            Version = "1.29.1",
            Cni = "calico",
            Tags = new[]
            {
                "terraform",
            },
            PrivateNetworkId = pn.Id,
            DeleteAdditionalResources = false,
            AutoscalerConfig = new Scaleway.Inputs.KubernetesClusterAutoscalerConfigArgs
            {
                DisableScaleDown = false,
                ScaleDownDelayAfterAdd = "5m",
                Estimator = "binpacking",
                Expander = "random",
                IgnoreDaemonsetsUtilization = true,
                BalanceSimilarNodeGroups = true,
                ExpendablePodsPriorityCutoff = -5,
            },
        });
    
        var pool = new Scaleway.KubernetesNodePool("pool", new()
        {
            ClusterId = cluster.Id,
            Name = "tf-pool",
            NodeType = "DEV1-M",
            Size = 3,
            Autoscaling = true,
            Autohealing = true,
            MinSize = 1,
            MaxSize = 5,
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.scaleway.VpcPrivateNetwork;
    import com.pulumi.scaleway.KubernetesCluster;
    import com.pulumi.scaleway.KubernetesClusterArgs;
    import com.pulumi.scaleway.inputs.KubernetesClusterAutoscalerConfigArgs;
    import com.pulumi.scaleway.KubernetesNodePool;
    import com.pulumi.scaleway.KubernetesNodePoolArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var pn = new VpcPrivateNetwork("pn");
    
            var cluster = new KubernetesCluster("cluster", KubernetesClusterArgs.builder()
                .name("tf-cluster")
                .description("cluster made in terraform")
                .version("1.29.1")
                .cni("calico")
                .tags("terraform")
                .privateNetworkId(pn.id())
                .deleteAdditionalResources(false)
                .autoscalerConfig(KubernetesClusterAutoscalerConfigArgs.builder()
                    .disableScaleDown(false)
                    .scaleDownDelayAfterAdd("5m")
                    .estimator("binpacking")
                    .expander("random")
                    .ignoreDaemonsetsUtilization(true)
                    .balanceSimilarNodeGroups(true)
                    .expendablePodsPriorityCutoff(-5)
                    .build())
                .build());
    
            var pool = new KubernetesNodePool("pool", KubernetesNodePoolArgs.builder()
                .clusterId(cluster.id())
                .name("tf-pool")
                .nodeType("DEV1-M")
                .size(3)
                .autoscaling(true)
                .autohealing(true)
                .minSize(1)
                .maxSize(5)
                .build());
    
        }
    }
    
    resources:
      pn:
        type: scaleway:VpcPrivateNetwork
      cluster:
        type: scaleway:KubernetesCluster
        properties:
          name: tf-cluster
          description: cluster made in terraform
          version: 1.29.1
          cni: calico
          tags:
            - terraform
          privateNetworkId: ${pn.id}
          deleteAdditionalResources: false
          autoscalerConfig:
            disableScaleDown: false
            scaleDownDelayAfterAdd: 5m
            estimator: binpacking
            expander: random
            ignoreDaemonsetsUtilization: true
            balanceSimilarNodeGroups: true
            expendablePodsPriorityCutoff: -5
      pool:
        type: scaleway:KubernetesNodePool
        properties:
          clusterId: ${cluster.id}
          name: tf-pool
          nodeType: DEV1-M
          size: 3
          autoscaling: true
          autohealing: true
          minSize: 1
          maxSize: 5
    

    With the kubernetes provider

    import * as pulumi from "@pulumi/pulumi";
    import * as _null from "@pulumi/null";
    import * as scaleway from "@pulumiverse/scaleway";
    
    const pn = new scaleway.VpcPrivateNetwork("pn", {});
    const cluster = new scaleway.KubernetesCluster("cluster", {
        name: "tf-cluster",
        version: "1.29.1",
        cni: "cilium",
        privateNetworkId: pn.id,
        deleteAdditionalResources: false,
    });
    const pool = new scaleway.KubernetesNodePool("pool", {
        clusterId: cluster.id,
        name: "tf-pool",
        nodeType: "DEV1-M",
        size: 1,
    });
    const kubeconfig = new _null.Resource("kubeconfig", {triggers: {
        host: cluster.kubeconfigs.apply(kubeconfigs => kubeconfigs[0].host),
        token: cluster.kubeconfigs.apply(kubeconfigs => kubeconfigs[0].token),
        cluster_ca_certificate: cluster.kubeconfigs.apply(kubeconfigs => kubeconfigs[0].clusterCaCertificate),
    }}, {
        dependsOn: [pool],
    });
    
    import pulumi
    import pulumi_null as null
    import pulumiverse_scaleway as scaleway
    
    pn = scaleway.VpcPrivateNetwork("pn")
    cluster = scaleway.KubernetesCluster("cluster",
        name="tf-cluster",
        version="1.29.1",
        cni="cilium",
        private_network_id=pn.id,
        delete_additional_resources=False)
    pool = scaleway.KubernetesNodePool("pool",
        cluster_id=cluster.id,
        name="tf-pool",
        node_type="DEV1-M",
        size=1)
    kubeconfig = null.Resource("kubeconfig", triggers={
        "host": cluster.kubeconfigs[0].host,
        "token": cluster.kubeconfigs[0].token,
        "cluster_ca_certificate": cluster.kubeconfigs[0].cluster_ca_certificate,
    },
    opts = pulumi.ResourceOptions(depends_on=[pool]))
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-null/sdk/go/null"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    	"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		pn, err := scaleway.NewVpcPrivateNetwork(ctx, "pn", nil)
    		if err != nil {
    			return err
    		}
    		cluster, err := scaleway.NewKubernetesCluster(ctx, "cluster", &scaleway.KubernetesClusterArgs{
    			Name:                      pulumi.String("tf-cluster"),
    			Version:                   pulumi.String("1.29.1"),
    			Cni:                       pulumi.String("cilium"),
    			PrivateNetworkId:          pn.ID(),
    			DeleteAdditionalResources: pulumi.Bool(false),
    		})
    		if err != nil {
    			return err
    		}
    		pool, err := scaleway.NewKubernetesNodePool(ctx, "pool", &scaleway.KubernetesNodePoolArgs{
    			ClusterId: cluster.ID(),
    			Name:      pulumi.String("tf-pool"),
    			NodeType:  pulumi.String("DEV1-M"),
    			Size:      pulumi.Int(1),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = null.NewResource(ctx, "kubeconfig", &null.ResourceArgs{
    			Triggers: pulumi.StringMap{
    				"host": pulumi.String(cluster.Kubeconfigs.ApplyT(func(kubeconfigs []scaleway.KubernetesClusterKubeconfig) (*string, error) {
    					return &kubeconfigs[0].Host, nil
    				}).(pulumi.StringPtrOutput)),
    				"token": pulumi.String(cluster.Kubeconfigs.ApplyT(func(kubeconfigs []scaleway.KubernetesClusterKubeconfig) (*string, error) {
    					return &kubeconfigs[0].Token, nil
    				}).(pulumi.StringPtrOutput)),
    				"cluster_ca_certificate": pulumi.String(cluster.Kubeconfigs.ApplyT(func(kubeconfigs []scaleway.KubernetesClusterKubeconfig) (*string, error) {
    					return &kubeconfigs[0].ClusterCaCertificate, nil
    				}).(pulumi.StringPtrOutput)),
    			},
    		}, pulumi.DependsOn([]pulumi.Resource{
    			pool,
    		}))
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Null = Pulumi.Null;
    using Scaleway = Pulumiverse.Scaleway;
    
    return await Deployment.RunAsync(() => 
    {
        var pn = new Scaleway.VpcPrivateNetwork("pn");
    
        var cluster = new Scaleway.KubernetesCluster("cluster", new()
        {
            Name = "tf-cluster",
            Version = "1.29.1",
            Cni = "cilium",
            PrivateNetworkId = pn.Id,
            DeleteAdditionalResources = false,
        });
    
        var pool = new Scaleway.KubernetesNodePool("pool", new()
        {
            ClusterId = cluster.Id,
            Name = "tf-pool",
            NodeType = "DEV1-M",
            Size = 1,
        });
    
        var kubeconfig = new Null.Resource("kubeconfig", new()
        {
            Triggers = 
            {
                { "host", cluster.Kubeconfigs.Apply(kubeconfigs => kubeconfigs[0].Host) },
                { "token", cluster.Kubeconfigs.Apply(kubeconfigs => kubeconfigs[0].Token) },
                { "cluster_ca_certificate", cluster.Kubeconfigs.Apply(kubeconfigs => kubeconfigs[0].ClusterCaCertificate) },
            },
        }, new CustomResourceOptions
        {
            DependsOn =
            {
                pool,
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.scaleway.VpcPrivateNetwork;
    import com.pulumi.scaleway.KubernetesCluster;
    import com.pulumi.scaleway.KubernetesClusterArgs;
    import com.pulumi.scaleway.KubernetesNodePool;
    import com.pulumi.scaleway.KubernetesNodePoolArgs;
    import com.pulumi.null.Resource;
    import com.pulumi.null.ResourceArgs;
    import com.pulumi.resources.CustomResourceOptions;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var pn = new VpcPrivateNetwork("pn");
    
            var cluster = new KubernetesCluster("cluster", KubernetesClusterArgs.builder()
                .name("tf-cluster")
                .version("1.29.1")
                .cni("cilium")
                .privateNetworkId(pn.id())
                .deleteAdditionalResources(false)
                .build());
    
            var pool = new KubernetesNodePool("pool", KubernetesNodePoolArgs.builder()
                .clusterId(cluster.id())
                .name("tf-pool")
                .nodeType("DEV1-M")
                .size(1)
                .build());
    
            var kubeconfig = new Resource("kubeconfig", ResourceArgs.builder()
                .triggers(Map.ofEntries(
                    Map.entry("host", cluster.kubeconfigs().applyValue(kubeconfigs -> kubeconfigs[0].host())),
                    Map.entry("token", cluster.kubeconfigs().applyValue(kubeconfigs -> kubeconfigs[0].token())),
                    Map.entry("cluster_ca_certificate", cluster.kubeconfigs().applyValue(kubeconfigs -> kubeconfigs[0].clusterCaCertificate()))
                ))
                .build(), CustomResourceOptions.builder()
                    .dependsOn(pool)
                    .build());
    
        }
    }
    
    resources:
      pn:
        type: scaleway:VpcPrivateNetwork
      cluster:
        type: scaleway:KubernetesCluster
        properties:
          name: tf-cluster
          version: 1.29.1
          cni: cilium
          privateNetworkId: ${pn.id}
          deleteAdditionalResources: false
      pool:
        type: scaleway:KubernetesNodePool
        properties:
          clusterId: ${cluster.id}
          name: tf-pool
          nodeType: DEV1-M
          size: 1
      kubeconfig:
        type: null:Resource
        properties:
          triggers:
            host: ${cluster.kubeconfigs[0].host}
            token: ${cluster.kubeconfigs[0].token}
            cluster_ca_certificate: ${cluster.kubeconfigs[0].clusterCaCertificate}
        options:
          dependson:
            - ${pool}
    

    The null_resource is needed because when the cluster is created, it’s status is pool_required, but the kubeconfig can already be downloaded. It leads the kubernetes provider to start creating its objects, but the DNS entry for the Kubernetes master is not yet ready, that’s why it’s needed to wait for at least a pool.

    With the Helm provider

    import * as pulumi from "@pulumi/pulumi";
    import * as _null from "@pulumi/null";
    import * as helm from "@pulumi/helm";
    import * as scaleway from "@pulumiverse/scaleway";
    
    const pn = new scaleway.VpcPrivateNetwork("pn", {});
    const cluster = new scaleway.KubernetesCluster("cluster", {
        name: "tf-cluster",
        version: "1.29.1",
        cni: "cilium",
        deleteAdditionalResources: false,
        privateNetworkId: pn.id,
    });
    const pool = new scaleway.KubernetesNodePool("pool", {
        clusterId: cluster.id,
        name: "tf-pool",
        nodeType: "DEV1-M",
        size: 1,
    });
    const kubeconfig = new _null.Resource("kubeconfig", {triggers: {
        host: cluster.kubeconfigs.apply(kubeconfigs => kubeconfigs[0].host),
        token: cluster.kubeconfigs.apply(kubeconfigs => kubeconfigs[0].token),
        cluster_ca_certificate: cluster.kubeconfigs.apply(kubeconfigs => kubeconfigs[0].clusterCaCertificate),
    }}, {
        dependsOn: [pool],
    });
    const nginxIp = new scaleway.LoadbalancerIp("nginx_ip", {
        zone: "fr-par-1",
        projectId: cluster.projectId,
    });
    const nginxIngress = new helm.index.Release("nginx_ingress", {
        name: "nginx-ingress",
        namespace: "kube-system",
        repository: "https://kubernetes.github.io/ingress-nginx",
        chart: "ingress-nginx",
        set: [
            {
                name: "controller.service.loadBalancerIP",
                value: nginxIp.ipAddress,
            },
            {
                name: "controller.config.use-proxy-protocol",
                value: "true",
            },
            {
                name: "controller.service.annotations.service\\.beta\\.kubernetes\\.io/scw-loadbalancer-proxy-protocol-v2",
                value: "true",
            },
            {
                name: "controller.service.annotations.service\\.beta\\.kubernetes\\.io/scw-loadbalancer-zone",
                value: nginxIp.zone,
            },
            {
                name: "controller.service.externalTrafficPolicy",
                value: "Local",
            },
        ],
    });
    
    import pulumi
    import pulumi_helm as helm
    import pulumi_null as null
    import pulumiverse_scaleway as scaleway
    
    pn = scaleway.VpcPrivateNetwork("pn")
    cluster = scaleway.KubernetesCluster("cluster",
        name="tf-cluster",
        version="1.29.1",
        cni="cilium",
        delete_additional_resources=False,
        private_network_id=pn.id)
    pool = scaleway.KubernetesNodePool("pool",
        cluster_id=cluster.id,
        name="tf-pool",
        node_type="DEV1-M",
        size=1)
    kubeconfig = null.Resource("kubeconfig", triggers={
        "host": cluster.kubeconfigs[0].host,
        "token": cluster.kubeconfigs[0].token,
        "cluster_ca_certificate": cluster.kubeconfigs[0].cluster_ca_certificate,
    },
    opts = pulumi.ResourceOptions(depends_on=[pool]))
    nginx_ip = scaleway.LoadbalancerIp("nginx_ip",
        zone="fr-par-1",
        project_id=cluster.project_id)
    nginx_ingress = helm.index.Release("nginx_ingress",
        name=nginx-ingress,
        namespace=kube-system,
        repository=https://kubernetes.github.io/ingress-nginx,
        chart=ingress-nginx,
        set=[
            {
                name: controller.service.loadBalancerIP,
                value: nginx_ip.ip_address,
            },
            {
                name: controller.config.use-proxy-protocol,
                value: true,
            },
            {
                name: controller.service.annotations.service\.beta\.kubernetes\.io/scw-loadbalancer-proxy-protocol-v2,
                value: true,
            },
            {
                name: controller.service.annotations.service\.beta\.kubernetes\.io/scw-loadbalancer-zone,
                value: nginx_ip.zone,
            },
            {
                name: controller.service.externalTrafficPolicy,
                value: Local,
            },
        ])
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-helm/sdk/go/helm"
    	"github.com/pulumi/pulumi-null/sdk/go/null"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    	"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		pn, err := scaleway.NewVpcPrivateNetwork(ctx, "pn", nil)
    		if err != nil {
    			return err
    		}
    		cluster, err := scaleway.NewKubernetesCluster(ctx, "cluster", &scaleway.KubernetesClusterArgs{
    			Name:                      pulumi.String("tf-cluster"),
    			Version:                   pulumi.String("1.29.1"),
    			Cni:                       pulumi.String("cilium"),
    			DeleteAdditionalResources: pulumi.Bool(false),
    			PrivateNetworkId:          pn.ID(),
    		})
    		if err != nil {
    			return err
    		}
    		pool, err := scaleway.NewKubernetesNodePool(ctx, "pool", &scaleway.KubernetesNodePoolArgs{
    			ClusterId: cluster.ID(),
    			Name:      pulumi.String("tf-pool"),
    			NodeType:  pulumi.String("DEV1-M"),
    			Size:      pulumi.Int(1),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = null.NewResource(ctx, "kubeconfig", &null.ResourceArgs{
    			Triggers: pulumi.StringMap{
    				"host": pulumi.String(cluster.Kubeconfigs.ApplyT(func(kubeconfigs []scaleway.KubernetesClusterKubeconfig) (*string, error) {
    					return &kubeconfigs[0].Host, nil
    				}).(pulumi.StringPtrOutput)),
    				"token": pulumi.String(cluster.Kubeconfigs.ApplyT(func(kubeconfigs []scaleway.KubernetesClusterKubeconfig) (*string, error) {
    					return &kubeconfigs[0].Token, nil
    				}).(pulumi.StringPtrOutput)),
    				"cluster_ca_certificate": pulumi.String(cluster.Kubeconfigs.ApplyT(func(kubeconfigs []scaleway.KubernetesClusterKubeconfig) (*string, error) {
    					return &kubeconfigs[0].ClusterCaCertificate, nil
    				}).(pulumi.StringPtrOutput)),
    			},
    		}, pulumi.DependsOn([]pulumi.Resource{
    			pool,
    		}))
    		if err != nil {
    			return err
    		}
    		nginxIp, err := scaleway.NewLoadbalancerIp(ctx, "nginx_ip", &scaleway.LoadbalancerIpArgs{
    			Zone:      pulumi.String("fr-par-1"),
    			ProjectId: cluster.ProjectId,
    		})
    		if err != nil {
    			return err
    		}
    		_, err = helm.NewRelease(ctx, "nginx_ingress", &helm.ReleaseArgs{
    			Name:       "nginx-ingress",
    			Namespace:  "kube-system",
    			Repository: "https://kubernetes.github.io/ingress-nginx",
    			Chart:      "ingress-nginx",
    			Set: []map[string]interface{}{
    				map[string]interface{}{
    					"name":  "controller.service.loadBalancerIP",
    					"value": nginxIp.IpAddress,
    				},
    				map[string]interface{}{
    					"name":  "controller.config.use-proxy-protocol",
    					"value": "true",
    				},
    				map[string]interface{}{
    					"name":  "controller.service.annotations.service\\.beta\\.kubernetes\\.io/scw-loadbalancer-proxy-protocol-v2",
    					"value": "true",
    				},
    				map[string]interface{}{
    					"name":  "controller.service.annotations.service\\.beta\\.kubernetes\\.io/scw-loadbalancer-zone",
    					"value": nginxIp.Zone,
    				},
    				map[string]interface{}{
    					"name":  "controller.service.externalTrafficPolicy",
    					"value": "Local",
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Helm = Pulumi.Helm;
    using Null = Pulumi.Null;
    using Scaleway = Pulumiverse.Scaleway;
    
    return await Deployment.RunAsync(() => 
    {
        var pn = new Scaleway.VpcPrivateNetwork("pn");
    
        var cluster = new Scaleway.KubernetesCluster("cluster", new()
        {
            Name = "tf-cluster",
            Version = "1.29.1",
            Cni = "cilium",
            DeleteAdditionalResources = false,
            PrivateNetworkId = pn.Id,
        });
    
        var pool = new Scaleway.KubernetesNodePool("pool", new()
        {
            ClusterId = cluster.Id,
            Name = "tf-pool",
            NodeType = "DEV1-M",
            Size = 1,
        });
    
        var kubeconfig = new Null.Resource("kubeconfig", new()
        {
            Triggers = 
            {
                { "host", cluster.Kubeconfigs.Apply(kubeconfigs => kubeconfigs[0].Host) },
                { "token", cluster.Kubeconfigs.Apply(kubeconfigs => kubeconfigs[0].Token) },
                { "cluster_ca_certificate", cluster.Kubeconfigs.Apply(kubeconfigs => kubeconfigs[0].ClusterCaCertificate) },
            },
        }, new CustomResourceOptions
        {
            DependsOn =
            {
                pool,
            },
        });
    
        var nginxIp = new Scaleway.LoadbalancerIp("nginx_ip", new()
        {
            Zone = "fr-par-1",
            ProjectId = cluster.ProjectId,
        });
    
        var nginxIngress = new Helm.Index.Release("nginx_ingress", new()
        {
            Name = "nginx-ingress",
            Namespace = "kube-system",
            Repository = "https://kubernetes.github.io/ingress-nginx",
            Chart = "ingress-nginx",
            Set = new[]
            {
                
                {
                    { "name", "controller.service.loadBalancerIP" },
                    { "value", nginxIp.IpAddress },
                },
                
                {
                    { "name", "controller.config.use-proxy-protocol" },
                    { "value", "true" },
                },
                
                {
                    { "name", "controller.service.annotations.service\\.beta\\.kubernetes\\.io/scw-loadbalancer-proxy-protocol-v2" },
                    { "value", "true" },
                },
                
                {
                    { "name", "controller.service.annotations.service\\.beta\\.kubernetes\\.io/scw-loadbalancer-zone" },
                    { "value", nginxIp.Zone },
                },
                
                {
                    { "name", "controller.service.externalTrafficPolicy" },
                    { "value", "Local" },
                },
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.scaleway.VpcPrivateNetwork;
    import com.pulumi.scaleway.KubernetesCluster;
    import com.pulumi.scaleway.KubernetesClusterArgs;
    import com.pulumi.scaleway.KubernetesNodePool;
    import com.pulumi.scaleway.KubernetesNodePoolArgs;
    import com.pulumi.null.Resource;
    import com.pulumi.null.ResourceArgs;
    import com.pulumi.scaleway.LoadbalancerIp;
    import com.pulumi.scaleway.LoadbalancerIpArgs;
    import com.pulumi.helm.release;
    import com.pulumi.helm.ReleaseArgs;
    import com.pulumi.resources.CustomResourceOptions;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var pn = new VpcPrivateNetwork("pn");
    
            var cluster = new KubernetesCluster("cluster", KubernetesClusterArgs.builder()
                .name("tf-cluster")
                .version("1.29.1")
                .cni("cilium")
                .deleteAdditionalResources(false)
                .privateNetworkId(pn.id())
                .build());
    
            var pool = new KubernetesNodePool("pool", KubernetesNodePoolArgs.builder()
                .clusterId(cluster.id())
                .name("tf-pool")
                .nodeType("DEV1-M")
                .size(1)
                .build());
    
            var kubeconfig = new Resource("kubeconfig", ResourceArgs.builder()
                .triggers(Map.ofEntries(
                    Map.entry("host", cluster.kubeconfigs().applyValue(kubeconfigs -> kubeconfigs[0].host())),
                    Map.entry("token", cluster.kubeconfigs().applyValue(kubeconfigs -> kubeconfigs[0].token())),
                    Map.entry("cluster_ca_certificate", cluster.kubeconfigs().applyValue(kubeconfigs -> kubeconfigs[0].clusterCaCertificate()))
                ))
                .build(), CustomResourceOptions.builder()
                    .dependsOn(pool)
                    .build());
    
            var nginxIp = new LoadbalancerIp("nginxIp", LoadbalancerIpArgs.builder()
                .zone("fr-par-1")
                .projectId(cluster.projectId())
                .build());
    
            var nginxIngress = new Release("nginxIngress", ReleaseArgs.builder()
                .name("nginx-ingress")
                .namespace("kube-system")
                .repository("https://kubernetes.github.io/ingress-nginx")
                .chart("ingress-nginx")
                .set(            
                    %!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference),
                    %!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference),
                    %!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference),
                    %!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference),
                    %!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference))
                .build());
    
        }
    }
    
    resources:
      pn:
        type: scaleway:VpcPrivateNetwork
      cluster:
        type: scaleway:KubernetesCluster
        properties:
          name: tf-cluster
          version: 1.29.1
          cni: cilium
          deleteAdditionalResources: false
          privateNetworkId: ${pn.id}
      pool:
        type: scaleway:KubernetesNodePool
        properties:
          clusterId: ${cluster.id}
          name: tf-pool
          nodeType: DEV1-M
          size: 1
      kubeconfig:
        type: null:Resource
        properties:
          triggers:
            host: ${cluster.kubeconfigs[0].host}
            token: ${cluster.kubeconfigs[0].token}
            cluster_ca_certificate: ${cluster.kubeconfigs[0].clusterCaCertificate}
        options:
          dependson:
            - ${pool}
      nginxIp:
        type: scaleway:LoadbalancerIp
        name: nginx_ip
        properties:
          zone: fr-par-1
          projectId: ${cluster.projectId}
      nginxIngress:
        type: helm:release
        name: nginx_ingress
        properties:
          name: nginx-ingress
          namespace: kube-system
          repository: https://kubernetes.github.io/ingress-nginx
          chart: ingress-nginx
          set:
            - name: controller.service.loadBalancerIP
              value: ${nginxIp.ipAddress}
            - name: controller.config.use-proxy-protocol
              value: 'true'
            - name: controller.service.annotations.service\.beta\.kubernetes\.io/scw-loadbalancer-proxy-protocol-v2
              value: 'true'
            - name: controller.service.annotations.service\.beta\.kubernetes\.io/scw-loadbalancer-zone
              value: ${nginxIp.zone}
            - name: controller.service.externalTrafficPolicy
              value: Local
    

    Deprecation of default_pool

    default_pool is deprecated in favour the scaleway.KubernetesNodePool resource. Here is a migration example.

    Before:

    Coming soon!
    
    Coming soon!
    
    Coming soon!
    
    Coming soon!
    
    Coming soon!
    
    resources:
      cluster:
        type: scaleway:KubernetesCluster
        properties:
          name: tf-cluster
          version: 1.18.0
          cni: cilium
          defaultPool:
            - nodeType: DEV1-M
              size: 1
    

    After:

    import * as pulumi from "@pulumi/pulumi";
    import * as scaleway from "@pulumiverse/scaleway";
    
    const cluster = new scaleway.KubernetesCluster("cluster", {
        name: "tf-cluster",
        version: "1.18.0",
        cni: "cilium",
    });
    const _default = new scaleway.KubernetesNodePool("default", {
        clusterId: jack.id,
        name: "default",
        nodeType: "DEV1-M",
        size: 1,
    });
    
    import pulumi
    import pulumiverse_scaleway as scaleway
    
    cluster = scaleway.KubernetesCluster("cluster",
        name="tf-cluster",
        version="1.18.0",
        cni="cilium")
    default = scaleway.KubernetesNodePool("default",
        cluster_id=jack["id"],
        name="default",
        node_type="DEV1-M",
        size=1)
    
    package main
    
    import (
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    	"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := scaleway.NewKubernetesCluster(ctx, "cluster", &scaleway.KubernetesClusterArgs{
    			Name:    pulumi.String("tf-cluster"),
    			Version: pulumi.String("1.18.0"),
    			Cni:     pulumi.String("cilium"),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = scaleway.NewKubernetesNodePool(ctx, "default", &scaleway.KubernetesNodePoolArgs{
    			ClusterId: pulumi.Any(jack.Id),
    			Name:      pulumi.String("default"),
    			NodeType:  pulumi.String("DEV1-M"),
    			Size:      pulumi.Int(1),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Scaleway = Pulumiverse.Scaleway;
    
    return await Deployment.RunAsync(() => 
    {
        var cluster = new Scaleway.KubernetesCluster("cluster", new()
        {
            Name = "tf-cluster",
            Version = "1.18.0",
            Cni = "cilium",
        });
    
        var @default = new Scaleway.KubernetesNodePool("default", new()
        {
            ClusterId = jack.Id,
            Name = "default",
            NodeType = "DEV1-M",
            Size = 1,
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.scaleway.KubernetesCluster;
    import com.pulumi.scaleway.KubernetesClusterArgs;
    import com.pulumi.scaleway.KubernetesNodePool;
    import com.pulumi.scaleway.KubernetesNodePoolArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var cluster = new KubernetesCluster("cluster", KubernetesClusterArgs.builder()
                .name("tf-cluster")
                .version("1.18.0")
                .cni("cilium")
                .build());
    
            var default_ = new KubernetesNodePool("default", KubernetesNodePoolArgs.builder()
                .clusterId(jack.id())
                .name("default")
                .nodeType("DEV1-M")
                .size(1)
                .build());
    
        }
    }
    
    resources:
      cluster:
        type: scaleway:KubernetesCluster
        properties:
          name: tf-cluster
          version: 1.18.0
          cni: cilium
      default:
        type: scaleway:KubernetesNodePool
        properties:
          clusterId: ${jack.id}
          name: default
          nodeType: DEV1-M
          size: 1
    

    Once you have moved all the default_pool into their own object, you will need to import them. If your pool had the ID 11111111-1111-1111-1111-111111111111 in the fr-par region, you can import it by typing:

    terraform import scaleway_k8s_pool.default fr-par/11111111-1111-1111-1111-111111111111
    

    Then you will only need to type pulumi up to have a smooth migration.

    Create KubernetesCluster Resource

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

    Constructor syntax

    new KubernetesCluster(name: string, args: KubernetesClusterArgs, opts?: CustomResourceOptions);
    @overload
    def KubernetesCluster(resource_name: str,
                          args: KubernetesClusterArgs,
                          opts: Optional[ResourceOptions] = None)
    
    @overload
    def KubernetesCluster(resource_name: str,
                          opts: Optional[ResourceOptions] = None,
                          cni: Optional[str] = None,
                          version: Optional[str] = None,
                          delete_additional_resources: Optional[bool] = None,
                          name: Optional[str] = None,
                          autoscaler_config: Optional[KubernetesClusterAutoscalerConfigArgs] = None,
                          auto_upgrade: Optional[KubernetesClusterAutoUpgradeArgs] = None,
                          description: Optional[str] = None,
                          feature_gates: Optional[Sequence[str]] = None,
                          admission_plugins: Optional[Sequence[str]] = None,
                          open_id_connect_config: Optional[KubernetesClusterOpenIdConnectConfigArgs] = None,
                          private_network_id: Optional[str] = None,
                          project_id: Optional[str] = None,
                          region: Optional[str] = None,
                          tags: Optional[Sequence[str]] = None,
                          type: Optional[str] = None,
                          apiserver_cert_sans: Optional[Sequence[str]] = None)
    func NewKubernetesCluster(ctx *Context, name string, args KubernetesClusterArgs, opts ...ResourceOption) (*KubernetesCluster, error)
    public KubernetesCluster(string name, KubernetesClusterArgs args, CustomResourceOptions? opts = null)
    public KubernetesCluster(String name, KubernetesClusterArgs args)
    public KubernetesCluster(String name, KubernetesClusterArgs args, CustomResourceOptions options)
    
    type: scaleway:KubernetesCluster
    properties: # The arguments to resource properties.
    options: # Bag of options to control resource's behavior.
    
    

    Parameters

    name string
    The unique name of the resource.
    args KubernetesClusterArgs
    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 KubernetesClusterArgs
    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 KubernetesClusterArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args KubernetesClusterArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args KubernetesClusterArgs
    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 kubernetesClusterResource = new Scaleway.KubernetesCluster("kubernetesClusterResource", new()
    {
        Cni = "string",
        Version = "string",
        DeleteAdditionalResources = false,
        Name = "string",
        AutoscalerConfig = new Scaleway.Inputs.KubernetesClusterAutoscalerConfigArgs
        {
            BalanceSimilarNodeGroups = false,
            DisableScaleDown = false,
            Estimator = "string",
            Expander = "string",
            ExpendablePodsPriorityCutoff = 0,
            IgnoreDaemonsetsUtilization = false,
            MaxGracefulTerminationSec = 0,
            ScaleDownDelayAfterAdd = "string",
            ScaleDownUnneededTime = "string",
            ScaleDownUtilizationThreshold = 0,
        },
        AutoUpgrade = new Scaleway.Inputs.KubernetesClusterAutoUpgradeArgs
        {
            Enable = false,
            MaintenanceWindowDay = "string",
            MaintenanceWindowStartHour = 0,
        },
        Description = "string",
        FeatureGates = new[]
        {
            "string",
        },
        AdmissionPlugins = new[]
        {
            "string",
        },
        OpenIdConnectConfig = new Scaleway.Inputs.KubernetesClusterOpenIdConnectConfigArgs
        {
            ClientId = "string",
            IssuerUrl = "string",
            GroupsClaims = new[]
            {
                "string",
            },
            GroupsPrefix = "string",
            RequiredClaims = new[]
            {
                "string",
            },
            UsernameClaim = "string",
            UsernamePrefix = "string",
        },
        PrivateNetworkId = "string",
        ProjectId = "string",
        Region = "string",
        Tags = new[]
        {
            "string",
        },
        Type = "string",
        ApiserverCertSans = new[]
        {
            "string",
        },
    });
    
    example, err := scaleway.NewKubernetesCluster(ctx, "kubernetesClusterResource", &scaleway.KubernetesClusterArgs{
    	Cni:                       pulumi.String("string"),
    	Version:                   pulumi.String("string"),
    	DeleteAdditionalResources: pulumi.Bool(false),
    	Name:                      pulumi.String("string"),
    	AutoscalerConfig: &scaleway.KubernetesClusterAutoscalerConfigArgs{
    		BalanceSimilarNodeGroups:      pulumi.Bool(false),
    		DisableScaleDown:              pulumi.Bool(false),
    		Estimator:                     pulumi.String("string"),
    		Expander:                      pulumi.String("string"),
    		ExpendablePodsPriorityCutoff:  pulumi.Int(0),
    		IgnoreDaemonsetsUtilization:   pulumi.Bool(false),
    		MaxGracefulTerminationSec:     pulumi.Int(0),
    		ScaleDownDelayAfterAdd:        pulumi.String("string"),
    		ScaleDownUnneededTime:         pulumi.String("string"),
    		ScaleDownUtilizationThreshold: pulumi.Float64(0),
    	},
    	AutoUpgrade: &scaleway.KubernetesClusterAutoUpgradeArgs{
    		Enable:                     pulumi.Bool(false),
    		MaintenanceWindowDay:       pulumi.String("string"),
    		MaintenanceWindowStartHour: pulumi.Int(0),
    	},
    	Description: pulumi.String("string"),
    	FeatureGates: pulumi.StringArray{
    		pulumi.String("string"),
    	},
    	AdmissionPlugins: pulumi.StringArray{
    		pulumi.String("string"),
    	},
    	OpenIdConnectConfig: &scaleway.KubernetesClusterOpenIdConnectConfigArgs{
    		ClientId:  pulumi.String("string"),
    		IssuerUrl: pulumi.String("string"),
    		GroupsClaims: pulumi.StringArray{
    			pulumi.String("string"),
    		},
    		GroupsPrefix: pulumi.String("string"),
    		RequiredClaims: pulumi.StringArray{
    			pulumi.String("string"),
    		},
    		UsernameClaim:  pulumi.String("string"),
    		UsernamePrefix: pulumi.String("string"),
    	},
    	PrivateNetworkId: pulumi.String("string"),
    	ProjectId:        pulumi.String("string"),
    	Region:           pulumi.String("string"),
    	Tags: pulumi.StringArray{
    		pulumi.String("string"),
    	},
    	Type: pulumi.String("string"),
    	ApiserverCertSans: pulumi.StringArray{
    		pulumi.String("string"),
    	},
    })
    
    var kubernetesClusterResource = new KubernetesCluster("kubernetesClusterResource", KubernetesClusterArgs.builder()
        .cni("string")
        .version("string")
        .deleteAdditionalResources(false)
        .name("string")
        .autoscalerConfig(KubernetesClusterAutoscalerConfigArgs.builder()
            .balanceSimilarNodeGroups(false)
            .disableScaleDown(false)
            .estimator("string")
            .expander("string")
            .expendablePodsPriorityCutoff(0)
            .ignoreDaemonsetsUtilization(false)
            .maxGracefulTerminationSec(0)
            .scaleDownDelayAfterAdd("string")
            .scaleDownUnneededTime("string")
            .scaleDownUtilizationThreshold(0)
            .build())
        .autoUpgrade(KubernetesClusterAutoUpgradeArgs.builder()
            .enable(false)
            .maintenanceWindowDay("string")
            .maintenanceWindowStartHour(0)
            .build())
        .description("string")
        .featureGates("string")
        .admissionPlugins("string")
        .openIdConnectConfig(KubernetesClusterOpenIdConnectConfigArgs.builder()
            .clientId("string")
            .issuerUrl("string")
            .groupsClaims("string")
            .groupsPrefix("string")
            .requiredClaims("string")
            .usernameClaim("string")
            .usernamePrefix("string")
            .build())
        .privateNetworkId("string")
        .projectId("string")
        .region("string")
        .tags("string")
        .type("string")
        .apiserverCertSans("string")
        .build());
    
    kubernetes_cluster_resource = scaleway.KubernetesCluster("kubernetesClusterResource",
        cni="string",
        version="string",
        delete_additional_resources=False,
        name="string",
        autoscaler_config={
            "balance_similar_node_groups": False,
            "disable_scale_down": False,
            "estimator": "string",
            "expander": "string",
            "expendable_pods_priority_cutoff": 0,
            "ignore_daemonsets_utilization": False,
            "max_graceful_termination_sec": 0,
            "scale_down_delay_after_add": "string",
            "scale_down_unneeded_time": "string",
            "scale_down_utilization_threshold": 0,
        },
        auto_upgrade={
            "enable": False,
            "maintenance_window_day": "string",
            "maintenance_window_start_hour": 0,
        },
        description="string",
        feature_gates=["string"],
        admission_plugins=["string"],
        open_id_connect_config={
            "client_id": "string",
            "issuer_url": "string",
            "groups_claims": ["string"],
            "groups_prefix": "string",
            "required_claims": ["string"],
            "username_claim": "string",
            "username_prefix": "string",
        },
        private_network_id="string",
        project_id="string",
        region="string",
        tags=["string"],
        type="string",
        apiserver_cert_sans=["string"])
    
    const kubernetesClusterResource = new scaleway.KubernetesCluster("kubernetesClusterResource", {
        cni: "string",
        version: "string",
        deleteAdditionalResources: false,
        name: "string",
        autoscalerConfig: {
            balanceSimilarNodeGroups: false,
            disableScaleDown: false,
            estimator: "string",
            expander: "string",
            expendablePodsPriorityCutoff: 0,
            ignoreDaemonsetsUtilization: false,
            maxGracefulTerminationSec: 0,
            scaleDownDelayAfterAdd: "string",
            scaleDownUnneededTime: "string",
            scaleDownUtilizationThreshold: 0,
        },
        autoUpgrade: {
            enable: false,
            maintenanceWindowDay: "string",
            maintenanceWindowStartHour: 0,
        },
        description: "string",
        featureGates: ["string"],
        admissionPlugins: ["string"],
        openIdConnectConfig: {
            clientId: "string",
            issuerUrl: "string",
            groupsClaims: ["string"],
            groupsPrefix: "string",
            requiredClaims: ["string"],
            usernameClaim: "string",
            usernamePrefix: "string",
        },
        privateNetworkId: "string",
        projectId: "string",
        region: "string",
        tags: ["string"],
        type: "string",
        apiserverCertSans: ["string"],
    });
    
    type: scaleway:KubernetesCluster
    properties:
        admissionPlugins:
            - string
        apiserverCertSans:
            - string
        autoUpgrade:
            enable: false
            maintenanceWindowDay: string
            maintenanceWindowStartHour: 0
        autoscalerConfig:
            balanceSimilarNodeGroups: false
            disableScaleDown: false
            estimator: string
            expander: string
            expendablePodsPriorityCutoff: 0
            ignoreDaemonsetsUtilization: false
            maxGracefulTerminationSec: 0
            scaleDownDelayAfterAdd: string
            scaleDownUnneededTime: string
            scaleDownUtilizationThreshold: 0
        cni: string
        deleteAdditionalResources: false
        description: string
        featureGates:
            - string
        name: string
        openIdConnectConfig:
            clientId: string
            groupsClaims:
                - string
            groupsPrefix: string
            issuerUrl: string
            requiredClaims:
                - string
            usernameClaim: string
            usernamePrefix: string
        privateNetworkId: string
        projectId: string
        region: string
        tags:
            - string
        type: string
        version: string
    

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

    Cni string

    The Container Network Interface (CNI) for the Kubernetes cluster.

    Important: Updates to this field will recreate a new resource.

    DeleteAdditionalResources bool

    Delete additional resources like block volumes, load-balancers and the cluster's private network (if empty) that were created in Kubernetes on cluster deletion.

    Important: Setting this field to true means that you will lose all your cluster data and network configuration when you delete your cluster. If you prefer keeping it, you should instead set it as false.

    Version string
    The version of the Kubernetes cluster.
    AdmissionPlugins List<string>
    The list of admission plugins to enable on the cluster.
    ApiserverCertSans List<string>
    Additional Subject Alternative Names for the Kubernetes API server certificate
    AutoUpgrade Pulumiverse.Scaleway.Inputs.KubernetesClusterAutoUpgrade
    The auto upgrade configuration.
    AutoscalerConfig Pulumiverse.Scaleway.Inputs.KubernetesClusterAutoscalerConfig
    The configuration options for the Kubernetes cluster autoscaler.
    Description string
    A description for the Kubernetes cluster.
    FeatureGates List<string>
    The list of feature gates to enable on the cluster.
    Name string
    The name for the Kubernetes cluster.
    OpenIdConnectConfig Pulumiverse.Scaleway.Inputs.KubernetesClusterOpenIdConnectConfig
    The OpenID Connect configuration of the cluster
    PrivateNetworkId string

    The ID of the private network of the cluster.

    Important: Changes to this field will recreate a new resource.

    Important: Private Networks are now mandatory with Kapsule Clusters. If you have a legacy cluster (no private_network_id set), you can still set it now. In this case it will not destroy and recreate your cluster but migrate it to the Private Network.

    ProjectId string
    project_id) The ID of the project the cluster is associated with.
    Region string
    region) The region in which the cluster should be created.
    Tags List<string>
    The tags associated with the Kubernetes cluster.
    Type string

    The type of Kubernetes cluster. Possible values are:

    • for mutualized clusters: kapsule or multicloud

    • for dedicated Kapsule clusters: kapsule-dedicated-4, kapsule-dedicated-8 or kapsule-dedicated-16.

    • for dedicated Kosmos clusters: multicloud-dedicated-4, multicloud-dedicated-8 or multicloud-dedicated-16.

    Cni string

    The Container Network Interface (CNI) for the Kubernetes cluster.

    Important: Updates to this field will recreate a new resource.

    DeleteAdditionalResources bool

    Delete additional resources like block volumes, load-balancers and the cluster's private network (if empty) that were created in Kubernetes on cluster deletion.

    Important: Setting this field to true means that you will lose all your cluster data and network configuration when you delete your cluster. If you prefer keeping it, you should instead set it as false.

    Version string
    The version of the Kubernetes cluster.
    AdmissionPlugins []string
    The list of admission plugins to enable on the cluster.
    ApiserverCertSans []string
    Additional Subject Alternative Names for the Kubernetes API server certificate
    AutoUpgrade KubernetesClusterAutoUpgradeArgs
    The auto upgrade configuration.
    AutoscalerConfig KubernetesClusterAutoscalerConfigArgs
    The configuration options for the Kubernetes cluster autoscaler.
    Description string
    A description for the Kubernetes cluster.
    FeatureGates []string
    The list of feature gates to enable on the cluster.
    Name string
    The name for the Kubernetes cluster.
    OpenIdConnectConfig KubernetesClusterOpenIdConnectConfigArgs
    The OpenID Connect configuration of the cluster
    PrivateNetworkId string

    The ID of the private network of the cluster.

    Important: Changes to this field will recreate a new resource.

    Important: Private Networks are now mandatory with Kapsule Clusters. If you have a legacy cluster (no private_network_id set), you can still set it now. In this case it will not destroy and recreate your cluster but migrate it to the Private Network.

    ProjectId string
    project_id) The ID of the project the cluster is associated with.
    Region string
    region) The region in which the cluster should be created.
    Tags []string
    The tags associated with the Kubernetes cluster.
    Type string

    The type of Kubernetes cluster. Possible values are:

    • for mutualized clusters: kapsule or multicloud

    • for dedicated Kapsule clusters: kapsule-dedicated-4, kapsule-dedicated-8 or kapsule-dedicated-16.

    • for dedicated Kosmos clusters: multicloud-dedicated-4, multicloud-dedicated-8 or multicloud-dedicated-16.

    cni String

    The Container Network Interface (CNI) for the Kubernetes cluster.

    Important: Updates to this field will recreate a new resource.

    deleteAdditionalResources Boolean

    Delete additional resources like block volumes, load-balancers and the cluster's private network (if empty) that were created in Kubernetes on cluster deletion.

    Important: Setting this field to true means that you will lose all your cluster data and network configuration when you delete your cluster. If you prefer keeping it, you should instead set it as false.

    version String
    The version of the Kubernetes cluster.
    admissionPlugins List<String>
    The list of admission plugins to enable on the cluster.
    apiserverCertSans List<String>
    Additional Subject Alternative Names for the Kubernetes API server certificate
    autoUpgrade KubernetesClusterAutoUpgrade
    The auto upgrade configuration.
    autoscalerConfig KubernetesClusterAutoscalerConfig
    The configuration options for the Kubernetes cluster autoscaler.
    description String
    A description for the Kubernetes cluster.
    featureGates List<String>
    The list of feature gates to enable on the cluster.
    name String
    The name for the Kubernetes cluster.
    openIdConnectConfig KubernetesClusterOpenIdConnectConfig
    The OpenID Connect configuration of the cluster
    privateNetworkId String

    The ID of the private network of the cluster.

    Important: Changes to this field will recreate a new resource.

    Important: Private Networks are now mandatory with Kapsule Clusters. If you have a legacy cluster (no private_network_id set), you can still set it now. In this case it will not destroy and recreate your cluster but migrate it to the Private Network.

    projectId String
    project_id) The ID of the project the cluster is associated with.
    region String
    region) The region in which the cluster should be created.
    tags List<String>
    The tags associated with the Kubernetes cluster.
    type String

    The type of Kubernetes cluster. Possible values are:

    • for mutualized clusters: kapsule or multicloud

    • for dedicated Kapsule clusters: kapsule-dedicated-4, kapsule-dedicated-8 or kapsule-dedicated-16.

    • for dedicated Kosmos clusters: multicloud-dedicated-4, multicloud-dedicated-8 or multicloud-dedicated-16.

    cni string

    The Container Network Interface (CNI) for the Kubernetes cluster.

    Important: Updates to this field will recreate a new resource.

    deleteAdditionalResources boolean

    Delete additional resources like block volumes, load-balancers and the cluster's private network (if empty) that were created in Kubernetes on cluster deletion.

    Important: Setting this field to true means that you will lose all your cluster data and network configuration when you delete your cluster. If you prefer keeping it, you should instead set it as false.

    version string
    The version of the Kubernetes cluster.
    admissionPlugins string[]
    The list of admission plugins to enable on the cluster.
    apiserverCertSans string[]
    Additional Subject Alternative Names for the Kubernetes API server certificate
    autoUpgrade KubernetesClusterAutoUpgrade
    The auto upgrade configuration.
    autoscalerConfig KubernetesClusterAutoscalerConfig
    The configuration options for the Kubernetes cluster autoscaler.
    description string
    A description for the Kubernetes cluster.
    featureGates string[]
    The list of feature gates to enable on the cluster.
    name string
    The name for the Kubernetes cluster.
    openIdConnectConfig KubernetesClusterOpenIdConnectConfig
    The OpenID Connect configuration of the cluster
    privateNetworkId string

    The ID of the private network of the cluster.

    Important: Changes to this field will recreate a new resource.

    Important: Private Networks are now mandatory with Kapsule Clusters. If you have a legacy cluster (no private_network_id set), you can still set it now. In this case it will not destroy and recreate your cluster but migrate it to the Private Network.

    projectId string
    project_id) The ID of the project the cluster is associated with.
    region string
    region) The region in which the cluster should be created.
    tags string[]
    The tags associated with the Kubernetes cluster.
    type string

    The type of Kubernetes cluster. Possible values are:

    • for mutualized clusters: kapsule or multicloud

    • for dedicated Kapsule clusters: kapsule-dedicated-4, kapsule-dedicated-8 or kapsule-dedicated-16.

    • for dedicated Kosmos clusters: multicloud-dedicated-4, multicloud-dedicated-8 or multicloud-dedicated-16.

    cni str

    The Container Network Interface (CNI) for the Kubernetes cluster.

    Important: Updates to this field will recreate a new resource.

    delete_additional_resources bool

    Delete additional resources like block volumes, load-balancers and the cluster's private network (if empty) that were created in Kubernetes on cluster deletion.

    Important: Setting this field to true means that you will lose all your cluster data and network configuration when you delete your cluster. If you prefer keeping it, you should instead set it as false.

    version str
    The version of the Kubernetes cluster.
    admission_plugins Sequence[str]
    The list of admission plugins to enable on the cluster.
    apiserver_cert_sans Sequence[str]
    Additional Subject Alternative Names for the Kubernetes API server certificate
    auto_upgrade KubernetesClusterAutoUpgradeArgs
    The auto upgrade configuration.
    autoscaler_config KubernetesClusterAutoscalerConfigArgs
    The configuration options for the Kubernetes cluster autoscaler.
    description str
    A description for the Kubernetes cluster.
    feature_gates Sequence[str]
    The list of feature gates to enable on the cluster.
    name str
    The name for the Kubernetes cluster.
    open_id_connect_config KubernetesClusterOpenIdConnectConfigArgs
    The OpenID Connect configuration of the cluster
    private_network_id str

    The ID of the private network of the cluster.

    Important: Changes to this field will recreate a new resource.

    Important: Private Networks are now mandatory with Kapsule Clusters. If you have a legacy cluster (no private_network_id set), you can still set it now. In this case it will not destroy and recreate your cluster but migrate it to the Private Network.

    project_id str
    project_id) The ID of the project the cluster is associated with.
    region str
    region) The region in which the cluster should be created.
    tags Sequence[str]
    The tags associated with the Kubernetes cluster.
    type str

    The type of Kubernetes cluster. Possible values are:

    • for mutualized clusters: kapsule or multicloud

    • for dedicated Kapsule clusters: kapsule-dedicated-4, kapsule-dedicated-8 or kapsule-dedicated-16.

    • for dedicated Kosmos clusters: multicloud-dedicated-4, multicloud-dedicated-8 or multicloud-dedicated-16.

    cni String

    The Container Network Interface (CNI) for the Kubernetes cluster.

    Important: Updates to this field will recreate a new resource.

    deleteAdditionalResources Boolean

    Delete additional resources like block volumes, load-balancers and the cluster's private network (if empty) that were created in Kubernetes on cluster deletion.

    Important: Setting this field to true means that you will lose all your cluster data and network configuration when you delete your cluster. If you prefer keeping it, you should instead set it as false.

    version String
    The version of the Kubernetes cluster.
    admissionPlugins List<String>
    The list of admission plugins to enable on the cluster.
    apiserverCertSans List<String>
    Additional Subject Alternative Names for the Kubernetes API server certificate
    autoUpgrade Property Map
    The auto upgrade configuration.
    autoscalerConfig Property Map
    The configuration options for the Kubernetes cluster autoscaler.
    description String
    A description for the Kubernetes cluster.
    featureGates List<String>
    The list of feature gates to enable on the cluster.
    name String
    The name for the Kubernetes cluster.
    openIdConnectConfig Property Map
    The OpenID Connect configuration of the cluster
    privateNetworkId String

    The ID of the private network of the cluster.

    Important: Changes to this field will recreate a new resource.

    Important: Private Networks are now mandatory with Kapsule Clusters. If you have a legacy cluster (no private_network_id set), you can still set it now. In this case it will not destroy and recreate your cluster but migrate it to the Private Network.

    projectId String
    project_id) The ID of the project the cluster is associated with.
    region String
    region) The region in which the cluster should be created.
    tags List<String>
    The tags associated with the Kubernetes cluster.
    type String

    The type of Kubernetes cluster. Possible values are:

    • for mutualized clusters: kapsule or multicloud

    • for dedicated Kapsule clusters: kapsule-dedicated-4, kapsule-dedicated-8 or kapsule-dedicated-16.

    • for dedicated Kosmos clusters: multicloud-dedicated-4, multicloud-dedicated-8 or multicloud-dedicated-16.

    Outputs

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

    ApiserverUrl string
    The URL of the Kubernetes API server.
    CreatedAt string
    The creation date of the cluster.
    Id string
    The provider-assigned unique ID for this managed resource.
    Kubeconfigs List<Pulumiverse.Scaleway.Outputs.KubernetesClusterKubeconfig>
    The kubeconfig configuration file of the Kubernetes cluster
    OrganizationId string
    The organization ID the cluster is associated with.
    Status string
    The status of the Kubernetes cluster.
    UpdatedAt string
    The last update date of the cluster.
    UpgradeAvailable bool
    Set to true if a newer Kubernetes version is available.
    WildcardDns string
    The DNS wildcard that points to all ready nodes.
    ApiserverUrl string
    The URL of the Kubernetes API server.
    CreatedAt string
    The creation date of the cluster.
    Id string
    The provider-assigned unique ID for this managed resource.
    Kubeconfigs []KubernetesClusterKubeconfig
    The kubeconfig configuration file of the Kubernetes cluster
    OrganizationId string
    The organization ID the cluster is associated with.
    Status string
    The status of the Kubernetes cluster.
    UpdatedAt string
    The last update date of the cluster.
    UpgradeAvailable bool
    Set to true if a newer Kubernetes version is available.
    WildcardDns string
    The DNS wildcard that points to all ready nodes.
    apiserverUrl String
    The URL of the Kubernetes API server.
    createdAt String
    The creation date of the cluster.
    id String
    The provider-assigned unique ID for this managed resource.
    kubeconfigs List<KubernetesClusterKubeconfig>
    The kubeconfig configuration file of the Kubernetes cluster
    organizationId String
    The organization ID the cluster is associated with.
    status String
    The status of the Kubernetes cluster.
    updatedAt String
    The last update date of the cluster.
    upgradeAvailable Boolean
    Set to true if a newer Kubernetes version is available.
    wildcardDns String
    The DNS wildcard that points to all ready nodes.
    apiserverUrl string
    The URL of the Kubernetes API server.
    createdAt string
    The creation date of the cluster.
    id string
    The provider-assigned unique ID for this managed resource.
    kubeconfigs KubernetesClusterKubeconfig[]
    The kubeconfig configuration file of the Kubernetes cluster
    organizationId string
    The organization ID the cluster is associated with.
    status string
    The status of the Kubernetes cluster.
    updatedAt string
    The last update date of the cluster.
    upgradeAvailable boolean
    Set to true if a newer Kubernetes version is available.
    wildcardDns string
    The DNS wildcard that points to all ready nodes.
    apiserver_url str
    The URL of the Kubernetes API server.
    created_at str
    The creation date of the cluster.
    id str
    The provider-assigned unique ID for this managed resource.
    kubeconfigs Sequence[KubernetesClusterKubeconfig]
    The kubeconfig configuration file of the Kubernetes cluster
    organization_id str
    The organization ID the cluster is associated with.
    status str
    The status of the Kubernetes cluster.
    updated_at str
    The last update date of the cluster.
    upgrade_available bool
    Set to true if a newer Kubernetes version is available.
    wildcard_dns str
    The DNS wildcard that points to all ready nodes.
    apiserverUrl String
    The URL of the Kubernetes API server.
    createdAt String
    The creation date of the cluster.
    id String
    The provider-assigned unique ID for this managed resource.
    kubeconfigs List<Property Map>
    The kubeconfig configuration file of the Kubernetes cluster
    organizationId String
    The organization ID the cluster is associated with.
    status String
    The status of the Kubernetes cluster.
    updatedAt String
    The last update date of the cluster.
    upgradeAvailable Boolean
    Set to true if a newer Kubernetes version is available.
    wildcardDns String
    The DNS wildcard that points to all ready nodes.

    Look up Existing KubernetesCluster Resource

    Get an existing KubernetesCluster 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?: KubernetesClusterState, opts?: CustomResourceOptions): KubernetesCluster
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            admission_plugins: Optional[Sequence[str]] = None,
            apiserver_cert_sans: Optional[Sequence[str]] = None,
            apiserver_url: Optional[str] = None,
            auto_upgrade: Optional[KubernetesClusterAutoUpgradeArgs] = None,
            autoscaler_config: Optional[KubernetesClusterAutoscalerConfigArgs] = None,
            cni: Optional[str] = None,
            created_at: Optional[str] = None,
            delete_additional_resources: Optional[bool] = None,
            description: Optional[str] = None,
            feature_gates: Optional[Sequence[str]] = None,
            kubeconfigs: Optional[Sequence[KubernetesClusterKubeconfigArgs]] = None,
            name: Optional[str] = None,
            open_id_connect_config: Optional[KubernetesClusterOpenIdConnectConfigArgs] = None,
            organization_id: Optional[str] = None,
            private_network_id: Optional[str] = None,
            project_id: Optional[str] = None,
            region: Optional[str] = None,
            status: Optional[str] = None,
            tags: Optional[Sequence[str]] = None,
            type: Optional[str] = None,
            updated_at: Optional[str] = None,
            upgrade_available: Optional[bool] = None,
            version: Optional[str] = None,
            wildcard_dns: Optional[str] = None) -> KubernetesCluster
    func GetKubernetesCluster(ctx *Context, name string, id IDInput, state *KubernetesClusterState, opts ...ResourceOption) (*KubernetesCluster, error)
    public static KubernetesCluster Get(string name, Input<string> id, KubernetesClusterState? state, CustomResourceOptions? opts = null)
    public static KubernetesCluster get(String name, Output<String> id, KubernetesClusterState state, CustomResourceOptions options)
    Resource lookup is not supported in YAML
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    resource_name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    The following state arguments are supported:
    AdmissionPlugins List<string>
    The list of admission plugins to enable on the cluster.
    ApiserverCertSans List<string>
    Additional Subject Alternative Names for the Kubernetes API server certificate
    ApiserverUrl string
    The URL of the Kubernetes API server.
    AutoUpgrade Pulumiverse.Scaleway.Inputs.KubernetesClusterAutoUpgrade
    The auto upgrade configuration.
    AutoscalerConfig Pulumiverse.Scaleway.Inputs.KubernetesClusterAutoscalerConfig
    The configuration options for the Kubernetes cluster autoscaler.
    Cni string

    The Container Network Interface (CNI) for the Kubernetes cluster.

    Important: Updates to this field will recreate a new resource.

    CreatedAt string
    The creation date of the cluster.
    DeleteAdditionalResources bool

    Delete additional resources like block volumes, load-balancers and the cluster's private network (if empty) that were created in Kubernetes on cluster deletion.

    Important: Setting this field to true means that you will lose all your cluster data and network configuration when you delete your cluster. If you prefer keeping it, you should instead set it as false.

    Description string
    A description for the Kubernetes cluster.
    FeatureGates List<string>
    The list of feature gates to enable on the cluster.
    Kubeconfigs List<Pulumiverse.Scaleway.Inputs.KubernetesClusterKubeconfig>
    The kubeconfig configuration file of the Kubernetes cluster
    Name string
    The name for the Kubernetes cluster.
    OpenIdConnectConfig Pulumiverse.Scaleway.Inputs.KubernetesClusterOpenIdConnectConfig
    The OpenID Connect configuration of the cluster
    OrganizationId string
    The organization ID the cluster is associated with.
    PrivateNetworkId string

    The ID of the private network of the cluster.

    Important: Changes to this field will recreate a new resource.

    Important: Private Networks are now mandatory with Kapsule Clusters. If you have a legacy cluster (no private_network_id set), you can still set it now. In this case it will not destroy and recreate your cluster but migrate it to the Private Network.

    ProjectId string
    project_id) The ID of the project the cluster is associated with.
    Region string
    region) The region in which the cluster should be created.
    Status string
    The status of the Kubernetes cluster.
    Tags List<string>
    The tags associated with the Kubernetes cluster.
    Type string

    The type of Kubernetes cluster. Possible values are:

    • for mutualized clusters: kapsule or multicloud

    • for dedicated Kapsule clusters: kapsule-dedicated-4, kapsule-dedicated-8 or kapsule-dedicated-16.

    • for dedicated Kosmos clusters: multicloud-dedicated-4, multicloud-dedicated-8 or multicloud-dedicated-16.

    UpdatedAt string
    The last update date of the cluster.
    UpgradeAvailable bool
    Set to true if a newer Kubernetes version is available.
    Version string
    The version of the Kubernetes cluster.
    WildcardDns string
    The DNS wildcard that points to all ready nodes.
    AdmissionPlugins []string
    The list of admission plugins to enable on the cluster.
    ApiserverCertSans []string
    Additional Subject Alternative Names for the Kubernetes API server certificate
    ApiserverUrl string
    The URL of the Kubernetes API server.
    AutoUpgrade KubernetesClusterAutoUpgradeArgs
    The auto upgrade configuration.
    AutoscalerConfig KubernetesClusterAutoscalerConfigArgs
    The configuration options for the Kubernetes cluster autoscaler.
    Cni string

    The Container Network Interface (CNI) for the Kubernetes cluster.

    Important: Updates to this field will recreate a new resource.

    CreatedAt string
    The creation date of the cluster.
    DeleteAdditionalResources bool

    Delete additional resources like block volumes, load-balancers and the cluster's private network (if empty) that were created in Kubernetes on cluster deletion.

    Important: Setting this field to true means that you will lose all your cluster data and network configuration when you delete your cluster. If you prefer keeping it, you should instead set it as false.

    Description string
    A description for the Kubernetes cluster.
    FeatureGates []string
    The list of feature gates to enable on the cluster.
    Kubeconfigs []KubernetesClusterKubeconfigArgs
    The kubeconfig configuration file of the Kubernetes cluster
    Name string
    The name for the Kubernetes cluster.
    OpenIdConnectConfig KubernetesClusterOpenIdConnectConfigArgs
    The OpenID Connect configuration of the cluster
    OrganizationId string
    The organization ID the cluster is associated with.
    PrivateNetworkId string

    The ID of the private network of the cluster.

    Important: Changes to this field will recreate a new resource.

    Important: Private Networks are now mandatory with Kapsule Clusters. If you have a legacy cluster (no private_network_id set), you can still set it now. In this case it will not destroy and recreate your cluster but migrate it to the Private Network.

    ProjectId string
    project_id) The ID of the project the cluster is associated with.
    Region string
    region) The region in which the cluster should be created.
    Status string
    The status of the Kubernetes cluster.
    Tags []string
    The tags associated with the Kubernetes cluster.
    Type string

    The type of Kubernetes cluster. Possible values are:

    • for mutualized clusters: kapsule or multicloud

    • for dedicated Kapsule clusters: kapsule-dedicated-4, kapsule-dedicated-8 or kapsule-dedicated-16.

    • for dedicated Kosmos clusters: multicloud-dedicated-4, multicloud-dedicated-8 or multicloud-dedicated-16.

    UpdatedAt string
    The last update date of the cluster.
    UpgradeAvailable bool
    Set to true if a newer Kubernetes version is available.
    Version string
    The version of the Kubernetes cluster.
    WildcardDns string
    The DNS wildcard that points to all ready nodes.
    admissionPlugins List<String>
    The list of admission plugins to enable on the cluster.
    apiserverCertSans List<String>
    Additional Subject Alternative Names for the Kubernetes API server certificate
    apiserverUrl String
    The URL of the Kubernetes API server.
    autoUpgrade KubernetesClusterAutoUpgrade
    The auto upgrade configuration.
    autoscalerConfig KubernetesClusterAutoscalerConfig
    The configuration options for the Kubernetes cluster autoscaler.
    cni String

    The Container Network Interface (CNI) for the Kubernetes cluster.

    Important: Updates to this field will recreate a new resource.

    createdAt String
    The creation date of the cluster.
    deleteAdditionalResources Boolean

    Delete additional resources like block volumes, load-balancers and the cluster's private network (if empty) that were created in Kubernetes on cluster deletion.

    Important: Setting this field to true means that you will lose all your cluster data and network configuration when you delete your cluster. If you prefer keeping it, you should instead set it as false.

    description String
    A description for the Kubernetes cluster.
    featureGates List<String>
    The list of feature gates to enable on the cluster.
    kubeconfigs List<KubernetesClusterKubeconfig>
    The kubeconfig configuration file of the Kubernetes cluster
    name String
    The name for the Kubernetes cluster.
    openIdConnectConfig KubernetesClusterOpenIdConnectConfig
    The OpenID Connect configuration of the cluster
    organizationId String
    The organization ID the cluster is associated with.
    privateNetworkId String

    The ID of the private network of the cluster.

    Important: Changes to this field will recreate a new resource.

    Important: Private Networks are now mandatory with Kapsule Clusters. If you have a legacy cluster (no private_network_id set), you can still set it now. In this case it will not destroy and recreate your cluster but migrate it to the Private Network.

    projectId String
    project_id) The ID of the project the cluster is associated with.
    region String
    region) The region in which the cluster should be created.
    status String
    The status of the Kubernetes cluster.
    tags List<String>
    The tags associated with the Kubernetes cluster.
    type String

    The type of Kubernetes cluster. Possible values are:

    • for mutualized clusters: kapsule or multicloud

    • for dedicated Kapsule clusters: kapsule-dedicated-4, kapsule-dedicated-8 or kapsule-dedicated-16.

    • for dedicated Kosmos clusters: multicloud-dedicated-4, multicloud-dedicated-8 or multicloud-dedicated-16.

    updatedAt String
    The last update date of the cluster.
    upgradeAvailable Boolean
    Set to true if a newer Kubernetes version is available.
    version String
    The version of the Kubernetes cluster.
    wildcardDns String
    The DNS wildcard that points to all ready nodes.
    admissionPlugins string[]
    The list of admission plugins to enable on the cluster.
    apiserverCertSans string[]
    Additional Subject Alternative Names for the Kubernetes API server certificate
    apiserverUrl string
    The URL of the Kubernetes API server.
    autoUpgrade KubernetesClusterAutoUpgrade
    The auto upgrade configuration.
    autoscalerConfig KubernetesClusterAutoscalerConfig
    The configuration options for the Kubernetes cluster autoscaler.
    cni string

    The Container Network Interface (CNI) for the Kubernetes cluster.

    Important: Updates to this field will recreate a new resource.

    createdAt string
    The creation date of the cluster.
    deleteAdditionalResources boolean

    Delete additional resources like block volumes, load-balancers and the cluster's private network (if empty) that were created in Kubernetes on cluster deletion.

    Important: Setting this field to true means that you will lose all your cluster data and network configuration when you delete your cluster. If you prefer keeping it, you should instead set it as false.

    description string
    A description for the Kubernetes cluster.
    featureGates string[]
    The list of feature gates to enable on the cluster.
    kubeconfigs KubernetesClusterKubeconfig[]
    The kubeconfig configuration file of the Kubernetes cluster
    name string
    The name for the Kubernetes cluster.
    openIdConnectConfig KubernetesClusterOpenIdConnectConfig
    The OpenID Connect configuration of the cluster
    organizationId string
    The organization ID the cluster is associated with.
    privateNetworkId string

    The ID of the private network of the cluster.

    Important: Changes to this field will recreate a new resource.

    Important: Private Networks are now mandatory with Kapsule Clusters. If you have a legacy cluster (no private_network_id set), you can still set it now. In this case it will not destroy and recreate your cluster but migrate it to the Private Network.

    projectId string
    project_id) The ID of the project the cluster is associated with.
    region string
    region) The region in which the cluster should be created.
    status string
    The status of the Kubernetes cluster.
    tags string[]
    The tags associated with the Kubernetes cluster.
    type string

    The type of Kubernetes cluster. Possible values are:

    • for mutualized clusters: kapsule or multicloud

    • for dedicated Kapsule clusters: kapsule-dedicated-4, kapsule-dedicated-8 or kapsule-dedicated-16.

    • for dedicated Kosmos clusters: multicloud-dedicated-4, multicloud-dedicated-8 or multicloud-dedicated-16.

    updatedAt string
    The last update date of the cluster.
    upgradeAvailable boolean
    Set to true if a newer Kubernetes version is available.
    version string
    The version of the Kubernetes cluster.
    wildcardDns string
    The DNS wildcard that points to all ready nodes.
    admission_plugins Sequence[str]
    The list of admission plugins to enable on the cluster.
    apiserver_cert_sans Sequence[str]
    Additional Subject Alternative Names for the Kubernetes API server certificate
    apiserver_url str
    The URL of the Kubernetes API server.
    auto_upgrade KubernetesClusterAutoUpgradeArgs
    The auto upgrade configuration.
    autoscaler_config KubernetesClusterAutoscalerConfigArgs
    The configuration options for the Kubernetes cluster autoscaler.
    cni str

    The Container Network Interface (CNI) for the Kubernetes cluster.

    Important: Updates to this field will recreate a new resource.

    created_at str
    The creation date of the cluster.
    delete_additional_resources bool

    Delete additional resources like block volumes, load-balancers and the cluster's private network (if empty) that were created in Kubernetes on cluster deletion.

    Important: Setting this field to true means that you will lose all your cluster data and network configuration when you delete your cluster. If you prefer keeping it, you should instead set it as false.

    description str
    A description for the Kubernetes cluster.
    feature_gates Sequence[str]
    The list of feature gates to enable on the cluster.
    kubeconfigs Sequence[KubernetesClusterKubeconfigArgs]
    The kubeconfig configuration file of the Kubernetes cluster
    name str
    The name for the Kubernetes cluster.
    open_id_connect_config KubernetesClusterOpenIdConnectConfigArgs
    The OpenID Connect configuration of the cluster
    organization_id str
    The organization ID the cluster is associated with.
    private_network_id str

    The ID of the private network of the cluster.

    Important: Changes to this field will recreate a new resource.

    Important: Private Networks are now mandatory with Kapsule Clusters. If you have a legacy cluster (no private_network_id set), you can still set it now. In this case it will not destroy and recreate your cluster but migrate it to the Private Network.

    project_id str
    project_id) The ID of the project the cluster is associated with.
    region str
    region) The region in which the cluster should be created.
    status str
    The status of the Kubernetes cluster.
    tags Sequence[str]
    The tags associated with the Kubernetes cluster.
    type str

    The type of Kubernetes cluster. Possible values are:

    • for mutualized clusters: kapsule or multicloud

    • for dedicated Kapsule clusters: kapsule-dedicated-4, kapsule-dedicated-8 or kapsule-dedicated-16.

    • for dedicated Kosmos clusters: multicloud-dedicated-4, multicloud-dedicated-8 or multicloud-dedicated-16.

    updated_at str
    The last update date of the cluster.
    upgrade_available bool
    Set to true if a newer Kubernetes version is available.
    version str
    The version of the Kubernetes cluster.
    wildcard_dns str
    The DNS wildcard that points to all ready nodes.
    admissionPlugins List<String>
    The list of admission plugins to enable on the cluster.
    apiserverCertSans List<String>
    Additional Subject Alternative Names for the Kubernetes API server certificate
    apiserverUrl String
    The URL of the Kubernetes API server.
    autoUpgrade Property Map
    The auto upgrade configuration.
    autoscalerConfig Property Map
    The configuration options for the Kubernetes cluster autoscaler.
    cni String

    The Container Network Interface (CNI) for the Kubernetes cluster.

    Important: Updates to this field will recreate a new resource.

    createdAt String
    The creation date of the cluster.
    deleteAdditionalResources Boolean

    Delete additional resources like block volumes, load-balancers and the cluster's private network (if empty) that were created in Kubernetes on cluster deletion.

    Important: Setting this field to true means that you will lose all your cluster data and network configuration when you delete your cluster. If you prefer keeping it, you should instead set it as false.

    description String
    A description for the Kubernetes cluster.
    featureGates List<String>
    The list of feature gates to enable on the cluster.
    kubeconfigs List<Property Map>
    The kubeconfig configuration file of the Kubernetes cluster
    name String
    The name for the Kubernetes cluster.
    openIdConnectConfig Property Map
    The OpenID Connect configuration of the cluster
    organizationId String
    The organization ID the cluster is associated with.
    privateNetworkId String

    The ID of the private network of the cluster.

    Important: Changes to this field will recreate a new resource.

    Important: Private Networks are now mandatory with Kapsule Clusters. If you have a legacy cluster (no private_network_id set), you can still set it now. In this case it will not destroy and recreate your cluster but migrate it to the Private Network.

    projectId String
    project_id) The ID of the project the cluster is associated with.
    region String
    region) The region in which the cluster should be created.
    status String
    The status of the Kubernetes cluster.
    tags List<String>
    The tags associated with the Kubernetes cluster.
    type String

    The type of Kubernetes cluster. Possible values are:

    • for mutualized clusters: kapsule or multicloud

    • for dedicated Kapsule clusters: kapsule-dedicated-4, kapsule-dedicated-8 or kapsule-dedicated-16.

    • for dedicated Kosmos clusters: multicloud-dedicated-4, multicloud-dedicated-8 or multicloud-dedicated-16.

    updatedAt String
    The last update date of the cluster.
    upgradeAvailable Boolean
    Set to true if a newer Kubernetes version is available.
    version String
    The version of the Kubernetes cluster.
    wildcardDns String
    The DNS wildcard that points to all ready nodes.

    Supporting Types

    KubernetesClusterAutoUpgrade, KubernetesClusterAutoUpgradeArgs

    Enable bool

    Set to true to enable Kubernetes patch version auto upgrades.

    Important: When enabling auto upgrades, the version field take a minor version like x.y (ie 1.18).

    MaintenanceWindowDay string
    The day of the auto upgrade maintenance window (monday to sunday, or any).
    MaintenanceWindowStartHour int
    The start hour (UTC) of the 2-hour auto upgrade maintenance window (0 to 23).
    Enable bool

    Set to true to enable Kubernetes patch version auto upgrades.

    Important: When enabling auto upgrades, the version field take a minor version like x.y (ie 1.18).

    MaintenanceWindowDay string
    The day of the auto upgrade maintenance window (monday to sunday, or any).
    MaintenanceWindowStartHour int
    The start hour (UTC) of the 2-hour auto upgrade maintenance window (0 to 23).
    enable Boolean

    Set to true to enable Kubernetes patch version auto upgrades.

    Important: When enabling auto upgrades, the version field take a minor version like x.y (ie 1.18).

    maintenanceWindowDay String
    The day of the auto upgrade maintenance window (monday to sunday, or any).
    maintenanceWindowStartHour Integer
    The start hour (UTC) of the 2-hour auto upgrade maintenance window (0 to 23).
    enable boolean

    Set to true to enable Kubernetes patch version auto upgrades.

    Important: When enabling auto upgrades, the version field take a minor version like x.y (ie 1.18).

    maintenanceWindowDay string
    The day of the auto upgrade maintenance window (monday to sunday, or any).
    maintenanceWindowStartHour number
    The start hour (UTC) of the 2-hour auto upgrade maintenance window (0 to 23).
    enable bool

    Set to true to enable Kubernetes patch version auto upgrades.

    Important: When enabling auto upgrades, the version field take a minor version like x.y (ie 1.18).

    maintenance_window_day str
    The day of the auto upgrade maintenance window (monday to sunday, or any).
    maintenance_window_start_hour int
    The start hour (UTC) of the 2-hour auto upgrade maintenance window (0 to 23).
    enable Boolean

    Set to true to enable Kubernetes patch version auto upgrades.

    Important: When enabling auto upgrades, the version field take a minor version like x.y (ie 1.18).

    maintenanceWindowDay String
    The day of the auto upgrade maintenance window (monday to sunday, or any).
    maintenanceWindowStartHour Number
    The start hour (UTC) of the 2-hour auto upgrade maintenance window (0 to 23).

    KubernetesClusterAutoscalerConfig, KubernetesClusterAutoscalerConfigArgs

    BalanceSimilarNodeGroups bool
    Detect similar node groups and balance the number of nodes between them.
    DisableScaleDown bool
    Disables the scale down feature of the autoscaler.
    Estimator string
    Type of resource estimator to be used in scale up.
    Expander string
    Type of node group expander to be used in scale up.
    ExpendablePodsPriorityCutoff int
    Pods with priority below cutoff will be expendable. They can be killed without any consideration during scale down and they don't cause scale up. Pods with null priority (PodPriority disabled) are non expendable.
    IgnoreDaemonsetsUtilization bool
    Ignore DaemonSet pods when calculating resource utilization for scaling down.
    MaxGracefulTerminationSec int
    Maximum number of seconds the cluster autoscaler waits for pod termination when trying to scale down a node
    ScaleDownDelayAfterAdd string
    How long after scale up that scale down evaluation resumes.
    ScaleDownUnneededTime string
    How long a node should be unneeded before it is eligible for scale down.
    ScaleDownUtilizationThreshold double
    Node utilization level, defined as sum of requested resources divided by capacity, below which a node can be considered for scale down
    BalanceSimilarNodeGroups bool
    Detect similar node groups and balance the number of nodes between them.
    DisableScaleDown bool
    Disables the scale down feature of the autoscaler.
    Estimator string
    Type of resource estimator to be used in scale up.
    Expander string
    Type of node group expander to be used in scale up.
    ExpendablePodsPriorityCutoff int
    Pods with priority below cutoff will be expendable. They can be killed without any consideration during scale down and they don't cause scale up. Pods with null priority (PodPriority disabled) are non expendable.
    IgnoreDaemonsetsUtilization bool
    Ignore DaemonSet pods when calculating resource utilization for scaling down.
    MaxGracefulTerminationSec int
    Maximum number of seconds the cluster autoscaler waits for pod termination when trying to scale down a node
    ScaleDownDelayAfterAdd string
    How long after scale up that scale down evaluation resumes.
    ScaleDownUnneededTime string
    How long a node should be unneeded before it is eligible for scale down.
    ScaleDownUtilizationThreshold float64
    Node utilization level, defined as sum of requested resources divided by capacity, below which a node can be considered for scale down
    balanceSimilarNodeGroups Boolean
    Detect similar node groups and balance the number of nodes between them.
    disableScaleDown Boolean
    Disables the scale down feature of the autoscaler.
    estimator String
    Type of resource estimator to be used in scale up.
    expander String
    Type of node group expander to be used in scale up.
    expendablePodsPriorityCutoff Integer
    Pods with priority below cutoff will be expendable. They can be killed without any consideration during scale down and they don't cause scale up. Pods with null priority (PodPriority disabled) are non expendable.
    ignoreDaemonsetsUtilization Boolean
    Ignore DaemonSet pods when calculating resource utilization for scaling down.
    maxGracefulTerminationSec Integer
    Maximum number of seconds the cluster autoscaler waits for pod termination when trying to scale down a node
    scaleDownDelayAfterAdd String
    How long after scale up that scale down evaluation resumes.
    scaleDownUnneededTime String
    How long a node should be unneeded before it is eligible for scale down.
    scaleDownUtilizationThreshold Double
    Node utilization level, defined as sum of requested resources divided by capacity, below which a node can be considered for scale down
    balanceSimilarNodeGroups boolean
    Detect similar node groups and balance the number of nodes between them.
    disableScaleDown boolean
    Disables the scale down feature of the autoscaler.
    estimator string
    Type of resource estimator to be used in scale up.
    expander string
    Type of node group expander to be used in scale up.
    expendablePodsPriorityCutoff number
    Pods with priority below cutoff will be expendable. They can be killed without any consideration during scale down and they don't cause scale up. Pods with null priority (PodPriority disabled) are non expendable.
    ignoreDaemonsetsUtilization boolean
    Ignore DaemonSet pods when calculating resource utilization for scaling down.
    maxGracefulTerminationSec number
    Maximum number of seconds the cluster autoscaler waits for pod termination when trying to scale down a node
    scaleDownDelayAfterAdd string
    How long after scale up that scale down evaluation resumes.
    scaleDownUnneededTime string
    How long a node should be unneeded before it is eligible for scale down.
    scaleDownUtilizationThreshold number
    Node utilization level, defined as sum of requested resources divided by capacity, below which a node can be considered for scale down
    balance_similar_node_groups bool
    Detect similar node groups and balance the number of nodes between them.
    disable_scale_down bool
    Disables the scale down feature of the autoscaler.
    estimator str
    Type of resource estimator to be used in scale up.
    expander str
    Type of node group expander to be used in scale up.
    expendable_pods_priority_cutoff int
    Pods with priority below cutoff will be expendable. They can be killed without any consideration during scale down and they don't cause scale up. Pods with null priority (PodPriority disabled) are non expendable.
    ignore_daemonsets_utilization bool
    Ignore DaemonSet pods when calculating resource utilization for scaling down.
    max_graceful_termination_sec int
    Maximum number of seconds the cluster autoscaler waits for pod termination when trying to scale down a node
    scale_down_delay_after_add str
    How long after scale up that scale down evaluation resumes.
    scale_down_unneeded_time str
    How long a node should be unneeded before it is eligible for scale down.
    scale_down_utilization_threshold float
    Node utilization level, defined as sum of requested resources divided by capacity, below which a node can be considered for scale down
    balanceSimilarNodeGroups Boolean
    Detect similar node groups and balance the number of nodes between them.
    disableScaleDown Boolean
    Disables the scale down feature of the autoscaler.
    estimator String
    Type of resource estimator to be used in scale up.
    expander String
    Type of node group expander to be used in scale up.
    expendablePodsPriorityCutoff Number
    Pods with priority below cutoff will be expendable. They can be killed without any consideration during scale down and they don't cause scale up. Pods with null priority (PodPriority disabled) are non expendable.
    ignoreDaemonsetsUtilization Boolean
    Ignore DaemonSet pods when calculating resource utilization for scaling down.
    maxGracefulTerminationSec Number
    Maximum number of seconds the cluster autoscaler waits for pod termination when trying to scale down a node
    scaleDownDelayAfterAdd String
    How long after scale up that scale down evaluation resumes.
    scaleDownUnneededTime String
    How long a node should be unneeded before it is eligible for scale down.
    scaleDownUtilizationThreshold Number
    Node utilization level, defined as sum of requested resources divided by capacity, below which a node can be considered for scale down

    KubernetesClusterKubeconfig, KubernetesClusterKubeconfigArgs

    ClusterCaCertificate string
    The CA certificate of the Kubernetes API server.
    ConfigFile string
    The raw kubeconfig file.
    Host string
    The URL of the Kubernetes API server.
    Token string
    The token to connect to the Kubernetes API server.
    ClusterCaCertificate string
    The CA certificate of the Kubernetes API server.
    ConfigFile string
    The raw kubeconfig file.
    Host string
    The URL of the Kubernetes API server.
    Token string
    The token to connect to the Kubernetes API server.
    clusterCaCertificate String
    The CA certificate of the Kubernetes API server.
    configFile String
    The raw kubeconfig file.
    host String
    The URL of the Kubernetes API server.
    token String
    The token to connect to the Kubernetes API server.
    clusterCaCertificate string
    The CA certificate of the Kubernetes API server.
    configFile string
    The raw kubeconfig file.
    host string
    The URL of the Kubernetes API server.
    token string
    The token to connect to the Kubernetes API server.
    cluster_ca_certificate str
    The CA certificate of the Kubernetes API server.
    config_file str
    The raw kubeconfig file.
    host str
    The URL of the Kubernetes API server.
    token str
    The token to connect to the Kubernetes API server.
    clusterCaCertificate String
    The CA certificate of the Kubernetes API server.
    configFile String
    The raw kubeconfig file.
    host String
    The URL of the Kubernetes API server.
    token String
    The token to connect to the Kubernetes API server.

    KubernetesClusterOpenIdConnectConfig, KubernetesClusterOpenIdConnectConfigArgs

    ClientId string
    A client id that all tokens must be issued for
    IssuerUrl string
    URL of the provider which allows the API server to discover public signing keys
    GroupsClaims List<string>
    JWT claim to use as the user's group
    GroupsPrefix string
    Prefix prepended to group claims
    RequiredClaims List<string>
    Multiple key=value pairs that describes a required claim in the ID Token
    UsernameClaim string
    JWT claim to use as the user name
    UsernamePrefix string
    Prefix prepended to username
    ClientId string
    A client id that all tokens must be issued for
    IssuerUrl string
    URL of the provider which allows the API server to discover public signing keys
    GroupsClaims []string
    JWT claim to use as the user's group
    GroupsPrefix string
    Prefix prepended to group claims
    RequiredClaims []string
    Multiple key=value pairs that describes a required claim in the ID Token
    UsernameClaim string
    JWT claim to use as the user name
    UsernamePrefix string
    Prefix prepended to username
    clientId String
    A client id that all tokens must be issued for
    issuerUrl String
    URL of the provider which allows the API server to discover public signing keys
    groupsClaims List<String>
    JWT claim to use as the user's group
    groupsPrefix String
    Prefix prepended to group claims
    requiredClaims List<String>
    Multiple key=value pairs that describes a required claim in the ID Token
    usernameClaim String
    JWT claim to use as the user name
    usernamePrefix String
    Prefix prepended to username
    clientId string
    A client id that all tokens must be issued for
    issuerUrl string
    URL of the provider which allows the API server to discover public signing keys
    groupsClaims string[]
    JWT claim to use as the user's group
    groupsPrefix string
    Prefix prepended to group claims
    requiredClaims string[]
    Multiple key=value pairs that describes a required claim in the ID Token
    usernameClaim string
    JWT claim to use as the user name
    usernamePrefix string
    Prefix prepended to username
    client_id str
    A client id that all tokens must be issued for
    issuer_url str
    URL of the provider which allows the API server to discover public signing keys
    groups_claims Sequence[str]
    JWT claim to use as the user's group
    groups_prefix str
    Prefix prepended to group claims
    required_claims Sequence[str]
    Multiple key=value pairs that describes a required claim in the ID Token
    username_claim str
    JWT claim to use as the user name
    username_prefix str
    Prefix prepended to username
    clientId String
    A client id that all tokens must be issued for
    issuerUrl String
    URL of the provider which allows the API server to discover public signing keys
    groupsClaims List<String>
    JWT claim to use as the user's group
    groupsPrefix String
    Prefix prepended to group claims
    requiredClaims List<String>
    Multiple key=value pairs that describes a required claim in the ID Token
    usernameClaim String
    JWT claim to use as the user name
    usernamePrefix String
    Prefix prepended to username

    Import

    Kubernetes clusters can be imported using the {region}/{id}, e.g.

    bash

    $ pulumi import scaleway:index/kubernetesCluster:KubernetesCluster mycluster fr-par/11111111-1111-1111-1111-111111111111
    

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

    Package Details

    Repository
    scaleway pulumiverse/pulumi-scaleway
    License
    Apache-2.0
    Notes
    This Pulumi package is based on the scaleway Terraform Provider.
    scaleway logo
    Scaleway v1.20.0 published on Monday, Nov 4, 2024 by pulumiverse