Files
----/k8s/backend.yaml
smolkik-code 9b15f8b09c feat: CMDB full-stack app - FastAPI + PostgreSQL + React
- PostgreSQL schema: 14 tables, JSONB attributes, audit triggers, soft delete
- FastAPI backend: CRUD, search/filter, relationship graph, bulk import, JWT RBAC
- React frontend: CI table, detail card, force-graph, dashboard
- Seed data: homelab scenario (Proxmox, Mikrotik, VMs, services)
- Docker Compose + Kubernetes manifests
- 20 backend tests (pytest + httpx)
2026-06-25 13:01:40 +07:00

80 lines
1.8 KiB
YAML

apiVersion: apps/v1
kind: Deployment
metadata:
name: cmdb-backend
labels:
app: cmdb-backend
spec:
replicas: 2
selector:
matchLabels:
app: cmdb-backend
template:
metadata:
labels:
app: cmdb-backend
spec:
containers:
- name: backend
image: cmdb-backend:latest
ports:
- containerPort: 8000
env:
- name: DATABASE_URL
value: postgresql+asyncpg://$(CMDB_USER):$(CMDB_PASS)@cmdb-postgres:5432/cmdb
- name: JWT_SECRET
valueFrom:
secretKeyRef:
name: cmdb-secrets
key: jwt-secret
- name: CMDB_USER
valueFrom:
secretKeyRef:
name: cmdb-secrets
key: db-user
- name: CMDB_PASS
valueFrom:
secretKeyRef:
name: cmdb-secrets
key: db-password
resources:
requests:
memory: 128Mi
cpu: 100m
limits:
memory: 512Mi
cpu: 500m
livenessProbe:
httpGet:
path: /api/health
port: 8000
initialDelaySeconds: 10
periodSeconds: 30
readinessProbe:
httpGet:
path: /api/health
port: 8000
initialDelaySeconds: 5
periodSeconds: 10
---
apiVersion: v1
kind: Service
metadata:
name: cmdb-backend
spec:
selector:
app: cmdb-backend
ports:
- port: 8000
targetPort: 8000
---
apiVersion: v1
kind: Secret
metadata:
name: cmdb-secrets
type: Opaque
stringData:
db-user: cmdb
db-password: CHANGE_ME_IN_PRODUCTION
jwt-secret: CHANGE_ME_USE_OPENSSL_RAND_HEX_32