[PR #2961] [MERGED] tags: ensure tag changes propagate #2969

Closed
opened 2025-12-29 04:19:51 +01:00 by adam · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/juanfont/headscale/pull/2961
Author: @kradalby
Created: 12/13/2025
Status: Merged
Merged: 12/16/2025
Merged by: @kradalby

Base: mainHead: kradalby/2389-tags-propagation


📝 Commits (8)

  • 6e12d1d editorconfig: add basic editor config
  • 63b02cf policy: more accurate node change
  • ee5d82a integration: replicate tag propagation issue
  • c84d04a change: smarter change notifications
  • 2a56ab2 Dockerfile: align packages
  • 38410eb flake: remove hi from shell
  • e274c94 policy: clarify usernam resolve comment
  • cbe8013 integration: make entrypoint override more robust

📊 Changes

30 files changed (+2577 additions, -698 deletions)

View changed files

.editorconfig (+16 -0)
📝 .github/workflows/test-integration.yaml (+2 -0)
📝 Dockerfile.integration (+1 -1)
📝 Dockerfile.integration-ci (+1 -1)
📝 Dockerfile.tailscale-HEAD (+3 -1)
📝 flake.nix (+0 -3)
📝 hscontrol/app.go (+4 -4)
📝 hscontrol/assets/style.css (+2 -6)
📝 hscontrol/grpcv1.go (+5 -9)
📝 hscontrol/mapper/batcher.go (+47 -126)
📝 hscontrol/mapper/batcher_lockfree.go (+106 -40)
📝 hscontrol/mapper/batcher_test.go (+40 -44)
📝 hscontrol/mapper/builder.go (+1 -3)
📝 hscontrol/mapper/mapper.go (+92 -35)
📝 hscontrol/oidc.go (+11 -9)
📝 hscontrol/policy/v2/policy.go (+29 -8)
📝 hscontrol/policy/v2/policy_test.go (+123 -0)
📝 hscontrol/policy/v2/types.go (+1 -1)
📝 hscontrol/state/node_store_test.go (+89 -0)
📝 hscontrol/state/state.go (+158 -124)

...and 10 more files

📄 Description

This commit rebuilds the system for how we propagate
changes in headscale to make sure we send the appropriate
map response based on the changes that has occured instead
of sending a full map response when we do not know what to
do or to be lazy.

This closes gaps where we did not updates peers correctly
when a node was assigned or taken away from a node, or it
was changed in the Policy, and required the nodes to be
informed about changes to the network map.

Additional information in commits

Fixes https://github.com/juanfont/headscale/issues/2389

claude was used in this PR.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/juanfont/headscale/pull/2961 **Author:** [@kradalby](https://github.com/kradalby) **Created:** 12/13/2025 **Status:** ✅ Merged **Merged:** 12/16/2025 **Merged by:** [@kradalby](https://github.com/kradalby) **Base:** `main` ← **Head:** `kradalby/2389-tags-propagation` --- ### 📝 Commits (8) - [`6e12d1d`](https://github.com/juanfont/headscale/commit/6e12d1d3dd53e3b47ce3f24e0b413cb0df3c56c9) editorconfig: add basic editor config - [`63b02cf`](https://github.com/juanfont/headscale/commit/63b02cf53edb0d5cce884d18a36be73ce7760083) policy: more accurate node change - [`ee5d82a`](https://github.com/juanfont/headscale/commit/ee5d82a176d75cd0a6f69499fb6898c123a53aac) integration: replicate tag propagation issue - [`c84d04a`](https://github.com/juanfont/headscale/commit/c84d04a8c9bf45a084277b290fe346c6d09ef44e) change: smarter change notifications - [`2a56ab2`](https://github.com/juanfont/headscale/commit/2a56ab237b9c31c114a9852609cae007ee88679a) Dockerfile: align packages - [`38410eb`](https://github.com/juanfont/headscale/commit/38410eb08ca412008e288d3cc53ccdc727b18e02) flake: remove hi from shell - [`e274c94`](https://github.com/juanfont/headscale/commit/e274c94d2302ddeaf30ab0b6d36a2f07003d1431) policy: clarify usernam resolve comment - [`cbe8013`](https://github.com/juanfont/headscale/commit/cbe8013c85b7f82804c65c132d8870582a6b0711) integration: make entrypoint override more robust ### 📊 Changes **30 files changed** (+2577 additions, -698 deletions) <details> <summary>View changed files</summary> ➕ `.editorconfig` (+16 -0) 📝 `.github/workflows/test-integration.yaml` (+2 -0) 📝 `Dockerfile.integration` (+1 -1) 📝 `Dockerfile.integration-ci` (+1 -1) 📝 `Dockerfile.tailscale-HEAD` (+3 -1) 📝 `flake.nix` (+0 -3) 📝 `hscontrol/app.go` (+4 -4) 📝 `hscontrol/assets/style.css` (+2 -6) 📝 `hscontrol/grpcv1.go` (+5 -9) 📝 `hscontrol/mapper/batcher.go` (+47 -126) 📝 `hscontrol/mapper/batcher_lockfree.go` (+106 -40) 📝 `hscontrol/mapper/batcher_test.go` (+40 -44) 📝 `hscontrol/mapper/builder.go` (+1 -3) 📝 `hscontrol/mapper/mapper.go` (+92 -35) 📝 `hscontrol/oidc.go` (+11 -9) 📝 `hscontrol/policy/v2/policy.go` (+29 -8) 📝 `hscontrol/policy/v2/policy_test.go` (+123 -0) 📝 `hscontrol/policy/v2/types.go` (+1 -1) 📝 `hscontrol/state/node_store_test.go` (+89 -0) 📝 `hscontrol/state/state.go` (+158 -124) _...and 10 more files_ </details> ### 📄 Description This commit rebuilds the system for how we propagate changes in headscale to make sure we send the appropriate map response based on the changes that has occured instead of sending a full map response when we do not know what to do or to be lazy. This closes gaps where we did not updates peers correctly when a node was assigned or taken away from a node, or it was changed in the Policy, and required the nodes to be informed about changes to the network map. Additional information in commits Fixes https://github.com/juanfont/headscale/issues/2389 claude was used in this PR. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
adam added the pull-request label 2025-12-29 04:19:51 +01:00
adam closed this issue 2025-12-29 04:19:51 +01:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/headscale#2969