public inbox for pve-devel@lists.proxmox.com
 help / color / mirror / Atom feed
From: Thomas Lamprecht <t.lamprecht@proxmox.com>
To: pve-devel@lists.proxmox.com, Daniel Kral <d.kral@proxmox.com>
Subject: applied: [PATCH-SERIES docs/ha-manager/manager v3 00/16] Negative Node Affinity Rules
Date: Fri, 24 Jul 2026 00:02:58 +0200	[thread overview]
Message-ID: <178484416713.2171173.16396343676880035118.b4-ty@b4> (raw)
In-Reply-To: <20260722084824.108350-1-d.kral@proxmox.com>

On Wed, 22 Jul 2026 10:48:08 +0200, Daniel Kral wrote:
> v2: https://lore.proxmox.com/pve-devel/20260602100226.180071-1-d.kral@proxmox.com/
> RFC v1: https://lore.proxmox.com/pve-devel/20251219133643.295514-1-d.kral@proxmox.com/
> 
> Thanks to @David for reviewing the patches in v2!
> 
> changes since v2:
> - rebase on master
> - add ha patch to convert PVE::HA::HashTools to use v5.36
> - make set_difference() use signatures instead of prototypes
> - add ui patch to handle empty node priority list string
> - use store.{begin,end}Update() when setting node priorities
> - clean up NodePrioritySelector component
> - fix being able to send node priorities again (forgot adding the change
>   listener on the proxmoxintegerfield in the priority column)
> - add link between config value and descriptive text for node affinity and
>   resource affinity rules in the web interface
> - fix some typos in the doc patches
> 
> [...]

Applied, thanks! 

I added a few fixes on top of manager and ha-manager, would be nice if you
could recheck them. The HA manager ones:

- The "negative rule covers all cluster nodes" check compared node counts,
  which only holds while the rule's nodes are a subset of the cluster. A rule
  still naming a since-removed node inflates the count and gets dropped even
  though its complement is non-empty. It now takes the actual complement via
  set_difference(), like the inversion transform already does.

- The consistency check between negative resource affinity and node affinity
  rules runs before the negative->positive inversion, so it read a negative
  rule's nodes as the allowed set and rejected feasible setups (e.g. keep vm:1
  and vm:2 apart, both off node1, on three nodes). It now uses the complement
  there too; added a test for the feasible and the still-infeasible case.

Plus a trivial cleanup dropping a redundant node-set copy in the inversion.

The root cause seems to be that negative rules only get inverted after all
checks ran, so every inter-plugin check has to special-case them.  Longer term
it'd be probably cleaner to invert right after the negative-specific checks and
before the general ones, so downstream only ever sees positive rules and this
whole class of "check saw the avoided set" issues can't happen. Needs a bit of
check/transform phase reordering though, better done on its own, so that's why
I took that in as is with the smaller targeted follow-up.

Manager were mostly smaller issues/nits, see git.

[docs]
[1/4] ha-manager: rules: use the correct article for terms starting with HA
      commit: 98db2cb4e0a32ec46e7fd15dc7022a4d4945eb85
[2/4] ha-manager: rules: improve resource affinity rule short description
      commit: 1fb475a0b63946938bd60bd44ee9257ad580311c
[3/4] ha-manager: rules: adapt rule configuration examples
      commit: ad879aaf5aa81c152f3068d0315445d7cf5557cb
[4/4] ha-manager: rules: add negative node affinity rule descriptions
      commit: 43f19f67ac5ed94a48bd18bd9fdead0291ff480d

[manager]
[1/8] ui: ha: node affinity: handle empty node priority list string
      https://git.proxmox.com/?p=pve-manager.git;a=commitdiff;h=20a533af3da99773f08749f453d4e3f29a4ab45f
[2/8] ui: ha: node affinity: handle non-existent nodes
      https://git.proxmox.com/?p=pve-manager.git;a=commitdiff;h=abd3f5480d9297590d2a48308f5a05ee1d17032e
[3/8] ui: ha: node affinity: do update node selection all at once
      https://git.proxmox.com/?p=pve-manager.git;a=commitdiff;h=3f85d86ee89e269c5daea3e45da911cf72d6fadc
[4/8] ui: ha: node affinity: commit node priority store all at once
      https://git.proxmox.com/?p=pve-manager.git;a=commitdiff;h=8b92486cf30a3f41c8513e5fd1246b6ab9c24aed
