IaC Bazaar
ScalewayStatic-verified

Scaleway Kapsule Cluster

Kapsule Kubernetes with pools, private network, and autoscaling/autoheal presets.

terraformAlt & Specialty Clouds#scaleway

Compare Managed Kubernetes across clouds →

scaleway-kapsule-clusterterraform v1.7

Verification

Static-verified

Passed: validated and lint-clean (provider-schema-validated for AWS/Azure/GCP; Terraform-language lint elsewhere).

Conformance

  • Static validation (fmt · validate · tflint)
  • No applicable security policies for this provider
  • Plan tests (mocked: validation rules · outputs)

Provenance

  • SHA-256 checksum
  • Signature (pending)

Functional

  • Live test pending (no cloud run yet)

Last verified 2026-06-28 · how we verify

Documentation

scaleway-kapsule-cluster

A Scaleway Kapsule managed Kubernetes cluster: a private-network-attached cluster with one or more autoscaling node pools, Cilium CNI, and auto-upgrade during a maintenance window.

Status: static-validated, live-test pending. Validated with tofu validate + tflint + checkov against the scaleway/scaleway provider. Not yet applied against a live Scaleway project, so it ships under live-test quarantine.

Design & secure defaults

  • Private network required and provided. Kapsule clusters must attach to a private network; the module creates a dedicated one unless you pass private_network_id.
  • Cilium CNI by default so Kubernetes NetworkPolicies are enforced.
  • Auto-upgrade + autohealing on with a configurable maintenance window; node pools autoscale (min_sizemax_size) by default.
  • Clean teardown. delete_additional_resources = true removes cluster-created load balancers and volumes on destroy (set false to retain).
  • A precondition enforces min_size <= size <= max_size per autoscaling pool.

Usage

module "kapsule" {
  source = "github.com/ITfreak/iacbazaar//artifacts/terraform/scaleway-kapsule-cluster"

  name               = "prod"
  kubernetes_version = "1.30"

  node_pools = {
    default = { node_type = "PRO2-XXS", size = 3, zone = "fr-par-1" }
  }
}

See examples/basic for a complete configuration.

Key inputs

VariableDescriptionDefault
nameCluster name + PN prefixrequired
kubernetes_versionK8s version (1.30)1.30
cluster_typekapsule or kapsule-dedicated-*kapsule
cnicilium / calico / flannelcilium
private_network_idAttach to existing PNnull (creates one)
node_poolsMap of pools (node_type, size, autoscaling bounds, zone)one PRO2-XXS pool
auto_upgrade_enableAuto patch upgradestrue
maintenance_window_*Upgrade window03:00 / any
autoscaler_configCluster-autoscaler tuningprovider default
delete_additional_resourcesClean LBs/volumes on destroytrue
region / project_idPlacementfr-par / provider default

Outputs

cluster_id, cluster_name, apiserver_url, kubernetes_version, wildcard_dns, private_network_id, node_pool_ids (map).

Provider

scaleway/scaleway >= 2.0, < 3.0. Requires Terraform/OpenTofu >= 1.6.

License

Commercial — LicenseRef-IaCBazaar-Commercial. See the IaC Bazaar terms.