77 lines
No EOL
1.5 KiB
HCL
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
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |