From 3c8186eb802f38452b80ee642b0fac86b21d4310 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fran=C3=A7ois=20=20LAURENT?= <francois.laurent@pasteur.fr>
Date: Thu, 23 Jan 2025 15:38:55 +0100
Subject: [PATCH] fix: image fqn in 3 parts

---
 .gitlab-ci.yml                        | 26 +++++++++++---------------
 nyxui/templates/deployment-front.yaml |  2 +-
 nyxui/values.yaml                     |  5 +++--
 values-yaml.gotmpl                    |  5 +++--
 4 files changed, 18 insertions(+), 20 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 4bcd630..1eab128 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -53,17 +53,18 @@ build dev on gitlab.pasteur.fr:
       --docker-username="$DOCKER_USER"
       --docker-password="$DOCKER_TOKEN"
       --docker-email=kubernetes@pasteur.fr
-      -n "$NAMESPACE"
+      -n "$KUBE_NAMESPACE"
       --dry-run=client -o yaml | kubectl apply -f -
-    - envsubst < k8s/front-deployment.yaml | kubectl apply -n "$NAMESPACE" -f -
-    - envsubst < k8s/front-service.yaml | kubectl apply -n "$NAMESPACE" -f -
-    - envsubst < k8s/ingress.yaml | kubectl apply -n "$NAMESPACE" -f -
-  rules:
-    - if: $CI_PROJECT_ID == $GITLAB_PASTEUR_PROJECT_ID      # gitlab.pasteur.fr only
+    - envsubst < k8s/front-deployment.yaml | kubectl apply -n "$KUBE_NAMESPACE" -f -
+    - envsubst < k8s/front-service.yaml | kubectl apply -n "$KUBE_NAMESPACE" -f -
+    - envsubst < k8s/ingress.yaml | kubectl apply -n "$KUBE_NAMESPACE" -f -
 
 .deploy-with-helm:
   stage: deploy
   image: docker.io/enix/ci-toolbox:1.21
+  variables:
+    IMAGE_NAME: "front"
+    IMAGE_POLICY: "Always"
   script:
     - kubectl create secret
       docker-registry registry-gitlab
@@ -73,17 +74,13 @@ build dev on gitlab.pasteur.fr:
       --docker-email=kubernetes@pasteur.fr
       --dry-run=client
       -n "$NAMESPACE" -o yaml | kubectl apply -f -
-   # - cd $CI_PROJECT_DIR/nyxui
     - helmfile lint
     - helmfile template
     - helmfile sync
-  rules:
-    - if: $CI_PROJECT_ID == $GITLAB_PASTEUR_PROJECT_ID      # gitlab.pasteur.fr only
 
 deploy to pasteur.cloud:
   extends: .deploy-with-helm
   variables:
-    IMAGE_URL: "$CI_REGISTRY_IMAGE/front:$CI_COMMIT_SHORT_SHA"
     SERVICE_TARGET_PORT: "8080"
     IMAGE_SECRETS: "registry-gitlab"
     KUBE_NAMESPACE: "nyx-prod"
@@ -94,18 +91,17 @@ deploy to pasteur.cloud:
     LIMITS_CPU: "2"
     LIMITS_MEMORY: "4Gi"
     LIMITS_STORAGE: "1Gi"
-    IMAGE_POLICY: "Always"
   environment:
     name: k8sprod-02/nyx-prod
     url: https://nyx.pasteur.cloud
   rules:
-    - if: $CI_COMMIT_BRANCH == "main"
+    - if: ($CI_COMMIT_BRANCH == "main" &&
+        $CI_PROJECT_ID == $GITLAB_PASTEUR_PROJECT_ID)      # gitlab.pasteur.fr only
       when: manual
 
 deploy to dev.pasteur.cloud:
   extends: .deploy-with-helm
   variables:
-    IMAGE_URL: "$CI_REGISTRY_IMAGE/front:$CI_COMMIT_SHORT_SHA"
     SERVICE_TARGET_PORT: "8080"
     IMAGE_SECRETS: "registry-gitlab"
     KUBE_NAMESPACE: "nyx-dev"
@@ -116,10 +112,10 @@ deploy to dev.pasteur.cloud:
     LIMITS_CPU: "2"
     LIMITS_MEMORY: "4Gi"
     LIMITS_STORAGE: "1Gi"
-    IMAGE_POLICY: "Always"
   environment:
     name: k8sdev-01/nyx-dev
     url: https://nyx.dev.pasteur.cloud
   rules:
-    - if: $CI_COMMIT_BRANCH == "dev"
+    - if: ($CI_COMMIT_BRANCH == "dev" &&
+        $CI_PROJECT_ID == $GITLAB_PASTEUR_PROJECT_ID)      # gitlab.pasteur.fr only
       when: manual
diff --git a/nyxui/templates/deployment-front.yaml b/nyxui/templates/deployment-front.yaml
index 6205979..e4319b6 100644
--- a/nyxui/templates/deployment-front.yaml
+++ b/nyxui/templates/deployment-front.yaml
@@ -34,7 +34,7 @@ spec:
         - name: {{ .Chart.Name }}
           securityContext:
             {{- toYaml .Values.securityContext | nindent 12 }}
-          image: "{{ .Values.front.image.repository }}:{{ .Values.front.image.sha }}"
+          image: "{{ .Values.front.image.repository }}/{{ .Values.front.image.name }}:{{ .Values.front.image.tag }}"
           imagePullPolicy: {{ .Values.front.image.pullPolicy }}
           ports:
             - name: http
diff --git a/nyxui/values.yaml b/nyxui/values.yaml
index 535e575..c7bde4b 100644
--- a/nyxui/values.yaml
+++ b/nyxui/values.yaml
@@ -6,8 +6,9 @@ replicaCount: 1
 
 front:
   image:
-    repository: registry-gitlab.pasteur.fr/nyx/nyxui/front
-    sha: ""
+    repository: registry-gitlab.pasteur.fr/nyx/nyxui.jl
+    name: front
+    tag: ""
     pullPolicy: Always
   service:
     targetPort: 8080
diff --git a/values-yaml.gotmpl b/values-yaml.gotmpl
index 4d1bb85..d2b4df2 100644
--- a/values-yaml.gotmpl
+++ b/values-yaml.gotmpl
@@ -6,9 +6,10 @@ replicaCount: 1
 
 front:
   image:
-    repository: {{ requiredEnv "IMAGE_URL" }}
+    repository: {{ requiredEnv "CI_REGISTRY_IMAGE" }}
+    name: {{ requiredEnv "IMAGE_NAME" }}
+    tag: {{ requiredEnv "CI_COMMIT_SHORT_SHA" }}
     pullPolicy: {{ requiredEnv "IMAGE_POLICY" }}
-    sha: {{ requiredEnv "CI_COMMIT_SHORT_SHA" }}
   service:
     targetPort: {{ requiredEnv "SERVICE_TARGET_PORT" }} 
 
-- 
GitLab