Skip to content

Commit b9c3498

Browse files
Support empty TLS blocks in ingress_v1
1 parent 74e8435 commit b9c3498

File tree

2 files changed

+57
-1
lines changed

2 files changed

+57
-1
lines changed

kubernetes/resource_kubernetes_ingress_v1_test.go

+53
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,39 @@ func TestAccKubernetesIngressV1_TLS(t *testing.T) {
164164
})
165165
}
166166

167+
func TestAccKubernetesIngressV1_emptyTLS(t *testing.T) {
168+
var conf networking.Ingress
169+
name := fmt.Sprintf("tf-acc-test-%s", acctest.RandStringFromCharSet(10, acctest.CharSetAlphaNum))
170+
resourceName := "kubernetes_ingress_v1.test"
171+
172+
resource.ParallelTest(t, resource.TestCase{
173+
PreCheck: func() {
174+
testAccPreCheck(t)
175+
skipIfClusterVersionLessThan(t, "1.22.0")
176+
},
177+
IDRefreshName: resourceName,
178+
ProviderFactories: testAccProviderFactories,
179+
CheckDestroy: testAccCheckKubernetesIngressV1Destroy,
180+
IDRefreshIgnore: []string{"metadata.0.resource_version"},
181+
Steps: []resource.TestStep{
182+
{
183+
Config: testAccKubernetesIngressV1Config_emptyTLS(name),
184+
Check: resource.ComposeAggregateTestCheckFunc(
185+
testAccCheckKubernetesIngressV1Exists(resourceName, &conf),
186+
resource.TestCheckResourceAttr(resourceName, "metadata.0.name", name),
187+
resource.TestCheckResourceAttrSet(resourceName, "metadata.0.generation"),
188+
resource.TestCheckResourceAttrSet(resourceName, "metadata.0.resource_version"),
189+
resource.TestCheckResourceAttrSet(resourceName, "metadata.0.uid"),
190+
resource.TestCheckResourceAttr(resourceName, "spec.#", "1"),
191+
resource.TestCheckResourceAttr(resourceName, "spec.0.tls.#", "1"),
192+
resource.TestCheckResourceAttr(resourceName, "spec.0.tls.0.hosts.#", "0"),
193+
resource.TestCheckResourceAttr(resourceName, "spec.0.tls.0.secret_name", ""),
194+
),
195+
},
196+
},
197+
})
198+
}
199+
167200
func TestAccKubernetesIngressV1_InternalKey(t *testing.T) {
168201
var conf networking.Ingress
169202
name := fmt.Sprintf("tf-acc-test-%s", acctest.RandStringFromCharSet(10, acctest.CharSetAlphaNum))
@@ -541,6 +574,26 @@ func testAccKubernetesIngressV1Config_TLS_modified(name string) string {
541574
}`, name)
542575
}
543576

577+
func testAccKubernetesIngressV1Config_emptyTLS(name string) string {
578+
return fmt.Sprintf(`resource "kubernetes_ingress_v1" "test" {
579+
metadata {
580+
name = "%s"
581+
}
582+
spec {
583+
default_backend {
584+
service {
585+
name = "app1"
586+
port {
587+
number = 443
588+
}
589+
}
590+
}
591+
tls {
592+
}
593+
}
594+
}`, name)
595+
}
596+
544597
func testAccKubernetesIngressV1Config_internalKey(name string) string {
545598
return fmt.Sprintf(`resource "kubernetes_ingress_v1" "test" {
546599
metadata {

kubernetes/structure_ingress_spec_v1.go

+4-1
Original file line numberDiff line numberDiff line change
@@ -252,12 +252,15 @@ func expandIngressV1Backend(l []interface{}) *networking.IngressBackend {
252252
}
253253

254254
func expandIngressV1TLS(l []interface{}) []networking.IngressTLS {
255-
if len(l) == 0 || l[0] == nil {
255+
if len(l) == 0 {
256256
return nil
257257
}
258258

259259
tlsList := make([]networking.IngressTLS, len(l))
260260
for i, t := range l {
261+
if t == nil {
262+
t = map[string]interface{}{}
263+
}
261264
in := t.(map[string]interface{})
262265
obj := networking.IngressTLS{}
263266

0 commit comments

Comments
 (0)