@@ -337,6 +337,49 @@ func TestAccKubernetesServiceV1_loadBalancer_healthcheck(t *testing.T) {
337
337
})
338
338
}
339
339
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
+
340
383
func TestAccKubernetesServiceV1_headless (t * testing.T ) {
341
384
var conf corev1.Service
342
385
name := acctest .RandomWithPrefix ("tf-acc-test" )
@@ -1104,7 +1147,32 @@ func testAccKubernetesServiceV1Config_loadBalancer_annotations_aws_modified(name
1104
1147
}
1105
1148
` , name )
1106
1149
}
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
+ }
1107
1156
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
+ }
1108
1176
func testAccKubernetesServiceV1Config_headless (name string ) string {
1109
1177
return fmt .Sprintf (`resource "kubernetes_service_v1" "test" {
1110
1178
metadata {
0 commit comments