diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 468a24f3442815bab915f698f0d125aa6478caf6..961ba7901698f5826afd82de1cb937c5a1b9d168 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 4ff4f965cab0ef7458b4c7b0eaac5217d3d5231f..9de4b286bac2262518e28c10a003a64665f5dd14 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 0000000000000000000000000000000000000000..4ce1c7b2b6ccda745092fd7b6ad4ee997076dc2d --- /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 0000000000000000000000000000000000000000..98242547ed07154f61b38ffbc5ee09d7efce3078 --- /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 0000000000000000000000000000000000000000..0884817fca83c8a6ad6d8880da880ff7c23b8097 --- /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 8501f72519bd778f765ff90e5fb0d6e6f07fb2be..0a915a06b4d31d3886214f0ab1fc5410dd66fec3 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