Some checks failed
Build, Push and GitOps Deploy / test-and-deploy (push) Failing after 15s
106 lines
2.2 KiB
HCL
106 lines
2.2 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"
|
|
host = "https://local-k3s-platform:6443"
|
|
# ERZWINGT DEN DURCHBRUCH: Ignoriert den Hostnamen-Zertifikatskonflikt
|
|
insecure = true
|
|
}
|
|
|
|
provider "helm" {
|
|
kubernetes {
|
|
config_path = "./kind_kubeconfig"
|
|
host = "https://local-k3s-platform:6443"
|
|
# Auch für Helm die Zertifikatsprüfung für den Container-Namen abschalten
|
|
insecure = true
|
|
}
|
|
}
|
|
|
|
resource "helm_release" "nginx_ingress" {
|
|
name = "ingress-nginx"
|
|
repository = "https://kubernetes.github.io/ingress-nginx"
|
|
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 = "nginx/${github.repository}: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 }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|