From bc88da6772fb44393f6ceb211f2cab1dd487b988 Mon Sep 17 00:00:00 2001 From: Paolo Brasolin <paolo.brasolin@eurac.edu> Date: Thu, 24 Feb 2022 19:27:45 +0100 Subject: [PATCH] feat: #be webserver k8s template --- .gitlab-ci.yml | 33 +++++++++++++++++++++++--- backend/kustomize/base/deployment.yaml | 31 ++++++++++++++++++++++++ backend/kustomize/base/ingress.yaml | 16 +++++++++++++ backend/kustomize/base/service.yaml | 11 +++++++++ 4 files changed, 88 insertions(+), 3 deletions(-) create mode 100644 backend/kustomize/base/deployment.yaml create mode 100644 backend/kustomize/base/ingress.yaml create mode 100644 backend/kustomize/base/service.yaml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 9e5fedc..161c3ea 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -3,9 +3,10 @@ variables: stages: - build + - deploy - setup -be-build-job: +.be-build-job: variables: IMAGE_NAME: $CI_REGISTRY_IMAGE/backend stage: build @@ -26,7 +27,33 @@ be-build-job: only: - main -be-setup-job: +be-deploy-job: + variables: + KUBECTL_VERSION: v1.8.10 + IMAGE_NAME: $CI_REGISTRY_IMAGE/backend + + stage: deploy + tags: + - commul + image: docker:latest + services: + - docker:dind + before_script: + - wget https://storage.googleapis.com/kubernetes-release/release/$KUBECTL_VERSION/bin/linux/amd64/kubectl + # NOTE: version is too ald and don't have sha256 available + #- wget https://dl.k8s.io/release/$KUBECTL_VERSION/bin/linux/amd64/kubectl.sha256 + # - echo "$(<kubectl.sha256) kubectl" | sha256sum --check + - mv kubectl /usr/bin/ && chmod +x /usr/bin/kubectl + - docker login -u $CI_REGISTRY_USER -p $CI_JOB_TOKEN https://$CI_REGISTRY + script: + - kubectl version --client + - echo YAY! + - docker pull ${IMAGE_NAME}:main + #- kubectl --namespace kommul-dev set image deployment/merlin browser=${CONTAINER_IMAGE}:${CI_COMMIT_SHA} + only: + - main + +.be-setup-job: image: node:16-alpine stage: setup cache: @@ -42,7 +69,7 @@ be-setup-job: - npm install - echo Success! -fe-setup-job: +.fe-setup-job: image: node:16-alpine stage: setup cache: diff --git a/backend/kustomize/base/deployment.yaml b/backend/kustomize/base/deployment.yaml new file mode 100644 index 0000000..f7b7471 --- /dev/null +++ b/backend/kustomize/base/deployment.yaml @@ -0,0 +1,31 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: oetzi-webserver +spec: + replicas: 1 + selector: + matchLabels: + app: oetzi-webserver + template: + metadata: + labels: + app: oetzi-webserver + spec: + containers: + - name: oetzi-webserver + # NOTE: use `minikube image load oetzi:latest` to push into container runtime + image: oetzi:latest + # NOTE: Never is useful only for locla testing in order to load image from cache + imagePullPolicy: Never + resources: {} + ports: + - name: http + containerPort: 80 + command: ["npm", "run", "serve"] + env: + - name: PORT + value: "80" + - name: DATABASE_URL + value: postgres://db_user:db_pass@database/db_name + diff --git a/backend/kustomize/base/ingress.yaml b/backend/kustomize/base/ingress.yaml new file mode 100644 index 0000000..f48ddf1 --- /dev/null +++ b/backend/kustomize/base/ingress.yaml @@ -0,0 +1,16 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: oetzi +spec: + rules: + - host: oetzi.eurac + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: oetzi-webserver + port: + name: http diff --git a/backend/kustomize/base/service.yaml b/backend/kustomize/base/service.yaml new file mode 100644 index 0000000..69ed8a6 --- /dev/null +++ b/backend/kustomize/base/service.yaml @@ -0,0 +1,11 @@ +apiVersion: v1 +kind: Service +metadata: + name: oetzi-webserver +spec: + selector: + app: oetzi-webserver + ports: + - name: http + port: 8080 + targetPort: 80 -- GitLab