burrow

module
v0.13.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 17, 2026 License: Apache-2.0

README

Burrow

The Burrow mascot, a vigilant groundhog standing watch

For developers moving fast with AI who don't want to break things

Production grade self hosting for your apps, operated by the AI agent you already use. Point Claude Code, Cursor, Codex, or your own agent at your Kubernetes cluster and it deploys, scales, debugs, and rolls back your apps. It drives burrow-agent, a scoped CLI, but the credentials and the guardrails live in a control plane you own. Every risky move (deploying to prod, deleting an app, exposing to the internet, DNS and add-on changes) is gated by a policy you set: the agent proposes, you decide, and the boundary is enforced in code the agent can't reach past, not an instruction it might ignore.

Burrow runs its own site on Burrow, live at burrow-cloud.dev.

It is not another git deploy host. Vercel and friends run your app on their platform; Burrow operates your cluster (real Kubernetes, done right), and goes past the app to the whole stack. The agent writes the integration code, and Burrow stands up and runs the backing service behind the same guardrails.

Why Burrow

  • Bring the agent you already use. Claude Code, Cursor, Codex, or your own. Burrow is not another agent to adopt or a dashboard to learn, and there is no MCP server to stand up: put one binary on the agent's PATH and it can operate real infrastructure, safely.
  • The boundary is enforced, not instructed. The agent holds no cluster credentials. A control plane you own holds them and gates every dangerous operation, so a bad prompt or a confused step can't cross a line you drew. "Be careful with prod" is a wish; a guardrail is a control.
  • Own your infrastructure, no lock-in. Burrow self-hosts in your own cluster. Open source (Apache-2.0), one binary, no vendor platform in the path to migrate off later.
  • Production grade by default. Real Kubernetes done right: self-healing workloads, rolling deploys, ingress and TLS, in-place upgrades, sane defaults.

Talk to your agent

Once Burrow is connected, you operate your apps by talking to your agent. Things you can say today:

  • Deploy my app to prod
    • Burrow figures out which app you mean from the folder you are in, builds it, and rolls it out to your cluster.
  • Roll back the last release
  • Scale web up or Scale web to 3
  • Autoscale web between 2 and 10 replicas on CPU
  • Show me any 500 errors from my web app and figure out what happened
    • Your agent reads the logs and tells you what broke, in plain language.
  • Why isn't my site reachable at example.com?
    • Your agent walks the chain (DNS, TLS, cluster), finds the broken link, and proposes a fix.
  • How is my app doing? or Why is my app slow?
    • Straight answers, no dashboards to dig through.
  • My site is slow, would a cache help?
    • Your agent checks your logs and metrics, tells you if it would, and if you say yes, sets one up and wires your app to it.

Coming soon: Limit web to 500MB of memory and 1 CPU.

Build it, then fix it

Your agent can write your app. The real test is whether it can keep it working, and most agents go blind the moment the code leaves the editor. Burrow gives yours the tooling to diagnose and fix a live app, not just ship it, all as one-command addons that run on the worker nodes you already pay for, so they add capability without adding cost.

  • Why is my app throwing errors? Burrow adds centralized logging to your cluster and gives your agent access, so it reads what actually happened instead of guessing. Chasing a stubborn bug? It adds logging to your code, redeploys, and reads the new lines back.
  • My site feels slow Burrow installs a metrics collector that watches CPU, memory, and traffic. Your agent finds the bottleneck and tells you the fix, or makes it.
  • My latest change won't deploy A bad build or a broken image is blocking the rollout. Your agent sees exactly why it failed, fixes the code, and redeploys.

Guardrails

Guardrails are how you decide what your agent can and cannot do. Every risky action (deploying to prod, deleting an app, rolling back, exposing publicly, DNS and add-on changes) can be gated by a guardrail you set: raise it to confirm to require your sign-off, or to deny to refuse it outright. You opt in, so the agent proposes and you decide.

burrow guard set --env prod app.deploy confirm   # require your sign-off before any prod deploy
burrow guard set --env prod app.delete deny      # never let the agent delete an app in prod
burrow guard set dns.write allow                  # let it add DNS records
burrow guard set dns.delete deny                  # but never delete them

App-level rules can be scoped per environment, so the agent moves fast in staging while prod stays locked down.

Addons

Building something new, or adding a capability? Ask your agent to stand up a backing service and wire your app to it:

  • Add a Postgres database and connect my app to it
  • Set up logging so I can see what my app is doing
  • Add a cache to speed up my site

