public inbox for pve-devel@lists.proxmox.com
 help / color / mirror / Atom feed
* [PATCH installer v5 00/23] fix #2164: add bond and vlan setup across all installers
@ 2026-11-06 13:10 Christoph Heiss
  2026-11-06 13:10 ` [PATCH installer v5 01/23] install: run make tidy Christoph Heiss
                   ` (22 more replies)
  0 siblings, 23 replies; 24+ messages in thread
From: Christoph Heiss @ 2026-11-06 13:10 UTC (permalink / raw)
  To: pve-devel

Fixes #2164 [0] by adding the possibility to set up a bond and a VLAN tag for
the management interface during the installation, for all of GUI, TUI and
auto-installer.

For the GUI and TUI, the current name pinning dialog is converted into a
full-fledged advanced network options dialog, in the same vein as with
the bootdisk options.

This makes it practical to then add additional networking options, in
this case bond and VLAN options.

The auto-installer gains two new sections under [network]:

  [network.bond]
  members = ["ab:cd:ef:12:34:56", "ab:cd:ef:12:34:57"]
  # or, alternatively
  filter.ID_NET_DRIVER = "igc"
  filter-match = "all"
  # general bond options
  mode = "active-backup"
  hash-policy = "layer2+3"
  primary-interface = "ab:cd:ef:12:34:57"

  [network.vlan]
  vid = 5

Both being of course independent of each other. [network.vlan] can only be set
in combination with

  [network]
  source = "from-answer"

The respective PDM integration will be sent separately.

[0] https://bugzilla.proxmox.com/show_bug.cgi?id=2164

History
=======
v4: https://lore.proxmox.com/pve-devel/20261102124539.1008075-1-c.heiss@proxmox.com/
v3: off-list review sample
v2: https://lore.proxmox.com/pve-devel/20261020112327.641633-1-c.heiss@proxmox.com/
v1: https://lore.proxmox.com/pve-devel/20260908101647.1057780-1-c.heiss@proxmox.com/

Notable changes v4 -> v5:
  * dropped now-applied `proxmox` patches
  * rebased on applied `proxmox-{installer,network}-types` changes
  * fixed (de-)serialization mismatch for low-level config w.r.t. what the Perl
    side generates

Notable changes v3 -> v4:
  * add some `Display` derives for proxmox-installer-types
  * fixed expanding of tab page contents, which caused unnecessary padding

Notable changes v2 -> v3:
  * added VLAN configuration support
  * rebased atop @Thomas changes, including some patches from him
  * split bond member selection into static list and udev filters

Notable changes v1 -> v2:
  * rebased on latest masters for each repo
  * fixed a bug in the GUI installer, passing an invalid index to GTK with a
    bond set up

Questions
=========

1. Since we now discourage the use of the 'balance-alb' and 'balance-tlb'
   modes in combination with a Linux bridge (as of [1]), should these not
   even be available for selection here?

[1] https://lore.proxmox.com/pve-devel/20260828095721.263382-1-m.sandoval@proxmox.com/

Diffstat
========

pve-installer:

