ingress
ballj/ingress/kubernetes
Creates an ingress resource and registers the name in DNS
Terraform Kubernetes Ingress This terraform module deploys an ingress on kubernetes, updates DNS (PowerDNS) and adds to monitoring (Icinga2). Deployment `` module "ingress" { source = "ballj/ingress/kubernetes" version = "~> 1.0" namespace = "production" object_prefix = "nginx" dns_fqdn = "nginx.example.com" dns_zone = "example.com" service_name = "nginx" service_port = 80 cert_issuer_type = "cluster-issuer" cert_issuer_name = "self-signed" labels = { "app.kubernetes.io/name" = "nginx" "app.kubernetes.io/instance" = "latest" "app.kubernetes.io/part-of" = "nginx" } } ` Providers This module uses the following Terraform providers: - pan-net/PowerDNS - Kubernetes Variables | Variable | Required | Default | Description | | --------------------- | -------- | ------- | --------------------------
| Name | Type | Description | Default |
|---|---|---|---|
| object_prefix | string | Unique name to prefix all objects with | required |
| dns_fqdn | any | DNS FQDN of the application | required |
| dns_zone | string | DNS Zone name of the application | required |
| namespace | string | Environment that the application will be deployed in | required |
| service_name | string | Service to target | required |
| tls_enabled | bool | Enable TLS on ingress | true |
| dns_record_ttl | number | TTL for DNS records | 600 |
| labels | map(string) | labels to add to ingress | {} |
| service_port | number | Port for the ingress | 80 |
| ingress_class | string | Ingress class to use | "traefik" |
| ingress_annotations | map(string) | Annotations to add to ingress | {} |
| cert_issuer_type | string | Issuer type for cert-manager | "issuer" |
| cert_issuer_name | string | Issuer name for cert-manager | "self-signed" |