From 44145f585e34cfd26f5347a31ce5765200456b34 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Krist=C3=B3f=20Torma?= <tormakristof@tormakristof.eu>
Date: Mon, 13 Mar 2023 16:30:18 +0100
Subject: [PATCH] separate deployment for worker to be able to scale it better

---
 .circleci/config.yml | 31 -------------------------------
 .gitlab-ci.yml       | 15 ++++++++++++---
 k8s/deployment.yml   | 37 +++++++++++++++++++++++++++++--------
 3 files changed, 41 insertions(+), 42 deletions(-)
 delete mode 100644 .circleci/config.yml

diff --git a/.circleci/config.yml b/.circleci/config.yml
deleted file mode 100644
index 8ca541f..0000000
--- a/.circleci/config.yml
+++ /dev/null
@@ -1,31 +0,0 @@
-version: 2
-jobs:
-  build:
-    working_directory: ~/kszkepzes
-    docker:
-      - image: circleci/python:3.6.4
-    steps:
-      - checkout
-      - run: sudo chown -R circleci:circleci /usr/local/bin
-      - run: sudo chown -R circleci:circleci /usr/local/lib/python3.6/site-packages
-      - restore_cache:
-          key: deps9-{{ .Branch }}-{{ checksum "Pipfile.lock" }}
-      - run:
-          command: |
-            sudo pip install -r requirements/development.txt
-      - save_cache:
-          key: deps9-{{ .Branch }}-{{ checksum "Pipfile.lock" }}
-          paths:
-            - ".venv"
-            - "/usr/local/bin"
-            - "/usr/local/lib/python3.6/site-packages"
-      - run:
-          command: |
-            flake8 --max-line-length=125 --exclude=src/kszkepzes,migrations
-            python src/manage.py migrate
-            python src/manage.py test
-      - store_test_results:
-          path: test-results
-      - store_artifacts:
-          path: test-results
-          destination: tr1
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 85048fc..c0f239e 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -16,12 +16,23 @@ cache:
 stages:
   - Test and Flake8
   - Docker Build
+  - Scan Container
   - deploy
 
+container_scanning:
+  stage: Scan Container
+  tags: [kszk]
+  only:
+    - tags
+  variables:
+    CS_DEFAULT_BRANCH_IMAGE: $CONTAINER_IMAGE
+
 sast:
+  tags: [kszk]
   stage: Test and Flake8
 
 secret_detection:
+  tags: [kszk]
   stage: Test and Flake8
 
 Flake8:
@@ -85,9 +96,6 @@ Deploy to Kubernetes:
   script:
     - cd k8s
     - sed -i "s|##IMAGETAG##|${CI_COMMIT_REF_NAME}|" deployment.yml
-    # A kovetkezo ket sor egy undorito workaround a mindig valtozo init kontenerek miatt letrejovo es beakado replicasetek miatt. Pls replace, ha van jobb otlet.
-    - kubectl delete deployment --namespace=devteam-kszk-bme-hu apache-kszkepzes || true
-    - kubectl delete deployment --namespace=devteam-kszk-bme-hu kszkepzes-backend || true
     - kubectl apply -f deployment.yml
   only:
     - tags
@@ -95,3 +103,4 @@ Deploy to Kubernetes:
 include:
 - template: Security/SAST.gitlab-ci.yml
 - template: Jobs/Secret-Detection.gitlab-ci.yml
+- template: Jobs/Container-Scanning.gitlab-ci.yml
diff --git a/k8s/deployment.yml b/k8s/deployment.yml
index 5139785..be0e716 100644
--- a/k8s/deployment.yml
+++ b/k8s/deployment.yml
@@ -107,6 +107,34 @@ spec:
             limits:
               memory: 200Mi
               cpu: "2"
+      volumes:
+        - name: kszkepzes-media-volume
+          persistentVolumeClaim:
+            claimName: kszkepzes-media-pv-claim
+        - name: kszkepzes-static-volume
+          persistentVolumeClaim:
+            claimName: kszkepzes-static-pv-claim
+      imagePullSecrets:
+        - name: harbor
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: kszkepzes-backend-worker
+  namespace: kszk-kepzes-site
+spec:
+  strategy:
+    type: Recreate
+  replicas: 1
+  selector:
+    matchLabels:
+      app: kszkepzes-backend-worker
+  template:
+    metadata:
+      labels:
+        app: kszkepzes-backend-worker
+    spec:
+      containers:
         - name: worker
           image: harbor.sch.bme.hu/kszk/kszkepzes-backend:##IMAGETAG##
           imagePullPolicy: "IfNotPresent"
@@ -116,19 +144,12 @@ spec:
             - secretRef:
                 name: kszkepzes-secret-config
           command: ["python3"]
-          args: ["-m", "celery", "-A", "kszkepzes", "worker", "-l", "info"]
+          args: ["-m", "celery", "-A", "kszkepzes", "worker", "-l", "debug"]
           resources:
             requests:
               cpu: "100m"
             limits:
               memory: 600Mi
               cpu: "2"
-      volumes:
-        - name: kszkepzes-media-volume
-          persistentVolumeClaim:
-            claimName: kszkepzes-media-pv-claim
-        - name: kszkepzes-static-volume
-          persistentVolumeClaim:
-            claimName: kszkepzes-static-pv-claim
       imagePullSecrets:
         - name: harbor
-- 
GitLab