kind: pipeline type: kubernetes name: deploy-backend steps: # Step SEPARADO apenas para o docker login no Harbor - name: docker-login-harbor image: docker:24 environment: HARBOR_USERNAME: from_secret: HARBOR_USERNAME HARBOR_PASSWORD: from_secret: HARBOR_PASSWORD commands: - echo "$HARBOR_PASSWORD" | docker login in.gohorsejobs.com -u "$HARBOR_USERNAME" --password-stdin # BUILD & PUSH para Harbor usando plugins/docker (segue padrão) - name: build-and-push-backend image: plugins/docker:latest environment: DOCKER_USERNAME: from_secret: HARBOR_USERNAME DOCKER_PASSWORD: from_secret: HARBOR_PASSWORD settings: registry: in.gohorsejobs.com repo: gohorsejobs/gohorsejobs-backend tags: - latest context: backend dockerfile: backend/Dockerfile insecure: true # Use apenas se necessário (HTTP or self-signed) insecure_skip_verify: true debug: true mtu: 0 # DEPLOY no K3S - 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