exoscale_sks_nodepool (Resource)

Manage Exoscale Scalable Kubernetes Service (SKS) Node Pools.

Example Usage

resource "exoscale_sks_cluster" "my_sks_cluster" {
  zone = "ch-gva-2"
  name = "my-sks-cluster"
}

resource "exoscale_sks_nodepool" "my_sks_nodepool" {
  cluster_id         = exoscale_sks_cluster.my_sks_cluster.id
  zone               = exoscale_sks_cluster.my_sks_cluster.zone
  name               = "my-sks-nodepool"

  instance_type      = "standard.medium"
  size               = 3
}

Please refer to the examples directory for complete configuration examples.

Schema

Required

  • cluster_id (String) ❗ The parent exoscale_sks_cluster ID.
  • instance_type (String) The managed compute instances type (<family>.<size>, e.g. standard.medium; use the Exoscale CLI - exo compute instance-type list - for the list of available types).
  • name (String) The SKS node pool name.
  • size (Number)
  • zone (String) ❗ The Exoscale Zone name.

Optional

  • anti_affinity_group_ids (Set of String) A list of exoscale_anti_affinity_group (IDs) to be attached to the managed instances.
  • deploy_target_id (String) A deploy target ID.
  • description (String) A free-form text describing the pool.
  • disk_size (Number) The managed instances disk size (GiB; default: 50).
  • instance_prefix (String) The string used to prefix the managed instances name (default pool).
  • kubelet_image_gc (Block Set) Configuration for this nodepool’s kubelet image garbage collector (see below for nested schema)
  • labels (Map of String) A map of key/value labels.
  • private_network_ids (Set of String) A list of exoscale_private_network (IDs) to be attached to the managed instances.
  • security_group_ids (Set of String) A list of exoscale_security_group (IDs) to be attached to the managed instances.
  • storage_lvm (Boolean) Create nodes with non-standard partitioning for persistent storage (requires min 100G of disk space) (may only be set at creation time).
  • taints (Map of String) A map of key/value Kubernetes taints (’taints = { = “:” }’).
  • timeouts (Block, Optional) (see below for nested schema)

Read-Only

  • created_at (String) The pool creation date.
  • id (String) The SKS node pool ID.
  • instance_pool_id (String) The underlying exoscale_instance_pool ID.
  • state (String) The current pool state.
  • template_id (String) The managed instances template ID.
  • version (String) The managed instances version.

Nested Schema for kubelet_image_gc

Optional:

  • high_threshold (Number) The percent of disk usage after which image garbage collection is always run
  • low_threshold (Number) The percent of disk usage before which image garbage collection is never run
  • min_age (String) The minimum age for an unused image before it is garbage collected (k8s duration format, eg. 1h)

Nested Schema for timeouts

Optional:

  • create (String)
  • delete (String)
  • read (String)
  • update (String)

-> The symbol ❗ in an attribute indicates that modifying it, will force the creation of a new resource.

Import

An existing SKS node pool may be imported by <cluster-ID>/<nodepool-ID>@<zone>:

terraform import \
  exoscale_sks_nodepool.my_sks_nodepool \
  f81d4fae-7dec-11d0-a765-00a0c91e6bf6/9ecc6b8b-73d4-4211-8ced-f7f29bb79524@ch-gva-2