CI images move off the packer-images monorepo to semver-released container-* repos.
- run RPM build steps on docker-internal/rpmbuilder:0.1.0-alma9
Reviewed-on: #4
Co-authored-by: unkin-agent <unkin-agent@unkin.net>
Co-committed-by: unkin-agent <unkin-agent@unkin.net>
Why: standardize Go CI on the estate gobuilder image and cut cold build/test
time with the shared S3 build cache.
- build/test/pre-commit/release(build) now use gobuilder:0.1.2-alma9
- add GOCACHE_* env + AWS creds (org secrets) to those steps
- cache dir is absolute (/tmp/gocache), metrics enabled
- bump k8s resource requests/limits for compile+cache overhead
- packaging/upload steps (nfpm, no Go) left untouched
Reviewed-on: #3
Co-authored-by: unkin-agent <unkin-agent@unkin.net>
Co-committed-by: unkin-agent <unkin-agent@unkin.net>
ext.cattle.io token creation returns TWO fields: status.value (just the secret
fragment) and status.bearerToken (the full usable credential, formatted
ext/<name>:<secret>). The plugin was returning status.value, so every minted
credential and every rotated root token was non-functional (401 against
Rancher). Verified: bearerToken authenticates (HTTP 200), value alone does not.
- client.go: MintToken returns status.bearerToken, falling back to status.value
only if a Rancher build omits it.
- Reflect bearerToken in the mock Rancher and unit-test fake; assert the minted
token is the ext/ bearer form.
Vault/OpenBao secrets engine managing Rancher API tokens via the public
tokens.ext.cattle.io API.
- config: Rancher connection (URL + TLS)
- service-accounts/<name>: seeded root tokens, auto-rotated before Rancher's
TTL cap via a PeriodicFunc (default 45d rotation, 90d token TTL); the current
token mints its own replacement. Manual /rotate endpoint too.
- roles/<name>: mint policy referencing a service account; cluster_name + TTL
scoping (Rancher tokens inherit the seeding user's RBAC).
- creds/<role>: dynamic, lease-bound tokens deleted from Rancher on revoke.
Ports the bind-tsig Woodpecker RPM release, nfpm packaging, and a mock-Rancher
e2e (Vault + OpenBao). Unit tests cover the full lifecycle.