terraform { required_providers { kubernetes = { source = "hashicorp/kubernetes" version = "~> 2.26" } helm = { source = "hashicorp/helm" version = "~> 2.12" } } # Eigener State-Pfad, damit sich MT5 und die Webseite nicht in die Quere kommen backend "consul" { address = "consul:8500" path = "terraform/states/mt5_tf" } } # --- Variablen --------------------------------------------------------------- variable "app_version" { type = string default = "latest" } variable "image_repository" { type = string default = "gmag11/metatrader5_vnc" } variable "vnc_user" { type = string default = "trader" } # Kommt aus TF_VAR_vnc_password (Secret MT5_VNC_PASSWORD) variable "vnc_password" { type = string sensitive = true } variable "ingress_host" { type = string default = "" } # --- Provider ---------------------------------------------------------------- provider "kubernetes" { config_path = "./kind_kubeconfig" host = "https://local-k3s-platform:6443" insecure = true } provider "helm" { kubernetes { config_path = "./kind_kubeconfig" host = "https://local-k3s-platform:6443" insecure = true } } # --- MetaTrader 5 Deployment ------------------------------------------------- resource "helm_release" "mt5" { name = "mt5" chart = "./charts/mt5" namespace = "trading" create_namespace = true # Erster Start installiert Wine + MT5 nach /config – das dauert ein paar Minuten timeout = 900 wait = true set { name = "image.repository" value = var.image_repository } set { name = "image.tag" value = var.app_version } set { name = "auth.user" value = var.vnc_user } set_sensitive { name = "auth.password" value = var.vnc_password } set { name = "ingress.enabled" value = var.ingress_host != "" ? "true" : "false" } set { name = "ingress.host" value = var.ingress_host } }