Christoph Heiss (23):
  install: run make tidy
  tree-wide: use `MacAddress` type instead of string for MAC addresses
  install: factor out ifupdown2 config generation into own subroutine
  install: do not rely on interface name map to be fully populated
  install: config: add option for setting up bond on management
    interface
  install: config: add option for setting up vlan on management
    interface
  install: network: set up management bond if requested
  install: network: set up vlan on management interface if requested
  gui: network: factor out name pinning into advanced options dialog
  gui: network: add bond setup options to advanced options dialog
  gui: network: add vlan setup options to advanced network dialog
  auto: pass through management network bond options to low-level
    installer
  auto: pass through management network vlan options to low-level
    installer
  tui: drop long obsolete comment about logo formatting
  tui: views: add widget for displaying a group of checkboxes
  tui: network: factor out name pinning into advanced options dialog
  tui: network: match form label style when enabling/disabling elements
  tui: network: add bond setup options to advanced network dialog
  tui: network: add vlan setup options to advanced network dialog
  gui: network: split advanced options dialog into tabs
  tui: network: split advanced options dialog into tabs
  gui: network: list bond member candidates sharing a MAC address once
  tui: network: list bond member candidates sharing a MAC address once

 Cargo.toml                                    |   4 +-
 Proxmox/Install.pm                            | 244 ++++--
 Proxmox/Install/Config.pm                     |  79 ++
 Proxmox/Sys/Net.pm                            |  43 +
 debian/control                                |   3 +-
 proxinstall                                   | 491 +++++++++--
 proxmox-auto-installer/Cargo.toml             |   1 +
 proxmox-auto-installer/src/utils.rs           | 113 ++-
 proxmox-auto-installer/tests/parse-answer.rs  |  12 +-
 .../resources/parse_answer/network_bond.json  |  25 +
 .../resources/parse_answer/network_bond.toml  |  20 +
 .../parse_answer/network_bond_and_vlan.json   |  29 +
 .../parse_answer/network_bond_and_vlan.toml   |  27 +
 .../network_bond_with_filter.json             |  24 +
 .../network_bond_with_filter.toml             |  22 +
 ...ace_pinning_mixed_case_mac_addresses.json} |   0
 ...ace_pinning_mixed_case_mac_addresses.toml} |   4 +-
 .../resources/parse_answer/network_vlan.json  |  23 +
 .../resources/parse_answer/network_vlan.toml  |  21 +
 .../network_bond_invalid_hash_policy.json     |   3 +
 .../network_bond_invalid_hash_policy.toml     |  20 +
 .../network_bond_invalid_mode.json            |   3 +
 .../network_bond_invalid_mode.toml            |  18 +
 .../network_bond_primary_not_member.json      |   3 +
 .../network_bond_primary_not_member.toml      |  19 +
 .../network_bond_single_interface.json        |   3 +
 .../network_bond_single_interface.toml        |  18 +
 ...rface_pinning_overlong_interface_name.json |   2 +-
 .../network_vlan_invalid_vid.json             |   3 +
 .../network_vlan_invalid_vid.toml             |  21 +
 proxmox-installer-common/Cargo.toml           |   1 +
 proxmox-installer-common/src/options.rs       | 117 +--
 proxmox-installer-common/src/setup.rs         | 103 ++-
 proxmox-post-hook/src/main.rs                 |   2 +-
 proxmox-tui-installer/Cargo.toml              |   1 +
 proxmox-tui-installer/src/main.rs             |   9 +-
 proxmox-tui-installer/src/options.rs          |  51 +-
 proxmox-tui-installer/src/setup.rs            |  20 +-
 proxmox-tui-installer/src/views/mod.rs        | 186 ++++-
 proxmox-tui-installer/src/views/network.rs    | 766 ++++++++++++++----
 .../src/views/tabbed_view.rs                  |   7 +
 test/Makefile                                 |   6 +-
 test/generate-ifupdown2-config.pl             | 541 +++++++++++++
 43 files changed, 2723 insertions(+), 385 deletions(-)
 create mode 100644 proxmox-auto-installer/tests/resources/parse_answer/network_bond.json
 create mode 100644 proxmox-auto-installer/tests/resources/parse_answer/network_bond.toml
 create mode 100644 proxmox-auto-installer/tests/resources/parse_answer/network_bond_and_vlan.json
 create mode 100644 proxmox-auto-installer/tests/resources/parse_answer/network_bond_and_vlan.toml
 create mode 100644 proxmox-auto-installer/tests/resources/parse_answer/network_bond_with_filter.json
 create mode 100644 proxmox-auto-installer/tests/resources/parse_answer/network_bond_with_filter.toml
 rename proxmox-auto-installer/tests/resources/parse_answer/{network_interface_pinning_uppercase_mac_address.json => network_interface_pinning_mixed_case_mac_addresses.json} (100%)
 rename proxmox-auto-installer/tests/resources/parse_answer/{network_interface_pinning_uppercase_mac_address.toml => network_interface_pinning_mixed_case_mac_addresses.toml} (85%)
 create mode 100644 proxmox-auto-installer/tests/resources/parse_answer/network_vlan.json
 create mode 100644 proxmox-auto-installer/tests/resources/parse_answer/network_vlan.toml
 create mode 100644 proxmox-auto-installer/tests/resources/parse_answer_fail/network_bond_invalid_hash_policy.json
 create mode 100644 proxmox-auto-installer/tests/resources/parse_answer_fail/network_bond_invalid_hash_policy.toml
 create mode 100644 proxmox-auto-installer/tests/resources/parse_answer_fail/network_bond_invalid_mode.json
 create mode 100644 proxmox-auto-installer/tests/resources/parse_answer_fail/network_bond_invalid_mode.toml
 create mode 100644 proxmox-auto-installer/tests/resources/parse_answer_fail/network_bond_primary_not_member.json
 create mode 100644 proxmox-auto-installer/tests/resources/parse_answer_fail/network_bond_primary_not_member.toml
 create mode 100644 proxmox-auto-installer/tests/resources/parse_answer_fail/network_bond_single_interface.json
 create mode 100644 proxmox-auto-installer/tests/resources/parse_answer_fail/network_bond_single_interface.toml
 create mode 100644 proxmox-auto-installer/tests/resources/parse_answer_fail/network_vlan_invalid_vid.json
 create mode 100644 proxmox-auto-installer/tests/resources/parse_answer_fail/network_vlan_invalid_vid.toml
 create mode 100755 test/generate-ifupdown2-config.pl





^ permalink raw reply	[flat|nested] 24+ messages in thread

end of thread, other threads:[~2026-11-06 13:15 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-11-06 13:10 [PATCH installer v5 00/23] fix #2164: add bond and vlan setup across all installers Christoph Heiss
2026-11-06 13:10 ` [PATCH installer v5 01/23] install: run make tidy Christoph Heiss
2026-11-06 13:10 ` [PATCH installer v5 02/23] tree-wide: use `MacAddress` type instead of string for MAC addresses Christoph Heiss
2026-11-06 13:10 ` [PATCH installer v5 03/23] install: factor out ifupdown2 config generation into own subroutine Christoph Heiss
2026-11-06 13:10 ` [PATCH installer v5 04/23] install: do not rely on interface name map to be fully populated Christoph Heiss
2026-11-06 13:10 ` [PATCH installer v5 05/23] install: config: add option for setting up bond on management interface Christoph Heiss
2026-11-06 13:10 ` [PATCH installer v5 06/23] install: config: add option for setting up vlan " Christoph Heiss
2026-11-06 13:10 ` [PATCH installer v5 07/23] install: network: set up management bond if requested Christoph Heiss
2026-11-06 13:10 ` [PATCH installer v5 08/23] install: network: set up vlan on management interface " Christoph Heiss
2026-11-06 13:10 ` [PATCH installer v5 09/23] gui: network: factor out name pinning into advanced options dialog Christoph Heiss
2026-11-06 13:10 ` [PATCH installer v5 10/23] gui: network: add bond setup options to " Christoph Heiss
2026-11-06 13:10 ` [PATCH installer v5 11/23] gui: network: add vlan setup options to advanced network dialog Christoph Heiss
2026-11-06 13:10 ` [PATCH installer v5 12/23] auto: pass through management network bond options to low-level installer Christoph Heiss
2026-11-06 13:10 ` [PATCH installer v5 13/23] auto: pass through management network vlan " Christoph Heiss
2026-11-06 13:10 ` [PATCH installer v5 14/23] tui: drop long obsolete comment about logo formatting Christoph Heiss
2026-11-06 13:10 ` [PATCH installer v5 15/23] tui: views: add widget for displaying a group of checkboxes Christoph Heiss
2026-11-06 13:10 ` [PATCH installer v5 16/23] tui: network: factor out name pinning into advanced options dialog Christoph Heiss
2026-11-06 13:10 ` [PATCH installer v5 17/23] tui: network: match form label style when enabling/disabling elements Christoph Heiss
2026-11-06 13:10 ` [PATCH installer v5 18/23] tui: network: add bond setup options to advanced network dialog Christoph Heiss
2026-11-06 13:10 ` [PATCH installer v5 19/23] tui: network: add vlan " Christoph Heiss
2026-11-06 13:10 ` [PATCH installer v5 20/23] gui: network: split advanced options dialog into tabs Christoph Heiss
2026-11-06 13:10 ` [PATCH installer v5 21/23] tui: " Christoph Heiss
2026-11-06 13:10 ` [PATCH installer v5 22/23] gui: network: list bond member candidates sharing a MAC address once Christoph Heiss
2026-11-06 13:10 ` [PATCH installer v5 23/23] tui: " Christoph Heiss

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal