Version
1.2.1
Which installation method(s) does this occur on?
Helm / Kubernetes manifests
Describe the bug.
Description
When a NodeSet does not configure a Slurm topology, the operator still injects an empty Topology= entry into slurmd --conf.
The container image entrypoint then appends CoreSpecCount and MemSpecLimit. Slurm parses CoreSpecCount as the value of Topology, causing node registration to fail and the Worker to enter DRAIN+INVALID_REG.
Reproduction
Use a NodeSet with CPU and memory limits, without a topology configuration:
apiVersion: slinky.slurm.net/v1beta1
kind: NodeSet
spec:
slurmd:
resources:
limits:
cpu: "8"
memory: 16Gi
Do not configure spec.extraConf: Topology=..., and do not provide a valid topology for the Kubernetes node.
Actual behavior
The resource environment variables are correct:
POD_CPUS=8
POD_MEMORY=16384
However, the final slurmd invocation contains:
--conf Features=slinky Topology= CoreSpecCount=36 MemSpecLimit=175607
The controller reports:
Reason=Failed to set topology 'CoreSpecCount=36'
State=IDLE+DRAIN+DYNAMIC_NORM+INVALID_REG
CPUEfctv=80
CoreSpecCount is not applied, so Slurm incorrectly treats all host CPUs as schedulable.
Expected behavior
When topology is not configured, the operator must not generate Topology=.
The final configuration should be:
--conf Features=slinky CoreSpecCount=36 MemSpecLimit=175607
Minimum reproducible example
Relevant log output
Additional environment details
Other/Misc.
No response
Code of Conduct
Version
1.2.1
Which installation method(s) does this occur on?
Helm / Kubernetes manifests
Describe the bug.
Description
When a NodeSet does not configure a Slurm topology, the operator still injects an empty
Topology=entry intoslurmd --conf.The container image entrypoint then appends
CoreSpecCountandMemSpecLimit. Slurm parsesCoreSpecCountas the value ofTopology, causing node registration to fail and the Worker to enterDRAIN+INVALID_REG.Reproduction
Use a NodeSet with CPU and memory limits, without a topology configuration:
Do not configure spec.extraConf: Topology=..., and do not provide a valid topology for the Kubernetes node.
Actual behavior
The resource environment variables are correct:
However, the final slurmd invocation contains:
The controller reports:
CoreSpecCount is not applied, so Slurm incorrectly treats all host CPUs as schedulable.
Expected behavior
When topology is not configured, the operator must not generate Topology=.
The final configuration should be:
Minimum reproducible example
Relevant log output
Additional environment details
Other/Misc.
No response
Code of Conduct