151 lines
3.8 KiB
YAML
151 lines
3.8 KiB
YAML
![]() |
apiVersion: apps/v1
|
||
|
kind: Deployment
|
||
|
metadata:
|
||
|
name: seo-api
|
||
|
namespace: seo-image-renamer
|
||
|
labels:
|
||
|
app: seo-api
|
||
|
component: backend
|
||
|
spec:
|
||
|
replicas: 3
|
||
|
strategy:
|
||
|
type: RollingUpdate
|
||
|
rollingUpdate:
|
||
|
maxSurge: 1
|
||
|
maxUnavailable: 1
|
||
|
selector:
|
||
|
matchLabels:
|
||
|
app: seo-api
|
||
|
template:
|
||
|
metadata:
|
||
|
labels:
|
||
|
app: seo-api
|
||
|
component: backend
|
||
|
spec:
|
||
|
containers:
|
||
|
- name: api
|
||
|
image: seo-image-renamer/api:latest
|
||
|
ports:
|
||
|
- containerPort: 3001
|
||
|
name: http
|
||
|
env:
|
||
|
- name: NODE_ENV
|
||
|
valueFrom:
|
||
|
configMapKeyRef:
|
||
|
name: seo-image-renamer-config
|
||
|
key: NODE_ENV
|
||
|
- name: PORT
|
||
|
valueFrom:
|
||
|
configMapKeyRef:
|
||
|
name: seo-image-renamer-config
|
||
|
key: PORT
|
||
|
- name: DATABASE_URL
|
||
|
valueFrom:
|
||
|
secretKeyRef:
|
||
|
name: seo-image-renamer-secrets
|
||
|
key: DATABASE_URL
|
||
|
- name: JWT_SECRET
|
||
|
valueFrom:
|
||
|
secretKeyRef:
|
||
|
name: seo-image-renamer-secrets
|
||
|
key: JWT_SECRET
|
||
|
- name: GOOGLE_CLIENT_ID
|
||
|
valueFrom:
|
||
|
secretKeyRef:
|
||
|
name: seo-image-renamer-secrets
|
||
|
key: GOOGLE_CLIENT_ID
|
||
|
- name: GOOGLE_CLIENT_SECRET
|
||
|
valueFrom:
|
||
|
secretKeyRef:
|
||
|
name: seo-image-renamer-secrets
|
||
|
key: GOOGLE_CLIENT_SECRET
|
||
|
- name: STRIPE_SECRET_KEY
|
||
|
valueFrom:
|
||
|
secretKeyRef:
|
||
|
name: seo-image-renamer-secrets
|
||
|
key: STRIPE_SECRET_KEY
|
||
|
- name: STRIPE_WEBHOOK_SECRET
|
||
|
valueFrom:
|
||
|
secretKeyRef:
|
||
|
name: seo-image-renamer-secrets
|
||
|
key: STRIPE_WEBHOOK_SECRET
|
||
|
- name: OPENAI_API_KEY
|
||
|
valueFrom:
|
||
|
secretKeyRef:
|
||
|
name: seo-image-renamer-secrets
|
||
|
key: OPENAI_API_KEY
|
||
|
- name: REDIS_URL
|
||
|
value: "redis://$(REDIS_PASSWORD)@redis-service:6379"
|
||
|
- name: REDIS_PASSWORD
|
||
|
valueFrom:
|
||
|
secretKeyRef:
|
||
|
name: seo-image-renamer-secrets
|
||
|
key: REDIS_PASSWORD
|
||
|
- name: MINIO_ENDPOINT
|
||
|
valueFrom:
|
||
|
configMapKeyRef:
|
||
|
name: seo-image-renamer-config
|
||
|
key: MINIO_ENDPOINT
|
||
|
- name: MINIO_ACCESS_KEY
|
||
|
valueFrom:
|
||
|
secretKeyRef:
|
||
|
name: seo-image-renamer-secrets
|
||
|
key: MINIO_ACCESS_KEY
|
||
|
- name: MINIO_SECRET_KEY
|
||
|
valueFrom:
|
||
|
secretKeyRef:
|
||
|
name: seo-image-renamer-secrets
|
||
|
key: MINIO_SECRET_KEY
|
||
|
- name: SENTRY_DSN
|
||
|
valueFrom:
|
||
|
secretKeyRef:
|
||
|
name: seo-image-renamer-secrets
|
||
|
key: SENTRY_DSN
|
||
|
resources:
|
||
|
requests:
|
||
|
memory: "256Mi"
|
||
|
cpu: "250m"
|
||
|
limits:
|
||
|
memory: "512Mi"
|
||
|
cpu: "500m"
|
||
|
livenessProbe:
|
||
|
httpGet:
|
||
|
path: /api/health
|
||
|
port: 3001
|
||
|
initialDelaySeconds: 30
|
||
|
periodSeconds: 10
|
||
|
timeoutSeconds: 5
|
||
|
failureThreshold: 3
|
||
|
readinessProbe:
|
||
|
httpGet:
|
||
|
path: /api/health
|
||
|
port: 3001
|
||
|
initialDelaySeconds: 5
|
||
|
periodSeconds: 5
|
||
|
timeoutSeconds: 3
|
||
|
successThreshold: 1
|
||
|
failureThreshold: 3
|
||
|
volumeMounts:
|
||
|
- name: temp-storage
|
||
|
mountPath: /tmp
|
||
|
volumes:
|
||
|
- name: temp-storage
|
||
|
emptyDir: {}
|
||
|
restartPolicy: Always
|
||
|
---
|
||
|
apiVersion: v1
|
||
|
kind: Service
|
||
|
metadata:
|
||
|
name: seo-api-service
|
||
|
namespace: seo-image-renamer
|
||
|
labels:
|
||
|
app: seo-api
|
||
|
spec:
|
||
|
selector:
|
||
|
app: seo-api
|
||
|
ports:
|
||
|
- name: http
|
||
|
port: 80
|
||
|
targetPort: 3001
|
||
|
protocol: TCP
|
||
|
type: ClusterIP
|