> ## Documentation Index
> Fetch the complete documentation index at: https://delivery.vexa.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# GKE

> Running the kit on GKE Standard.

**Google Kubernetes Engine, Standard — `--provider gcp-gke`.** The generic [Kubernetes requirements](/environments/kubernetes) apply unchanged; below is the delta.

## Status

**Provider profile implemented; not yet validated by a station run in a real GKE cluster.** `kit/providers/gcp-gke/profile.env` carries `PROFILE_TESTED=no`, and the installer prints that on every run — *this profile is declared, not yet exercised end-to-end; expect deltas.* The deltas below are named from Google's documentation, not measured by us. The first subscriber on GKE validates this page: the [preflight](/preflight), smoke and [station](/station-gate) reports from that install are the evidence, and this line changes when they exist.

## What the provider profile configures

`install.sh` has no per-provider branches — provider differences live only in `kit/providers/<name>/profile.env`. The `gcp-gke` file sets the same pinned versions every profile sets, Argo CD `v3.5.1` and Kyverno `v1.19.0`, and nothing else. It selects no storage class, no load-balancer annotation, no ingress and no node selector. Those are your cluster's own configuration. Preflight checks the storage class (P8) and the pull path to the channel (P5, P7); it reads **no** load-balancer or ingress state at all, so that row is yours to confirm.

## What the cluster must provide

| Requirement                                                                                                                       | Why                                                                                                                           |
| --------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
| **Standard, not Autopilot**                                                                                                       | Autopilot enforces its own mutation and resource limits, so preflight P2 and P4 read differently there. Autopilot is untried. |
| A default StorageClass                                                                                                            | GKE ships `standard-rwo` as default, so P8 passes as it stands                                                                |
| LoadBalancer Services **or** an ingress you manage                                                                                | reaching the gateway and dashboard                                                                                            |
| Kubernetes ≥ 1.29                                                                                                                 | the P9 floor                                                                                                                  |
| Outbound reachability to the channel registry, or your own mirror                                                                 | the subscription pulls; nothing pushes in                                                                                     |
| 2 nodes × 4 vCPU / 8 GB, plus headroom per concurrent meeting bot — it requests 500m / 1Gi and its limit ships at 2 vCPU / 2560Mi | measured on the reference environment: p50 922Mi, max 1292Mi across 10 bots                                                   |

Next: [Install](/install) · [Preflight](/preflight) · [Kubernetes](/environments/kubernetes)
