1. Packages
  2. Scaleway
  3. API Docs
  4. kubernetes
  5. Cluster
Scaleway v1.26.0 published on Friday, Mar 28, 2025 by pulumiverse

scaleway.kubernetes.Cluster

Explore with Pulumi AI

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

Example Usage

Basic

import * as pulumi from "@pulumi/pulumi";
import * as scaleway from "@pulumiverse/scaleway";

const pn = new scaleway.network.PrivateNetwork("pn", {});
const cluster = new scaleway.kubernetes.Cluster("cluster", {
    name: "tf-cluster",
    version: "1.29.1",
    cni: "cilium",
    privateNetworkId: pn.id,
    deleteAdditionalResources: false,
});
const pool = new scaleway.kubernetes.Pool("pool", {
    clusterId: cluster.id,
    name: "tf-pool",
    nodeType: "DEV1-M",
    size: 1,
});
Copy
import pulumi
import pulumiverse_scaleway as scaleway

pn = scaleway.network.PrivateNetwork("pn")
cluster = scaleway.kubernetes.Cluster("cluster",
    name="tf-cluster",
    version="1.29.1",
    cni="cilium",
    private_network_id=pn.id,
    delete_additional_resources=False)
pool = scaleway.kubernetes.Pool("pool",
    cluster_id=cluster.id,
    name="tf-pool",
    node_type="DEV1-M",
    size=1)
Copy
package main

import (
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
	"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/kubernetes"
	"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/network"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		pn, err := network.NewPrivateNetwork(ctx, "pn", nil)
		if err != nil {
			return err
		}
		cluster, err := kubernetes.NewCluster(ctx, "cluster", &kubernetes.ClusterArgs{
			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 = kubernetes.NewPool(ctx, "pool", &kubernetes.PoolArgs{
			ClusterId: cluster.ID(),
			Name:      pulumi.String("tf-pool"),
			NodeType:  pulumi.String("DEV1-M"),
			Size:      pulumi.Int(1),
		})
		if err != nil {
			return err
		}
		return nil
	})
}
Copy
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Scaleway = Pulumiverse.Scaleway;

return await Deployment.RunAsync(() => 
{
    var pn = new Scaleway.Network.PrivateNetwork("pn");

    var cluster = new Scaleway.Kubernetes.Cluster("cluster", new()
    {
        Name = "tf-cluster",
        Version = "1.29.1",
        Cni = "cilium",
        PrivateNetworkId = pn.Id,
        DeleteAdditionalResources = false,
    });

    var pool = new Scaleway.Kubernetes.Pool("pool", new()
    {
        ClusterId = cluster.Id,
        Name = "tf-pool",
        NodeType = "DEV1-M",
        Size = 1,
    });

});
Copy
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.scaleway.network.PrivateNetwork;
import com.pulumi.scaleway.kubernetes.Cluster;
import com.pulumi.scaleway.kubernetes.ClusterArgs;
import com.pulumi.scaleway.kubernetes.Pool;
import com.pulumi.scaleway.kubernetes.PoolArgs;
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 PrivateNetwork("pn");

        var cluster = new Cluster("cluster", ClusterArgs.builder()
            .name("tf-cluster")
            .version("1.29.1")
            .cni("cilium")
            .privateNetworkId(pn.id())
            .deleteAdditionalResources(false)
            .build());

        var pool = new Pool("pool", PoolArgs.builder()
            .clusterId(cluster.id())
            .name("tf-pool")
            .nodeType("DEV1-M")
            .size(1)
            .build());

    }
}
Copy
resources:
  pn:
    type: scaleway:network:PrivateNetwork
  cluster:
    type: scaleway:kubernetes:Cluster
    properties:
      name: tf-cluster
      version: 1.29.1
      cni: cilium
      privateNetworkId: ${pn.id}
      deleteAdditionalResources: false
  pool:
    type: scaleway:kubernetes:Pool
    properties:
      clusterId: ${cluster.id}
      name: tf-pool
      nodeType: DEV1-M
      size: 1
Copy

Multicloud

import * as pulumi from "@pulumi/pulumi";
import * as scaleway from "@pulumiverse/scaleway";

const cluster = new scaleway.kubernetes.Cluster("cluster", {
    name: "tf-cluster",
    type: "multicloud",
    version: "1.29.1",
    cni: "kilo",
    deleteAdditionalResources: false,
});
const pool = new scaleway.kubernetes.Pool("pool", {
    clusterId: cluster.id,
    name: "tf-pool",
    nodeType: "external",
    size: 0,
    minSize: 0,
});
Copy
import pulumi
import pulumiverse_scaleway as scaleway

cluster = scaleway.kubernetes.Cluster("cluster",
    name="tf-cluster",
    type="multicloud",
    version="1.29.1",
    cni="kilo",
    delete_additional_resources=False)
pool = scaleway.kubernetes.Pool("pool",
    cluster_id=cluster.id,
    name="tf-pool",
    node_type="external",
    size=0,
    min_size=0)
Copy
package main

import (
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
	"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/kubernetes"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		cluster, err := kubernetes.NewCluster(ctx, "cluster", &kubernetes.ClusterArgs{
			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 = kubernetes.NewPool(ctx, "pool", &kubernetes.PoolArgs{
			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
	})
}
Copy
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Scaleway = Pulumiverse.Scaleway;

return await Deployment.RunAsync(() => 
{
    var cluster = new Scaleway.Kubernetes.Cluster("cluster", new()
    {
        Name = "tf-cluster",
        Type = "multicloud",
        Version = "1.29.1",
        Cni = "kilo",
        DeleteAdditionalResources = false,
    });

    var pool = new Scaleway.Kubernetes.Pool("pool", new()
    {
        ClusterId = cluster.Id,
        Name = "tf-pool",
        NodeType = "external",
        Size = 0,
        MinSize = 0,
    });

});
Copy
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.scaleway.kubernetes.Cluster;
import com.pulumi.scaleway.kubernetes.ClusterArgs;
import com.pulumi.scaleway.kubernetes.Pool;
import com.pulumi.scaleway.kubernetes.PoolArgs;
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 Cluster("cluster", ClusterArgs.builder()
            .name("tf-cluster")
            .type("multicloud")
            .version("1.29.1")
            .cni("kilo")
            .deleteAdditionalResources(false)
            .build());

        var pool = new Pool("pool", PoolArgs.builder()
            .clusterId(cluster.id())
            .name("tf-pool")
            .nodeType("external")
            .size(0)
            .minSize(0)
            .build());

    }
}
Copy
resources:
  cluster:
    type: scaleway:kubernetes:Cluster
    properties:
      name: tf-cluster
      type: multicloud
      version: 1.29.1
      cni: kilo
      deleteAdditionalResources: false
  pool:
    type: scaleway:kubernetes:Pool
    properties:
      clusterId: ${cluster.id}
      name: tf-pool
      nodeType: external
      size: 0
      minSize: 0
Copy

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.network.PrivateNetwork("pn", {});
const cluster = new scaleway.kubernetes.Cluster("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.kubernetes.Pool("pool", {
    clusterId: cluster.id,
    name: "tf-pool",
    nodeType: "DEV1-M",
    size: 3,
    autoscaling: true,
    autohealing: true,
    minSize: 1,
    maxSize: 5,
});
Copy
import pulumi
import pulumiverse_scaleway as scaleway

pn = scaleway.network.PrivateNetwork("pn")
cluster = scaleway.kubernetes.Cluster("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.kubernetes.Pool("pool",
    cluster_id=cluster.id,
    name="tf-pool",
    node_type="DEV1-M",
    size=3,
    autoscaling=True,
    autohealing=True,
    min_size=1,
    max_size=5)
Copy
package main

