@@ -398,13 +398,31 @@ func TestAccScalewayK8SCluster_PrivateNetwork(t *testing.T) {
398398 CheckDestroy : testAccCheckScalewayK8SClusterDestroy (tt ),
399399 Steps : []resource.TestStep {
400400 {
401- Config : testAccCheckScalewayK8SClusterConfigPrivateNetwork (latestK8SVersion ),
401+ Config : testAccCheckScalewayK8SClusterConfigPrivateNetworkNotLinked (latestK8SVersion ),
402+ Check : resource .ComposeTestCheckFunc (
403+ testAccCheckScalewayK8SClusterExists (tt , "scaleway_k8s_cluster.private_network" ),
404+ testAccCheckScalewayVPCPrivateNetworkExists (tt , "scaleway_vpc_private_network.private_network" ),
405+ resource .TestCheckNoResourceAttr ("scaleway_k8s_cluster.private_network" , "private_network_id" ),
406+ ),
407+ },
408+ {
409+ Config : testAccCheckScalewayK8SClusterConfigPrivateNetworkLinked (latestK8SVersion ),
402410 Check : resource .ComposeTestCheckFunc (
403411 testAccCheckScalewayK8SClusterExists (tt , "scaleway_k8s_cluster.private_network" ),
404412 testAccCheckScalewayVPCPrivateNetworkExists (tt , "scaleway_vpc_private_network.private_network" ),
405413 testAccCheckScalewayK8sClusterPrivateNetworkID (tt , "scaleway_k8s_cluster.private_network" , "scaleway_vpc_private_network.private_network" ),
406414 ),
407415 },
416+ {
417+ Config : testAccCheckScalewayK8SClusterConfigPrivateNetworkChange (latestK8SVersion ),
418+ PlanOnly : true ,
419+ ExpectNonEmptyPlan : true ,
420+ },
421+ {
422+ Config : testAccCheckScalewayK8SClusterConfigPrivateNetworkNotLinked (latestK8SVersion ),
423+ PlanOnly : true ,
424+ ExpectNonEmptyPlan : true ,
425+ },
408426 },
409427 })
410428}
@@ -642,7 +660,22 @@ resource "scaleway_k8s_cluster" "auto_upgrade" {
642660}` , version , enable , hour , day )
643661}
644662
645- func testAccCheckScalewayK8SClusterConfigPrivateNetwork (version string ) string {
663+ func testAccCheckScalewayK8SClusterConfigPrivateNetworkNotLinked (version string ) string {
664+ return fmt .Sprintf (`
665+ resource "scaleway_vpc_private_network" "private_network" {
666+ name = "k8s-private-network"
667+ }
668+ resource "scaleway_k8s_cluster" "private_network" {
669+ cni = "calico"
670+ version = "%s"
671+ name = "k8s-private-network-cluster"
672+ tags = [ "terraform-test", "scaleway_k8s_cluster", "private_network" ]
673+ delete_additional_resources = true
674+ depends_on = [scaleway_vpc_private_network.private_network]
675+ }` , version )
676+ }
677+
678+ func testAccCheckScalewayK8SClusterConfigPrivateNetworkLinked (version string ) string {
646679 return fmt .Sprintf (`
647680resource "scaleway_vpc_private_network" "private_network" {
648681 name = "k8s-private-network"
@@ -658,6 +691,25 @@ resource "scaleway_k8s_cluster" "private_network" {
658691}` , version )
659692}
660693
694+ func testAccCheckScalewayK8SClusterConfigPrivateNetworkChange (version string ) string {
695+ return fmt .Sprintf (`
696+ resource "scaleway_vpc_private_network" "private_network" {
697+ name = "k8s-private-network"
698+ }
699+ resource "scaleway_vpc_private_network" "private_network_2" {
700+ name = "other-private-network"
701+ }
702+ resource "scaleway_k8s_cluster" "private_network" {
703+ cni = "calico"
704+ version = "%s"
705+ name = "k8s-private-network-cluster"
706+ private_network_id = scaleway_vpc_private_network.private_network_2.id
707+ tags = [ "terraform-test", "scaleway_k8s_cluster", "private_network" ]
708+ delete_additional_resources = true
709+ depends_on = [scaleway_vpc_private_network.private_network_2]
710+ }` , version )
711+ }
712+
661713func testAccCheckScalewayK8SClusterMulticloud (version string ) string {
662714 return fmt .Sprintf (`
663715resource "scaleway_k8s_cluster" "multicloud" {
0 commit comments