Bootstrap CLI for Maidn
Find a file
2026-09-14 23:11:00 +02:00
.vscode feat: add bootstrap workflow 2026-07-15 20:39:39 +02:00
cmd fix: register Forgejo webhooks without Secret reads 2026-09-14 23:11:00 +02:00
docs docs: recover Forgejo registry package access 2026-09-13 17:15:35 +02:00
internal fix: register Forgejo webhooks without Secret reads 2026-09-14 23:11:00 +02:00
MaidnCLI@cc8fab6832 feat: add bootstrap workflow 2026-07-15 20:39:39 +02:00
.dockerignore feat: add portable delivery E2E runner 2026-09-13 00:19:23 +02:00
.gitignore feat: make bootstrap self-contained 2026-07-26 20:39:07 +02:00
Dockerfile feat: add portable delivery E2E runner 2026-09-13 00:19:23 +02:00
go.mod feat: restructure & secret setup 2025-10-26 00:43:31 +02:00
go.sum feat: restructure & secret setup 2025-10-26 00:43:31 +02:00
How2Auth.md docs: contain credential rotation guidance 2026-09-05 20:28:24 +02:00
main.go feat: restructure & secret setup 2025-10-26 00:43:31 +02:00
README.md feat: add portable delivery E2E runner 2026-09-13 00:19:23 +02:00

Commands

go mod init github.com/Pingu-Studio/MaidnCLI go get -u github.com/spf13/cobra@latest go get golang.org/x/term go mod tidy go get gopkg.in/yaml.v3

in powershell run

go install github.com/go-delve/delve/cmd/dlv@latest
dlv version

Commands

  • cicd-tool repo init --org <org> --flux-repo <repo> creates the manifests and Flux repos
  • cicd-tool bootstrap runs a shorter Forgejo-first wizard, asks for a Forgejo PAT, asks where local repos should be cloned, discovers Proxmox nodes/storage/networks, retries without losing entered answers when discovery fails, shows the latest Talos version, derives the standardized Talos factory URL, schematic, and required extensions automatically from the chosen version, writes terraform.tfvars, stages Talos images on Proxmox, and can execute Terraform, Talos bootstrap, and Flux bootstrap
  • cicd-tool bootstrap --config maidn-bootstrap.yaml skips the wizard and uses the saved config
  • maidn bootstrap init --config <private-config> --organization <new-org> --create-organization --enable-delivery locks an isolated workspace, initializes the Forgejo repositories, then runs the non-destructive bootstrap reconcile lifecycle; use --mode=rebuild --yes for an authorized rebuild. Delivery scaffolding requires --enable-delivery.
  • maidn app onboard --config <private-config> --from <app-checkout> validates a clean configured checkout and adds its .tekton delivery contract.
  • cicd-tool e2e runs bounded, read-only Flux, ExternalSecret, PipelineRun, preview, and promotion-PR checks with JSON output. See docs/e2e.md.

See docs/operations.md for the authorized operating and verification runbook. App authors: see docs/delivery-feedback.md for preview feedback and the scoped Forgejo token contract.

Forgejo setup

For https://git.pingu.pw you need:

  • a user token with repo create/push rights
  • an owner target (Maidn org by default, or your own user/org)
  • git/ssh access from the machine running the CLI if you want SSH later
  • Flux bootstrap credentials for the repo URL that gets created

Cilium traffic network

Every Talos node needs a second static network for Cilium L2 announcements. It has no gateway; the primary network remains the default route. Configure the matching VLAN and a unique MAC address for each node:

cilium:
  trafficInterface: eth1
  loadBalancerStart: <first-reserved-address>
  loadBalancerEnd: <last-reserved-address>
talos:
  nodes:
    - networks:
        - # Primary management network
        - macAddress: <unique-mac>
          cidr: <traffic-subnet>
          ip: <node-traffic-address>
          vlanId: <opnsense-traffic-vlan>