Skip to content

Commit 1f914a2

Browse files
author
Anthony Berger
committed
fix : set desired_nodes without max_nodes and min_nodes
1 parent b0e7435 commit 1f914a2

File tree

2 files changed

+72
-4
lines changed

2 files changed

+72
-4
lines changed

ovh/helpers/helpers.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -229,10 +229,10 @@ func GetNilStringPointerFromData(data interface{}, id string) *string {
229229
// GetNilIntPointerFromDataAndNilIfNotPresent similar to GetNilIntPointerFromData but use terraform function schema.ResourceData.Get instead of schema.ResourceData.GetOk
230230
func GetNilIntPointerFromDataAndNilIfNotPresent(data interface{}, id string) *int {
231231
if resourceData, tok := data.(*schema.ResourceData); tok {
232-
if val, ok := resourceData.GetOk(id); ok {
232+
if val, ok := resourceData.GetOkExists(id); ok {
233233
return GetNilIntPointer(val)
234234
}
235-
return GetNilIntPointer(resourceData.Get(id)) // read the 0 value
235+
return nil //key doesn't exist
236236
} else if mapData, tok := data.(map[string]interface{}); tok {
237237
if val, ok := mapData[id]; ok {
238238
return GetNilIntPointer(val)

ovh/resource_cloud_project_kube_nodepool_test.go

+70-2
Original file line numberDiff line numberDiff line change
@@ -290,7 +290,46 @@ resource "ovh_cloud_project_kube_nodepool" "pool" {
290290
291291
`
292292

293-
func TestAccCloudProjectKubeNodePool(t *testing.T) {
293+
var testAccCloudProjectKubeNodePoolConfigWithoutMaxMin = `
294+
resource "ovh_cloud_project_kube" "cluster" {
295+
service_name = "%s"
296+
name = "%s"
297+
region = "%s"
298+
version = "%s"
299+
}
300+
301+
resource "ovh_cloud_project_kube_nodepool" "pool" {
302+
service_name = ovh_cloud_project_kube.cluster.service_name
303+
kube_id = ovh_cloud_project_kube.cluster.id
304+
name = ovh_cloud_project_kube.cluster.name
305+
flavor_name = "b2-7"
306+
desired_nodes = 1
307+
template {
308+
metadata {
309+
annotations = {
310+
a1 = "av1"
311+
}
312+
finalizers = ["finalizer.extensions/v1beta1"]
313+
labels = {
314+
l1 = "lv1"
315+
}
316+
}
317+
spec {
318+
unschedulable = false
319+
taints = [
320+
{
321+
effect = "PreferNoSchedule"
322+
key = "t1"
323+
value = "tv1"
324+
}
325+
]
326+
}
327+
}
328+
}
329+
330+
`
331+
332+
func TestAccCloudProjectKubeNodePoolRessource(t *testing.T) {
294333
name := acctest.RandomWithPrefix(test_prefix)
295334
region := os.Getenv("OVH_CLOUD_PROJECT_KUBE_REGION_TEST")
296335
version := os.Getenv("OVH_CLOUD_PROJECT_KUBE_VERSION_TEST")
@@ -316,7 +355,13 @@ func TestAccCloudProjectKubeNodePool(t *testing.T) {
316355
region,
317356
version,
318357
)
319-
358+
configWithoutMaxMinNodes := fmt.Sprintf(
359+
testAccCloudProjectKubeNodePoolConfigWithoutMaxMin,
360+
os.Getenv("OVH_CLOUD_PROJECT_SERVICE_TEST"),
361+
name,
362+
region,
363+
version,
364+
)
320365
resource.Test(t, resource.TestCase{
321366
PreCheck: func() {
322367
testAccPreCheckCloud(t)
@@ -325,6 +370,29 @@ func TestAccCloudProjectKubeNodePool(t *testing.T) {
325370
},
326371
Providers: testAccProviders,
327372
Steps: []resource.TestStep{
373+
{
374+
Config: configWithoutMaxMinNodes,
375+
Check: resource.ComposeTestCheckFunc(
376+
resource.TestCheckResourceAttr("ovh_cloud_project_kube.cluster", "region", region),
377+
resource.TestCheckResourceAttrSet("ovh_cloud_project_kube.cluster", "kubeconfig"),
378+
resource.TestCheckResourceAttr("ovh_cloud_project_kube.cluster", "name", name),
379+
resource.TestCheckResourceAttr("ovh_cloud_project_kube.cluster", "version", version),
380+
resource.TestCheckResourceAttr("ovh_cloud_project_kube_nodepool.pool", "name", name),
381+
resource.TestCheckResourceAttr("ovh_cloud_project_kube_nodepool.pool", "flavor_name", "b2-7"),
382+
resource.TestCheckResourceAttr("ovh_cloud_project_kube_nodepool.pool", "desired_nodes", "1"),
383+
resource.TestCheckResourceAttr("ovh_cloud_project_kube_nodepool.pool", "min_nodes", "0"),
384+
resource.TestCheckResourceAttr("ovh_cloud_project_kube_nodepool.pool", "max_nodes", "100"),
385+
386+
resource.TestCheckResourceAttr("ovh_cloud_project_kube_nodepool.pool", "template.0.metadata.0.annotations.a1", "av1"),
387+
resource.TestCheckResourceAttr("ovh_cloud_project_kube_nodepool.pool", "template.0.metadata.0.finalizers.0", "finalizer.extensions/v1beta1"),
388+
resource.TestCheckResourceAttr("ovh_cloud_project_kube_nodepool.pool", "template.0.metadata.0.labels.l1", "lv1"),
389+
390+
resource.TestCheckResourceAttr("ovh_cloud_project_kube_nodepool.pool", "template.0.spec.0.taints.0.effect", "PreferNoSchedule"),
391+
resource.TestCheckResourceAttr("ovh_cloud_project_kube_nodepool.pool", "template.0.spec.0.taints.0.key", "t1"),
392+
resource.TestCheckResourceAttr("ovh_cloud_project_kube_nodepool.pool", "template.0.spec.0.taints.0.value", "tv1"),
393+
resource.TestCheckResourceAttr("ovh_cloud_project_kube_nodepool.pool", "template.0.spec.0.unschedulable", "false"),
394+
),
395+
},
328396
{
329397
Config: config,
330398
Check: resource.ComposeTestCheckFunc(

0 commit comments

Comments
 (0)