From 51a1122030975f1eba3fe1ebc14e85ad47734f1b Mon Sep 17 00:00:00 2001
From: Jamalac Orange <14492-x-JaOrang@users.noreply.gitlab.inria.fr>
Date: Thu, 5 Jan 2023 16:07:31 +0100
Subject: [PATCH] feat(k8s): enable prometheus

---
 src/k8s/base/deployment.yml     |  4 ++++
 src/k8s/base/kustomization.yml  |  1 +
 src/k8s/base/service.yml        | 10 ++++++++--
 src/k8s/base/serviceMonitor.yml | 21 +++++++++++++++++++++
 4 files changed, 34 insertions(+), 2 deletions(-)
 create mode 100644 src/k8s/base/serviceMonitor.yml

diff --git a/src/k8s/base/deployment.yml b/src/k8s/base/deployment.yml
index 007fa6a7..39063876 100644
--- a/src/k8s/base/deployment.yml
+++ b/src/k8s/base/deployment.yml
@@ -43,6 +43,10 @@ spec:
               value: "true"
             - name: SPRING_FLYWAY_BASELINE_VERSION
               value: "0"
+            - name: MANAGEMENT_SERVER_PORT
+              value: "8081"
+            - name: MANAGEMENT_ENDPOINTS_WEB_EXPOSURE_INCLUDE
+              value: health,info,prometheus
       nodeSelector:
         caascad.io/nodepool: "pod-tac"
       imagePullSecrets:
diff --git a/src/k8s/base/kustomization.yml b/src/k8s/base/kustomization.yml
index 5ce7e78e..d2a9563d 100644
--- a/src/k8s/base/kustomization.yml
+++ b/src/k8s/base/kustomization.yml
@@ -6,3 +6,4 @@ resources:
   - service.yml
   - role.yml
   - rolebinding.yml
+  - serviceMonitor.yml
diff --git a/src/k8s/base/service.yml b/src/k8s/base/service.yml
index c836f150..b0131f2b 100644
--- a/src/k8s/base/service.yml
+++ b/src/k8s/base/service.yml
@@ -4,10 +4,16 @@ metadata:
   labels:
     app: submission-code
   name: submission-code-server-service
+  namespace: submission-code
 spec:
-  type: NodePort
   selector:
     app: submission-code-server
   ports:
-    - port: 80
+    - name: http
+      port: 80
       targetPort: 8080
+      protocol: TCP
+    - name: management
+      port: 8081
+      targetPort: 8081
+      protocol: TCP
diff --git a/src/k8s/base/serviceMonitor.yml b/src/k8s/base/serviceMonitor.yml
new file mode 100644
index 00000000..4bfbd362
--- /dev/null
+++ b/src/k8s/base/serviceMonitor.yml
@@ -0,0 +1,21 @@
+apiVersion: monitoring.coreos.com/v1
+kind: ServiceMonitor
+metadata:
+  name: submission-code-monitor-prometheus
+  namespace: submission-code
+  labels:
+    caascad.com/prometheus-monitor: "caascad"
+spec:
+  endpoints:
+    - interval: 5s
+      port: management # Service port name (and not number)
+      path: /actuator/prometheus
+      relabelings:
+        - replacement: app
+          targetLabel: caascad_com_prometheus_monitor_scope
+      namespaceSelector:
+        matchNames:
+          - "submission-code"
+  selector: # Select by labels which service are scraped
+    matchLabels:
+      app: submission-code
-- 
GitLab