[SMG][CI] Add K8s integration tests + wire into pr-test-rust (#24278)

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Kangyan-Zhou
2026-05-04 10:27:37 -07:00
committed by GitHub
co-authored by Claude Opus 4.7
parent e5c58eb9d6
commit c545a5b1c0
12 changed files with 1652 additions and 3 deletions
@@ -0,0 +1,74 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: smg-gateway-pd
namespace: smg-test
spec:
replicas: 1
selector:
matchLabels:
app: smg-gateway-pd
template:
metadata:
labels:
app: smg-gateway-pd
spec:
serviceAccountName: smg-gateway
containers:
- name: gateway
image: smg-gateway:test
imagePullPolicy: Never
args:
- "--service-discovery"
- "--pd-disaggregation"
- "--prefill-selector"
- "role=prefill"
- "--decode-selector"
- "role=decode"
- "--service-discovery-port"
- "8000"
- "--service-discovery-namespace"
- "smg-test"
- "--port"
- "30001"
- "--prometheus-port"
- "29001"
- "--disable-health-check"
- "--worker-startup-timeout-secs"
- "30"
- "--log-level"
- "debug"
ports:
- containerPort: 30001
name: http
- containerPort: 29001
name: metrics
readinessProbe:
httpGet:
path: /liveness
port: 30001
initialDelaySeconds: 3
periodSeconds: 3
livenessProbe:
httpGet:
path: /liveness
port: 30001
initialDelaySeconds: 5
periodSeconds: 10
---
apiVersion: v1
kind: Service
metadata:
name: smg-gateway-pd
namespace: smg-test
spec:
type: NodePort
selector:
app: smg-gateway-pd
ports:
- name: http
port: 30001
targetPort: 30001
- name: metrics
port: 29001
targetPort: 29001
@@ -0,0 +1,74 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: smg-gateway
namespace: smg-test
spec:
replicas: 1
selector:
matchLabels:
app: smg-gateway
template:
metadata:
labels:
app: smg-gateway
spec:
serviceAccountName: smg-gateway
containers:
- name: gateway
image: smg-gateway:test
imagePullPolicy: Never
args:
- "--service-discovery"
- "--selector"
- "app=fake-worker"
- "--service-discovery-port"
- "8000"
- "--service-discovery-namespace"
- "smg-test"
- "--port"
- "30000"
- "--prometheus-port"
- "29000"
- "--disable-health-check"
- "--worker-startup-timeout-secs"
- "30"
- "--log-level"
- "debug"
ports:
- containerPort: 30000
name: http
- containerPort: 29000
name: metrics
# Use /liveness instead of /readiness for the K8s readiness probe
# because /readiness returns 503 when no healthy workers are registered,
# and with service discovery the gateway starts with 0 workers.
readinessProbe:
httpGet:
path: /liveness
port: 30000
initialDelaySeconds: 3
periodSeconds: 3
livenessProbe:
httpGet:
path: /liveness
port: 30000
initialDelaySeconds: 5
periodSeconds: 10
---
apiVersion: v1
kind: Service
metadata:
name: smg-gateway
namespace: smg-test
spec:
type: NodePort
selector:
app: smg-gateway
ports:
- name: http
port: 30000
targetPort: 30000
- name: metrics
port: 29000
targetPort: 29000
@@ -0,0 +1,4 @@
apiVersion: v1
kind: Namespace
metadata:
name: smg-test
@@ -0,0 +1,29 @@
apiVersion: v1
kind: ServiceAccount
metadata:
name: smg-gateway
namespace: smg-test
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: smg-gateway
namespace: smg-test
rules:
- apiGroups: [""]
resources: ["pods"]
verbs: ["get", "list", "watch"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: smg-gateway
namespace: smg-test
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: smg-gateway
subjects:
- kind: ServiceAccount
name: smg-gateway
namespace: smg-test