Skip to content

Commit 647bf73

Browse files
authored
add ingressClassName (#1057)
Signed-off-by: Christian Niehoff <[email protected]>
1 parent fe8148c commit 647bf73

File tree

3 files changed

+17
-0
lines changed

3 files changed

+17
-0
lines changed

kubernetes/resource_kubernetes_ingress.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,11 @@ func resourceKubernetesIngress() *schema.Resource {
4040
MaxItems: 1,
4141
Elem: &schema.Resource{
4242
Schema: map[string]*schema.Schema{
43+
"ingress_class_name": {
44+
Type: schema.TypeString,
45+
Description: docIngressSpec["ingressClassName"],
46+
Optional: true,
47+
},
4348
"backend": backendSpecFields(defaultBackendDescription),
4449
// FIXME: this field is inconsistent with the k8s API 'rules'
4550
"rule": {

kubernetes/resource_kubernetes_ingress_test.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ func TestAccKubernetesIngress_basic(t *testing.T) {
3232
resource.TestCheckResourceAttrSet("kubernetes_ingress.test", "metadata.0.self_link"),
3333
resource.TestCheckResourceAttrSet("kubernetes_ingress.test", "metadata.0.uid"),
3434
resource.TestCheckResourceAttr("kubernetes_ingress.test", "spec.#", "1"),
35+
resource.TestCheckResourceAttr("kubernetes_ingress.test", "spec.0.ingress_class_name", "ingress-class"),
3536
resource.TestCheckResourceAttr("kubernetes_ingress.test", "spec.0.backend.#", "1"),
3637
resource.TestCheckResourceAttr("kubernetes_ingress.test", "spec.0.backend.0.service_name", "app1"),
3738
resource.TestCheckResourceAttr("kubernetes_ingress.test", "spec.0.backend.0.service_port", "443"),
@@ -54,6 +55,7 @@ func TestAccKubernetesIngress_basic(t *testing.T) {
5455
resource.TestCheckResourceAttrSet("kubernetes_ingress.test", "metadata.0.self_link"),
5556
resource.TestCheckResourceAttrSet("kubernetes_ingress.test", "metadata.0.uid"),
5657
resource.TestCheckResourceAttr("kubernetes_ingress.test", "spec.#", "1"),
58+
resource.TestCheckResourceAttr("kubernetes_ingress.test", "spec.0.ingress_class_name", "other-ingress-class"),
5759
resource.TestCheckResourceAttr("kubernetes_ingress.test", "spec.0.backend.#", "1"),
5860
resource.TestCheckResourceAttr("kubernetes_ingress.test", "spec.0.backend.0.service_name", "svc"),
5961
resource.TestCheckResourceAttr("kubernetes_ingress.test", "spec.0.backend.0.service_port", "8443"),
@@ -234,6 +236,7 @@ func testAccKubernetesIngressConfig_basic(name string) string {
234236
name = "%s"
235237
}
236238
spec {
239+
ingress_class_name = "ingress-class"
237240
backend {
238241
service_name = "app1"
239242
service_port = 443
@@ -260,6 +263,7 @@ func testAccKubernetesIngressConfig_modified(name string) string {
260263
name = "%s"
261264
}
262265
spec {
266+
ingress_class_name = "other-ingress-class"
263267
backend {
264268
service_name = "svc"
265269
service_port = 8443

kubernetes/structure_ingress_spec.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,10 @@ func flattenIngressBackend(in *v1beta1.IngressBackend) []interface{} {
5555
func flattenIngressSpec(in v1beta1.IngressSpec) []interface{} {
5656
att := make(map[string]interface{})
5757

58+
if in.IngressClassName != nil {
59+
att["ingress_class_name"] = in.IngressClassName
60+
}
61+
5862
if in.Backend != nil {
5963
att["backend"] = flattenIngressBackend(in.Backend)
6064
}
@@ -134,6 +138,10 @@ func expandIngressSpec(l []interface{}) v1beta1.IngressSpec {
134138
in := l[0].(map[string]interface{})
135139
obj := v1beta1.IngressSpec{}
136140

141+
if v, ok := in["ingress_class_name"].(string); ok && len(v) > 0 {
142+
obj.IngressClassName = &v
143+
}
144+
137145
if v, ok := in["backend"].([]interface{}); ok && len(v) > 0 {
138146
obj.Backend = expandIngressBackend(v)
139147
}

0 commit comments

Comments
 (0)