import (
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
	"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/kubernetes"
	"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/network"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		pn, err := network.NewPrivateNetwork(ctx, "pn", nil)
		if err != nil {
			return err
		}
		cluster, err := kubernetes.NewCluster(ctx, "cluster", &kubernetes.ClusterArgs{
			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: &kubernetes.ClusterAutoscalerConfigArgs{
				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 = kubernetes.NewPool(ctx, "pool", &kubernetes.PoolArgs{
			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
	})
}
Copy
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Scaleway = Pulumiverse.Scaleway;

return await Deployment.RunAsync(() => 
{
    var pn = new Scaleway.Network.PrivateNetwork("pn");

    var cluster = new Scaleway.Kubernetes.Cluster("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.Kubernetes.Inputs.ClusterAutoscalerConfigArgs
        {
            DisableScaleDown = false,
            ScaleDownDelayAfterAdd = "5m",
            Estimator = "binpacking",
            Expander = "random",
            IgnoreDaemonsetsUtilization = true,
            BalanceSimilarNodeGroups = true,
            ExpendablePodsPriorityCutoff = -5,
        },
    });

    var pool = new Scaleway.Kubernetes.Pool("pool", new()
    {
        ClusterId = cluster.Id,
        Name = "tf-pool",
        NodeType = "DEV1-M",
        Size = 3,
        Autoscaling = true,
        Autohealing = true,
        MinSize = 1,
        MaxSize = 5,
    });

});
Copy
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.scaleway.network.PrivateNetwork;
import com.pulumi.scaleway.kubernetes.Cluster;
import com.pulumi.scaleway.kubernetes.ClusterArgs;
import com.pulumi.scaleway.kubernetes.inputs.ClusterAutoscalerConfigArgs;
import com.pulumi.scaleway.kubernetes.Pool;
import com.pulumi.scaleway.kubernetes.PoolArgs;
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 PrivateNetwork("pn");

        var cluster = new Cluster("cluster", ClusterArgs.builder()
            .name("tf-cluster")
            .description("cluster made in terraform")
            .version("1.29.1")
            .cni("calico")
            .tags("terraform")
            .privateNetworkId(pn.id())
            .deleteAdditionalResources(false)
            .autoscalerConfig(ClusterAutoscalerConfigArgs.builder()
                .disableScaleDown(false)
                .scaleDownDelayAfterAdd("5m")
                .estimator("binpacking")
                .expander("random")
                .ignoreDaemonsetsUtilization(true)
                .balanceSimilarNodeGroups(true)
                .expendablePodsPriorityCutoff(-5)
                .build())
            .build());

        var pool = new Pool("pool", PoolArgs.builder()
            .clusterId(cluster.id())
            .name("tf-pool")
            .nodeType("DEV1-M")
            .size(3)
            .autoscaling(true)
            .autohealing(true)
            .minSize(1)
            .maxSize(5)
            .build());

    }
}
Copy
resources:
  pn:
    type: scaleway:network:PrivateNetwork
  cluster:
    type: scaleway:kubernetes:Cluster
    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:kubernetes:Pool
    properties:
      clusterId: ${cluster.id}
      name: tf-pool
      nodeType: DEV1-M
      size: 3
      autoscaling: true
      autohealing: true
      minSize: 1
      maxSize: 5
Copy

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.network.PrivateNetwork("pn", {});
const cluster = new scaleway.kubernetes.Cluster("cluster", {
    name: "tf-cluster",
    version: "1.29.1",
    cni: "cilium",
    privateNetworkId: pn.id,
    deleteAdditionalResources: false,
});
const pool = new scaleway.kubernetes.Pool("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],
});
Copy
import pulumi
import pulumi_null as null
import pulumiverse_scaleway as scaleway

pn = scaleway.network.PrivateNetwork("pn")
cluster = scaleway.kubernetes.Cluster("cluster",
    name="tf-cluster",
    version="1.29.1",
    cni="cilium",
    private_network_id=pn.id,
    delete_additional_resources=False)
pool = scaleway.kubernetes.Pool("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]))
Copy
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/kubernetes"
	"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/network"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		pn, err := network.NewPrivateNetwork(ctx, "pn", nil)
		if err != nil {
			return err
		}
		cluster, err := kubernetes.NewCluster(ctx, "cluster", &kubernetes.ClusterArgs{
			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 := kubernetes.NewPool(ctx, "pool", &kubernetes.PoolArgs{
			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 []kubernetes.ClusterKubeconfig) (*string, error) {
					return &kubeconfigs[0].Host, nil
				}).(pulumi.StringPtrOutput)),
				"token": pulumi.String(cluster.Kubeconfigs.ApplyT(func(kubeconfigs []kubernetes.ClusterKubeconfig) (*string, error) {
					return &kubeconfigs[0].Token, nil
				}).(pulumi.StringPtrOutput)),
				"cluster_ca_certificate": pulumi.String(cluster.Kubeconfigs.ApplyT(func(kubeconfigs []kubernetes.ClusterKubeconfig) (*string, error) {
					return &kubeconfigs[0].ClusterCaCertificate, nil
				}).(pulumi.StringPtrOutput)),
			},
		}, pulumi.DependsOn([]pulumi.Resource{
			pool,
		}))
		if err != nil {
			return err
		}
		return nil
	})
}
Copy
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.Network.PrivateNetwork("pn");

    var cluster = new Scaleway.Kubernetes.Cluster("cluster", new()
    {
        Name = "tf-cluster",
        Version = "1.29.1",
        Cni = "cilium",
        PrivateNetworkId = pn.Id,
        DeleteAdditionalResources = false,
    });

    var pool = new Scaleway.Kubernetes.Pool("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,
        },
    });

});
Copy
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.scaleway.network.PrivateNetwork;
import com.pulumi.scaleway.kubernetes.Cluster;
import com.pulumi.scaleway.kubernetes.ClusterArgs;
import com.pulumi.scaleway.kubernetes.Pool;
import com.pulumi.scaleway.kubernetes.PoolArgs;
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 PrivateNetwork("pn");

        var cluster = new Cluster("cluster", ClusterArgs.builder()
            .name("tf-cluster")
            .version("1.29.1")
            .cni("cilium")
            .privateNetworkId(pn.id())
            .deleteAdditionalResources(false)
            .build());

        var pool = new Pool("pool", PoolArgs.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());

    }
}
Copy
resources:
  pn:
    type: scaleway:network:PrivateNetwork
  cluster:
    type: scaleway:kubernetes:Cluster
    properties:
      name: tf-cluster
      version: 1.29.1
      cni: cilium
      privateNetworkId: ${pn.id}
      deleteAdditionalResources: false
  pool:
    type: scaleway:kubernetes:Pool
    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}
