From 9f5d1fb723b9d37c34611c20481bcfe95b6bf929 Mon Sep 17 00:00:00 2001 From: sirius0xdev Date: Tue, 28 Apr 2026 03:31:52 +0000 Subject: [PATCH] clean up and add routes to paas site --- .../customer1/{ => db}/backup-cronjob.yaml | 0 .../{ => db}/customer1-db-credentials.yaml | 0 .../{ => db}/pg-cluster-customer1.yaml | 0 apps/base/customer1/{ => db}/storage.yaml | 0 apps/base/customer1/{ => n8n}/configmap.yaml | 0 .../{ => n8n}/customer1-n8n-secret.yaml | 0 apps/base/customer1/{ => n8n}/deployment.yaml | 0 .../base/customer1/{ => n8n}/healthcheck.yaml | 0 .../customer1/{ => n8n}/kustomization.yaml | 0 .../base/customer1/n8n/n8n-secret.yaml | 0 .../customer1/openclaw/kustomization.yaml | 6 +- .../customer1/paaas-landing/deployment.yaml | 2 +- clusters/devops-lab/infra-gatewayapi.yaml | 19 +++ clusters/devops-lab/infra-gpus.yaml | 19 +++ .../gatewayapi}/apigateway.yaml | 12 +- .../gateway-routes/kustomization.yaml | 0 .../gatewayapi/gateway-routes/route.yaml | 18 +++ infrastructure/gatewayapi/kustomization.yaml | 6 + .../base/keda-gpu-scaling}/keda-a100.yaml | 0 .../base/keda-gpu-scaling}/keda-vllm.yaml | 0 .../base/keda-gpu-scaling/kustomization.yaml | 6 + .../gpus/base/vllm-servers}/a100-vllm.yaml | 0 .../gpus/base/vllm-servers/kustomization.yaml | 6 + .../gpus/base/vllm-servers/rtx6000-vllm.yaml | 129 ++++++++++++++++++ .../gpus/base/vllm-servers}/vllm-gemma.yaml | 0 .../gpus/base/vllm-servers}/vllm-l4.yaml | 0 .../gpus/staging/kustomization.yaml | 5 + .../pro6000-nodepool.tf | 2 +- .../2026-04-25-openclaw-brain-v1.1.md | 0 {docs => plans}/AI_ARCHITECTURE.md | 2 +- models-to-try.md => plans/models-to-try.md | 0 ROADMAP.md => trading-scripts/ROADMAP.md | 0 .../__pycache__/monitor.cpython-313.pyc | Bin .../orb-monitor}/config.yaml | 0 .../orb-monitor}/monitor.py | 0 .../orb-monitor}/orb_signals.log | 0 36 files changed, 222 insertions(+), 10 deletions(-) rename apps/base/customer1/{ => db}/backup-cronjob.yaml (100%) rename apps/base/customer1/{ => db}/customer1-db-credentials.yaml (100%) rename apps/base/customer1/{ => db}/pg-cluster-customer1.yaml (100%) rename apps/base/customer1/{ => db}/storage.yaml (100%) rename apps/base/customer1/{ => n8n}/configmap.yaml (100%) rename apps/base/customer1/{ => n8n}/customer1-n8n-secret.yaml (100%) rename apps/base/customer1/{ => n8n}/deployment.yaml (100%) rename apps/base/customer1/{ => n8n}/healthcheck.yaml (100%) rename apps/base/customer1/{ => n8n}/kustomization.yaml (100%) rename n8n-secret.yaml => apps/base/customer1/n8n/n8n-secret.yaml (100%) create mode 100644 clusters/devops-lab/infra-gatewayapi.yaml create mode 100644 clusters/devops-lab/infra-gpus.yaml rename {apps/base/customer1 => infrastructure/gatewayapi}/apigateway.yaml (58%) create mode 100644 infrastructure/gatewayapi/gateway-routes/kustomization.yaml create mode 100644 infrastructure/gatewayapi/gateway-routes/route.yaml create mode 100644 infrastructure/gatewayapi/kustomization.yaml rename {apps/base/customer1/openclaw => infrastructure/gpus/base/keda-gpu-scaling}/keda-a100.yaml (100%) rename {apps/base/customer1/openclaw => infrastructure/gpus/base/keda-gpu-scaling}/keda-vllm.yaml (100%) create mode 100644 infrastructure/gpus/base/keda-gpu-scaling/kustomization.yaml rename {apps/base/customer1/openclaw => infrastructure/gpus/base/vllm-servers}/a100-vllm.yaml (100%) create mode 100644 infrastructure/gpus/base/vllm-servers/kustomization.yaml create mode 100644 infrastructure/gpus/base/vllm-servers/rtx6000-vllm.yaml rename {apps/base/customer1/openclaw => infrastructure/gpus/base/vllm-servers}/vllm-gemma.yaml (100%) rename {apps/base/customer1/openclaw => infrastructure/gpus/base/vllm-servers}/vllm-l4.yaml (100%) create mode 100644 infrastructure/gpus/staging/kustomization.yaml rename pro6000-nodepool.tf => modules/pro6000-nodepool.tf (98%) rename {docs/plans => plans}/2026-04-25-openclaw-brain-v1.1.md (100%) rename {docs => plans}/AI_ARCHITECTURE.md (97%) rename models-to-try.md => plans/models-to-try.md (100%) rename ROADMAP.md => trading-scripts/ROADMAP.md (100%) rename {orb-monitor => trading-scripts/orb-monitor}/__pycache__/monitor.cpython-313.pyc (100%) rename {orb-monitor => trading-scripts/orb-monitor}/config.yaml (100%) rename {orb-monitor => trading-scripts/orb-monitor}/monitor.py (100%) rename {orb-monitor => trading-scripts/orb-monitor}/orb_signals.log (100%) diff --git a/apps/base/customer1/backup-cronjob.yaml b/apps/base/customer1/db/backup-cronjob.yaml similarity index 100% rename from apps/base/customer1/backup-cronjob.yaml rename to apps/base/customer1/db/backup-cronjob.yaml diff --git a/apps/base/customer1/customer1-db-credentials.yaml b/apps/base/customer1/db/customer1-db-credentials.yaml similarity index 100% rename from apps/base/customer1/customer1-db-credentials.yaml rename to apps/base/customer1/db/customer1-db-credentials.yaml diff --git a/apps/base/customer1/pg-cluster-customer1.yaml b/apps/base/customer1/db/pg-cluster-customer1.yaml similarity index 100% rename from apps/base/customer1/pg-cluster-customer1.yaml rename to apps/base/customer1/db/pg-cluster-customer1.yaml diff --git a/apps/base/customer1/storage.yaml b/apps/base/customer1/db/storage.yaml similarity index 100% rename from apps/base/customer1/storage.yaml rename to apps/base/customer1/db/storage.yaml diff --git a/apps/base/customer1/configmap.yaml b/apps/base/customer1/n8n/configmap.yaml similarity index 100% rename from apps/base/customer1/configmap.yaml rename to apps/base/customer1/n8n/configmap.yaml diff --git a/apps/base/customer1/customer1-n8n-secret.yaml b/apps/base/customer1/n8n/customer1-n8n-secret.yaml similarity index 100% rename from apps/base/customer1/customer1-n8n-secret.yaml rename to apps/base/customer1/n8n/customer1-n8n-secret.yaml diff --git a/apps/base/customer1/deployment.yaml b/apps/base/customer1/n8n/deployment.yaml similarity index 100% rename from apps/base/customer1/deployment.yaml rename to apps/base/customer1/n8n/deployment.yaml diff --git a/apps/base/customer1/healthcheck.yaml b/apps/base/customer1/n8n/healthcheck.yaml similarity index 100% rename from apps/base/customer1/healthcheck.yaml rename to apps/base/customer1/n8n/healthcheck.yaml diff --git a/apps/base/customer1/kustomization.yaml b/apps/base/customer1/n8n/kustomization.yaml similarity index 100% rename from apps/base/customer1/kustomization.yaml rename to apps/base/customer1/n8n/kustomization.yaml diff --git a/n8n-secret.yaml b/apps/base/customer1/n8n/n8n-secret.yaml similarity index 100% rename from n8n-secret.yaml rename to apps/base/customer1/n8n/n8n-secret.yaml diff --git a/apps/base/customer1/openclaw/kustomization.yaml b/apps/base/customer1/openclaw/kustomization.yaml index 5f22739..f2299bc 100644 --- a/apps/base/customer1/openclaw/kustomization.yaml +++ b/apps/base/customer1/openclaw/kustomization.yaml @@ -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 diff --git a/apps/base/customer1/paaas-landing/deployment.yaml b/apps/base/customer1/paaas-landing/deployment.yaml index 273d527..6352951 100644 --- a/apps/base/customer1/paaas-landing/deployment.yaml +++ b/apps/base/customer1/paaas-landing/deployment.yaml @@ -39,4 +39,4 @@ spec: - protocol: TCP port: 80 targetPort: 80 - type: ClusterIP \ No newline at end of file + type: ClusterIP diff --git a/clusters/devops-lab/infra-gatewayapi.yaml b/clusters/devops-lab/infra-gatewayapi.yaml new file mode 100644 index 0000000..397b917 --- /dev/null +++ b/clusters/devops-lab/infra-gatewayapi.yaml @@ -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 diff --git a/clusters/devops-lab/infra-gpus.yaml b/clusters/devops-lab/infra-gpus.yaml new file mode 100644 index 0000000..90702d8 --- /dev/null +++ b/clusters/devops-lab/infra-gpus.yaml @@ -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 diff --git a/apps/base/customer1/apigateway.yaml b/infrastructure/gatewayapi/apigateway.yaml similarity index 58% rename from apps/base/customer1/apigateway.yaml rename to infrastructure/gatewayapi/apigateway.yaml index a798bae..3cc680b 100644 --- a/apps/base/customer1/apigateway.yaml +++ b/infrastructure/gatewayapi/apigateway.yaml @@ -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 + 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" diff --git a/infrastructure/gatewayapi/gateway-routes/kustomization.yaml b/infrastructure/gatewayapi/gateway-routes/kustomization.yaml new file mode 100644 index 0000000..e69de29 diff --git a/infrastructure/gatewayapi/gateway-routes/route.yaml b/infrastructure/gatewayapi/gateway-routes/route.yaml new file mode 100644 index 0000000..0a6f4ff --- /dev/null +++ b/infrastructure/gatewayapi/gateway-routes/route.yaml @@ -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 + diff --git a/infrastructure/gatewayapi/kustomization.yaml b/infrastructure/gatewayapi/kustomization.yaml new file mode 100644 index 0000000..7a84ebd --- /dev/null +++ b/infrastructure/gatewayapi/kustomization.yaml @@ -0,0 +1,6 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - apigateway.yaml + - gateway-routes/ + diff --git a/apps/base/customer1/openclaw/keda-a100.yaml b/infrastructure/gpus/base/keda-gpu-scaling/keda-a100.yaml similarity index 100% rename from apps/base/customer1/openclaw/keda-a100.yaml rename to infrastructure/gpus/base/keda-gpu-scaling/keda-a100.yaml diff --git a/apps/base/customer1/openclaw/keda-vllm.yaml b/infrastructure/gpus/base/keda-gpu-scaling/keda-vllm.yaml similarity index 100% rename from apps/base/customer1/openclaw/keda-vllm.yaml rename to infrastructure/gpus/base/keda-gpu-scaling/keda-vllm.yaml diff --git a/infrastructure/gpus/base/keda-gpu-scaling/kustomization.yaml b/infrastructure/gpus/base/keda-gpu-scaling/kustomization.yaml new file mode 100644 index 0000000..b1a2fcc --- /dev/null +++ b/infrastructure/gpus/base/keda-gpu-scaling/kustomization.yaml @@ -0,0 +1,6 @@ + +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - keda-vllm.yaml + diff --git a/apps/base/customer1/openclaw/a100-vllm.yaml b/infrastructure/gpus/base/vllm-servers/a100-vllm.yaml similarity index 100% rename from apps/base/customer1/openclaw/a100-vllm.yaml rename to infrastructure/gpus/base/vllm-servers/a100-vllm.yaml diff --git a/infrastructure/gpus/base/vllm-servers/kustomization.yaml b/infrastructure/gpus/base/vllm-servers/kustomization.yaml new file mode 100644 index 0000000..f3a1b53 --- /dev/null +++ b/infrastructure/gpus/base/vllm-servers/kustomization.yaml @@ -0,0 +1,6 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + #- a100-vllm.yaml + - rtx600-vllm.yaml + #- vllm-l4.yaml diff --git a/infrastructure/gpus/base/vllm-servers/rtx6000-vllm.yaml b/infrastructure/gpus/base/vllm-servers/rtx6000-vllm.yaml new file mode 100644 index 0000000..dfc69ba --- /dev/null +++ b/infrastructure/gpus/base/vllm-servers/rtx6000-vllm.yaml @@ -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 diff --git a/apps/base/customer1/openclaw/vllm-gemma.yaml b/infrastructure/gpus/base/vllm-servers/vllm-gemma.yaml similarity index 100% rename from apps/base/customer1/openclaw/vllm-gemma.yaml rename to infrastructure/gpus/base/vllm-servers/vllm-gemma.yaml diff --git a/apps/base/customer1/openclaw/vllm-l4.yaml b/infrastructure/gpus/base/vllm-servers/vllm-l4.yaml similarity index 100% rename from apps/base/customer1/openclaw/vllm-l4.yaml rename to infrastructure/gpus/base/vllm-servers/vllm-l4.yaml diff --git a/infrastructure/gpus/staging/kustomization.yaml b/infrastructure/gpus/staging/kustomization.yaml new file mode 100644 index 0000000..db81c3c --- /dev/null +++ b/infrastructure/gpus/staging/kustomization.yaml @@ -0,0 +1,5 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - ../base/vllm-servers/ + - ../base/keda-gpu-scaling/ diff --git a/pro6000-nodepool.tf b/modules/pro6000-nodepool.tf similarity index 98% rename from pro6000-nodepool.tf rename to modules/pro6000-nodepool.tf index 077ab44..5a044f2 100644 --- a/pro6000-nodepool.tf +++ b/modules/pro6000-nodepool.tf @@ -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 = { diff --git a/docs/plans/2026-04-25-openclaw-brain-v1.1.md b/plans/2026-04-25-openclaw-brain-v1.1.md similarity index 100% rename from docs/plans/2026-04-25-openclaw-brain-v1.1.md rename to plans/2026-04-25-openclaw-brain-v1.1.md diff --git a/docs/AI_ARCHITECTURE.md b/plans/AI_ARCHITECTURE.md similarity index 97% rename from docs/AI_ARCHITECTURE.md rename to plans/AI_ARCHITECTURE.md index 1778b37..e251304 100644 --- a/docs/AI_ARCHITECTURE.md +++ b/plans/AI_ARCHITECTURE.md @@ -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. diff --git a/models-to-try.md b/plans/models-to-try.md similarity index 100% rename from models-to-try.md rename to plans/models-to-try.md diff --git a/ROADMAP.md b/trading-scripts/ROADMAP.md similarity index 100% rename from ROADMAP.md rename to trading-scripts/ROADMAP.md diff --git a/orb-monitor/__pycache__/monitor.cpython-313.pyc b/trading-scripts/orb-monitor/__pycache__/monitor.cpython-313.pyc similarity index 100% rename from orb-monitor/__pycache__/monitor.cpython-313.pyc rename to trading-scripts/orb-monitor/__pycache__/monitor.cpython-313.pyc diff --git a/orb-monitor/config.yaml b/trading-scripts/orb-monitor/config.yaml similarity index 100% rename from orb-monitor/config.yaml rename to trading-scripts/orb-monitor/config.yaml diff --git a/orb-monitor/monitor.py b/trading-scripts/orb-monitor/monitor.py similarity index 100% rename from orb-monitor/monitor.py rename to trading-scripts/orb-monitor/monitor.py diff --git a/orb-monitor/orb_signals.log b/trading-scripts/orb-monitor/orb_signals.log similarity index 100% rename from orb-monitor/orb_signals.log rename to trading-scripts/orb-monitor/orb_signals.log