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 159E51FF0AD for ; Sun, 18 Oct 2026 14:48:31 +0200 (CEST) Received: from gate001.proxmox.com (localhost.localdomain [127.0.0.1]) by gate001.proxmox.com (Proxmox) with ESMTP id 978402177D; Sun, 18 Oct 2026 14:47:15 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=cUnTZHgCl6H/CLeQMQOLazLAzMntp+925vVGU1OudD6IBU78rTin5cqRVrJZQEXSYJ0o2jo+XhwNK/9Z/CUYNQAcqr/iQTx6POa6QpKtlOsMQyOZBuBujtr/vHgleMPApvirBT3VAD3ev3CqRfjB19s/Iy3+RHFfkyaIDdtGLtEVH5pNZyyoJXlFCSRcb+rwIZssPrYHA+al76Tpu7IK98KrJhRwMjELyMhKyaQ5Wfw8NbjvZgPVVVzEZT+awb+2AIgu7SmPSFGCtU2qKX/S6u9GKBXiE35DrQiEdmeQYiR/liz5RPN6YxQJymDKdoNA1YYI4V4IFNCM5CyR6Ovp4A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=gyi2c/CD1vqJzjf5NLEXmdE65Vf8OVzBpZV4kWOV8KA=; b=A8T1C7zejk2dwewhqIhzqw9n/YZnLIXy7BG8M+sHGpUTODdLMe1lNhktYxkj4Y4iH3vm8kAmVbSnMVQLGk8+507RGA2K7Rms3YFwY72leSqMUe23cKfdcZcLzk6hjnUOdErcMDuvYnTuMfG12LfcK/Vf941ZmfxNC9r7q1ntGghQp9vhGSvkn1vlsbPkpEvYDrRc1N/H9jFk9ERP3zbp4bQm21xXGXTJk2zfJcrHOjfMFvbriuC+mhqWSey2IVEcXaVnaxGLI1rqbzndlEVJ9BNl8Tf7GHgL3OqmhVEPE1waXj/JHUc4EHbj4n19tfe7mGTmOUNKAlqdy5z7jauAoQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=ryomherold.dk; dmarc=pass action=none header.from=ryomherold.dk; dkim=pass header.d=ryomherold.dk; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=RyomHerold.dk; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=gyi2c/CD1vqJzjf5NLEXmdE65Vf8OVzBpZV4kWOV8KA=; b=hZMvFf2N2+19FIsiJ/Z777Pkq4wytZcNiT1gunJjii/X095DKr10fjRbJpn1g7RKrNdQy3ya3XtVPhnBj2G5I/t2WqE54eTC9mG7rwmwBcWmBghjZqXiWdErrJ7odPFcATzXdG2r6w9zw10/dbjh4D+TdsM28+HPxgxfkToyUQLCyGA9KmklflV2ksis5O2IqRKZpPm/4FoSQEsGkC32cRldupSRE604mGOgFAy2f2IuzOhsziOLPC/E50oJLhAYRbml6hTCn+fa/Y3cjchenYa5TeoXqxcuFJ9bbFslxVgWKf5jWHW5IXZh5EoPftDc3vnFgzj+FFgwwayaUD65ow== Authentication-Results: mx.microsoft.com 1; dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=RyomHerold.dk; From: Michael Ryom To: pve-devel@lists.proxmox.com Subject: [PATCH manager v2 13/14] ui: crs options: expose the auto-rebalance margin mode and cooldown Date: Sun, 18 Oct 2026 14:45:57 +0200 Message-ID: <20261018124559.24305-14-Michael@RyomHerold.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20261018124559.24305-1-Michael@RyomHerold.dk> References: <20261018124559.24305-1-Michael@RyomHerold.dk> Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: MM0P280CA0046.SWEP280.PROD.OUTLOOK.COM (2603:10a6:190:b::20) To AS8PR10MB7231.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:619::17) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8PR10MB7231:EE_|PA4PR10MB5706:EE_ X-MS-Office365-Filtering-Correlation-Id: c888c37e-1118-4a34-7a85-08df2d15cde6 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014|23010399003|22082099003|10067099003|18002099003|261009223027099003|261009221227099003|56012099006; X-Microsoft-Antispam-Message-Info: 4I2O1l9O3afa5qZzEl/eAcJfjiaaGVkYHptf9cqji8pC0aA5fIDlYRZFggu1kZoSLEeFghWUvLEkGIMwrbzedM9x55OmorcswnGUHJdUYhrEYGzXDTnw7cLbXbBFrSBPqondjwk5Fh9a804eYloTj5XI7/VUpgCQu+Bb5v3NWGUNoTKNIPuH/mmEOJkcSXso+uu3C7LVa4v+vMHlLZNaklBYi33GSZpx9Tgylt+MFyUZ+y1ODLg90qwqEJe+1XNiztvG4jowAtsCR/TaFMdTu/m0H/aRRbzRGBWRTor9lanjL6bu0BNlqxsuwgJ3qIZ1L/51nU+jjp8klBdlY/IpCUFOGwDOBJhEz3ZxgvkjjvZVV+/iCg4RhmHtOismSqESoFoIf7wFU8+oi+CQIM8gqVCW+D/kJarV/9ZJhc4Vp8E0XjIu2oyyNbf9u0Jl9lMZBWkNwjM0y+8NW07v+7UDWprpXG0luFA627hFg+GdfUPTFZo7WDHq8JfQZJqS2YywKWC55PJ+juJQ+mhP2x1NrLWpA0v+BwesxqYtO1uEAybY5qMxHq4O4atR2jwa2mu7RHv+cZWMnVBMqLAW05s6pqmHBXL7jx95z8FeRBvVLdfuFwPheZinChKxuXK39A+8PdU6ofR/iDIB+oXbPblRuTVMoyCZ1E9S3g5dT1c+Usc= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR10MB7231.EURPRD10.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(23010399003)(22082099003)(10067099003)(18002099003)(261009223027099003)(261009221227099003)(56012099006);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?zPP8/zBAraM0YSmHJt5VIzLNIsD+OVe1AwJXNRH0hWDJrPiHbLgXJcHczgPa?= =?us-ascii?Q?U2CWqLsJ0RUd7MQrjVgGFVrW7w9mMTkHYMSJSCIvFNXi7Gf3VnZpH2LjAujH?= =?us-ascii?Q?WawqQHV4ennU5RQVfcODxKZ9qhjXCOIARGCkb/iXYQdeRY1xRqTIud7gAtHg?= =?us-ascii?Q?4XsU+8OeWTwLAPEV51cVNtTY6Hhp2n7ils6739899en/q3bZqYQB8gfaT/BC?= =?us-ascii?Q?09fvJd9vjakK14KgSyRMgpNNDbvDCcelFCt2SiSVvm1gw2HvHCPHDy2XfzEj?= =?us-ascii?Q?62iYBu1noSc2NcLMT3b+wnCPs/BazMlbHyqCSo4rzhAh1Y5DDMpR/c6bmOKw?= =?us-ascii?Q?l65wEVf/K4N3pti16H6J5ZE9KxqGSTmlypz9ciWUOhP37aO9KdsEYiBaHEWs?= =?us-ascii?Q?/G1DNpV2IqAjF/GVkpIMxcq6y1ZQeLG8lt+Y6VcfyPEiSgcqBLWumdzXn8VG?= =?us-ascii?Q?Mzo1jjySreaH+asR40KSaUBxqGmc7U3o4NbUwc2OLU3Gy2otYCeJdCryA2TC?= =?us-ascii?Q?u41ECOwXAuWFVDBMjl0HPnsheSAwrnEvQYu6DTu7Y8EXAMnFT2H2771XaL5U?= =?us-ascii?Q?tFmtxOfBz6J/M1qfIhqeoqX2+XBkF4O0pX1QDGQB9Scz/pGOebzIX5Sr9VaD?= =?us-ascii?Q?OcCEHTjmeAEh1yDlhkpSliwPJuFMrhBf1VKbZuf5D011QZ+J7i/T0EWyGi1f?= =?us-ascii?Q?W2aIfwtPqjwnnfLnkns0dwj7xXkpSiq7e6rGuHoDU69WzPVzeQkIlNn8/pXU?= =?us-ascii?Q?LXm2Ez6OUtewR4R6rmXO8CBlYZSGN641QZVNInJXPDQNRUKjSsYtEAtq1zUT?= =?us-ascii?Q?FTo8dXTX2A6GH1jkVxW44itbA3fucG+/WCIWSmsZJB1WUCxl+3DlC22qePFq?= =?us-ascii?Q?C5K969D1lOnwZwdNvQ8Be6p9H7AV+EnqoAdVNqs0/K/r8GSzWT3ecdQUvivy?= =?us-ascii?Q?0znDn0EDPm8+jicgw0uWVobAq2hxTnxlx6PLdDJv9WAacIGmwPV9YxsJ49V8?= =?us-ascii?Q?MBtgeHsf93xZMEcz32oEcYMFuJZ5BagwhMwz2sLy6cK5Jz+bxkk2uX9Ng31n?= =?us-ascii?Q?6gt/VBd+2hJORlmordOvsZt7D8em1qwfopa9ZlrzzcnzClC0tuX+pkt3puw/?= =?us-ascii?Q?6bBOWJwGpFsPQoGIkW1xzVeFYvY2CZCiCcfjvloh2KwG8s09ad+kkbio5qUf?= =?us-ascii?Q?SJILJOA1aGx7RI5Nw3LOhXXLf5XzDjINP0YEuwSWBMrIdZQScV5YMnfCIEU6?= =?us-ascii?Q?vlyEN1mPb2/SedPUChWicXY/Bl24JdJ82eN8PlYrd3jqx210alHsWebcTxSf?= =?us-ascii?Q?+qecOOiV7pbt0XIzFpQIvBsAWHeEcfCfkPmTj0oaGkZy0a3uij3NV1Mrn5mi?= =?us-ascii?Q?x+ektbbJmiF/RfrQ+wt0NKpvIsIQjEmli07bOmp5cye1BjG/8nA03tHlhevU?= =?us-ascii?Q?LxB07+jpJdlBehB175MBUDq82NeTF1S23bnvBtRrKt2G1ZHTJNQzVv39KSut?= =?us-ascii?Q?PCojOnHqcBpvjHz3uAsviokQ7tIQNKL/5+MpATXXaBBX4kC8A4GAC7xyTYG+?= =?us-ascii?Q?BLZPPCnYLNOufzT3AuN+zSHNMUxxyEevdlK2dGpBRRkclQPu7e+6OeFXtpxy?= =?us-ascii?Q?t6Saq52McHX5ETdXA65D/IaYPMTp+MgcgBOQgL7WKJQqOsOvvWJBLLLrKP1U?= =?us-ascii?Q?dZjWszlvL7I6zjDyZQ5iwcG9YHN8cvmK9xnBhJIdMBhOcsrZkoXZusxvmHHt?= =?us-ascii?Q?08RLBgbB7g=3D=3D?= X-OriginatorOrg: RyomHerold.dk X-MS-Exchange-CrossTenant-Network-Message-Id: c888c37e-1118-4a34-7a85-08df2d15cde6 X-MS-Exchange-CrossTenant-AuthSource: AS8PR10MB7231.EURPRD10.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Oct 2026 12:46:18.2736 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 26a2499e-4646-4888-a695-c64736a56807 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: L3qMz4brUMXCVp+VbCtTNc+60M7LPVe1xrwb0/u2P7V9mOdj0zxklMV5zYWeq3g/Q6ltYL5mXrTJrK83KsIwkA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR10MB5706 X-SPAM-LEVEL: Spam detection results: 0 AWL -0.003 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 GB_MSAUTHSOURCE_EUROPE 0.01 Mail authenticated via Microsoft Europe (EURP) datacenter RCVD_IN_DNSWL_NONE -0.0001 Sender listed at https://www.dnswl.org/, no trust RCVD_IN_MSPIKE_H2 0.001 Average reputation (+2) SPF_HELO_PASS -0.001 SPF: HELO matches SPF record SPF_PASS -0.001 SPF: sender matches SPF record Message-ID-Hash: 4OC6G7GBH5VSJZNSYY6N26HSCY5EALHM X-Message-ID-Hash: 4OC6G7GBH5VSJZNSYY6N26HSCY5EALHM X-MailFrom: Michael@RyomHerold.dk 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 CC: Michael Ryom X-Mailman-Version: 3.3.10 Precedence: list List-Id: Proxmox VE development discussion List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: Add form fields for the ha-auto-rebalance-margin-mode and ha-auto-rebalance-cooldown datacenter options. They follow the same pattern as the existing auto-rebalance tuning fields, including being disabled while automatic rebalancing is off. As the unit of the margin now depends on the margin mode, drop the percent sign from its label and show the unit in the mode selection instead. Signed-off-by: Michael Ryom --- www/manager6/form/CRSOptions.js | 35 ++++++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/www/manager6/form/CRSOptions.js b/www/manager6/form/CRSOptions.js index 84f6d506..bdf64177 100644 --- a/www/manager6/form/CRSOptions.js +++ b/www/manager6/form/CRSOptions.js @@ -117,7 +117,7 @@ Ext.define('PVE.form.CRSOptions', { { xtype: 'numberfield', name: 'ha-auto-rebalance-margin', - fieldLabel: gettext('Minimum Imbalance Improvement (%)'), + fieldLabel: gettext('Minimum Imbalance Improvement'), emptyText: Proxmox.Utils.defaultText + ' (10)', minValue: 0, maxValue: 100, @@ -126,6 +126,39 @@ Ext.define('PVE.form.CRSOptions', { disabled: '{autoRebalancingDisabled}', }, }, + { + xtype: 'proxmoxKVComboBox', + name: 'ha-auto-rebalance-margin-mode', + fieldLabel: gettext('Improvement Mode'), + deleteEmpty: false, + value: '__default__', + comboItems: [ + [ + '__default__', + Proxmox.Utils.defaultText + ' (' + gettext('Relative') + ')', + ], + ['relative', gettext('Relative') + ' (%)'], + [ + 'absolute', + gettext('Absolute') + ' (' + gettext('percentage points') + ')', + ], + ], + defaultValue: '__default__', + bind: { + disabled: '{autoRebalancingDisabled}', + }, + }, + { + xtype: 'numberfield', + name: 'ha-auto-rebalance-cooldown', + fieldLabel: gettext('Cooldown (s)'), + emptyText: Proxmox.Utils.defaultText + ' (0)', + minValue: 0, + step: 60, + bind: { + disabled: '{autoRebalancingDisabled}', + }, + }, ], }, ], -- 2.47.3