Grove Platform

An internal developer platform — deploy an app in two commands.

Grove turns a git repo into a running, previewable, promotable application: per-environment URLs, per-PR preview deployments, GitOps sync, image promotion with a production gate, dashboards, and single-sign-on — all provisioned from one declarative config, no tickets.

Access is invite-only

The platform, its services, and every deployed app live behind a private mesh. Public visitors see only this page and the sign-in / mesh endpoints. To get in you need a platform identity and a mesh connection:

Join the mesh

Already have an account? Three steps to get connected:

  1. Install the NetBird clientapp.netbird.io/install (macOS, Linux, Windows).
  2. Connect. Point the client at this platform's mesh:
    netbird up --management-url https://api.vpn.<domain>
    A browser opens for single sign-on at login.<domain> — approve it and your device joins.
  3. Verify. netbird status should report Connected. You can now reach every *.internal.<domain> service — see “Once you're connected” below.

No account yet? See “Access is invite-only” above — ask your platform team first.

Once you're connected

Two places to go first — both are mesh-only, so these links work only after the steps above:

Not a developer? Start at the dashboard — the team wiki, boards, chat, and whiteboard are one click from there — and skip the kubectl section below. The docs have a Using the platform page written for you.

Connect kubectl to the cluster (developers)

Cluster access goes through the kubectl-grove plugin — one binary that is both the Grove CLI (kubectl grove …) and the OIDC credential helper kubectl uses to sign you in. Install it now (public download, no mesh needed):

OS=$(uname -s | tr '[:upper:]' '[:lower:]')
ARCH=$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/')
curl -fsSL -o kubectl-grove \
  "https://www.<domain>/downloads/kubectl-grove-${OS}-${ARCH}"
chmod +x kubectl-grove && sudo mv kubectl-grove /usr/local/bin/

The platform hosts its own builds — /downloads/ lists all of them (macOS & Linux, arm64 & amd64, plus SHA256SUMS), always the version matching this cluster. Then — after joining the mesh, since the kubeconfig endpoint is mesh-gated — fetch your kubeconfig:

kubectl grove login <domain>

Your first kubectl call opens a browser for single sign-on at login.<domain>; after that, tokens refresh automatically.

Contact

Questions, access requests, or something broken? Reach the platform team: