修复 Runner SPIFFE 身份路径并补充关联日志 #13

Merged
panxiao81 merged 1 commits from fix/identity-binding-observability into main 2026-09-16 18:01:57 +00:00
Owner

根因

VictoriaLogs 中的 SPIRE Operator 日志显示,job Run on Ubuntu 被映射为包含 %20 的 annotation;SPIFFE path segment 只接受字母、数字、点、横线和下划线,因此 entry 一直无法渲染,job-start hook 最终超时。

变更

  • 合法 job/repository segment 保持不变
  • 含空格、Unicode 或其他非法字符的名称映射为可读 slug 加 SHA-256 短 hash,保持稳定并避免清洗碰撞
  • controller 记录 webhook 收到、忽略、runner request 发布和 identity binding 发布
  • pod-worker 记录 runner request、Pod 创建/删除、ack/nak,以及 binding 接收、404 重试、patch 和 ack
  • 日志均携带 job ID、run ID、repository、job name、runner name 或 Pod name 等关联字段

验证

  • pytest: 14 passed
  • python3 -m compileall -q src tests
  • git diff --check
  • Run on Ubuntu 映射为 Run-on-Ubuntu-8b7cd4c244fb
  • lint 等既有合法名称保持不变
## 根因 VictoriaLogs 中的 SPIRE Operator 日志显示,job `Run on Ubuntu` 被映射为包含 `%20` 的 annotation;SPIFFE path segment 只接受字母、数字、点、横线和下划线,因此 entry 一直无法渲染,job-start hook 最终超时。 ## 变更 - 合法 job/repository segment 保持不变 - 含空格、Unicode 或其他非法字符的名称映射为可读 slug 加 SHA-256 短 hash,保持稳定并避免清洗碰撞 - controller 记录 webhook 收到、忽略、runner request 发布和 identity binding 发布 - pod-worker 记录 runner request、Pod 创建/删除、ack/nak,以及 binding 接收、404 重试、patch 和 ack - 日志均携带 job ID、run ID、repository、job name、runner name 或 Pod name 等关联字段 ## 验证 - `pytest`: 14 passed - `python3 -m compileall -q src tests` - `git diff --check` - `Run on Ubuntu` 映射为 `Run-on-Ubuntu-8b7cd4c244fb` - `lint` 等既有合法名称保持不变
panxiao81 added 1 commit 2026-09-16 18:01:11 +00:00
修复 Runner 身份路径并补充关联日志
test / python (pull_request) Successful in 8s
test / shell (pull_request) Successful in 15s
68bb02b20a
panxiao81 merged commit d03927d73c into main 2026-09-16 18:01:57 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: panxiao81/gitea-dynamic-runner#13