Add tag:edge to Tailscale ACL, rotate OAuth client, fix edge server type #424
No reviewers
Labels
No labels
domain:backend
domain:devops
domain:frontend
status:approved
status:in-progress
status:needs-fix
status:qa
type:bug
type:devops
type:feature
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
ldraney/pal-e-platform!424
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "edge-node-apply-fixes"
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?
Summary
Fixes discovered during
tofu applyof the hetzner-edge module (PR #420). Edge node is live at178.156.129.142onedge-proxy.tail5b443a.ts.net.Changes
tag:edgetotagOwnersand edge→k8s ACL grant in networking moduletags = ["tag:edge"]totailscale_tailnet_key.edgeresourcecax11(ARM, EU-only) tocpx11(x86, Ashburn-available)Test Plan
tofu apply -target=module.networking— ACL updatedtofu apply -target=module.hetzner_edge— server + tailnet key createdtail5b443a.ts.net)Review Checklist
Related Notes
PR #424 Review
DOMAIN REVIEW
Tech stack: Terraform (HCL) + Salt (GPG-encrypted YAML pillar). Reviewing against Terraform style, k8s security, and secrets handling checklists.
Tailscale ACL policy (
networking/main.tf):tag:edgeadded totagOwnerswithautogroup:adminownership -- consistent with existingtag:k8spattern.src=tag:edge, dst=tag:k8s, ip=*) follows least privilege: edge can only reach k8s-tagged nodes, not admin devices or the broader tailnet. Good scoping for a reverse proxy role.Tailnet key tagging (
hetzner-edge/main.tf):tags = ["tag:edge"]on thetailscale_tailnet_key.edgeresource ensures the edge node joins the tailnet with the correct tag, which the ACL grant requires. Without this, the node would be untagged and the ACL would not match. Correct and necessary.Server type change (
hetzner-edge/variables.tf):cax11(ARM, EU-only) tocpx11(x86, Ashburn-available). Operational reason documented in PR body. No correctness concern.Credential rotation (
salt/pillar/secrets/platform.sls):tailscale_oauth_client_idandtailscale_oauth_client_secretGPG ciphertext blobs replaced. All values remain GPG-encrypted; no plaintext secrets in the diff. The#!yaml|gpgshebang is intact for Salt GPG renderer.Root variables (
terraform/variables.tf):tofu fmtshould be the arbiter -- see nit below.BLOCKERS
None.
NITS
terraform/variables.tf: The diff adds a blank line at EOF. Runtofu fmtto normalize -- it will either keep or strip it consistently. Minor, but keeps the repo clean.ip = ["*"]on edge-to-k8s grant: This allows all ports. For a reverse proxy this is reasonable (it needs to reach whatever k8s services expose), but if the edge proxy will only ever hit HTTP/HTTPS, consider tightening toip = ["80", "443"]in a future iteration. Not a blocker for this PR since the proxy needs may vary.SOP COMPLIANCE
PROCESS OBSERVATIONS
VERDICT: APPROVED