From fd090d2e2308271d5853f33f429dab643c881ae3 Mon Sep 17 00:00:00 2001
From: Kenzo-Hugo Hillion <kenzo-hugo.hillion1@pasteur.fr>
Date: Wed, 3 Jun 2020 17:44:11 +0200
Subject: [PATCH] Externalize django static from backend on kubernetes

add missing volume in django static yaml kubernetes
---
 ci/deploy/deploy.sh              |  3 ++
 ci/kubernetes/backend.yaml       | 19 ------------
 ci/kubernetes/django-static.yaml | 51 ++++++++++++++++++++++++++++++++
 ci/kubernetes/ingress.yaml       |  2 +-
 4 files changed, 55 insertions(+), 20 deletions(-)
 create mode 100644 ci/kubernetes/django-static.yaml

diff --git a/ci/deploy/deploy.sh b/ci/deploy/deploy.sh
index 990438b..b6536c3 100644
--- a/ci/deploy/deploy.sh
+++ b/ci/deploy/deploy.sh
@@ -26,6 +26,9 @@ kubectl -n ${NAMESPACE} wait --for=condition=available --timeout=600s deployment
 ## Backend
 envsubst < ci/kubernetes/backend.yaml | kubectl apply -n ${NAMESPACE} -f -
 kubectl -n ${NAMESPACE} patch deployment backend -p "{\"spec\":{\"template\":{\"metadata\":{\"labels\":{\"date\":\"`date +'%s'`\"}}}}}"
+## Django static
+envsubst < ci/kubernetes/django-static.yaml | kubectl apply -n ${NAMESPACE} -f -
+kubectl -n ${NAMESPACE} patch deployment django-static -p "{\"spec\":{\"template\":{\"metadata\":{\"labels\":{\"date\":\"`date +'%s'`\"}}}}}"
 ## Celery worker
 # envsubst < ci/kubernetes/celery-worker.yaml | kubectl apply -n ${NAMESPACE} -f -
 ## Frontend
diff --git a/ci/kubernetes/backend.yaml b/ci/kubernetes/backend.yaml
index 6065182..37e538f 100644
--- a/ci/kubernetes/backend.yaml
+++ b/ci/kubernetes/backend.yaml
@@ -63,21 +63,6 @@ spec:
         volumeMounts:
         - name: static-data
           mountPath: /code/public/static
-      - name: django-static-app
-        image: $CI_REGISTRY_IMAGE/django-static:${CI_COMMIT_REF_NAME}
-        imagePullPolicy: Always
-        ports:
-        - containerPort: 80
-        resources:
-          requests:
-            memory: "64Mi"
-            cpu: "50m"
-          limits:
-            memory: "128Mi"
-            cpu: "100m"
-        volumeMounts:
-        - name: static-data
-          mountPath: /usr/src/app/static/
       imagePullSecrets:
       - name: registry-gitlab
       volumes:
@@ -100,9 +85,5 @@ spec:
     protocol: TCP
     port: 8000
     targetPort: 8000
-  - name: django-static
-    protocol: TCP
-    port: 8080
-    targetPort: 80
   selector:
     app: backend
diff --git a/ci/kubernetes/django-static.yaml b/ci/kubernetes/django-static.yaml
new file mode 100644
index 0000000..6996c6c
--- /dev/null
+++ b/ci/kubernetes/django-static.yaml
@@ -0,0 +1,51 @@
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: django-static
+  labels:
+      app: django-static
+spec:
+  replicas: 1
+  selector:
+    matchLabels:
+      app: django-static
+  template:
+    metadata:
+      labels:
+        app: django-static
+    spec:
+      containers:
+      - name: django-static-app
+        image: $CI_REGISTRY_IMAGE/django-static:${CI_COMMIT_REF_NAME}
+        imagePullPolicy: Always
+        ports:
+        - containerPort: 80
+        resources:
+          requests:
+            memory: "64Mi"
+            cpu: "50m"
+          limits:
+            memory: "128Mi"
+            cpu: "100m"
+        volumeMounts:
+        - name: static-data
+          mountPath: /usr/src/app/static/
+      volumes:
+      - name: static-data
+        emptyDir: {}
+---
+apiVersion: v1
+kind: Service
+metadata:
+  name: django-static
+  labels:
+    app: django-static
+spec:
+  type: ClusterIP
+  ports:
+  - name: django-static-app
+    protocol: TCP
+    port: 8080
+    targetPort: 80
+  selector:
+    app: django-static
diff --git a/ci/kubernetes/ingress.yaml b/ci/kubernetes/ingress.yaml
index f5684f7..d10ef60 100644
--- a/ci/kubernetes/ingress.yaml
+++ b/ci/kubernetes/ingress.yaml
@@ -21,7 +21,7 @@ spec:
           servicePort: 8000
       - path: /static
         backend:
-          serviceName: backend
+          serviceName: django-static
           servicePort: 8080
       - path: /api
         backend:
-- 
GitLab