-
Notifications
You must be signed in to change notification settings - Fork 25
bug(chart): VLAN sub-interface missing from talm template output on v1.12 multi-doc path #140
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 bugkind/regressionCategorizes issue or PR as related to a regression from a prior releaseCategorizes issue or PR as related to a regression from a prior releasepriority/critical-urgentHighest priority. Must be actively worked on as someones top priority right nowHighest priority. Must be actively worked on as someones top priority right nowpriority/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 bugkind/regressionCategorizes issue or PR as related to a regression from a prior releaseCategorizes issue or PR as related to a regression from a prior releasepriority/critical-urgentHighest priority. Must be actively worked on as someones top priority right nowHighest priority. Must be actively worked on as someones top priority right nowpriority/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
Type
Fields
Give feedbackNo fields configured for issues without a type.
What
A VLAN sub-interface that is configured on a Talos node is not emitted as a
VLANConfigdocument bytalm templateon the v1.12 multi-doc rendering path. The node ends up with the VLAN silently dropped from its rendered config.Repro
Node has a VLAN sub-interface configured (carrying the default route, in the reporter's setup). Then:
Expected:
nodes/cozy-01.yamlcontains anapiVersion: v1alpha1, kind: VLANConfigdocument describing the VLAN.Observed: no
VLANConfigin the output. The VLAN information is absent.Affected versions
Regression introduced by the migration to the Talos v1.12 multi-doc config format in #116 (v0.24.0). The legacy v1alpha1 single-doc render path is not affected.
Candidate root causes (need confirmation against the live repro)
The multi-doc renderer in
charts/generic/templates/_helpers.tpl(talos.config.network.multidoc, lines 86-213) and the cozystack mirror incharts/cozystack/templates/_helpers.tplonly emits aVLANConfigwhen:talm.discovered.default_link_name_by_gatewayresolves to a link, ANDspec.kind == "vlan"per the live COSIlinksresource.Three independent paths drop a configured VLAN:
Secondary VLANs are dropped unconditionally. The renderer handles only the gateway-bearing link. A VLAN that does not carry the default route (storage / mgmt) is never emitted, regardless of discovery state. See
charts/generic/templates/_helpers.tpl:121-184. Tracked separately as a coverage gap.existing_interfaces_configurationis intentionally bypassed in multi-doc mode (charts/generic/templates/_helpers.tpl:87-90). The legacy path consultslookup "machineconfig" "" "v1alpha1"and copies user-declared interfaces verbatim; the multi-doc path explicitly does not. Any VLAN declared in the existing machine config (legacy schema) is silently discarded. Tracked separately.Discovery may not see the VLAN at template time.
is_vlanreads$link.spec.kind == "vlan"from the live COSIlinksresource (charts/talm/templates/_helpers.tpl:262-268). If the VLAN link is not yet up (first apply, or replay after wipe, or the older Talos on the live node represents the link differently), the check fails and noVLANConfigis emitted.Information needed to narrow it down
talm template ...for the affected node (IPs may be redacted).talosctl --nodes <NODE_IP> get links --output yamlto confirm what discovery actually sees, and the value ofspec.kindfor the VLAN link.talosctl --nodes <NODE_IP> versionvstalosVersiondeclared invalues.yaml/Chart.yaml.MachineConfig(legacymachine.network.interfaces[].vlans[]), or already as a separateVLANConfigdocument?