51 lines
2.4 KiB
Markdown
51 lines
2.4 KiB
Markdown
## 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
|
|
```powershell
|
|
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.
|
|
|
|
See `docs/operations.md` for the authorized operating and verification runbook.
|
|
|
|
## 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:
|
|
|
|
```yaml
|
|
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>
|
|
```
|