From 2f94a87bb5098347a6f38ef7525546de75a6f5cb Mon Sep 17 00:00:00 2001
From: Laszlo Rafael <rlacko99@gmail.com>
Date: Sun, 13 Mar 2022 20:38:24 +0100
Subject: [PATCH] Add kubernetes CI/CD

---
 .gitlab-ci.yml | 74 ++++++++++++++++++++++++++++++++++++++------------
 Dockerfile     |  4 +++
 nginx.conf     | 35 ++++++++++++++++++++++++
 3 files changed, 95 insertions(+), 18 deletions(-)
 create mode 100644 Dockerfile
 create mode 100644 nginx.conf

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 3deb9be..503f9eb 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,26 +1,64 @@
-image: kroniak/ssh-client
+# image: kroniak/ssh-client
 
 stages:
+  - build
   - deploy
 
-home:
+variables:
+  CI_REGISTRY_IMAGE: ${CI_REGISTRY}/${CI_PROJECT_NAME}
+  KUBECONFIG_VAR_NAME: KUBECONFIG
+
+# home:
+#   stage: deploy
+#   before_script:
+#     - eval $(ssh-agent -s)
+#     - echo "$SSH" | tr -d '\r' | ssh-add -
+#     - mkdir -p ~/.ssh/socket
+#     - chmod 700 ~/.ssh
+#     - cp .magic_ssh_config ~/.ssh/config
+#   script:
+#     # AFS magic incoming
+#     - ssh mikewashere@centaur.sch.bme.hu cp /afs/sch.bme.hu/home/mikewashere/.system/mikewashere.keytab /tmp/mikewashere.keytab
+#     - ssh mikewashere@centaur.sch.bme.hu kinit -k -t /tmp/mikewashere.keytab mikewashere
+#     - ssh mikewashere@centaur.sch.bme.hu rm /tmp/mikewashere.keytab
+#     - ssh mikewashere@centaur.sch.bme.hu aklog sch.bme.hu -k SCH.BME.HU
+#     - ssh mikewashere@centaur.sch.bme.hu mkdir -p /home/mikewashere/public_html/linux
+#     # actual work
+#     - scp -r $PWD/* mikewashere@centaur.sch.bme.hu:/home/mikewashere/public_html/linux/
+#     - ssh mikewashere@centaur.sch.bme.hu env sh -c 'echo lolwut; cd public_html/linux; bash cirun.sh'
+#   only:
+#     refs:
+#       - master
+
+container:
+  stage: build
+  image:
+    name: gcr.io/kaniko-project/executor:debug
+    entrypoint: [""]
+  before_script:
+    - mkdir -p /kaniko/.docker
+    - echo "{\"auths\":{\"$CI_REGISTRY\":{\"auth\":\"$(echo -n ${CI_REGISTRY_USER}:${CI_REGISTRY_PASSWORD} | base64)\"}}}" > /kaniko/.docker/config.json
+  script:
+    - |
+      /kaniko/executor --context ${CI_PROJECT_DIR} \
+      --dockerfile ${CI_PROJECT_DIR}/Dockerfile \
+      --destination ${CI_REGISTRY_IMAGE}:latest
+  only:
+    - master
+  except:
+    - tags
+
+kubernetes:
   stage: deploy
+  image: 
+    name: harbor.sch.bme.hu/kszk/kube-tools:latest
+    entrypoint: [""]
   before_script:
-    - eval $(ssh-agent -s)
-    - echo "$SSH" | tr -d '\r' | ssh-add -
-    - mkdir -p ~/.ssh/socket
-    - chmod 700 ~/.ssh
-    - cp .magic_ssh_config ~/.ssh/config
+    - chmod 600 ${!KUBECONFIG_VAR_NAME}
+    - export KUBECONFIG=${!KUBECONFIG_VAR_NAME}
   script:
-    # AFS magic incoming
-    - ssh mikewashere@centaur.sch.bme.hu cp /afs/sch.bme.hu/home/mikewashere/.system/mikewashere.keytab /tmp/mikewashere.keytab
-    - ssh mikewashere@centaur.sch.bme.hu kinit -k -t /tmp/mikewashere.keytab mikewashere
-    - ssh mikewashere@centaur.sch.bme.hu rm /tmp/mikewashere.keytab
-    - ssh mikewashere@centaur.sch.bme.hu aklog sch.bme.hu -k SCH.BME.HU
-    - ssh mikewashere@centaur.sch.bme.hu mkdir -p /home/mikewashere/public_html/linux
-    # actual work
-    - scp -r $PWD/* mikewashere@centaur.sch.bme.hu:/home/mikewashere/public_html/linux/
-    - ssh mikewashere@centaur.sch.bme.hu env sh -c 'echo lolwut; cd public_html/linux; bash cirun.sh'
+    - kubectl rollout restart deployment linux-presentation
   only:
-    refs:
-      - master
\ No newline at end of file
+    - master
+  except:
+    - tags
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..f4671a9
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,4 @@
+FROM nginx:1.21.6
+
+COPY nginx.conf /etc/nginx/conf.d/default.conf
+COPY . /usr/share/nginx/html
diff --git a/nginx.conf b/nginx.conf
new file mode 100644
index 0000000..9272ba5
--- /dev/null
+++ b/nginx.conf
@@ -0,0 +1,35 @@
+server {
+    listen       80;
+    listen  [::]:80;
+    server_name  localhost;
+    
+    root   /usr/share/nginx/html;
+
+    location / {
+        index  index.html index.htm;
+
+         # kill cache
+        add_header Last-Modified $date_gmt;
+        add_header Cache-Control 'no-store, no-cache';
+        if_modified_since off;
+        expires off;
+        etag off;
+    }
+
+    # Media: images, icons, video, audio, HTC
+    location ~* \.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm|htc)$ {
+        expires 1M;
+        access_log off;
+        add_header Cache-Control "public";
+    }
+
+    error_page   500 502 503 504  /50x.html;
+    location = /50x.html {
+        root   /usr/share/nginx/html;
+    }
+
+    error_page   404  /404.html;
+    location = /404.html {
+        root   /usr/share/nginx/html;
+    }
+}
-- 
GitLab