-
Notifications
You must be signed in to change notification settings - Fork 24
bug(chart): multi-doc renderer ignores user-supplied machine.network.interfaces #141
Copy link
Copy link
Closed
Labels
area/chartIssues or PRs related to charts/ (Chart.yaml, helpers, templates)Issues or PRs related to charts/ (Chart.yaml, helpers, templates)area/networkingIssues or PRs related to networking (interfaces, VIP, routes)Issues or PRs related to networking (interfaces, VIP, routes)kind/bugCategorizes issue or PR as related to a bugCategorizes issue or PR as related to a bugpriority/important-soonMust be staffed and worked on either currently, or very soon, ideally in time for the next releaseMust be staffed and worked on either currently, or very soon, ideally in time for the next releasetriage/acceptedIndicates an issue is ready to be actively worked onIndicates an issue is ready to be actively worked on
Metadata
Metadata
Assignees
Labels
area/chartIssues or PRs related to charts/ (Chart.yaml, helpers, templates)Issues or PRs related to charts/ (Chart.yaml, helpers, templates)area/networkingIssues or PRs related to networking (interfaces, VIP, routes)Issues or PRs related to networking (interfaces, VIP, routes)kind/bugCategorizes issue or PR as related to a bugCategorizes issue or PR as related to a bugpriority/important-soonMust be staffed and worked on either currently, or very soon, ideally in time for the next releaseMust be staffed and worked on either currently, or very soon, ideally in time for the next releasetriage/acceptedIndicates an issue is ready to be actively worked onIndicates an issue is ready to be actively worked on
What
On the Talos v1.12 multi-doc rendering path (
charts/generic/templates/_helpers.tpl:talos.config.network.multidoc), the chart fully reconstructs network configuration from live discovery resources (links,addresses,routes) and explicitly does NOT consulttalm.discovered.existing_interfaces_configuration.Source comment (
charts/generic/templates/_helpers.tpl:87-90):The premise — "v1.12 nodes already store network config in separate documents" — does not hold for clusters that were upgraded from a pre-1.12 chart. Their running
MachineConfigstill carriesmachine.network.interfaces[]from the legacy schema, and the multi-doc renderer drops it on first re-render.Symptom
A user upgrading from v0.23 to v0.24+ does not get an automatic migration of legacy
machine.network.interfaces[]declarations into multi-doc form. The legacy declarations vanish from the rendered config.This is invisible at template time:
talm templateproduces a config that looks complete (HostnameConfig, ResolverConfig, one LinkConfig / VLANConfig / BondConfig for the gateway link) but is missing every secondary interface, every secondary VLAN, every static route, and every user-side override that lived undermachine.network.interfaces.Reproduction shape (any of these triggers it)
values.yamlthat injects extra interfaces, addresses, or routes via the legacymachine.network.interfaces[]schema.Affected versions
Introduced in #116 (v0.24.0). Present in
mainas of writing.Possible directions
existing_interfaces_configurationin multi-doc mode and translate non-trivial entries intoLinkConfig/VLANConfig/BondConfig/RouteConfigdocuments.machine.network.interfaces[]block invalues.yaml) and translate them at render time.existing_interfaces_configuration. Smallest change; unblocks users until a real translator is built.Option 3 is recommended as the first step.