Skip to content

Commit defb637

Browse files
committed
feat(ske): add datasource to query provider options
Signed-off-by: Mauritz Uphoff <[email protected]>
1 parent b16cfc4 commit defb637

File tree

13 files changed

+1411
-0
lines changed

13 files changed

+1411
-0
lines changed
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
---
2+
# generated by https://github.com/hashicorp/terraform-plugin-docs
3+
page_title: "stackit_ske_kubernetes_versions Data Source - stackit"
4+
subcategory: ""
5+
description: |-
6+
Returns Kubernetes versions as reported by the SKE provider options API for the given region.
7+
---
8+
9+
# stackit_ske_kubernetes_versions (Data Source)
10+
11+
Returns Kubernetes versions as reported by the SKE provider options API for the given region.
12+
13+
## Example Usage
14+
15+
```terraform
16+
data "stackit_ske_kubernetes_versions" "example" {
17+
version_state = "SUPPORTED"
18+
}
19+
20+
resource "stackit_ske_cluster" "example" {
21+
project_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
22+
name = "example"
23+
kubernetes_version = data.stackit_ske_kubernetes_versions.example.kubernetes_versions.0.version
24+
node_pools = [
25+
{
26+
name = "np-example"
27+
machine_type = "x.x"
28+
os_version = "x.x.x"
29+
os_name = "xxx"
30+
minimum = "2"
31+
maximum = "3"
32+
availability_zones = ["eu01-1"]
33+
volume_type = "storage_premium_perf6"
34+
volume_size = "48"
35+
}
36+
]
37+
}
38+
```
39+
40+
<!-- schema generated by tfplugindocs -->
41+
## Schema
42+
43+
### Optional
44+
45+
- `region` (String) Region override. If omitted, the provider’s region will be used.
46+
- `version_state` (String) If specified, only returns Kubernetes versions with this version state. Possible values are: `UNSPECIFIED`, `SUPPORTED`.
47+
48+
### Read-Only
49+
50+
- `kubernetes_versions` (Attributes List) Kubernetes versions and their metadata. (see [below for nested schema](#nestedatt--kubernetes_versions))
51+
52+
<a id="nestedatt--kubernetes_versions"></a>
53+
### Nested Schema for `kubernetes_versions`
54+
55+
Read-Only:
56+
57+
- `expiration_date` (String) Expiration date of the version in RFC3339 format.
58+
- `feature_gates` (Map of String) Map of available feature gates for this version.
59+
- `state` (String) State of the kubernetes version.
60+
- `version` (String) Kubernetes version string (e.g., `1.33.6`).
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
---
2+
# generated by https://github.com/hashicorp/terraform-plugin-docs
3+
page_title: "stackit_ske_machine_image_versions Data Source - stackit"
4+
subcategory: ""
5+
description: |-
6+
Returns a list of supported Kubernetes machine image versions for the cluster nodes.
7+
---
8+
9+
# stackit_ske_machine_image_versions (Data Source)
10+
11+
Returns a list of supported Kubernetes machine image versions for the cluster nodes.
12+
13+
## Example Usage
14+
15+
```terraform
16+
data "stackit_ske_machine_image_versions" "example" {
17+
version_state = "SUPPORTED"
18+
}
19+
20+
locals {
21+
flatcar_supported_version = one(flatten([
22+
for mi in data.stackit_ske_machine_image_versions.example.machine_images : [
23+
for v in mi.versions :
24+
v.version
25+
if mi.name == "flatcar" # or ubuntu
26+
]
27+
]))
28+
}
29+
30+
resource "stackit_ske_cluster" "example" {
31+
project_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
32+
name = "example"
33+
kubernetes_version = "x.x"
34+
node_pools = [
35+
{
36+
name = "np-example"
37+
machine_type = "x.x"
38+
os_version = local.flatcar_supported_version
39+
os_name = "flatcar"
40+
minimum = "2"
41+
maximum = "3"
42+
availability_zones = ["eu01-1"]
43+
volume_type = "storage_premium_perf6"
44+
volume_size = "48"
45+
}
46+
]
47+
}
48+
```
49+
50+
<!-- schema generated by tfplugindocs -->
51+
## Schema
52+
53+
### Optional
54+
55+
- `region` (String) Region override. If omitted, the provider’s region will be used.
56+
- `version_state` (String) Filter returned machine image versions by their state. Possible values are: `UNSPECIFIED`, `SUPPORTED`.
57+
58+
### Read-Only
59+
60+
- `machine_images` (Attributes List) Supported machine image types and versions. (see [below for nested schema](#nestedatt--machine_images))
61+
62+
<a id="nestedatt--machine_images"></a>
63+
### Nested Schema for `machine_images`
64+
65+
Read-Only:
66+
67+
- `name` (String) Name of the OS image (e.g., `ubuntu` or `flatcar`).
68+
- `versions` (Attributes List) Supported versions of the image. (see [below for nested schema](#nestedatt--machine_images--versions))
69+
70+
<a id="nestedatt--machine_images--versions"></a>
71+
### Nested Schema for `machine_images.versions`
72+
73+
Read-Only:
74+
75+
- `cri` (List of String) Container runtimes supported (e.g., `containerd`).
76+
- `expiration_date` (String) Expiration date of the version in RFC3339 format.
77+
- `state` (String) State of the image version.
78+
- `version` (String) Machine image version string.

docs/resources/ske_cluster.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,12 @@ resource "stackit_ske_cluster" "example" {
2525
name = "np-example"
2626
machine_type = "x.x"
2727
os_version = "x.x.x"
28+
os_name = "xxx"
2829
minimum = "2"
2930
maximum = "3"
3031
availability_zones = ["eu01-3"]
32+
volume_type = "storage_premium_perf6"
33+
volume_size = "48"
3134
}
3235
]
3336
maintenance = {
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
data "stackit_ske_kubernetes_versions" "example" {
2+
version_state = "SUPPORTED"
3+
}
4+
5+
resource "stackit_ske_cluster" "example" {
6+
project_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
7+
name = "example"
8+
kubernetes_version = data.stackit_ske_kubernetes_versions.example.kubernetes_versions.0.version
9+
node_pools = [
10+
{
11+
name = "np-example"
12+
machine_type = "x.x"
13+
os_version = "x.x.x"
14+
os_name = "xxx"
15+
minimum = "2"
16+
maximum = "3"
17+
availability_zones = ["eu01-1"]
18+
volume_type = "storage_premium_perf6"
19+
volume_size = "48"
20+
}
21+
]
22+
}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
data "stackit_ske_machine_image_versions" "example" {
2+
version_state = "SUPPORTED"
3+
}
4+
5+
locals {
6+
flatcar_supported_version = one(flatten([
7+
for mi in data.stackit_ske_machine_image_versions.example.machine_images : [
8+
for v in mi.versions :
9+
v.version
10+
if mi.name == "flatcar" # or ubuntu
11+
]
12+
]))
13+
}
14+
15+
resource "stackit_ske_cluster" "example" {
16+
project_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
17+
name = "example"
18+
kubernetes_version = "x.x"
19+
node_pools = [
20+
{
21+
name = "np-example"
22+
machine_type = "x.x"
23+
os_version = local.flatcar_supported_version
24+
os_name = "flatcar"
25+
minimum = "2"
26+
maximum = "3"
27+
availability_zones = ["eu01-1"]
28+
volume_type = "storage_premium_perf6"
29+
volume_size = "48"
30+
}
31+
]
32+
}

examples/resources/stackit_ske_cluster/resource.tf

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,12 @@ resource "stackit_ske_cluster" "example" {
77
name = "np-example"
88
machine_type = "x.x"
99
os_version = "x.x.x"
10+
os_name = "xxx"
1011
minimum = "2"
1112
maximum = "3"
1213
availability_zones = ["eu01-3"]
14+
volume_type = "storage_premium_perf6"
15+
volume_size = "48"
1316
}
1417
]
1518
maintenance = {

0 commit comments

Comments
 (0)