Skip to content

Sync preinstall/sbr-config to upstream v1.2.0 - #594

Open
WekaJosh wants to merge 1 commit into
masterfrom
feature/sbr-config-1.2.0
Open

Sync preinstall/sbr-config to upstream v1.2.0#594
WekaJosh wants to merge 1 commit into
masterfrom
feature/sbr-config-1.2.0

Conversation

@WekaJosh

Copy link
Copy Markdown
Collaborator

Syncs preinstall/sbr-config/ to SBR-Config v1.2.0, a bug-fix release from a full-project review.

Highlights

  • Multi-IP interfaces no longer break --configure. Interfaces with several IPv4 addresses previously planned duplicate ip route add commands; the second failed with EEXIST and aborted the whole apply. Persistence backends also mishandled these (networkd wrote one file per IP with the last overwriting the rest, netplan emitted invalid duplicate YAML keys, the NM dispatcher generated unreachable case branches). All backends now emit one config per interface covering every address.
  • Rollback is a true snapshot restore. Backups now capture every managed persistence file alongside rt_tables. Rollback restores the running configuration from backup time: SBR rules, routes, rt_tables entries, sysctl values, and persistence file contents all return to their backed-up state, and anything added since is removed. Legacy backups fall back to the previous behavior.
  • Sysctl persistence writes the complete required set, not just the current run's delta, so settings that were already correct at runtime survive reboot.
  • ifupdown persistence is idempotent across repeat runs (no more stacked duplicate post-up/pre-down blocks).
  • Assorted smaller fixes: rule priority allocation, lock-file race, netplan apply timeout, relative log paths, strict-umask directory creation, missing /etc/iproute2 auto-created.

Mirror was verified to be an exact copy of upstream v1.1.0 before syncing, so no local changes were overwritten.

🤖 Generated with Claude Code

Bug-fix release. Highlights:
- Multi-IP interfaces no longer break --configure (duplicate route
  adds EEXIST'd and aborted the apply); persistence backends now emit
  one config per interface covering all its addresses.
- Rollback is a true snapshot restore: SBR rules, routes, rt_tables,
  sysctl, and persistence files return to their backed-up state.
- Sysctl persistence writes the complete required set, not the delta.
- ifupdown persistence is idempotent across repeat runs.
- Assorted smaller fixes (rule priority allocation, lock race,
  netplan apply timeout, relative log paths, strict-umask dirs).

Full changelog: https://github.com/WekaJosh/SBR-Config (v1.1.0..v1.2.0)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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