d263c7bf48
- GameGlobal.js: keep upstream SERVER_URL with /ws suffix - en.js/zh.js: merge both settings.nickname and settings.profile keys - SettingsScene.js: keep both nickname row and profile button - server/index.js: merge express app + content security proxy with noServer WebSocket mode and path validation - Add .gitignore for node_modules and .codebuddy
76 lines
2.1 KiB
YAML
76 lines
2.1 KiB
YAML
# ============================================================
|
|
# Deployment: content-security-service
|
|
# Content security microservice for UGC moderation.
|
|
# Shared by multiple mini-games via game_id tenant isolation.
|
|
# ============================================================
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
name: content-security-service
|
|
namespace: content-security
|
|
labels:
|
|
app: content-security-service
|
|
app.kubernetes.io/part-of: content-security
|
|
spec:
|
|
replicas: 2
|
|
selector:
|
|
matchLabels:
|
|
app: content-security-service
|
|
strategy:
|
|
type: RollingUpdate
|
|
rollingUpdate:
|
|
maxSurge: 1
|
|
maxUnavailable: 0
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app: content-security-service
|
|
annotations:
|
|
prometheus.io/scrape: "true"
|
|
prometheus.io/port: "3000"
|
|
prometheus.io/path: "/metrics"
|
|
spec:
|
|
containers:
|
|
- name: content-security-service
|
|
image: content-security-service:latest
|
|
imagePullPolicy: Never
|
|
ports:
|
|
- name: http
|
|
containerPort: 3000
|
|
protocol: TCP
|
|
envFrom:
|
|
- configMapRef:
|
|
name: content-security-config
|
|
- secretRef:
|
|
name: content-security-secrets
|
|
livenessProbe:
|
|
httpGet:
|
|
path: /api/health
|
|
port: 3000
|
|
initialDelaySeconds: 15
|
|
periodSeconds: 15
|
|
timeoutSeconds: 3
|
|
failureThreshold: 3
|
|
readinessProbe:
|
|
httpGet:
|
|
path: /api/health
|
|
port: 3000
|
|
initialDelaySeconds: 5
|
|
periodSeconds: 5
|
|
timeoutSeconds: 2
|
|
failureThreshold: 3
|
|
resources:
|
|
requests:
|
|
cpu: 100m
|
|
memory: 128Mi
|
|
limits:
|
|
cpu: 500m
|
|
memory: 256Mi
|
|
volumeMounts:
|
|
- name: audit-logs
|
|
mountPath: /app/logs/audit
|
|
volumes:
|
|
- name: audit-logs
|
|
emptyDir: {}
|
|
terminationGracePeriodSeconds: 15
|