feat(headscale): ephemeral CI runners join as tag:ci (Forgejo and cache only) #274
Loading…
Reference in a new issue
No description provided.
Delete branch "jfraeys/feat/tag-ci-acl"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Follow-up of #251. CI VMs joined with the `tag:web` key, so a job (arbitrary repo code) on a runner inherited the public web host's tailnet reach: SSH to services and web, the LLDAP admin port, Postfix.
Checked
coaching-site'srefresh_demojob SSHes to$DEMO_REFRESH_SSH_HOST. The operator confirmed it is a public address, sotag:cidoes not affect it. The other workflows in infra, coaching-site and forge-agent use no tailnet SSH.Rollout (two deploys, in this order)
Rollback: revert and redeploy both steps (a job fails to reach Forgejo only if the ACL rule is missing; the old key keeps working until its 168h expiry).
The ACL cannot be tested in CI (staging nodes join the live Headscale); the only automated check is the rendered-policy unit test plus `headscale policy check` at deploy.
🤖 Generated with Claude Code
https://claude.ai/code/session_01Ge5tovcwdEUBtPwUktsZZZ