Skip to content

Commit e2625b3

Browse files
Codelaxremyleone
andauthored
fix(k8s): fix k8s oidc lists update and fix test (#1326)
Co-authored-by: Rémy Léone <[email protected]>
1 parent 6e4aa8d commit e2625b3

File tree

4 files changed

+162
-4891
lines changed

4 files changed

+162
-4891
lines changed

scaleway/helpers.go

+13
Original file line numberDiff line numberDiff line change
@@ -394,6 +394,19 @@ func expandStringsPtr(data interface{}) *[]string {
394394
return &stringSlice
395395
}
396396

397+
// expandUpdatedStringsPtr expands a string slice but will default to an empty list.
398+
// Should be used on schema update so emptying a list will update resource.
399+
func expandUpdatedStringsPtr(data interface{}) *[]string {
400+
stringSlice := []string{}
401+
if _, ok := data.([]interface{}); !ok || data == nil {
402+
return &stringSlice
403+
}
404+
for _, s := range data.([]interface{}) {
405+
stringSlice = append(stringSlice, s.(string))
406+
}
407+
return &stringSlice
408+
}
409+
397410
func expandSliceIDsPtr(rawIDs interface{}) *[]string {
398411
var stringSlice []string
399412
if _, ok := rawIDs.([]interface{}); !ok || rawIDs == nil {

scaleway/resource_k8s_cluster.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -635,15 +635,15 @@ func resourceScalewayK8SClusterUpdate(ctx context.Context, d *schema.ResourceDat
635635
}
636636

637637
if d.HasChange("open_id_connect_config.0.groups_claim") {
638-
updateClusterRequestOpenIDConnectConfig.GroupsClaim = scw.StringsPtr(expandStrings(d.Get("open_id_connect_config.0.groups_claim")))
638+
updateClusterRequestOpenIDConnectConfig.GroupsClaim = expandUpdatedStringsPtr(d.Get("open_id_connect_config.0.groups_claim"))
639639
}
640640

641641
if d.HasChange("open_id_connect_config.0.groups_prefix") {
642642
updateClusterRequestOpenIDConnectConfig.GroupsPrefix = scw.StringPtr(d.Get("open_id_connect_config.0.groups_prefix").(string))
643643
}
644644

645645
if d.HasChange("open_id_connect_config.0.required_claim") {
646-
updateClusterRequestOpenIDConnectConfig.RequiredClaim = scw.StringsPtr(expandStrings(d.Get("open_id_connect_config.0.required_claim")))
646+
updateClusterRequestOpenIDConnectConfig.RequiredClaim = expandUpdatedStringsPtr(d.Get("open_id_connect_config.0.required_claim"))
647647
}
648648

649649
updateRequest.OpenIDConnectConfig = updateClusterRequestOpenIDConnectConfig

scaleway/resource_k8s_cluster_test.go

+5-25
Original file line numberDiff line numberDiff line change
@@ -266,7 +266,7 @@ func TestAccScalewayK8SCluster_OIDC(t *testing.T) {
266266
resource.TestCheckResourceAttrSet("scaleway_k8s_cluster.oidc", "kubeconfig.0.token"),
267267
resource.TestCheckResourceAttrSet("scaleway_k8s_cluster.oidc", "apiserver_url"),
268268
resource.TestCheckResourceAttrSet("scaleway_k8s_cluster.oidc", "wildcard_dns"),
269-
resource.TestCheckResourceAttr("scaleway_k8s_cluster.oidc", "open_id_connect_config.0.issuer_url", "https://api.scaleway.com"),
269+
resource.TestCheckResourceAttr("scaleway_k8s_cluster.oidc", "open_id_connect_config.0.issuer_url", "https://accounts.google.com"),
270270
resource.TestCheckResourceAttr("scaleway_k8s_cluster.oidc", "open_id_connect_config.0.client_id", "my-super-id"),
271271
resource.TestCheckResourceAttr("scaleway_k8s_cluster.oidc", "open_id_connect_config.0.username_claim", "mario"),
272272
resource.TestCheckResourceAttr("scaleway_k8s_cluster.oidc", "open_id_connect_config.0.groups_prefix", "pouf"),
@@ -283,14 +283,14 @@ func TestAccScalewayK8SCluster_OIDC(t *testing.T) {
283283
testAccCheckScalewayK8SClusterExists(tt, "scaleway_k8s_cluster.oidc"),
284284
resource.TestCheckResourceAttr("scaleway_k8s_cluster.oidc", "version", latestK8SVersion),
285285
resource.TestCheckResourceAttr("scaleway_k8s_cluster.oidc", "cni", "cilium"),
286-
resource.TestCheckResourceAttr("scaleway_k8s_cluster.oidc", "status", k8s.ClusterStatusReady.String()),
286+
resource.TestCheckResourceAttr("scaleway_k8s_cluster.oidc", "status", k8s.ClusterStatusPoolRequired.String()),
287287
resource.TestCheckResourceAttrSet("scaleway_k8s_cluster.oidc", "kubeconfig.0.config_file"),
288288
resource.TestCheckResourceAttrSet("scaleway_k8s_cluster.oidc", "kubeconfig.0.host"),
289289
resource.TestCheckResourceAttrSet("scaleway_k8s_cluster.oidc", "kubeconfig.0.cluster_ca_certificate"),
290290
resource.TestCheckResourceAttrSet("scaleway_k8s_cluster.oidc", "kubeconfig.0.token"),
291291
resource.TestCheckResourceAttrSet("scaleway_k8s_cluster.oidc", "apiserver_url"),
292292
resource.TestCheckResourceAttrSet("scaleway_k8s_cluster.oidc", "wildcard_dns"),
293-
resource.TestCheckResourceAttr("scaleway_k8s_cluster.oidc", "open_id_connect_config.0.issuer_url", "https://secretapi.scaleway.com"),
293+
resource.TestCheckResourceAttr("scaleway_k8s_cluster.oidc", "open_id_connect_config.0.issuer_url", "https://gitlab.com"),
294294
resource.TestCheckResourceAttr("scaleway_k8s_cluster.oidc", "open_id_connect_config.0.client_id", "my-even-more-awesome-id"),
295295
resource.TestCheckResourceAttr("scaleway_k8s_cluster.oidc", "open_id_connect_config.0.username_claim", "luigi"),
296296
resource.TestCheckResourceAttr("scaleway_k8s_cluster.oidc", "open_id_connect_config.0.username_prefix", "boo"),
@@ -500,24 +500,14 @@ resource "scaleway_k8s_cluster" "oidc" {
500500
version = "%s"
501501
name = "oidc"
502502
open_id_connect_config {
503-
issuer_url = "https://api.scaleway.com"
503+
issuer_url = "https://accounts.google.com"
504504
client_id = "my-super-id"
505505
username_claim = "mario"
506506
groups_claim = [ "k8s", "admin" ]
507507
groups_prefix = "pouf"
508508
}
509509
tags = [ "terraform-test", "scaleway_k8s_cluster", "oidc-config" ]
510510
}
511-
512-
resource "scaleway_k8s_pool" "minimal" {
513-
name = "minimal"
514-
cluster_id = "${scaleway_k8s_cluster.oidc.id}"
515-
node_type = "gp1_xs"
516-
autohealing = true
517-
autoscaling = true
518-
size = 1
519-
tags = [ "terraform-test", "scaleway_k8s_cluster", "minimal" ]
520-
}
521511
`, version)
522512
}
523513

@@ -528,24 +518,14 @@ resource "scaleway_k8s_cluster" "oidc" {
528518
version = "%s"
529519
name = "oidc"
530520
open_id_connect_config {
531-
issuer_url = "https://secretapi.scaleway.com"
521+
issuer_url = "https://gitlab.com"
532522
client_id = "my-even-more-awesome-id"
533523
username_claim = "luigi"
534524
groups_claim = [ ]
535525
username_prefix = "boo"
536526
}
537527
tags = [ "terraform-test", "scaleway_k8s_cluster", "oidc-config" ]
538528
}
539-
540-
resource "scaleway_k8s_pool" "oidc" {
541-
name = "minimal"
542-
cluster_id = "${scaleway_k8s_cluster.oidc.id}"
543-
node_type = "gp1_xs"
544-
autohealing = true
545-
autoscaling = true
546-
size = 1
547-
tags = [ "terraform-test", "scaleway_k8s_cluster", "minimal" ]
548-
}
549529
`, version)
550530
}
551531

0 commit comments

Comments
 (0)