Skip to content

Commit 1a7f02f

Browse files
committed
add documentation and checkdestroy
1 parent 7b6a41c commit 1a7f02f

6 files changed

+1365
-1274
lines changed
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
---
2+
subcategory: "Elastic Metal"
3+
page_title: "Scaleway: scaleway_easy_partitioningr"
4+
---
5+
6+
# scaleway_easy_partitioning
7+
8+
The scaleway_easy_partitioning data source allows you to retrieve a ready-to-use partitioning schema for a BareMetal server. This schema can be used for custom installations with optional swap and extra partitions.
9+
10+
This data source simplifies the process of generating valid partitioning configurations, especially useful when dealing with OS and offer compatibility requirements.
11+
12+
## Example Usage
13+
14+
```hcl
15+
data "scaleway_easy_partitioning" "default" {
16+
offer_id = "11111111-1111-1111-1111-111111111111"
17+
os_id = "22222222-2222-2222-2222-222222222222"
18+
swap = true
19+
extra_partition = true
20+
ext_4_mountpoint = "/data"
21+
}
22+
```
23+
24+
```hcl
25+
data "scaleway_baremetal_offer" "my_offer" {
26+
zone = "fr-par-1"
27+
name = "EM-B220E-NVME"
28+
}
29+
30+
data "scaleway_baremetal_os" "my_os" {
31+
zone = "fr-par-1"
32+
name = "Ubuntu"
33+
version = "22.04 LTS (Jammy Jellyfish)"
34+
}
35+
36+
resource "scaleway_iam_ssh_key" "main" {
37+
name = "my-ssh-key"
38+
public_key = "my-ssh-key-public"
39+
}
40+
41+
data "scaleway_baremetal_easy_partitioning" "test" {
42+
offer_id = data.scaleway_baremetal_offer.my_offer.offer_id
43+
os_id = data.scaleway_baremetal_os.my_os.os_id
44+
swap = false
45+
ext_4_mountpoint = "/hello"
46+
}
47+
48+
resource "scaleway_baremetal_server" "base" {
49+
name = "my-baremetal-server"
50+
zone = "fr-par-1"
51+
description = "test a description"
52+
offer = data.scaleway_baremetal_offer.my_offer.offer_id
53+
os = data.scaleway_baremetal_os.my_os.os_id
54+
partitioning = data.scaleway_baremetal_easy_partitioning.test.json_partition
55+
tags = ["terraform-test", "scaleway_baremetal_server", "minimal", "edited"]
56+
ssh_key_ids = [scaleway_iam_ssh_key.main.id]
57+
}
58+
```
59+
60+
## Argument Reference
61+
62+
- `offer_id` (Required) The UUID of the BareMetal offer.
63+
64+
- `os_id` (Required) The UUID of the OS image.
65+
66+
- `swap` (Optional, Default: true) Whether to include a swap partition.
67+
68+
- `extra_partition` (Optional, Default: true) Whether to add an extra ext4 data partition.
69+
70+
- `ext_4_mountpoint` (Optional, Default: "/data") The mount point for the extra partition. Must be an absolute path using alphanumeric characters and underscores.
71+
72+
## Attributes Reference
73+
74+
In addition to all above arguments, the following attributes are exported:
75+
76+
- `id` — A composite identifier derived from offer_id and os_id.
77+
78+
- `json_partition` — A validated partitioning schema in JSON format that can be directly used for BareMetal server deployment.

internal/services/baremetal/easy_partitioning_source_test.go

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package baremetal_test
33
import (
44
"encoding/json"
55
"fmt"
6+
baremetalchecks "github.com/scaleway/terraform-provider-scaleway/v2/internal/services/baremetal/testfuncs"
67
"reflect"
78
"regexp"
89
"testing"
@@ -31,6 +32,9 @@ func TestAccEasyPartitioningDataSource_Basic(t *testing.T) {
3132
resource.ParallelTest(t, resource.TestCase{
3233
PreCheck: func() { acctest.PreCheck(t) },
3334
ProviderFactories: tt.ProviderFactories,
35+
CheckDestroy: resource.ComposeTestCheckFunc(
36+
baremetalchecks.CheckServerDestroy(tt),
37+
),
3438
Steps: []resource.TestStep{
3539
{
3640
Config: fmt.Sprintf(`
@@ -96,6 +100,9 @@ func TestAccEasyPartitioningDataSource_WithAlternateOffer(t *testing.T) {
96100
resource.ParallelTest(t, resource.TestCase{
97101
PreCheck: func() { acctest.PreCheck(t) },
98102
ProviderFactories: tt.ProviderFactories,
103+
CheckDestroy: resource.ComposeTestCheckFunc(
104+
baremetalchecks.CheckServerDestroy(tt),
105+
),
99106
Steps: []resource.TestStep{
100107
{
101108
Config: fmt.Sprintf(
@@ -162,6 +169,9 @@ func TestAccEasyPartitioningDataSource_IncompatibleOS(t *testing.T) {
162169
resource.ParallelTest(t, resource.TestCase{
163170
PreCheck: func() { acctest.PreCheck(t) },
164171
ProviderFactories: tt.ProviderFactories,
172+
CheckDestroy: resource.ComposeTestCheckFunc(
173+
baremetalchecks.CheckServerDestroy(tt),
174+
),
165175
Steps: []resource.TestStep{
166176
{
167177
Config: fmt.Sprintf(
@@ -221,6 +231,9 @@ func TestAccEasyPartitioningDataSource_IncompatibleOffer(t *testing.T) {
221231
resource.ParallelTest(t, resource.TestCase{
222232
PreCheck: func() { acctest.PreCheck(t) },
223233
ProviderFactories: tt.ProviderFactories,
234+
CheckDestroy: resource.ComposeTestCheckFunc(
235+
baremetalchecks.CheckServerDestroy(tt),
236+
),
224237
Steps: []resource.TestStep{
225238
{
226239
Config: fmt.Sprintf(

internal/services/baremetal/testdata/easy-partitioning-data-source-basic.cassette.yaml

Lines changed: 644 additions & 595 deletions
Large diffs are not rendered by default.

internal/services/baremetal/testdata/easy-partitioning-data-source-incompatible-offer.cassette.yaml

Lines changed: 21 additions & 21 deletions
Large diffs are not rendered by default.

internal/services/baremetal/testdata/easy-partitioning-data-source-incompatible-os.cassette.yaml

Lines changed: 10 additions & 10 deletions
Large diffs are not rendered by default.

internal/services/baremetal/testdata/easy-partitioning-data-source-with-alternate-offer.cassette.yaml

Lines changed: 599 additions & 648 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)