[5/8] ui: ha: node affinity: move node priority selector into separate component
      https://git.proxmox.com/?p=pve-manager.git;a=commitdiff;h=e7f0eb5ce8d0e628e0bbb86c5fb9ac74f2d47f80
[6/8] ui: ha: resource affinity: add hint for affinity type config value
      https://git.proxmox.com/?p=pve-manager.git;a=commitdiff;h=ffccb67a8dccc1fb4c005d14eacfdaee74511315
[7/8] ui: ha: node affinity: allow setting affinity for node affinity rules
      https://git.proxmox.com/?p=pve-manager.git;a=commitdiff;h=d48652d1d3c5b681e1e72538001f9beab6fcca94
[8/8] ui: ha: node affinity: do not send default node affinity rule values
      https://git.proxmox.com/?p=pve-manager.git;a=commitdiff;h=161d660efe08bfda6cec437e3f7515a39440319a

[ha-manager]
[1/4] rules: node affinity: add affinity property to node affinity rules
      commit: 067bb6789e0bcce98c4398f0eda989c70767adbe
[2/4] rules: rename ambiguous argument nodes to cluster nodes
      commit: 1aa71e315647c80898c7642ebed96a73a82ef1b1
[3/4] hash-tools: use v5.36 and signatures in module
      commit: bf7c2205577265315422f4882898e8d1c37bed6a
[4/4] rules: node affinity: implement negative node affinity rules
      commit: d9183b66a3e6a9fb07f863e03cb6acc44e8f3666




      parent reply	other threads:[~2026-07-23 22:08 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-07-22  8:48 [PATCH-SERIES docs/ha-manager/manager v3 00/16] Negative Node Affinity Rules Daniel Kral
2026-07-22  8:48 ` [PATCH ha-manager v3 01/16] rules: node affinity: add affinity property to node affinity rules Daniel Kral
2026-07-22  8:48 ` [PATCH ha-manager v3 02/16] rules: rename ambiguous argument nodes to cluster nodes Daniel Kral
2026-07-22  8:48 ` [PATCH ha-manager v3 03/16] hash-tools: use v5.36 and signatures in module Daniel Kral
2026-07-22  8:48 ` [PATCH ha-manager v3 04/16] rules: node affinity: implement negative node affinity rules Daniel Kral
2026-07-22  8:48 ` [PATCH manager v3 05/16] ui: ha: node affinity: handle empty node priority list string Daniel Kral
2026-07-22  8:48 ` [PATCH manager v3 06/16] ui: ha: node affinity: handle non-existent nodes Daniel Kral
2026-07-22  8:48 ` [PATCH manager v3 07/16] ui: ha: node affinity: do update node selection all at once Daniel Kral
2026-07-22  8:48 ` [PATCH manager v3 08/16] ui: ha: node affinity: commit node priority store " Daniel Kral
2026-07-22  8:48 ` [PATCH manager v3 09/16] ui: ha: node affinity: move node priority selector into separate component Daniel Kral
2026-07-22  8:48 ` [PATCH manager v3 10/16] ui: ha: resource affinity: add hint for affinity type config value Daniel Kral
2026-07-22  8:48 ` [PATCH manager v3 11/16] ui: ha: node affinity: allow setting affinity for node affinity rules Daniel Kral
2026-07-22  8:48 ` [PATCH manager v3 12/16] ui: ha: node affinity: do not send default node affinity rule values Daniel Kral
2026-07-22  8:48 ` [PATCH docs v3 13/16] ha-manager: rules: use the correct article for terms starting with HA Daniel Kral
2026-07-22  8:48 ` [PATCH docs v3 14/16] ha-manager: rules: improve resource affinity rule short description Daniel Kral
2026-07-22  8:48 ` [PATCH docs v3 15/16] ha-manager: rules: adapt rule configuration examples Daniel Kral
2026-07-22  8:48 ` [PATCH docs v3 16/16] ha-manager: rules: add negative node affinity rule descriptions Daniel Kral
2026-07-23 22:02 ` Thomas Lamprecht [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=178484416713.2171173.16396343676880035118.b4-ty@b4 \
    --to=t.lamprecht@proxmox.com \
    --cc=d.kral@proxmox.com \
    --cc=pve-devel@lists.proxmox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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