Repository navigation
feat: butleradm bootstrap local + TUI wizard for the laptop path - #58
Merged
Merged
Conversation
Adds a local bootstrap subcommand that stands up the whole platform on a KIND cluster with CAPD tenant workers, no hypervisor required. The orchestrator gains a local path: the KIND cluster is the management cluster, so it mounts the host docker socket (for CAPD sibling containers) and maps the console NodePort to the host, skips teardown, derives the MetalLB pool from the kind docker network, creates a credential-less platform-scoped local ProviderConfig, builds butler-controller from source alongside butler-bootstrap, and treats the KIND kubeconfig as the management kubeconfig once bootstrap reaches Ready.
butler-controller depends on butler-api as a normal fetchable module, so it no longer needs the parent build context that the sibling replace required. Its Dockerfile is not REPO_DIR-aware, so the parent context failed on COPY go.mod.
The local provider uses CAPD for tenant workers and has no butler-provider-local controller manifest. Deploying it failed the bootstrap at the controller step.
- Default `bootstrap local` (subcommand and TUI wizard) to pull published component images from ghcr; add --from-source to build from sibling repos for development. - Tear down the full prior local environment on a fresh bootstrap, including tenant clusters (each runs as its own KIND cluster via CAPD), so re-runs start from a clean slate. - Report the console URL, username, and password at the end of bootstrap and on the TUI completion screen; read the password from in-memory kubeconfig bytes. Hide the talosconfig line for local (no Talos nodes). - Capture image build/load output to a buffer so it does not corrupt the bootstrap TUI; surface it only on failure. - Make local ProviderConfig creation idempotent (tolerate AlreadyExists).
Three wizard help strings used em-dashes; replace with -- to match the repo text convention.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The
butleradm bootstrap localsubcommand and TUI wizard local provider: KIND + CAPD orchestration (docker.sock mount, console NodePort, MetalLB pool from the kind network), pull-published-images by default with--from-sourcefor dev, full teardown of prior mgmt + tenant clusters, console URL/user/password reporting, and the em-dash hygiene fix. No butler-api dependency (builds tenant CRs unstructured). Builds + vets clean. Live-validated end to end.