Skip to content

Commit 134c8ee

Browse files
authored
Merge pull request #387 from matprig/fix/kube/import_acc_tests
Make acceptance tests for all Managed Kubernetes Service resources
2 parents 2020b76 + ea2c8f1 commit 134c8ee

6 files changed

+110
-121
lines changed

ovh/resource_cloud_project_kube_iprestrictions_test.go

+18-16
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import (
77

88
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/acctest"
99
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
10+
"github.com/hashicorp/terraform-plugin-sdk/v2/terraform"
1011
)
1112

1213
var testAccCloudProjectKubeIpRestrictionsConfig = `
@@ -26,6 +27,7 @@ resource "ovh_cloud_project_kube_iprestrictions" "iprestrictions" {
2627
func TestAccCloudProjectKubeIpRestrictions_basic(t *testing.T) {
2728
name := acctest.RandomWithPrefix(test_prefix)
2829
region := os.Getenv("OVH_CLOUD_PROJECT_KUBE_REGION_TEST")
30+
resourceName := "ovh_cloud_project_kube_iprestrictions.iprestrictions"
2931

3032
ips1 := `["10.42.0.0/16"]`
3133
config1 := fmt.Sprintf(
@@ -56,29 +58,29 @@ func TestAccCloudProjectKubeIpRestrictions_basic(t *testing.T) {
5658
{
5759
Config: config1,
5860
Check: resource.ComposeTestCheckFunc(
59-
resource.TestCheckResourceAttr(
60-
"ovh_cloud_project_kube.cluster", "region", region),
61-
resource.TestCheckResourceAttrSet(
62-
"ovh_cloud_project_kube.cluster", "kubeconfig"),
63-
resource.TestCheckResourceAttr(
64-
"ovh_cloud_project_kube.cluster", "name", name),
65-
resource.TestCheckResourceAttr(
66-
"ovh_cloud_project_kube_iprestrictions.iprestrictions", "ips.0", "10.42.0.0/16"),
61+
resource.TestCheckResourceAttr("ovh_cloud_project_kube.cluster", "region", region),
62+
resource.TestCheckResourceAttrSet("ovh_cloud_project_kube.cluster", "kubeconfig"),
63+
resource.TestCheckResourceAttr("ovh_cloud_project_kube.cluster", "name", name),
64+
resource.TestCheckResourceAttr("ovh_cloud_project_kube_iprestrictions.iprestrictions", "ips.0", "10.42.0.0/16"),
6765
),
6866
},
6967
{
7068
Config: config2,
7169
Check: resource.ComposeTestCheckFunc(
72-
resource.TestCheckResourceAttr(
73-
"ovh_cloud_project_kube.cluster", "region", region),
74-
resource.TestCheckResourceAttrSet(
75-
"ovh_cloud_project_kube.cluster", "kubeconfig"),
76-
resource.TestCheckResourceAttr(
77-
"ovh_cloud_project_kube.cluster", "name", name),
78-
resource.TestCheckResourceAttr(
79-
"ovh_cloud_project_kube_iprestrictions.iprestrictions", "ips.1", "10.43.0.0/16"),
70+
resource.TestCheckResourceAttr("ovh_cloud_project_kube.cluster", "region", region),
71+
resource.TestCheckResourceAttrSet("ovh_cloud_project_kube.cluster", "kubeconfig"),
72+
resource.TestCheckResourceAttr("ovh_cloud_project_kube.cluster", "name", name),
73+
resource.TestCheckResourceAttr("ovh_cloud_project_kube_iprestrictions.iprestrictions", "ips.1", "10.43.0.0/16"),
8074
),
8175
},
76+
{
77+
ResourceName: resourceName,
78+
ImportState: true,
79+
ImportStateVerify: true,
80+
ImportStateIdFunc: func(state *terraform.State) (string, error) {
81+
return fmt.Sprintf("%s/%s", os.Getenv("OVH_CLOUD_PROJECT_SERVICE_TEST"), state.RootModule().Resources[resourceName].Primary.ID), nil
82+
},
83+
},
8284
},
8385
})
8486
}

ovh/resource_cloud_project_kube_nodepool.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -219,7 +219,7 @@ func resourceCloudProjectKubeNodePoolImportState(d *schema.ResourceData, meta in
219219
givenId := d.Id()
220220
splitId := strings.SplitN(givenId, "/", 3)
221221
if len(splitId) != 3 {
222-
return nil, fmt.Errorf("Import Id is not service_name/kubeid/poolid formatted")
222+
return nil, fmt.Errorf("import Id is not service_name/kubeid/poolid formatted")
223223
}
224224
serviceName := splitId[0]
225225
kubeId := splitId[1]

ovh/resource_cloud_project_kube_nodepool_test.go

+41-58
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import (
1010

1111
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/acctest"
1212
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
13+
"github.com/hashicorp/terraform-plugin-sdk/v2/terraform"
1314
)
1415

1516
func init() {
@@ -145,6 +146,7 @@ func TestAccCloudProjectKubeNodePool(t *testing.T) {
145146
name := acctest.RandomWithPrefix(test_prefix)
146147
region := os.Getenv("OVH_CLOUD_PROJECT_KUBE_REGION_TEST")
147148
version := os.Getenv("OVH_CLOUD_PROJECT_KUBE_VERSION_TEST")
149+
resourceName := "ovh_cloud_project_kube_nodepool.pool"
148150
config := fmt.Sprintf(
149151
testAccCloudProjectKubeNodePoolConfig,
150152
os.Getenv("OVH_CLOUD_PROJECT_SERVICE_TEST"),
@@ -171,71 +173,52 @@ func TestAccCloudProjectKubeNodePool(t *testing.T) {
171173
{
172174
Config: config,
173175
Check: resource.ComposeTestCheckFunc(
174-
resource.TestCheckResourceAttr(
175-
"ovh_cloud_project_kube.cluster", "region", region),
176-
resource.TestCheckResourceAttrSet(
177-
"ovh_cloud_project_kube.cluster", "kubeconfig"),
178-
resource.TestCheckResourceAttr(
179-
"ovh_cloud_project_kube.cluster", "name", name),
180-
resource.TestCheckResourceAttr(
181-
"ovh_cloud_project_kube.cluster", "version", version),
182-
resource.TestCheckResourceAttr(
183-
"ovh_cloud_project_kube_nodepool.pool", "name", name),
184-
resource.TestCheckResourceAttr(
185-
"ovh_cloud_project_kube_nodepool.pool", "flavor_name", "b2-7"),
186-
resource.TestCheckResourceAttr(
187-
"ovh_cloud_project_kube_nodepool.pool", "desired_nodes", "1"),
188-
resource.TestCheckResourceAttr(
189-
"ovh_cloud_project_kube_nodepool.pool", "min_nodes", "0"),
190-
resource.TestCheckResourceAttr(
191-
"ovh_cloud_project_kube_nodepool.pool", "max_nodes", "1"),
192-
resource.TestCheckResourceAttr(
193-
"ovh_cloud_project_kube_nodepool.pool", "template.0.metadata.0.annotations.a1", "av1"),
194-
resource.TestCheckResourceAttr(
195-
"ovh_cloud_project_kube_nodepool.pool", "template.0.metadata.0.finalizers.0", "finalizer.extensions/v1beta1"),
196-
resource.TestCheckResourceAttr(
197-
"ovh_cloud_project_kube_nodepool.pool", "template.0.metadata.0.labels.l1", "lv1"),
198-
resource.TestCheckResourceAttr(
199-
"ovh_cloud_project_kube_nodepool.pool", "template.0.spec.0.taints.0.effect", "PreferNoSchedule"),
200-
resource.TestCheckResourceAttr(
201-
"ovh_cloud_project_kube_nodepool.pool", "template.0.spec.0.taints.0.key", "t1"),
202-
resource.TestCheckResourceAttr(
203-
"ovh_cloud_project_kube_nodepool.pool", "template.0.spec.0.taints.0.value", "tv1"),
204-
resource.TestCheckResourceAttr(
205-
"ovh_cloud_project_kube_nodepool.pool", "template.0.spec.0.unschedulable", "false"),
176+
resource.TestCheckResourceAttr("ovh_cloud_project_kube.cluster", "region", region),
177+
resource.TestCheckResourceAttrSet("ovh_cloud_project_kube.cluster", "kubeconfig"),
178+
resource.TestCheckResourceAttr("ovh_cloud_project_kube.cluster", "name", name),
179+
resource.TestCheckResourceAttr("ovh_cloud_project_kube.cluster", "version", version),
180+
resource.TestCheckResourceAttr("ovh_cloud_project_kube_nodepool.pool", "name", name),
181+
resource.TestCheckResourceAttr("ovh_cloud_project_kube_nodepool.pool", "flavor_name", "b2-7"),
182+
resource.TestCheckResourceAttr("ovh_cloud_project_kube_nodepool.pool", "desired_nodes", "1"),
183+
resource.TestCheckResourceAttr("ovh_cloud_project_kube_nodepool.pool", "min_nodes", "0"),
184+
resource.TestCheckResourceAttr("ovh_cloud_project_kube_nodepool.pool", "max_nodes", "1"),
185+
resource.TestCheckResourceAttr("ovh_cloud_project_kube_nodepool.pool", "template.0.metadata.0.annotations.a1", "av1"),
186+
resource.TestCheckResourceAttr("ovh_cloud_project_kube_nodepool.pool", "template.0.metadata.0.finalizers.0", "finalizer.extensions/v1beta1"),
187+
resource.TestCheckResourceAttr("ovh_cloud_project_kube_nodepool.pool", "template.0.metadata.0.labels.l1", "lv1"),
188+
resource.TestCheckResourceAttr("ovh_cloud_project_kube_nodepool.pool", "template.0.spec.0.taints.0.effect", "PreferNoSchedule"),
189+
resource.TestCheckResourceAttr("ovh_cloud_project_kube_nodepool.pool", "template.0.spec.0.taints.0.key", "t1"),
190+
resource.TestCheckResourceAttr("ovh_cloud_project_kube_nodepool.pool", "template.0.spec.0.taints.0.value", "tv1"),
191+
resource.TestCheckResourceAttr("ovh_cloud_project_kube_nodepool.pool", "template.0.spec.0.unschedulable", "false"),
206192
),
207193
},
208194
{
209195
Config: configUpdated,
210196
Check: resource.ComposeTestCheckFunc(
211-
resource.TestCheckResourceAttr(
212-
"ovh_cloud_project_kube.cluster", "region", region),
213-
resource.TestCheckResourceAttrSet(
214-
"ovh_cloud_project_kube.cluster", "kubeconfig"),
215-
resource.TestCheckResourceAttr(
216-
"ovh_cloud_project_kube.cluster", "name", name),
217-
resource.TestCheckResourceAttr(
218-
"ovh_cloud_project_kube.cluster", "version", version),
219-
resource.TestCheckResourceAttr(
220-
"ovh_cloud_project_kube_nodepool.pool", "name", name),
221-
resource.TestCheckResourceAttr(
222-
"ovh_cloud_project_kube_nodepool.pool", "flavor_name", "b2-7"),
223-
resource.TestCheckResourceAttr(
224-
"ovh_cloud_project_kube_nodepool.pool", "desired_nodes", "2"),
225-
resource.TestCheckResourceAttr(
226-
"ovh_cloud_project_kube_nodepool.pool", "min_nodes", "0"),
227-
resource.TestCheckResourceAttr(
228-
"ovh_cloud_project_kube_nodepool.pool", "max_nodes", "2"),
229-
resource.TestCheckResourceAttr(
230-
"ovh_cloud_project_kube_nodepool.pool", "template.0.metadata.0.annotations.a2", "av2"),
231-
resource.TestCheckResourceAttr(
232-
"ovh_cloud_project_kube_nodepool.pool", "template.0.metadata.0.finalizers.#", "0"),
233-
resource.TestCheckResourceAttr(
234-
"ovh_cloud_project_kube_nodepool.pool", "template.0.metadata.0.labels.l2", "lv2"),
235-
resource.TestCheckResourceAttr(
236-
"ovh_cloud_project_kube_nodepool.pool", "template.0.spec.0.taints.#", "0"),
197+
resource.TestCheckResourceAttr("ovh_cloud_project_kube.cluster", "region", region),
198+
resource.TestCheckResourceAttrSet("ovh_cloud_project_kube.cluster", "kubeconfig"),
199+
resource.TestCheckResourceAttr("ovh_cloud_project_kube.cluster", "name", name),
200+
resource.TestCheckResourceAttr("ovh_cloud_project_kube.cluster", "version", version),
201+
resource.TestCheckResourceAttr("ovh_cloud_project_kube_nodepool.pool", "name", name),
202+
resource.TestCheckResourceAttr("ovh_cloud_project_kube_nodepool.pool", "flavor_name", "b2-7"),
203+
resource.TestCheckResourceAttr("ovh_cloud_project_kube_nodepool.pool", "desired_nodes", "2"),
204+
resource.TestCheckResourceAttr("ovh_cloud_project_kube_nodepool.pool", "min_nodes", "0"),
205+
resource.TestCheckResourceAttr("ovh_cloud_project_kube_nodepool.pool", "max_nodes", "2"),
206+
resource.TestCheckResourceAttr("ovh_cloud_project_kube_nodepool.pool", "template.0.metadata.0.annotations.a2", "av2"),
207+
resource.TestCheckResourceAttr("ovh_cloud_project_kube_nodepool.pool", "template.0.metadata.0.finalizers.#", "0"),
208+
resource.TestCheckResourceAttr("ovh_cloud_project_kube_nodepool.pool", "template.0.metadata.0.labels.l2", "lv2"),
209+
resource.TestCheckResourceAttr("ovh_cloud_project_kube_nodepool.pool", "template.0.spec.0.taints.#", "0"),
237210
),
238211
},
212+
{
213+
ResourceName: resourceName,
214+
ImportState: true,
215+
ImportStateVerify: true,
216+
ImportStateIdFunc: func(state *terraform.State) (string, error) {
217+
poolId := state.RootModule().Resources[resourceName].Primary.ID
218+
kubernetesClusterID := state.RootModule().Resources["ovh_cloud_project_kube.cluster"].Primary.ID
219+
return fmt.Sprintf("%s/%s/%s", os.Getenv("OVH_CLOUD_PROJECT_SERVICE_TEST"), kubernetesClusterID, poolId), nil
220+
},
221+
},
239222
},
240223
})
241224
}

ovh/resource_cloud_project_kube_oidc.go

+7-4
Original file line numberDiff line numberDiff line change
@@ -90,14 +90,17 @@ func resourceCloudProjectKubeOIDC() *schema.Resource {
9090

9191
func resourceCloudProjectKubeOIDCImportState(d *schema.ResourceData, meta interface{}) ([]*schema.ResourceData, error) {
9292
givenId := d.Id()
93+
log.Printf("[DEBUG] Importing cloud project kube OIDC %s", givenId)
94+
fmt.Sprintf("[DEBUG] Importing cloud project kube OIDC %s", givenId)
95+
9396
splitId := strings.SplitN(givenId, "/", 3)
9497
if len(splitId) != 2 {
95-
return nil, fmt.Errorf("Import Id is not service_name/kubeid formatted")
98+
return nil, fmt.Errorf("import Id is not service_name/kubeid formatted")
9699
}
97100
serviceName := splitId[0]
98-
kubeId := splitId[1]
99-
d.SetId(kubeId)
100-
d.Set("kube_id", kubeId)
101+
kubeID := splitId[1]
102+
d.SetId(serviceName + "/" + kubeID)
103+
d.Set("kube_id", kubeID)
101104
d.Set("service_name", serviceName)
102105

103106
results := make([]*schema.ResourceData, 1)

0 commit comments

Comments
 (0)