Copy

The null_resource is needed because when the cluster is created, its 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.network.PrivateNetwork("pn", {});
const cluster = new scaleway.kubernetes.Cluster("cluster", {
    name: "tf-cluster",
    version: "1.29.1",
    cni: "cilium",
    deleteAdditionalResources: false,
    privateNetworkId: pn.id,
});
const pool = new scaleway.kubernetes.Pool("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.loadbalancers.Ip("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",
        },
    ],
});
Copy
import pulumi
import pulumi_helm as helm
import pulumi_null as null
import pulumiverse_scaleway as scaleway

pn = scaleway.network.PrivateNetwork("pn")
cluster = scaleway.kubernetes.Cluster("cluster",
    name="tf-cluster",
    version="1.29.1",
    cni="cilium",
    delete_additional_resources=False,
    private_network_id=pn.id)
pool = scaleway.kubernetes.Pool("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.loadbalancers.Ip("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,
        },
    ])
Copy
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/kubernetes"
	"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/loadbalancers"
	"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/network"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		pn, err := network.NewPrivateNetwork(ctx, "pn", nil)
		if err != nil {
			return err
		}
		cluster, err := kubernetes.NewCluster(ctx, "cluster", &kubernetes.ClusterArgs{
			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 := kubernetes.NewPool(ctx, "pool", &kubernetes.PoolArgs{
			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 []kubernetes.ClusterKubeconfig) (*string, error) {
					return &kubeconfigs[0].Host, nil
				}).(pulumi.StringPtrOutput)),
				"token": pulumi.String(cluster.Kubeconfigs.ApplyT(func(kubeconfigs []kubernetes.ClusterKubeconfig) (*string, error) {
					return &kubeconfigs[0].Token, nil
				}).(pulumi.StringPtrOutput)),
				"cluster_ca_certificate": pulumi.String(cluster.Kubeconfigs.ApplyT(func(kubeconfigs []kubernetes.ClusterKubeconfig) (*string, error) {
					return &kubeconfigs[0].ClusterCaCertificate, nil
				}).(pulumi.StringPtrOutput)),
			},
		}, pulumi.DependsOn([]pulumi.Resource{
			pool,
		}))
		if err != nil {
			return err
		}
		nginxIp, err := loadbalancers.NewIp(ctx, "nginx_ip", &loadbalancers.IpArgs{
			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
	})
}
Copy
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.Network.PrivateNetwork("pn");

    var cluster = new Scaleway.Kubernetes.Cluster("cluster", new()
    {
        Name = "tf-cluster",
        Version = "1.29.1",
        Cni = "cilium",
        DeleteAdditionalResources = false,
        PrivateNetworkId = pn.Id,
    });

    var pool = new Scaleway.Kubernetes.Pool("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.Loadbalancers.Ip("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" },
            },
        },
    });

});
Copy
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.scaleway.network.PrivateNetwork;
import com.pulumi.scaleway.kubernetes.Cluster;
import com.pulumi.scaleway.kubernetes.ClusterArgs;
import com.pulumi.scaleway.kubernetes.Pool;
import com.pulumi.scaleway.kubernetes.PoolArgs;
import com.pulumi.null.Resource;
import com.pulumi.null.ResourceArgs;
import com.pulumi.scaleway.loadbalancers.Ip;
import com.pulumi.scaleway.loadbalancers.IpArgs;
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 PrivateNetwork("pn");

        var cluster = new Cluster("cluster", ClusterArgs.builder()
            .name("tf-cluster")
            .version("1.29.1")
            .cni("cilium")
            .deleteAdditionalResources(false)
            .privateNetworkId(pn.id())
            .build());

        var pool = new Pool("pool", PoolArgs.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 Ip("nginxIp", IpArgs.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());

    }
}
Copy
resources:
  pn:
    type: scaleway:network:PrivateNetwork
  cluster:
    type: scaleway:kubernetes:Cluster
    properties:
      name: tf-cluster
      version: 1.29.1
      cni: cilium
      deleteAdditionalResources: false
      privateNetworkId: ${pn.id}
  pool:
    type: scaleway:kubernetes:Pool
    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:loadbalancers:Ip
    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
