36 lines
1.1 KiB
HCL
36 lines
1.1 KiB
HCL
# SPDX-License-Identifier: GPL-2.0-only
|
|
resource "kubernetes_manifest" "app_ingress_route_tcp" {
|
|
count = var.use_ingress && var.ingress_controller == "traefik" ? 1 : 0
|
|
manifest = {
|
|
apiVersion = "traefik.io/v1alpha1"
|
|
kind = "IngressRoute"
|
|
metadata = {
|
|
name = var.app_name
|
|
namespace = data.kubernetes_namespace_v1.app.metadata[0].name
|
|
annotations = var.ingress_annotations
|
|
labels = merge({
|
|
"app.kubernetes.io/component" = "server"
|
|
"app.kubernetes.io/name" = var.app_name
|
|
"app.kubernetes.io/version" = var.app_version
|
|
"app.kubernetes.io/part-of" = var.app_name
|
|
"app.kubernetes.io/managed-by" = "opentofu"
|
|
"app.kubernetes.io/instance" = var.app_name
|
|
}, var.ingress_additional_labels)
|
|
}
|
|
spec = {
|
|
entryPoints = var.traefik_entrypoints
|
|
routes = [
|
|
{
|
|
match = format("Host(`%s`)", var.ingress_host_url)
|
|
kind = "Rule"
|
|
services = [
|
|
{
|
|
name = var.app_name
|
|
port = var.service_container_port
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|