all lists on 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal