GRM-174: Apply S08 runner lease labels to gitea_runner molecule platforms + bump devx #283

Merged
kireto merged 1 commits from GRM-174-molecule-lease-labels into master 2026-09-30 19:00:16 +00:00
9 changed files with 83 additions and 2 deletions
@@ -4,6 +4,10 @@ driver:
platforms:
- name: ${MOLECULE_PLATFORM_NAME:-ubuntu-2204}
# Implements: REQ-1 (GRM-174) — S08 lease labels for runner cleanup
labels:
org.oblachno.lease-until: "${MOLECULE_LEASE_UNTIL:-0}"
org.oblachno.owner: "${MOLECULE_OWNER:-molecule-local}"
image: ${MOLECULE_PLATFORM_IMAGE:-ubuntu:26.04}
command: ${MOLECULE_PLATFORM_COMMAND:-sleep infinity}
volumes:
@@ -4,6 +4,10 @@ driver:
platforms:
- name: ${MOLECULE_PLATFORM_NAME:-ubuntu-2204}
# Implements: REQ-1 (GRM-174) — S08 lease labels for runner cleanup
labels:
org.oblachno.lease-until: "${MOLECULE_LEASE_UNTIL:-0}"
org.oblachno.owner: "${MOLECULE_OWNER:-molecule-local}"
image: ${MOLECULE_PLATFORM_IMAGE:-ubuntu:26.04}
command: ${MOLECULE_PLATFORM_COMMAND:-sleep infinity}
volumes:
@@ -4,6 +4,10 @@ driver:
platforms:
- name: ${MOLECULE_PLATFORM_NAME:-ubuntu-2204}
# Implements: REQ-1 (GRM-174) — S08 lease labels for runner cleanup
labels:
org.oblachno.lease-until: "${MOLECULE_LEASE_UNTIL:-0}"
org.oblachno.owner: "${MOLECULE_OWNER:-molecule-local}"
image: ${MOLECULE_PLATFORM_IMAGE:-ubuntu:26.04}
command: ${MOLECULE_PLATFORM_COMMAND:-sleep infinity}
volumes:
@@ -4,6 +4,10 @@ driver:
platforms:
- name: ${MOLECULE_PLATFORM_NAME:-ubuntu-2204}
# Implements: REQ-1 (GRM-174) — S08 lease labels for runner cleanup
labels:
org.oblachno.lease-until: "${MOLECULE_LEASE_UNTIL:-0}"
org.oblachno.owner: "${MOLECULE_OWNER:-molecule-local}"
image: ${MOLECULE_PLATFORM_IMAGE:-ubuntu:26.04}
command: ${MOLECULE_PLATFORM_COMMAND:-sleep infinity}
volumes:
@@ -4,6 +4,10 @@ driver:
platforms:
- name: ${MOLECULE_PLATFORM_NAME:-ubuntu-2204}
# Implements: REQ-1 (GRM-174) — S08 lease labels for runner cleanup
labels:
org.oblachno.lease-until: "${MOLECULE_LEASE_UNTIL:-0}"
org.oblachno.owner: "${MOLECULE_OWNER:-molecule-local}"
image: ${MOLECULE_PLATFORM_IMAGE:-ubuntu:26.04}
command: ${MOLECULE_PLATFORM_COMMAND:-sleep infinity}
volumes:
@@ -4,6 +4,10 @@ driver:
platforms:
- name: ${MOLECULE_PLATFORM_NAME:-ubuntu-2204}
# Implements: REQ-1 (GRM-174) — S08 lease labels for runner cleanup
labels:
org.oblachno.lease-until: "${MOLECULE_LEASE_UNTIL:-0}"
org.oblachno.owner: "${MOLECULE_OWNER:-molecule-local}"
image: ${MOLECULE_PLATFORM_IMAGE:-ubuntu:26.04}
command: ${MOLECULE_PLATFORM_COMMAND:-sleep infinity}
volumes:
@@ -4,6 +4,10 @@ driver:
platforms:
- name: ${MOLECULE_PLATFORM_NAME:-ubuntu-2204}
# Implements: REQ-1 (GRM-174) — S08 lease labels for runner cleanup
labels:
org.oblachno.lease-until: "${MOLECULE_LEASE_UNTIL:-0}"
org.oblachno.owner: "${MOLECULE_OWNER:-molecule-local}"
image: ${MOLECULE_PLATFORM_IMAGE:-ubuntu:26.04}
command: ${MOLECULE_PLATFORM_COMMAND:-sleep infinity}
volumes:
+53
View File
@@ -0,0 +1,53 @@
# GRM-174: Apply S08 runner lease labels to gitea_runner molecule platforms + bump devx
- Task: GRM-174
- Status: draft
## Problem
DEVX-181's `start_docker` emits `MOLECULE_LEASE_UNTIL`/`MOLECULE_OWNER`
into `GITHUB_ENV` for CI molecule jobs, and this repo's own
`runner_cleanup.sh` (GRM-173) honors `org.oblachno.lease-until`/
`org.oblachno.owner` labels. The gitea_runner molecule scenarios still
don't map those env vars onto Docker platform labels, so cleanup can
reap an in-flight molecule container/network on the shared runner
daemon. The devx pin also predates the emitter.
## Approach
REQ-1: Add platform labels `org.oblachno.lease-until:
"${MOLECULE_LEASE_UNTIL:-0}"` and `org.oblachno.owner:
"${MOLECULE_OWNER:-molecule-local}"` to all 7
`ansible/roles/gitea_runner/molecule/*/molecule.yml` files.
REQ-2: Bump both `devx` pins in `pyproject.toml` to the first release
containing the emitter.
REQ-3: Unset `MOLECULE_*` env vars resolve to `0`/`molecule-local` — an
already-expired lease — preserving today's local cleanup behavior via
the `:-0`/`:-molecule-local` defaults.
## Test Plan
- `make lint-all` — yamllint + full lint.
- `make pytest-cov` — unchanged 100 % coverage gate.
- PR CI `fast-molecule` converges a touched scenario on the runner with
the env vars present.
## Deploy Plan
- Merge; post-merge auto-publishes the package and auto-creates the
infra devx-pin PR downstream.
## Rollback Plan
- Revert the merge commit; absent labels restore prior cleanup
semantics.
## Acceptance Criteria
- [x] REQ-1: all 7 molecule platforms carry the lease labels —
verified by `grep` across the files.
- [x] REQ-2: devx pins bumped to the release containing the emitter.
- [x] REQ-3: unset env vars produce an expired lease (`0`), preserving
local behavior — enforced by `:-0` defaults.
+2 -2
View File
@@ -36,7 +36,7 @@ ci = [
"build==1.5.1",
"twine==6.2.0",
# Reusable CI/CD and dev tools (auto-merge, pr-review, pre-push checks, etc.)
"devx @ git+https://git.oblachno.oblachno.fyi/oblachno-oss/devx.git@v0.51.9",
"devx @ git+https://git.oblachno.oblachno.fyi/oblachno-oss/devx.git@v0.56.0",
]
# Lint and type-checking tools (validate job)
lint = [
@@ -56,7 +56,7 @@ molecule = [
dev = [
"grm[ci,lint,molecule]",
# Reusable CI/CD and dev tools (pre-push hooks, create-task, create-pr)
"devx @ git+https://git.oblachno.oblachno.fyi/oblachno-oss/devx.git@v0.51.9",
"devx @ git+https://git.oblachno.oblachno.fyi/oblachno-oss/devx.git@v0.56.0",
# Non-Python dev dependency: checkmake (Makefile linter)
# Install via: go install github.com/checkmake/checkmake/cmd/checkmake@latest
]