Some checks are pending
CI/CD Pipeline (Forgejo Container Registry) / Run Tests (DinD) (push) Waiting to run
CI/CD Pipeline (Forgejo Container Registry) / Build and Push Docker Images (DinD) (push) Blocked by required conditions
CI/CD Pipeline (Forgejo Container Registry) / Deploy to Production (push) Blocked by required conditions
121 lines
2.6 KiB
YAML
121 lines
2.6 KiB
YAML
apiVersion: v1
|
|
kind: Pod
|
|
metadata:
|
|
name: sharenet-production-pod
|
|
labels:
|
|
app: sharenet-production
|
|
spec:
|
|
containers:
|
|
- name: postgres
|
|
image: postgres:15-alpine
|
|
env:
|
|
- name: POSTGRES_DB
|
|
value: "sharenet"
|
|
- name: POSTGRES_USER
|
|
value: "sharenet"
|
|
- name: POSTGRES_PASSWORD
|
|
value: "${POSTGRES_PASSWORD}"
|
|
ports:
|
|
- containerPort: 5432
|
|
protocol: TCP
|
|
volumeMounts:
|
|
- name: postgres-data
|
|
mountPath: /var/lib/postgresql/data
|
|
livenessProbe:
|
|
exec:
|
|
command:
|
|
- pg_isready
|
|
- -U
|
|
- sharenet
|
|
initialDelaySeconds: 30
|
|
periodSeconds: 30
|
|
timeoutSeconds: 10
|
|
failureThreshold: 3
|
|
readinessProbe:
|
|
exec:
|
|
command:
|
|
- pg_isready
|
|
- -U
|
|
- sharenet
|
|
initialDelaySeconds: 5
|
|
periodSeconds: 10
|
|
timeoutSeconds: 5
|
|
|
|
- name: backend
|
|
image: ${REGISTRY_HOST}/${OWNER_REPO}/backend:${IMAGE_TAG}
|
|
env:
|
|
- name: DATABASE_URL
|
|
value: "postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@localhost:5432/${POSTGRES_DB}"
|
|
- name: RUST_LOG
|
|
value: "info"
|
|
- name: RUST_BACKTRACE
|
|
value: "1"
|
|
ports:
|
|
- containerPort: 3001
|
|
protocol: TCP
|
|
livenessProbe:
|
|
httpGet:
|
|
path: /health
|
|
port: 3001
|
|
initialDelaySeconds: 30
|
|
periodSeconds: 30
|
|
timeoutSeconds: 10
|
|
failureThreshold: 3
|
|
readinessProbe:
|
|
httpGet:
|
|
path: /health
|
|
port: 3001
|
|
initialDelaySeconds: 10
|
|
periodSeconds: 10
|
|
timeoutSeconds: 5
|
|
|
|
- name: frontend
|
|
image: ${REGISTRY_HOST}/${OWNER_REPO}/frontend:${IMAGE_TAG}
|
|
env:
|
|
- name: NEXT_PUBLIC_API_HOST
|
|
value: "localhost"
|
|
- name: NEXT_PUBLIC_API_PORT
|
|
value: "3001"
|
|
- name: NODE_ENV
|
|
value: "production"
|
|
ports:
|
|
- containerPort: 3000
|
|
protocol: TCP
|
|
dependsOn:
|
|
- name: backend
|
|
condition: Ready
|
|
|
|
- name: nginx
|
|
image: nginx:alpine
|
|
ports:
|
|
- containerPort: 80
|
|
protocol: TCP
|
|
- containerPort: 443
|
|
protocol: TCP
|
|
volumeMounts:
|
|
- name: nginx-config
|
|
mountPath: /etc/nginx/nginx.conf
|
|
subPath: nginx.conf
|
|
readOnly: true
|
|
- name: nginx-ssl
|
|
mountPath: /etc/nginx/ssl
|
|
readOnly: true
|
|
dependsOn:
|
|
- name: frontend
|
|
condition: Ready
|
|
- name: backend
|
|
condition: Ready
|
|
|
|
volumes:
|
|
- name: postgres-data
|
|
hostPath:
|
|
path: /var/lib/postgresql/data
|
|
type: Directory
|
|
- name: nginx-config
|
|
hostPath:
|
|
path: /opt/sharenet/nginx/nginx.conf
|
|
type: File
|
|
- name: nginx-ssl
|
|
hostPath:
|
|
path: /opt/sharenet/nginx/ssl
|
|
type: Directory
|