Copy

Deprecation of default_pool

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

Before:

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

After:

import * as pulumi from "@pulumi/pulumi";
import * as scaleway from "@pulumiverse/scaleway";

const cluster = new scaleway.kubernetes.Cluster("cluster", {
    name: "tf-cluster",
    version: "1.18.0",
    cni: "cilium",
});
const _default = new scaleway.kubernetes.Pool("default", {
    clusterId: jack.id,
    name: "default",
    nodeType: "DEV1-M",
    size: 1,
});
Copy
import pulumi
import pulumiverse_scaleway as scaleway

cluster = scaleway.kubernetes.Cluster("cluster",
    name="tf-cluster",
    version="1.18.0",
    cni="cilium")
default = scaleway.kubernetes.Pool("default",
    cluster_id=jack["id"],
    name="default",
    node_type="DEV1-M",
    size=1)
Copy
package main

import (
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
	"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/kubernetes"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := kubernetes.NewCluster(ctx, "cluster", &kubernetes.ClusterArgs{
			Name:    pulumi.String("tf-cluster"),
			Version: pulumi.String("1.18.0"),
			Cni:     pulumi.String("cilium"),
		})
		if err != nil {
			return err
		}
		_, err = kubernetes.NewPool(ctx, "default", &kubernetes.PoolArgs{
			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
	})
}
Copy
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Scaleway = Pulumiverse.Scaleway;

return await Deployment.RunAsync(() => 
{
    var cluster = new Scaleway.Kubernetes.Cluster("cluster", new()
    {
        Name = "tf-cluster",
        Version = "1.18.0",
        Cni = "cilium",
    });

    var @default = new Scaleway.Kubernetes.Pool("default", new()
    {
        ClusterId = jack.Id,
        Name = "default",
        NodeType = "DEV1-M",
        Size = 1,
    });

});
Copy
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.scaleway.kubernetes.Cluster;
import com.pulumi.scaleway.kubernetes.ClusterArgs;
import com.pulumi.scaleway.kubernetes.Pool;
import com.pulumi.scaleway.kubernetes.PoolArgs;
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 Cluster("cluster", ClusterArgs.builder()
            .name("tf-cluster")
            .version("1.18.0")
            .cni("cilium")
            .build());

        var default_ = new Pool("default", PoolArgs.builder()
            .clusterId(jack.id())
            .name("default")
            .nodeType("DEV1-M")
            .size(1)
            .build());

    }
}
Copy
resources:
  cluster:
    type: scaleway:kubernetes:Cluster
    properties:
      name: tf-cluster
      version: 1.18.0
      cni: cilium
  default:
    type: scaleway:kubernetes:Pool
    properties:
      clusterId: ${jack.id}
      name: default
      nodeType: DEV1-M
      size: 1
Copy

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
Copy

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

Create Cluster Resource

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

Constructor syntax

new Cluster(name: string, args: ClusterArgs, opts?: CustomResourceOptions);
@overload
def Cluster(resource_name: str,
            args: ClusterArgs,
            opts: Optional[ResourceOptions] = None)

