From e3326188aeab189373285e97d62287bf1beb6f07 Mon Sep 17 00:00:00 2001
From: Dimitrios Giannopoulos <dimit.giannopoulos@upnet.gr>
Date: Fri, 22 Nov 2024 15:53:57 +0200
Subject: [PATCH] feat: enhance cridge helm chart

---
 kubernetes/helm/openslice/Chart.yaml          |  2 +-
 .../openslice/templates/cridge-secret.yaml    | 21 +++++++++++++++++--
 .../helm/openslice/templates/cridge.yaml      | 10 ++++-----
 kubernetes/helm/openslice/values.yaml         |  4 ++++
 4 files changed, 29 insertions(+), 8 deletions(-)

diff --git a/kubernetes/helm/openslice/Chart.yaml b/kubernetes/helm/openslice/Chart.yaml
index 18a24ba..0e5de20 100644
--- a/kubernetes/helm/openslice/Chart.yaml
+++ b/kubernetes/helm/openslice/Chart.yaml
@@ -20,4 +20,4 @@ version: 1.0.0
 # This is the version number of the application being deployed. This version number should be
 # incremented each time you make changes to the application. Versions are not expected to
 # follow Semantic Versioning. They should reflect the version the application is using.
-appVersion: 2024Q2
+appVersion: 2024Q4-SNAPSHOT
diff --git a/kubernetes/helm/openslice/templates/cridge-secret.yaml b/kubernetes/helm/openslice/templates/cridge-secret.yaml
index e790b53..4a32bff 100644
--- a/kubernetes/helm/openslice/templates/cridge-secret.yaml
+++ b/kubernetes/helm/openslice/templates/cridge-secret.yaml
@@ -1,4 +1,15 @@
-{{- $kubeconfig := .Values.kubeconfig | default (.Files.Get "files/org.etsi.osl.cridge/kubeconfig.yaml") -}}
+{{ if .Values.cridge.enabled }}
+
+{{- $kubeconfigBase64 := .Values.cridge.kubeconfig.base64 | default "" -}}
+{{- $kubeconfigFile := .Values.cridge.kubeconfig.raw | default (.Files.Get "files/org.etsi.osl.cridge/kubeconfig.yaml") -}}
+{{- $kubeconfig := "" -}}
+
+{{- if $kubeconfigBase64 }}
+  {{- $kubeconfig = $kubeconfigBase64 | b64dec }}
+{{- else if $kubeconfigFile }}
+  {{- $kubeconfig = $kubeconfigFile }}
+{{- end }}
+
 apiVersion: v1
 kind: Secret
 metadata:
@@ -8,8 +19,14 @@ metadata:
     org.etsi.osl.service: cridge
     chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
     {{- include "openslice.labels" . | nindent 4 }}
-  name: {{ include "openslice.fullname" . }}-cridge-kubeconfig
+  name: {{ include "openslice.fullname" . }}-kubeconfig
 type: Opaque
 data:
   config: |-
+    {{- if $kubeconfig }}
+    {{ $kubeconfig | b64enc | nindent 4 }}
+    {{- else }}
     {{- required "A kubeconfig file is required." ($kubeconfig | b64enc) | nindent 4 }}
+    {{- end }}
+
+{{- end }}
diff --git a/kubernetes/helm/openslice/templates/cridge.yaml b/kubernetes/helm/openslice/templates/cridge.yaml
index aebb439..1065639 100644
--- a/kubernetes/helm/openslice/templates/cridge.yaml
+++ b/kubernetes/helm/openslice/templates/cridge.yaml
@@ -1,3 +1,4 @@
+{{ if .Values.cridge.enabled }}
 apiVersion: apps/v1
 kind: Deployment
 metadata:	
@@ -9,9 +10,7 @@ metadata:
     {{- include "openslice.labels" . | nindent 4 }}
   name: {{ include "openslice.fullname" . }}-cridge
 spec:
-  {{- if not .Values.autoscaling.enabled }}
   replicas: {{ .Values.replicaCount }}
-  {{- end }}
   selector:
     matchLabels:
       app: {{ include "openslice.fullname" . }}
@@ -41,11 +40,12 @@ spec:
           resources:
             {{- toYaml .Values.resources | nindent 12 }}
           volumeMounts:
-            - name: cridge-kubeconfig
+            - name: kubeconfig
               readOnly: true
               mountPath: /root/.kube
       restartPolicy: Always
       volumes:
-        - name: cridge-kubeconfig
+        - name: kubeconfig
           secret:
-            secretName: {{ include "openslice.fullname" . }}-cridge-kubeconfig
+            secretName: {{ include "openslice.fullname" . }}-kubeconfig
+{{- end }}
diff --git a/kubernetes/helm/openslice/values.yaml b/kubernetes/helm/openslice/values.yaml
index 178451e..7af2383 100644
--- a/kubernetes/helm/openslice/values.yaml
+++ b/kubernetes/helm/openslice/values.yaml
@@ -112,9 +112,13 @@ mysql:
   storage: 10Gi
   
 cridge:
+  enabled: true
   logLevel: INFO
   spring:
     loglevel: INFO
+  kubeconfig:
+    base64: ""   # Provide base64-encoded kubeconfig here if available
+    raw: ""      # Provide raw kubeconfig here if available
 
 portalapi:
   logLevel: INFO
-- 
GitLab