Browser-based admin surface and backend orchestrator for InfluxDB Enterprise v1.10.x on Kubernetes.
This repository is intentionally narrow:
- InfluxDB Enterprise v1.10.x only
- Greenfield-only cluster management
- One managed cluster per Kubernetes namespace
- Backend-owned Kubernetes access only
- Secret refs only in app state and persisted data
For the full scope and exclusions, see docs/operator-guide.md.
Before you start, install or prepare the following:
- Node.js 22.12.0 or newer (
package.jsonrequires>=22.12.0) - pnpm 9.15.4 via Corepack (the repo is pinned to
pnpm@9.15.4) - PostgreSQL 16 for the orchestrator database
- Docker + Docker Compose if you want to use the included local PostgreSQL service
- Playwright Chromium only if you plan to run browser tests:
corepack pnpm exec playwright install chromium
- kind + Docker only if you plan to run the kind-backed Kubernetes verification:
corepack pnpm kind:test
Local app development does not require kind. By default, local browser and dev flows use the in-memory Kubernetes control plane.
corepack pnpm installThe repository includes docker-compose.yml with PostgreSQL 16.8 on 127.0.0.1:5432 and the same credentials used by the sample orchestrator env file.
docker compose up -d postgresIf you prefer your own PostgreSQL instance, make sure it matches the connection string you put in apps/orchestrator/.env.
cp apps/orchestrator/.env.example apps/orchestrator/.envThe default example is:
PORT=4000
HOST=127.0.0.1
DATABASE_URL=postgres://influx_admin:influx_admin@127.0.0.1:5432/influx_admin
DATABASE_SCHEMA=publiccorepack pnpm --filter @influxdb-enterprise-v1-k8s-admin/orchestrator migratecorepack pnpm devThis starts:
- the web app on
http://127.0.0.1:5173 - the orchestrator on
http://127.0.0.1:4000
The Vite dev server proxies browser /api/* requests to the orchestrator, so you should open the web app rather than calling the web and API servers separately for normal first-run usage.
Open:
http://127.0.0.1:5173/bootstrap
Then create the one-time admin account in the UI. The bootstrap page requires:
- a username
- a display name
- a password with at least 12 characters
After bootstrap succeeds, the app redirects you into workspace setup. On later runs, use http://127.0.0.1:5173/login instead of bootstrapping again.
Once the app is running, the main operator flow is:
- Bootstrap the first admin user on
/bootstrap. - Create a workspace on
/workspace/newby choosing a cluster slug and Kubernetes namespace.- The starter cluster seeds a safe default desired state with 3 meta nodes and 2 data nodes.
- Configure Meta Nodes on
/clusters/<cluster-id>/meta.- Edit cluster policy, meta topology, TLS, and secret refs.
- Run a preview first, then apply the desired meta state.
- Configure Data Nodes on
/clusters/<cluster-id>/data.- Edit data topology, storage refs, and HTTP/TLS-related settings.
- Run a preview first, then apply the desired data state.
- Review and apply Kubernetes changes on
/clusters/<cluster-id>/kubernetes.- Preview TOML diffs, Kubernetes resource diffs, and the execution plan.
- Apply the namespace-scoped bundle from the backend-owned Kubernetes path. Kubernetes apply is Admin-only.
- Use Operations on
/clusters/<cluster-id>/operations.- Review drift and journal evidence.
- Run allowlisted lifecycle actions such as
status-refresh,reapply-config,restart-rollout, and add/replace node flows. Lifecycle execution is Admin-only.
- Normal local dev uses the in-memory Kubernetes control plane.
- If you intentionally want to verify against a real local cluster, set
ORCHESTRATOR_ENABLE_REAL_K8S=truebefore starting the orchestrator. corepack pnpm kind:testis the repo's real kind-backed verification path, explicitly enables real Kubernetes, and requires Docker plus an active kind-backed kubeconfig context.
| Purpose | Command | Notes |
|---|---|---|
| Start web + orchestrator in dev | corepack pnpm dev |
Runs both packages together. |
| Build the workspace | corepack pnpm build |
Recursive workspace build. |
| Lint | corepack pnpm lint |
Repository-wide ESLint pass. |
| Unit and integration tests | corepack pnpm test |
Requires PostgreSQL for orchestrator-backed tests. |
| API contract verification | corepack pnpm api:contract |
Checks shared request/response shapes and golden output. |
| Playwright e2e | corepack pnpm e2e |
Install Chromium first with corepack pnpm exec playwright install chromium. |
| kind-backed Kubernetes verification | corepack pnpm kind:test |
Requires Docker and an active kind-backed kubeconfig context. |
| Formatting check | corepack pnpm format |
Runs prettier --check .. |
| Package | Command | Purpose |
|---|---|---|
apps/orchestrator |
corepack pnpm --filter @influxdb-enterprise-v1-k8s-admin/orchestrator migrate |
Apply database migrations. |
apps/orchestrator |
corepack pnpm --filter @influxdb-enterprise-v1-k8s-admin/orchestrator dev |
Run only the orchestrator. |
apps/web |
corepack pnpm --filter @influxdb-enterprise-v1-k8s-admin/web dev |
Run only the web app. |
apps/web |
corepack pnpm --filter @influxdb-enterprise-v1-k8s-admin/web preview |
Serve the built web app locally on port 4173. |
docs/operator-guide.md— supported scope, secret model, bootstrap flow, and excluded operationsdocs/verification-matrix.md— local/dev/test commands, prerequisites, and CI verification behavior