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>
82 lines
1.8 KiB
YAML
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
|