Files
crawlapi/k8s/api.yaml
Developer 62994d4f3d
Some checks failed
CI / Test (push) Has been cancelled
Deploy / Deploy to Staging (push) Has been cancelled
CI / Build & Push (push) Has been cancelled
Deploy / Deploy to Production (push) Has been cancelled
Initial commit: Full Crawl API implementation
2026-04-29 07:03:48 +00:00

98 lines
2.0 KiB
YAML

apiVersion: apps/v1
kind: Deployment
metadata:
name: api
namespace: crawlapi
spec:
replicas: 3
selector:
matchLabels:
app: api
template:
metadata:
labels:
app: api
spec:
containers:
- name: api
image: crawlapi/api:latest
ports:
- containerPort: 3000
env:
- name: DATABASE_URL
value: "postgres://$(POSTGRES_USER):$(POSTGRES_PASSWORD)@postgres:5432/crawlapi"
- name: REDIS_URL
value: "redis://redis:6379"
- name: S3_ENDPOINT
value: "http://minio:9000"
- name: S3_BUCKET
value: "crawlapi"
- name: PLAYWRIGHT_SCRIPT_PATH
value: "/app/playwright/pool.js"
envFrom:
- secretRef:
name: crawlapi-secrets
resources:
requests:
memory: "256Mi"
cpu: "250m"
limits:
memory: "512Mi"
cpu: "500m"
livenessProbe:
httpGet:
path: /metrics
port: 3000
initialDelaySeconds: 10
periodSeconds: 30
readinessProbe:
httpGet:
path: /metrics
port: 3000
initialDelaySeconds: 5
periodSeconds: 10
startupProbe:
httpGet:
path: /metrics
port: 3000
failureThreshold: 30
periodSeconds: 10
---
apiVersion: v1
kind: Service
metadata:
name: api
namespace: crawlapi
spec:
selector:
app: api
ports:
- port: 3000
targetPort: 3000
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: api
namespace: crawlapi
annotations:
nginx.ingress.kubernetes.io/ssl-redirect: "true"
cert-manager.io/cluster-issuer: letsencrypt
spec:
ingressClassName: nginx
tls:
- hosts:
- api.crawlapi.dev
secretName: api-tls
rules:
- host: api.crawlapi.dev
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: api
port:
number: 3000