Skip to content

Repository files navigation

InfluxDB Enterprise v1 Kubernetes Admin

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.

Prerequisites

Before you start, install or prepare the following:

  • Node.js 22.12.0 or newer (package.json requires >=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.

First-time local setup

1) Install dependencies

corepack pnpm install

2) Start PostgreSQL

The 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 postgres

If you prefer your own PostgreSQL instance, make sure it matches the connection string you put in apps/orchestrator/.env.

3) Create the orchestrator env file

cp apps/orchestrator/.env.example apps/orchestrator/.env

The 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=public

4) Run database migrations

corepack pnpm --filter @influxdb-enterprise-v1-k8s-admin/orchestrator migrate

5) Start the development servers

corepack pnpm dev

This 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.

6) Bootstrap the first admin user

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.

Primary usage flow

Once the app is running, the main operator flow is:

  1. Bootstrap the first admin user on /bootstrap.
  2. Create a workspace on /workspace/new by choosing a cluster slug and Kubernetes namespace.
    • The starter cluster seeds a safe default desired state with 3 meta nodes and 2 data nodes.
  3. 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.
  4. 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.
  5. 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.
  6. 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.

Local Kubernetes behavior

  • 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=true before starting the orchestrator.
  • corepack pnpm kind:test is the repo's real kind-backed verification path, explicitly enables real Kubernetes, and requires Docker plus an active kind-backed kubeconfig context.

Command reference

Root workspace commands

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-specific commands used during setup

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.

More documentation

About

Browser-based admin UI and backend orchestrator for InfluxDB Enterprise v1.10.x on Kubernetes.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages