[pve-devel] [PATCH pve-manager v4 16/17] ui: sdn: add evpn controller fabric integration

Gabriel Goller g.goller at proxmox.com
Wed Jul 2 16:50:58 CEST 2025


From: Stefan Hanreich <s.hanreich at proxmox.com>

Expose the new fabric field added to the EVPN controller in the UI.
Users can now select any fabric in the EVPN controller, instead of
having to specify peers manually. This simplifies setting up an EVPN
zone via SDN fabrics considerably.

Since the peers field can now be empty, we have to adapt the existing
field to allow empty values and properly send the delete property when
updating a controller.

Signed-off-by: Stefan Hanreich <s.hanreich at proxmox.com>
---
 www/manager6/sdn/controllers/Base.js     | 17 ++++++++++++
 www/manager6/sdn/controllers/EvpnEdit.js | 34 ++++++++++++++++++++++--
 2 files changed, 49 insertions(+), 2 deletions(-)

diff --git a/www/manager6/sdn/controllers/Base.js b/www/manager6/sdn/controllers/Base.js
index b73af80dfe06..071345400ce5 100644
--- a/www/manager6/sdn/controllers/Base.js
+++ b/www/manager6/sdn/controllers/Base.js
@@ -8,8 +8,25 @@ Ext.define('PVE.panel.SDNControllerBase', {
 
         if (me.isCreate) {
             values.type = me.type;
+            delete values.delete;
         } else {
             delete values.controller;
+
+            for (const [key, value] of Object.entries(values)) {
+                if (value === null || value === undefined || value === "") {
+                    delete values[key];
+
+                    if (values.delete) {
+                        if (Array.isArray(values.delete)) {
+                            values.delete.push(key);
+                        } else {
+                            values.delete = [values.delete, key];
+                        }
+                    } else {
+                        values.delete = [key];
+                    }
+                }
+            }
         }
 
         return values;
diff --git a/www/manager6/sdn/controllers/EvpnEdit.js b/www/manager6/sdn/controllers/EvpnEdit.js
index 9f5910327c52..cf879cda23ac 100644
--- a/www/manager6/sdn/controllers/EvpnEdit.js
+++ b/www/manager6/sdn/controllers/EvpnEdit.js
@@ -25,10 +25,40 @@ Ext.define('PVE.sdn.controllers.EvpnInputPanel', {
                 allowBlank: false,
             },
             {
-                xtype: 'textfield',
+                xtype: 'proxmoxNetworkSelector',
+                name: 'fabric',
+                type: 'fabric',
+                valueField: 'iface',
+                displayField: 'iface',
+                fieldLabel: 'SDN Fabric',
+                allowBlank: true,
+                skipEmptyText: true,
+                autoSelect: false,
+                emptyText: gettext('used as underlay network'),
+                nodename: 'localhost',
+                listConfig: {
+                    width: 600,
+                    columns: [
+                        {
+                            header: gettext('Fabric'),
+                            width: 90,
+                            dataIndex: 'iface',
+                        },
+                        {
+                            header: gettext('CIDR'),
+                            dataIndex: 'cidr',
+                            hideable: false,
+                            flex: 1,
+                        },
+                    ],
+                },
+            },
+            {
+                xtype: 'proxmoxtextfield',
                 name: 'peers',
                 fieldLabel: gettext('Peers'),
-                allowBlank: false,
+                allowBlank: true,
+                deleteEmpty: true,
             },
         ];
 
-- 
2.39.5





More information about the pve-devel mailing list