gohorsejobs/.drone.yml
2025-12-11 22:57:34 -03:00

102 lines
2.9 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

kind: pipeline
type: kubernetes
name: deploy-backend
# --------------------------------------------------------------------
# ETAPA 1 - BUILD E PUSH PARA O HARBOR (PLUGIN DOCKER)
# --------------------------------------------------------------------
steps:
- 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
# FORMATO EXATO DO SEU HARBOR:
# <projeto>/<repositorio>
repo: gohorsejobs/gohorsejobs-backend
tags:
- latest
context: backend
dockerfile: backend/Dockerfile
insecure: true
insecure_skip_verify: true
debug: true
# <<< CORREÇÃO DO TRAVAMENTO NO PUSH >>>
mtu: 1400
# --------------------------------------------------------------------
# ETAPA 2 DEPLOY BACKEND 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
DB_HOST: { from_secret: DB_HOST }
DB_PORT: { from_secret: DB_PORT }
DB_USER: { from_secret: DB_USER }
DB_PASSWORD: { from_secret: DB_PASSWORD }
DB_NAME: { from_secret: DB_NAME }
DB_SSLMODE: { from_secret: DB_SSLMODE }
AWS_REGION: { from_secret: AWS_REGION }
AWS_ACCESS_KEY_ID: { from_secret: AWS_ACCESS_KEY_ID }
AWS_SECRET_ACCESS_KEY: { from_secret: AWS_SECRET_ACCESS_KEY }
AWS_ENDPOINT: { from_secret: AWS_ENDPOINT }
S3_BUCKET: { from_secret: S3_BUCKET }
JWT_SECRET: { from_secret: JWT_SECRET }
ENV: { from_secret: ENV }
CORS_ORIGINS: { from_secret: CORS_ORIGINS }
MAX_UPLOAD_SIZE: { from_secret: MAX_UPLOAD_SIZE }
UPLOAD_DIR: { from_secret: UPLOAD_DIR }
commands:
- echo "Creating kubeconfig…"
- mkdir -p ~/.kube
- |
cat <<EOF > ~/.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 "Applying manifests..."
- kubectl apply -f k8s/backend-deployment.yaml
- kubectl apply -f k8s/backend-service.yaml