All checks were successful
cloudmon GitOps Deploy / build-and-deploy (push) Successful in 24s
90 lines
1.9 KiB
HCL
90 lines
1.9 KiB
HCL
terraform {
|
|
required_providers {
|
|
kubernetes = {
|
|
source = "hashicorp/kubernetes"
|
|
version = "~> 2.26"
|
|
}
|
|
}
|
|
|
|
backend "consul" {
|
|
address = "consul:8500"
|
|
path = "terraform/states/boday_tf"
|
|
}
|
|
}
|
|
|
|
variable "app_version" {
|
|
type = string
|
|
default = "latest"
|
|
}
|
|
|
|
provider "kubernetes" {
|
|
config_path = "./kind_kubeconfig"
|
|
host = "https://local-k3s-platform:6443"
|
|
insecure = true
|
|
}
|
|
|
|
# 1. DAS DASHBOARD DEPLOYMENT
|
|
resource "kubernetes_deployment_v1" "cloudmon" {
|
|
metadata {
|
|
name = "cloudmon"
|
|
namespace = "default"
|
|
labels = { app = "cloudmon" }
|
|
}
|
|
spec {
|
|
replicas = 1
|
|
selector { match_labels = { app = "cloudmon" } }
|
|
template {
|
|
metadata { labels = { app = "cloudmon" } }
|
|
spec {
|
|
container {
|
|
name = "dashboard"
|
|
image = "registry.local/bast/cloudmon:${var.app_version}"
|
|
image_pull_policy = "Always"
|
|
port { container_port = 8000 }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
# 2. DER KUBERNETES SERVICE (Port 8000 intern freischalten)
|
|
resource "kubernetes_service_v1" "cloudmon_service" {
|
|
metadata {
|
|
name = "cloudmon-service"
|
|
namespace = "default"
|
|
}
|
|
spec {
|
|
selector = { app = "cloudmon" }
|
|
port {
|
|
port = 80
|
|
target_port = 8000
|
|
}
|
|
}
|
|
}
|
|
|
|
# 3. DAS INGRESS ROUTING (Macht cloudmon unter cloudmon.local über Port 8080 erreichbar!)
|
|
resource "kubernetes_ingress_v1" "cloudmon_ingress" {
|
|
metadata {
|
|
name = "cloudmon-ingress"
|
|
namespace = "default"
|
|
annotations = { "kubernetes.io/ingress.class" = "nginx" }
|
|
}
|
|
spec {
|
|
rule {
|
|
host = "cloudmon.local"
|
|
http {
|
|
path {
|
|
path = "/"
|
|
path_type = "Prefix"
|
|
backend {
|
|
service {
|
|
name = kubernetes_service_v1.cloudmon_service.metadata[0].name
|
|
port { number = 80 }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|