terraform-ske-nginx-rate-limit/08-rand-service.tf
Mauritz Uphoff ea19003e9c
All checks were successful
CI / TruffleHog Secrets Scan (push) Successful in 4s
CI / Terraform Format & Validate (push) Successful in 5s
Initial commit
2025-05-15 11:02:49 +02:00

77 lines
No EOL
1.5 KiB
HCL

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
}
}
}
}
}
}
}
}