diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 45a764d..360304d 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -9,3 +9,20 @@ kaniko: script: - echo "{\"auths\":{\"$CI_REGISTRY\":{\"username\":\"$CI_REGISTRY_USER\",\"password\":\"$CI_REGISTRY_PASSWORD\"}}}" > /kaniko/.docker/config.json - /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --destination $CI_REGISTRY_IMAGE:latest --destination $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA --destination $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG + +kubernetes: + stage: deploy + only: + - master + image: ruby + variables: + KUBERNETES_SERVICE_ACCOUNT_OVERWRITE: gitlab-deploy + script: + - curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl + - chmod +x kubectl + - mv kubectl /usr/bin/kubectl + - kubectl config set-cluster k8s --server="https://kubernetes.default.svc" --certificate-authority=/var/run/secrets/kubernetes.io/serviceaccount/ca.crt + - kubectl config set-credentials sa --token="$(cat /var/run/secrets/kubernetes.io/serviceaccount/token)" + - kubectl config set-context local --cluster=k8s --user=sa --namespace=turniere-frontend + - gem install kubernetes-deploy + - REVISION=$CI_COMMIT_SHA kubernetes-deploy --template-dir kubernetes turniere-frontend local diff --git a/kubernetes/deployment.yml.erb b/kubernetes/deployment.yml.erb new file mode 100644 index 0000000..bbf825e --- /dev/null +++ b/kubernetes/deployment.yml.erb @@ -0,0 +1,25 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: frontend-deployment + namespace: turniere-frontend + labels: + app: turniere-frontend +spec: + replicas: 1 + selector: + matchLabels: + app: turniere-frontend + template: + metadata: + labels: + app: turniere-frontend + spec: + containers: + - name: frontend-container + image: registry.gitlab.com/turniere/turniere-frontend:<%= current_sha %> + ports: + - containerPort: 80 + env: + - name: TURNIERE_API_URL + value: 'https://api01.turnie.re' diff --git a/kubernetes/service.yml b/kubernetes/service.yml new file mode 100644 index 0000000..d15cd15 --- /dev/null +++ b/kubernetes/service.yml @@ -0,0 +1,29 @@ +apiVersion: v1 +kind: Service +metadata: + name: frontend-service + namespace: turniere-frontend +spec: + selector: + app: turniere-frontend + ports: + - name: http + port: 80 + targetPort: 80 +--- +apiVersion: extensions/v1beta1 +kind: Ingress +metadata: + name: frontend-ingress + namespace: turniere-frontend + annotations: + kubernetes.io/ingress.class: traefik +spec: + rules: + - host: frontend01.turnie.re + http: + paths: + - path: / + backend: + serviceName: frontend-service + servicePort: http