@@ -337,6 +337,49 @@ func TestAccKubernetesServiceV1_loadBalancer_healthcheck(t *testing.T) {
337337 })
338338}
339339
340+ func TestAccKubernetesServiceV1_loadBalancer_ipMode (t * testing.T ) {
341+ var conf corev1.Service
342+ name := acctest .RandomWithPrefix ("tf-acc-test" )
343+ resourceName := "kubernetes_service_v1.test"
344+
345+ resource .ParallelTest (t , resource.TestCase {
346+ PreCheck : func () { testAccPreCheck (t ); skipIfNoLoadBalancersAvailable (t ) },
347+ IDRefreshIgnore : []string {"metadata.0.resource_version" },
348+ ProviderFactories : testAccProviderFactories ,
349+ CheckDestroy : testAccCheckKubernetesServiceV1Destroy ,
350+ Steps : []resource.TestStep {
351+ {
352+ Config : testAccKubernetesConfig_ignoreAnnotations () +
353+ testAccKubernetesServiceV1Config_loadBalancer_ipMode (name , "VIP" ),
354+ Check : resource .ComposeAggregateTestCheckFunc (
355+ testAccCheckKubernetesServiceV1Exists (resourceName , & conf ),
356+ resource .TestCheckResourceAttr (resourceName , "metadata.0.name" , name ),
357+ resource .TestCheckResourceAttr (resourceName , "spec.#" , "1" ),
358+ resource .TestCheckResourceAttr (resourceName , "spec.0.type" , "LoadBalancer" ),
359+ resource .TestCheckResourceAttr (resourceName , "status.0.load_balancer.0.ingress.0.ip_mode" , "VIP" ),
360+ ),
361+ },
362+ {
363+ ResourceName : resourceName ,
364+ ImportState : true ,
365+ ImportStateVerify : true ,
366+ ImportStateVerifyIgnore : []string {"metadata.0.resource_version" , "wait_for_load_balancer" },
367+ },
368+ {
369+ Config : testAccKubernetesConfig_ignoreAnnotations () +
370+ testAccKubernetesServiceV1Config_loadBalancer_ipMode (name , "Proxy" ),
371+ Check : resource .ComposeAggregateTestCheckFunc (
372+ testAccCheckKubernetesServiceV1Exists (resourceName , & conf ),
373+ resource .TestCheckResourceAttr (resourceName , "metadata.0.name" , name ),
374+ resource .TestCheckResourceAttr (resourceName , "spec.#" , "1" ),
375+ resource .TestCheckResourceAttr (resourceName , "spec.0.type" , "LoadBalancer" ),
376+ resource .TestCheckResourceAttr (resourceName , "status.0.load_balancer.0.ingress.0.ip_mode" , "Proxy" ),
377+ ),
378+ },
379+ },
380+ })
381+ }
382+
340383func TestAccKubernetesServiceV1_headless (t * testing.T ) {
341384 var conf corev1.Service
342385 name := acctest .RandomWithPrefix ("tf-acc-test" )
@@ -1104,7 +1147,32 @@ func testAccKubernetesServiceV1Config_loadBalancer_annotations_aws_modified(name
11041147}
11051148` , name )
11061149}
1150+ func testAccKubernetesServiceV1Config_loadBalancer_ipMode (name , ipMode string ) string {
1151+ return fmt .Sprintf (`
1152+ resource "kubernetes_service_v1" "test" {
1153+ metadata {
1154+ name = "%s"
1155+ }
11071156
1157+ spec {
1158+ type = "LoadBalancer"
1159+ port {
1160+ port = 80
1161+ target_port = 8080
1162+ }
1163+ }
1164+
1165+ status {
1166+ load_balancer {
1167+ ingress {
1168+ ip = "192.168.1.100"
1169+ ip_mode = "%s"
1170+ }
1171+ }
1172+ }
1173+ }
1174+ ` , name , ipMode )
1175+ }
11081176func testAccKubernetesServiceV1Config_headless (name string ) string {
11091177 return fmt .Sprintf (`resource "kubernetes_service_v1" "test" {
11101178 metadata {
0 commit comments