Available today: Postgres (a cluster-shared database), logs (VictoriaLogs), metrics (VictoriaMetrics), and cache (ValKey).

Postgres always exports its own metrics, so once you install the metrics addon your database is scraped automatically (connection and transaction health plus pg_stat_statements slow-query stats) — install the two in either order. Now when a page feels slow the agent can rule the database in or out instead of guessing.

By default the agent asks before standing anything up: it proposes, you approve. Make it hands-off with burrow guard set addon.install allow, or install it yourself with burrow addon install postgres.

Want an addon we do not have yet? Request one.

Built for day two

The hard part isn't the first deploy, it's everything after. Once your app is live, this is what you get:

  • It keeps running. Your app self-heals when something falls over, and new releases roll out without taking the old one down.
  • It stays reachable, over HTTPS. Your app gets a URL with TLS, and when something is off you get a straight answer about which link in the chain broke ("the cert hasn't issued yet"), not just "it's down."
  • You operate it by talking. Status, logs, rollback, scale: your agent does the work, and the guardrails you set gate the risky moves (a prod deploy, a delete) so it can't get past you.
  • You get plain-language answers. Ask how things are going and your agent tells you in a sentence, no dashboards to dig through.

And the risky changes go through you: set a guardrail and the agent proposes, you approve, it executes, with a record of what happened either way. That human-in-the-loop step is what makes letting an agent operate production actually acceptable.

How it works

Three things:

  1. Your agent - any AI coding agent you already use (Claude Code, Cursor, Codex, Copilot, OpenCode).
  2. Burrow - the piece you install. It holds your cluster credentials, does the work (deploy, scale, logs, backing services), and gates the risky actions behind the guardrails you set, per environment, so the agent stays inside the lines you draw.
  3. Your Kubernetes cluster - your infrastructure, which you own.

Two things keep it safe: your code never passes through Burrow (it moves through a container registry, not the agent connection), and every change the agent tries to make is checked before it runs. Nothing lands on your cluster that you did not approve.

For a deeper look at the architecture, see Architecture.

Try it

Burrow works with any Kubernetes cluster you can reach with kubectl. Three commands get you from nothing to an agent operating your cluster:

brew install burrow-cloud/tap/burrow     # installs burrow and burrow-agent
burrow install <context>                 # installs Burrow into the named kube context (run `burrow install` to list them)
burrow agent claude install              # wire your agent to burrow-agent (or another supported agent)

Then just talk to your agent ("deploy this and serve it at example.com over HTTPS"), or drive Burrow directly with burrow app deploy web --image nginx:alpine and burrow app status web.

Don't have a cluster yet? You can spin one up on DigitalOcean in a few minutes — a managed cluster, or a single droplet the VPS bootstrap can use. (Referral link — you get free signup credit, and it helps support Burrow.)

Want to try it with no cloud at all? docs/QUICKSTART.md takes you from nothing to your agent deploying an app to a local k3d cluster — and getting blocked trying to delete it — on your laptop in about 5–10 minutes.

See docs/getting-started.md for the full walkthrough, including the complete list of supported agents and how to wire any other agent by hand.

Prefer to build from source? go build -o burrow ./cmd/burrow && go build -o burrow-agent ./cmd/burrow-agent.

Upgrading later? See Upgrade.

System requirements

Burrow runs on a cluster you provide, so the sizing is yours to plan. It depends on whether you self-host on a single VPS or bring a managed Kubernetes cluster. The numbers below are what Burrow's own pieces reserve; your apps and builds need room on top.

Self-host (single VPS / k3s)

burrow cluster bootstrap turns one machine into a k3s cluster with Burrow installed. Before it touches the machine it runs a preflight that requires at least 2 GB of RAM and refuses to continue below that, printing a memory breakdown so you can see where it goes (ADR-0044). So a 2 GB VPS is the practical floor; a 2-vCPU / 4 GB machine leaves comfortable headroom for your own apps and for an in-cluster build to schedule. Budget a few GB of disk on top for k3s, container images, and the control-plane database. A single node's public IP serves a free LoadBalancer through the bundled servicelb / MetalLB, so there is no separate load-balancer bill to plan for.

