Skip to content

feat(tailscale): manage tailnet policy with gitops - #6

Merged
jmgilman merged 1 commit into
masterfrom
feat/tailscale-policy-gitops
Aug 18, 2026
Merged

feat(tailscale): manage tailnet policy with gitops#6
jmgilman merged 1 commit into
masterfrom
feat/tailscale-policy-gitops

Conversation

@jmgilman

Copy link
Copy Markdown
Contributor

Summary

Makes git the source of truth for the tailnet policy file.

  • tailscale/policy.hujson — the current tailnet policy, with every tag:dntls
    element removed (tag owner, both ACL rules, and the admin SSH rule). Comments
    record the intent of each section.
  • .github/workflows/tailscale-acl.yml — validates the policy on pull requests
    and applies it on merge to master or manual dispatch, using
    tailscale/gitops-acl-action pinned by commit. Authenticates with a Tailscale
    workload identity federation credential, so no long-lived secret is stored.
  • .gitignore — ignores version-cache.json, the etag cache gitops-pusher
    writes at runtime.

Validation

  • Policy parsed with github.com/tailscale/hujson; Standardize produces
    exactly the intended JSON.
  • actionlint reports no issues for the workflow.
  • The Tailscale ACL check on this pull request validates the policy against the
    tailnet.

Notes

Documentation is the companion pull request GilmanLab/root#9: ADR-0002, the
Tailscale policy reference, and the policy change runbook. Console editing gets
locked after the first successful apply.

Track the tailnet policy file in git and sync it with a GitHub Action:
validate on pull requests, apply on merge to master. Authenticates with a
Tailscale workload identity federation credential, so no long-lived secret
is stored in the repository.

Drops tag:dntls, which is no longer used.
@jmgilman
jmgilman merged commit b160c71 into master Aug 18, 2026
1 of 2 checks passed
@jmgilman
jmgilman deleted the feat/tailscale-policy-gitops branch August 18, 2026 23:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant