Skip to content

rfc33: define queue membership by hostlist - #544

Open
grondo wants to merge 2 commits into
flux-framework:masterfrom
grondo:rfc33-queue-hosts
Open

rfc33: define queue membership by hostlist#544
grondo wants to merge 2 commits into
flux-framework:masterfrom
grondo:rfc33-queue-hosts

Conversation

@grondo

@grondo grondo commented Aug 1, 2026

Copy link
Copy Markdown
Contributor

Problem: RFC 33 queue membership is defined indirectly. An admin assigns a resource property to nodes, then binds a queue to it with queues.NAME.requires. In practice nearly every configuration uses one property per queue named after the queue, so the indirection forces tools to re-implement the property-to-queue join and offers no way to validate membership.

Add an optional queues.NAME.hosts key that declares queue membership directly as an RFC 29 Hostlist (or the literal string "all"). In this case, the queue property is then implicitly assigned the queue name, and jobs have the proper constraint automatically assigned. Properties that match queue names are then reserved. Document in the spec that hosts is the preferred method for defining queues, and that requires may be deprecated in the future.

Assisted-by: Claude:Opus-4.8

@github-actions

github-actions Bot commented Aug 1, 2026

Copy link
Copy Markdown

⚠️ linkcheck failed with status code 2

@grondo

grondo commented Aug 1, 2026

Copy link
Copy Markdown
Contributor Author

Hold off on reviewing this. It might be nice to make automatically assigned queue properties marked in some way, e.g. with a + prefix. Then the Rv1 spec could specify that properties with a leading + are "locally or automatically assigned" can be discarded when creating a new R for an allocation. This would make it so that queue-only properties for new queues assigned with hosts= do not show up in jobs' flux resource list output, a minor annoyance now.

grondo added 2 commits August 1, 2026 08:28
Problem: There is no way to differentiate properties in a resource
set that were applied automatically by Flux apart from a property
configured manually, so tooling cannot know which properties describe
the instance versus the resources. This leads to allocated R objects
inheriting properties that may have no meaning in a subinstance.

Reserve a leading + in a property name to mark a property that Flux
added automatically rather than one configured manually.  The literal
property still applies to its execution target ranks, but because it
describes the containing instance it is intended for internal use
and MAY be omitted from a resource set allocated to a job.

Assisted-by: Claude:Opus-4.8
Problem: Queue membership is defined indirectly. An admin assigns
a resource property to nodes, then binds a queue to it with
queues.NAME.requires. In practice nearly every configuration uses
one property per queue named after the queue, so the indirection
forces tools to re-implement the property-to-queue join and offers
no way to validate membership.

Add an optional queues.NAME.hosts key that declares queue membership
directly as an RFC 29 Hostlist (or the literal "all"). Flux then
derives the queue's membership property, the queue name prefixed
with the RFC 20 "+" marker, applies it to the named hosts, and
adds the equivalent {"properties": ["+NAME"]} constraint to jobs
submitted to the queue.  Define the hostlist as the preferred way
to define membership and note that requires may be deprecated in a
future version.

Assisted-by: Claude:Opus-4.8
@grondo
grondo force-pushed the rfc33-queue-hosts branch from bf38d91 to b7d25f2 Compare August 1, 2026 15:37
@github-actions

github-actions Bot commented Aug 1, 2026

Copy link
Copy Markdown

⚠️ linkcheck failed with status code 2

@grondo

grondo commented Aug 1, 2026

Copy link
Copy Markdown
Contributor Author

Ok, now based on top of #545. A leading + is added to automatic queue properties. This indicates a property has been auto-assigned by Flux and need not be copied into R objects generated for allocations.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant