gohorsejobs/.drone.yml
2025-12-11 22:07:17 -03:00

120 lines
3.3 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 (KANIKO)
# ---------------------------------------------
steps:
- name: build-and-push-backend
image: docker.io/kanikoproject/executor:debug # <<< CORRIGIDO!
environment:
DOCKER_CONFIG: /kaniko/.docker/
HARBOR_USERNAME:
from_secret: HARBOR_USERNAME
HARBOR_PASSWORD:
from_secret: HARBOR_PASSWORD
volumes:
- name: docker-config
path: /kaniko/.docker
commands:
- echo "Configuring Kaniko auth…"
- |
cat <<EOF > /kaniko/.docker/config.json
{
"auths": {
"in.gohorsejobs.com": {
"username": "${HARBOR_USERNAME}",
"password": "${HARBOR_PASSWORD}"
}
}
}
EOF
- echo "Running Kaniko build and push..."
- /kaniko/executor \
--context ./backend \
--dockerfile ./backend/Dockerfile \
--destination in.gohorsejobs.com/gohorsejobs-backend:latest \
--skip-tls-verify \
--insecure \
--insecure-pull
# ---------------------------------------------
# ETAPA 2 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
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
# ---------------------------------------------
# VOLUMES
# ---------------------------------------------
volumes:
- name: docker-config
emptyDir: {}