From ceba02bd8343ece021dd9c059e438f3383a481c8 Mon Sep 17 00:00:00 2001 From: Manny Henri Date: Thu, 20 Aug 2026 12:52:27 -0400 Subject: [PATCH] Remove the Gridlight AI Platform community packs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Withdrawing gridlight-1.1.2 and gridlight-1.1.3 at the maintainer's request. Gridlight is no longer distributing through pack-central, so leaving the packs listed would point Palette users at a pack we are not maintaining here. Both were contributed by us (#229, #247). Nothing else in the repository references them. The images the packs pull from our public ECR are being retired on the same schedule, so an install from these packs would not succeed for much longer in any case — removing the listing is the honest outcome rather than leaving one that fails at pull time. --- packs/gridlight-1.1.2/README.md | 194 ----- .../charts/gridlight-palette-1.1.2.tgz | Bin 81524 -> 0 bytes packs/gridlight-1.1.2/logo.png | Bin 48814 -> 0 bytes packs/gridlight-1.1.2/pack.json | 17 - packs/gridlight-1.1.2/schema.yaml | 25 - packs/gridlight-1.1.2/values.yaml | 607 --------------- packs/gridlight-1.1.3/README.md | 308 -------- .../charts/gridlight-palette-1.1.3.tgz | Bin 93313 -> 0 bytes packs/gridlight-1.1.3/logo.png | Bin 48814 -> 0 bytes packs/gridlight-1.1.3/pack.json | 18 - packs/gridlight-1.1.3/schema.yaml | 25 - packs/gridlight-1.1.3/values.yaml | 718 ------------------ 12 files changed, 1912 deletions(-) delete mode 100644 packs/gridlight-1.1.2/README.md delete mode 100644 packs/gridlight-1.1.2/charts/gridlight-palette-1.1.2.tgz delete mode 100644 packs/gridlight-1.1.2/logo.png delete mode 100644 packs/gridlight-1.1.2/pack.json delete mode 100644 packs/gridlight-1.1.2/schema.yaml delete mode 100644 packs/gridlight-1.1.2/values.yaml delete mode 100644 packs/gridlight-1.1.3/README.md delete mode 100644 packs/gridlight-1.1.3/charts/gridlight-palette-1.1.3.tgz delete mode 100644 packs/gridlight-1.1.3/logo.png delete mode 100644 packs/gridlight-1.1.3/pack.json delete mode 100644 packs/gridlight-1.1.3/schema.yaml delete mode 100644 packs/gridlight-1.1.3/values.yaml diff --git a/packs/gridlight-1.1.2/README.md b/packs/gridlight-1.1.2/README.md deleted file mode 100644 index 0579cd02..00000000 --- a/packs/gridlight-1.1.2/README.md +++ /dev/null @@ -1,194 +0,0 @@ -# Gridlight AI Platform - -Gridlight is an on-premises AI platform that runs entirely inside your cluster — no -data leaves it. A single **gateway** (Rust/Axum, port 8080) is the only endpoint your -applications talk to; it orchestrates **agents** that self-register with it: LLM -inference and embeddings, plus optional specialists for image generation -(diffusers/SDXL), text-to-speech (Piper), and speech-to-text (faster-whisper). It -serves retrieval-augmented generation (RAG) over your own documents using a bundled -PostgreSQL, Qdrant vector store, and Neo4j knowledge graph. Deployed as a Palette -add-on, it gives you private chat, document Q&A, image, and voice from one URL. - -## Prerequisites - -- A **Gridlight license ID** (UUID) — obtain from . -- Kubernetes **>= 1.26** with a default **StorageClass** that provisions - `ReadWriteOnce` volumes (e.g. AWS EBS `gp3`). -- At least one **GPU node** with the **NVIDIA device plugin** for LLM and image - inference. On a single-GPU node, enable NVIDIA **GPU time-slicing** if you want the - LLM and image agents to share it; otherwise put them on separate GPU nodes (the - image agent's output is served back through the gateway, so it does not need to - share a node with the gateway). -- Outbound egress to HuggingFace for first-use model downloads (or pre-stage models on - the data volume for air-gapped installs). Container images come from the public - registry `public.ecr.aws/q1c5c5i2/gridlight` — no pull credentials required. - -## Parameters - -Set under `charts.gridlight-palette.*` in the pack values. Minimum to deploy: - -| Name | Description | Type | Default | Required | -| --- | --- | --- | --- | --- | -| `auth.licenseId` | Gridlight license UUID | String | - | Yes | -| `auth.postgresPassword` | PostgreSQL password | String | - | Yes | -| `auth.neo4jPassword` | Neo4j password | String | - | Yes | -| `auth.gatewayToken` | Bearer token clients send (change from `dev-token`) | String | `dev-token` | No | -| `models.llm.preset` | LLM model: `qwen-7b`, `mistral-7b`, `qwen-32b`, `mixtral-8x7b`, … | String | `qwen-7b` | No | -| `models.image.preset` | Image model: `juggernautxl`, `cogview3-plus`, `auraflow`, `cogview4` | String | `juggernautxl` | No | -| `models.video.preset` | Video model: `wan-2.1` (14B, **default** — needs ~48GB GPU / L40S/A100; runs on 16–24GB via CPU offload), `wan-2.2`, `cogvideox-5b`, `ltx-video`, `wan-2.1-1.3b` (fits 8–24GB), `auto` | String | `wan-2.1` | No | -| `gateway.service.type` | `ClusterIP` / `LoadBalancer` / `NodePort` | String | `ClusterIP` | No | -| `pvc.size` | Shared volume for models + data (raise for large LLMs) | String | `100Gi` | No | -| `imageAgent.deploy`, `sttAgent.deploy`, `voiceAgent.deploy`, `videoAgent.deploy` | Toggle each specialist agent on/off | Bool | `true` (video: `false`) | No | - -Every component (`llmAgent`, `embedAgent`, each specialist, `postgres`, `qdrant`, -`neo4j`) has a `deploy` flag, so you can run any subset — e.g. gateway + LLM + image -only. See `values.yaml` for the full reference. - -## Usage - -### 1. Add the pack to a cluster profile - -Create an [add-on cluster profile](https://docs.spectrocloud.com/profiles/cluster-profiles/create-cluster-profiles/create-addon-profile/), -search for the **Gridlight AI Platform** pack, and overwrite the default configuration -with your values. Minimal example: - -```yaml -charts: - gridlight-palette: - auth: - licenseId: "00000000-0000-0000-0000-000000000000" # your license UUID - postgresPassword: "" - neo4jPassword: "" - gatewayToken: "" # change from dev-token - models: - llm: - preset: "qwen-7b" - image: - preset: "juggernautxl" - gateway: - service: - type: LoadBalancer # expose the gateway; ClusterIP for in-cluster only - pvc: - size: "150Gi" -``` - -To run only a subset of capabilities, set the per-agent toggles, e.g. image off: - -```yaml -charts: - gridlight-palette: - imageAgent: - deploy: false -``` - -Deploy the profile to your cluster. The agents self-register with the gateway and -download their models on first use (the image agent preloads its model at startup). - -### 2. Use the platform - -Everything goes through the **gateway** with `Authorization: Bearer `. -Get the gateway address from the `gridlight-...-gateway` Service (the external -hostname when `gateway.service.type: LoadBalancer`). - -```bash -GW="http://:8080" -TOKEN="" - -# Chat / RAG answer -curl -s "$GW/neon" -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \ - -d '{"question": "Summarize our onboarding policy"}' - -# Ingest a document, then ask about it via /neon -curl -s "$GW/upload-structured" -H "Authorization: Bearer $TOKEN" -F file=@handbook.pdf - -# Generate an image (no model field uses models.image.preset) -curl -s "$GW/image" -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \ - -d '{"prompt": "a red fox in a snowy forest, photorealistic"}' - -# Text-to-speech (returns WAV audio inline as base64) -curl -s "$GW/voice" -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \ - -d '{"text": "Hello from Gridlight", "voice": "en_US-amy-medium"}' -``` - -The `image_url` returned by `/image` is served back **through the gateway**, so it -works even when the image agent runs on a different node — no shared filesystem or -external object store is required. - -> [!CAUTION] -> Image generation is a long synchronous request (a cold model load + generation can -> take 60–90s). When exposing the gateway via a cloud load balancer, the pack sets a -> 600s idle timeout (`gateway.service.idleTimeoutSeconds`); keep it high enough that -> the LB does not cut generation requests. - -> [!CAUTION] -> The specialist Python agents run as non-root and write to the shared data volume; -> the pack sets an `fsGroup` so they can. If you override pod security contexts, retain -> a group that can write the volume. - -### Video generation (optional, GPU-heavy) - -Video is **off by default** (`videoAgent.deploy: false`) and needs its own GPU. The -default model is the production-quality 14B — set expectations before enabling it: - -| `models.video.preset` | Fits | Warm gen (5 s @ 480p) | Quality | Download | -|-----------------------|------|-----------------------|---------|----------| -| `wan-2.1-1.3b` | 8–24 GB | ~1–2 min | Low (warps on motion) | ~17 GB | -| `ltx-video` | 12–24 GB | ~30–60 s | Decent, fast | ~20 GB | -| `cogvideox-5b` | 16 GB+ (offload) | ~3–5 min | Good | ~22 GB | -| `wan-2.1` (14B, **default**) | **48 GB** ideal / 16–24 GB offload | ~3–5 min @ 48 GB · **~30 min** with offload | High | ~40–76 GB | -| `wan-2.2` (A14B) | 48 GB+ | ~5–8 min | Highest | ~55 GB | - -- **First generation is a cold start:** model download (17–76 GB) + GPU load (14B ≈ 8 min). - Pre-stage the model on the PVC to skip it. Warm generations only pay the time above. -- **Single-concurrency:** one clip at a time; concurrent requests get `429`. A client - disconnect does NOT cancel the in-flight job. -- **On a ≥48 GB GPU set `videoAgent.offloadMode: none`** — the default `model` swaps weights - and is ~6× slower; use `model` only on 16–24 GB GPUs. - -```yaml -charts: - gridlight-palette: - models: - video: - preset: "wan-2.1" # quality tier (see table) - defaultQuality: "720p" # default res/fps: proxy|draft|preview|720p|1080p|2k|4k - videoAgent: - deploy: true - offloadMode: "none" # auto | none | model | sequential - replicas: 1 # >1 for parallel gen — also set pvc.enabled=false -``` - -Clients can override per request with `quality_preset` or explicit -`width`/`height`/`fps`/`duration_seconds`/`steps`. - -## Upgrade - -- Initial community release (1.1.2). Keep the pack **name** and **display name** across - future versions so they upgrade in place rather than appearing as a new pack. -- Retain the shared data volume across upgrades so models are not re-downloaded. -- `videoAgent` is **experimental** and `deploy: false` by default; do not rely on it in - production in this release. - -## Security / CVE posture - -All six container images are built on the latest Debian `bookworm` base with security -updates applied at build time (`apt-get upgrade`), which clears every base-OS CVE that -has a released fix. - -The CVEs that remain are predominantly **upstream Debian packages with no available -fix** (marked `will_not_fix` or `affected`/awaiting-patch by Debian) and are present in -essentially every Debian-based image — for example `CVE-2023-45853` (zlib1g, -`will_not_fix`), `CVE-2025-7458` (libsqlite3-0), `CVE-2026-42496` / `CVE-2026-8376` -(perl-base), and `CVE-2019-1010022` (glibc, disputed by Debian/not rated critical). They -are accepted and tracked pending upstream fixes. The image- and video-generation agents -carry a larger dependency surface (PyTorch/CUDA/diffusers), which is inherent to ML -workloads. The speech-to-text and video agents install ffmpeg with -`--no-install-recommends` to exclude the Mesa GL/VA/Vulkan hardware-decode drivers -(unused for headless audio decoding / CUDA generation), removing their `will_not_fix` -CVEs. - -## References - -- Gridlight: -- Gridlight license server: -- Create an add-on cluster profile: diff --git a/packs/gridlight-1.1.2/charts/gridlight-palette-1.1.2.tgz b/packs/gridlight-1.1.2/charts/gridlight-palette-1.1.2.tgz deleted file mode 100644 index 0d8769812cc1ffc7bb01342b8ce7761affe93ea1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 81524 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 I4ggvM01y~9VgLXD diff --git a/packs/gridlight-1.1.2/logo.png b/packs/gridlight-1.1.2/logo.png deleted file mode 100644 index 2631ae9f8eb3d4030f4d26e78e013c965957bb7d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 48814 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ⅅX4kT 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 V{aOL}0-#+%@8wivE2T|-{68_OPX+)0 diff --git a/packs/gridlight-1.1.2/pack.json b/packs/gridlight-1.1.2/pack.json deleted file mode 100644 index 7783364d..00000000 --- a/packs/gridlight-1.1.2/pack.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "addonType": "app-services", - "annotations": { - "source": "community", - "contributor": "Gridlight" - }, - "cloudTypes": ["all"], - "displayName": "Gridlight AI Platform", - "eol": "", - "group": "", - "kubeManifests": [], - "kubeVersion": ">=1.26.0-0", - "layer": "addon", - "name": "gridlight", - "version": "1.1.2", - "charts": ["charts/gridlight-palette-1.1.2.tgz"] -} diff --git a/packs/gridlight-1.1.2/schema.yaml b/packs/gridlight-1.1.2/schema.yaml deleted file mode 100644 index 575d6d98..00000000 --- a/packs/gridlight-1.1.2/schema.yaml +++ /dev/null @@ -1,25 +0,0 @@ -# Spectrocloud Palette schema — controls UI rendering of sensitive fields. -# Fields listed here are rendered as masked password inputs in the Palette UI. -# Keys are charts..; the chart name is gridlight-palette -# (Chart.yaml name), which is also the key these values live under in values.yaml. - -charts.gridlight-palette.auth.postgresPassword: - schema: '{{ format "${password}" | hints "PostgreSQL password for the gridlight user" }}' - -charts.gridlight-palette.auth.neo4jPassword: - schema: '{{ format "${password}" | hints "Neo4j password for the neo4j user" }}' - -charts.gridlight-palette.auth.gatewayToken: - schema: '{{ format "${password}" | hints "Bearer token clients send in Authorization header. Change from dev-token before production." }}' - -charts.gridlight-palette.auth.agentToken: - schema: '{{ format "${password}" | hints "Token agents use to self-register with the gateway. Change from dev-token before production." }}' - -charts.gridlight-palette.auth.licenseId: - schema: '{{ format "${input}" | hints "Gridlight license UUID from https://license.gridlight.ai" }}' - -charts.gridlight-palette.auth.signingSecret: - schema: '{{ format "${password}" | hints "Auto-acquired at startup. Only set when migrating a pre-existing deployment that already has a signing secret." }}' - -charts.gridlight-palette.auth.huggingFaceToken: - schema: '{{ format "${password}" | hints "HuggingFace read token for gated models. Leave blank if using only open models." }}' diff --git a/packs/gridlight-1.1.2/values.yaml b/packs/gridlight-1.1.2/values.yaml deleted file mode 100644 index 4bd785e0..00000000 --- a/packs/gridlight-1.1.2/values.yaml +++ /dev/null @@ -1,607 +0,0 @@ -# GRIDLIGHT Helm Chart — Default Values -# All values can be overridden at install time via --set or --values. -# Required fields (no default): auth.postgresPassword, auth.neo4jPassword. - -# --------------------------------------------------------------------------- -# Pack metadata — consumed by Spectrocloud Palette, not by the Helm chart itself. -# Images here must be publicly pullable (pack-central crane pull CI check). -# Points to AWS Public ECR; production deployments use global.imageRegistry below. -# --------------------------------------------------------------------------- -pack: - namespace: "gridlight" - content: - images: - - image: "public.ecr.aws/q1c5c5i2/gridlight/gateway:1.1.2" - - image: "public.ecr.aws/q1c5c5i2/gridlight/agent:1.1.2" - - image: "public.ecr.aws/q1c5c5i2/gridlight/agent-stt:1.1.2" - - image: "public.ecr.aws/q1c5c5i2/gridlight/agent-image:1.1.2" - - image: "public.ecr.aws/q1c5c5i2/gridlight/agent-voice:1.1.2" - - image: "public.ecr.aws/q1c5c5i2/gridlight/agent-video:1.1.2" - -# --------------------------------------------------------------------------- -# Chart values — passed to the gridlight-palette Helm chart by Palette. -# --------------------------------------------------------------------------- -charts: - gridlight-palette: - - # --------------------------------------------------------------------------- - # Global - # --------------------------------------------------------------------------- - global: - imageRegistry: "public.ecr.aws/q1c5c5i2/gridlight" - imageTag: "1.1.2" - imagePullPolicy: IfNotPresent - imagePullSecrets: [] - - # --------------------------------------------------------------------------- - # Authentication & Secrets - # --------------------------------------------------------------------------- - auth: - # REQUIRED — no default. Provide via --set or a sealed secret. - postgresPassword: "" - neo4jPassword: "" - # Gateway API token — all client requests must include: - # Authorization: Bearer - # IMPORTANT: change this from the default before deploying to production. - gatewayToken: "dev-token" - # Shared token used by Python agents to register with the gateway. - # IMPORTANT: change this from the default before deploying to production. - agentToken: "dev-token" - # Gridlight license ID — required. Obtain from https://license.gridlight.ai - licenseId: "" - # Signing secret — leave blank. The gateway acquires this automatically from - # the license server at first startup using the license ID above. Only set - # this if migrating a deployment that already has a signing secret. - signingSecret: "" - # HuggingFace token — required only if image/video agents need to download gated models. - # Create a read token at https://huggingface.co/settings/tokens - huggingFaceToken: "" - # ECR pull credentials. When set, the chart creates a regcred imagePullSecret. - # Supply the base64-encoded Docker config JSON for your ECR token: - # aws ecr get-login-password | base64 - # Leave blank — public ECR images require no pull credentials. - registryCredentials: "" - - # --------------------------------------------------------------------------- - # Model bootstrap (automatic download on first install) - # --------------------------------------------------------------------------- - # When enabled, an init container downloads models before agents start. - # Skipped if the file already exists (safe to re-run on upgrade). - # Disable for air-gapped environments — pre-stage models on the PVC manually. - bootstrap: - enabled: true - # Embedding model — fixed, not user-selectable (nomic-embed-text v1.5 Q4_0, ~274 MB) - embedModelUrl: "https://huggingface.co/nomic-ai/nomic-embed-text-v1.5-GGUF/resolve/main/nomic-embed-text-v1.5.Q4_0.gguf" - # LLM model URL is derived automatically from models.llm catalog — no longer set here. - - # --------------------------------------------------------------------------- - # Model Catalog - # --------------------------------------------------------------------------- - # models.llm.category — "general" or "coding" - # models.llm.preset — key from catalog. (see list below) - # models.image.preset — key from catalog (image agent reads IMAGE_MODEL_ID env var) - # models.video.preset — key from catalog (video agent reads DEFAULT_VIDEO_MODEL env var) - # - # To use a model not in the catalog, leave preset blank and set - # llmAgent.modelPath to the full path of a pre-staged GGUF file. - # - # All catalog entries use Apache 2.0 or MIT licenses only. - # --------------------------------------------------------------------------- - models: - llm: - category: "general" # general | coding - preset: "qwen-7b" # see catalog keys below - catalog: - general: - mistral-7b: - name: "Mistral 7B Instruct v0.3" - tier: "entry" - license: "Apache-2.0" - sizeGb: 4.4 - huggingface: "bartowski/Mistral-7B-Instruct-v0.3-GGUF" - filename: "Mistral-7B-Instruct-v0.3-Q4_K_M.gguf" - url: "https://huggingface.co/bartowski/Mistral-7B-Instruct-v0.3-GGUF/resolve/main/Mistral-7B-Instruct-v0.3-Q4_K_M.gguf" - qwen-7b: - name: "Qwen 2.5 7B Instruct" - tier: "entry" - license: "Apache-2.0" - sizeGb: 4.7 - huggingface: "bartowski/Qwen2.5-7B-Instruct-GGUF" - filename: "Qwen2.5-7B-Instruct-Q4_K_M.gguf" - url: "https://huggingface.co/bartowski/Qwen2.5-7B-Instruct-GGUF/resolve/main/Qwen2.5-7B-Instruct-Q4_K_M.gguf" - qwen-32b: - name: "Qwen 2.5 32B Instruct" - tier: "mid" - license: "Apache-2.0" - sizeGb: 19.9 - huggingface: "bartowski/Qwen2.5-32B-Instruct-GGUF" - filename: "Qwen2.5-32B-Instruct-Q4_K_M.gguf" - url: "https://huggingface.co/bartowski/Qwen2.5-32B-Instruct-GGUF/resolve/main/Qwen2.5-32B-Instruct-Q4_K_M.gguf" - mixtral-8x7b: - name: "Mixtral 8x7B Instruct v0.1" - tier: "mid" - license: "Apache-2.0" - sizeGb: 26.4 - huggingface: "TheBloke/Mixtral-8x7B-Instruct-v0.1-GGUF" - filename: "mixtral-8x7b-instruct-v0.1.Q4_K_M.gguf" - url: "https://huggingface.co/TheBloke/Mixtral-8x7B-Instruct-v0.1-GGUF/resolve/main/mixtral-8x7b-instruct-v0.1.Q4_K_M.gguf" - mixtral-8x22b: - name: "Mixtral 8x22B Instruct v0.1" - tier: "large" - license: "Apache-2.0" - sizeGb: 67.8 - huggingface: "MaziyarPanahi/Mixtral-8x22B-Instruct-v0.1-GGUF" - filename: "Mixtral-8x22B-Instruct-v0.1.Q3_K_M.gguf" - url: "https://huggingface.co/MaziyarPanahi/Mixtral-8x22B-Instruct-v0.1-GGUF/resolve/main/Mixtral-8x22B-Instruct-v0.1.Q3_K_M.gguf" - deepseek-r1: - name: "DeepSeek R1 671B" - tier: "flagship" - license: "MIT" - sizeGb: 161 - shards: 9 - subdir: "DeepSeek-R1-Q2_K" - filenameBase: "DeepSeek-R1-Q2_K" - filename: "DeepSeek-R1-Q2_K-00001-of-00009.gguf" - huggingface: "unsloth/DeepSeek-R1-GGUF" - baseUrl: "https://huggingface.co/unsloth/DeepSeek-R1-GGUF/resolve/main/DeepSeek-R1-Q2_K" - coding: - qwen-coder-7b: - name: "Qwen 2.5 Coder 7B Instruct" - tier: "entry" - license: "Apache-2.0" - sizeGb: 4.7 - huggingface: "bartowski/Qwen2.5-Coder-7B-Instruct-GGUF" - filename: "Qwen2.5-Coder-7B-Instruct-Q4_K_M.gguf" - url: "https://huggingface.co/bartowski/Qwen2.5-Coder-7B-Instruct-GGUF/resolve/main/Qwen2.5-Coder-7B-Instruct-Q4_K_M.gguf" - granite-8b: - name: "IBM Granite 8B Code Instruct 128K" - tier: "entry" - license: "Apache-2.0" - sizeGb: 4.6 - huggingface: "RichardErkhov/ibm-granite_-_granite-8b-code-instruct-128k-gguf" - filename: "granite-8b-code-instruct-128k.Q4_K_M.gguf" - url: "https://huggingface.co/RichardErkhov/ibm-granite_-_granite-8b-code-instruct-128k-gguf/resolve/main/granite-8b-code-instruct-128k.Q4_K_M.gguf" - qwen-coder-14b: - name: "Qwen 2.5 Coder 14B Instruct" - tier: "mid" - license: "Apache-2.0" - sizeGb: 14.9 - huggingface: "bartowski/Qwen2.5-Coder-14B-Instruct-GGUF" - filename: "Qwen2.5-Coder-14B-Instruct-Q8_0.gguf" - url: "https://huggingface.co/bartowski/Qwen2.5-Coder-14B-Instruct-GGUF/resolve/main/Qwen2.5-Coder-14B-Instruct-Q8_0.gguf" - qwen-coder-32b: - name: "Qwen 2.5 Coder 32B Instruct" - tier: "mid" - license: "Apache-2.0" - sizeGb: 19.9 - huggingface: "bartowski/Qwen2.5-Coder-32B-Instruct-GGUF" - filename: "Qwen2.5-Coder-32B-Instruct-Q4_K_M.gguf" - url: "https://huggingface.co/bartowski/Qwen2.5-Coder-32B-Instruct-GGUF/resolve/main/Qwen2.5-Coder-32B-Instruct-Q4_K_M.gguf" - mixtral-8x22b: - name: "Mixtral 8x22B Instruct v0.1" - tier: "large" - license: "Apache-2.0" - sizeGb: 67.8 - huggingface: "MaziyarPanahi/Mixtral-8x22B-Instruct-v0.1-GGUF" - filename: "Mixtral-8x22B-Instruct-v0.1.Q3_K_M.gguf" - url: "https://huggingface.co/MaziyarPanahi/Mixtral-8x22B-Instruct-v0.1-GGUF/resolve/main/Mixtral-8x22B-Instruct-v0.1.Q3_K_M.gguf" - deepseek-r1: - name: "DeepSeek R1 671B" - tier: "flagship" - license: "MIT" - sizeGb: 161 - shards: 9 - subdir: "DeepSeek-R1-Q2_K" - filenameBase: "DeepSeek-R1-Q2_K" - filename: "DeepSeek-R1-Q2_K-00001-of-00009.gguf" - huggingface: "unsloth/DeepSeek-R1-GGUF" - baseUrl: "https://huggingface.co/unsloth/DeepSeek-R1-GGUF/resolve/main/DeepSeek-R1-Q2_K" - - # Image generation models — downloaded by image-agent via HuggingFace Hub. - # The selected preset's huggingface repo ID is passed as IMAGE_MODEL_ID env var. - image: - preset: "juggernautxl" # juggernautxl (default) | cogview3-plus | auraflow | cogview4 (large GPU) - catalog: - juggernautxl: - name: "JuggernautXL v9" - tier: "balanced" - license: "OpenRAIL-M" - sizeGb: 7 - huggingface: "RunDiffusion/Juggernaut-XL-v9" - cogview3-plus: - name: "CogView3-Plus 3B" - tier: "entry" - license: "Apache-2.0" - sizeGb: 26 - huggingface: "THUDM/CogView3-Plus-3B" - auraflow: - name: "AuraFlow v0.3" - tier: "mid" - license: "Apache-2.0" - sizeGb: 16.5 - huggingface: "fal/AuraFlow-v0.3" - cogview4: - name: "CogView4 6B (large GPU — needs >24GB VRAM / large PVC)" - tier: "large" - license: "Apache-2.0" - sizeGb: 31.1 - huggingface: "THUDM/CogView4-6B" - # hidream-i1 intentionally omitted: the image agent does not yet support - # HiDream-I1's multi-encoder setup (load_dit_pipeline rejects it), and at - # 17B/~47GB it doesn't fit common GPUs. Re-add once the agent supports it. - - # Video generation models — downloaded by video-agent via HuggingFace Hub. - # The preset key is passed to the agent as DEFAULT_VIDEO_MODEL. - # - # DEFAULT IS wan-2.1 (14B) — production-quality output. It needs a ~48GB GPU - # (L40S / A100) to run at full speed; it also fits 16–24GB GPUs (A10G/4090) via - # CPU offload, just slower. On smaller GPUs, switch preset to "wan-2.1-1.3b". - # Set preset: "auto" to let the agent pick by detected VRAM. - video: - preset: "wan-2.1" # wan-2.1(14B) | wan-2.1-1.3b | cogvideox-5b | ltx-video | auto - # Default output quality/resolution when a request omits it (gateway reads this - # as DEFAULT_VIDEO_QUALITY). Higher = sharper + slower + more VRAM. A per-request - # "quality_preset" (or explicit width/height/fps/steps) always overrides. - # proxy(512x320) draft(640x480) preview(768x512) 720p(1280x720) 1080p 2k 4k - defaultQuality: "draft" - catalog: - wan-2.1-1.3b: - name: "Wan 2.1 T2V 1.3B" - tier: "entry" - license: "Apache-2.0" - sizeGb: 17 - huggingface: "Wan-AI/Wan2.1-T2V-1.3B-Diffusers" - ltx-video: - name: "LTX-Video 0.9.7 Distilled" - tier: "fast" - license: "Apache-2.0" - sizeGb: 20 - huggingface: "Lightricks/LTX-Video-0.9.7-distilled" - cogvideox-5b: - name: "CogVideoX 5B" - tier: "mid" - license: "Apache-2.0" - sizeGb: 22 - huggingface: "THUDM/CogVideoX-5b" - wan-2.1: - name: "Wan 2.1 T2V 14B" - tier: "flagship" - license: "Apache-2.0" - sizeGb: 40 - huggingface: "Wan-AI/Wan2.1-T2V-14B-Diffusers" - wan-2.2: - name: "Wan 2.2 T2V A14B" - tier: "flagship" - license: "Apache-2.0" - sizeGb: 55 - huggingface: "Wan-AI/Wan2.2-T2V-A14B-Diffusers" - - # --------------------------------------------------------------------------- - # Data directory - # --------------------------------------------------------------------------- - # All services write to the same PVC mounted at dataDir. - # Override with GRIDLIGHT_DATA_DIR to use a host-path or different mount. - dataDir: "/gridlight-data" - - # Shared persistent volume claim for model files and data. - pvc: - enabled: true - storageClassName: "" # leave blank for cluster default - size: "100Gi" - accessMode: ReadWriteOnce - - # --------------------------------------------------------------------------- - # Gateway - # --------------------------------------------------------------------------- - gateway: - deploy: true - image: - repository: "{{ .Values.global.imageRegistry }}/gateway" - tag: "{{ .Values.global.imageTag }}" - pullPolicy: "{{ .Values.global.imagePullPolicy }}" - replicas: 1 - port: 8080 - service: - type: ClusterIP - port: 8080 - # Idle timeout (seconds) for cloud load balancers. Image/video generation are - # long synchronous requests; the default 60s cuts them off ("Load failed"). - # Applied to AWS ELBs via annotation; for other LBs set service.annotations. - idleTimeoutSeconds: 600 - # Extra Service annotations (e.g. NLB selection, ACM cert, other LB tuning). - annotations: {} - resources: - requests: - cpu: "500m" - memory: "512Mi" - limits: - cpu: "2" - memory: "1Gi" - nodeSelector: {} - tolerations: [] - affinity: {} - # TFLOPs this deployment claims from the license pool (0 = use full license allowance). - tflopRequested: 0 - # Stable license fingerprint. Leave blank to auto-derive a deterministic value from - # the Helm release (recommended) — this keeps one license allocation across pod - # restarts instead of registering phantom gateways. Set explicitly only to share a - # gateway identity across separate installs/clusters. - licenseFingerprint: "" - # License server URL. Override for air-gapped installs pointing at an on-prem server. - licenseServerUrl: "https://license.gridlight.ai" - # Gateway mode: "" = full (Neo4j + Qdrant), "lite" = SQLite-only (no Neo4j entity resolution). - mode: "" - # Comma-separated list of allowed CORS origins for browser clients. - # Leave blank to allow all origins (permissive — safe for VPN-only deployments). - # Set when exposing the gateway via Ingress to restrict to known origins. - # Example: "https://app.example.com,https://admin.example.com" - corsOrigins: "" - # Escape hatch for advanced gateway tuning. Any key/value pair here is - # injected as an env var on the gateway container. Useful for: - # QUERY_EXPANSION_ENABLED: "false" # disable LLM query expansion (reduces latency) - # RAG_INITIAL_CANDIDATES: "30" # more candidates = better recall, more compute - # NEO4J_ENTITY_RESOLUTION_TIMEOUT_MS: "500" # cap Neo4j latency impact - # LATENCY_LOG_BREAKDOWN: "true" # per-component latency logging - # INTERACTIONS_ENABLED: "true" # enable interaction logging for analytics - # RUST_LOG: "debug" # verbose logging for troubleshooting - env: {} - - # --------------------------------------------------------------------------- - # PostgreSQL (in-cluster) - # --------------------------------------------------------------------------- - # WARNING: Setting deploy: false disables the in-cluster PostgreSQL instance. - # PostgreSQL stores all conversation history, uploaded document metadata, - # and TFLOP allocation records. Without it, NO context is saved across - # sessions and the gateway will fail to start. Only set to false if you are - # providing an external PostgreSQL instance via gateway.env (DATABASE_URL). - postgres: - deploy: true - image: "postgres:16-bookworm" - port: 5432 - database: "gridlight" - user: "gridlight" - # Password comes from auth.postgresPassword via Secret - resources: - requests: - cpu: "250m" - memory: "512Mi" - limits: - cpu: "2" - memory: "2Gi" - storage: - size: "20Gi" - storageClassName: "" - - # --------------------------------------------------------------------------- - # Qdrant (in-cluster) - # --------------------------------------------------------------------------- - # WARNING: Setting deploy: false disables vector search (QDRANT_ENABLED and - # SEMANTIC_SEARCH_ENABLED are set to false automatically). RAG queries will - # fall back to keyword search only — semantic similarity matching is lost, - # which significantly reduces answer quality for long documents. - qdrant: - deploy: true - image: "qdrant/qdrant:v1.10.0" - grpcPort: 6334 - httpPort: 6333 - collection: "gridlight" - resources: - requests: - cpu: "250m" - memory: "1Gi" - limits: - cpu: "2" - memory: "4Gi" - storage: - size: "20Gi" - storageClassName: "" - - # --------------------------------------------------------------------------- - # Neo4j (in-cluster) - # --------------------------------------------------------------------------- - # WARNING: Setting deploy: false disables the knowledge graph (NEO4J_ENABLED - # is set to false automatically). Entity resolution, relationship-aware - # retrieval, and graph-hop context expansion are all disabled — the gateway - # falls back to GRIDLIGHT_MODE=lite (SQLite-only). Complex multi-hop queries - # and document relationship graphs will not be available. - neo4j: - deploy: true - image: "neo4j:5.18-community" - boltPort: 7687 - httpPort: 7474 - user: "neo4j" - # Password comes from auth.neo4jPassword via Secret - jvm: - heapInitial: "512m" - heapMax: "1G" - pagecache: "512m" - resources: - requests: - cpu: "500m" - memory: "2Gi" - limits: - cpu: "3" - memory: "4Gi" - storage: - size: "10Gi" - storageClassName: "" - - # --------------------------------------------------------------------------- - # LLM Agent (Rust, port 8001) - # --------------------------------------------------------------------------- - llmAgent: - deploy: true - image: - repository: "{{ .Values.global.imageRegistry }}/agent" - tag: "{{ .Values.global.imageTag }}" - pullPolicy: "{{ .Values.global.imagePullPolicy }}" - port: 8001 - # Override the model path used by llama-server. Leave empty to auto-derive - # from models.llm.catalog. Set this only when using a pre-staged model - # outside the catalog (also set bootstrap.enabled=false in that case). - modelPath: "" - # CPU-only mode: set to "cpu" to bypass GPU detection - # device: "" - resources: - requests: - cpu: "2" - memory: "8Gi" - limits: - cpu: "8" - memory: "16Gi" - nodeSelector: {} - tolerations: [] - affinity: {} - env: {} - - # --------------------------------------------------------------------------- - # Embed Agent (Rust, port 8002) - # --------------------------------------------------------------------------- - embedAgent: - deploy: true - image: - repository: "{{ .Values.global.imageRegistry }}/agent" - tag: "{{ .Values.global.imageTag }}" - pullPolicy: "{{ .Values.global.imagePullPolicy }}" - port: 8002 - # Path to the embedding .gguf model file inside the container. - # Defaults to the bootstrap download destination. - modelPath: "/gridlight-data/models/embeddings/nomic-embed-text-v1.5.Q4_0.gguf" - resources: - requests: - cpu: "1" - memory: "2Gi" - limits: - cpu: "4" - memory: "6Gi" - nodeSelector: {} - tolerations: [] - affinity: {} - env: {} - - # --------------------------------------------------------------------------- - # STT Agent (Python / faster-whisper, port 8004) - # --------------------------------------------------------------------------- - sttAgent: - deploy: true - image: - repository: "{{ .Values.global.imageRegistry }}/agent-stt" - tag: "{{ .Values.global.imageTag }}" - pullPolicy: "{{ .Values.global.imagePullPolicy }}" - port: 8004 - # Whisper model size: tiny (39MB), base (74MB), small (244MB), medium (769MB), large-v3 (1.5GB) - modelSize: "tiny" - # Quantization: auto, float16, int8 (int8 recommended for CPU) - computeType: "auto" - resources: - requests: - cpu: "500m" - memory: "512Mi" - limits: - cpu: "4" - memory: "4Gi" - nodeSelector: {} - tolerations: [] - affinity: {} - env: {} - - # --------------------------------------------------------------------------- - # Image Agent (Python / diffusers, port 8005) - # --------------------------------------------------------------------------- - imageAgent: - deploy: true - image: - repository: "{{ .Values.global.imageRegistry }}/agent-image" - tag: "{{ .Values.global.imageTag }}" - pullPolicy: "{{ .Values.global.imagePullPolicy }}" - port: 8005 - resources: - requests: - cpu: "2" - memory: "8Gi" - limits: - cpu: "8" - memory: "16Gi" - nodeSelector: {} - tolerations: [] - affinity: {} - env: {} - - # --------------------------------------------------------------------------- - # Voice Agent (Python / Piper TTS, port 8006) - # --------------------------------------------------------------------------- - voiceAgent: - deploy: true - image: - repository: "{{ .Values.global.imageRegistry }}/agent-voice" - tag: "{{ .Values.global.imageTag }}" - pullPolicy: "{{ .Values.global.imagePullPolicy }}" - port: 8006 - defaultVoice: "en_US-amy-medium" - resources: - requests: - cpu: "250m" - memory: "512Mi" - limits: - cpu: "2" - memory: "2Gi" - nodeSelector: {} - tolerations: [] - affinity: {} - env: {} - - # --------------------------------------------------------------------------- - # Video Agent (Python / diffusers, port 8007) - # --------------------------------------------------------------------------- - # OFF by default (needs its own GPU) but validated end-to-end. The default model - # (models.video.preset) is wan-2.1 (14B, production quality). - # - # GPU SIZING — this is the important one: - # • wan-2.1 (14B, DEFAULT): best on a ~48GB GPU (L40S / A100). It also runs on a - # 16–24GB GPU (A10G/4090) via CPU offload (offloadMode=model) — slower, and - # needs the larger host-memory limit below for the offloaded weights. - # • On smaller GPUs, set models.video.preset to "wan-2.1-1.3b" or "auto". - # The image bundles the fast plain-GET model downloader (Xet repos otherwise stall). - # The video agent is single-concurrency: it returns 429 while a generation is in - # flight, and a client disconnect does NOT cancel the in-flight job. For concurrent - # video, run multiple replicas. Object storage / async generation tracked in GRD-2354. - videoAgent: - deploy: false - # Replicas >1 enable parallel generation (the agent is single-concurrency and - # returns 429 while busy). Each replica needs its own model storage: set - # pvc.enabled=false (emptyDir per pod — re-downloads the model) or use a - # ReadWriteMany storage class. The default ReadWriteOnce PVC attaches to one pod. - replicas: 1 - image: - repository: "{{ .Values.global.imageRegistry }}/agent-video" - tag: "{{ .Values.global.imageTag }}" - pullPolicy: "{{ .Values.global.imagePullPolicy }}" - port: 8007 - # CPU offload for large models: auto | none | model | sequential. - # "model" keeps the 14B default within VRAM on 16–24GB GPUs; "none" is fastest - # on a 48GB GPU that fits the whole pipeline. - offloadMode: "model" - resources: - requests: - cpu: "2" - memory: "16Gi" - limits: - cpu: "8" - # 56Gi headroom for CPU-offloaded 14B weights; lower to 24Gi if pinning a - # small model (wan-2.1-1.3b) that stays resident on the GPU. - memory: "56Gi" - nvidia.com/gpu: "1" # video generation requires a GPU - nodeSelector: {} - tolerations: [] - affinity: {} - env: {} - - # --------------------------------------------------------------------------- - # Ingress - # --------------------------------------------------------------------------- - ingress: - enabled: false - # ingressClassName: "nginx" - host: "" - # tls: [] - annotations: {} diff --git a/packs/gridlight-1.1.3/README.md b/packs/gridlight-1.1.3/README.md deleted file mode 100644 index 2ac5e64e..00000000 --- a/packs/gridlight-1.1.3/README.md +++ /dev/null @@ -1,308 +0,0 @@ -# Gridlight AI Platform - -On-premises AI platform with LLM inference, semantic search, knowledge graphs, and specialist agents (STT, image generation, voice synthesis) — all running inside your Kubernetes cluster. No data leaves your infrastructure. - -## Prerequisites - -- Kubernetes **1.26+** -- Helm **3.10+** -- A node with at least **16 GB RAM** and **100 GB** available storage for entry-tier models; flagship LLM models require 500 GB+ -- GPU node recommended for inference performance (CPU-only is supported) -- A private container registry reachable from the cluster with the Gridlight images pushed (see [image-build-and-test.md](https://github.com/GRIDLIGHT-INC/gridlight/blob/main/docs/image-build-and-test.md)) -- An `imagePullSecret` or `auth.registryCredentials` (Docker config JSON) if the registry requires authentication - -## Parameters - -| **Parameter** | **Description** | **Type** | **Default** | **Required** | -|---|---|---|---|---| -| `auth.postgresPassword` | Password for the Gridlight PostgreSQL user | String | — | Yes | -| `auth.neo4jPassword` | Password for the Neo4j database user | String | — | Yes | -| `auth.licenseId` | Gridlight license UUID. Required for compute metering. Obtain from [license.gridlight.ai](https://license.gridlight.ai) | String | — | Yes | -| `auth.signingSecret` | License signing secret for heartbeat auth. Leave blank — auto-acquired from the license server at first startup. Only set when migrating a pre-existing deployment. | String | `""` | No | -| `auth.huggingFaceToken` | HuggingFace read token for gated models (e.g. Juggernaut XI). Only required if image or video agents need gated models. | String | `""` | No | -| `auth.gatewayToken` | Bearer token clients include in the `Authorization` header | String | `dev-token` | No | -| `auth.agentToken` | Shared token agents use to register with the gateway | String | `dev-token` | No | -| `auth.registryCredentials` | Docker config JSON for the image registry (base64-encoded). Chart creates the `regcred` secret automatically when set. | String | `""` | No | -| `gateway.tflopRequested` | TFLOPs claimed from the license pool. Set to `0` to use the full licensed allowance. | Integer | `0` | No | -| `gateway.licenseServerUrl` | License server URL. Override only for air-gapped installs pointing at an on-prem license server. | String | `https://license.gridlight.ai` | No | -| `gateway.corsOrigins` | Comma-separated allowed CORS origins for browser clients. Leave blank to allow all origins (permissive). | String | `""` | No | -| `global.imageRegistry` | Container registry prefix for all Gridlight images | String | ECR path | No | -| `global.imageTag` | Image tag for all Gridlight services | String | `1.1.3` | No | -| `global.imagePullPolicy` | Kubernetes image pull policy | String | `IfNotPresent` | No | -| `models.llm.category` | LLM category: `general` (RAG/chat) or `coding` (code generation) | String | `general` | No | -| `models.llm.preset` | LLM model preset key. General: `mistral-7b`, `qwen-7b`, `qwen-32b`, `mixtral-8x7b`, `mixtral-8x22b`, `deepseek-r1`. Coding: `qwen-coder-7b`, `granite-8b`, `qwen-coder-14b`, `qwen-coder-32b`, `mixtral-8x22b`, `deepseek-r1` | String | `qwen-7b` | No | -| `models.image.preset` | Image generation model: `cogview3-plus`, `auraflow`, `cogview4`, `hidream-i1` | String | `cogview3-plus` | No | -| `models.video.preset` | Video generation model: `wan-2.1` (14B, **default** — needs ~48GB GPU / L40S/A100; runs on 16–24GB via CPU offload), `wan-2.2` (A14B), `cogvideox-5b`, `ltx-video`, `wan-2.1-1.3b` (fits 8–24GB), `auto` (pick by VRAM) | String | `wan-2.1` | No | -| `videoAgent.offloadMode` | Large-model CPU offload: `auto`, `none`, `model`, `sequential`. `model` keeps the 14B default within VRAM on 16–24GB GPUs. | String | `model` | No | -| `bootstrap.enabled` | Auto-download LLM and embedding models on first install via init containers. Set `false` for air-gapped deployments — pre-stage models on the PVC. | Bool | `true` | No | -| `pvc.size` | Shared PVC size for models and data | String | `100Gi` | No | -| `pvc.storageClassName` | Kubernetes StorageClass for the PVC. Blank = cluster default. | String | `""` | No | -| `ingress.enabled` | Expose the gateway via an Ingress resource | Bool | `false` | No | -| `ingress.host` | Public hostname for the gateway | String | `""` | No | -| `llmAgent.resources` | CPU/memory requests and limits for the LLM agent pod | Object | see values.yaml | No | -| `llmAgent.nodeSelector` | Node selector for GPU scheduling | Object | `{}` | No | -| `llmAgent.tolerations` | Tolerations for GPU node taints | Array | `[]` | No | - -## Agent fleets - -Each agent type can be declared as a **list of instances** — run several LLMs (different -models), multiple image agents, etc., all behind the one gateway, which load-balances across -them. The list keys are `llmAgents`, `embedAgents`, `imageAgents`, `videoAgents`, `sttAgents`, -`voiceAgents`. When a list is non-empty it **replaces** the matching singular block -(`llmAgent`, …), which remains for backward compatibility: existing values files keep working -unchanged (the singular block is treated as a one-instance fleet named `agent`). - -Per-instance fields: `name` (required, DNS-safe), `deploy`, `replicas`, `model` -(`{category,preset}` or `modelPath`), `storage` (`{mode,size,accessMode,storageClassName}`), -`nodeSelector`, `tolerations`, `affinity`, `resources`, `env`, `port`, and type-specific -`device` (LLM), `fsGroup`/`offloadMode` (image/video), `modelSize`/`computeType` (STT), -`defaultVoice` (voice). - -**Storage modes** (`storage.mode`): `shared` (the single shared PVC — default, backward -compatible), `ownPvc` (a dedicated PVC per instance so it can run on its own node pool), or -`emptyDir` (per-pod ephemeral, small models only). With `ownPvc` + `replicas > 1` the chart -emits a StatefulSet with `volumeClaimTemplates`; otherwise a Deployment. Switching an agent's -`mode` on an existing release is a reinstall, not an in-place upgrade (the workload selector -and kind are immutable). - -A complete worked example is in [`examples/fleet-heterogeneous.yaml`](examples/fleet-heterogeneous.yaml) -(three LLMs across GPU pools, two image agents, and the embed agent isolated onto a CPU pool). - -### Multiple LLM models on SpectroCloud Palette - -To run several LLMs (each a different model) behind one gateway, add an `llmAgents` list to the -**pack values** (the cluster-profile layer for the `gridlight-palette` pack). It is edited as -**raw YAML** — only the `auth.*` fields render as masked inputs in the Palette form; the fleet -lists do not, so type them directly into the pack values editor. - -```yaml -llmAgents: - - name: qwen # required, DNS-safe ^[a-z0-9]([a-z0-9-]*[a-z0-9])?$ - model: { preset: qwen-7b } - storage: { mode: ownPvc, size: 20Gi } - resources: { limits: { nvidia.com/gpu: "1" } } - nodeSelector: { gridlight.ai/pool: gpu-a10g } - - name: big - model: { preset: qwen-32b } - storage: { mode: ownPvc, size: 40Gi } - resources: { limits: { nvidia.com/gpu: "1" } } - nodeSelector: { gridlight.ai/pool: gpu-a100 } -``` - -LLM `preset` values: `mistral-7b`, `qwen-7b`, `qwen-32b`, `mixtral-8x7b`, `mixtral-8x22b`, -`deepseek-r1` (general) and `qwen-coder-7b/14b/32b`, `granite-8b` (coding); or a custom -`model: { modelPath: /data/models/.gguf }`. Use `storage.mode: ownPvc` for a fleet so -each model gets its own volume and can land on its own node pool. - -**Cluster prerequisites — the chart targets node pools, it does not create them:** -1. **Label the node pools** the `nodeSelector`s reference, e.g. - `kubectl label node gridlight.ai/pool=gpu-a10g`. -2. Install the **NVIDIA GPU Operator** so GPU nodes advertise `nvidia.com/gpu`. -3. For `ownPvc` across nodes, have a **StorageClass** that provisions per-node volumes - (EBS `gp3` on EKS). Set `storage.storageClassName` if it is not the cluster default. - -The gateway load-balances across all registered LLM instances automatically. To target a -specific model per request instead, see **Query routing** below. - -## Query routing - -Added in 1.1.3 (gateway image; no chart templates required). - -- **Explicit override (always on):** a request may name a `model` and/or pin an `agent_id` to - route deterministically — e.g. `POST /neon {"question":"…","model":"qwen-32b"}` hits the - `big` agent above. `model_required:true` makes an unavailable target return 404/503 instead - of falling back. Works on `/neon`, `/chat/intelligent`, `/image`, `/video`. No config needed. -- **Intent auto-routing (opt-in, ships dark):** the gateway can infer modality - (text/image/video) from a query and dispatch automatically. Enable per-install with the - gateway env escape hatch: - - ```yaml - gateway: - env: - GATEWAY_ROUTING_MODE: "auto" # default: explicit (off). Fails safe to text. - ``` - - Optional tuning (also via `gateway.env`): `MODALITY_LLM_TIMEOUT_SECS` (3), - `AUTO_ROUTE_MEDIA_TIMEOUT_SECS` (180), `AUTO_ROUTE_MAX_CONCURRENT` (4). - -## Upgrade - -- **1.1.2 → 1.1.3:** gateway query routing (above). Pure gateway-image change — bump the pack to - 1.1.3 (or `--set global.imageTag=1.1.3`) and existing values keep working; explicit override is - immediately available, auto-routing stays off until you set `gateway.env.GATEWAY_ROUTING_MODE=auto`. - The agent images are byte-identical to 1.1.2. To roll back, pin `global.imageTag=1.1.2`. - -- If upgrading from a pre-1.1.2 release, the new `auth.licenseId` field is now required. Provide it via `--set auth.licenseId=` or a values override file. The `auth.signingSecret` is acquired automatically at startup — you do not need to set it manually. -- When upgrading from a version prior to 1.1.1, delete and recreate the `gridlight-credentials` secret before upgrading — the secret key names changed. -- The `bootstrap.llmModelUrl` field was removed in 1.1.1 and replaced by the full `models.llm.catalog` system. If you had a custom model URL, set `llmAgent.modelPath` to the absolute path of the GGUF file on your PVC instead. -- PVC data (downloaded models, ingested documents) is preserved across upgrades. The chart uses `strategy: Recreate` on all agent deployments, so pods terminate cleanly before the new version starts. - -## Usage - -### Minimal install - -```yaml -auth: - postgresPassword: "changeme" - neo4jPassword: "changeme" -``` - -```bash -helm install gridlight oci://registry.spectrocloud.com/community/gridlight \ - --version 1.1.3 \ - --values my-values.yaml \ - --namespace gridlight --create-namespace -``` - -### Selecting a model - -Use the Palette UI dropdowns (driven by `values.schema.json`) or set via values: - -```yaml -models: - llm: - category: "general" - preset: "qwen-32b" # ~19.9 GB — requires 100Gi+ PVC -``` - -All catalog models are **Apache 2.0 or MIT licensed**. - -### Video generation - -Video is **off by default** (`videoAgent.deploy: false`) and needs its own GPU. Set -expectations before enabling it — video is far heavier than image/LLM, and the default -model is the production-quality 14B. - -**Model vs. GPU vs. speed** (measured; warm = model already loaded): - -| `models.video.preset` | Fits | Warm gen (5 s @ 480p) | Quality | Download | -|-----------------------|------|-----------------------|---------|----------| -| `wan-2.1-1.3b` | 8–24 GB | ~1–2 min | Low (warps on motion) | ~17 GB | -| `ltx-video` | 12–24 GB | ~30–60 s | Decent, fast | ~20 GB | -| `cogvideox-5b` | 16 GB+ (offload) | ~3–5 min | Good | ~22 GB | -| `wan-2.1` (14B, **default**) | **48 GB** ideal / 16–24 GB offload | ~3–5 min @ 48 GB · **~30 min** with offload | High | ~40–76 GB | -| `wan-2.2` (A14B) | 48 GB+ | ~5–8 min | Highest | ~55 GB | - -**Latency expectations — read this first:** - -- **First generation is a cold start:** model download (17–76 GB) **+** load into the GPU - (1.3B ≈ 1 min, 14B ≈ 8 min). This is a one-time-per-pod cost but it is *minutes*, not - seconds. Pre-stage the model (below) to avoid it. -- **Warm generations** skip download+load — only the per-clip time in the table applies. -- **Single-concurrency:** the agent generates **one clip at a time**; concurrent requests - get `429 "busy"`. A client timeout/disconnect does **NOT** cancel the in-flight job — it - keeps running and the file lands in `videos/`. - -**Performance knob (important on big GPUs):** on a ≥48 GB GPU the 14B model fits entirely, -so set `videoAgent.offloadMode: none` — the default `model` needlessly swaps weights and is -~6× slower. Use `model` only on 16–24 GB GPUs. - -**Customizing output quality** without code changes: - -```yaml -models: - video: - preset: "wan-2.1" # model (quality tier) — see table above - defaultQuality: "720p" # default resolution/fps when a request omits it: - # proxy 512x320 | draft 640x480 | preview/sd/hd 768x512 | - # 720p 1280x720 | 1080p 1920x1080 | 2k | 4k -videoAgent: - offloadMode: "none" # auto | none | model | sequential - replicas: 1 # raise for parallel generation (see Concurrency below) -``` - -Clients can always override per request with `quality_preset` or explicit -`width`/`height`/`fps`/`duration_seconds`/`steps`. - -**Concurrency (parallel generation):** because the agent is single-concurrency, run -multiple pods to serve clips in parallel: - -```yaml -videoAgent: - replicas: 3 -pvc: - enabled: false # REQUIRED for replicas>1: each pod gets its own emptyDir and - # downloads the model itself. The default ReadWriteOnce PVC can - # only attach to one pod — use emptyDir or a ReadWriteMany class. -``` - -**Pre-staging the model (skip the cold start / air-gapped):** download the model into the -shared PVC once, before agents start, so the first request doesn't pay the download: - -```bash -# into the path the agent reads (MODEL_CACHE_DIR / HF_HOME on the dataDir PVC) -huggingface-cli download Wan-AI/Wan2.1-T2V-14B-Diffusers \ - --local-dir /gridlight-data/models/video/Wan-AI__Wan2.1-T2V-14B-Diffusers -``` - -Run it from a pod that mounts the PVC, or bake the files into a pre-staged volume. With the -model present, the first generation only pays the load time (no download). - -### Air-gapped deployment - -1. Set `bootstrap.enabled: false` -2. Pre-stage the GGUF file on the PVC at the path shown by `helm template` for your chosen preset -3. Set `global.imagePullPolicy: Never` and load images manually - -### Accessing the gateway - -```bash -kubectl port-forward svc/gridlight-gateway 8080:8080 -n gridlight -curl http://localhost:8080/healthz -H "Authorization: Bearer dev-token" -``` - -Primary endpoints: - -| Endpoint | Purpose | -|----------|---------| -| `POST /neon` | RAG query (streaming SSE). Include `"domain"` matching the domain used at ingest time. | -| `POST /chat/intelligent` | Stateful multi-turn conversation | -| `POST /upload-structured` | File ingestion (multipart: `file` + `metadata` JSON with `domain`, `access_tier`, `pii`) | -| `POST /train` | Raw text ingestion | -| `POST /image` | Image generation | -| `POST /voice` | Text-to-speech synthesis | -| `GET /healthz` | Health check | -| `GET /metrics` | Prometheus metrics | - -All requests require `Authorization: Bearer `. - -### Enabling Ingress - -```yaml -ingress: - enabled: true - host: "gridlight.example.com" -``` - -## Troubleshooting - -### LLM/agent never registers — "would exceed TFLOPS ceiling" -Symptom: pods are `Running` but `/agents/list` is empty and the gateway logs -`Agent ... registration rejected: would exceed TFLOPS ceiling. Requested: 125.00, Ceiling: 100.00`. - -Cause: the gateway self-allocates a **default TFLOPS budget (~100)** from the license pool. On a -large GPU (e.g. an A10G reports ~125 TFLOPS) a single agent exceeds that budget and is rejected — -**even when the license has more available** (e.g. 182). In heartbeat-licensing mode the gateway -cannot auto-discover the license ceiling, so it does not raise its own allocation. - -Fix: set the gateway's requested allocation to your license ceiling (from license.gridlight.ai): -```yaml -gateway: - env: - GATEWAY_TFLOPS_REQUESTED: "182" # your license TFLOPS ceiling -``` -Sizing: the budget must cover the **sum** of all GPU agents' reported TFLOPS. Two A10Gs (~250) -need a ceiling ≥ 250; one A10G (~125) needs ≥ 125. - -### Pods stuck `Pending` — PVCs won't bind (raw EKS) -On EKS 1.30+ the in-tree EBS provisioner is gone and `eksctl` clusters have **no default -StorageClass**. Install the EBS CSI driver addon (with an IRSA role) and create a default -`gp3` StorageClass, then reinstall. See the AWS GPU test runbook for the exact commands. - -## References - -- [Gridlight documentation](https://gridlight.ai) -- [Helm chart source](https://github.com/GRIDLIGHT-INC/gridlight/tree/main/helm/gridlight-palette) -- [Image build and kind test guide](https://github.com/GRIDLIGHT-INC/gridlight/blob/main/docs/image-build-and-test.md) -- [Spectrocloud Palette add-on packs](https://docs.spectrocloud.com/integrations/) -- [pack-central community packs](https://github.com/spectrocloud/pack-central) diff --git a/packs/gridlight-1.1.3/charts/gridlight-palette-1.1.3.tgz b/packs/gridlight-1.1.3/charts/gridlight-palette-1.1.3.tgz deleted file mode 100644 index e4409457d8648e278ebab37145080278cb4de162..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 93313 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 GA_M>-1!x%n diff --git a/packs/gridlight-1.1.3/logo.png b/packs/gridlight-1.1.3/logo.png deleted file mode 100644 index 2631ae9f8eb3d4030f4d26e78e013c965957bb7d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 48814 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ⅅX4kT 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 V{aOL}0-#+%@8wivE2T|-{68_OPX+)0 diff --git a/packs/gridlight-1.1.3/pack.json b/packs/gridlight-1.1.3/pack.json deleted file mode 100644 index a46ed4fc..00000000 --- a/packs/gridlight-1.1.3/pack.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "addonType": "app-services", - "annotations": { - "source": "community", - "contributor": "Gridlight" - }, - "cloudTypes": ["all"], - "displayName": "Gridlight AI Platform", - "eol": "", - "group": "", - "kubeManifests": [], - "kubeVersion": ">=1.26.0-0", - "layer": "addon", - "name": "gridlight", - "readme": "## GRIDLIGHT\n\nOn-premises AI platform with LLM inference, semantic search, and specialist agents.\nNo data leaves your cluster.\n\nSee the [README](README.md) for full configuration reference.", - "version": "1.1.3", - "charts": ["charts/gridlight-palette-1.1.3.tgz"] -} diff --git a/packs/gridlight-1.1.3/schema.yaml b/packs/gridlight-1.1.3/schema.yaml deleted file mode 100644 index 575d6d98..00000000 --- a/packs/gridlight-1.1.3/schema.yaml +++ /dev/null @@ -1,25 +0,0 @@ -# Spectrocloud Palette schema — controls UI rendering of sensitive fields. -# Fields listed here are rendered as masked password inputs in the Palette UI. -# Keys are charts..; the chart name is gridlight-palette -# (Chart.yaml name), which is also the key these values live under in values.yaml. - -charts.gridlight-palette.auth.postgresPassword: - schema: '{{ format "${password}" | hints "PostgreSQL password for the gridlight user" }}' - -charts.gridlight-palette.auth.neo4jPassword: - schema: '{{ format "${password}" | hints "Neo4j password for the neo4j user" }}' - -charts.gridlight-palette.auth.gatewayToken: - schema: '{{ format "${password}" | hints "Bearer token clients send in Authorization header. Change from dev-token before production." }}' - -charts.gridlight-palette.auth.agentToken: - schema: '{{ format "${password}" | hints "Token agents use to self-register with the gateway. Change from dev-token before production." }}' - -charts.gridlight-palette.auth.licenseId: - schema: '{{ format "${input}" | hints "Gridlight license UUID from https://license.gridlight.ai" }}' - -charts.gridlight-palette.auth.signingSecret: - schema: '{{ format "${password}" | hints "Auto-acquired at startup. Only set when migrating a pre-existing deployment that already has a signing secret." }}' - -charts.gridlight-palette.auth.huggingFaceToken: - schema: '{{ format "${password}" | hints "HuggingFace read token for gated models. Leave blank if using only open models." }}' diff --git a/packs/gridlight-1.1.3/values.yaml b/packs/gridlight-1.1.3/values.yaml deleted file mode 100644 index 6a3b6c43..00000000 --- a/packs/gridlight-1.1.3/values.yaml +++ /dev/null @@ -1,718 +0,0 @@ -# GRIDLIGHT Helm Chart — Default Values -# All values can be overridden at install time via --set or --values. -# Required fields (no default): auth.postgresPassword, auth.neo4jPassword. - -# --------------------------------------------------------------------------- -# Pack metadata — consumed by Spectrocloud Palette, not by the Helm chart itself. -# Images here must be publicly pullable (pack-central crane pull CI check). -# Points to AWS Public ECR; production deployments use global.imageRegistry below. -# --------------------------------------------------------------------------- -pack: - namespace: "gridlight" - content: - images: - - image: "public.ecr.aws/q1c5c5i2/gridlight/gateway:1.1.3" - - image: "public.ecr.aws/q1c5c5i2/gridlight/agent:1.1.3" - - image: "public.ecr.aws/q1c5c5i2/gridlight/agent-stt:1.1.3" - - image: "public.ecr.aws/q1c5c5i2/gridlight/agent-image:1.1.3" - - image: "public.ecr.aws/q1c5c5i2/gridlight/agent-voice:1.1.3" - - image: "public.ecr.aws/q1c5c5i2/gridlight/agent-video:1.1.3" - -# --------------------------------------------------------------------------- -# Global -# --------------------------------------------------------------------------- -global: - imageRegistry: "public.ecr.aws/q1c5c5i2/gridlight" - imageTag: "1.1.3" - imagePullPolicy: IfNotPresent - imagePullSecrets: [] - -# --------------------------------------------------------------------------- -# Authentication & Secrets -# --------------------------------------------------------------------------- -auth: - # REQUIRED — no default. Provide via --set or a sealed secret. - postgresPassword: "" - neo4jPassword: "" - # Gateway API token — all client requests must include: - # Authorization: Bearer - # IMPORTANT: change this from the default before deploying to production. - gatewayToken: "dev-token" - # Shared token used by Python agents to register with the gateway. - # IMPORTANT: change this from the default before deploying to production. - agentToken: "dev-token" - # Gridlight license ID — required. Obtain from https://license.gridlight.ai - licenseId: "" - # Signing secret — leave blank. The gateway acquires this automatically from - # the license server at first startup using the license ID above. Only set - # this if migrating a deployment that already has a signing secret. - signingSecret: "" - # HuggingFace token — required only if image/video agents need to download gated models. - # Create a read token at https://huggingface.co/settings/tokens - huggingFaceToken: "" - # ECR pull credentials. When set, the chart creates a regcred imagePullSecret. - # Supply the base64-encoded Docker config JSON for your ECR token: - # aws ecr get-login-password | base64 - # Leave blank — public ECR images require no pull credentials. - registryCredentials: "" - -# --------------------------------------------------------------------------- -# Model bootstrap (automatic download on first install) -# --------------------------------------------------------------------------- -# When enabled, an init container downloads models before agents start. -# Skipped if the file already exists (safe to re-run on upgrade). -# Disable for air-gapped environments — pre-stage models on the PVC manually. -bootstrap: - enabled: true - # Embedding model — fixed, not user-selectable (nomic-embed-text v1.5 Q4_0, ~274 MB) - embedModelUrl: "https://huggingface.co/nomic-ai/nomic-embed-text-v1.5-GGUF/resolve/main/nomic-embed-text-v1.5.Q4_0.gguf" - # LLM model URL is derived automatically from models.llm catalog — no longer set here. - -# --------------------------------------------------------------------------- -# Model Catalog -# --------------------------------------------------------------------------- -# models.llm.category — "general" or "coding" -# models.llm.preset — key from catalog. (see list below) -# models.image.preset — key from catalog (image agent reads IMAGE_MODEL_ID env var) -# models.video.preset — key from catalog (video agent reads DEFAULT_VIDEO_MODEL env var) -# -# To use a model not in the catalog, leave preset blank and set -# llmAgent.modelPath to the full path of a pre-staged GGUF file. -# -# All catalog entries use Apache 2.0 or MIT licenses only. -# --------------------------------------------------------------------------- -models: - llm: - category: "general" # general | coding - preset: "qwen-7b" # see catalog keys below - catalog: - general: - mistral-7b: - name: "Mistral 7B Instruct v0.3" - tier: "entry" - license: "Apache-2.0" - sizeGb: 4.4 - huggingface: "bartowski/Mistral-7B-Instruct-v0.3-GGUF" - filename: "Mistral-7B-Instruct-v0.3-Q4_K_M.gguf" - url: "https://huggingface.co/bartowski/Mistral-7B-Instruct-v0.3-GGUF/resolve/main/Mistral-7B-Instruct-v0.3-Q4_K_M.gguf" - qwen-7b: - name: "Qwen 2.5 7B Instruct" - tier: "entry" - license: "Apache-2.0" - sizeGb: 4.7 - huggingface: "bartowski/Qwen2.5-7B-Instruct-GGUF" - filename: "Qwen2.5-7B-Instruct-Q4_K_M.gguf" - url: "https://huggingface.co/bartowski/Qwen2.5-7B-Instruct-GGUF/resolve/main/Qwen2.5-7B-Instruct-Q4_K_M.gguf" - qwen-32b: - name: "Qwen 2.5 32B Instruct" - tier: "mid" - license: "Apache-2.0" - sizeGb: 19.9 - huggingface: "bartowski/Qwen2.5-32B-Instruct-GGUF" - filename: "Qwen2.5-32B-Instruct-Q4_K_M.gguf" - url: "https://huggingface.co/bartowski/Qwen2.5-32B-Instruct-GGUF/resolve/main/Qwen2.5-32B-Instruct-Q4_K_M.gguf" - mixtral-8x7b: - name: "Mixtral 8x7B Instruct v0.1" - tier: "mid" - license: "Apache-2.0" - sizeGb: 26.4 - huggingface: "TheBloke/Mixtral-8x7B-Instruct-v0.1-GGUF" - filename: "mixtral-8x7b-instruct-v0.1.Q4_K_M.gguf" - url: "https://huggingface.co/TheBloke/Mixtral-8x7B-Instruct-v0.1-GGUF/resolve/main/mixtral-8x7b-instruct-v0.1.Q4_K_M.gguf" - mixtral-8x22b: - name: "Mixtral 8x22B Instruct v0.1" - tier: "large" - license: "Apache-2.0" - sizeGb: 67.8 - huggingface: "MaziyarPanahi/Mixtral-8x22B-Instruct-v0.1-GGUF" - filename: "Mixtral-8x22B-Instruct-v0.1.Q3_K_M.gguf" - url: "https://huggingface.co/MaziyarPanahi/Mixtral-8x22B-Instruct-v0.1-GGUF/resolve/main/Mixtral-8x22B-Instruct-v0.1.Q3_K_M.gguf" - deepseek-r1: - name: "DeepSeek R1 671B" - tier: "flagship" - license: "MIT" - sizeGb: 161 - shards: 9 - subdir: "DeepSeek-R1-Q2_K" - filenameBase: "DeepSeek-R1-Q2_K" - filename: "DeepSeek-R1-Q2_K-00001-of-00009.gguf" - huggingface: "unsloth/DeepSeek-R1-GGUF" - baseUrl: "https://huggingface.co/unsloth/DeepSeek-R1-GGUF/resolve/main/DeepSeek-R1-Q2_K" - coding: - qwen-coder-7b: - name: "Qwen 2.5 Coder 7B Instruct" - tier: "entry" - license: "Apache-2.0" - sizeGb: 4.7 - huggingface: "bartowski/Qwen2.5-Coder-7B-Instruct-GGUF" - filename: "Qwen2.5-Coder-7B-Instruct-Q4_K_M.gguf" - url: "https://huggingface.co/bartowski/Qwen2.5-Coder-7B-Instruct-GGUF/resolve/main/Qwen2.5-Coder-7B-Instruct-Q4_K_M.gguf" - granite-8b: - name: "IBM Granite 8B Code Instruct 128K" - tier: "entry" - license: "Apache-2.0" - sizeGb: 4.6 - huggingface: "RichardErkhov/ibm-granite_-_granite-8b-code-instruct-128k-gguf" - filename: "granite-8b-code-instruct-128k.Q4_K_M.gguf" - url: "https://huggingface.co/RichardErkhov/ibm-granite_-_granite-8b-code-instruct-128k-gguf/resolve/main/granite-8b-code-instruct-128k.Q4_K_M.gguf" - qwen-coder-14b: - name: "Qwen 2.5 Coder 14B Instruct" - tier: "mid" - license: "Apache-2.0" - sizeGb: 14.9 - huggingface: "bartowski/Qwen2.5-Coder-14B-Instruct-GGUF" - filename: "Qwen2.5-Coder-14B-Instruct-Q8_0.gguf" - url: "https://huggingface.co/bartowski/Qwen2.5-Coder-14B-Instruct-GGUF/resolve/main/Qwen2.5-Coder-14B-Instruct-Q8_0.gguf" - qwen-coder-32b: - name: "Qwen 2.5 Coder 32B Instruct" - tier: "mid" - license: "Apache-2.0" - sizeGb: 19.9 - huggingface: "bartowski/Qwen2.5-Coder-32B-Instruct-GGUF" - filename: "Qwen2.5-Coder-32B-Instruct-Q4_K_M.gguf" - url: "https://huggingface.co/bartowski/Qwen2.5-Coder-32B-Instruct-GGUF/resolve/main/Qwen2.5-Coder-32B-Instruct-Q4_K_M.gguf" - mixtral-8x22b: - name: "Mixtral 8x22B Instruct v0.1" - tier: "large" - license: "Apache-2.0" - sizeGb: 67.8 - huggingface: "MaziyarPanahi/Mixtral-8x22B-Instruct-v0.1-GGUF" - filename: "Mixtral-8x22B-Instruct-v0.1.Q3_K_M.gguf" - url: "https://huggingface.co/MaziyarPanahi/Mixtral-8x22B-Instruct-v0.1-GGUF/resolve/main/Mixtral-8x22B-Instruct-v0.1.Q3_K_M.gguf" - deepseek-r1: - name: "DeepSeek R1 671B" - tier: "flagship" - license: "MIT" - sizeGb: 161 - shards: 9 - subdir: "DeepSeek-R1-Q2_K" - filenameBase: "DeepSeek-R1-Q2_K" - filename: "DeepSeek-R1-Q2_K-00001-of-00009.gguf" - huggingface: "unsloth/DeepSeek-R1-GGUF" - baseUrl: "https://huggingface.co/unsloth/DeepSeek-R1-GGUF/resolve/main/DeepSeek-R1-Q2_K" - - # Image generation models — downloaded by image-agent via HuggingFace Hub. - # The selected preset's huggingface repo ID is passed as IMAGE_MODEL_ID env var. - image: - preset: "juggernautxl" # juggernautxl (default) | cogview3-plus | auraflow | cogview4 (large GPU) - catalog: - juggernautxl: - name: "JuggernautXL v9" - tier: "balanced" - license: "OpenRAIL-M" - sizeGb: 7 - huggingface: "RunDiffusion/Juggernaut-XL-v9" - cogview3-plus: - name: "CogView3-Plus 3B" - tier: "entry" - license: "Apache-2.0" - sizeGb: 26 - huggingface: "THUDM/CogView3-Plus-3B" - auraflow: - name: "AuraFlow v0.3" - tier: "mid" - license: "Apache-2.0" - sizeGb: 16.5 - huggingface: "fal/AuraFlow-v0.3" - cogview4: - name: "CogView4 6B (large GPU — needs >24GB VRAM / large PVC)" - tier: "large" - license: "Apache-2.0" - sizeGb: 31.1 - huggingface: "THUDM/CogView4-6B" - # hidream-i1 intentionally omitted: the image agent does not yet support - # HiDream-I1's multi-encoder setup (load_dit_pipeline rejects it), and at - # 17B/~47GB it doesn't fit common GPUs. Re-add once the agent supports it. - - # Video generation models — downloaded by video-agent via HuggingFace Hub. - # The preset key is passed to the agent as DEFAULT_VIDEO_MODEL (must match a key - # in the agent's model catalog). Keys/repos below mirror agents/video_agent/main.py. - # - # DEFAULT IS wan-2.1 (14B) — production-quality output. It needs a ~48GB GPU - # (L40S / A100) to run at full speed; it also fits 16–24GB GPUs (A10G/4090) via - # CPU offload, just slower. On smaller GPUs, switch preset to "wan-2.1-1.3b". - # Set preset: "auto" to let the agent pick by detected VRAM. - video: - preset: "wan-2.1" # wan-2.1(14B) | wan-2.1-1.3b | cogvideox-5b | ltx-video | auto - # Default output quality/resolution when a request omits it (the gateway reads this - # as DEFAULT_VIDEO_QUALITY). Higher = sharper + slower + more VRAM. A per-request - # "quality_preset" (or explicit width/height/fps/steps) always overrides this. - # proxy(512x320) draft(640x480) preview(768x512) sd/hd(768x512) 720p(1280x720) - # 1080p(1920x1080) 2k(2560x1440) 4k(3840x2160) - defaultQuality: "draft" - catalog: - wan-2.1-1.3b: - name: "Wan 2.1 T2V 1.3B" - tier: "entry" # fits 8–24GB GPUs; fast but low fidelity - license: "Apache-2.0" - sizeGb: 17 - huggingface: "Wan-AI/Wan2.1-T2V-1.3B-Diffusers" - ltx-video: - name: "LTX-Video 0.9.7 Distilled" - tier: "fast" # distilled, low VRAM, quick - license: "Apache-2.0" - sizeGb: 20 - huggingface: "Lightricks/LTX-Video-0.9.7-distilled" - cogvideox-5b: - name: "CogVideoX 5B" - tier: "mid" # ~16GB VRAM with offload; better coherence - license: "Apache-2.0" - sizeGb: 22 - huggingface: "THUDM/CogVideoX-5b" - wan-2.1: - name: "Wan 2.1 T2V 14B" - tier: "flagship" # DEFAULT — needs ~48GB GPU for speed (offloads on 16–24GB) - license: "Apache-2.0" - sizeGb: 40 - huggingface: "Wan-AI/Wan2.1-T2V-14B-Diffusers" - wan-2.2: - name: "Wan 2.2 T2V A14B" - tier: "flagship" # MoE 14B-active; highest quality, needs 48GB+ - license: "Apache-2.0" - sizeGb: 55 - huggingface: "Wan-AI/Wan2.2-T2V-A14B-Diffusers" - -# --------------------------------------------------------------------------- -# Data directory -# --------------------------------------------------------------------------- -# All services write to the same PVC mounted at dataDir. -# Override with GRIDLIGHT_DATA_DIR to use a host-path or different mount. -dataDir: "/gridlight-data" - -# Shared persistent volume claim for model files and data. -pvc: - enabled: true - storageClassName: "" # leave blank for cluster default - size: "100Gi" - accessMode: ReadWriteOnce - -# --------------------------------------------------------------------------- -# Shared model cache (FLEET-001b) — OPTIONAL, default OFF -# --------------------------------------------------------------------------- -# When enabled, LLM models are downloaded ONCE by a pre-install/pre-upgrade "model-warmer" -# Job into a shared ReadWriteMany volume, and every llm pod mounts that volume read-only and -# reads its model from it — no per-pod download, no duplicate storage, and no N-pod download -# race on a shared path (the single warmer Job is the only writer). -# -# Requires a ReadWriteMany PVC you provision yourself (the chart references it, it does not -# create it) — e.g. an EFS-backed PVC on EKS. Leave disabled for single-node / EBS-only -# installs (llm agents then use their own storage.mode, as before). -# -# Scope: LLM agents (large GGUF files — the case where download dedup matters). embed -# (~274 MB) and the HuggingFace-cached image/video/stt/voice agents are out of scope here. -modelCache: - enabled: false - existingClaim: "" # REQUIRED when enabled: name of a pre-provisioned RWX PVC - path: "/gridlight-cache" # mount path for the shared cache inside agent + warmer pods - -# --------------------------------------------------------------------------- -# Gateway -# --------------------------------------------------------------------------- -gateway: - deploy: true - image: - repository: "{{ .Values.global.imageRegistry }}/gateway" - tag: "{{ .Values.global.imageTag }}" - pullPolicy: "{{ .Values.global.imagePullPolicy }}" - replicas: 1 - port: 8080 - service: - type: ClusterIP - port: 8080 - # Idle timeout (seconds) for cloud load balancers. Image/video generation are - # long synchronous requests; the default 60s cuts them off ("Load failed"). - # Applied to AWS ELBs via annotation; for other LBs set service.annotations. - idleTimeoutSeconds: 600 - # Extra Service annotations (e.g. NLB selection, ACM cert, other LB tuning). - annotations: {} - resources: - requests: - cpu: "500m" - memory: "512Mi" - limits: - cpu: "2" - memory: "1Gi" - nodeSelector: {} - tolerations: [] - affinity: {} - # Volume fsGroup for the shared data PVC. The mount root is group-1000-owned (the - # Python agents init it with fsGroup 1000); the gateway runs non-root (uid/gid 999), - # so it needs this gid as a supplemental group to persist its activation signing - # secret under $GRIDLIGHT_DATA_DIR/.gridlight. Keep aligned with the agents' fsGroup. - fsGroup: 1000 - # TFLOPs this deployment claims from the license pool (0 = use full license allowance). - tflopRequested: 0 - # Stable license fingerprint. Leave blank to auto-derive a deterministic value from - # the Helm release (recommended) — this keeps one license allocation across pod - # restarts instead of registering phantom gateways. Set explicitly only to share a - # gateway identity across separate installs/clusters. - licenseFingerprint: "" - # License server URL. Override for air-gapped installs pointing at an on-prem server. - licenseServerUrl: "https://license.gridlight.ai" - # Gateway mode: "" = full (Neo4j + Qdrant), "lite" = SQLite-only (no Neo4j entity resolution). - mode: "" - # Comma-separated list of allowed CORS origins for browser clients. - # Leave blank to allow all origins (permissive — safe for VPN-only deployments). - # Set when exposing the gateway via Ingress to restrict to known origins. - # Example: "https://app.example.com,https://admin.example.com" - corsOrigins: "" - # Escape hatch for advanced gateway tuning. Any key/value pair here is - # injected as an env var on the gateway container. Useful for: - # QUERY_EXPANSION_ENABLED: "false" # disable LLM query expansion (reduces latency) - # RAG_INITIAL_CANDIDATES: "30" # more candidates = better recall, more compute - # NEO4J_ENTITY_RESOLUTION_TIMEOUT_MS: "500" # cap Neo4j latency impact - # LATENCY_LOG_BREAKDOWN: "true" # per-component latency logging - # INTERACTIONS_ENABLED: "true" # enable interaction logging for analytics - # RUST_LOG: "debug" # verbose logging for troubleshooting - # GATEWAY_ROUTING_MODE: "auto" # 1.1.3: enable intent auto-routing (default: explicit/off) - # GATEWAY_TFLOPS_REQUESTED: "182" # REQUIRED on big GPUs: set to your license TFLOPS ceiling. - # # The gateway otherwise self-allocates a default (~100) and - # # rejects agents whose hardware exceeds it ("would exceed - # # TFLOPS ceiling"), even if the license has more available. - # # In heartbeat-licensing mode the gateway cannot auto-discover - # # the ceiling, so set this to the value shown at license.gridlight.ai. - env: {} - -# --------------------------------------------------------------------------- -# PostgreSQL (in-cluster) -# --------------------------------------------------------------------------- -# WARNING: Setting deploy: false disables the in-cluster PostgreSQL instance. -# PostgreSQL stores all conversation history, uploaded document metadata, -# and TFLOP allocation records. Without it, NO context is saved across -# sessions and the gateway will fail to start. Only set to false if you are -# providing an external PostgreSQL instance via gateway.env (DATABASE_URL). -postgres: - deploy: true - image: "postgres:16-bookworm" - port: 5432 - database: "gridlight" - user: "gridlight" - # Password comes from auth.postgresPassword via Secret - resources: - requests: - cpu: "250m" - memory: "512Mi" - limits: - cpu: "2" - memory: "2Gi" - storage: - size: "20Gi" - storageClassName: "" - -# --------------------------------------------------------------------------- -# Qdrant (in-cluster) -# --------------------------------------------------------------------------- -# WARNING: Setting deploy: false disables vector search (QDRANT_ENABLED and -# SEMANTIC_SEARCH_ENABLED are set to false automatically). RAG queries will -# fall back to keyword search only — semantic similarity matching is lost, -# which significantly reduces answer quality for long documents. -qdrant: - deploy: true - image: "qdrant/qdrant:v1.10.0" - grpcPort: 6334 - httpPort: 6333 - collection: "gridlight" - resources: - requests: - cpu: "250m" - memory: "1Gi" - limits: - cpu: "2" - memory: "4Gi" - storage: - size: "20Gi" - storageClassName: "" - -# --------------------------------------------------------------------------- -# Neo4j (in-cluster) -# --------------------------------------------------------------------------- -# WARNING: Setting deploy: false disables the knowledge graph (NEO4J_ENABLED -# is set to false automatically). Entity resolution, relationship-aware -# retrieval, and graph-hop context expansion are all disabled — the gateway -# falls back to GRIDLIGHT_MODE=lite (SQLite-only). Complex multi-hop queries -# and document relationship graphs will not be available. -neo4j: - deploy: true - image: "neo4j:5.18-community" - boltPort: 7687 - httpPort: 7474 - user: "neo4j" - # Password comes from auth.neo4jPassword via Secret - jvm: - heapInitial: "512m" - heapMax: "1G" - pagecache: "512m" - resources: - requests: - cpu: "500m" - memory: "2Gi" - limits: - cpu: "3" - memory: "4Gi" - storage: - size: "10Gi" - storageClassName: "" - -# --------------------------------------------------------------------------- -# LLM Agent fleet (FLEET-002) -# --------------------------------------------------------------------------- -# Declare MULTIPLE LLM agents, each with its own model, storage, and node pool. All -# instances register with the one gateway, which load-balances across them. When this list -# is non-empty it REPLACES the singular `llmAgent:` block below (which is deprecated and kept -# only for backward compatibility — existing installs keep working untouched). -# -# Each entry fields: name (required, DNS-safe), deploy, model{category,preset|modelPath}, -# replicas, storage{mode,size,accessMode,storageClassName}, resources, nodeSelector, -# tolerations, affinity, device, env, port. (replicas>1 + storage.mode ownPvc → StatefulSet.) -# -# Example — three different models across GPU pools: -# llmAgents: -# - name: qwen -# model: { preset: qwen-7b } -# storage: { mode: ownPvc, size: 20Gi } -# nodeSelector: { gridlight.ai/pool: gpu-a10g } -# - name: mistral -# model: { preset: mistral-7b } -# storage: { mode: ownPvc, size: 20Gi } -# nodeSelector: { gridlight.ai/pool: gpu-a10g } -# - name: big -# model: { preset: qwen-32b } -# storage: { mode: ownPvc, size: 40Gi } -# resources: { limits: { nvidia.com/gpu: "1" } } -# nodeSelector: { gridlight.ai/pool: gpu-a100 } -llmAgents: [] - -# --------------------------------------------------------------------------- -# LLM Agent (Rust, port 8001) — DEPRECATED singular form; use llmAgents[] above for fleets. -# Used as the single "agent" instance when llmAgents is empty (backward-compatible default). -# --------------------------------------------------------------------------- -llmAgent: - deploy: true - image: - repository: "{{ .Values.global.imageRegistry }}/agent" - tag: "{{ .Values.global.imageTag }}" - pullPolicy: "{{ .Values.global.imagePullPolicy }}" - port: 8001 - # Override the model path used by llama-server. Leave empty to auto-derive - # from models.llm.catalog. Set this only when using a pre-staged model - # outside the catalog (also set bootstrap.enabled=false in that case). - modelPath: "" - # CPU-only mode: set to "cpu" to bypass GPU detection - # device: "" - # Storage for the model volume (FLEET-001): - # shared — mount the shared {release}-data PVC (DEFAULT; current/backward-compatible). - # ownPvc — dedicated PVC for this agent so it can run on its own node pool. - # emptyDir — per-pod ephemeral volume; re-downloads on restart (small models only). - # Leave as "shared" for single-node installs. Switch to "ownPvc" when spreading a fleet - # across node pools. (replicas>1 + ownPvc → StatefulSet arrives in FLEET-003.) - # CAVEATS when changing mode on an existing install: (1) switching TO ownPvc creates a - # fresh empty PVC, so the model re-downloads (multi-GB for the LLM); (2) switching AWAY - # from ownPvc leaves the old per-agent PVC behind (it carries resource-policy: keep, so - # delete it manually if you don't want the orphaned storage). - storage: - mode: shared - size: "100Gi" # ownPvc PVC request / emptyDir sizeLimit - accessMode: ReadWriteOnce # ownPvc only — ReadWriteOnce | ReadWriteOncePod (EBS-only) - # storageClassName: "" # ownPvc only; falls back to pvc.storageClassName - resources: - requests: - cpu: "2" - memory: "8Gi" - limits: - cpu: "8" - memory: "16Gi" - nodeSelector: {} - tolerations: [] - affinity: {} - env: {} - -# --------------------------------------------------------------------------- -# Embed Agent fleet (FLEET-002) -# --------------------------------------------------------------------------- -# Multiple embed agents (same fields as llmAgents[]). When non-empty this REPLACES the -# singular embedAgent: block below. The embed↔llm co-location affinity only applies to the -# legacy "agent" instance in shared mode; list instances on ownPvc/emptyDir schedule freely. -embedAgents: [] - -# --------------------------------------------------------------------------- -# Embed Agent (Rust, port 8002) — DEPRECATED singular form; use embedAgents[] for fleets. -# Used as the single "agent" instance when embedAgents is empty (backward-compatible default). -# --------------------------------------------------------------------------- -embedAgent: - deploy: true - image: - repository: "{{ .Values.global.imageRegistry }}/agent" - tag: "{{ .Values.global.imageTag }}" - pullPolicy: "{{ .Values.global.imagePullPolicy }}" - port: 8002 - # Path to the embedding .gguf model file inside the container. - # Defaults to the bootstrap download destination. - modelPath: "/gridlight-data/models/embeddings/nomic-embed-text-v1.5.Q4_0.gguf" - # Storage for the embedding model volume (FLEET-001): - # shared — share the {release}-data PVC with llm-agent (DEFAULT; co-locates on one - # node under RWO — current/backward-compatible behavior). - # ownPvc — dedicated PVC so embed can move to a cheap CPU node pool (drops the - # llm co-location affinity). The nomic model is ~274 MB, so a small PVC. - # emptyDir — per-pod ephemeral; re-downloads the ~274 MB model on restart. - # To isolate embed onto CPU nodes: set mode "ownPvc" (or "emptyDir") AND a CPU nodeSelector. - storage: - mode: shared - size: "2Gi" # ownPvc PVC request / emptyDir sizeLimit (~274 MB model) - accessMode: ReadWriteOnce # ownPvc only — ReadWriteOnce | ReadWriteOncePod (EBS-only) - # storageClassName: "" # ownPvc only; falls back to pvc.storageClassName - resources: - requests: - cpu: "1" - memory: "2Gi" - limits: - cpu: "4" - memory: "6Gi" - nodeSelector: {} - tolerations: [] - affinity: {} - env: {} - -sttAgents: [] # FLEET-002/005 fleet form (fields + modelSize/computeType per instance); replaces sttAgent when non-empty -# --------------------------------------------------------------------------- -# STT Agent (Python / faster-whisper, port 8004) — DEPRECATED singular; use sttAgents[]. -# --------------------------------------------------------------------------- -sttAgent: - deploy: true - image: - repository: "{{ .Values.global.imageRegistry }}/agent-stt" - tag: "{{ .Values.global.imageTag }}" - pullPolicy: "{{ .Values.global.imagePullPolicy }}" - port: 8004 - # Whisper model size: tiny (39MB), base (74MB), small (244MB), medium (769MB), large-v3 (1.5GB) - modelSize: "tiny" - # Quantization: auto, float16, int8 (int8 recommended for CPU) - computeType: "auto" - resources: - requests: - cpu: "500m" - memory: "512Mi" - limits: - cpu: "4" - memory: "4Gi" - nodeSelector: {} - tolerations: [] - affinity: {} - env: {} - -# --------------------------------------------------------------------------- -# Image Agent fleet (FLEET-002/004) -# --------------------------------------------------------------------------- -# Multiple image agents, each its own model + storage + GPU node. Fields like llmAgents[], -# plus model.preset (image catalog key) and fsGroup. When non-empty this REPLACES imageAgent:. -# Example: -# imageAgents: -# - { name: jugg, model: { preset: juggernautxl }, storage: { mode: ownPvc, size: 20Gi } } -# - { name: flux, model: { preset: auraflow }, storage: { mode: ownPvc, size: 30Gi } } -imageAgents: [] - -# --------------------------------------------------------------------------- -# Image Agent (Python / diffusers, port 8005) — DEPRECATED singular; use imageAgents[] for fleets. -# --------------------------------------------------------------------------- -imageAgent: - deploy: true - image: - repository: "{{ .Values.global.imageRegistry }}/agent-image" - tag: "{{ .Values.global.imageTag }}" - pullPolicy: "{{ .Values.global.imagePullPolicy }}" - port: 8005 - resources: - requests: - cpu: "2" - memory: "8Gi" - limits: - cpu: "8" - memory: "16Gi" - nodeSelector: {} - tolerations: [] - affinity: {} - env: {} - -voiceAgents: [] # FLEET-002/005 fleet form (fields + defaultVoice per instance); replaces voiceAgent when non-empty -# --------------------------------------------------------------------------- -# Voice Agent (Python / Piper TTS, port 8006) — DEPRECATED singular; use voiceAgents[]. -# --------------------------------------------------------------------------- -voiceAgent: - deploy: true - image: - repository: "{{ .Values.global.imageRegistry }}/agent-voice" - tag: "{{ .Values.global.imageTag }}" - pullPolicy: "{{ .Values.global.imagePullPolicy }}" - port: 8006 - defaultVoice: "en_US-amy-medium" - resources: - requests: - cpu: "250m" - memory: "512Mi" - limits: - cpu: "2" - memory: "2Gi" - nodeSelector: {} - tolerations: [] - affinity: {} - env: {} - -# --------------------------------------------------------------------------- -# Video Agent (Python / diffusers, port 8007) -# --------------------------------------------------------------------------- -# OFF by default (needs its own GPU) but validated end-to-end. The default model -# (models.video.preset) is wan-2.1 (14B, production quality). -# -# GPU SIZING — this is the important one: -# • wan-2.1 (14B, DEFAULT): best on a ~48GB GPU (L40S / A100). It also runs on a -# 16–24GB GPU (A10G/4090) via CPU offload (VIDEO_OFFLOAD_MODE=model) — slower, -# and needs the larger host-memory limit below for the offloaded weights. -# • On smaller GPUs, set models.video.preset to "wan-2.1-1.3b" (fits 8–24GB) or -# "auto" (agent picks by detected VRAM). -# The image already bundles the fast plain-GET model downloader (Xet repos otherwise -# stall in huggingface_hub). Models are large (17–55 GB) and slow on first generate. -# The video agent is single-concurrency: it returns 429 while a generation is in -# flight, and a client disconnect does NOT cancel the in-flight job. For concurrent -# video, run multiple replicas. Object storage / async generation tracked in GRD-2354. -videoAgents: [] # FLEET-002/004 fleet form (fields like imageAgents[] + offloadMode); replaces videoAgent when non-empty -videoAgent: - deploy: false - # Replicas >1 enable parallel generation (the agent is single-concurrency and returns - # 429 while busy). Each replica needs its own model storage: set pvc.enabled=false - # (emptyDir per pod — re-downloads the model) or use a ReadWriteMany storage class. - # The default ReadWriteOnce PVC can only attach to a single pod. - replicas: 1 - image: - repository: "{{ .Values.global.imageRegistry }}/agent-video" - tag: "{{ .Values.global.imageTag }}" - pullPolicy: "{{ .Values.global.imagePullPolicy }}" - port: 8007 - # CPU offload mode for large models: auto | none | model | sequential. - # "model" keeps the 14B default within VRAM on 16–24GB GPUs; "none" is fastest on - # a 48GB GPU that fits the whole pipeline. - offloadMode: "model" - resources: - requests: - cpu: "2" - memory: "16Gi" - limits: - cpu: "8" - # 56Gi headroom for CPU-offloaded 14B weights; lower to 24Gi if pinning a - # small model (wan-2.1-1.3b) that stays resident on the GPU. - memory: "56Gi" - nvidia.com/gpu: "1" # video generation requires a GPU - # Schedule onto a large-VRAM GPU node, e.g.: - # nodeSelector: { node.kubernetes.io/instance-type: g6e.2xlarge } # L40S 48GB - nodeSelector: {} - tolerations: [] - affinity: {} - env: {} - -# --------------------------------------------------------------------------- -# Ingress -# --------------------------------------------------------------------------- -ingress: - enabled: false - # ingressClassName: "nginx" - host: "" - # tls: [] - annotations: {}