Skip to content

Commit b37abbe

Browse files
committed
fix: drop defunct cloud_reg_addrs; document real mechanism (resume.py) (#7)
Resolves the gen6 blocker from live validation, and corrects a documentation error that predated gen6. Research (against SchedMD source): cloud_reg_addrs is NOT a documented slurm.conf option — absent from slurm.conf.5 in 23.11, 24.05, 25.05, and 25.11. It was a no-op warning on <=24.05 and is a hard error ('defunct') on 25.11. Burst-node addressing is actually done by the AWS plugin's resume.py, which runs 'scontrol update nodename=<n> nodeaddr=<ip> nodehostname=<h>' after the EC2 instance gets its IP — the documented default cloud path (see cloud_dns in slurm.conf.5). Config (all generations that carried it): - gen3, gen5, gen6 slurm.conf.tpl: SlurmctldParameters=idle_on_node_suspend (dropped cloud_reg_addrs). gen1/gen2 never had it. Unblocks gen6 on Slurm 25.11; a no-op change for gen3/gen5 since the plugin already set NodeAddr. Docs (corrected the inaccurate 'key improvement' narrative): - slurm-gen3-deep-dive.md: rewrote the section to credit resume.py; fixed the comparison table, query/watch examples, and troubleshooting steps. - generations.md: rewrote the Gen 3 'key architectural improvement' block and the Gen 5/6 mentions; fixed the two arc diagrams and the choose-a-gen table; replaced the now-invalid cloud_reg_addrs demo example. - README, sa-guide, support-matrix: dropped cloud_reg_addrs as a listed feature. All remaining cloud_reg_addrs mentions repo-wide are explicit 'defunct/removed/was incorrect' correction notes. terraform validate passes on gen3/5/6; doc links clean. This does not require re-validating gen3/gen5 on live AWS: the parameter was inert there (plugin owns addressing), so removing it cannot change their behavior.
1 parent 9767c3d commit b37abbe

8 files changed

Lines changed: 109 additions & 111 deletions

File tree

README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ burstlab/
5050
│ ├── architecture.md # Network, EFS, NAT, IAM, and security design
5151
│ ├── slurm-gen1-deep-dive.md # Every slurm.conf directive explained (Gen 1)
5252
│ ├── slurm-gen2-deep-dive.md # Gen 2 config changes from Gen 1
53-
│ ├── slurm-gen3-deep-dive.md # Gen 3 config changes, cloud_reg_addrs
53+
│ ├── slurm-gen3-deep-dive.md # Gen 3 config changes, cgroup v2
5454
│ ├── plugin-v2-setup.md # Plugin v2 setup: configs, debugging, IAM
5555
│ ├── sa-guide.md # How to use BurstLab with customers
5656
│ └── workloads/ # Workloads overlay: data staging demos
@@ -205,20 +205,20 @@ Each is an independently deployable cluster matching a specific customer environ
205205
|---|---|---|---|---|
206206
| **Gen 1** | Rocky 8 | 22.05.x | Python 3.6 boto3 shim; cgroup v1; FSx ✅ | RHEL/Rocky 8, Slurm 22.x — largest installed base |
207207
| **Gen 2** | Rocky 9 | 23.11.x | Python 3.9 native; cgroup v2; FSx ✅ | RHEL/Rocky 9, Slurm 23.x |
208-
| **Gen 3** | Rocky 10 | 24.05.x | `cloud_reg_addrs`; cgroup v2 only; Ed25519; [FSx requires burstlab-lustre](https://github.com/scttfrdmn/burstlab-lustre) | RHEL/Rocky 10, Slurm 24.x; greenfield |
208+
| **Gen 3** | Rocky 10 | 24.05.x | cgroup v2 only; Ed25519; [FSx requires burstlab-lustre](https://github.com/scttfrdmn/burstlab-lustre) | RHEL/Rocky 10, Slurm 24.x; greenfield |
209209

210210
### Ubuntu Track
211211

212212
| Generation | OS | Slurm | Key Features | When to Use |
213213
|---|---|---|---|---|
214214
| **Gen 4** | Ubuntu 22.04 | 23.11.x | apt/AppArmor; Python 3.10; cgroup v2; [FSx requires burstlab-lustre](https://github.com/scttfrdmn/burstlab-lustre) | Ubuntu 22.04, Slurm 23.x; academic/cloud-native/NVIDIA |
215-
| **Gen 5** | Ubuntu 24.04 | 24.05.x | apt/AppArmor; Python 3.12; `cloud_reg_addrs`; [FSx requires burstlab-lustre](https://github.com/scttfrdmn/burstlab-lustre) | Ubuntu 24.04, Slurm 24.x; latest LTS |
215+
| **Gen 5** | Ubuntu 24.04 | 24.05.x | apt/AppArmor; Python 3.12; [FSx requires burstlab-lustre](https://github.com/scttfrdmn/burstlab-lustre) | Ubuntu 24.04, Slurm 24.x; latest LTS |
216216

217217
### Managed-AWS-Slurm Track
218218

219219
| Generation | OS | Slurm | Key Features | When to Use |
220220
|---|---|---|---|---|
221-
| **Gen 6** | Amazon Linux 2023 | 25.11.x | `cloud_reg_addrs`; cgroup v2 only; matches ParallelCluster/PCS; **authored, not yet validated** | Migrating to/from AWS ParallelCluster 3.15.x or AWS PCS |
221+
| **Gen 6** | Amazon Linux 2023 | 25.11.x | cgroup v2 only; matches ParallelCluster/PCS; **authored, not yet validated** | Migrating to/from AWS ParallelCluster 3.15.x or AWS PCS |
222222

223223
**Start with Gen 1 for RHEL/Rocky customers** or **Gen 4 for Ubuntu customers** unless you know
224224
the specific OS and Slurm version. Most HPC teams struggling with cloud bursting today are on
@@ -342,7 +342,7 @@ BurstLab eliminates the "can we even get it working" phase. The Terraform and co
342342
| [architecture.md](docs/architecture.md) | SAs, technical customers | Network, EFS, NAT, IAM deep dive |
343343
| [slurm-gen1-deep-dive.md](docs/slurm-gen1-deep-dive.md) | SAs, HPC admins | Every slurm.conf directive for Gen 1 |
344344
| [slurm-gen2-deep-dive.md](docs/slurm-gen2-deep-dive.md) | SAs, HPC admins | Gen 2 config changes from Gen 1 |
345-
| [slurm-gen3-deep-dive.md](docs/slurm-gen3-deep-dive.md) | SAs, HPC admins | Gen 3 config changes, `cloud_reg_addrs` |
345+
| [slurm-gen3-deep-dive.md](docs/slurm-gen3-deep-dive.md) | SAs, HPC admins | Gen 3 config changes, cgroup v2 |
346346
| [plugin-v2-setup.md](docs/plugin-v2-setup.md) | SAs, HPC admins | Plugin v2 setup, configs, debugging |
347347
| [sa-guide.md](docs/sa-guide.md) | SAs | How to run a customer demo |
348348
| [workloads/overview.md](docs/workloads/overview.md) | SAs | Workloads overlay: scenario guide, storage tiers |

configs/gen3-slurm2405-rocky10/slurm.conf.tpl

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,9 @@
77
# on every node via EFS.
88
#
99
# Gen 3 additions vs Gen 2 (23.11/Rocky 9):
10-
# - cloud_reg_addrs: burst nodes register with their actual EC2 IP address.
11-
# slurmctld accepts any address from a CLOUD node without pre-configuration.
12-
# This eliminates the "SLURM_NODENAME must match configured NodeAddr" failure
13-
# mode when EC2 assigns a different private IP than expected.
10+
# - Burst node addresses are set by the AWS plugin's resume.py (scontrol update
11+
# nodeaddr=...), not by a slurm.conf parameter. See the Controller Parameters
12+
# note below on why cloud_reg_addrs is NOT used.
1413
# - TaskPlugin=task/cgroup: Rocky 10 uses cgroup v2 exclusively;
1514
# task/affinity is removed (deprecated in 24.x for pure-cgroup configs).
1615
# - cgroup.conf uses CgroupPlugin=cgroup/v2 (see separate file).
@@ -41,11 +40,13 @@ SelectTypeParameters=CR_Core_Memory
4140

4241
# --- Controller Parameters ---------------------------------------------------
4342
# idle_on_node_suspend: powered-down cloud nodes show as IDLE (not IDLE~) in sinfo.
44-
# cloud_reg_addrs: cloud nodes register with their actual EC2 IP. slurmctld
45-
# records the address at registration time and uses it for subsequent comms.
46-
# This is the key Gen 3 improvement: burst nodes no longer need NodeAddr
47-
# pre-configured or matching a specific IP.
48-
SlurmctldParameters=idle_on_node_suspend,cloud_reg_addrs
43+
# NOTE: cloud_reg_addrs was removed. It is not a documented slurm.conf option (absent
44+
# from slurm.conf.5 through 24.05) and is redundant here: burst node addresses are
45+
# set by the AWS plugin's resume.py, which runs `scontrol update nodename=<n>
46+
# nodeaddr=<ip> nodehostname=<h>` once the EC2 instance has an IP — the documented
47+
# default cloud-registration path (see the `cloud_dns` option). On 24.05 the
48+
# parameter only logged a warning; Slurm 25.11 rejects it as defunct.
49+
SlurmctldParameters=idle_on_node_suspend
4950

5051
# --- Accounting --------------------------------------------------------------
5152
AccountingStorageType=accounting_storage/slurmdbd

configs/gen5-slurm2405-ubuntu2404/slurm.conf.tpl

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,11 @@
66
# at deploy time via templatefile(). Written to /opt/slurm/etc/slurm.conf
77
# on every node via EFS.
88
#
9-
# Gen 3 additions vs Gen 2 (23.11/Rocky 9):
10-
# - cloud_reg_addrs: burst nodes register with their actual EC2 IP address.
11-
# slurmctld accepts any address from a CLOUD node without pre-configuration.
12-
# This eliminates the "SLURM_NODENAME must match configured NodeAddr" failure
13-
# mode when EC2 assigns a different private IP than expected.
14-
# - TaskPlugin=task/cgroup: Rocky 10 uses cgroup v2 exclusively;
9+
# Gen 5 (Slurm 24.05 on Ubuntu 24.04):
10+
# - Burst node addresses are set by the AWS plugin's resume.py (scontrol update
11+
# nodeaddr=...), not by a slurm.conf parameter. See the Controller Parameters
12+
# note below on why cloud_reg_addrs is NOT used.
13+
# - TaskPlugin=task/cgroup: Ubuntu 24.04 uses cgroup v2 exclusively;
1514
# task/affinity is removed (deprecated in 24.x for pure-cgroup configs).
1615
# - cgroup.conf uses CgroupPlugin=cgroup/v2 (see separate file).
1716
# =============================================================================
@@ -41,11 +40,13 @@ SelectTypeParameters=CR_Core_Memory
4140

4241
# --- Controller Parameters ---------------------------------------------------
4342
# idle_on_node_suspend: powered-down cloud nodes show as IDLE (not IDLE~) in sinfo.
44-
# cloud_reg_addrs: cloud nodes register with their actual EC2 IP. slurmctld
45-
# records the address at registration time and uses it for subsequent comms.
46-
# This is the key Gen 3 improvement: burst nodes no longer need NodeAddr
47-
# pre-configured or matching a specific IP.
48-
SlurmctldParameters=idle_on_node_suspend,cloud_reg_addrs
43+
# NOTE: cloud_reg_addrs was removed. It is not a documented slurm.conf option (absent
44+
# from slurm.conf.5 through 24.05) and is redundant here: burst node addresses are
45+
# set by the AWS plugin's resume.py, which runs `scontrol update nodename=<n>
46+
# nodeaddr=<ip> nodehostname=<h>` once the EC2 instance has an IP — the documented
47+
# default cloud-registration path (see the `cloud_dns` option). On 24.05 the
48+
# parameter only logged a warning; Slurm 25.11 rejects it as defunct.
49+
SlurmctldParameters=idle_on_node_suspend
4950

5051
# --- Accounting --------------------------------------------------------------
5152
AccountingStorageType=accounting_storage/slurmdbd

configs/gen6-slurm2511-alinux2023/slurm.conf.tpl

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,15 @@
66
# at deploy time via templatefile(). Written to /opt/slurm/etc/slurm.conf
77
# on every node via EFS.
88
#
9-
# Gen 6 carries the Slurm 24.05+ feature set (same as Gen 3/5) onto Slurm 25.11:
10-
# - cloud_reg_addrs: burst nodes register with their actual EC2 IP address.
11-
# slurmctld accepts any address from a CLOUD node without pre-configuration.
12-
# This eliminates the "SLURM_NODENAME must match configured NodeAddr" failure
13-
# mode when EC2 assigns a different private IP than expected.
9+
# Gen 6 notes (Slurm 25.11 on AL2023):
10+
# - NO cloud_reg_addrs. Slurm 25.11 makes that SlurmctldParameters option a hard
11+
# error ("defunct"). It was never a documented option (absent from slurm.conf.5
12+
# through 24.05) and was always redundant here: the AWS plugin's resume.py pushes
13+
# each burst node's address in explicitly via `scontrol update nodename=<n>
14+
# nodeaddr=<ip> nodehostname=<h>` once the EC2 instance has an IP. That is exactly
15+
# the default cloud-node registration path Slurm documents (see `cloud_dns`), so
16+
# dropping the parameter changes nothing operationally — the plugin still sets the
17+
# address. (gen3/gen5 carry it too but only warn on 24.05; 25.11 rejects it.)
1418
# - TaskPlugin=task/cgroup: AL2023 uses cgroup v2 exclusively;
1519
# task/affinity is removed (deprecated in 24.x for pure-cgroup configs).
1620
# - cgroup.conf uses CgroupPlugin=cgroup/v2 (see separate file).
@@ -41,11 +45,10 @@ SelectTypeParameters=CR_Core_Memory
4145

4246
# --- Controller Parameters ---------------------------------------------------
4347
# idle_on_node_suspend: powered-down cloud nodes show as IDLE (not IDLE~) in sinfo.
44-
# cloud_reg_addrs: cloud nodes register with their actual EC2 IP. slurmctld
45-
# records the address at registration time and uses it for subsequent comms.
46-
# This is the key Gen 6 improvement: burst nodes no longer need NodeAddr
47-
# pre-configured or matching a specific IP.
48-
SlurmctldParameters=idle_on_node_suspend,cloud_reg_addrs
48+
# (Still valid in Slurm 25.11.)
49+
# NOTE: cloud_reg_addrs is intentionally absent — it is defunct in Slurm 25.11 and
50+
# redundant with the AWS plugin (resume.py pushes NodeAddr in). See header.
51+
SlurmctldParameters=idle_on_node_suspend
4952

5053
# --- Accounting --------------------------------------------------------------
5154
AccountingStorageType=accounting_storage/slurmdbd

docs/generations.md

Lines changed: 23 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ computing teams in a single week might encounter:
2020
- A cloud-native HPC startup running Ubuntu 24.04 with Slurm 24.05
2121

2222
A demo that only works on one configuration is limited. If you show a customer running
23-
Slurm 22.05 a Gen 3 demo with `cloud_reg_addrs`, they cannot replicate it — the feature
24-
does not exist in their version. If you show a Rocky-based demo to an Ubuntu shop, they'll
23+
Slurm 22.05 a Gen 3 demo that leans on a Slurm 24.05 behavior or cgroup v2-only config,
24+
they cannot replicate it — those don't exist in their version. If you show a Rocky-based demo to an Ubuntu shop, they'll
2525
spend the entire meeting translating package names and paths instead of focusing on the
2626
bursting architecture.
2727

@@ -149,17 +149,18 @@ released in May 2025 and major research computing centers are piloting it for ne
149149

150150
**What changes from Gen 2:**
151151

152-
*`cloud_reg_addrs` — the key architectural improvement.* This is the most important
153-
change from a bursting perspective. In Gen 1 and Gen 2, burst nodes have a specific
154-
IP address assigned in `slurm.conf` via `NodeAddr=`. When a node boots with a different
155-
IP (because EC2 assigned a different address from the subnet), slurmctld rejects its
156-
registration.
152+
*Burst node addressing — handled by the plugin, not a Slurm parameter.* Burst nodes
153+
have no `NodeAddr` in `slurm.conf` (and `aws-burst-N` doesn't resolve in DNS). The AWS
154+
plugin's `resume.py` fills that gap: when a job needs a burst node, it launches the EC2
155+
instance, reads the assigned private IP, and runs
156+
`scontrol update nodename=aws-burst-N nodeaddr=<ip> nodehostname=<h>` to tell the
157+
controller the address — the documented default cloud-registration path (see `cloud_dns`
158+
in `slurm.conf.5`). This is the same across Gen 1–6 and every Slurm version.
157159

158-
`SlurmctldParameters=cloud_reg_addrs`, added in Slurm 24.05, changes this: when a burst
159-
node registers, slurmctld updates its `NodeAddr` with the actual IP the node is connecting
160-
from. No pre-configured `NodeAddr` is needed. The `generate_conf.py` output does not
161-
include `NodeAddr` lines for burst nodes. This eliminates an entire class of registration
162-
failures that Gen 1/2 customers encounter.
160+
> **Note:** earlier versions of this guide called out a `SlurmctldParameters=cloud_reg_addrs`
161+
> option as a Gen 3 improvement. That was incorrect — it's not a documented Slurm option,
162+
> it was a no-op on 24.05, and Slurm 25.11 rejects it as defunct. BurstLab no longer sets
163+
> it on any generation; `resume.py` does the address assignment.
163164
164165
*cgroup v2 only — no v1.* Rocky 10 (RHEL 10) compiles the kernel without
165166
`CONFIG_CGROUP_V1=y`. The legacy cgroup v1 hierarchy does not exist. Only the unified
@@ -240,8 +241,9 @@ the current state-of-the-art for Ubuntu-based HPC clusters.
240241

241242
**What changes from Gen 3 (Rocky 10 + Slurm 24.05):**
242243

243-
*Same Slurm version, different OS family.* Gen 5 uses the same Slurm 24.05 as Gen 3,
244-
including `cloud_reg_addrs` for dynamic burst node IP registration. The OS-level
244+
*Same Slurm version, different OS family.* Gen 5 uses the same Slurm 24.05 as Gen 3.
245+
Burst node IP registration is handled by the AWS plugin's `resume.py` (which runs
246+
`scontrol update nodeaddr=...` after launch), same as Gen 3. The OS-level
245247
differences mirror Gen 4: apt package manager, AppArmor, ufw firewall, ubuntu SSH user.
246248

247249
*Python 3.12.* Ubuntu 24.04 ships Python 3.12 as the default python3 (same version as
@@ -255,7 +257,7 @@ cgroup/v2 plugin compiled with dbus-devel and kernel-headers for full systemd in
255257
**Relevant customer profiles:**
256258
- Running Ubuntu 24.04 (Noble Numbat) on head node or compute nodes
257259
- Slurm 24.05 compiled from source or installed via Ubuntu repos
258-
- Early adopters of `cloud_reg_addrs` on Ubuntu
260+
- Teams standardizing on Ubuntu 24.04 + Slurm 24.05
259261
- Cloud-native HPC teams standardizing on Ubuntu 24.04 LTS
260262

261263
**Files:**
@@ -282,7 +284,7 @@ validating the obol budget-enforcement seam on a live ParallelCluster running Sl
282284
**What changes from Gen 3 (Rocky 10 + Slurm 24.05):**
283285

284286
*Same feature recipe, newer Slurm.* Gen 6 carries the Gen 3/5 configuration unchanged —
285-
`cloud_reg_addrs`, cgroup v2 only, `task/cgroup` — onto Slurm 25.11. Slurm 25.11 built
287+
cgroup v2 only, `task/cgroup` — onto Slurm 25.11. Slurm 25.11 built
286288
cleanly from source with the Gen 2/3 configure line during obol validation, so the build
287289
recipe is unchanged; the Slurm version is two minor releases past Gen 3/5's 24.05.
288290

@@ -318,10 +320,10 @@ doesn't need it; the overlay concern is tracked in obol#137, not here.
318320
| CentOS 8 or Rocky 8, Slurm 22.x | **Gen 1** | Exact match — same OS, same Slurm version, same Python workaround |
319321
| Rocky 8, Slurm 23.x (upgraded) | **Gen 1 or Gen 2** | OS matches Gen 1; Slurm version closer to Gen 2. Start with Gen 1 and note the Slurm version differences. |
320322
| Rocky 9, AlmaLinux 9, RHEL 9, Slurm 23.x | **Gen 2** | Exact match |
321-
| Rocky 9, Slurm 24.x (early adopter) | **Gen 2 or Gen 3** | OS matches Gen 2; Slurm version matches Gen 3. Cloud_reg_addrs may not be available in their 24.05 build — verify. |
323+
| Rocky 9, Slurm 24.x (early adopter) | **Gen 2 or Gen 3** | OS matches Gen 2; Slurm version matches Gen 3. Confirm their cgroup mode and Slurm 24.05 behaviors match the Gen 3 recipe — verify. |
322324
| Rocky 10, RHEL 10, Slurm 24.05+ | **Gen 3** | Exact match |
323325
| Ubuntu 22.04, Slurm 23.x | **Gen 4** | Exact match — Ubuntu 22.04 + Slurm 23.11 |
324-
| Ubuntu 24.04, Slurm 24.05+ | **Gen 5** | Exact match — Ubuntu 24.04 + Slurm 24.05 with cloud_reg_addrs |
326+
| Ubuntu 24.04, Slurm 24.05+ | **Gen 5** | Exact match — Ubuntu 24.04 + Slurm 24.05, cgroup v2 |
325327
| Ubuntu (any version), Slurm 22.x or 24.x | **Gen 4 or Gen 5** | Match Slurm version first (Gen 4 for 22.x/23.x, Gen 5 for 24.x), note OS version differences |
326328
| Not sure / first contact | **Gen 1** | Covers the largest installed base. You can always show Gen 3 diffs once you know their environment. |
327329

@@ -365,7 +367,7 @@ Gen 2 (Rocky 9, Slurm 23.11)
365367
Gen 3 (Rocky 10, Slurm 24.05)
366368
├── Python 3.12 → boto3 installs directly
367369
├── cgroup v2 only (v1 kernel support removed in RHEL 10)
368-
├── cloud_reg_addrs → burst nodes self-register with actual EC2 IP (KEY IMPROVEMENT)
370+
├── burst node IP set by resume.py (scontrol update nodeaddr) — plugin, not slurm.conf
369371
├── iptables-nft (iptables-services removed from RHEL 10)
370372
└── Ed25519 SSH key (avoids RSA-2048 restriction in RHEL 10 DEFAULT crypto policy)
371373
```
@@ -387,7 +389,7 @@ Gen 4 (Ubuntu 22.04 LTS, Slurm 23.11)
387389
Gen 5 (Ubuntu 24.04 LTS, Slurm 24.05)
388390
├── Python 3.12 → boto3 installs directly
389391
├── cgroup v2 only
390-
├── cloud_reg_addrs → burst nodes self-register with actual EC2 IP (KEY IMPROVEMENT)
392+
├── burst node IP set by resume.py (scontrol update nodeaddr) — plugin, not slurm.conf
391393
├── apt package manager, AppArmor, ufw firewall
392394
├── SSH user: ubuntu
393395
└── FSx Lustre: requires burstlab-lustre (Lustre 2.17.53)
@@ -406,4 +408,4 @@ the directive level:
406408
- [slurm-gen2-deep-dive.md](slurm-gen2-deep-dive.md) — Gen 2 deltas from Gen 1:
407409
Rocky 9 OS differences, Slurm 23.11 new directives.
408410
- [slurm-gen3-deep-dive.md](slurm-gen3-deep-dive.md) — Gen 3 deltas from Gen 2:
409-
`cloud_reg_addrs`, cgroup v2 only, Rocky 10 system-level changes.
411+
burst-node addressing via resume.py, cgroup v2 only, Rocky 10 system-level changes.

docs/sa-guide.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,9 @@ scenario. Match the customer's environment:
3737
|---|---|---|
3838
| CentOS 8, Rocky 8, RHEL 8 — Slurm 22.x | **Gen 1** | Exact match — same OS, same Slurm, Python 3.6 boto3 shim |
3939
| Rocky 9, AlmaLinux 9, RHEL 9 — Slurm 23.x | **Gen 2** | Exact match — Python 3.9 native, cgroup v2 |
40-
| Rocky 10, RHEL 10 — Slurm 24.05+ | **Gen 3** | Exact match — `cloud_reg_addrs`, cgroup v2 only |
40+
| Rocky 10, RHEL 10 — Slurm 24.05+ | **Gen 3** | Exact match — cgroup v2 only, iptables-nft |
4141
| Ubuntu 22.04 — Slurm 23.x | **Gen 4** | Ubuntu match — apt/AppArmor, Python 3.10; EFS validated, FSx client supported (Scenario 4 not yet validated) |
42-
| Ubuntu 24.04 — Slurm 24.05+ | **Gen 5** | Ubuntu match — apt/AppArmor, Python 3.12, `cloud_reg_addrs` |
42+
| Ubuntu 24.04 — Slurm 24.05+ | **Gen 5** | Ubuntu match — apt/AppArmor, Python 3.12, cgroup v2 |
4343
| Not sure / first contact (RHEL) | **Gen 1** | Covers largest RHEL installed base |
4444
| Not sure / first contact (Ubuntu) | **Gen 4** | Covers largest Ubuntu installed base |
4545
| CentOS 7 or older RHEL | **Gen 1** as reference | Note OS differences; Slurm/Plugin config identical |

0 commit comments

Comments
 (0)