gohorse-backend
This commit is contained in:
parent
18ac6d74f0
commit
bb059a8035
3 changed files with 134 additions and 0 deletions
93
.drone.yml
Normal file
93
.drone.yml
Normal 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
|
||||
28
k8s/backend-deployment.yaml
Normal file
28
k8s/backend-deployment.yaml
Normal 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
13
k8s/backend-service.yaml
Normal 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
|
||||
Loading…
Reference in a new issue