@@ -391,6 +391,8 @@ func TestAccScalewayK8SCluster_PrivateNetwork(t *testing.T) {
391391
392392 latestK8SVersion := testAccScalewayK8SClusterGetLatestK8SVersion (tt )
393393
394+ clusterID := ""
395+
394396 resource .ParallelTest (t , resource.TestCase {
395397 PreCheck : func () {
396398 testAccPreCheck (t )
@@ -399,31 +401,24 @@ func TestAccScalewayK8SCluster_PrivateNetwork(t *testing.T) {
399401 CheckDestroy : testAccCheckScalewayK8SClusterDestroy (tt ),
400402 Steps : []resource.TestStep {
401403 {
402- Config : testAccCheckScalewayK8SClusterConfigPrivateNetworkNotLinked (latestK8SVersion ),
404+ Config : testAccCheckScalewayK8SClusterConfigPrivateNetworkLinked (latestK8SVersion ),
403405 Check : resource .ComposeTestCheckFunc (
404406 testAccCheckScalewayK8SClusterExists (tt , "scaleway_k8s_cluster.private_network" ),
405407 testAccCheckScalewayVPCPrivateNetworkExists (tt , "scaleway_vpc_private_network.private_network" ),
406- resource .TestCheckResourceAttr ("scaleway_k8s_cluster.private_network" , "private_network_id" , "" ),
408+ testAccCheckScalewayK8sClusterPrivateNetworkID (tt , "scaleway_k8s_cluster.private_network" , "scaleway_vpc_private_network.private_network" ),
409+ testAccCheckScalewayResourceIDPersisted ("scaleway_k8s_cluster.private_network" , & clusterID ),
407410 ),
408411 },
409412 {
410- Config : testAccCheckScalewayK8SClusterConfigPrivateNetworkLinked (latestK8SVersion ),
413+ Config : testAccCheckScalewayK8SClusterConfigPrivateNetworkChange (latestK8SVersion ),
411414 Check : resource .ComposeTestCheckFunc (
412415 testAccCheckScalewayK8SClusterExists (tt , "scaleway_k8s_cluster.private_network" ),
413416 testAccCheckScalewayVPCPrivateNetworkExists (tt , "scaleway_vpc_private_network.private_network" ),
414- testAccCheckScalewayK8sClusterPrivateNetworkID (tt , "scaleway_k8s_cluster.private_network" , "scaleway_vpc_private_network.private_network" ),
417+ testAccCheckScalewayVPCPrivateNetworkExists (tt , "scaleway_vpc_private_network.private_network_2" ),
418+ testAccCheckScalewayK8sClusterPrivateNetworkID (tt , "scaleway_k8s_cluster.private_network" , "scaleway_vpc_private_network.private_network_2" ),
419+ testAccCheckScalewayResourceIDChanged ("scaleway_k8s_cluster.private_network" , & clusterID ),
415420 ),
416421 },
417- {
418- Config : testAccCheckScalewayK8SClusterConfigPrivateNetworkChange (latestK8SVersion ),
419- PlanOnly : true ,
420- ExpectNonEmptyPlan : true ,
421- },
422- {
423- Config : testAccCheckScalewayK8SClusterConfigPrivateNetworkNotLinked (latestK8SVersion ),
424- PlanOnly : true ,
425- ExpectNonEmptyPlan : true ,
426- },
427422 },
428423 })
429424}
@@ -478,7 +473,7 @@ func TestAccScalewayK8SCluster_TypeChange(t *testing.T) {
478473 },
479474 {
480475 // 2 : Upgrade to a dedicated Kapsule --> should migrate
481- Config : testAccCheckScalewayK8SClusterTypeChange ("kapsule-dedicated-4" , "cilium" , latestK8SVersion ), // + testAccCheckScalewayK8SClusterTypeChangeCopy(latestK8SVersion),
476+ Config : testAccCheckScalewayK8SClusterTypeChange ("kapsule-dedicated-4" , "cilium" , latestK8SVersion ),
482477 Check : resource .ComposeTestCheckFunc (
483478 testAccCheckScalewayK8SClusterExists (tt , "scaleway_k8s_cluster.type-change" ),
484479 resource .TestCheckResourceAttr ("scaleway_k8s_cluster.type-change" , "type" , "kapsule-dedicated-4" ),
@@ -487,7 +482,7 @@ func TestAccScalewayK8SCluster_TypeChange(t *testing.T) {
487482 },
488483 {
489484 // 3 : Upgrade to an even bigger dedicated Kapsule --> should migrate
490- Config : testAccCheckScalewayK8SClusterTypeChange ("kapsule-dedicated-16" , "cilium" , latestK8SVersion ), // + testAccCheckScalewayK8SClusterTypeChangeCopy(latestK8SVersion),
485+ Config : testAccCheckScalewayK8SClusterTypeChange ("kapsule-dedicated-16" , "cilium" , latestK8SVersion ),
491486 Check : resource .ComposeTestCheckFunc (
492487 testAccCheckScalewayK8SClusterExists (tt , "scaleway_k8s_cluster.type-change" ),
493488 resource .TestCheckResourceAttr ("scaleway_k8s_cluster.type-change" , "type" , "kapsule-dedicated-16" ),
@@ -496,7 +491,7 @@ func TestAccScalewayK8SCluster_TypeChange(t *testing.T) {
496491 },
497492 {
498493 // 4 : Downgrade to a smaller dedicated Kapsule --> should recreate
499- Config : testAccCheckScalewayK8SClusterTypeChange ("kapsule-dedicated-8" , "cilium" , latestK8SVersion ), // + testAccCheckScalewayK8SClusterTypeChangeCopy(latestK8SVersion),
494+ Config : testAccCheckScalewayK8SClusterTypeChange ("kapsule-dedicated-8" , "cilium" , latestK8SVersion ),
500495 Check : resource .ComposeTestCheckFunc (
501496 testAccCheckScalewayK8SClusterExists (tt , "scaleway_k8s_cluster.type-change" ),
502497 resource .TestCheckResourceAttr ("scaleway_k8s_cluster.type-change" , "type" , "kapsule-dedicated-8" ),
@@ -505,7 +500,7 @@ func TestAccScalewayK8SCluster_TypeChange(t *testing.T) {
505500 },
506501 {
507502 // 5 : Change to a dedicated Kosmos --> should recreate
508- Config : testAccCheckScalewayK8SClusterTypeChange ("multicloud-dedicated-4" , "kilo" , latestK8SVersion ), // + testAccCheckScalewayK8SClusterTypeChangeCopy(latestK8SVersion),
503+ Config : testAccCheckScalewayK8SClusterTypeChange ("multicloud-dedicated-4" , "kilo" , latestK8SVersion ),
509504 Check : resource .ComposeTestCheckFunc (
510505 testAccCheckScalewayK8SClusterExists (tt , "scaleway_k8s_cluster.type-change" ),
511506 resource .TestCheckResourceAttr ("scaleway_k8s_cluster.type-change" , "type" , "multicloud-dedicated-4" ),
@@ -514,7 +509,7 @@ func TestAccScalewayK8SCluster_TypeChange(t *testing.T) {
514509 },
515510 {
516511 // 6 : Upgrade to a bigger dedicated Kosmos --> should migrate
517- Config : testAccCheckScalewayK8SClusterTypeChange ("multicloud-dedicated-8" , "kilo" , latestK8SVersion ), // + testAccCheckScalewayK8SClusterTypeChangeCopy(latestK8SVersion),
512+ Config : testAccCheckScalewayK8SClusterTypeChange ("multicloud-dedicated-8" , "kilo" , latestK8SVersion ),
518513 Check : resource .ComposeTestCheckFunc (
519514 testAccCheckScalewayK8SClusterExists (tt , "scaleway_k8s_cluster.type-change" ),
520515 resource .TestCheckResourceAttr ("scaleway_k8s_cluster.type-change" , "type" , "multicloud-dedicated-8" ),
@@ -523,7 +518,7 @@ func TestAccScalewayK8SCluster_TypeChange(t *testing.T) {
523518 },
524519 {
525520 // 7 : Downgrade to a mutualized Kosmos --> should recreate
526- Config : testAccCheckScalewayK8SClusterTypeChange ("multicloud" , "kilo" , latestK8SVersion ), // + testAccCheckScalewayK8SClusterTypeChangeCopy(latestK8SVersion),
521+ Config : testAccCheckScalewayK8SClusterTypeChange ("multicloud" , "kilo" , latestK8SVersion ),
527522 Check : resource .ComposeTestCheckFunc (
528523 testAccCheckScalewayK8SClusterExists (tt , "scaleway_k8s_cluster.type-change" ),
529524 resource .TestCheckResourceAttr ("scaleway_k8s_cluster.type-change" , "type" , "multicloud" ),
@@ -639,21 +634,29 @@ func testAccCheckScalewayK8sClusterPrivateNetworkID(tt *TestTools, clusterName,
639634
640635func testAccCheckScalewayK8SClusterConfigMinimal (version string ) string {
641636 return fmt .Sprintf (`
637+ resource "scaleway_vpc_private_network" "minimal" {
638+ name = "test-minimal"
639+ }
642640resource "scaleway_k8s_cluster" "minimal" {
643641 cni = "calico"
644642 version = "%s"
645- name = "ClusterConfigMinimal "
643+ name = "test-minimal "
646644 tags = [ "terraform-test", "scaleway_k8s_cluster", "minimal" ]
647645 delete_additional_resources = true
646+ private_network_id = scaleway_vpc_private_network.minimal.id
648647}` , version )
649648}
650649
651650func testAccCheckScalewayK8SClusterConfigAutoscaler (version string ) string {
652651 return fmt .Sprintf (`
652+ resource "scaleway_vpc_private_network" "autoscaler" {
653+ name = "test-autoscaler"
654+ region = "nl-ams"
655+ }
653656resource "scaleway_k8s_cluster" "autoscaler" {
654657 cni = "calico"
655658 version = "%s"
656- name = "autoscaler-01"
659+ name = "test- autoscaler-01"
657660 region = "nl-ams"
658661 autoscaler_config {
659662 disable_scale_down = true
@@ -669,15 +672,20 @@ resource "scaleway_k8s_cluster" "autoscaler" {
669672 }
670673 tags = [ "terraform-test", "scaleway_k8s_cluster", "autoscaler-config" ]
671674 delete_additional_resources = true
675+ private_network_id = scaleway_vpc_private_network.autoscaler.id
672676}` , version )
673677}
674678
675679func testAccCheckScalewayK8SClusterConfigAutoscalerChange (version string ) string {
676680 return fmt .Sprintf (`
681+ resource "scaleway_vpc_private_network" "autoscaler" {
682+ name = "test-autoscaler"
683+ region = "nl-ams"
684+ }
677685resource "scaleway_k8s_cluster" "autoscaler" {
678686 cni = "calico"
679687 version = "%s"
680- name = "autoscaler-02"
688+ name = "test- autoscaler-02"
681689 region = "nl-ams"
682690 autoscaler_config {
683691 disable_scale_down = false
@@ -691,15 +699,19 @@ resource "scaleway_k8s_cluster" "autoscaler" {
691699 }
692700 tags = [ "terraform-test", "scaleway_k8s_cluster", "autoscaler-config" ]
693701 delete_additional_resources = true
702+ private_network_id = scaleway_vpc_private_network.autoscaler.id
694703}` , version )
695704}
696705
697706func testAccCheckScalewayK8SClusterConfigOIDC (version string ) string {
698707 return fmt .Sprintf (`
708+ resource "scaleway_vpc_private_network" "oidc" {
709+ name = "test-oidc"
710+ }
699711resource "scaleway_k8s_cluster" "oidc" {
700712 cni = "cilium"
701713 version = "%s"
702- name = "oidc"
714+ name = "test- oidc"
703715 open_id_connect_config {
704716 issuer_url = "https://accounts.google.com"
705717 client_id = "my-super-id"
@@ -709,16 +721,20 @@ resource "scaleway_k8s_cluster" "oidc" {
709721 }
710722 tags = [ "terraform-test", "scaleway_k8s_cluster", "oidc-config" ]
711723 delete_additional_resources = true
724+ private_network_id = scaleway_vpc_private_network.oidc.id
712725}
713726` , version )
714727}
715728
716729func testAccCheckScalewayK8SClusterConfigOIDCChange (version string ) string {
717730 return fmt .Sprintf (`
731+ resource "scaleway_vpc_private_network" "oidc" {
732+ name = "test-oidc"
733+ }
718734resource "scaleway_k8s_cluster" "oidc" {
719735 cni = "cilium"
720736 version = "%s"
721- name = "oidc"
737+ name = "test- oidc"
722738 open_id_connect_config {
723739 issuer_url = "https://gitlab.com"
724740 client_id = "my-even-more-awesome-id"
@@ -728,41 +744,31 @@ resource "scaleway_k8s_cluster" "oidc" {
728744 }
729745 tags = [ "terraform-test", "scaleway_k8s_cluster", "oidc-config" ]
730746 delete_additional_resources = true
747+ private_network_id = scaleway_vpc_private_network.oidc.id
731748}
732749` , version )
733750}
734751
735752func testAccCheckScalewayK8SClusterAutoUpgrade (enable bool , day string , hour uint64 , version string ) string {
736753 return fmt .Sprintf (`
754+ resource "scaleway_vpc_private_network" "auto_upgrade" {
755+ name = "test-auto-upgrade"
756+ }
737757resource "scaleway_k8s_cluster" "auto_upgrade" {
738758 cni = "calico"
739759 version = "%s"
740- name = "default-pool "
760+ name = "test-auto-upgrade "
741761 auto_upgrade {
742762 enable = %t
743763 maintenance_window_start_hour = %d
744764 maintenance_window_day = "%s"
745765 }
746766 tags = [ "terraform-test", "scaleway_k8s_cluster", "auto_upgrade" ]
747767 delete_additional_resources = true
768+ private_network_id = scaleway_vpc_private_network.auto_upgrade.id
748769}` , version , enable , hour , day )
749770}
750771
751- func testAccCheckScalewayK8SClusterConfigPrivateNetworkNotLinked (version string ) string {
752- return fmt .Sprintf (`
753- resource "scaleway_vpc_private_network" "private_network" {
754- name = "k8s-private-network"
755- }
756- resource "scaleway_k8s_cluster" "private_network" {
757- cni = "calico"
758- version = "%s"
759- name = "k8s-private-network-cluster"
760- tags = [ "terraform-test", "scaleway_k8s_cluster", "private_network" ]
761- delete_additional_resources = true
762- depends_on = [scaleway_vpc_private_network.private_network]
763- }` , version )
764- }
765-
766772func testAccCheckScalewayK8SClusterConfigPrivateNetworkLinked (version string ) string {
767773 return fmt .Sprintf (`
768774resource "scaleway_vpc_private_network" "private_network" {
@@ -772,10 +778,10 @@ resource "scaleway_k8s_cluster" "private_network" {
772778 cni = "calico"
773779 version = "%s"
774780 name = "k8s-private-network-cluster"
775- private_network_id = scaleway_vpc_private_network.private_network.id
776781 tags = [ "terraform-test", "scaleway_k8s_cluster", "private_network" ]
777- delete_additional_resources = true
782+ delete_additional_resources = false
778783 depends_on = [scaleway_vpc_private_network.private_network]
784+ private_network_id = scaleway_vpc_private_network.private_network.id
779785}` , version )
780786}
781787
@@ -791,10 +797,10 @@ resource "scaleway_k8s_cluster" "private_network" {
791797 cni = "calico"
792798 version = "%s"
793799 name = "k8s-private-network-cluster"
794- private_network_id = scaleway_vpc_private_network.private_network_2.id
795800 tags = [ "terraform-test", "scaleway_k8s_cluster", "private_network" ]
796- delete_additional_resources = true
801+ delete_additional_resources = false
797802 depends_on = [scaleway_vpc_private_network.private_network_2]
803+ private_network_id = scaleway_vpc_private_network.private_network_2.id
798804}` , version )
799805}
800806
@@ -818,13 +824,29 @@ resource "scaleway_k8s_pool" "multicloud" {
818824}
819825
820826func testAccCheckScalewayK8SClusterTypeChange (clusterType , cni , version string ) string {
821- return fmt .Sprintf (`
827+ config := ""
828+ isKapsule := strings .HasPrefix (clusterType , "kapsule" )
829+ if isKapsule {
830+ config = `
831+ resource "scaleway_vpc_private_network" "type-change" {
832+ name = "test-type-change"
833+ }`
834+ }
835+
836+ config += fmt .Sprintf (`
822837resource "scaleway_k8s_cluster" "type-change" {
823838 type = "%s"
824839 cni = "%s"
825840 version = "%s"
826841 name = "test-type-change"
827842 tags = [ "terraform-test", "scaleway_k8s_cluster", "type-change" ]
828- delete_additional_resources = true
829- }` , clusterType , cni , version )
843+ delete_additional_resources = false` , clusterType , cni , version )
844+
845+ if isKapsule {
846+ config += "\n private_network_id = scaleway_vpc_private_network.type-change.id\n }"
847+ } else {
848+ config += "\n }"
849+ }
850+
851+ return config
830852}
0 commit comments