MetaTrader5-Docker-Image/main.tf.k3s

106 lines
2 KiB
Text
Raw Normal View History

2026-11-07 05:32:23 +00:00
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
}
}