86 lines
3.6 KiB
YAML
86 lines
3.6 KiB
YAML
kind: pipeline
|
|
type: kubernetes
|
|
name: deploy-backend
|
|
|
|
steps:
|
|
- name: build-and-push-backend
|
|
image: plugins/docker:latest
|
|
settings:
|
|
registry: in.gohorsejobs.com
|
|
repo: in.gohorsejobs.com/gohorsejobs/gohorsejobs-backend
|
|
tags:
|
|
- latest
|
|
context: backend
|
|
dockerfile: backend/Dockerfile
|
|
insecure: true
|
|
insecure_skip_verify: true
|
|
username:
|
|
from_secret: HARBOR_USERNAME
|
|
password:
|
|
from_secret: HARBOR_PASSWORD
|
|
|
|
- name: export-envs-to-k8s
|
|
image: bitnami/kubectl:latest
|
|
environment:
|
|
HOME: /tmp/drone-home
|
|
KUBECONFIG: /tmp/drone-home/.kube/config
|
|
KUBECONFIG_DATA:
|
|
from_secret: K3S_KUBECONFIG
|
|
|
|
AWS_ACCESS_KEY_ID: { from_secret: AWS_ACCESS_KEY_ID }
|
|
AWS_ENDPOINT: { from_secret: AWS_ENDPOINT }
|
|
AWS_REGION: { from_secret: AWS_REGION }
|
|
AWS_SECRET_ACCESS_KEY: { from_secret: AWS_SECRET_ACCESS_KEY }
|
|
CORS_ORIGINS: { from_secret: CORS_ORIGINS }
|
|
DB_HOST: { from_secret: DB_HOST }
|
|
DB_NAME: { from_secret: DB_NAME }
|
|
DB_PASSWORD: { from_secret: DB_PASSWORD }
|
|
DB_PORT: { from_secret: DB_PORT }
|
|
DB_SSLMODE: { from_secret: DB_SSLMODE }
|
|
DB_USER: { from_secret: DB_USER }
|
|
ENV: { from_secret: ENV }
|
|
JWT_SECRET: { from_secret: JWT_SECRET }
|
|
MAX_UPLOAD_CAD_SIZE: { from_secret: MAX_UPLOAD_CAD_SIZE }
|
|
PORT: { from_secret: PORT }
|
|
S3_BUCKET: { from_secret: S3_BUCKET }
|
|
UPLOAD_DIR: { from_secret: UPLOAD_DIR }
|
|
|
|
commands:
|
|
- mkdir -p /tmp/drone-home/.kube
|
|
- echo "$KUBECONFIG_DATA" | base64 -d > /tmp/drone-home/.kube/config
|
|
|
|
- echo "AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID" > .env.k8s
|
|
- echo "AWS_ENDPOINT=$AWS_ENDPOINT" >> .env.k8s
|
|
- echo "AWS_REGION=$AWS_REGION" >> .env.k8s
|
|
- echo "AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY" >> .env.k8s
|
|
- echo "CORS_ORIGINS=$CORS_ORIGINS" >> .env.k8s
|
|
- echo "DB_HOST=$DB_HOST" >> .env.k8s
|
|
- echo "DB_NAME=$DB_NAME" >> .env.k8s
|
|
- echo "DB_PASSWORD=$DB_PASSWORD" >> .env.k8s
|
|
- echo "DB_PORT=$DB_PORT" >> .env.k8s
|
|
- echo "DB_SSLMODE=$DB_SSLMODE" >> .env.k8s
|
|
- echo "DB_USER=$DB_USER" >> .env.k8s
|
|
- echo "ENV=$ENV" >> .env.k8s
|
|
- echo "JWT_SECRET=$JWT_SECRET" >> .env.k8s
|
|
- echo "MAX_UPLOAD_CAD_SIZE=$MAX_UPLOAD_CAD_SIZE" >> .env.k8s
|
|
- echo "PORT=$PORT" >> .env.k8s
|
|
- echo "S3_BUCKET=$S3_BUCKET" >> .env.k8s
|
|
- echo "UPLOAD_DIR=$UPLOAD_DIR" >> .env.k8s
|
|
|
|
- kubectl -n gohorsejobs delete secret backend-secrets --ignore-not-found
|
|
- kubectl -n gohorsejobs create secret generic backend-secrets --from-env-file=.env.k8s
|
|
|
|
- name: deploy-backend
|
|
image: bitnami/kubectl:latest
|
|
environment:
|
|
HOME: /tmp/drone-home
|
|
KUBECONFIG: /tmp/drone-home/.kube/config
|
|
KUBECONFIG_DATA:
|
|
from_secret: K3S_KUBECONFIG
|
|
|
|
commands:
|
|
- mkdir -p /tmp/drone-home/.kube
|
|
- echo "$KUBECONFIG_DATA" | base64 -d > /tmp/drone-home/.kube/config
|
|
|
|
- kubectl apply -n gohorsejobs -f k8s/backend-deployment.yaml
|
|
- kubectl apply -n gohorsejobs -f k8s/backend-service.yaml
|