From 592551090bd1192b49f961e61b4f1d3d85cc2223 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robotka=20Adri=C3=A1n?= <robotka@sch.bme.hu> Date: Fri, 10 Apr 2020 14:38:34 +0200 Subject: [PATCH] add kubernetes deploy --- .gitlab-ci.yml | 16 +++++++++++++--- README.md | 20 +++++++++++++++++++- kubernetes/generated/.gitignore | 2 ++ kubernetes/k8s-apply.sh | 12 ++++++++++++ kubernetes/substitute.sh | 16 ++++++++++++++++ kubernetes/{ => template}/deployment.yaml | 2 ++ kubernetes/{ => template}/ingress.yaml | 0 kubernetes/{ => template}/service.yaml | 0 8 files changed, 64 insertions(+), 4 deletions(-) create mode 100644 kubernetes/generated/.gitignore create mode 100755 kubernetes/k8s-apply.sh create mode 100755 kubernetes/substitute.sh rename kubernetes/{ => template}/deployment.yaml (87%) rename kubernetes/{ => template}/ingress.yaml (100%) rename kubernetes/{ => template}/service.yaml (100%) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 468a24f..961ba79 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -5,13 +5,23 @@ stages: variables: CONTAINER_IMAGE: "registry.kszk.bme.hu/kubernetes/website:$CI_COMMIT_REF_NAME" -before_script: - - echo "{\"auths\":{\"registry.kszk.bme.hu\":{\"username\":\"$CI_REG_USER\",\"password\":\"$CI_REG_PASS\"}}}" > /kaniko/.docker/config.json - docker build: stage: Docker build image: name: gcr.io/kaniko-project/executor:debug entrypoint: [""] script: + - echo "{\"auths\":{\"registry.kszk.bme.hu\":{\"username\":\"$CI_REG_USER\",\"password\":\"$CI_REG_PASS\"}}}" > /kaniko/.docker/config.json - /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --destination $CONTAINER_IMAGE + +deploy: + stage: Deploy + image: registry.kszk.bme.hu/baseimg/kubectl + script: + - kubectl get pods + - cd kubernetes + - ./substitute.sh + - ./k8s-apply.sh + +# only: +# - master diff --git a/README.md b/README.md index 4ff4f96..9de4b28 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,25 @@ # Kubernetes a KSZK-ban weboldal -[Megtalálod itt](kubernetes.sch.bme.hu) +[Megtalálod itt](https://kubernetes.sch.bme.hu) ## Weboldal generálás Ez a repo [MkDocs](https://www.mkdocs.org/) segítségével generál statikus HTML kódot a docs/ mappából az mkdocs.yml fájl alapján Docker környezetben. + +## docs mappa +A dokumentciót tartalmazza markdown formátumban. + +## kubernetes mappa +A template mappjában a változókkal összeállított +konfiguráció található. Ezt helyettesíti be a +substitute.sh, melynek kimenete a generated mappában +fellelhető. + +## .gitlab-ci.yml +Ez a git.sch (ami egy gitlab instance) CI/CD +folyamatának konfigurációja. A docker build és a k8s +deployment van benne leírva. + +## Kézi kubernetes deploy +A kubernetes mappában lévő scriptekkel megvalósítható a +kézzel vezérelt deployment is. diff --git a/kubernetes/generated/.gitignore b/kubernetes/generated/.gitignore new file mode 100644 index 0000000..4ce1c7b --- /dev/null +++ b/kubernetes/generated/.gitignore @@ -0,0 +1,2 @@ +* +!.git* diff --git a/kubernetes/k8s-apply.sh b/kubernetes/k8s-apply.sh new file mode 100755 index 0000000..9824254 --- /dev/null +++ b/kubernetes/k8s-apply.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +# halt script on first error +set -e + +# change workdir +cd generated + +# Apply k8s configuration +kubectl apply -f deployment.yaml +kubectl apply -f service.yaml +kubectl apply -f ingress.yaml diff --git a/kubernetes/substitute.sh b/kubernetes/substitute.sh new file mode 100755 index 0000000..0884817 --- /dev/null +++ b/kubernetes/substitute.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +# halt script on first error +set -e + +# copy *.yaml files to the generated folder +cp template/*.yaml generated/ + +# change workdir +cd generated + +# replace _TEMPLATE_ variables to valid values +sed -i "s|__CONTAINER_IMAGE__|${CONTAINER_IMAGE}|" *.yaml +sed -i "s|__K8S_NAMESPACE__|kubernetes-sch-bme-hu|" *.yaml +sed -i "s|__APP_NAME__|k8s-docs-web|" *.yaml +sed -i "s|__WEB_PORT__|8000|" *.yaml diff --git a/kubernetes/deployment.yaml b/kubernetes/template/deployment.yaml similarity index 87% rename from kubernetes/deployment.yaml rename to kubernetes/template/deployment.yaml index 8501f72..0a915a0 100644 --- a/kubernetes/deployment.yaml +++ b/kubernetes/template/deployment.yaml @@ -17,6 +17,8 @@ spec: labels: app: __APP_NAME__ spec: + imagePullSecrets: + - name: kszk-nexus-registry-cred containers: - image: __CONTAINER_IMAGE__ name: __APP_NAME__ diff --git a/kubernetes/ingress.yaml b/kubernetes/template/ingress.yaml similarity index 100% rename from kubernetes/ingress.yaml rename to kubernetes/template/ingress.yaml diff --git a/kubernetes/service.yaml b/kubernetes/template/service.yaml similarity index 100% rename from kubernetes/service.yaml rename to kubernetes/template/service.yaml -- GitLab