my-app-sandbox/main.tf
bast 5d0955e5f8
Some checks failed
Build, Push and GitOps Deploy / test-and-deploy (push) Failing after 15s
main.tf aktualisiert
2026-10-31 17:02:18 +00:00

100 lines
1.9 KiB
HCL

variable "app_version" {
type = string
default = "latest"
}
terraform {
required_providers {
kubernetes = {
source = "hashicorp/kubernetes"
version = "~> 2.26"
}
helm = {
source = "hashicorp/helm"
version = "~> 2.12"
}
}
}
provider "kubernetes" {
config_path = "./kind_kubeconfig"
}
provider "helm" {
kubernetes {
config_path = "./kind_kubeconfig"
}
}
resource "helm_release" "nginx_ingress" {
name = "ingress-nginx"
repository = "https://kubernetes.github.io"
chart = "ingress-nginx"
namespace = "kube-system"
set {
name = "controller.service.type"
value = "ClusterIP"
}
set {
name = "controller.hostNetwork"
value = "true"
}
}
resource "kubernetes_deployment" "webapp" {
metadata {
name = "webapp"
labels = { app = "webapp" }
}
spec {
replicas = 1
selector { match_labels = { app = "webapp" } }
template {
metadata { labels = { app = "webapp" } }
spec {
container {
name = "web"
image = "localhost:3005/bast/my-app-sandbox:latest"
port { container_port = 80 }
}
}
}
}
}
resource "kubernetes_service" "webapp_service" {
metadata { name = "webapp-service" }
spec {
selector = { app = "webapp" }
port {
port = 80
target_port = 80
}
}
}
resource "kubernetes_ingress_v1" "app_ingress" {
depends_on = [helm_release.nginx_ingress]
metadata {
name = "app-ingress"
annotations = {
"kubernetes.io/ingress.class" = "nginx"
}
}
spec {
rule {
http {
path {
path = "/"
path_type = "Prefix"
backend {
service {
name = kubernetes_service.webapp_service.metadata[0].name
port { number = 80 }
}
}
}
}
}
}
}