1. Packages
  2. UpCloud
  3. API Docs
  4. KubernetesNodeGroup
UpCloud v0.1.0 published on Friday, Mar 14, 2025 by UpCloudLtd

upcloud.KubernetesNodeGroup

Explore with Pulumi AI

This resource represents a Managed Kubernetes cluster.

Example Usage

import * as pulumi from "@pulumi/pulumi";
import * as upcloud from "@upcloud/pulumi-upcloud";

// Create a network for the Kubernetes cluster
const example = new upcloud.Network("example", {
    name: "example-network",
    zone: "de-fra1",
    ipNetwork: {
        address: "172.16.1.0/24",
        dhcp: true,
        family: "IPv4",
    },
});
// Create a Kubernetes cluster
const exampleKubernetesCluster = new upcloud.KubernetesCluster("example", {
    controlPlaneIpFilters: ["0.0.0.0/0"],
    name: "exampleapp",
    network: example.id,
    zone: "de-fra1",
});
// Create a Kubernetes cluster node group
const group = new upcloud.KubernetesNodeGroup("group", {
    cluster: upcloudKubernetesCluster.example.id,
    nodeCount: 2,
    name: "medium",
    plan: "2xCPU-4GB",
    labels: {
        managedBy: "terraform",
    },
    taints: [{
        effect: "NoExecute",
        key: "taintKey",
        value: "taintValue",
    }],
});
Copy
import pulumi
import pulumi_upcloud as upcloud

# Create a network for the Kubernetes cluster
example = upcloud.Network("example",
    name="example-network",
    zone="de-fra1",
    ip_network={
        "address": "172.16.1.0/24",
        "dhcp": True,
        "family": "IPv4",
    })
# Create a Kubernetes cluster
example_kubernetes_cluster = upcloud.KubernetesCluster("example",
    control_plane_ip_filters=["0.0.0.0/0"],
    name="exampleapp",
    network=example.id,
    zone="de-fra1")
# Create a Kubernetes cluster node group
group = upcloud.KubernetesNodeGroup("group",
    cluster=upcloud_kubernetes_cluster["example"]["id"],
    node_count=2,
    name="medium",
    plan="2xCPU-4GB",
    labels={
        "managedBy": "terraform",
    },
    taints=[{
        "effect": "NoExecute",
        "key": "taintKey",
        "value": "taintValue",
    }])
Copy
package main