@overload
def Cluster(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[ClusterAutoscalerConfigArgs] = None,
            auto_upgrade: Optional[ClusterAutoUpgradeArgs] = None,
            description: Optional[str] = None,
            feature_gates: Optional[Sequence[str]] = None,
            admission_plugins: Optional[Sequence[str]] = None,
            open_id_connect_config: Optional[ClusterOpenIdConnectConfigArgs] = 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 NewCluster(ctx *Context, name string, args ClusterArgs, opts ...ResourceOption) (*Cluster, error)
public Cluster(string name, ClusterArgs args, CustomResourceOptions? opts = null)
public Cluster(String name, ClusterArgs args)
public Cluster(String name, ClusterArgs args, CustomResourceOptions options)
type: scaleway:kubernetes:Cluster
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.

Parameters

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

Constructor example

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

var clusterResource = new Scaleway.Kubernetes.Cluster("clusterResource", new()
{
    Cni = "string",
    Version = "string",
    DeleteAdditionalResources = false,
    Name = "string",
    AutoscalerConfig = new Scaleway.Kubernetes.Inputs.ClusterAutoscalerConfigArgs
    {
        BalanceSimilarNodeGroups = false,
        DisableScaleDown = false,
        Estimator = "string",
        Expander = "string",
        ExpendablePodsPriorityCutoff = 0,
        IgnoreDaemonsetsUtilization = false,
        MaxGracefulTerminationSec = 0,
        ScaleDownDelayAfterAdd = "string",
        ScaleDownUnneededTime = "string",
        ScaleDownUtilizationThreshold = 0,
    },
    AutoUpgrade = new Scaleway.Kubernetes.Inputs.ClusterAutoUpgradeArgs
    {
        Enable = false,
        MaintenanceWindowDay = "string",
        MaintenanceWindowStartHour = 0,
    },
    Description = "string",
    FeatureGates = new[]
    {
        "string",
    },
    AdmissionPlugins = new[]
    {
        "string",
    },
    OpenIdConnectConfig = new Scaleway.Kubernetes.Inputs.ClusterOpenIdConnectConfigArgs
    {
        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",
    },
});
Copy
example, err := kubernetes.NewCluster(ctx, "clusterResource", &kubernetes.ClusterArgs{
	Cni:                       pulumi.String("string"),
	Version:                   pulumi.String("string"),
	DeleteAdditionalResources: pulumi.Bool(false),
	Name:                      pulumi.String("string"),
	AutoscalerConfig: &kubernetes.ClusterAutoscalerConfigArgs{
		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: &kubernetes.ClusterAutoUpgradeArgs{
		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: &kubernetes.ClusterOpenIdConnectConfigArgs{
		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"),
	},
})
Copy
var clusterResource = new Cluster("clusterResource", ClusterArgs.builder()
    .cni("string")
    .version("string")
    .deleteAdditionalResources(false)
    .name("string")
    .autoscalerConfig(ClusterAutoscalerConfigArgs.builder()
        .balanceSimilarNodeGroups(false)
        .disableScaleDown(false)
        .estimator("string")
        .expander("string")
        .expendablePodsPriorityCutoff(0)
        .ignoreDaemonsetsUtilization(false)
        .maxGracefulTerminationSec(0)
        .scaleDownDelayAfterAdd("string")
        .scaleDownUnneededTime("string")
        .scaleDownUtilizationThreshold(0)
        .build())
    .autoUpgrade(ClusterAutoUpgradeArgs.builder()
        .enable(false)
        .maintenanceWindowDay("string")
        .maintenanceWindowStartHour(0)
        .build())
    .description("string")
    .featureGates("string")
    .admissionPlugins("string")
    .openIdConnectConfig(ClusterOpenIdConnectConfigArgs.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());
Copy
cluster_resource = scaleway.kubernetes.Cluster("clusterResource",
    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"])
Copy
const clusterResource = new scaleway.kubernetes.Cluster("clusterResource", {
    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"],
});
Copy
type: scaleway:kubernetes:Cluster
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
Copy

Cluster Resource Properties

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

Inputs

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

The Cluster resource accepts the following input properties:

Cni
This property is required.
Changes to this property will trigger replacement.
string

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

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

DeleteAdditionalResources This property is required. 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 This property is required. 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.Kubernetes.Inputs.ClusterAutoUpgrade
The auto upgrade configuration.
AutoscalerConfig Pulumiverse.Scaleway.Kubernetes.Inputs.ClusterAutoscalerConfig
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.Kubernetes.Inputs.ClusterOpenIdConnectConfig
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 Changes to this property will trigger replacement. string
project_id) The ID of the project the cluster is associated with.
Region Changes to this property will trigger replacement. 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
This property is required.
Changes to this property will trigger replacement.
string

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

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

DeleteAdditionalResources This property is required. 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 This property is required. 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 ClusterAutoUpgradeArgs
The auto upgrade configuration.
AutoscalerConfig ClusterAutoscalerConfigArgs
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 ClusterOpenIdConnectConfigArgs
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 Changes to this property will trigger replacement. string
project_id) The ID of the project the cluster is associated with.
Region Changes to this property will trigger replacement. 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
This property is required.
Changes to this property will trigger replacement.
String

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

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

deleteAdditionalResources This property is required. 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 This property is required. 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 ClusterAutoUpgrade
The auto upgrade configuration.
autoscalerConfig ClusterAutoscalerConfig
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 ClusterOpenIdConnectConfig
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 Changes to this property will trigger replacement. String
project_id) The ID of the project the cluster is associated with.
region Changes to this property will trigger replacement. 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
This property is required.
Changes to this property will trigger replacement.
string

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

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

deleteAdditionalResources This property is required. 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 This property is required. 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 ClusterAutoUpgrade
The auto upgrade configuration.
autoscalerConfig ClusterAutoscalerConfig
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 ClusterOpenIdConnectConfig
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 Changes to this property will trigger replacement. string
project_id) The ID of the project the cluster is associated with.
region Changes to this property will trigger replacement. 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
This property is required.
Changes to this property will trigger replacement.
str

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

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

delete_additional_resources This property is required. 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 This property is required. 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 ClusterAutoUpgradeArgs
The auto upgrade configuration.
autoscaler_config ClusterAutoscalerConfigArgs
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 ClusterOpenIdConnectConfigArgs
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 Changes to this property will trigger replacement. str
project_id) The ID of the project the cluster is associated with.
region Changes to this property will trigger replacement. 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
This property is required.
Changes to this property will trigger replacement.
String

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

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

