published on Tuesday, May 5, 2026 by vk-cs
published on Tuesday, May 5, 2026 by vk-cs
Standard Kubernetes cluster
import * as pulumi from "@pulumi/pulumi";
import * as vkcs from "@pulumi/vkcs";
const k8sCluster = new vkcs.KubernetesClusterV2("k8s_cluster", {
name: "k8s-standard-cluster",
description: "An example of a standard Kubernetes cluster v2 created via Terraform",
version: "v1.34.2",
clusterType: "standard",
masterCount: 1,
availabilityZones: ["MS1"],
masterFlavor: master.id,
networkId: appVkcsNetworkingNetwork.id,
subnetId: appVkcsNetworkingSubnet.id,
loadbalancerSubnetId: appVkcsNetworkingSubnet.id,
networkPlugin: "calico",
podsIpv4Cidr: "10.100.0.0/16",
}, {
dependsOn: [app],
});
import pulumi
import pulumi_vkcs as vkcs
k8s_cluster = vkcs.KubernetesClusterV2("k8s_cluster",
name="k8s-standard-cluster",
description="An example of a standard Kubernetes cluster v2 created via Terraform",
version="v1.34.2",
cluster_type="standard",
master_count=1,
availability_zones=["MS1"],
master_flavor=master["id"],
network_id=app_vkcs_networking_network["id"],
subnet_id=app_vkcs_networking_subnet["id"],
loadbalancer_subnet_id=app_vkcs_networking_subnet["id"],
network_plugin="calico",
pods_ipv4_cidr="10.100.0.0/16",
opts = pulumi.ResourceOptions(depends_on=[app]))
package main
import (
"github.com/pulumi/pulumi-terraform-provider/sdks/go/vkcs/vkcs"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := vkcs.NewKubernetesClusterV2(ctx, "k8s_cluster", &vkcs.KubernetesClusterV2Args{
Name: pulumi.String("k8s-standard-cluster"),
Description: pulumi.String("An example of a standard Kubernetes cluster v2 created via Terraform"),
Version: pulumi.String("v1.34.2"),
ClusterType: pulumi.String("standard"),
MasterCount: pulumi.Float64(1),
AvailabilityZones: pulumi.StringArray{
pulumi.String("MS1"),
},
MasterFlavor: pulumi.Any(master.Id),
NetworkId: pulumi.Any(appVkcsNetworkingNetwork.Id),
SubnetId: pulumi.Any(appVkcsNetworkingSubnet.Id),
LoadbalancerSubnetId: pulumi.Any(appVkcsNetworkingSubnet.Id),
NetworkPlugin: pulumi.String("calico"),
PodsIpv4Cidr: pulumi.String("10.100.0.0/16"),
}, pulumi.DependsOn([]pulumi.Resource{
app,
}))
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Vkcs = Pulumi.Vkcs;
return await Deployment.RunAsync(() =>
{
var k8sCluster = new Vkcs.KubernetesClusterV2("k8s_cluster", new()
{
Name = "k8s-standard-cluster",
Description = "An example of a standard Kubernetes cluster v2 created via Terraform",
Version = "v1.34.2",
ClusterType = "standard",
MasterCount = 1,
AvailabilityZones = new[]
{
"MS1",
},
MasterFlavor = master.Id,
NetworkId = appVkcsNetworkingNetwork.Id,
SubnetId = appVkcsNetworkingSubnet.Id,
LoadbalancerSubnetId = appVkcsNetworkingSubnet.Id,
NetworkPlugin = "calico",
PodsIpv4Cidr = "10.100.0.0/16",
}, new CustomResourceOptions
{
DependsOn =
{
app,
},
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.vkcs.KubernetesClusterV2;
import com.pulumi.vkcs.KubernetesClusterV2Args;
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 k8sCluster = new KubernetesClusterV2("k8sCluster", KubernetesClusterV2Args.builder()
.name("k8s-standard-cluster")
.description("An example of a standard Kubernetes cluster v2 created via Terraform")
.version("v1.34.2")
.clusterType("standard")
.masterCount(1.0)
.availabilityZones("MS1")
.masterFlavor(master.id())
.networkId(appVkcsNetworkingNetwork.id())
.subnetId(appVkcsNetworkingSubnet.id())
.loadbalancerSubnetId(appVkcsNetworkingSubnet.id())
.networkPlugin("calico")
.podsIpv4Cidr("10.100.0.0/16")
.build(), CustomResourceOptions.builder()
.dependsOn(app)
.build());
}
}
resources:
k8sCluster:
type: vkcs:KubernetesClusterV2
name: k8s_cluster
properties:
name: k8s-standard-cluster
description: An example of a standard Kubernetes cluster v2 created via Terraform
version: v1.34.2
clusterType: standard
masterCount: 1
availabilityZones:
- MS1
masterFlavor: ${master.id}
networkId: ${appVkcsNetworkingNetwork.id}
subnetId: ${appVkcsNetworkingSubnet.id}
loadbalancerSubnetId: ${appVkcsNetworkingSubnet.id}
networkPlugin: calico
podsIpv4Cidr: 10.100.0.0/16
options:
dependsOn:
- ${app}
Regional Kubernetes cluster
import * as pulumi from "@pulumi/pulumi";
import * as vkcs from "@pulumi/vkcs";
const k8sCluster = new vkcs.KubernetesClusterV2("k8s_cluster", {
name: "k8s-regional-cluster",
description: "An example of a regional Kubernetes cluster v2 created via Terraform",
version: "v1.34.2",
clusterType: "regional",
masterCount: 3,
availabilityZones: [
"GZ1",
"MS1",
"ME1",
],
masterFlavor: master.id,
networkId: appVkcsNetworkingNetwork.id,
subnetId: appVkcsNetworkingSubnet.id,
loadbalancerSubnetId: appVkcsNetworkingSubnet.id,
networkPlugin: "calico",
podsIpv4Cidr: "10.100.0.0/16",
}, {
dependsOn: [app],
});
import pulumi
import pulumi_vkcs as vkcs
k8s_cluster = vkcs.KubernetesClusterV2("k8s_cluster",
name="k8s-regional-cluster",
description="An example of a regional Kubernetes cluster v2 created via Terraform",
version="v1.34.2",
cluster_type="regional",
master_count=3,
availability_zones=[
"GZ1",
"MS1",
"ME1",
],
master_flavor=master["id"],
network_id=app_vkcs_networking_network["id"],
subnet_id=app_vkcs_networking_subnet["id"],
loadbalancer_subnet_id=app_vkcs_networking_subnet["id"],
network_plugin="calico",
pods_ipv4_cidr="10.100.0.0/16",
opts = pulumi.ResourceOptions(depends_on=[app]))
package main
import (
"github.com/pulumi/pulumi-terraform-provider/sdks/go/vkcs/vkcs"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := vkcs.NewKubernetesClusterV2(ctx, "k8s_cluster", &vkcs.KubernetesClusterV2Args{
Name: pulumi.String("k8s-regional-cluster"),
Description: pulumi.String("An example of a regional Kubernetes cluster v2 created via Terraform"),
Version: pulumi.String("v1.34.2"),
ClusterType: pulumi.String("regional"),
MasterCount: pulumi.Float64(3),
AvailabilityZones: pulumi.StringArray{
pulumi.String("GZ1"),
pulumi.String("MS1"),
pulumi.String("ME1"),
},
MasterFlavor: pulumi.Any(master.Id),
NetworkId: pulumi.Any(appVkcsNetworkingNetwork.Id),
SubnetId: pulumi.Any(appVkcsNetworkingSubnet.Id),
LoadbalancerSubnetId: pulumi.Any(appVkcsNetworkingSubnet.Id),
NetworkPlugin: pulumi.String("calico"),
PodsIpv4Cidr: pulumi.String("10.100.0.0/16"),
}, pulumi.DependsOn([]pulumi.Resource{
app,
}))
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Vkcs = Pulumi.Vkcs;
return await Deployment.RunAsync(() =>
{
var k8sCluster = new Vkcs.KubernetesClusterV2("k8s_cluster", new()
{
Name = "k8s-regional-cluster",
Description = "An example of a regional Kubernetes cluster v2 created via Terraform",
Version = "v1.34.2",
ClusterType = "regional",
MasterCount = 3,
AvailabilityZones = new[]
{
"GZ1",
"MS1",
"ME1",
},
MasterFlavor = master.Id,
NetworkId = appVkcsNetworkingNetwork.Id,
SubnetId = appVkcsNetworkingSubnet.Id,
LoadbalancerSubnetId = appVkcsNetworkingSubnet.Id,
NetworkPlugin = "calico",
PodsIpv4Cidr = "10.100.0.0/16",
}, new CustomResourceOptions
{
DependsOn =
{
app,
},
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.vkcs.KubernetesClusterV2;
import com.pulumi.vkcs.KubernetesClusterV2Args;
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 k8sCluster = new KubernetesClusterV2("k8sCluster", KubernetesClusterV2Args.builder()
.name("k8s-regional-cluster")
.description("An example of a regional Kubernetes cluster v2 created via Terraform")
.version("v1.34.2")
.clusterType("regional")
.masterCount(3.0)
.availabilityZones(
"GZ1",
"MS1",
"ME1")
.masterFlavor(master.id())
.networkId(appVkcsNetworkingNetwork.id())
.subnetId(appVkcsNetworkingSubnet.id())
.loadbalancerSubnetId(appVkcsNetworkingSubnet.id())
.networkPlugin("calico")
.podsIpv4Cidr("10.100.0.0/16")
.build(), CustomResourceOptions.builder()
.dependsOn(app)
.build());
}
}
resources:
k8sCluster:
type: vkcs:KubernetesClusterV2
name: k8s_cluster
properties:
name: k8s-regional-cluster
description: An example of a regional Kubernetes cluster v2 created via Terraform
version: v1.34.2
clusterType: regional
masterCount: 3
availabilityZones:
- GZ1
- MS1
- ME1
masterFlavor: ${master.id}
networkId: ${appVkcsNetworkingNetwork.id}
subnetId: ${appVkcsNetworkingSubnet.id}
loadbalancerSubnetId: ${appVkcsNetworkingSubnet.id}
networkPlugin: calico
podsIpv4Cidr: 10.100.0.0/16
options:
dependsOn:
- ${app}
Create KubernetesClusterV2 Resource
Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.
Constructor syntax
new KubernetesClusterV2(name: string, args: KubernetesClusterV2Args, opts?: CustomResourceOptions);@overload
def KubernetesClusterV2(resource_name: str,
args: KubernetesClusterV2Args,
opts: Optional[ResourceOptions] = None)
@overload
def KubernetesClusterV2(resource_name: str,
opts: Optional[ResourceOptions] = None,
availability_zones: Optional[Sequence[str]] = None,
cluster_type: Optional[str] = None,
version: Optional[str] = None,
subnet_id: Optional[str] = None,
pods_ipv4_cidr: Optional[str] = None,
network_plugin: Optional[str] = None,
network_id: Optional[str] = None,
loadbalancer_subnet_id: Optional[str] = None,
master_count: Optional[float] = None,
master_flavor: Optional[str] = None,
name: Optional[str] = None,
loadbalancer_allowed_cidrs: Optional[Sequence[str]] = None,
labels: Optional[Mapping[str, str]] = None,
insecure_registries: Optional[Sequence[str]] = None,
public_ip: Optional[bool] = None,
region: Optional[str] = None,
external_network_id: Optional[str] = None,
timeouts: Optional[KubernetesClusterV2TimeoutsArgs] = None,
uuid: Optional[str] = None,
description: Optional[str] = None)func NewKubernetesClusterV2(ctx *Context, name string, args KubernetesClusterV2Args, opts ...ResourceOption) (*KubernetesClusterV2, error)public KubernetesClusterV2(string name, KubernetesClusterV2Args args, CustomResourceOptions? opts = null)
public KubernetesClusterV2(String name, KubernetesClusterV2Args args)
public KubernetesClusterV2(String name, KubernetesClusterV2Args args, CustomResourceOptions options)
type: vkcs:KubernetesClusterV2
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.
Parameters
- name string
- The unique name of the resource.
- args KubernetesClusterV2Args
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- resource_name str
- The unique name of the resource.
- args KubernetesClusterV2Args
- The arguments to resource properties.
- opts ResourceOptions
- Bag of options to control resource's behavior.
- ctx Context
- Context object for the current deployment.
- name string
- The unique name of the resource.
- args KubernetesClusterV2Args
- The arguments to resource properties.
- opts ResourceOption
- Bag of options to control resource's behavior.
- name string
- The unique name of the resource.
- args KubernetesClusterV2Args
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- name String
- The unique name of the resource.
- args KubernetesClusterV2Args
- 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 kubernetesClusterV2Resource = new Vkcs.KubernetesClusterV2("kubernetesClusterV2Resource", new()
{
AvailabilityZones = new[]
{
"string",
},
ClusterType = "string",
Version = "string",
SubnetId = "string",
PodsIpv4Cidr = "string",
NetworkPlugin = "string",
NetworkId = "string",
LoadbalancerSubnetId = "string",
MasterCount = 0,
MasterFlavor = "string",
Name = "string",
LoadbalancerAllowedCidrs = new[]
{
"string",
},
Labels =
{
{ "string", "string" },
},
InsecureRegistries = new[]
{
"string",
},
PublicIp = false,
Region = "string",
ExternalNetworkId = "string",
Timeouts = new Vkcs.Inputs.KubernetesClusterV2TimeoutsArgs
{
Create = "string",
Delete = "string",
Update = "string",
},
Uuid = "string",
Description = "string",
});
example, err := vkcs.NewKubernetesClusterV2(ctx, "kubernetesClusterV2Resource", &vkcs.KubernetesClusterV2Args{
AvailabilityZones: pulumi.StringArray{
pulumi.String("string"),
},
ClusterType: pulumi.String("string"),
Version: pulumi.String("string"),
SubnetId: pulumi.String("string"),
PodsIpv4Cidr: pulumi.String("string"),
NetworkPlugin: pulumi.String("string"),
NetworkId: pulumi.String("string"),
LoadbalancerSubnetId: pulumi.String("string"),
MasterCount: pulumi.Float64(0),
MasterFlavor: pulumi.String("string"),
Name: pulumi.String("string"),
LoadbalancerAllowedCidrs: pulumi.StringArray{
pulumi.String("string"),
},
Labels: pulumi.StringMap{
"string": pulumi.String("string"),
},
InsecureRegistries: pulumi.StringArray{
pulumi.String("string"),
},
PublicIp: pulumi.Bool(false),
Region: pulumi.String("string"),
ExternalNetworkId: pulumi.String("string"),
Timeouts: &vkcs.KubernetesClusterV2TimeoutsArgs{
Create: pulumi.String("string"),
Delete: pulumi.String("string"),
Update: pulumi.String("string"),
},
Uuid: pulumi.String("string"),
Description: pulumi.String("string"),
})
var kubernetesClusterV2Resource = new KubernetesClusterV2("kubernetesClusterV2Resource", KubernetesClusterV2Args.builder()
.availabilityZones("string")
.clusterType("string")
.version("string")
.subnetId("string")
.podsIpv4Cidr("string")
.networkPlugin("string")
.networkId("string")
.loadbalancerSubnetId("string")
.masterCount(0.0)
.masterFlavor("string")
.name("string")
.loadbalancerAllowedCidrs("string")
.labels(Map.of("string", "string"))
.insecureRegistries("string")
.publicIp(false)
.region("string")
.externalNetworkId("string")
.timeouts(KubernetesClusterV2TimeoutsArgs.builder()
.create("string")
.delete("string")
.update("string")
.build())
.uuid("string")
.description("string")
.build());
kubernetes_cluster_v2_resource = vkcs.KubernetesClusterV2("kubernetesClusterV2Resource",
availability_zones=["string"],
cluster_type="string",
version="string",
subnet_id="string",
pods_ipv4_cidr="string",
network_plugin="string",
network_id="string",
loadbalancer_subnet_id="string",
master_count=float(0),
master_flavor="string",
name="string",
loadbalancer_allowed_cidrs=["string"],
labels={
"string": "string",
},
insecure_registries=["string"],
public_ip=False,
region="string",
external_network_id="string",
timeouts={
"create": "string",
"delete": "string",
"update": "string",
},
uuid="string",
description="string")
const kubernetesClusterV2Resource = new vkcs.KubernetesClusterV2("kubernetesClusterV2Resource", {
availabilityZones: ["string"],
clusterType: "string",
version: "string",
subnetId: "string",
podsIpv4Cidr: "string",
networkPlugin: "string",
networkId: "string",
loadbalancerSubnetId: "string",
masterCount: 0,
masterFlavor: "string",
name: "string",
loadbalancerAllowedCidrs: ["string"],
labels: {
string: "string",
},
insecureRegistries: ["string"],
publicIp: false,
region: "string",
externalNetworkId: "string",
timeouts: {
create: "string",
"delete": "string",
update: "string",
},
uuid: "string",
description: "string",
});
type: vkcs:KubernetesClusterV2
properties:
availabilityZones:
- string
clusterType: string
description: string
externalNetworkId: string
insecureRegistries:
- string
labels:
string: string
loadbalancerAllowedCidrs:
- string
loadbalancerSubnetId: string
masterCount: 0
masterFlavor: string
name: string
networkId: string
networkPlugin: string
podsIpv4Cidr: string
publicIp: false
region: string
subnetId: string
timeouts:
create: string
delete: string
update: string
uuid: string
version: string
KubernetesClusterV2 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 KubernetesClusterV2 resource accepts the following input properties:
- Availability
Zones List<string> - required set of string → A set of availability zones for the cluster's masters. For a
standardcluster, provide 1, 3, or 5 zones. For aregionalcluster, provide 3 or 5 zones. Forces replacement on change. - Cluster
Type string - required string → Either
standard(single AZ) orregional(three AZs). Forces replacement on change. - Loadbalancer
Subnet stringId - required string → The ID of the subnet where LoadBalancer services will be allocated IPs. Forces replacement on change.
- Master
Count double - required number → The number of master nodes. Must be an odd number to maintain etcd quorum (1, 3, or 5). Forces replacement on change.
- Master
Flavor string - required string → The flavor ID for master nodes. Changing this triggers a rolling upgrade of the control plane.
- Network
Id string - required string → The ID of the VPC network where the cluster will be deployed. The network must use the
sprutSDN. Forces replacement on change. - Network
Plugin string - required string → The CNI plugin to use. Currently only
calicois supported. Forces replacement on change. - Pods
Ipv4Cidr string - required string → The IPv4 CIDR block for the pod network. Must be a valid private CIDR (e.g.,
10.100.0.0/16). Forces replacement on change. - Subnet
Id string - required string → The ID of the subnet for cluster nodes. Forces replacement on change.
- Version string
- required string → The Kubernetes version to deploy. Only upgrades to a higher version are allowed.
- Description string
- optional string → A human-readable description of the cluster. Forces replacement on change. The maximum length is 256 characters.
- External
Network stringId - optional string → The ID of the external network for internet access. If omitted, the system selects one automatically. Forces replacement on change.
- Insecure
Registries List<string> - optional set of string → A set of registry addresses (e.g.,
myregistry.com) that can be accessed without TLS verification. Forces replacement on change. - Labels Dictionary<string, string>
- optional map of string → A map of Kubernetes labels to apply to the cluster. Keys and values must conform to Kubernetes label syntax. Forces replacement on change.
- Loadbalancer
Allowed List<string>Cidrs - optional set of string → A set of CIDR blocks permitted to access the API load balancer. If empty, all IPs are allowed. Forces replacement on change.
- Name string
- required string → A unique cluster name. Must be 3-25 lowercase alphanumeric characters or hyphens, start/end with alphanumeric, and contain no consecutive hyphens. Forces replacement on change.
- Public
Ip bool - optional boolean → If
true, a floating IP is assigned to the API endpoint.Forces replacementon change. Default isfalse. - Region string
- optional string → The region in which to create the cluster. If omitted, the provider's
regionis used. Forces replacement on change. - Timeouts
Kubernetes
Cluster V2Timeouts - Timeouts configuration for create, update and delete operations.
- Uuid string
- optional string → The cluster UUID. Can be specified; if not, it is generated automatically. Changing this forces a new cluster.
- Availability
Zones []string - required set of string → A set of availability zones for the cluster's masters. For a
standardcluster, provide 1, 3, or 5 zones. For aregionalcluster, provide 3 or 5 zones. Forces replacement on change. - Cluster
Type string - required string → Either
standard(single AZ) orregional(three AZs). Forces replacement on change. - Loadbalancer
Subnet stringId - required string → The ID of the subnet where LoadBalancer services will be allocated IPs. Forces replacement on change.
- Master
Count float64 - required number → The number of master nodes. Must be an odd number to maintain etcd quorum (1, 3, or 5). Forces replacement on change.
- Master
Flavor string - required string → The flavor ID for master nodes. Changing this triggers a rolling upgrade of the control plane.
- Network
Id string - required string → The ID of the VPC network where the cluster will be deployed. The network must use the
sprutSDN. Forces replacement on change. - Network
Plugin string - required string → The CNI plugin to use. Currently only
calicois supported. Forces replacement on change. - Pods
Ipv4Cidr string - required string → The IPv4 CIDR block for the pod network. Must be a valid private CIDR (e.g.,
10.100.0.0/16). Forces replacement on change. - Subnet
Id string - required string → The ID of the subnet for cluster nodes. Forces replacement on change.
- Version string
- required string → The Kubernetes version to deploy. Only upgrades to a higher version are allowed.
- Description string
- optional string → A human-readable description of the cluster. Forces replacement on change. The maximum length is 256 characters.
- External
Network stringId - optional string → The ID of the external network for internet access. If omitted, the system selects one automatically. Forces replacement on change.
- Insecure
Registries []string - optional set of string → A set of registry addresses (e.g.,
myregistry.com) that can be accessed without TLS verification. Forces replacement on change. - Labels map[string]string
- optional map of string → A map of Kubernetes labels to apply to the cluster. Keys and values must conform to Kubernetes label syntax. Forces replacement on change.
- Loadbalancer
Allowed []stringCidrs - optional set of string → A set of CIDR blocks permitted to access the API load balancer. If empty, all IPs are allowed. Forces replacement on change.
- Name string
- required string → A unique cluster name. Must be 3-25 lowercase alphanumeric characters or hyphens, start/end with alphanumeric, and contain no consecutive hyphens. Forces replacement on change.
- Public
Ip bool - optional boolean → If
true, a floating IP is assigned to the API endpoint.Forces replacementon change. Default isfalse. - Region string
- optional string → The region in which to create the cluster. If omitted, the provider's
regionis used. Forces replacement on change. - Timeouts
Kubernetes
Cluster V2Timeouts Args - Timeouts configuration for create, update and delete operations.
- Uuid string
- optional string → The cluster UUID. Can be specified; if not, it is generated automatically. Changing this forces a new cluster.
- availability
Zones List<String> - required set of string → A set of availability zones for the cluster's masters. For a
standardcluster, provide 1, 3, or 5 zones. For aregionalcluster, provide 3 or 5 zones. Forces replacement on change. - cluster
Type String - required string → Either
standard(single AZ) orregional(three AZs). Forces replacement on change. - loadbalancer
Subnet StringId - required string → The ID of the subnet where LoadBalancer services will be allocated IPs. Forces replacement on change.
- master
Count Double - required number → The number of master nodes. Must be an odd number to maintain etcd quorum (1, 3, or 5). Forces replacement on change.
- master
Flavor String - required string → The flavor ID for master nodes. Changing this triggers a rolling upgrade of the control plane.
- network
Id String - required string → The ID of the VPC network where the cluster will be deployed. The network must use the
sprutSDN. Forces replacement on change. - network
Plugin String - required string → The CNI plugin to use. Currently only
calicois supported. Forces replacement on change. - pods
Ipv4Cidr String - required string → The IPv4 CIDR block for the pod network. Must be a valid private CIDR (e.g.,
10.100.0.0/16). Forces replacement on change. - subnet
Id String - required string → The ID of the subnet for cluster nodes. Forces replacement on change.
- version String
- required string → The Kubernetes version to deploy. Only upgrades to a higher version are allowed.
- description String
- optional string → A human-readable description of the cluster. Forces replacement on change. The maximum length is 256 characters.
- external
Network StringId - optional string → The ID of the external network for internet access. If omitted, the system selects one automatically. Forces replacement on change.
- insecure
Registries List<String> - optional set of string → A set of registry addresses (e.g.,
myregistry.com) that can be accessed without TLS verification. Forces replacement on change. - labels Map<String,String>
- optional map of string → A map of Kubernetes labels to apply to the cluster. Keys and values must conform to Kubernetes label syntax. Forces replacement on change.
- loadbalancer
Allowed List<String>Cidrs - optional set of string → A set of CIDR blocks permitted to access the API load balancer. If empty, all IPs are allowed. Forces replacement on change.
- name String
- required string → A unique cluster name. Must be 3-25 lowercase alphanumeric characters or hyphens, start/end with alphanumeric, and contain no consecutive hyphens. Forces replacement on change.
- public
Ip Boolean - optional boolean → If
true, a floating IP is assigned to the API endpoint.Forces replacementon change. Default isfalse. - region String
- optional string → The region in which to create the cluster. If omitted, the provider's
regionis used. Forces replacement on change. - timeouts
Kubernetes
Cluster V2Timeouts - Timeouts configuration for create, update and delete operations.
- uuid String
- optional string → The cluster UUID. Can be specified; if not, it is generated automatically. Changing this forces a new cluster.
- availability
Zones string[] - required set of string → A set of availability zones for the cluster's masters. For a
standardcluster, provide 1, 3, or 5 zones. For aregionalcluster, provide 3 or 5 zones. Forces replacement on change. - cluster
Type string - required string → Either
standard(single AZ) orregional(three AZs). Forces replacement on change. - loadbalancer
Subnet stringId - required string → The ID of the subnet where LoadBalancer services will be allocated IPs. Forces replacement on change.
- master
Count number - required number → The number of master nodes. Must be an odd number to maintain etcd quorum (1, 3, or 5). Forces replacement on change.
- master
Flavor string - required string → The flavor ID for master nodes. Changing this triggers a rolling upgrade of the control plane.
- network
Id string - required string → The ID of the VPC network where the cluster will be deployed. The network must use the
sprutSDN. Forces replacement on change. - network
Plugin string - required string → The CNI plugin to use. Currently only
calicois supported. Forces replacement on change. - pods
Ipv4Cidr string - required string → The IPv4 CIDR block for the pod network. Must be a valid private CIDR (e.g.,
10.100.0.0/16). Forces replacement on change. - subnet
Id string - required string → The ID of the subnet for cluster nodes. Forces replacement on change.
- version string
- required string → The Kubernetes version to deploy. Only upgrades to a higher version are allowed.
- description string
- optional string → A human-readable description of the cluster. Forces replacement on change. The maximum length is 256 characters.
- external
Network stringId - optional string → The ID of the external network for internet access. If omitted, the system selects one automatically. Forces replacement on change.
- insecure
Registries string[] - optional set of string → A set of registry addresses (e.g.,
myregistry.com) that can be accessed without TLS verification. Forces replacement on change. - labels {[key: string]: string}
- optional map of string → A map of Kubernetes labels to apply to the cluster. Keys and values must conform to Kubernetes label syntax. Forces replacement on change.
- loadbalancer
Allowed string[]Cidrs - optional set of string → A set of CIDR blocks permitted to access the API load balancer. If empty, all IPs are allowed. Forces replacement on change.
- name string
- required string → A unique cluster name. Must be 3-25 lowercase alphanumeric characters or hyphens, start/end with alphanumeric, and contain no consecutive hyphens. Forces replacement on change.
- public
Ip boolean - optional boolean → If
true, a floating IP is assigned to the API endpoint.Forces replacementon change. Default isfalse. - region string
- optional string → The region in which to create the cluster. If omitted, the provider's
regionis used. Forces replacement on change. - timeouts
Kubernetes
Cluster V2Timeouts - Timeouts configuration for create, update and delete operations.
- uuid string
- optional string → The cluster UUID. Can be specified; if not, it is generated automatically. Changing this forces a new cluster.
- availability_
zones Sequence[str] - required set of string → A set of availability zones for the cluster's masters. For a
standardcluster, provide 1, 3, or 5 zones. For aregionalcluster, provide 3 or 5 zones. Forces replacement on change. - cluster_
type str - required string → Either
standard(single AZ) orregional(three AZs). Forces replacement on change. - loadbalancer_
subnet_ strid - required string → The ID of the subnet where LoadBalancer services will be allocated IPs. Forces replacement on change.
- master_
count float - required number → The number of master nodes. Must be an odd number to maintain etcd quorum (1, 3, or 5). Forces replacement on change.
- master_
flavor str - required string → The flavor ID for master nodes. Changing this triggers a rolling upgrade of the control plane.
- network_
id str - required string → The ID of the VPC network where the cluster will be deployed. The network must use the
sprutSDN. Forces replacement on change. - network_
plugin str - required string → The CNI plugin to use. Currently only
calicois supported. Forces replacement on change. - pods_
ipv4_ strcidr - required string → The IPv4 CIDR block for the pod network. Must be a valid private CIDR (e.g.,
10.100.0.0/16). Forces replacement on change. - subnet_
id str - required string → The ID of the subnet for cluster nodes. Forces replacement on change.
- version str
- required string → The Kubernetes version to deploy. Only upgrades to a higher version are allowed.
- description str
- optional string → A human-readable description of the cluster. Forces replacement on change. The maximum length is 256 characters.
- external_
network_ strid - optional string → The ID of the external network for internet access. If omitted, the system selects one automatically. Forces replacement on change.
- insecure_
registries Sequence[str] - optional set of string → A set of registry addresses (e.g.,
myregistry.com) that can be accessed without TLS verification. Forces replacement on change. - labels Mapping[str, str]
- optional map of string → A map of Kubernetes labels to apply to the cluster. Keys and values must conform to Kubernetes label syntax. Forces replacement on change.
- loadbalancer_
allowed_ Sequence[str]cidrs - optional set of string → A set of CIDR blocks permitted to access the API load balancer. If empty, all IPs are allowed. Forces replacement on change.
- name str
- required string → A unique cluster name. Must be 3-25 lowercase alphanumeric characters or hyphens, start/end with alphanumeric, and contain no consecutive hyphens. Forces replacement on change.
- public_
ip bool - optional boolean → If
true, a floating IP is assigned to the API endpoint.Forces replacementon change. Default isfalse. - region str
- optional string → The region in which to create the cluster. If omitted, the provider's
regionis used. Forces replacement on change. - timeouts
Kubernetes
Cluster V2Timeouts Args - Timeouts configuration for create, update and delete operations.
- uuid str
- optional string → The cluster UUID. Can be specified; if not, it is generated automatically. Changing this forces a new cluster.
- availability
Zones List<String> - required set of string → A set of availability zones for the cluster's masters. For a
standardcluster, provide 1, 3, or 5 zones. For aregionalcluster, provide 3 or 5 zones. Forces replacement on change. - cluster
Type String - required string → Either
standard(single AZ) orregional(three AZs). Forces replacement on change. - loadbalancer
Subnet StringId - required string → The ID of the subnet where LoadBalancer services will be allocated IPs. Forces replacement on change.
- master
Count Number - required number → The number of master nodes. Must be an odd number to maintain etcd quorum (1, 3, or 5). Forces replacement on change.
- master
Flavor String - required string → The flavor ID for master nodes. Changing this triggers a rolling upgrade of the control plane.
- network
Id String - required string → The ID of the VPC network where the cluster will be deployed. The network must use the
sprutSDN. Forces replacement on change. - network
Plugin String - required string → The CNI plugin to use. Currently only
calicois supported. Forces replacement on change. - pods
Ipv4Cidr String - required string → The IPv4 CIDR block for the pod network. Must be a valid private CIDR (e.g.,
10.100.0.0/16). Forces replacement on change. - subnet
Id String - required string → The ID of the subnet for cluster nodes. Forces replacement on change.
- version String
- required string → The Kubernetes version to deploy. Only upgrades to a higher version are allowed.
- description String
- optional string → A human-readable description of the cluster. Forces replacement on change. The maximum length is 256 characters.
- external
Network StringId - optional string → The ID of the external network for internet access. If omitted, the system selects one automatically. Forces replacement on change.
- insecure
Registries List<String> - optional set of string → A set of registry addresses (e.g.,
myregistry.com) that can be accessed without TLS verification. Forces replacement on change. - labels Map<String>
- optional map of string → A map of Kubernetes labels to apply to the cluster. Keys and values must conform to Kubernetes label syntax. Forces replacement on change.
- loadbalancer
Allowed List<String>Cidrs - optional set of string → A set of CIDR blocks permitted to access the API load balancer. If empty, all IPs are allowed. Forces replacement on change.
- name String
- required string → A unique cluster name. Must be 3-25 lowercase alphanumeric characters or hyphens, start/end with alphanumeric, and contain no consecutive hyphens. Forces replacement on change.
- public
Ip Boolean - optional boolean → If
true, a floating IP is assigned to the API endpoint.Forces replacementon change. Default isfalse. - region String
- optional string → The region in which to create the cluster. If omitted, the provider's
regionis used. Forces replacement on change. - timeouts Property Map
- Timeouts configuration for create, update and delete operations.
- uuid String
- optional string → The cluster UUID. Can be specified; if not, it is generated automatically. Changing this forces a new cluster.
Outputs
All input properties are implicitly available as output properties. Additionally, the KubernetesClusterV2 resource produces the following output properties:
- Api
Address string - string → The URL of the Kubernetes API server.
- Api
Lb stringFip - string → The floating IP of the API load balancer (present if
public_ip=true). - Api
Lb stringVip - string → The internal VIP of the API load balancer.
- Created
At string - string → The timestamp when the cluster was created (ISO 8601 format).
- Id string
- The provider-assigned unique ID for this managed resource.
- K8s
Config string - string → The kubeconfig file contents. Sensitive — store securely.
- Master
Disks List<KubernetesCluster V2Master Disk> - set → Information about the master node disks. Each disk includes
typeandsize. - Node
Groups List<KubernetesCluster V2Node Group> - set → A list of node groups associated with the cluster. Each object contains
id,name,flavor,node_count, andavailability_zone. - Project
Id string - string → The project ID that owns the cluster.
- Status string
- string → The current cluster status (e.g.,
RUNNING,RECONCILING).
- Api
Address string - string → The URL of the Kubernetes API server.
- Api
Lb stringFip - string → The floating IP of the API load balancer (present if
public_ip=true). - Api
Lb stringVip - string → The internal VIP of the API load balancer.
- Created
At string - string → The timestamp when the cluster was created (ISO 8601 format).
- Id string
- The provider-assigned unique ID for this managed resource.
- K8s
Config string - string → The kubeconfig file contents. Sensitive — store securely.
- Master
Disks []KubernetesCluster V2Master Disk - set → Information about the master node disks. Each disk includes
typeandsize. - Node
Groups []KubernetesCluster V2Node Group - set → A list of node groups associated with the cluster. Each object contains
id,name,flavor,node_count, andavailability_zone. - Project
Id string - string → The project ID that owns the cluster.
- Status string
- string → The current cluster status (e.g.,
RUNNING,RECONCILING).
- api
Address String - string → The URL of the Kubernetes API server.
- api
Lb StringFip - string → The floating IP of the API load balancer (present if
public_ip=true). - api
Lb StringVip - string → The internal VIP of the API load balancer.
- created
At String - string → The timestamp when the cluster was created (ISO 8601 format).
- id String
- The provider-assigned unique ID for this managed resource.
- k8s
Config String - string → The kubeconfig file contents. Sensitive — store securely.
- master
Disks List<KubernetesCluster V2Master Disk> - set → Information about the master node disks. Each disk includes
typeandsize. - node
Groups List<KubernetesCluster V2Node Group> - set → A list of node groups associated with the cluster. Each object contains
id,name,flavor,node_count, andavailability_zone. - project
Id String - string → The project ID that owns the cluster.
- status String
- string → The current cluster status (e.g.,
RUNNING,RECONCILING).
- api
Address string - string → The URL of the Kubernetes API server.
- api
Lb stringFip - string → The floating IP of the API load balancer (present if
public_ip=true). - api
Lb stringVip - string → The internal VIP of the API load balancer.
- created
At string - string → The timestamp when the cluster was created (ISO 8601 format).
- id string
- The provider-assigned unique ID for this managed resource.
- k8s
Config string - string → The kubeconfig file contents. Sensitive — store securely.
- master
Disks KubernetesCluster V2Master Disk[] - set → Information about the master node disks. Each disk includes
typeandsize. - node
Groups KubernetesCluster V2Node Group[] - set → A list of node groups associated with the cluster. Each object contains
id,name,flavor,node_count, andavailability_zone. - project
Id string - string → The project ID that owns the cluster.
- status string
- string → The current cluster status (e.g.,
RUNNING,RECONCILING).
- api_
address str - string → The URL of the Kubernetes API server.
- api_
lb_ strfip - string → The floating IP of the API load balancer (present if
public_ip=true). - api_
lb_ strvip - string → The internal VIP of the API load balancer.
- created_
at str - string → The timestamp when the cluster was created (ISO 8601 format).
- id str
- The provider-assigned unique ID for this managed resource.
- k8s_
config str - string → The kubeconfig file contents. Sensitive — store securely.
- master_
disks Sequence[KubernetesCluster V2Master Disk] - set → Information about the master node disks. Each disk includes
typeandsize. - node_
groups Sequence[KubernetesCluster V2Node Group] - set → A list of node groups associated with the cluster. Each object contains
id,name,flavor,node_count, andavailability_zone. - project_
id str - string → The project ID that owns the cluster.
- status str
- string → The current cluster status (e.g.,
RUNNING,RECONCILING).
- api
Address String - string → The URL of the Kubernetes API server.
- api
Lb StringFip - string → The floating IP of the API load balancer (present if
public_ip=true). - api
Lb StringVip - string → The internal VIP of the API load balancer.
- created
At String - string → The timestamp when the cluster was created (ISO 8601 format).
- id String
- The provider-assigned unique ID for this managed resource.
- k8s
Config String - string → The kubeconfig file contents. Sensitive — store securely.
- master
Disks List<Property Map> - set → Information about the master node disks. Each disk includes
typeandsize. - node
Groups List<Property Map> - set → A list of node groups associated with the cluster. Each object contains
id,name,flavor,node_count, andavailability_zone. - project
Id String - string → The project ID that owns the cluster.
- status String
- string → The current cluster status (e.g.,
RUNNING,RECONCILING).
Look up Existing KubernetesClusterV2 Resource
Get an existing KubernetesClusterV2 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?: KubernetesClusterV2State, opts?: CustomResourceOptions): KubernetesClusterV2@staticmethod
def get(resource_name: str,
id: str,
opts: Optional[ResourceOptions] = None,
api_address: Optional[str] = None,
api_lb_fip: Optional[str] = None,
api_lb_vip: Optional[str] = None,
availability_zones: Optional[Sequence[str]] = None,
cluster_type: Optional[str] = None,
created_at: Optional[str] = None,
description: Optional[str] = None,
external_network_id: Optional[str] = None,
insecure_registries: Optional[Sequence[str]] = None,
k8s_config: Optional[str] = None,
labels: Optional[Mapping[str, str]] = None,
loadbalancer_allowed_cidrs: Optional[Sequence[str]] = None,
loadbalancer_subnet_id: Optional[str] = None,
master_count: Optional[float] = None,
master_disks: Optional[Sequence[KubernetesClusterV2MasterDiskArgs]] = None,
master_flavor: Optional[str] = None,
name: Optional[str] = None,
network_id: Optional[str] = None,
network_plugin: Optional[str] = None,
node_groups: Optional[Sequence[KubernetesClusterV2NodeGroupArgs]] = None,
pods_ipv4_cidr: Optional[str] = None,
project_id: Optional[str] = None,
public_ip: Optional[bool] = None,
region: Optional[str] = None,
status: Optional[str] = None,
subnet_id: Optional[str] = None,
timeouts: Optional[KubernetesClusterV2TimeoutsArgs] = None,
uuid: Optional[str] = None,
version: Optional[str] = None) -> KubernetesClusterV2func GetKubernetesClusterV2(ctx *Context, name string, id IDInput, state *KubernetesClusterV2State, opts ...ResourceOption) (*KubernetesClusterV2, error)public static KubernetesClusterV2 Get(string name, Input<string> id, KubernetesClusterV2State? state, CustomResourceOptions? opts = null)public static KubernetesClusterV2 get(String name, Output<String> id, KubernetesClusterV2State state, CustomResourceOptions options)resources: _: type: vkcs:KubernetesClusterV2 get: id: ${id}- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- resource_name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- Api
Address string - string → The URL of the Kubernetes API server.
- Api
Lb stringFip - string → The floating IP of the API load balancer (present if
public_ip=true). - Api
Lb stringVip - string → The internal VIP of the API load balancer.
- Availability
Zones List<string> - required set of string → A set of availability zones for the cluster's masters. For a
standardcluster, provide 1, 3, or 5 zones. For aregionalcluster, provide 3 or 5 zones. Forces replacement on change. - Cluster
Type string - required string → Either
standard(single AZ) orregional(three AZs). Forces replacement on change. - Created
At string - string → The timestamp when the cluster was created (ISO 8601 format).
- Description string
- optional string → A human-readable description of the cluster. Forces replacement on change. The maximum length is 256 characters.
- External
Network stringId - optional string → The ID of the external network for internet access. If omitted, the system selects one automatically. Forces replacement on change.
- Insecure
Registries List<string> - optional set of string → A set of registry addresses (e.g.,
myregistry.com) that can be accessed without TLS verification. Forces replacement on change. - K8s
Config string - string → The kubeconfig file contents. Sensitive — store securely.
- Labels Dictionary<string, string>
- optional map of string → A map of Kubernetes labels to apply to the cluster. Keys and values must conform to Kubernetes label syntax. Forces replacement on change.
- Loadbalancer
Allowed List<string>Cidrs - optional set of string → A set of CIDR blocks permitted to access the API load balancer. If empty, all IPs are allowed. Forces replacement on change.
- Loadbalancer
Subnet stringId - required string → The ID of the subnet where LoadBalancer services will be allocated IPs. Forces replacement on change.
- Master
Count double - required number → The number of master nodes. Must be an odd number to maintain etcd quorum (1, 3, or 5). Forces replacement on change.
- Master
Disks List<KubernetesCluster V2Master Disk> - set → Information about the master node disks. Each disk includes
typeandsize. - Master
Flavor string - required string → The flavor ID for master nodes. Changing this triggers a rolling upgrade of the control plane.
- Name string
- required string → A unique cluster name. Must be 3-25 lowercase alphanumeric characters or hyphens, start/end with alphanumeric, and contain no consecutive hyphens. Forces replacement on change.
- Network
Id string - required string → The ID of the VPC network where the cluster will be deployed. The network must use the
sprutSDN. Forces replacement on change. - Network
Plugin string - required string → The CNI plugin to use. Currently only
calicois supported. Forces replacement on change. - Node
Groups List<KubernetesCluster V2Node Group> - set → A list of node groups associated with the cluster. Each object contains
id,name,flavor,node_count, andavailability_zone. - Pods
Ipv4Cidr string - required string → The IPv4 CIDR block for the pod network. Must be a valid private CIDR (e.g.,
10.100.0.0/16). Forces replacement on change. - Project
Id string - string → The project ID that owns the cluster.
- Public
Ip bool - optional boolean → If
true, a floating IP is assigned to the API endpoint.Forces replacementon change. Default isfalse. - Region string
- optional string → The region in which to create the cluster. If omitted, the provider's
regionis used. Forces replacement on change. - Status string
- string → The current cluster status (e.g.,
RUNNING,RECONCILING). - Subnet
Id string - required string → The ID of the subnet for cluster nodes. Forces replacement on change.
- Timeouts
Kubernetes
Cluster V2Timeouts - Timeouts configuration for create, update and delete operations.
- Uuid string
- optional string → The cluster UUID. Can be specified; if not, it is generated automatically. Changing this forces a new cluster.
- Version string
- required string → The Kubernetes version to deploy. Only upgrades to a higher version are allowed.
- Api
Address string - string → The URL of the Kubernetes API server.
- Api
Lb stringFip - string → The floating IP of the API load balancer (present if
public_ip=true). - Api
Lb stringVip - string → The internal VIP of the API load balancer.
- Availability
Zones []string - required set of string → A set of availability zones for the cluster's masters. For a
standardcluster, provide 1, 3, or 5 zones. For aregionalcluster, provide 3 or 5 zones. Forces replacement on change. - Cluster
Type string - required string → Either
standard(single AZ) orregional(three AZs). Forces replacement on change. - Created
At string - string → The timestamp when the cluster was created (ISO 8601 format).
- Description string
- optional string → A human-readable description of the cluster. Forces replacement on change. The maximum length is 256 characters.
- External
Network stringId - optional string → The ID of the external network for internet access. If omitted, the system selects one automatically. Forces replacement on change.
- Insecure
Registries []string - optional set of string → A set of registry addresses (e.g.,
myregistry.com) that can be accessed without TLS verification. Forces replacement on change. - K8s
Config string - string → The kubeconfig file contents. Sensitive — store securely.
- Labels map[string]string
- optional map of string → A map of Kubernetes labels to apply to the cluster. Keys and values must conform to Kubernetes label syntax. Forces replacement on change.
- Loadbalancer
Allowed []stringCidrs - optional set of string → A set of CIDR blocks permitted to access the API load balancer. If empty, all IPs are allowed. Forces replacement on change.
- Loadbalancer
Subnet stringId - required string → The ID of the subnet where LoadBalancer services will be allocated IPs. Forces replacement on change.
- Master
Count float64 - required number → The number of master nodes. Must be an odd number to maintain etcd quorum (1, 3, or 5). Forces replacement on change.
- Master
Disks []KubernetesCluster V2Master Disk Args - set → Information about the master node disks. Each disk includes
typeandsize. - Master
Flavor string - required string → The flavor ID for master nodes. Changing this triggers a rolling upgrade of the control plane.
- Name string
- required string → A unique cluster name. Must be 3-25 lowercase alphanumeric characters or hyphens, start/end with alphanumeric, and contain no consecutive hyphens. Forces replacement on change.
- Network
Id string - required string → The ID of the VPC network where the cluster will be deployed. The network must use the
sprutSDN. Forces replacement on change. - Network
Plugin string - required string → The CNI plugin to use. Currently only
calicois supported. Forces replacement on change. - Node
Groups []KubernetesCluster V2Node Group Args - set → A list of node groups associated with the cluster. Each object contains
id,name,flavor,node_count, andavailability_zone. - Pods
Ipv4Cidr string - required string → The IPv4 CIDR block for the pod network. Must be a valid private CIDR (e.g.,
10.100.0.0/16). Forces replacement on change. - Project
Id string - string → The project ID that owns the cluster.
- Public
Ip bool - optional boolean → If
true, a floating IP is assigned to the API endpoint.Forces replacementon change. Default isfalse. - Region string
- optional string → The region in which to create the cluster. If omitted, the provider's
regionis used. Forces replacement on change. - Status string
- string → The current cluster status (e.g.,
RUNNING,RECONCILING). - Subnet
Id string - required string → The ID of the subnet for cluster nodes. Forces replacement on change.
- Timeouts
Kubernetes
Cluster V2Timeouts Args - Timeouts configuration for create, update and delete operations.
- Uuid string
- optional string → The cluster UUID. Can be specified; if not, it is generated automatically. Changing this forces a new cluster.
- Version string
- required string → The Kubernetes version to deploy. Only upgrades to a higher version are allowed.
- api
Address String - string → The URL of the Kubernetes API server.
- api
Lb StringFip - string → The floating IP of the API load balancer (present if
public_ip=true). - api
Lb StringVip - string → The internal VIP of the API load balancer.
- availability
Zones List<String> - required set of string → A set of availability zones for the cluster's masters. For a
standardcluster, provide 1, 3, or 5 zones. For aregionalcluster, provide 3 or 5 zones. Forces replacement on change. - cluster
Type String - required string → Either
standard(single AZ) orregional(three AZs). Forces replacement on change. - created
At String - string → The timestamp when the cluster was created (ISO 8601 format).
- description String
- optional string → A human-readable description of the cluster. Forces replacement on change. The maximum length is 256 characters.
- external
Network StringId - optional string → The ID of the external network for internet access. If omitted, the system selects one automatically. Forces replacement on change.
- insecure
Registries List<String> - optional set of string → A set of registry addresses (e.g.,
myregistry.com) that can be accessed without TLS verification. Forces replacement on change. - k8s
Config String - string → The kubeconfig file contents. Sensitive — store securely.
- labels Map<String,String>
- optional map of string → A map of Kubernetes labels to apply to the cluster. Keys and values must conform to Kubernetes label syntax. Forces replacement on change.
- loadbalancer
Allowed List<String>Cidrs - optional set of string → A set of CIDR blocks permitted to access the API load balancer. If empty, all IPs are allowed. Forces replacement on change.
- loadbalancer
Subnet StringId - required string → The ID of the subnet where LoadBalancer services will be allocated IPs. Forces replacement on change.
- master
Count Double - required number → The number of master nodes. Must be an odd number to maintain etcd quorum (1, 3, or 5). Forces replacement on change.
- master
Disks List<KubernetesCluster V2Master Disk> - set → Information about the master node disks. Each disk includes
typeandsize. - master
Flavor String - required string → The flavor ID for master nodes. Changing this triggers a rolling upgrade of the control plane.
- name String
- required string → A unique cluster name. Must be 3-25 lowercase alphanumeric characters or hyphens, start/end with alphanumeric, and contain no consecutive hyphens. Forces replacement on change.
- network
Id String - required string → The ID of the VPC network where the cluster will be deployed. The network must use the
sprutSDN. Forces replacement on change. - network
Plugin String - required string → The CNI plugin to use. Currently only
calicois supported. Forces replacement on change. - node
Groups List<KubernetesCluster V2Node Group> - set → A list of node groups associated with the cluster. Each object contains
id,name,flavor,node_count, andavailability_zone. - pods
Ipv4Cidr String - required string → The IPv4 CIDR block for the pod network. Must be a valid private CIDR (e.g.,
10.100.0.0/16). Forces replacement on change. - project
Id String - string → The project ID that owns the cluster.
- public
Ip Boolean - optional boolean → If
true, a floating IP is assigned to the API endpoint.Forces replacementon change. Default isfalse. - region String
- optional string → The region in which to create the cluster. If omitted, the provider's
regionis used. Forces replacement on change. - status String
- string → The current cluster status (e.g.,
RUNNING,RECONCILING). - subnet
Id String - required string → The ID of the subnet for cluster nodes. Forces replacement on change.
- timeouts
Kubernetes
Cluster V2Timeouts - Timeouts configuration for create, update and delete operations.
- uuid String
- optional string → The cluster UUID. Can be specified; if not, it is generated automatically. Changing this forces a new cluster.
- version String
- required string → The Kubernetes version to deploy. Only upgrades to a higher version are allowed.
- api
Address string - string → The URL of the Kubernetes API server.
- api
Lb stringFip - string → The floating IP of the API load balancer (present if
public_ip=true). - api
Lb stringVip - string → The internal VIP of the API load balancer.
- availability
Zones string[] - required set of string → A set of availability zones for the cluster's masters. For a
standardcluster, provide 1, 3, or 5 zones. For aregionalcluster, provide 3 or 5 zones. Forces replacement on change. - cluster
Type string - required string → Either
standard(single AZ) orregional(three AZs). Forces replacement on change. - created
At string - string → The timestamp when the cluster was created (ISO 8601 format).
- description string
- optional string → A human-readable description of the cluster. Forces replacement on change. The maximum length is 256 characters.
- external
Network stringId - optional string → The ID of the external network for internet access. If omitted, the system selects one automatically. Forces replacement on change.
- insecure
Registries string[] - optional set of string → A set of registry addresses (e.g.,
myregistry.com) that can be accessed without TLS verification. Forces replacement on change. - k8s
Config string - string → The kubeconfig file contents. Sensitive — store securely.
- labels {[key: string]: string}
- optional map of string → A map of Kubernetes labels to apply to the cluster. Keys and values must conform to Kubernetes label syntax. Forces replacement on change.
- loadbalancer
Allowed string[]Cidrs - optional set of string → A set of CIDR blocks permitted to access the API load balancer. If empty, all IPs are allowed. Forces replacement on change.
- loadbalancer
Subnet stringId - required string → The ID of the subnet where LoadBalancer services will be allocated IPs. Forces replacement on change.
- master
Count number - required number → The number of master nodes. Must be an odd number to maintain etcd quorum (1, 3, or 5). Forces replacement on change.
- master
Disks KubernetesCluster V2Master Disk[] - set → Information about the master node disks. Each disk includes
typeandsize. - master
Flavor string - required string → The flavor ID for master nodes. Changing this triggers a rolling upgrade of the control plane.
- name string
- required string → A unique cluster name. Must be 3-25 lowercase alphanumeric characters or hyphens, start/end with alphanumeric, and contain no consecutive hyphens. Forces replacement on change.
- network
Id string - required string → The ID of the VPC network where the cluster will be deployed. The network must use the
sprutSDN. Forces replacement on change. - network
Plugin string - required string → The CNI plugin to use. Currently only
calicois supported. Forces replacement on change. - node
Groups KubernetesCluster V2Node Group[] - set → A list of node groups associated with the cluster. Each object contains
id,name,flavor,node_count, andavailability_zone. - pods
Ipv4Cidr string - required string → The IPv4 CIDR block for the pod network. Must be a valid private CIDR (e.g.,
10.100.0.0/16). Forces replacement on change. - project
Id string - string → The project ID that owns the cluster.
- public
Ip boolean - optional boolean → If
true, a floating IP is assigned to the API endpoint.Forces replacementon change. Default isfalse. - region string
- optional string → The region in which to create the cluster. If omitted, the provider's
regionis used. Forces replacement on change. - status string
- string → The current cluster status (e.g.,
RUNNING,RECONCILING). - subnet
Id string - required string → The ID of the subnet for cluster nodes. Forces replacement on change.
- timeouts
Kubernetes
Cluster V2Timeouts - Timeouts configuration for create, update and delete operations.
- uuid string
- optional string → The cluster UUID. Can be specified; if not, it is generated automatically. Changing this forces a new cluster.
- version string
- required string → The Kubernetes version to deploy. Only upgrades to a higher version are allowed.
- api_
address str - string → The URL of the Kubernetes API server.
- api_
lb_ strfip - string → The floating IP of the API load balancer (present if
public_ip=true). - api_
lb_ strvip - string → The internal VIP of the API load balancer.
- availability_
zones Sequence[str] - required set of string → A set of availability zones for the cluster's masters. For a
standardcluster, provide 1, 3, or 5 zones. For aregionalcluster, provide 3 or 5 zones. Forces replacement on change. - cluster_
type str - required string → Either
standard(single AZ) orregional(three AZs). Forces replacement on change. - created_
at str - string → The timestamp when the cluster was created (ISO 8601 format).
- description str
- optional string → A human-readable description of the cluster. Forces replacement on change. The maximum length is 256 characters.
- external_
network_ strid - optional string → The ID of the external network for internet access. If omitted, the system selects one automatically. Forces replacement on change.
- insecure_
registries Sequence[str] - optional set of string → A set of registry addresses (e.g.,
myregistry.com) that can be accessed without TLS verification. Forces replacement on change. - k8s_
config str - string → The kubeconfig file contents. Sensitive — store securely.
- labels Mapping[str, str]
- optional map of string → A map of Kubernetes labels to apply to the cluster. Keys and values must conform to Kubernetes label syntax. Forces replacement on change.
- loadbalancer_
allowed_ Sequence[str]cidrs - optional set of string → A set of CIDR blocks permitted to access the API load balancer. If empty, all IPs are allowed. Forces replacement on change.
- loadbalancer_
subnet_ strid - required string → The ID of the subnet where LoadBalancer services will be allocated IPs. Forces replacement on change.
- master_
count float - required number → The number of master nodes. Must be an odd number to maintain etcd quorum (1, 3, or 5). Forces replacement on change.
- master_
disks Sequence[KubernetesCluster V2Master Disk Args] - set → Information about the master node disks. Each disk includes
typeandsize. - master_
flavor str - required string → The flavor ID for master nodes. Changing this triggers a rolling upgrade of the control plane.
- name str
- required string → A unique cluster name. Must be 3-25 lowercase alphanumeric characters or hyphens, start/end with alphanumeric, and contain no consecutive hyphens. Forces replacement on change.
- network_
id str - required string → The ID of the VPC network where the cluster will be deployed. The network must use the
sprutSDN. Forces replacement on change. - network_
plugin str - required string → The CNI plugin to use. Currently only
calicois supported. Forces replacement on change. - node_
groups Sequence[KubernetesCluster V2Node Group Args] - set → A list of node groups associated with the cluster. Each object contains
id,name,flavor,node_count, andavailability_zone. - pods_
ipv4_ strcidr - required string → The IPv4 CIDR block for the pod network. Must be a valid private CIDR (e.g.,
10.100.0.0/16). Forces replacement on change. - project_
id str - string → The project ID that owns the cluster.
- public_
ip bool - optional boolean → If
true, a floating IP is assigned to the API endpoint.Forces replacementon change. Default isfalse. - region str
- optional string → The region in which to create the cluster. If omitted, the provider's
regionis used. Forces replacement on change. - status str
- string → The current cluster status (e.g.,
RUNNING,RECONCILING). - subnet_
id str - required string → The ID of the subnet for cluster nodes. Forces replacement on change.
- timeouts
Kubernetes
Cluster V2Timeouts Args - Timeouts configuration for create, update and delete operations.
- uuid str
- optional string → The cluster UUID. Can be specified; if not, it is generated automatically. Changing this forces a new cluster.
- version str
- required string → The Kubernetes version to deploy. Only upgrades to a higher version are allowed.
- api
Address String - string → The URL of the Kubernetes API server.
- api
Lb StringFip - string → The floating IP of the API load balancer (present if
public_ip=true). - api
Lb StringVip - string → The internal VIP of the API load balancer.
- availability
Zones List<String> - required set of string → A set of availability zones for the cluster's masters. For a
standardcluster, provide 1, 3, or 5 zones. For aregionalcluster, provide 3 or 5 zones. Forces replacement on change. - cluster
Type String - required string → Either
standard(single AZ) orregional(three AZs). Forces replacement on change. - created
At String - string → The timestamp when the cluster was created (ISO 8601 format).
- description String
- optional string → A human-readable description of the cluster. Forces replacement on change. The maximum length is 256 characters.
- external
Network StringId - optional string → The ID of the external network for internet access. If omitted, the system selects one automatically. Forces replacement on change.
- insecure
Registries List<String> - optional set of string → A set of registry addresses (e.g.,
myregistry.com) that can be accessed without TLS verification. Forces replacement on change. - k8s
Config String - string → The kubeconfig file contents. Sensitive — store securely.
- labels Map<String>
- optional map of string → A map of Kubernetes labels to apply to the cluster. Keys and values must conform to Kubernetes label syntax. Forces replacement on change.
- loadbalancer
Allowed List<String>Cidrs - optional set of string → A set of CIDR blocks permitted to access the API load balancer. If empty, all IPs are allowed. Forces replacement on change.
- loadbalancer
Subnet StringId - required string → The ID of the subnet where LoadBalancer services will be allocated IPs. Forces replacement on change.
- master
Count Number - required number → The number of master nodes. Must be an odd number to maintain etcd quorum (1, 3, or 5). Forces replacement on change.
- master
Disks List<Property Map> - set → Information about the master node disks. Each disk includes
typeandsize. - master
Flavor String - required string → The flavor ID for master nodes. Changing this triggers a rolling upgrade of the control plane.
- name String
- required string → A unique cluster name. Must be 3-25 lowercase alphanumeric characters or hyphens, start/end with alphanumeric, and contain no consecutive hyphens. Forces replacement on change.
- network
Id String - required string → The ID of the VPC network where the cluster will be deployed. The network must use the
sprutSDN. Forces replacement on change. - network
Plugin String - required string → The CNI plugin to use. Currently only
calicois supported. Forces replacement on change. - node
Groups List<Property Map> - set → A list of node groups associated with the cluster. Each object contains
id,name,flavor,node_count, andavailability_zone. - pods
Ipv4Cidr String - required string → The IPv4 CIDR block for the pod network. Must be a valid private CIDR (e.g.,
10.100.0.0/16). Forces replacement on change. - project
Id String - string → The project ID that owns the cluster.
- public
Ip Boolean - optional boolean → If
true, a floating IP is assigned to the API endpoint.Forces replacementon change. Default isfalse. - region String
- optional string → The region in which to create the cluster. If omitted, the provider's
regionis used. Forces replacement on change. - status String
- string → The current cluster status (e.g.,
RUNNING,RECONCILING). - subnet
Id String - required string → The ID of the subnet for cluster nodes. Forces replacement on change.
- timeouts Property Map
- Timeouts configuration for create, update and delete operations.
- uuid String
- optional string → The cluster UUID. Can be specified; if not, it is generated automatically. Changing this forces a new cluster.
- version String
- required string → The Kubernetes version to deploy. Only upgrades to a higher version are allowed.
Supporting Types
KubernetesClusterV2MasterDisk, KubernetesClusterV2MasterDiskArgs
KubernetesClusterV2NodeGroup, KubernetesClusterV2NodeGroupArgs
- Availability
Zone string - string → The AZ where the node group resides.
- Flavor string
- string → The flavor ID used for the worker nodes.
- Id string
- string → The ID of the node group.
- Name string
- required string → A unique cluster name. Must be 3-25 lowercase alphanumeric characters or hyphens, start/end with alphanumeric, and contain no consecutive hyphens. Forces replacement on change.
- Node
Count double - number → The current number of nodes in the group.
- Availability
Zone string - string → The AZ where the node group resides.
- Flavor string
- string → The flavor ID used for the worker nodes.
- Id string
- string → The ID of the node group.
- Name string
- required string → A unique cluster name. Must be 3-25 lowercase alphanumeric characters or hyphens, start/end with alphanumeric, and contain no consecutive hyphens. Forces replacement on change.
- Node
Count float64 - number → The current number of nodes in the group.
- availability
Zone String - string → The AZ where the node group resides.
- flavor String
- string → The flavor ID used for the worker nodes.
- id String
- string → The ID of the node group.
- name String
- required string → A unique cluster name. Must be 3-25 lowercase alphanumeric characters or hyphens, start/end with alphanumeric, and contain no consecutive hyphens. Forces replacement on change.
- node
Count Double - number → The current number of nodes in the group.
- availability
Zone string - string → The AZ where the node group resides.
- flavor string
- string → The flavor ID used for the worker nodes.
- id string
- string → The ID of the node group.
- name string
- required string → A unique cluster name. Must be 3-25 lowercase alphanumeric characters or hyphens, start/end with alphanumeric, and contain no consecutive hyphens. Forces replacement on change.
- node
Count number - number → The current number of nodes in the group.
- availability_
zone str - string → The AZ where the node group resides.
- flavor str
- string → The flavor ID used for the worker nodes.
- id str
- string → The ID of the node group.
- name str
- required string → A unique cluster name. Must be 3-25 lowercase alphanumeric characters or hyphens, start/end with alphanumeric, and contain no consecutive hyphens. Forces replacement on change.
- node_
count float - number → The current number of nodes in the group.
- availability
Zone String - string → The AZ where the node group resides.
- flavor String
- string → The flavor ID used for the worker nodes.
- id String
- string → The ID of the node group.
- name String
- required string → A unique cluster name. Must be 3-25 lowercase alphanumeric characters or hyphens, start/end with alphanumeric, and contain no consecutive hyphens. Forces replacement on change.
- node
Count Number - number → The current number of nodes in the group.
KubernetesClusterV2Timeouts, KubernetesClusterV2TimeoutsArgs
Import
Clusters can be imported using the id, e.g.
$ pulumi import vkcs:index/kubernetesClusterV2:KubernetesClusterV2 k8s_cluster 39UdIv4W0EegBs2EYVeGdas38do
To learn more about importing existing cloud resources, see Importing resources.
Package Details
- Repository
- vkcs vk-cs/terraform-provider-vkcs
- License
- Notes
- This Pulumi package is based on the
vkcsTerraform Provider.
published on Tuesday, May 5, 2026 by vk-cs
