From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from gate001.proxmox.com (gate001.proxmox.com [IPv6:2a0f:8001:1:32::40]) by lore.proxmox.com (Postfix) with ESMTPS id C77DD1FF0AE for ; Tue, 13 Oct 2026 14:33:14 +0200 (CEST) Received: from gate001.proxmox.com (localhost.localdomain [127.0.0.1]) by gate001.proxmox.com (Proxmox) with ESMTP id 777162162D; Tue, 13 Oct 2026 14:32:43 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.10.3 smtp.infra.comaite.com 6800762C13 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=comaite.com; s=377A38C6-3A8D-11E5-A0EC-E97757B27CB3; t=1791893674; bh=20GUvqEKwXeGnFtU7fUTW+KlcEKfZdH08jfy5z6ocqQ=; h=From:To:Date:Message-ID:MIME-Version; b=Tya3PtNsSUWsBSj1dJ1CNFKM4fVaajGOZGCzZ16cAkxsEgLvvbd8Sr2DdZ1WB9wf/ zOfkGbY+VMYOLtFeWoSZU6jYg735ccmZzvfuPbiXFnFmSpiaYAnNK3G1T1X+RWoz2d BAQ5HOkSwU2JItGOhlCjTethFia+3b3f06U5IntBHJthMVXEaNH+xV+8pkxSLt695/ vexrpNPPxpzJLXWTHWbG6nbX9FnBGoAAXpyajXus1kjnRjszAqBdmRtSk0pVctwzp9 5QJpJbM8fUUcd4PVeTSnelEJzuXHhZebBKrtACKiKmWMc9MkTANP5aMM/fJDfqAx1j 4ohIXDxLisfCQ== From: =?UTF-8?q?R=C3=A9mi=20PAETA?= To: pve-devel@lists.proxmox.com Subject: [RFC PATCH manager 12/16] ui: sdn: add ovn controller Date: Tue, 13 Oct 2026 14:14:28 +0200 Message-ID: <20261013121432.2642979-13-remi.paeta@comaite.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20261013121432.2642979-1-remi.paeta@comaite.com> References: <1116090294.1714263.1791537779868.JavaMail.zimbra@comaite.com> <20261013121432.2642979-1-remi.paeta@comaite.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-SPAM-LEVEL: Spam detection results: 0 AWL 0.833 Adjusted score from AWL reputation of From: address DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from domain DMARC_PASS -0.1 DMARC pass policy SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Message-ID-Hash: P3DRWGJRSBJLXLVCNVBVLOY6KYIHDKPO X-Message-ID-Hash: P3DRWGJRSBJLXLVCNVBVLOY6KYIHDKPO X-MailFrom: remi.paeta@comaite.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Proxmox VE development discussion List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: Allow creating and editing OVN controllers, which describe an existing OVN deployment through the connection strings of its northbound and southbound databases. The tunnel encapsulation defaults to Geneve and is an advanced option, as VXLAN limits the OVN features. Signed-off-by: Rémi PAETA --- www/manager6/Makefile | 1 + www/manager6/Utils.js | 5 +++ www/manager6/sdn/controllers/OvnEdit.js | 50 +++++++++++++++++++++++++ 3 files changed, 56 insertions(+) create mode 100644 www/manager6/sdn/controllers/OvnEdit.js diff --git a/www/manager6/Makefile b/www/manager6/Makefile index d2ea786b..3007e5e9 100644 --- a/www/manager6/Makefile +++ b/www/manager6/Makefile @@ -324,6 +324,7 @@ JSSRC= \ sdn/controllers/EvpnEdit.js \ sdn/controllers/BgpEdit.js \ sdn/controllers/IsisEdit.js \ + sdn/controllers/OvnEdit.js \ sdn/IpamView.js \ sdn/ipams/Base.js \ sdn/ipams/NetboxEdit.js \ diff --git a/www/manager6/Utils.js b/www/manager6/Utils.js index 8b99371d..4321682b 100644 --- a/www/manager6/Utils.js +++ b/www/manager6/Utils.js @@ -964,6 +964,11 @@ Ext.define('PVE.Utils', { ipanel: 'IsisInputPanel', faIcon: 'crosshairs', }, + ovn: { + name: 'ovn', + ipanel: 'OvnInputPanel', + faIcon: 'crosshairs', + }, }, sdnipamSchema: { diff --git a/www/manager6/sdn/controllers/OvnEdit.js b/www/manager6/sdn/controllers/OvnEdit.js new file mode 100644 index 00000000..bc7a7a90 --- /dev/null +++ b/www/manager6/sdn/controllers/OvnEdit.js @@ -0,0 +1,50 @@ +Ext.define('PVE.sdn.controllers.OvnInputPanel', { + extend: 'PVE.panel.SDNControllerBase', + + initComponent: function () { + let me = this; + + me.items = [ + { + xtype: me.isCreate ? 'textfield' : 'displayfield', + name: 'controller', + maxLength: 8, + value: me.controllerid || '', + fieldLabel: 'ID', + allowBlank: false, + }, + { + xtype: 'proxmoxtextfield', + name: 'nb-connection', + fieldLabel: gettext('Northbound DB'), + emptyText: 'tcp:10.0.0.1:6641,… or ssl:10.0.0.1:6641,…', + allowBlank: false, + }, + { + xtype: 'proxmoxtextfield', + name: 'sb-connection', + fieldLabel: gettext('Southbound DB'), + emptyText: 'tcp:10.0.0.1:6642,… or ssl:10.0.0.1:6642,…', + allowBlank: false, + }, + ]; + + me.advancedItems = [ + { + xtype: 'proxmoxKVComboBox', + name: 'encap-type', + value: '', + emptyText: Proxmox.Utils.defaultText + ' (Geneve)', + comboItems: [ + ['geneve', 'Geneve'], + ['vxlan', 'VXLAN'], + ], + fieldLabel: gettext('Encapsulation'), + allowBlank: true, + deleteEmpty: !me.isCreate, + }, + ]; + + me.callParent(); + }, +}); -- 2.47.3