clean up and add routes to paas site
This commit is contained in:
parent
7739f2e604
commit
9f5d1fb723
36 changed files with 222 additions and 10 deletions
|
|
@ -1,14 +1,10 @@
|
|||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
resources:
|
||||
# - vllm-l4.yaml
|
||||
- keda-a100.yaml
|
||||
- pvc.yaml
|
||||
- new-configmap.yaml
|
||||
# - deployment.yaml
|
||||
- service.yaml
|
||||
- openclaw-secrets.yaml
|
||||
- pg-cluster-openclaw.yaml
|
||||
#- a100-vllm.yaml
|
||||
#- pg-cluster-openclaw.yaml
|
||||
- xai-apikey.yaml
|
||||
- gateway-routes/route.yaml
|
||||
|
|
|
|||
19
clusters/devops-lab/infra-gatewayapi.yaml
Normal file
19
clusters/devops-lab/infra-gatewayapi.yaml
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
|
||||
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
||||
kind: Kustomization
|
||||
metadata:
|
||||
name: infrastructure-gatewayapi
|
||||
namespace: flux-system
|
||||
spec:
|
||||
interval: 1m0s
|
||||
retryInterval: 1m
|
||||
timeout: 5m
|
||||
sourceRef:
|
||||
kind: GitRepository
|
||||
name: flux-system
|
||||
path: ./infrastructure/gatewayapi
|
||||
prune: true
|
||||
decryption:
|
||||
provider: sops
|
||||
secretRef:
|
||||
name: sops-age
|
||||
19
clusters/devops-lab/infra-gpus.yaml
Normal file
19
clusters/devops-lab/infra-gpus.yaml
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
|
||||
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
||||
kind: Kustomization
|
||||
metadata:
|
||||
name: infrastructure-gpus
|
||||
namespace: flux-system
|
||||
spec:
|
||||
interval: 1m0s
|
||||
retryInterval: 1m
|
||||
timeout: 5m
|
||||
sourceRef:
|
||||
kind: GitRepository
|
||||
name: flux-system
|
||||
path: ./infrastructure/gpus/staging
|
||||
prune: true
|
||||
decryption:
|
||||
provider: sops
|
||||
secretRef:
|
||||
name: sops-age
|
||||
|
|
@ -6,13 +6,21 @@ metadata:
|
|||
spec:
|
||||
gatewayClassName: gke-l7-global-external-managed # Use gke-l7-global-external-http for external, or gke-l7-rilb for internal
|
||||
listeners:
|
||||
- name: https
|
||||
- name: n8n-https
|
||||
protocol: HTTPS
|
||||
port: 443
|
||||
tls:
|
||||
mode: Terminate
|
||||
options:
|
||||
networking.gke.io/pre-shared-certs: n8n-sirius-sec-com
|
||||
- name: siriusdevops-https
|
||||
hostname: siriusdevops.com
|
||||
protocol: HTTPS
|
||||
port: 443
|
||||
tls:
|
||||
mode: Terminate
|
||||
options:
|
||||
networking.gke.io/pre-shared-certs: siriusdevops-cert
|
||||
allowedRoutes:
|
||||
namespaces:
|
||||
from: "All"
|
||||
18
infrastructure/gatewayapi/gateway-routes/route.yaml
Normal file
18
infrastructure/gatewayapi/gateway-routes/route.yaml
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
apiVersion: gateway.networking.k8s.io/v1
|
||||
kind: HTTPRoute
|
||||
metadata:
|
||||
name: paas-landing
|
||||
namespace: customer1
|
||||
spec:
|
||||
parentRefs:
|
||||
- name: external-http-gateway
|
||||
kind: Gateway
|
||||
rules:
|
||||
- matches:
|
||||
- path:
|
||||
type: PathPrefix
|
||||
value: /paas
|
||||
backendRefs:
|
||||
- name: paas-landing-svc
|
||||
port: 80
|
||||
|
||||
6
infrastructure/gatewayapi/kustomization.yaml
Normal file
6
infrastructure/gatewayapi/kustomization.yaml
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
resources:
|
||||
- apigateway.yaml
|
||||
- gateway-routes/
|
||||
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
resources:
|
||||
- keda-vllm.yaml
|
||||
|
||||
6
infrastructure/gpus/base/vllm-servers/kustomization.yaml
Normal file
6
infrastructure/gpus/base/vllm-servers/kustomization.yaml
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
resources:
|
||||
#- a100-vllm.yaml
|
||||
- rtx600-vllm.yaml
|
||||
#- vllm-l4.yaml
|
||||
129
infrastructure/gpus/base/vllm-servers/rtx6000-vllm.yaml
Normal file
129
infrastructure/gpus/base/vllm-servers/rtx6000-vllm.yaml
Normal file
|
|
@ -0,0 +1,129 @@
|
|||
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: openclaw-brain-vllm
|
||||
namespace: customer1
|
||||
labels:
|
||||
app: openclaw-brain
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: openclaw-brain
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: openclaw-brain
|
||||
spec:
|
||||
nodeSelector:
|
||||
cloud.google.com/gke-accelerator: "nvidia-a100-80gb"
|
||||
tolerations:
|
||||
- key: "nvidia.com/gpu-nvidia-rtx-pro-6000"
|
||||
operator: "Equal"
|
||||
value: "present"
|
||||
effect: "NoSchedule"
|
||||
containers:
|
||||
- name: vllm-brain
|
||||
image: vllm/vllm-openai:latest
|
||||
command: ["python3", "-m", "vllm.entrypoints.openai.api_server"]
|
||||
env:
|
||||
- name: HF_TOKEN
|
||||
value: ""
|
||||
- name: TOKENIZER_MODE
|
||||
value: "hf"
|
||||
args:
|
||||
- --model=Youssofal/Qwen3.6-27B-Abliterated-Heretic-Uncensored-BF16
|
||||
- --host=0.0.0.0
|
||||
- --port=8000
|
||||
- --tensor-parallel-size=1
|
||||
- --tokenizer-mode=hf
|
||||
- --gpu-memory-utilization=0.95
|
||||
- --kv-cache-dtype=fp8
|
||||
- --max-model-len=131072
|
||||
- --enable-auto-tool-choice
|
||||
- --enable-chunked-prefill
|
||||
- --max-num-batched-tokens=8192
|
||||
- --max-num-seqs=4
|
||||
- --trust-remote-code
|
||||
- --dtype=auto
|
||||
- --enable-prefix-caching
|
||||
- --tool-call-parser=qwen3_xml
|
||||
- --reasoning-parser=qwen3
|
||||
- --disable-custom-all-reduce
|
||||
ports:
|
||||
- containerPort: 8000
|
||||
resources:
|
||||
limits:
|
||||
nvidia.com/gpu: 1
|
||||
memory: "100Gi"
|
||||
cpu: "16"
|
||||
requests:
|
||||
nvidia.com/gpu: 1
|
||||
memory: "80Gi"
|
||||
cpu: "8"
|
||||
|
||||
startupProbe:
|
||||
httpGet:
|
||||
path: /health
|
||||
port: 8000
|
||||
initialDelaySeconds: 30
|
||||
periodSeconds: 10
|
||||
timeoutSeconds: 10
|
||||
failureThreshold: 60
|
||||
successThreshold: 1
|
||||
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
path: /health
|
||||
port: 8000
|
||||
initialDelaySeconds: 180
|
||||
periodSeconds: 15
|
||||
failureThreshold: 5
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 10
|
||||
|
||||
|
||||
readinessProbe:
|
||||
httpGet:
|
||||
path: /v1/models
|
||||
port: 8000
|
||||
initialDelaySeconds: 120
|
||||
periodSeconds: 10
|
||||
timeoutSeconds: 15
|
||||
failureThreshold: 8
|
||||
successThreshold: 1
|
||||
|
||||
volumeMounts:
|
||||
- name: model-cache
|
||||
mountPath: /root/.cache/huggingface
|
||||
volumes:
|
||||
- name: model-cache
|
||||
persistentVolumeClaim:
|
||||
claimName: vllm-model-qwen3.6-27b-uncensored
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: vllm-model-qwen3.6-27b-uncensored
|
||||
namespace: customer1
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 100Gi
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: openclaw-brain-service
|
||||
namespace: customer1
|
||||
spec:
|
||||
selector:
|
||||
app: openclaw-brain
|
||||
ports:
|
||||
- protocol: TCP
|
||||
port: 8000
|
||||
targetPort: 8000
|
||||
type: ClusterIP
|
||||
5
infrastructure/gpus/staging/kustomization.yaml
Normal file
5
infrastructure/gpus/staging/kustomization.yaml
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
resources:
|
||||
- ../base/vllm-servers/
|
||||
- ../base/keda-gpu-scaling/
|
||||
|
|
@ -28,7 +28,7 @@ resource "google_container_node_pool" "pro6000_pool" {
|
|||
}
|
||||
|
||||
# SPOT is the modern equivalent of Preemptible
|
||||
spot = false
|
||||
spot = true
|
||||
|
||||
# Specific labels to help the Autoscaler find this pool
|
||||
labels = {
|
||||
|
|
@ -13,7 +13,7 @@ Instead of running an expensive A100 GPU 24/7 for all requests, we split the cog
|
|||
|
||||
## Tier 2: The Deep Thinker (A100 GPU)
|
||||
- **Hardware:** 1x NVIDIA A100 (80GB VRAM)
|
||||
- **Model:** `coder3101/Qwen3.5-27B-heretic`
|
||||
- **Model:** `Qwen3.6-27B-heretic`
|
||||
- **Status:** Scaled to zero by default.
|
||||
- **Role:** Activated only for massive context tasks, deep research, and complex multi-file architectural reasoning.
|
||||
|
||||
Loading…
Add table
Reference in a new issue