75 lines
No EOL
2.1 KiB
YAML
75 lines
No EOL
2.1 KiB
YAML
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 <<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 "Deploying backend..."
|
|
- kubectl apply -f k8s/backend-deployment.yaml
|
|
- kubectl apply -f k8s/backend-service.yaml |