@@ -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" {
|
||||
|
||||
@@ -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",
|
||||
|
||||
Reference in New Issue
Block a user