Skip to content

Scale Cluster Resources

Raise cpu, memory, or storage on an existing kupe_cluster resource and Terraform updates the limits in place; nothing else in the block needs to change.

resource "kupe_cluster" "prod" {
name = "prod"
version = "1.31"
resources = {
cpu = "8" # scaled from 4
memory = "32Gi" # scaled from 16Gi
storage = "200Gi" # scaled from 100Gi
}
}
Terminal window
terraform plan # shows the resource changes
terraform apply # applies them

resources is mutable, so this is an in-place update; Terraform does not replace the cluster.

terraform apply waits, up to the update timeout (15 minutes unless the timeouts attribute sets another, for example timeouts = { update = "30m" }), until the cluster is Running with the change applied: its status.observedGeneration has reached the generation the change produced. The apply fails at once if the cluster starts being deleted (Terminating), and fails if the cluster stays Degraded for 2 minutes after the platform applied the change. A cluster that was Degraded before the change gets the chance to recover with it.

If the timeout runs out first, the apply fails while the cluster is Degraded after the platform applied the change, or while the platform is failing to apply the change and retrying. Otherwise the apply ends with a warning, the platform carries on in the background, and a later terraform apply records the result. The change is in state either way, so applying again does not send it again.

For the underlying API call, see Scale and Upgrade Clusters via the API.