Slurm Client Controller
Table of Contents
Overview
This controller is responsible for managing Slurm Clients used by other internal controllers.
This controller uses the Slurm client library.
Sequence Diagram
sequenceDiagram
autonumber
actor User as User
participant KAPI as Kubernetes API
participant SCC as SlurmClient Controller
box Operator Internals
participant SCM as Slurm Client Map
participant SEC as Slurm Event Channel
end %% Operator Internals
note over KAPI: Handle CR Creation
User->>KAPI: Create Controller CR
KAPI-->>SCC: Watch Controller CRD
create participant SC as Slurm Client
SCC->>+SC: Create Slurm Client
SC-->>-SCC: Return Slurm Client Status
loop Watch Slurm Nodes
SC->>+SAPI: Get Slurm Nodes
SAPI-->>-SC: Return Slurm Nodes
SC->>SEC: Add Event for Cache Delta
end %% loop Watch Slurm Nodes
SCC->>SCM: Add Slurm Client to Map
SCC->>+SC: Ping Slurm Control Plane
SC->>+SAPI: Ping Slurm Control Plane
SAPI-->>-SC: Return Ping
SC-->>-SCC: Return Ping
SCC->>KAPI: Update Controller CR Status
note over KAPI: Handle CR Deletion
User->>KAPI: Delete Controller CR
KAPI-->>SCC: Watch Controller CRD
SCM-->>SCC: Lookup Slurm Client
SCC->>SCM: Remove Slurm Client from Map
destroy SC
SCC-)SC: GC Slurm Client
participant SAPI as Slurm REST API