This directory is for the automation and operational docs that would make the
root README too noisy. The root README stays focused on local Rancher Runway usage:
copy a tool-config.yml, run setup, open the local control panel, and clean up.
- GitHub Actions setup
- Sign-off planner CLI: automation/signoff-plan
- Terraform state bootstrap: bootstrap/terraform-state
Local users and forks should continue to use the root README flow:
- Create a local
tool-config.yml. - Run
go test -v -run '^TestHaSetup$' -timeout 60m ./terratest. - Use
go test -v -run '^TestHAControlPanel$' -timeout 0 -count=1 ./terratestwhen a browser-based local view is useful. - Run
go test -v -run '^TestHACleanup$' -timeout 30m ./terratest.
This path should not require GitHub Actions, S3 state, Linode automation, or automation-only secrets.
The original repository can layer scheduled GitHub Actions on top:
- Watch for new Rancher alpha releases.
- Resolve the webhook candidate from
build.yaml. - Plan the sign-off bundle based on whether the alpha changed webhook versions.
- Use a persistent S3/DynamoDB Terraform backend for isolated per-lane state.
- Render report artifacts.
- Clean up all AWS and Linode resources.
That automation should live behind Actions templates and environment secrets, so forks can ignore it unless they intentionally configure their own cloud accounts.
Current workflow layers:
signoff-plan.yml: manual planner fromsignoff-targets.jsonor one input Rancher version. Dispatch skips lanes that are already active or already successful on the current branch unlessrerun_successful_lanes=true.bootstrap-terraform-state.yml: manual S3/DynamoDB backend bootstrap, plan-only unlessapply=true.run-rancher-signoff-lane.yml: manual sign-off lane runner forframework-regression,webhook-fresh-install,webhook-upgrade, orwebhook-candidate-on-previous, with automatic Helm repo setup, Rancher readiness gates, optional Linode downstream provisioning, webhook overrides, optional directrancher/testssuites, compact JSON receipts, and automatic cleanup.
Run bootstrap-terraform-state.yml from GitHub Actions when you want the repo-owned automation to create the S3 state bucket and DynamoDB lock table. Keep it behind the protected automation-bootstrap environment with an OIDC role in AWS_BOOTSTRAP_ROLE_ARN.
The bootstrap output contains bucket/table names and region only. Those values are not credentials, but Actions logs, summaries, and artifacts are visible to people who can read workflow runs for the repository. Put the resulting TF_STATE_BUCKET, TF_STATE_LOCK_TABLE, and TF_STATE_REGION values into the protected rancher-signoff environment variables; do not print or upload AWS credentials.
This can be one repository if local and automated concerns stay separate:
- Local defaults stay simple and interactive.
- Actions defaults are headless, tagged, isolated, and disposable.
- Lane receipts are compact JSON artifacts so results can be read without scraping raw logs or uploading generated credentials.
- Safety infrastructure, especially Terraform state storage, is bootstrapped separately and reused.