gohorse-backend

This commit is contained in:
Marcus Bohessef 2025-12-11 19:55:31 -03:00
parent 18ac6d74f0
commit bb059a8035
3 changed files with 134 additions and 0 deletions

93
.drone.yml Normal file
View file

@ -0,0 +1,93 @@
kind: pipeline
type: docker
name: deploy-backend
steps:
- name: build-backend
image: plugins/docker
settings:
repo: in.gohorsejobs.com/gohorsejobs-backend
tags: latest
dockerfile: ./backend/Dockerfile
context: ./backend
username:
from_secret: HARBOR_USERNAME
password:
from_secret: HARBOR_PASSWORD
- 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 "Configuring 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 backend K8s manifests…"
- kubectl apply -f k8s/backend-deployment.yaml
- kubectl apply -f k8s/backend-service.yaml

View file

@ -0,0 +1,28 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: gohorse-backend
namespace: gohorsejobs
spec:
replicas: 1
selector:
matchLabels:
app: gohorse-backend
template:
metadata:
labels:
app: gohorse-backend
spec:
containers:
- name: backend
image: harbor.rede5.com.br/gohorsejobs/backend:latest
imagePullPolicy: Always
ports:
- containerPort: 3000
env:
- name: NODE_ENV
value: "production"
# Caso o backend precise do .env via Infisical Sidecar, adiciono depois se quiser.
imagePullSecrets:
- name: harbor-registry

13
k8s/backend-service.yaml Normal file
View file

@ -0,0 +1,13 @@
apiVersion: v1
kind: Service
metadata:
name: gohorse-backend
namespace: gohorsejobs
spec:
selector:
app: gohorse-backend
ports:
- name: http
port: 3000
targetPort: 3000
type: ClusterIP