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: from_secret: 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" > /tmp/drone-home/.kube/config - chmod 600 /tmp/drone-home/.kube/config # 🔎 valida conexão - kubectl config get-contexts - kubectl get ns - 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: from_secret: KUBECONFIG commands: - mkdir -p /tmp/drone-home/.kube - echo "$KUBECONFIG" > /tmp/drone-home/.kube/config - chmod 600 /tmp/drone-home/.kube/config - kubectl get pods -n gohorsejobs - kubectl apply -n gohorsejobs -f k8s/backend-deployment.yaml - kubectl apply -n gohorsejobs -f k8s/backend-service.yaml