kind: pipeline type: kubernetes name: deploy-backend steps: - name: docker-login image: docker:24 environment: DOCKER_USERNAME: from_secret: DOCKER_USERNAME DOCKER_PASSWORD: from_secret: DOCKER_PASSWORD volumes: - name: dockersock path: /var/run/docker.sock commands: - echo "$DOCKER_PASSWORD" | docker login https://in.gohorsejobs.com -u "$DOCKER_USERNAME" --password-stdin - name: build-and-push-backend image: docker:24 environment: DOCKER_USERNAME: from_secret: DOCKER_USERNAME DOCKER_PASSWORD: from_secret: DOCKER_PASSWORD volumes: - name: dockersock path: /var/run/docker.sock commands: - docker build -t in.gohorsejobs.com/gohorsejobs/gohorsejobs-backend:latest backend - docker push in.gohorsejobs.com/gohorsejobs/gohorsejobs-backend:latest - name: deploy-backend image: bitnami/kubectl:latest environment: KUBERNETES_SERVER: from_secret: K3S_SERVER KUBERNETES_CA: from_secret: K3S_CA_CERT KUBERNETES_CLIENT_CERT: from_secret: K3S_CLIENT_CERT KUBERNETES_CLIENT_KEY: from_secret: K3S_CLIENT_KEY commands: - mkdir -p ~/.kube - | cat < ~/.kube/config apiVersion: v1 kind: Config clusters: - name: k3s cluster: server: ${KUBERNETES_SERVER} certificate-authority-data: ${KUBERNETES_CA} users: - name: drone user: client-certificate-data: ${KUBERNETES_CLIENT_CERT} client-key-data: ${KUBERNETES_CLIENT_KEY} contexts: - name: drone-context context: cluster: k3s user: drone namespace: gohorsejobs current-context: drone-context EOF - echo "Deploying backend..." - kubectl apply -f k8s/backend-deployment.yaml - kubectl apply -f k8s/backend-service.yaml