Files
awoooi/k8s/awoooi-dev/04-deployment-api.yaml
OG T 9913f5dc6d
Some checks failed
CD Pipeline / build-and-deploy (push) Successful in 6m52s
E2E Health Check / e2e-health (push) Successful in 17s
CD Pipeline (Dev) / build-and-deploy-dev (push) Failing after 9s
feat(infra): 開發環境分離 + BuildKit cache 修復 + circuit breaker 優化
1. k8s/awoooi-dev/: 新建 dev namespace (01-05 配置)
   - Namespace + ResourceQuota (cpu 2/4, mem 4Gi/8Gi)
   - ConfigMap: ENVIRONMENT=dev, LOG_LEVEL=DEBUG, SHADOW_MODE=false
   - Deployment: 1 replica, NodePort 32344, image dev-latest
   - RBAC: awoooi-executor-dev ServiceAccount

2. .gitea/workflows/cd-dev.yaml: dev branch CD pipeline
   - 觸發: dev branch push
   - Build: --no-cache (防 cache poisoning)
   - Tag: dev-{sha} / dev-latest
   - Deploy: awoooi-dev namespace, health check 32344
   - Telegram: [DEV] 前綴通知

3. apps/api/Dockerfile: ARG CACHE_BUST=none (防 BuildKit cache 毒化)
   - deps 層 (pip install) 仍可 cache
   - src/ 和 models.json 層每次重建

4. .gitea/workflows/cd.yaml: 正式環境 API build 加入 CACHE_BUST=git_sha
   - 確保 models.json 等配置變更正確進入 image

5. apps/api/src/services/nvidia_provider.py: timeout 不計入 circuit breaker
   - TimeoutException → 只 log,不 record_failure()
   - 只有硬性錯誤 (auth/rate limit/exception) 才斷路

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-01 16:22:21 +08:00

82 lines
1.8 KiB
YAML

# AWOOOI API - 開發環境 Deployment
# 版本: v1.0 | 日期: 2026-04-01
apiVersion: apps/v1
kind: Deployment
metadata:
name: awoooi-api
namespace: awoooi-dev
labels:
app: awoooi-api
system: awoooi
environment: dev
spec:
replicas: 1
revisionHistoryLimit: 2
selector:
matchLabels:
app: awoooi-api
environment: dev
template:
metadata:
labels:
app: awoooi-api
system: awoooi
environment: dev
spec:
serviceAccountName: awoooi-executor-dev
automountServiceAccountToken: true
containers:
- name: api
image: 192.168.0.110:5000/awoooi/api:dev-latest
imagePullPolicy: Always
ports:
- containerPort: 8000
name: http
envFrom:
- configMapRef:
name: awoooi-config
- secretRef:
name: awoooi-secrets
resources:
requests:
cpu: "100m"
memory: "256Mi"
limits:
cpu: "500m"
memory: "512Mi"
livenessProbe:
httpGet:
path: /api/v1/health
port: 8000
initialDelaySeconds: 30
periodSeconds: 15
failureThreshold: 3
readinessProbe:
httpGet:
path: /api/v1/health
port: 8000
initialDelaySeconds: 10
periodSeconds: 10
failureThreshold: 3
---
apiVersion: v1
kind: Service
metadata:
name: awoooi-api-svc
namespace: awoooi-dev
labels:
app: awoooi-api
environment: dev
spec:
type: NodePort
selector:
app: awoooi-api
environment: dev
ports:
- port: 8000
targetPort: 8000
nodePort: 32344
name: http