Kvindo™ Cloud Docs


Language

Etcd Cluster

An Etcd Cluster is a managed distributed key-value store for service discovery, coordination, and configuration storage. Each instance runs on its own dedicated VM; the cluster is described as a single resource with one entry per node in spec.instances — there is no separate node-group resource.

Key concepts

Cluster-wide sizing, per-instance identityspec.vmOfferId/spec.volumeOfferId/spec.volumeSizeGiB apply identically to every instance (the cluster is homogeneous by design); only each instance's id and subnet (spec.instances[].id/vpcSubnetId) vary per node

Instance id is caller-supplied — the platform diffs the desired instances array against the current one on every modify; reuse an instance's existing id to keep it, or supply a new id to add a node

Scaling is one node per modify — a single request may only change the instance count by at most one, up or down; a bigger jump is rejected with a validation error. To go from 2 nodes to 4, apply two separate modify requests: 2→3, then 3→4

Subnet placement — each instance's vpcSubnetId is independent; spread instances across different subnets for availability, or keep them in one subnet for a simpler setup — neither is required

Cluster size — no enforced minimum or maximum; etcd itself needs a quorum to stay available, so an odd node count (1, 3, 5) is the conventional safe choice — a 2-node cluster has no more fault tolerance than a 1-node one

Public access — private by default; set spec.createPublicIpv4 to give every instance a public IPv4

Parameters
UI Name API / kc name Terraform name Optional Format Default Is read only Description
Tier spec.tier spec.tier No string standard No Reserved for future use — only standard is accepted today
Etcd version spec.etcdVersion spec.etcd_version No string — etcd version 3.6.14 No 3.6.14 is currently the only supported version — any other value is rejected on both create and modify, so this field is effectively immutable for now
Root password spec.rootPassword spec.root_password No string (sensitive, write-only) No Cluster-wide bootstrap credential for etcdctl auth; never returned in status
Public IPv4 spec.createPublicIpv4 spec.create_public_ipv4 Yes boolean false No Give every instance a public IPv4
VM offer spec.vmOfferId spec.vm_offer_id No string (≤32) — compute offer g3-1c1-100 No Applies to every instance — see the Console catalog
Volume offer spec.volumeOfferId spec.volume_offer_id No string (≤32) — disk offer gp3-750 No Applies to every instance
Volume size spec.volumeSizeGiB spec.volume_size_gib No integer — GiB 10 No Applies to every instance
Instances spec.instances spec.instances No list of objects No One entry per cluster node
Instance ID instances[].id instances[].id No ULID No Caller-supplied — reuse across modifies to keep an existing instance
VPC subnet instances[].vpcSubnetId instances[].vpc_subnet_id No ULID — references a VPC Subnet No Subnet for this instance
CA certificate status.caCert status.ca_cert string Yes Cluster's public CA certificate — pass to etcdctl --cacert to trust the cluster's TLS
Port status.port status.port integer Yes Port etcdctl connects to — always 2379 today
Instances status.instances status.instances list of objects Yes The provisioned cluster nodes
Instance ID instances[].id instances[].id ULID Yes Matches the spec instance id
Public IPv4 instances[].publicIpV4 instances[].public_ipv4 string Yes Set only when the cluster has public IPv4 enabled
Private IPv4 instances[].privateIpV4 instances[].private_ipv4 string Yes Address on the instance's VPC subnet
Examples

A private 3-node cluster on an existing subnet.

Terraform

Python SDK

kc CLI


Related pages

Resource docs

An unhandled error has occurred. Reload
Произошла непредвиденная ошибка. Перезагрузить 🗙