Managed Kubernetes (DOKS / EKS / GKE)
  • A LoadBalancer is required to reach your apps from the public internet, and cloud providers bill for it — a fixed monthly charge per LoadBalancer, separate from your nodes.
  • Worker-node sizing and count matter, because platform overhead can eat most of a small node before any of your workload runs. On DigitalOcean (DOKS) the system components — the Cilium CNI, CoreDNS, and per-node agents — take roughly ⅔ of a CPU on a 1-vCPU / 2 GB node, leaving little for apps or builds. Give the cluster real headroom: a node with at least 2 vCPU / 4 GB, or more than one small node, so an app and an in-cluster build both have somewhere to schedule (#274).
Component resource costs

Approximate requests for Burrow's own components, in plain units. A request is what a component reserves at rest; most sit well under their limits until they are worked.

Component CPU Memory Storage Notes
Control plane (burrowd + Postgres) ~a tenth of a CPU ~160 MB ~1 GB database volume always on; the two pods together
Ingress + cert-manager ~a tenth of a CPU ~90 MB none upstream defaults; + a LoadBalancer on managed clusters (billable)
In-cluster registry (Zot) small, a fraction of a CPU ~64 MB ~5 GB PersistentVolume for image layers optional
In-cluster build (per build) ¼ of a CPU, bursting to 2 CPUs 512 MB, up to 2 GB transient scratch while the build runs transient; needs schedulable headroom to run (#274); experimental, not yet functional
Metrics (VictoriaMetrics + vmagent) moderate scrape load grows with retention ~10 GB volume (~1 month by default) opt-in add-on

The in-cluster build is the demanding one: it reserves ¼ of a CPU and can burst to 2 CPUs and 2 GB while it runs. On a cluster with no spare capacity it will not schedule at all, which is why a small single node needs headroom above the platform and control-plane baseline. It is still experimental and not yet functional; today you build and push images with your own tooling and deploy by reference.

Shell completion

burrow ships completion for bash, zsh, fish, and PowerShell. Load it for your shell:

source <(burrow completion bash)                                  # bash (current shell)
burrow completion zsh > "${fpath[1]}/_burrow"                     # zsh
burrow completion fish > ~/.config/fish/completions/burrow.fish   # fish
burrow completion powershell | Out-String | Invoke-Expression     # PowerShell

Then reload your shell so completion loads: source ~/.zshrc (or source ~/.bashrc), or just open a new terminal.

Run burrow completion <shell> --help for how to install it permanently.

Changelog

Burrow follows semver from v0.1 toward v1.0. This table never lags the code.

Version Scope Status
v0.1 Install into a cluster · connect an agent over MCP · deploy by image reference · status · logs · rollback · scale · in-place upgrade ✅ shipped (v0.1.1)
v0.2 Reach an app at a URL: shared-ingress routing · publish + cert-manager TLS · reachability surface · DNS automation (DigitalOcean / Cloudflare) · ingress install · configurable guardrails ✅ shipped (v0.2.1)
v0.3 Operability + agent-experience hardening: CLI grouped by task (app/config/system) · app list · account-scoped Cloudflare tokens · public-DNS reachability · request log ✅ shipped (v0.3.0)
v0.4 Agent-provisioned building blocks: install logs (VictoriaLogs) / metrics (VictoriaMetrics + vmagent), or connect the logs/metrics you already run (Loki, Prometheus), and query them to answer "how is my app doing?" · cache (ValKey) · app delete · tunable rollback guardrail ✅ shipped (v0.4.0)
v0.5 App config, secrets, credentials, and the audit log: app config / app secret lifecycle (deploy takes no config) · secrets & vendor/connected-backend credentials flow through Burrow's own API, never MCP, never logged · burrow audit trail of guarded operations · apps default to a dedicated burrow-apps namespace ✅ shipped (v0.5.0)
v0.6 First backend building block, agent-native onboarding, and the Apache relicense: Postgres addon (addon install/attach postgres, a per-app database + role, generated DATABASE_URL wired into the app) · pg_dump/pg_restore backups behind a confirm guardrail · read-only burrow_audit MCP tool · agent-native onboarding (cluster-capability detection, cost-aware ingress/TLS provisioning with a LoadBalancer-vs-NodePort choice, a verified "live at https://…" check) · dotted guardrail codes (app.delete) · whole repository relicensed to Apache-2.0 ✅ shipped (v0.6.0)
v0.7 Environments and a self-contained, kubectl-free CLI: cluster-per-env via kubeconfig-context routing (--context, per-call agent routing) and namespace-per-env via a burrowd registry (burrow env add), with per-environment guardrails that gate prod while staging stays permissive (burrow guard set --env prod app.delete deny) · one burrow env surface over named local handles that follows the kube context by default (use/follow/list/rename/scan), resolving both CLI and agent operations through the active environment (retires burrow context) · intent-based --help groups, explicit burrow install <context> that names the environment, a first-run banner, shell completion, system folded into cluster · burrow no longer needs kubectl (client-go server-side apply) · the app envapp config rename ✅ shipped (v0.7.1)
v0.8 Autoscaling and deploy-safety hardening: HorizontalPodAutoscaler autoscaling with sane defaults (burrow app autoscale, an app.autoscale guardrail bounded by the replica ceiling) · a scoped, least-privilege agent credential minted on install, with burrow-mcp failing closed if it goes missing · an app.deploy guardrail to gate or require sign-off on deploys per environment · every deploy rolls the workload (release-stamped, so a re-deploy or a pull-credential fix always takes effect) · a secure token prompt for private-registry credentials, agent guidance toward durable credentials and versioned image tags, and actionable errors that name the exact command to run for an unknown environment or a failed pull · ingress cost-approval (--approve before Burrow stands up a billable LoadBalancer), honest capability detection, and clean adoption of an orphaned IngressClass · public exposure steered toward a LoadBalancer over NodePort · MCP server instructions so the agent is oriented the moment it connects ✅ shipped (v0.8.0)
v0.9 The single-VPS, cheap-self-hoster on-ramp: a one-time curl | sh burrow cluster bootstrap installs k3s + burrowd on a bare VPS and prints a burrow join <token>, so after one SSH bootstrap every operation runs from the laptop · a single node's public IP serves a free LoadBalancer through servicelb / MetalLB (detected as real LoadBalancer providers, no cloud LB cost), and publish reuses the cluster's existing ingress controller · bootstrap safety: a 2GB RAM preflight with a memory breakdown, a wait for the k3s API, a confirm before turning a machine into a node · lean Postgres config and memory limits for small clusters, faster database-wait retries · ingress install frames servicelb / MetalLB as free (not billable) · app logs prints the source note above the logs · env list --discover ✅ shipped (v0.9.0)
v0.10 Internal groundwork, no new user-facing surface: a client-version handshake so a new CLI against an old control plane gets an actionable "run burrow upgrade" instead of an opaque failure, with burrowd serving any client within one minor and never hard-blocking on a version difference alone, and the acting client version recorded in the audit log next to the principal (ADR-0039) · the CLI's control-plane transport extracted into an explicit interface shared by both binaries, so an alternate transport can slot in without a fork (ADR-0045) ✅ shipped (v0.10.0)
v0.11 Agent environment safety: the agent's environment target is now explicit and sticky, so a mutating operation can no longer silently land on the wrong cluster or wander to another on a transient error (ADR-0047) · a deploy / scale / rollback / delete with no named environment is refused with a structured, alternatives-listing error when more than one is registered, at both the MCP handle layer (cluster-per-env) and burrowd's registry (namespace-per-env), while a single environment proceeds without ceremony · an unreachable target names the other registered environments so a human can redirect, but Burrow never switches or retries elsewhere · read-only tools echo the environment they read · and burrow env remove drops a stale local handle, clearing the pin and its scoped credential ✅ shipped (v0.11.0)
v0.12 The scoped agent CLI, and one-off commands: the agent now drives a dedicated burrow-agent binary — capability-reduced, JSON-first, composable (pipe/grep/jq) — behind the same control-plane boundary, wired by burrow agent <tool> install; the MCP server is retired from releases (ADR-0049) · burrow_run, an agent-invoked one-off command runner (migrations, seeds, tasks) in the app's own image, gated by an app.run guardrail (ADR-0048) · a validated laptop quickstart (k3d) pinned by a CI e2e ✅ shipped (v0.12.0)
v0.13 The optional in-cluster build, and cluster components as deliberate steps: Burrow can now build an app from a git source inside the user's own cluster — it clones a git ref and builds the image as a Kubernetes Job (buildah for a Dockerfile, Cloud Native Buildpacks otherwise), pushes it to a registry, and the result rejoins the guarded deploy path; code never crosses the control channel, only the git ref does (ADR-0053) · validated end to end on managed Kubernetes, where the OSS build container runs privileged in a dedicated burrow-builds namespace with capacity fail-fast and TTL-reaped Jobs (ADR-0059, superseding ADR-0056); the no-Dockerfile Buildpacks path cannot yet push to the plain-HTTP in-cluster registry (add a Dockerfile or push to an external registry) · source-provider credentials for a private-git clone and its registry (ADR-0057) · install provisions only the control plane — the in-cluster registry is a standalone burrow cluster registry, and metrics-server is auto-ensured as a baseline (ADR-0054) · a burrow cluster capacity scheduling-headroom surface answering "do I need to scale?" (#275) · opt-in auto-deploy — burrowd polls the registry and applies upgrades within a per-app, per-environment level (burrow app auto-deploy <app> [patch|minor|major|off]), off by default, firing the same guarded deploy path (ADR-0052, ADR-0058) · multi-version forward upgrades in one step (ADR-0055) · the Postgres add-on always exports metrics (ADR-0051) · a README System requirements section ✅ shipped (v0.13.0)
v1.0 Production self-host: the deploy-and-operate core and common day-two building blocks, hardened planned (roadmap)

Documentation

  • docs/QUICKSTART.md: a validated laptop walkthrough — your agent deploys an app to a local k3d cluster and hits the delete guardrail, no cloud, in about 5–10 minutes.
  • docs/getting-started.md: set up Burrow on your cluster and connect your agent, start to finish.
  • docs/ARCHITECTURE.md: the system design, its four layers, invariants, and request paths.
  • docs/HARDENING.md: keep Burrow the agent's only path to the cluster, so the guardrails actually bound it.
  • docs/ROADMAP.md: version milestones, v0.1 → v1.0.
  • docs/PLAN.md: the current execution plan.
  • docs/adr/: Architecture Decision Records, every load-bearing decision, with its reasoning and rejected alternatives.
  • CLAUDE.md: the contributor and agent guide.

License and contributing

How the code is licensed (LICENSING.md):

  • All of Burrow's code in this repository is Apache-2.0: the burrow CLI, the burrow-agent control channel, and the software that runs in your cluster. Read, modify, self-host, and integrate against it freely.

Burrow is open source. Need enterprise features such as SSO? Reach out at hi@burrow-cloud.dev.

Contributions are welcome. Open an issue or a discussion. Bug reports, ideas, and design feedback are the best way to help and to shape where Burrow goes. Commits are signed off under the Developer Certificate of Origin (git commit -s). See CONTRIBUTING.md.

Directories

Path Synopsis
cmd
burrow command
Command burrow is the Burrow CLI: the human-facing way to operate Burrow.
Command burrow is the Burrow CLI: the human-facing way to operate Burrow.
burrow-agent command
Command burrow-agent is the coding agent's control channel to Burrow: a capability-reduced, JSON-first command-line surface the agent invokes directly (ADR-0049).
Command burrow-agent is the coding agent's control channel to Burrow: a capability-reduced, JSON-first command-line surface the agent invokes directly (ADR-0049).
burrow-mcp command
Command burrow-mcp is the Burrow MCP server: the thin, agent-neutral control surface that exposes Burrow's tools to any MCP client and translates tool calls into control-plane API calls (ADR-0003).
Command burrow-mcp is the Burrow MCP server: the thin, agent-neutral control surface that exposes Burrow's tools to any MCP client and translates tool calls into control-plane API calls (ADR-0003).
burrowd command
Command burrowd is the Burrow control plane: the component that holds the cluster credentials, runs the deploy/rollout/rollback/logs/scale orchestration, enforces the guardrails, and records who deployed what (ADR-0002).
Command burrowd is the Burrow control plane: the component that holds the cluster credentials, runs the deploy/rollout/rollback/logs/scale orchestration, enforces the guardrails, and records who deployed what (ADR-0002).
Package connect reaches the in-cluster Burrow control plane from a developer's machine using their ambient kubeconfig and the Kubernetes API server's service proxy — no port-forward, no ingress (ADR-0014).
Package connect reaches the in-cluster Burrow control plane from a developer's machine using their ambient kubeconfig and the Kubernetes API server's service proxy — no port-forward, no ingress (ADR-0014).
Package controlplane is the Burrow control plane: the product.
Package controlplane is the Burrow control plane: the product.
api
Package api is the control plane's HTTP front end: it exposes the deploy engine's operations over JSON and authenticates its callers with a bearer token (ADR-0005).
Package api is the control plane's HTTP front end: it exposes the deploy engine's operations over JSON and authenticates its callers with a bearer token (ADR-0005).
dns
Package dns is the production controlplane.DNSFactory and the per-vendor DNS adapters (ADR-0018, ADR-0023).
Package dns is the production controlplane.DNSFactory and the per-vendor DNS adapters (ADR-0018, ADR-0023).
e2e
Package e2e holds end-to-end tests that drive the deploy engine through its real adapters — the client-go Kubernetes adapter against a live cluster and the registry resolver against a real registry — proving the whole vertical slice composes (ADR-0010).
Package e2e holds end-to-end tests that drive the deploy engine through its real adapters — the client-go Kubernetes adapter against a live cluster and the registry resolver against a real registry — proving the whole vertical slice composes (ADR-0010).
internal
Package internal holds the control plane's implementation guts: the deploy state machine, the Kubernetes/registry/database seam adapters, and the guardrail policy.
Package internal holds the control plane's implementation guts: the deploy state machine, the Kubernetes/registry/database seam adapters, and the guardrail policy.
internal/fake
Package fake provides in-memory implementations of the control-plane seams (controlplane.Clock, Kubernetes, Registry, Database) for tests.
Package fake provides in-memory implementations of the control-plane seams (controlplane.Clock, Kubernetes, Registry, Database) for tests.
kube
Package kube is the production controlplane.Kubernetes adapter, built on the official client-go SDK (ADR-0011).
Package kube is the production controlplane.Kubernetes adapter, built on the official client-go SDK (ADR-0011).
logs
Package logs holds the production controlplane.LogsQuerier adapters — the seam burrowd uses to query an installed or connected logs backing service (ADR-0026).
Package logs holds the production controlplane.LogsQuerier adapters — the seam burrowd uses to query an installed or connected logs backing service (ADR-0026).
metrics
Package metrics holds the adapters that query a metrics backing service (an installed or connected add-on) for the agent's metrics-query path (ADR-0026).
Package metrics holds the adapters that query a metrics backing service (an installed or connected add-on) for the agent's metrics-query path (ADR-0026).
postgres
Package postgres is the production controlplane.Database adapter, backed by Postgres running in the cluster (ADR-0012).
Package postgres is the production controlplane.Database adapter, backed by Postgres running in the cluster (ADR-0012).
registry
Package registry holds the adapter that lists a container image repository's tags over the Docker Registry HTTP API v2, so burrowd can see which versions exist and compute what auto-deploy would take (ADR-0052).
Package registry holds the adapter that lists a container image repository's tags over the Docker Registry HTTP API v2, so burrowd can see which versions exist and compute what auto-deploy would take (ADR-0052).
sys
Package sys holds the production implementations of the control plane's system seams — the wall Clock, a crypto/rand ID source, and the DNS Resolver — the concrete values cmd/burrowd injects in place of the test fakes (ADR-0010).
Package sys holds the production implementations of the control plane's system seams — the wall Clock, a crypto/rand ID source, and the DNS Resolver — the concrete values cmd/burrowd injects in place of the test fakes (ADR-0010).
Package internal is the root of Burrow's module-private shared helpers, licensed Apache-2.0.
Package internal is the root of Burrow's module-private shared helpers, licensed Apache-2.0.
agentconn
Package agentconn resolves the credential-free, agent-layer control-plane client the scoped agent binary uses (ADR-0005, ADR-0038).
Package agentconn resolves the credential-free, agent-layer control-plane client the scoped agent binary uses (ADR-0005, ADR-0038).
jointoken
Package jointoken is the codec for the compact join token that carries admin access to a freshly bootstrapped single-VPS k3s cluster from `burrow bootstrap` (run once on the VPS) to `burrow join` (run on the laptop) — ADR-0044.
Package jointoken is the codec for the compact join token that carries admin access to a freshly bootstrapped single-VPS k3s cluster from `burrow bootstrap` (run once on the VPS) to `burrow join` (run on the laptop) — ADR-0044.
Package localconfig models Burrow's client-side selector state: the human-edited ~/.burrow/config file that names environment handles and records which one a command targets (ADR-0036).
Package localconfig models Burrow's client-side selector state: the human-edited ~/.burrow/config file that names environment handles and records which one a command targets (ADR-0036).
Package mcp is the Burrow MCP server: the thin, agent-neutral control surface (ADR-0003) that exposes Burrow's operations as MCP tools to any MCP client and translates tool calls into control-plane API calls.
Package mcp is the Burrow MCP server: the thin, agent-neutral control surface (ADR-0003) that exposes Burrow's operations as MCP tools to any MCP client and translates tool calls into control-plane API calls.
Package operator is the Burrow Kubernetes operator: the CRD types and the reconcile loops that drive the cluster toward the control plane's desired state.
Package operator is the Burrow Kubernetes operator: the CRD types and the reconcile loops that drive the cluster toward the control plane's desired state.
internal
Package internal holds the operator's implementation guts: the reconcile loops and their helpers.
Package internal holds the operator's implementation guts: the reconcile loops and their helpers.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL