From 3d1befad155e77f8c4a725db7b2e089199ce1a5c Mon Sep 17 00:00:00 2001
From: Bryan  BRANCOTTE <bryan.brancotte@pasteur.fr>
Date: Tue, 25 Feb 2025 15:09:38 +0100
Subject: [PATCH] Add log-fetcher ci tasks

---
 .gitlab-ci.yml | 45 +++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 45 insertions(+)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 930ad63d..5be58e47 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -349,3 +349,48 @@ delete-data-from-prod:
     - master
   environment:
     name: "k8sprod-02/jass-prod/${CI_COMMIT_REF_SLUG}"
+
+
+.log-fetcher:
+  stage: deploy
+  needs: []
+  when: manual
+  image: harbor.pasteur.fr/kube-system/helm-kubectl:3.12.0
+  variables:
+    GIT_STRATEGY: none # don't need to checkout sources
+    LAST_ROWS_COUNT: "400" # you can override it when triggering the job
+    CHART_LOCATION: "chart"
+  script:
+    - kubectl -n ${NAMESPACE} get quota
+    - mkdir logs
+    - |
+      for POD in $(kubectl -n ${NAMESPACE} get po -l="app.kubernetes.io/instance=${CI_COMMIT_REF_SLUG}" --output=jsonpath='{.items[*].metadata.name}'); do
+        echo "************************************************************"
+        echo "************************************************************"
+        echo "* ${POD}";
+        echo "************************************************************"
+        kubectl -n ${NAMESPACE} logs $POD --tail ${LAST_ROWS_COUNT} > logs/${POD}.log
+        cat logs/${POD}.log
+      done
+    - echo "Check Job artifacts to download or browse log files. See "Job artifacts">"Browse" on right panel"
+  artifacts:
+    when: always
+    paths:
+    - logs
+    expire_in: 1 month
+
+
+log-fetcher-in-dev:
+  extends: .log-fetcher
+  variables:
+    NAMESPACE: "jass-dev"
+  environment:
+    name: "k8sdev-01/${NAMESPACE}/${CI_COMMIT_REF_SLUG}"
+
+
+log-fetcher-in-prod:
+  extends: .log-fetcher
+  variables:
+    NAMESPACE: "jass-prod"
+  environment:
+    name: "k8sprod-02/${NAMESPACE}/${CI_COMMIT_REF_SLUG}"
-- 
GitLab