From 860869a19245825037404dad9c3787f8d00be256 Mon Sep 17 00:00:00 2001
From: Dominik Hebeler <dominik@suma-ev.de>
Date: Fri, 19 Aug 2022 14:33:09 +0200
Subject: [PATCH] using custom redis image in deployment

---
 .gitlab-ci.yml                                  |  4 ++++
 .gitlab/ci/build_docker_images.yml              | 13 +++++++++++++
 .gitlab/deployment_scripts/update_deployment.sh |  1 +
 chart/templates/_helpers.tpl                    |  8 ++++++++
 chart/templates/deployment.yaml                 |  2 +-
 chart/values.yaml                               |  5 +++++
 6 files changed, 32 insertions(+), 1 deletion(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 5805d751b..c906e747b 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -5,6 +5,7 @@ variables:
   DOCKER_FPM_IMAGE_NAME: fpm
   DOCKER_NGINX_IMAGE_NAME: nginx
   DOCKER_NODE_IMAGE_NAME: node
+  DOCKER_REDIS_IMAGE_NAME: redis
   KUBE_NAMESPACE: metager-2
 
 workflow:
@@ -18,6 +19,7 @@ workflow:
         DOCKER_FPM_IMAGE_TAG: $DOCKER_IMAGE_TAG_PREFIX-$CI_COMMIT_SHA
         DOCKER_NGINX_IMAGE_TAG: $DOCKER_IMAGE_TAG_PREFIX-$CI_COMMIT_SHA
         DOCKER_NODE_IMAGE_TAG: $DOCKER_IMAGE_TAG_PREFIX-$CI_COMMIT_SHA
+        DOCKER_REDIS_IMAGE_TAG: $DOCKER_IMAGE_TAG_PREFIX-$CI_COMMIT_SHA
         HELM_RELEASE_NAME: review-$DOCKER_IMAGE_TAG_PREFIX
     - if: $CI_COMMIT_BRANCH == "master"
       variables:
@@ -28,6 +30,7 @@ workflow:
         DOCKER_FPM_IMAGE_TAG: $DOCKER_IMAGE_TAG_PREFIX-$CI_COMMIT_SHA
         DOCKER_NGINX_IMAGE_TAG: $DOCKER_IMAGE_TAG_PREFIX-$CI_COMMIT_SHA
         DOCKER_NODE_IMAGE_TAG: $DOCKER_IMAGE_TAG_PREFIX-$CI_COMMIT_SHA
+        DOCKER_REDIS_IMAGE_TAG: $DOCKER_IMAGE_TAG_PREFIX-$CI_COMMIT_SHA
         HELM_RELEASE_NAME: $DOCKER_IMAGE_TAG_PREFIX
     - if: $CI_COMMIT_BRANCH == "development"
       variables:
@@ -38,6 +41,7 @@ workflow:
         DOCKER_FPM_IMAGE_TAG: $DOCKER_IMAGE_TAG_PREFIX-$CI_COMMIT_SHA
         DOCKER_NGINX_IMAGE_TAG: $DOCKER_IMAGE_TAG_PREFIX-$CI_COMMIT_SHA
         DOCKER_NODE_IMAGE_TAG: $DOCKER_IMAGE_TAG_PREFIX-$CI_COMMIT_SHA
+        DOCKER_REDIS_IMAGE_TAG: $DOCKER_IMAGE_TAG_PREFIX-$CI_COMMIT_SHA
         HELM_RELEASE_NAME: $DOCKER_IMAGE_TAG_PREFIX
 
 stages:
diff --git a/.gitlab/ci/build_docker_images.yml b/.gitlab/ci/build_docker_images.yml
index 2822c1708..3a197d01d 100644
--- a/.gitlab/ci/build_docker_images.yml
+++ b/.gitlab/ci/build_docker_images.yml
@@ -33,6 +33,19 @@ nginx:
   after_script:
     - docker logout $CI_REGISTRY
 
+redis:
+  stage: build_docker_images
+  image: $BUILD_DOCKER_IMAGE
+  before_script:
+    - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
+  script:
+    - cd build/redis
+    - docker build --network=host
+      -t ${CI_REGISTRY_IMAGE}/$DOCKER_REDIS_IMAGE_NAME:$DOCKER_REDIS_IMAGE_TAG .
+    - docker push ${CI_REGISTRY_IMAGE}/$DOCKER_REDIS_IMAGE_NAME:$DOCKER_REDIS_IMAGE_TAG
+  after_script:
+    - docker logout $CI_REGISTRY
+
 .cleanup_revision_images:
   stage: build_docker_images
   image: $DEPLOY_KUBERNETES_IMAGE
diff --git a/.gitlab/deployment_scripts/update_deployment.sh b/.gitlab/deployment_scripts/update_deployment.sh
index 6306a8a94..ed2e7ea0d 100755
--- a/.gitlab/deployment_scripts/update_deployment.sh
+++ b/.gitlab/deployment_scripts/update_deployment.sh
@@ -11,5 +11,6 @@ helm -n $KUBE_NAMESPACE upgrade --install \
     --set ingress.hosts[0].host="$DEPLOYMENT_URL" \
     --set image.fpm.tag=$DOCKER_FPM_IMAGE_TAG \
     --set image.nginx.tag=$DOCKER_NGINX_IMAGE_TAG \
+    --set image.redis.tag=$DOCKER_REDIS_IMAGE_TAG \
     --set app_url=$APP_URL \
     --wait
\ No newline at end of file
diff --git a/chart/templates/_helpers.tpl b/chart/templates/_helpers.tpl
index b4f90d2fa..eec90ff16 100644
--- a/chart/templates/_helpers.tpl
+++ b/chart/templates/_helpers.tpl
@@ -73,6 +73,14 @@ Create the name of the service account to use
 {{- end -}}
 {{- end -}}
 
+{{- define "redis_image" -}}
+{{- if eq .Values.image.redis.tag "" -}}
+{{- .Values.image.redis.repository -}}
+{{- else -}}
+{{- printf "%s:%s" .Values.image.redis.repository .Values.image.redis.tag -}}
+{{- end -}}
+{{- end -}}
+
 {{- define "secret_name" -}}
 {{- printf "%s" .Release.Name }}
 {{- end -}}
\ No newline at end of file
diff --git a/chart/templates/deployment.yaml b/chart/templates/deployment.yaml
index 61de6a02e..dcce87299 100644
--- a/chart/templates/deployment.yaml
+++ b/chart/templates/deployment.yaml
@@ -214,7 +214,7 @@ spec:
               memory: 100M
             limits:
         - name: redis
-          image: "redis:6"
+          image: "{{ template "redis_image" . }}"
           imagePullPolicy: {{ .Values.image.pullPolicy }}
           command: ["redis-server", "/usr/local/etc/redis/redis.conf"]
           volumeMounts:
diff --git a/chart/values.yaml b/chart/values.yaml
index de98d5308..485d2b871 100644
--- a/chart/values.yaml
+++ b/chart/values.yaml
@@ -16,6 +16,11 @@ image:
     pullPolicy: IfNotPresent
     # Overrides the image tag whose default is the chart appVersion.
     tag: ""
+  redis:
+    repository: registry.metager.de/open-source/metager/redis
+    pullPolicy: IfNotPresent
+    # Overrides the image tag whose default is the chart appVersion.
+    tag: ""
 
 imagePullSecrets: []
 nameOverride: ""
-- 
GitLab