Skip to content
This repository has been archived by the owner on Jan 28, 2025. It is now read-only.

Latest commit

 

History

History
186 lines (125 loc) · 10.2 KB

ske_cluster.md

File metadata and controls

186 lines (125 loc) · 10.2 KB
page_title subcategory description
stackit_ske_cluster Resource - stackit
SKE Cluster Resource schema. Must have a region specified in the provider configuration. -> When updating node_pools of a stackit_ske_cluster, the Terraform plan might appear incorrect as it matches the node pools by index rather than by name. However, the SKE API correctly identifies node pools by name and applies the intended changes. Please review your changes carefully to ensure the correct configuration will be applied.

stackit_ske_cluster (Resource)

SKE Cluster Resource schema. Must have a region specified in the provider configuration.

-> When updating node_pools of a stackit_ske_cluster, the Terraform plan might appear incorrect as it matches the node pools by index rather than by name. However, the SKE API correctly identifies node pools by name and applies the intended changes. Please review your changes carefully to ensure the correct configuration will be applied.

Example Usage

resource "stackit_ske_cluster" "example" {
  project_id         = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
  name               = "example"
  kubernetes_version = "x.x"
  node_pools = [
    {
      name               = "np-example"
      machine_type       = "x.x"
      os_version         = "x.x.x"
      minimum            = "2"
      maximum            = "3"
      availability_zones = ["eu01-3"]
    }
  ]
  maintenance = {
    enable_kubernetes_version_updates    = true
    enable_machine_image_version_updates = true
    start                                = "01:00:00Z"
    end                                  = "02:00:00Z"
  }
}

Schema

Required

  • name (String) The cluster name.
  • node_pools (Attributes List) One or more node_pool block as defined below. (see below for nested schema)
  • project_id (String) STACKIT project ID to which the cluster is associated.

Optional

  • allow_privileged_containers (Boolean) Flag to specify if privileged mode for containers is enabled or not. This should be used with care since it also disables a couple of other features like the use of some volume type (e.g. PVCs). Deprecated as of Kubernetes 1.25 and later
  • extensions (Attributes) A single extensions block as defined below. (see below for nested schema)
  • hibernations (Attributes List) One or more hibernation block as defined below. (see below for nested schema)
  • kubernetes_version (String, Deprecated) Kubernetes version. Must only contain major and minor version (e.g. 1.22). This field is deprecated, use kubernetes_version_min instead
  • kubernetes_version_min (String) The minimum Kubernetes version. This field will be used to set the minimum kubernetes version on creation/update of the cluster. If unset, the latest supported Kubernetes version will be used. SKE automatically updates the cluster Kubernetes version if you have set maintenance.enable_kubernetes_version_updates to true or if there is a mandatory update, as described in Updates for Kubernetes versions and Operating System versions in SKE. To get the current kubernetes version being used for your cluster, use the read-only kubernetes_version_used field.
  • maintenance (Attributes) A single maintenance block as defined below. (see below for nested schema)
  • network (Attributes) Network block as defined below. (see below for nested schema)

Read-Only

  • id (String) Terraform's internal resource ID. It is structured as "project_id,name".
  • kubernetes_version_used (String) Full Kubernetes version used. For example, if 1.22 was set in kubernetes_version_min, this value may result to 1.22.15. SKE automatically updates the cluster Kubernetes version if you have set maintenance.enable_kubernetes_version_updates to true or if there is a mandatory update, as described in Updates for Kubernetes versions and Operating System versions in SKE.

Nested Schema for node_pools

Required:

  • availability_zones (List of String) Specify a list of availability zones. E.g. eu01-m
  • machine_type (String) The machine type.
  • maximum (Number) Maximum number of nodes in the pool.
  • minimum (Number) Minimum number of nodes in the pool.
  • name (String) Specifies the name of the node pool.

Optional:

  • allow_system_components (Boolean) Allow system components to run on this node pool.
  • cri (String) Specifies the container runtime. Defaults to containerd
  • labels (Map of String) Labels to add to each node.
  • max_surge (Number) Maximum number of additional VMs that are created during an update. If set (larger than 0), then it must be at least the amount of zones configured for the nodepool. The max_surge and max_unavailable fields cannot both be unset at the same time.
  • max_unavailable (Number) Maximum number of additional VMs that are created during an update. If set (larger than 0), then it must be at least the amount of zones configured for the nodepool. The max_surge and max_unavailable fields cannot both be unset at the same time.
  • os_name (String) The name of the OS image. Defaults to flatcar.
  • os_version (String, Deprecated) This field is deprecated, use os_version_min to configure the version and os_version_used to get the currently used version instead.
  • os_version_min (String) The minimum OS image version. This field will be used to set the minimum OS image version on creation/update of the cluster. If unset, the latest supported OS image version will be used. SKE automatically updates the cluster Kubernetes version if you have set maintenance.enable_kubernetes_version_updates to true or if there is a mandatory update, as described in Updates for Kubernetes versions and Operating System versions in SKE. To get the current OS image version being used for the node pool, use the read-only os_version_used field.
  • taints (Attributes List) Specifies a taint list as defined below. (see below for nested schema)
  • volume_size (Number) The volume size in GB. Defaults to 20
  • volume_type (String) Specifies the volume type. Defaults to storage_premium_perf1.

Read-Only:

  • os_version_used (String) Full OS image version used. For example, if 3815.2 was set in os_version_min, this value may result to 3815.2.2. SKE automatically updates the cluster Kubernetes version if you have set maintenance.enable_kubernetes_version_updates to true or if there is a mandatory update, as described in Updates for Kubernetes versions and Operating System versions in SKE.

Nested Schema for node_pools.taints

Required:

  • effect (String) The taint effect. E.g PreferNoSchedule.
  • key (String) Taint key to be applied to a node.

Optional:

  • value (String) Taint value corresponding to the taint key.

Nested Schema for extensions

Optional:

Nested Schema for extensions.acl

Required:

  • allowed_cidrs (List of String) Specify a list of CIDRs to whitelist.
  • enabled (Boolean) Is ACL enabled?

Nested Schema for extensions.argus

Required:

  • enabled (Boolean) Flag to enable/disable Argus extensions.

Optional:

  • argus_instance_id (String) Argus instance ID to choose which Argus instance is used. Required when enabled is set to true.

Nested Schema for extensions.dns

Required:

  • enabled (Boolean) Flag to enable/disable DNS extensions

Optional:

  • zones (List of String) Specify a list of domain filters for externalDNS (e.g., foo.runs.onstackit.cloud)

Nested Schema for hibernations

Required:

  • end (String) End time of hibernation in crontab syntax. E.g. 0 8 * * * for waking up the cluster at 8am.
  • start (String) Start time of cluster hibernation in crontab syntax. E.g. 0 18 * * * for starting everyday at 6pm.

Optional:

  • timezone (String) Timezone name corresponding to a file in the IANA Time Zone database. i.e. Europe/Berlin.

Nested Schema for maintenance

Required:

  • end (String) Time for maintenance window end. E.g. 01:23:45Z, 05:00:00+02:00.
  • start (String) Time for maintenance window start. E.g. 01:23:45Z, 05:00:00+02:00.

Optional:

  • enable_kubernetes_version_updates (Boolean) Flag to enable/disable auto-updates of the Kubernetes version. Defaults to true. SKE automatically updates the cluster Kubernetes version if you have set maintenance.enable_kubernetes_version_updates to true or if there is a mandatory update, as described in Updates for Kubernetes versions and Operating System versions in SKE.
  • enable_machine_image_version_updates (Boolean) Flag to enable/disable auto-updates of the OS image version. Defaults to true. SKE automatically updates the cluster Kubernetes version if you have set maintenance.enable_kubernetes_version_updates to true or if there is a mandatory update, as described in Updates for Kubernetes versions and Operating System versions in SKE.

Nested Schema for network

Optional:

  • id (String) ID of the STACKIT Network Area (SNA) network into which the cluster will be deployed.