resource "random_pet" "suffix" {} resource "kubernetes_deployment_v1" "random_nginx" { metadata { name = "nginx-${random_pet.suffix.id}" } spec { replicas = 1 selector { match_labels = { app = "nginx-${random_pet.suffix.id}" } } template { metadata { labels = { app = "nginx-${random_pet.suffix.id}" } } spec { container { name = "nginx" image = "nginx:alpine" port { container_port = 80 } } } } } } resource "kubernetes_service" "nginx" { metadata { name = "nginx-${random_pet.suffix.id}" } spec { selector = { app = "nginx-${random_pet.suffix.id}" } port { port = 80 target_port = 80 } type = "ClusterIP" } } resource "kubernetes_ingress_v1" "nginx" { metadata { name = "nginx-${random_pet.suffix.id}" annotations = { "kubernetes.io/ingress.class" = "nginx" "nginx.ingress.kubernetes.io/limit-rps" : "10" } } spec { rule { host = "${stackit_dns_record_set.svc.name}.${stackit_dns_zone.svc_zone.dns_name}" http { path { path = "/" path_type = "Prefix" backend { service { name = kubernetes_service.nginx.metadata[0].name port { number = 80 } } } } } } } }