From 38e367e241f9a2e68cf17fe2cb906cdba28e17ed Mon Sep 17 00:00:00 2001 From: Xor290 Date: Sun, 2 Aug 2026 14:41:45 +0200 Subject: [PATCH] chore: fix --- control-plane/api/internal/config/config.go | 2 + .../api/internal/demos/helm_provisioner.go | 44 +++++++++++-------- 2 files changed, 28 insertions(+), 18 deletions(-) diff --git a/control-plane/api/internal/config/config.go b/control-plane/api/internal/config/config.go index c3fb0de..bbbd034 100644 --- a/control-plane/api/internal/config/config.go +++ b/control-plane/api/internal/config/config.go @@ -20,6 +20,7 @@ type Config struct { Kubeconfig string FrontendImage string BackendImage string + LBTelegramImage string } // Load lit la config. Fail-secure : secret JWT obligatoire ; en prod base + Redis aussi. @@ -43,6 +44,7 @@ func Load() (Config, error) { Kubeconfig: os.Getenv("KUBECONFIG"), FrontendImage: os.Getenv("FRONTEND_IMAGE_APP"), BackendImage: os.Getenv("BACKEND_IMAGE_APP"), + LBTelegramImage: os.Getenv("LBTELEGRAM_IMAGE_APP"), } if cfg.Env == "prod" { diff --git a/control-plane/api/internal/demos/helm_provisioner.go b/control-plane/api/internal/demos/helm_provisioner.go index 97c98e4..2cca993 100644 --- a/control-plane/api/internal/demos/helm_provisioner.go +++ b/control-plane/api/internal/demos/helm_provisioner.go @@ -30,15 +30,16 @@ import ( // HelmProvisioner : implémente Provisioner en appelant l'exécutable Helm. // Nécessite que helm soit installé dans le container (ex: dans /usr/local/bin/helm). type HelmProvisioner struct { - cfg *config.Config - k8sClient *kubernetes.Clientset - restConfig *rest.Config // pour l'exec dans les pods (pg_dump/restore) - metricsClient *metricsclient.Clientset // optionnel : nil si metrics-server indisponible - chartsDir string // chemin vers le dossier des charts (ex: /charts) - frontendImage string - backendImage string - baseDomain string - helmPath string // chemin vers l'exécutable helm (default: "helm") + cfg *config.Config + k8sClient *kubernetes.Clientset + restConfig *rest.Config // pour l'exec dans les pods (pg_dump/restore) + metricsClient *metricsclient.Clientset // optionnel : nil si metrics-server indisponible + chartsDir string // chemin vers le dossier des charts (ex: /charts) + frontendImage string + backendImage string + lbtelegramImage string + baseDomain string + helmPath string // chemin vers l'exécutable helm (default: "helm") } // NewHelmProvisioner crée un nouveau provisioner Helm. @@ -66,15 +67,16 @@ func NewHelmProvisioner( } return &HelmProvisioner{ - cfg: cfg, - k8sClient: k8sClient, - restConfig: restConfig, - metricsClient: metricsClient, - chartsDir: chartsDir, - frontendImage: cfg.FrontendImage, - backendImage: cfg.BackendImage, - baseDomain: cfg.DemoDomain, - helmPath: helmPath, + cfg: cfg, + k8sClient: k8sClient, + restConfig: restConfig, + metricsClient: metricsClient, + chartsDir: chartsDir, + frontendImage: cfg.FrontendImage, + backendImage: cfg.BackendImage, + lbtelegramImage: cfg.LBTelegramImage, + baseDomain: cfg.DemoDomain, + helmPath: helmPath, }, nil } @@ -617,8 +619,14 @@ func (h *HelmProvisioner) buildLBTelegramValues(d Demo, cfg ProvisionConfig, bac backendURL := fmt.Sprintf("http://%s-backend-gestion-backend.%s.svc.cluster.local:8080", d.Namespace, d.Namespace) dbURL := fmt.Sprintf("postgres://postgres:demo-postgres-pass@%s-postgresql-postgresql:5432/demo_db?sslmode=disable", d.Namespace) redisURL := fmt.Sprintf("redis://:demo-redis-pass@%s-redis-redis:6379/0", d.Namespace) + lbRepo, lbTag := parseImage(h.lbtelegramImage) return map[string]interface{}{ + "image": map[string]interface{}{ + "repository": lbRepo, + "tag": lbTag, + "pullPolicy": "Always", + }, "env": map[string]string{ "PORT": "8081", "ENV": "production",