docs(runners): remove stale bates-*/rocky8/rocky9 references#165
docs(runners): remove stale bates-*/rocky8/rocky9 references#165Jesssullivan merged 4 commits intomainfrom
Conversation
Replace GitLab Managed Terraform State with on-cluster RustFS S3-compatible backend for all 4 stacks. This removes the last hard dependency on GitLab for GloriousFlywheel. - backend.tf: `backend "http"` → `backend "s3"` pointing at attic-rustfs-hl.nix-cache.svc:9000 with tofu-state bucket - deploy-arc-runners.yml: replace GitLab state URLs with RustFS S3 credentials, switch plan/apply to tinyland-docker runners (in-cluster, can reach RustFS via internal DNS) - State successfully migrated for arc-runners (11 resources) and attic (30 resources); runner-dashboard and gitlab-runners had empty state Resolves: Jesssullivan/tinyland-reorg#5, Jesssullivan/tinyland-reorg#6
The tinyland-docker ARC runner image does not include kubectl, which the Civo CLI needs for kubeconfig merge during `civo kubernetes config --save`. Add explicit install step before kubeconfig generation in both plan and apply jobs.
The opentofu/setup-opentofu@v1 wrapper script requires node in PATH, which tinyland-docker runners don't have. Disable the wrapper to use the raw tofu binary directly.
Replace with current runner labels: - rocky8 → tinyland-docker - rocky9 → tinyland-nix - bates-docker/bates-nix → tinyland-docker/tinyland-nix - petting-zoo-mini → xoxd-bates (macOS ARM64)
Greptile SummaryThis PR replaces stale The backend migration and most documentation renames are correct and consistent. However, a few renames were incomplete or introduced new inaccuracies:
Confidence Score: 3/5Safe to merge after fixing the three stale/incorrect doc snippets and the invalid shell variable names in the migration guide. The backend migration and workflow runner switch are structurally sound. The four issues found are all in documentation or the workflow install step — none will break the Terraform backends or runner infrastructure directly. However, two of the doc issues (RHEL-only test scripts, invalid env var names) would cause real failures if followed literally by a developer, and the stale descriptions undermine the stated goal of removing stale references. docs/runners/self-service-enrollment.md, docs/runners/load-testing.md, and docs/runners/migration-guide.md each have incomplete or incorrect renames that need a follow-up fix. Important Files Changed
Sequence DiagramsequenceDiagram
participant GH as GitHub Actions
participant Runner as tinyland-docker (self-hosted)
participant RustFS as RustFS S3 (attic-rustfs-hl.nix-cache.svc:9000)
participant Civo as Civo Cloud
GH->>Runner: Trigger plan/apply job
Runner->>Runner: setup-opentofu (wrapper: false)
Runner->>Runner: Install kubectl (dynamic stable version)
Runner->>Runner: Install Civo CLI
Runner->>RustFS: tofu init (access_key + secret_key)
RustFS-->>Runner: State fetched (tofu-state/arc-runners/terraform.tfstate)
Runner->>Civo: tofu plan / tofu apply
Civo-->>Runner: Infrastructure response
Runner->>RustFS: State written back
Runner-->>GH: Job result + plan artifact
Reviews (1): Last reviewed commit: "docs(runners): remove stale bates-*/rock..." | Re-trigger Greptile |
| | `tinyland-docker-job` | Rocky 8 runner job | | ||
| | `tinyland-nix-job` | Rocky 9 runner job | |
There was a problem hiding this comment.
Stale descriptions not updated
The component descriptions still reference the old runner names. tinyland-docker-job is labeled "Rocky 8 runner job" and tinyland-nix-job is labeled "Rocky 9 runner job" — these weren't updated alongside the component name changes, leaving misleading documentation.
| | `tinyland-docker-job` | Rocky 8 runner job | | |
| | `tinyland-nix-job` | Rocky 9 runner job | | |
| | `tinyland-docker-job` | tinyland-docker runner job | | |
| | `tinyland-nix-job` | tinyland-nix runner job | |
| test-tinyland-docker: | ||
| tags: [tinyland-docker] | ||
| script: | ||
| - cat /etc/redhat-release | ||
| - dnf list installed | head -20 | ||
|
|
||
| test-rocky9: | ||
| tags: [rocky9] | ||
| test-tinyland-nix: | ||
| tags: [tinyland-nix] | ||
| script: | ||
| - cat /etc/redhat-release | ||
| - dnf list installed | head -20 |
There was a problem hiding this comment.
RHEL-specific scripts on non-RHEL runners
Both test-tinyland-docker and test-tinyland-nix still run cat /etc/redhat-release and dnf list installed, which are RHEL/Rocky Linux-specific commands. Given that tinyland-docker is a generic Docker runner and tinyland-nix is a Nix runner, these commands would fail (file not found / dnf not available) on the actual runner environments after the rename. If this is intentional documentation of what these runners replaced (i.e., they still run RHEL images), a clarifying comment would help. Otherwise the scripts should be updated to reflect the actual runner environments.
| TF_VAR_tinyland-docker_runner_token=glrt-... | ||
| TF_VAR_tinyland-nix_runner_token=glrt-... |
There was a problem hiding this comment.
Hyphens in
TF_VAR_* env var names are invalid in POSIX shells
The new names TF_VAR_tinyland-docker_runner_token and TF_VAR_tinyland-nix_runner_token contain hyphens. POSIX shell variable names may only contain letters, digits, and underscores — a hyphen is not a valid character. Anyone attempting to export these directly in a shell script would get a syntax error.
If the underlying Terraform variable names actually use hyphens, they need to be set via a .tfvars file rather than environment variables. If the intended Terraform variable names use underscores (the standard convention), the documentation should be updated to replace the hyphens with underscores: TF_VAR_tinyland_docker_runner_token and TF_VAR_tinyland_nix_runner_token.
| tofu_version: ${{ env.TOFU_VERSION }} | ||
| tofu_wrapper: false | ||
|
|
||
| - name: Install kubectl |
There was a problem hiding this comment.
kubectl installed with dynamic version and no checksum verification
The Install kubectl step fetches the version dynamically from stable.txt at runtime and does not verify the binary's checksum. This means:
- The kubectl version is non-deterministic between runs (could silently change)
- The binary is not verified against a known-good SHA256, which is a supply-chain risk
Consider pinning a specific version and verifying the checksum. This same pattern is duplicated in the apply job (~line 142) and both should be updated together.
Replace stale runner names with current topology across 7 docs files.