deleteAdditionalResources This property is required. 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 This property is required. 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 Changes to this property will trigger replacement. String
project_id) The ID of the project the cluster is associated with.
region Changes to this property will trigger replacement. 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 Cluster 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.Kubernetes.Outputs.ClusterKubeconfig>
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 []ClusterKubeconfig
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<ClusterKubeconfig>
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 ClusterKubeconfig[]
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[ClusterKubeconfig]
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 Cluster Resource

Get an existing Cluster 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?: ClusterState, opts?: CustomResourceOptions): Cluster
@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[ClusterAutoUpgradeArgs] = None,
        autoscaler_config: Optional[ClusterAutoscalerConfigArgs] = 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[ClusterKubeconfigArgs]] = None,
        name: Optional[str] = None,
        open_id_connect_config: Optional[ClusterOpenIdConnectConfigArgs] = 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) -> Cluster
func GetCluster(ctx *Context, name string, id IDInput, state *ClusterState, opts ...ResourceOption) (*Cluster, error)
public static Cluster Get(string name, Input<string> id, ClusterState? state, CustomResourceOptions? opts = null)
public static Cluster get(String name, Output<String> id, ClusterState state, CustomResourceOptions options)
resources:  _:    type: scaleway:kubernetes:Cluster    get:      id: ${id}
name This property is required.
The unique name of the resulting resource.
id This property is required.
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 This property is required.
The unique name of the resulting resource.
id This property is required.
The unique provider ID of the resource to lookup.
name This property is required.
The unique name of the resulting resource.
id This property is required.
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 This property is required.
The unique name of the resulting resource.
id This property is required.
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 This property is required.
The unique name of the resulting resource.
id This property is required.
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.Kubernetes.Inputs.ClusterAutoUpgrade
The auto upgrade configuration.
AutoscalerConfig Pulumiverse.Scaleway.Kubernetes.Inputs.ClusterAutoscalerConfig
The configuration options for the Kubernetes cluster autoscaler.
Cni Changes to this property will trigger replacement. 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.Kubernetes.Inputs.ClusterKubeconfig>
The kubeconfig configuration file of the Kubernetes cluster
Name string
The name for the Kubernetes cluster.
OpenIdConnectConfig Pulumiverse.Scaleway.Kubernetes.Inputs.ClusterOpenIdConnectConfig
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 Changes to this property will trigger replacement. string
project_id) The ID of the project the cluster is associated with.
Region Changes to this property will trigger replacement. 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 ClusterAutoUpgradeArgs
The auto upgrade configuration.
AutoscalerConfig ClusterAutoscalerConfigArgs
The configuration options for the Kubernetes cluster autoscaler.
Cni Changes to this property will trigger replacement. 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 []ClusterKubeconfigArgs
The kubeconfig configuration file of the Kubernetes cluster
Name string
The name for the Kubernetes cluster.
OpenIdConnectConfig ClusterOpenIdConnectConfigArgs
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 Changes to this property will trigger replacement. string
project_id) The ID of the project the cluster is associated with.
Region Changes to this property will trigger replacement. 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 ClusterAutoUpgrade
The auto upgrade configuration.
autoscalerConfig ClusterAutoscalerConfig
The configuration options for the Kubernetes cluster autoscaler.
cni Changes to this property will trigger replacement. 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<ClusterKubeconfig>
The kubeconfig configuration file of the Kubernetes cluster
name String
The name for the Kubernetes cluster.
openIdConnectConfig ClusterOpenIdConnectConfig
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 Changes to this property will trigger replacement. String
project_id) The ID of the project the cluster is associated with.
region Changes to this property will trigger replacement. 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 ClusterAutoUpgrade
The auto upgrade configuration.
autoscalerConfig ClusterAutoscalerConfig
The configuration options for the Kubernetes cluster autoscaler.
cni Changes to this property will trigger replacement. 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 ClusterKubeconfig[]
The kubeconfig configuration file of the Kubernetes cluster
name string
The name for the Kubernetes cluster.
openIdConnectConfig ClusterOpenIdConnectConfig
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 Changes to this property will trigger replacement. string
project_id) The ID of the project the cluster is associated with.
region Changes to this property will trigger replacement. 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 ClusterAutoUpgradeArgs
The auto upgrade configuration.
autoscaler_config ClusterAutoscalerConfigArgs
The configuration options for the Kubernetes cluster autoscaler.
cni Changes to this property will trigger replacement. 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[ClusterKubeconfigArgs]
The kubeconfig configuration file of the Kubernetes cluster
name str
The name for the Kubernetes cluster.
open_id_connect_config ClusterOpenIdConnectConfigArgs
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 Changes to this property will trigger replacement. str
project_id) The ID of the project the cluster is associated with.
region Changes to this property will trigger replacement. 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 Changes to this property will trigger replacement. 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 Changes to this property will trigger replacement. String
project_id) The ID of the project the cluster is associated with.
region Changes to this property will trigger replacement. 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

ClusterAutoUpgrade
, ClusterAutoUpgradeArgs

Enable This property is required. 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 This property is required. string
The day of the auto upgrade maintenance window (monday to sunday, or any).
MaintenanceWindowStartHour This property is required. int
The start hour (UTC) of the 2-hour auto upgrade maintenance window (0 to 23).
Enable This property is required. 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 This property is required. string
The day of the auto upgrade maintenance window (monday to sunday, or any).
MaintenanceWindowStartHour This property is required. int
The start hour (UTC) of the 2-hour auto upgrade maintenance window (0 to 23).
enable This property is required. 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 This property is required. String
The day of the auto upgrade maintenance window (monday to sunday, or any).
maintenanceWindowStartHour This property is required. Integer
The start hour (UTC) of the 2-hour auto upgrade maintenance window (0 to 23).
enable This property is required. 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 This property is required. string
The day of the auto upgrade maintenance window (monday to sunday, or any).
maintenanceWindowStartHour This property is required. number
The start hour (UTC) of the 2-hour auto upgrade maintenance window (0 to 23).
enable This property is required. 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 This property is required. str
The day of the auto upgrade maintenance window (monday to sunday, or any).
maintenance_window_start_hour This property is required. int
The start hour (UTC) of the 2-hour auto upgrade maintenance window (0 to 23).
enable This property is required. 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 This property is required. String
The day of the auto upgrade maintenance window (monday to sunday, or any).
maintenanceWindowStartHour This property is required. Number
The start hour (UTC) of the 2-hour auto upgrade maintenance window (0 to 23).

ClusterAutoscalerConfig
, ClusterAutoscalerConfigArgs

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

ClusterKubeconfig
, ClusterKubeconfigArgs

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.

ClusterOpenIdConnectConfig
, ClusterOpenIdConnectConfigArgs

ClientId This property is required. string
A client id that all tokens must be issued for
IssuerUrl This property is required. 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 This property is required. string
A client id that all tokens must be issued for
IssuerUrl This property is required. 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 This property is required. String
A client id that all tokens must be issued for
issuerUrl This property is required. 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 This property is required. string
A client id that all tokens must be issued for
issuerUrl This property is required. 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 This property is required. str
A client id that all tokens must be issued for
issuer_url This property is required. 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 This property is required. String
A client id that all tokens must be issued for
issuerUrl This property is required. 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:kubernetes/cluster:Cluster mycluster fr-par/11111111-1111-1111-1111-111111111111
Copy

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.