import (
	"github.com/UpCloudLtd/pulumi-upcloud/sdk/go/upcloud"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		// Create a network for the Kubernetes cluster
		example, err := upcloud.NewNetwork(ctx, "example", &upcloud.NetworkArgs{
			Name: pulumi.String("example-network"),
			Zone: pulumi.String("de-fra1"),
			IpNetwork: &upcloud.NetworkIpNetworkArgs{
				Address: pulumi.String("172.16.1.0/24"),
				Dhcp:    pulumi.Bool(true),
				Family:  pulumi.String("IPv4"),
			},
		})
		if err != nil {
			return err
		}
		// Create a Kubernetes cluster
		_, err = upcloud.NewKubernetesCluster(ctx, "example", &upcloud.KubernetesClusterArgs{
			ControlPlaneIpFilters: pulumi.StringArray{
				pulumi.String("0.0.0.0/0"),
			},
			Name:    pulumi.String("exampleapp"),
			Network: example.ID(),
			Zone:    pulumi.String("de-fra1"),
		})
		if err != nil {
			return err
		}
		// Create a Kubernetes cluster node group
		_, err = upcloud.NewKubernetesNodeGroup(ctx, "group", &upcloud.KubernetesNodeGroupArgs{
			Cluster:   pulumi.Any(upcloudKubernetesCluster.Example.Id),
			NodeCount: pulumi.Int(2),
			Name:      pulumi.String("medium"),
			Plan:      pulumi.String("2xCPU-4GB"),
			Labels: pulumi.StringMap{
				"managedBy": pulumi.String("terraform"),
			},
			Taints: upcloud.KubernetesNodeGroupTaintArray{
				&upcloud.KubernetesNodeGroupTaintArgs{
					Effect: pulumi.String("NoExecute"),
					Key:    pulumi.String("taintKey"),
					Value:  pulumi.String("taintValue"),
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
Copy
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using UpCloud = UpCloud.Pulumi.UpCloud;

return await Deployment.RunAsync(() => 
{
    // Create a network for the Kubernetes cluster
    var example = new UpCloud.Network("example", new()
    {
        Name = "example-network",
        Zone = "de-fra1",
        IpNetwork = new UpCloud.Inputs.NetworkIpNetworkArgs
        {
            Address = "172.16.1.0/24",
            Dhcp = true,
            Family = "IPv4",
        },
    });

    // Create a Kubernetes cluster
    var exampleKubernetesCluster = new UpCloud.KubernetesCluster("example", new()
    {
        ControlPlaneIpFilters = new[]
        {
            "0.0.0.0/0",
        },
        Name = "exampleapp",
        Network = example.Id,
        Zone = "de-fra1",
    });

    // Create a Kubernetes cluster node group
    var @group = new UpCloud.KubernetesNodeGroup("group", new()
    {
        Cluster = upcloudKubernetesCluster.Example.Id,
        NodeCount = 2,
        Name = "medium",
        Plan = "2xCPU-4GB",
        Labels = 
        {
            { "managedBy", "terraform" },
        },
        Taints = new[]
        {
            new UpCloud.Inputs.KubernetesNodeGroupTaintArgs
            {
                Effect = "NoExecute",
                Key = "taintKey",
                Value = "taintValue",
            },
        },
    });

});
Copy
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.upcloud.Network;
import com.pulumi.upcloud.NetworkArgs;
import com.pulumi.upcloud.inputs.NetworkIpNetworkArgs;
import com.pulumi.upcloud.KubernetesCluster;
import com.pulumi.upcloud.KubernetesClusterArgs;
import com.pulumi.upcloud.KubernetesNodeGroup;
import com.pulumi.upcloud.KubernetesNodeGroupArgs;
import com.pulumi.upcloud.inputs.KubernetesNodeGroupTaintArgs;
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) {
        // Create a network for the Kubernetes cluster
        var example = new Network("example", NetworkArgs.builder()
            .name("example-network")
            .zone("de-fra1")
            .ipNetwork(NetworkIpNetworkArgs.builder()
                .address("172.16.1.0/24")
                .dhcp(true)
                .family("IPv4")
                .build())
            .build());

        // Create a Kubernetes cluster
        var exampleKubernetesCluster = new KubernetesCluster("exampleKubernetesCluster", KubernetesClusterArgs.builder()
            .controlPlaneIpFilters("0.0.0.0/0")
            .name("exampleapp")
            .network(example.id())
            .zone("de-fra1")
            .build());

        // Create a Kubernetes cluster node group
        var group = new KubernetesNodeGroup("group", KubernetesNodeGroupArgs.builder()
            .cluster(upcloudKubernetesCluster.example().id())
            .nodeCount(2)
            .name("medium")
            .plan("2xCPU-4GB")
            .labels(Map.of("managedBy", "terraform"))
            .taints(KubernetesNodeGroupTaintArgs.builder()
                .effect("NoExecute")
                .key("taintKey")
                .value("taintValue")
                .build())
            .build());

    }
}
Copy
resources:
  # Create a network for the Kubernetes cluster
  example:
    type: upcloud:Network
    properties:
      name: example-network
      zone: de-fra1
      ipNetwork:
        address: 172.16.1.0/24
        dhcp: true
        family: IPv4
  # Create a Kubernetes cluster
  exampleKubernetesCluster:
    type: upcloud:KubernetesCluster
    name: example
    properties:
      controlPlaneIpFilters:
        - 0.0.0.0/0
      name: exampleapp
      network: ${example.id}
      zone: de-fra1
  # Create a Kubernetes cluster node group
  group:
    type: upcloud:KubernetesNodeGroup
    properties:
      cluster: ${upcloudKubernetesCluster.example.id}
      nodeCount: 2
      name: medium
      plan: 2xCPU-4GB
      labels:
        managedBy: terraform
      taints:
        - effect: NoExecute
          key: taintKey
          value: taintValue
Copy

Create KubernetesNodeGroup Resource

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

Constructor syntax

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

@overload
def KubernetesNodeGroup(resource_name: str,
                        opts: Optional[ResourceOptions] = None,
                        cluster: Optional[str] = None,
                        node_count: Optional[int] = None,
                        plan: Optional[str] = None,
                        anti_affinity: Optional[bool] = None,
                        custom_plan: Optional[KubernetesNodeGroupCustomPlanArgs] = None,
                        kubelet_args: Optional[Sequence[KubernetesNodeGroupKubeletArgArgs]] = None,
                        labels: Optional[Mapping[str, str]] = None,
                        name: Optional[str] = None,
                        ssh_keys: Optional[Sequence[str]] = None,
                        storage_encryption: Optional[str] = None,
                        taints: Optional[Sequence[KubernetesNodeGroupTaintArgs]] = None,
                        utility_network_access: Optional[bool] = None)
func NewKubernetesNodeGroup(ctx *Context, name string, args KubernetesNodeGroupArgs, opts ...ResourceOption) (*KubernetesNodeGroup, error)
public KubernetesNodeGroup(string name, KubernetesNodeGroupArgs args, CustomResourceOptions? opts = null)
public KubernetesNodeGroup(String name, KubernetesNodeGroupArgs args)
public KubernetesNodeGroup(String name, KubernetesNodeGroupArgs args, CustomResourceOptions options)
type: upcloud:KubernetesNodeGroup
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. KubernetesNodeGroupArgs
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. KubernetesNodeGroupArgs
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. KubernetesNodeGroupArgs
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. KubernetesNodeGroupArgs
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. KubernetesNodeGroupArgs
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 kubernetesNodeGroupResource = new UpCloud.KubernetesNodeGroup("kubernetesNodeGroupResource", new()
{
    Cluster = "string",
    NodeCount = 0,
    Plan = "string",
    AntiAffinity = false,
    CustomPlan = new UpCloud.Inputs.KubernetesNodeGroupCustomPlanArgs
    {
        Cores = 0,
        Memory = 0,
        StorageSize = 0,
        StorageTier = "string",
    },
    KubeletArgs = new[]
    {
        new UpCloud.Inputs.KubernetesNodeGroupKubeletArgArgs
        {
            Key = "string",
            Value = "string",
        },
    },
    Labels = 
    {
        { "string", "string" },
    },
    Name = "string",
    SshKeys = new[]
    {
        "string",
    },
    StorageEncryption = "string",
    Taints = new[]
    {
        new UpCloud.Inputs.KubernetesNodeGroupTaintArgs
        {
            Effect = "string",
            Key = "string",
            Value = "string",
        },
    },
    UtilityNetworkAccess = false,
});
Copy
example, err := upcloud.NewKubernetesNodeGroup(ctx, "kubernetesNodeGroupResource", &upcloud.KubernetesNodeGroupArgs{
	Cluster:      pulumi.String("string"),
	NodeCount:    pulumi.Int(0),
	Plan:         pulumi.String("string"),
	AntiAffinity: pulumi.Bool(false),
	CustomPlan: &upcloud.KubernetesNodeGroupCustomPlanArgs{
		Cores:       pulumi.Int(0),
		Memory:      pulumi.Int(0),
		StorageSize: pulumi.Int(0),
		StorageTier: pulumi.String("string"),
	},
	KubeletArgs: upcloud.KubernetesNodeGroupKubeletArgArray{
		&upcloud.KubernetesNodeGroupKubeletArgArgs{
			Key:   pulumi.String("string"),
			Value: pulumi.String("string"),
		},
	},
	Labels: pulumi.StringMap{
		"string": pulumi.String("string"),
	},
	Name: pulumi.String("string"),
	SshKeys: pulumi.StringArray{
		pulumi.String("string"),
	},
	StorageEncryption: pulumi.String("string"),
	Taints: upcloud.KubernetesNodeGroupTaintArray{
		&upcloud.KubernetesNodeGroupTaintArgs{
			Effect: pulumi.String("string"),
			Key:    pulumi.String("string"),
			Value:  pulumi.String("string"),
		},
	},
	UtilityNetworkAccess: pulumi.Bool(false),
})
Copy
var kubernetesNodeGroupResource = new KubernetesNodeGroup("kubernetesNodeGroupResource", KubernetesNodeGroupArgs.builder()
    .cluster("string")
    .nodeCount(0)
    .plan("string")
    .antiAffinity(false)
    .customPlan(KubernetesNodeGroupCustomPlanArgs.builder()
        .cores(0)
        .memory(0)
        .storageSize(0)
        .storageTier("string")
        .build())
    .kubeletArgs(KubernetesNodeGroupKubeletArgArgs.builder()
        .key("string")
        .value("string")
        .build())
    .labels(Map.of("string", "string"))
    .name("string")
    .sshKeys("string")
    .storageEncryption("string")
    .taints(KubernetesNodeGroupTaintArgs.builder()
        .effect("string")
        .key("string")
        .value("string")
        .build())
    .utilityNetworkAccess(false)
    .build());
Copy
kubernetes_node_group_resource = upcloud.KubernetesNodeGroup("kubernetesNodeGroupResource",
    cluster="string",
    node_count=0,
    plan="string",
    anti_affinity=False,
    custom_plan={
        "cores": 0,
        "memory": 0,
        "storage_size": 0,
        "storage_tier": "string",
    },
    kubelet_args=[{
        "key": "string",
        "value": "string",
    }],
    labels={
        "string": "string",
    },
    name="string",
    ssh_keys=["string"],
    storage_encryption="string",
    taints=[{
        "effect": "string",
        "key": "string",
        "value": "string",
    }],
    utility_network_access=False)
Copy
const kubernetesNodeGroupResource = new upcloud.KubernetesNodeGroup("kubernetesNodeGroupResource", {
    cluster: "string",
    nodeCount: 0,
    plan: "string",
    antiAffinity: false,
    customPlan: {
        cores: 0,
        memory: 0,
        storageSize: 0,
        storageTier: "string",
    },
    kubeletArgs: [{
        key: "string",
        value: "string",
    }],
    labels: {
        string: "string",
    },
    name: "string",
    sshKeys: ["string"],
    storageEncryption: "string",
    taints: [{
        effect: "string",
        key: "string",
        value: "string",
    }],
    utilityNetworkAccess: false,
});
Copy
type: upcloud:KubernetesNodeGroup
properties:
    antiAffinity: false
    cluster: string
    customPlan:
        cores: 0
        memory: 0
        storageSize: 0
        storageTier: string
    kubeletArgs:
        - key: string
          value: string
    labels:
        string: string
    name: string
    nodeCount: 0
    plan: string
    sshKeys:
        - string
    storageEncryption: string
    taints:
        - effect: string
          key: string
          value: string
    utilityNetworkAccess: false
Copy

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

Cluster This property is required. string
UUID of the cluster.
NodeCount This property is required. int
Amount of nodes to provision in the node group.
Plan This property is required. string
The server plan used for the node group. You can list available plans with upctl server plans
AntiAffinity bool
If set to true, nodes in this group will be placed on separate compute hosts. Please note that anti-affinity policy is considered 'best effort' and enabling it does not fully guarantee that the nodes will end up on different hardware.
CustomPlan UpCloud.Pulumi.UpCloud.Inputs.KubernetesNodeGroupCustomPlan
Resource properties for custom plan
KubeletArgs List<UpCloud.Pulumi.UpCloud.Inputs.KubernetesNodeGroupKubeletArg>
Additional arguments for kubelet for the nodes in this group. WARNING - those arguments will be passed directly to kubelet CLI on each worker node without any validation. Passing invalid arguments can break your whole cluster. Be extra careful when adding kubelet args.
Labels Dictionary<string, string>
User defined key-value pairs to classify the node_group.
Name string
The name of the node group. Needs to be unique within a cluster.
SshKeys List<string>
You can optionally select SSH keys to be added as authorized keys to the nodes in this node group. This allows you to connect to the nodes via SSH once they are running.
StorageEncryption string
The storage encryption strategy to use for the nodes in this group. If not set, the cluster's storage encryption strategy will be used, if applicable.
Taints List<UpCloud.Pulumi.UpCloud.Inputs.KubernetesNodeGroupTaint>
Taints for the nodes in this group.
UtilityNetworkAccess bool
If set to false, nodes in this group will not have access to utility network.
Cluster This property is required. string
UUID of the cluster.
NodeCount This property is required. int
Amount of nodes to provision in the node group.
Plan This property is required. string
The server plan used for the node group. You can list available plans with upctl server plans
AntiAffinity bool
If set to true, nodes in this group will be placed on separate compute hosts. Please note that anti-affinity policy is considered 'best effort' and enabling it does not fully guarantee that the nodes will end up on different hardware.
CustomPlan KubernetesNodeGroupCustomPlanArgs
Resource properties for custom plan
KubeletArgs []KubernetesNodeGroupKubeletArgArgs
Additional arguments for kubelet for the nodes in this group. WARNING - those arguments will be passed directly to kubelet CLI on each worker node without any validation. Passing invalid arguments can break your whole cluster. Be extra careful when adding kubelet args.
Labels map[string]string
User defined key-value pairs to classify the node_group.
Name string
The name of the node group. Needs to be unique within a cluster.
SshKeys []string
You can optionally select SSH keys to be added as authorized keys to the nodes in this node group. This allows you to connect to the nodes via SSH once they are running.
StorageEncryption string
The storage encryption strategy to use for the nodes in this group. If not set, the cluster's storage encryption strategy will be used, if applicable.
Taints []KubernetesNodeGroupTaintArgs
Taints for the nodes in this group.
UtilityNetworkAccess bool
If set to false, nodes in this group will not have access to utility network.
cluster This property is required. String
UUID of the cluster.
nodeCount This property is required. Integer
Amount of nodes to provision in the node group.
plan This property is required. String
The server plan used for the node group. You can list available plans with upctl server plans
antiAffinity Boolean
If set to true, nodes in this group will be placed on separate compute hosts. Please note that anti-affinity policy is considered 'best effort' and enabling it does not fully guarantee that the nodes will end up on different hardware.
customPlan KubernetesNodeGroupCustomPlan
Resource properties for custom plan
kubeletArgs List<KubernetesNodeGroupKubeletArg>
Additional arguments for kubelet for the nodes in this group. WARNING - those arguments will be passed directly to kubelet CLI on each worker node without any validation. Passing invalid arguments can break your whole cluster. Be extra careful when adding kubelet args.
labels Map<String,String>
User defined key-value pairs to classify the node_group.
name String
The name of the node group. Needs to be unique within a cluster.
sshKeys List<String>
You can optionally select SSH keys to be added as authorized keys to the nodes in this node group. This allows you to connect to the nodes via SSH once they are running.
storageEncryption String
The storage encryption strategy to use for the nodes in this group. If not set, the cluster's storage encryption strategy will be used, if applicable.
taints List<KubernetesNodeGroupTaint>
Taints for the nodes in this group.
utilityNetworkAccess Boolean
If set to false, nodes in this group will not have access to utility network.
cluster This property is required. string
UUID of the cluster.
nodeCount This property is required. number
Amount of nodes to provision in the node group.
plan This property is required. string
The server plan used for the node group. You can list available plans with upctl server plans
antiAffinity boolean
If set to true, nodes in this group will be placed on separate compute hosts. Please note that anti-affinity policy is considered 'best effort' and enabling it does not fully guarantee that the nodes will end up on different hardware.
customPlan KubernetesNodeGroupCustomPlan
Resource properties for custom plan
kubeletArgs KubernetesNodeGroupKubeletArg[]
Additional arguments for kubelet for the nodes in this group. WARNING - those arguments will be passed directly to kubelet CLI on each worker node without any validation. Passing invalid arguments can break your whole cluster. Be extra careful when adding kubelet args.
labels {[key: string]: string}
User defined key-value pairs to classify the node_group.
name string
The name of the node group. Needs to be unique within a cluster.
sshKeys string[]
You can optionally select SSH keys to be added as authorized keys to the nodes in this node group. This allows you to connect to the nodes via SSH once they are running.
storageEncryption string
The storage encryption strategy to use for the nodes in this group. If not set, the cluster's storage encryption strategy will be used, if applicable.
taints KubernetesNodeGroupTaint[]
Taints for the nodes in this group.
utilityNetworkAccess boolean
If set to false, nodes in this group will not have access to utility network.
cluster This property is required. str
UUID of the cluster.
node_count This property is required. int
Amount of nodes to provision in the node group.
plan This property is required. str
The server plan used for the node group. You can list available plans with upctl server plans
anti_affinity bool
If set to true, nodes in this group will be placed on separate compute hosts. Please note that anti-affinity policy is considered 'best effort' and enabling it does not fully guarantee that the nodes will end up on different hardware.
custom_plan KubernetesNodeGroupCustomPlanArgs
Resource properties for custom plan
kubelet_args Sequence[KubernetesNodeGroupKubeletArgArgs]
Additional arguments for kubelet for the nodes in this group. WARNING - those arguments will be passed directly to kubelet CLI on each worker node without any validation. Passing invalid arguments can break your whole cluster. Be extra careful when adding kubelet args.
labels Mapping[str, str]
User defined key-value pairs to classify the node_group.
name str
The name of the node group. Needs to be unique within a cluster.
ssh_keys Sequence[str]
You can optionally select SSH keys to be added as authorized keys to the nodes in this node group. This allows you to connect to the nodes via SSH once they are running.
storage_encryption str
The storage encryption strategy to use for the nodes in this group. If not set, the cluster's storage encryption strategy will be used, if applicable.
taints Sequence[KubernetesNodeGroupTaintArgs]
Taints for the nodes in this group.
utility_network_access bool
If set to false, nodes in this group will not have access to utility network.
cluster This property is required. String
UUID of the cluster.
nodeCount This property is required. Number
Amount of nodes to provision in the node group.
plan This property is required. String
The server plan used for the node group. You can list available plans with upctl server plans
antiAffinity Boolean
If set to true, nodes in this group will be placed on separate compute hosts. Please note that anti-affinity policy is considered 'best effort' and enabling it does not fully guarantee that the nodes will end up on different hardware.
customPlan Property Map
Resource properties for custom plan
kubeletArgs List<Property Map>
Additional arguments for kubelet for the nodes in this group. WARNING - those arguments will be passed directly to kubelet CLI on each worker node without any validation. Passing invalid arguments can break your whole cluster. Be extra careful when adding kubelet args.
labels Map<String>
User defined key-value pairs to classify the node_group.
name String
The name of the node group. Needs to be unique within a cluster.
sshKeys List<String>
You can optionally select SSH keys to be added as authorized keys to the nodes in this node group. This allows you to connect to the nodes via SSH once they are running.
storageEncryption String
The storage encryption strategy to use for the nodes in this group. If not set, the cluster's storage encryption strategy will be used, if applicable.
taints List<Property Map>
Taints for the nodes in this group.
utilityNetworkAccess Boolean
If set to false, nodes in this group will not have access to utility network.

Outputs

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

Id string
The provider-assigned unique ID for this managed resource.
Id string
The provider-assigned unique ID for this managed resource.
id String
The provider-assigned unique ID for this managed resource.
id string
The provider-assigned unique ID for this managed resource.
id str
The provider-assigned unique ID for this managed resource.
id String
The provider-assigned unique ID for this managed resource.

Look up Existing KubernetesNodeGroup Resource

Get an existing KubernetesNodeGroup 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?: KubernetesNodeGroupState, opts?: CustomResourceOptions): KubernetesNodeGroup
@staticmethod
def get(resource_name: str,
        id: str,
        opts: Optional[ResourceOptions] = None,
        anti_affinity: Optional[bool] = None,
        cluster: Optional[str] = None,
        custom_plan: Optional[KubernetesNodeGroupCustomPlanArgs] = None,
        kubelet_args: Optional[Sequence[KubernetesNodeGroupKubeletArgArgs]] = None,
        labels: Optional[Mapping[str, str]] = None,
        name: Optional[str] = None,
        node_count: Optional[int] = None,
        plan: Optional[str] = None,
        ssh_keys: Optional[Sequence[str]] = None,
        storage_encryption: Optional[str] = None,
        taints: Optional[Sequence[KubernetesNodeGroupTaintArgs]] = None,
        utility_network_access: Optional[bool] = None) -> KubernetesNodeGroup
func GetKubernetesNodeGroup(ctx *Context, name string, id IDInput, state *KubernetesNodeGroupState, opts ...ResourceOption) (*KubernetesNodeGroup, error)
public static KubernetesNodeGroup Get(string name, Input<string> id, KubernetesNodeGroupState? state, CustomResourceOptions? opts = null)
public static KubernetesNodeGroup get(String name, Output<String> id, KubernetesNodeGroupState state, CustomResourceOptions options)
resources:  _:    type: upcloud:KubernetesNodeGroup    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:
AntiAffinity bool
If set to true, nodes in this group will be placed on separate compute hosts. Please note that anti-affinity policy is considered 'best effort' and enabling it does not fully guarantee that the nodes will end up on different hardware.
Cluster string
UUID of the cluster.
CustomPlan UpCloud.Pulumi.UpCloud.Inputs.KubernetesNodeGroupCustomPlan
Resource properties for custom plan
KubeletArgs List<UpCloud.Pulumi.UpCloud.Inputs.KubernetesNodeGroupKubeletArg>
Additional arguments for kubelet for the nodes in this group. WARNING - those arguments will be passed directly to kubelet CLI on each worker node without any validation. Passing invalid arguments can break your whole cluster. Be extra careful when adding kubelet args.
Labels Dictionary<string, string>
User defined key-value pairs to classify the node_group.
Name string
The name of the node group. Needs to be unique within a cluster.
NodeCount int
Amount of nodes to provision in the node group.
Plan string
The server plan used for the node group. You can list available plans with upctl server plans
SshKeys List<string>
You can optionally select SSH keys to be added as authorized keys to the nodes in this node group. This allows you to connect to the nodes via SSH once they are running.
StorageEncryption string
The storage encryption strategy to use for the nodes in this group. If not set, the cluster's storage encryption strategy will be used, if applicable.
Taints List<UpCloud.Pulumi.UpCloud.Inputs.KubernetesNodeGroupTaint>
Taints for the nodes in this group.
UtilityNetworkAccess bool
If set to false, nodes in this group will not have access to utility network.
AntiAffinity bool
If set to true, nodes in this group will be placed on separate compute hosts. Please note that anti-affinity policy is considered 'best effort' and enabling it does not fully guarantee that the nodes will end up on different hardware.
Cluster string
UUID of the cluster.
CustomPlan KubernetesNodeGroupCustomPlanArgs
Resource properties for custom plan
KubeletArgs []KubernetesNodeGroupKubeletArgArgs
Additional arguments for kubelet for the nodes in this group. WARNING - those arguments will be passed directly to kubelet CLI on each worker node without any validation. Passing invalid arguments can break your whole cluster. Be extra careful when adding kubelet args.
Labels map[string]string
User defined key-value pairs to classify the node_group.
Name string
The name of the node group. Needs to be unique within a cluster.
NodeCount int
Amount of nodes to provision in the node group.
Plan string
The server plan used for the node group. You can list available plans with upctl server plans
SshKeys []string
You can optionally select SSH keys to be added as authorized keys to the nodes in this node group. This allows you to connect to the nodes via SSH once they are running.
StorageEncryption string
The storage encryption strategy to use for the nodes in this group. If not set, the cluster's storage encryption strategy will be used, if applicable.
Taints []KubernetesNodeGroupTaintArgs
Taints for the nodes in this group.
UtilityNetworkAccess bool
If set to false, nodes in this group will not have access to utility network.
antiAffinity Boolean
If set to true, nodes in this group will be placed on separate compute hosts. Please note that anti-affinity policy is considered 'best effort' and enabling it does not fully guarantee that the nodes will end up on different hardware.
cluster String
UUID of the cluster.
customPlan KubernetesNodeGroupCustomPlan
Resource properties for custom plan
kubeletArgs List<KubernetesNodeGroupKubeletArg>
Additional arguments for kubelet for the nodes in this group. WARNING - those arguments will be passed directly to kubelet CLI on each worker node without any validation. Passing invalid arguments can break your whole cluster. Be extra careful when adding kubelet args.
labels Map<String,String>
User defined key-value pairs to classify the node_group.
name String
The name of the node group. Needs to be unique within a cluster.
nodeCount Integer
Amount of nodes to provision in the node group.
plan String
The server plan used for the node group. You can list available plans with upctl server plans
sshKeys List<String>
You can optionally select SSH keys to be added as authorized keys to the nodes in this node group. This allows you to connect to the nodes via SSH once they are running.
storageEncryption String
The storage encryption strategy to use for the nodes in this group. If not set, the cluster's storage encryption strategy will be used, if applicable.
taints List<KubernetesNodeGroupTaint>
Taints for the nodes in this group.
utilityNetworkAccess Boolean
If set to false, nodes in this group will not have access to utility network.
antiAffinity boolean
If set to true, nodes in this group will be placed on separate compute hosts. Please note that anti-affinity policy is considered 'best effort' and enabling it does not fully guarantee that the nodes will end up on different hardware.
cluster string
UUID of the cluster.
customPlan KubernetesNodeGroupCustomPlan
Resource properties for custom plan
kubeletArgs KubernetesNodeGroupKubeletArg[]
Additional arguments for kubelet for the nodes in this group. WARNING - those arguments will be passed directly to kubelet CLI on each worker node without any validation. Passing invalid arguments can break your whole cluster. Be extra careful when adding kubelet args.
labels {[key: string]: string}
User defined key-value pairs to classify the node_group.
name string
The name of the node group. Needs to be unique within a cluster.
nodeCount number
Amount of nodes to provision in the node group.
plan string
The server plan used for the node group. You can list available plans with upctl server plans
sshKeys string[]
You can optionally select SSH keys to be added as authorized keys to the nodes in this node group. This allows you to connect to the nodes via SSH once they are running.
storageEncryption string
The storage encryption strategy to use for the nodes in this group. If not set, the cluster's storage encryption strategy will be used, if applicable.
taints KubernetesNodeGroupTaint[]
Taints for the nodes in this group.
utilityNetworkAccess boolean
If set to false, nodes in this group will not have access to utility network.
anti_affinity bool
If set to true, nodes in this group will be placed on separate compute hosts. Please note that anti-affinity policy is considered 'best effort' and enabling it does not fully guarantee that the nodes will end up on different hardware.
cluster str
UUID of the cluster.
custom_plan KubernetesNodeGroupCustomPlanArgs
Resource properties for custom plan
kubelet_args Sequence[KubernetesNodeGroupKubeletArgArgs]
Additional arguments for kubelet for the nodes in this group. WARNING - those arguments will be passed directly to kubelet CLI on each worker node without any validation. Passing invalid arguments can break your whole cluster. Be extra careful when adding kubelet args.
labels Mapping[str, str]
User defined key-value pairs to classify the node_group.
name str
The name of the node group. Needs to be unique within a cluster.
node_count int
Amount of nodes to provision in the node group.
plan str
The server plan used for the node group. You can list available plans with upctl server plans
ssh_keys Sequence[str]
You can optionally select SSH keys to be added as authorized keys to the nodes in this node group. This allows you to connect to the nodes via SSH once they are running.
storage_encryption str
The storage encryption strategy to use for the nodes in this group. If not set, the cluster's storage encryption strategy will be used, if applicable.
taints Sequence[KubernetesNodeGroupTaintArgs]
Taints for the nodes in this group.
utility_network_access bool
If set to false, nodes in this group will not have access to utility network.
antiAffinity Boolean
If set to true, nodes in this group will be placed on separate compute hosts. Please note that anti-affinity policy is considered 'best effort' and enabling it does not fully guarantee that the nodes will end up on different hardware.
cluster String
UUID of the cluster.
customPlan Property Map
Resource properties for custom plan
kubeletArgs List<Property Map>
Additional arguments for kubelet for the nodes in this group. WARNING - those arguments will be passed directly to kubelet CLI on each worker node without any validation. Passing invalid arguments can break your whole cluster. Be extra careful when adding kubelet args.
labels Map<String>
User defined key-value pairs to classify the node_group.
name String
The name of the node group. Needs to be unique within a cluster.
nodeCount Number
Amount of nodes to provision in the node group.
plan String
The server plan used for the node group. You can list available plans with upctl server plans
sshKeys List<String>
You can optionally select SSH keys to be added as authorized keys to the nodes in this node group. This allows you to connect to the nodes via SSH once they are running.
storageEncryption String
The storage encryption strategy to use for the nodes in this group. If not set, the cluster's storage encryption strategy will be used, if applicable.
taints List<Property Map>
Taints for the nodes in this group.
utilityNetworkAccess Boolean
If set to false, nodes in this group will not have access to utility network.

Supporting Types

KubernetesNodeGroupCustomPlan
, KubernetesNodeGroupCustomPlanArgs

Cores This property is required. int
The number of CPU cores dedicated to individual node group nodes when using custom plan
Memory This property is required. int
The amount of memory in megabytes to assign to individual node group node when using custom plan. Value needs to be divisible by 1024.
StorageSize This property is required. int
The size of the storage device in gigabytes.
StorageTier string
The storage tier to use. Defaults to maxiops
Cores This property is required. int
The number of CPU cores dedicated to individual node group nodes when using custom plan
Memory This property is required. int
The amount of memory in megabytes to assign to individual node group node when using custom plan. Value needs to be divisible by 1024.
StorageSize This property is required. int
The size of the storage device in gigabytes.
StorageTier string
The storage tier to use. Defaults to maxiops
cores This property is required. Integer
The number of CPU cores dedicated to individual node group nodes when using custom plan
memory This property is required. Integer
The amount of memory in megabytes to assign to individual node group node when using custom plan. Value needs to be divisible by 1024.
storageSize This property is required. Integer
The size of the storage device in gigabytes.
storageTier String
The storage tier to use. Defaults to maxiops
cores This property is required. number
The number of CPU cores dedicated to individual node group nodes when using custom plan
memory This property is required. number
The amount of memory in megabytes to assign to individual node group node when using custom plan. Value needs to be divisible by 1024.
storageSize This property is required. number
The size of the storage device in gigabytes.
storageTier string
The storage tier to use. Defaults to maxiops
cores This property is required. int
The number of CPU cores dedicated to individual node group nodes when using custom plan
memory This property is required. int
The amount of memory in megabytes to assign to individual node group node when using custom plan. Value needs to be divisible by 1024.
storage_size This property is required. int
The size of the storage device in gigabytes.
storage_tier str
The storage tier to use. Defaults to maxiops
cores This property is required. Number
The number of CPU cores dedicated to individual node group nodes when using custom plan
memory This property is required. Number
The amount of memory in megabytes to assign to individual node group node when using custom plan. Value needs to be divisible by 1024.
storageSize This property is required. Number
The size of the storage device in gigabytes.
storageTier String
The storage tier to use. Defaults to maxiops

KubernetesNodeGroupKubeletArg
, KubernetesNodeGroupKubeletArgArgs

Key This property is required. string
Kubelet argument key.
Value This property is required. string
Kubelet argument value.
Key This property is required. string
Kubelet argument key.
Value This property is required. string
Kubelet argument value.
key This property is required. String
Kubelet argument key.
value This property is required. String
Kubelet argument value.
key This property is required. string
Kubelet argument key.
value This property is required. string
Kubelet argument value.
key This property is required. str
Kubelet argument key.
value This property is required. str
Kubelet argument value.
key This property is required. String
Kubelet argument key.
value This property is required. String
Kubelet argument value.

KubernetesNodeGroupTaint
, KubernetesNodeGroupTaintArgs

Effect This property is required. string
Taint effect.
Key This property is required. string
Taint key.
Value This property is required. string
Taint value.
Effect This property is required. string
Taint effect.
Key This property is required. string
Taint key.
Value This property is required. string
Taint value.
effect This property is required. String
Taint effect.
key This property is required. String
Taint key.
value This property is required. String
Taint value.
effect This property is required. string
Taint effect.
key This property is required. string
Taint key.
value This property is required. string
Taint value.
effect This property is required. str
Taint effect.
key This property is required. str
Taint key.
value This property is required. str
Taint value.
effect This property is required. String
Taint effect.
key This property is required. String
Taint key.
value This property is required. String
Taint value.

Package Details

Repository
upcloud UpCloudLtd/pulumi-upcloud
License
Apache-2.0
Notes
This Pulumi package is based on the upcloud Terraform Provider.