SunkCluster custom resource declares the desired state of a managed SUNK cluster. The SUNK operator reconciles a SunkCluster into the underlying NodePools, NodeSets, and SlurmCluster resources that make up a running cluster.
Use this reference when authoring or reviewing a SunkCluster manifest to confirm field names, types, defaults, and accepted values, and to interpret the status conditions the operator reports back. This page is intended for cluster operators and platform engineers who manage SUNK clusters declaratively.
This page documents every supported field in the SunkCluster spec, along with the status conditions reported on the resource. To learn how to apply a SunkCluster, see Create a SUNK cluster.
Resource definition
Top-level spec fields
Thespec object configures the SUNK cluster. The following fields are supported:
NodeSpec
Each entry inspec.nodes defines one node group. The operator creates one NodePool and one NodeSet for each entry, and the count is kept in sync between them.
Allowed instance types
TheinstanceType field uses the Instance ID listed on the available instances page.
The field accepts one of the following values:
epyccd-hp-a96-genoacd-gp-a192-genoacd-hc-a384-genoaturin-gpturin-gp-lcd-gp-i64-erapidsh100gd-8xh100ib-i128h200gd-8xh200ib-i128a100gd-8xa100-i128b200-8xgb200gb200-4xgd-1xgh200gd-8xl40-i128gd-8xl40s-i128rtxp6000-8xgb300-4xgb300-4x-e
StorageConfig
Thespec.storage object configures shared storage for the cluster.
VolumeSpec
LoginConfig
Thespec.login object configures the login Pods, the groups whose members can access them, and the resources allocated to per-user and per-group Pods. Each user with access receives an individual login Pod, and each access group receives one shared login Pod.
LoginGroup
Each entry inlogin.groups configures login-Pod creation for a single group. The list uses name as a merge key.
LoginPodConfig
Thelogin.userPods and login.groupPods objects each accept a LoginPodConfig.
ResourceConfig
AccessConfig
Annotations may resemble the following:
S6
Each entry inspec.s6 defines an s6 service script that runs on the targeted node types during initialization.
Each entry must set either
script or packages, not both. The packages field is only valid when type is oneshot. For oneshot script entries, timeoutUp is required. For package installs, the operator applies an internal minimum timeout policy based on package count. For longrun entries, set at least one of timeoutUp or timeoutDown.SchedulerConfig
Thespec.scheduler object enables the SUNK scheduler.
NvidiaDevicePlugin
Thespec.nvidiaDevicePlugin object configures the NVIDIA device plugin DaemonSet.
CertManager
Thespec.certManager object configures the cert-manager deployment.
Status conditions
Use the status conditions to determine whether aSunkCluster is fully reconciled and, if not, which subsystem is still pending or has failed.
The operator reports the cluster state through a standardized set of status.conditions. Each status condition includes a reason and a message that further describes the condition.
The aggregate Ready condition is True when all dependent conditions are True.
The status also reports
lastReadyTime, which records the most recent time the Ready condition transitioned to True. This field distinguishes a cluster that is bootstrapping (never ready) from one that was previously ready and has regressed.
The reason attached to each condition contains one of the following values:
The
message attached to a condition contains more detail. For dependent conditions, the message typically names the specific resources that are not yet ready (for example, NodePools not at target: [a192, gb200] or NodeSets not ready: [a192 (0/36 ready)]). For the aggregate Ready condition, the message lists the dependent conditions still pending (for example, Waiting for conditions: NodePoolsAvailable, NodeSetsAvailable, SlurmClusterAvailable).
SlurmCluster status conditions
TheSlurmClusterAvailable condition on the SunkCluster aggregates the conditions reported by the underlying SlurmCluster resource. When SlurmClusterAvailable is not True, inspect the SlurmCluster itself to identify which subcomponent is pending or failing:
SlurmCluster reports the following conditions, each of which must be True for SlurmClusterAvailable to aggregate to True: