Schedule Specification
This feature is only supported in Crafting Enterprise Edition.
For self-hosted Crafting deployments, workloads with special resource requirements (such as GPU, high CPU, or specific storage performance) can be scheduled on a specific Node Pool using a Schedule Specification.
Definition
Add a schedule_spec to any workload definition (workspaces, dependencies, or containers):
workspaces:
- name: dev
schedule_spec:
selector:
name: dev-large
resource_requests:
- resource_type: memory
request: 4Gi
storage:
storage_class: premium
request_size_gb: 40
dependencies:
- name: db
service_type: mysql
schedule_spec:
selector:
name: deps-medium
containers:
- name: proxy
image: nginx
schedule_spec:
selector:
name: small
- name: inference
image: inference
schedule_spec:
selector:
name: gpu-small
resource_requests:
- resource_type: nvidia.com/gpu
request: '1'
limit: '1'
Field Reference
selector.name: The selector name that must match a node pool. See Node Pool for how selector names are configured.
resource_requests: Additional resource requests for the workload.
| Resource Type | Description |
|---|---|
memory |
Minimum reserved memory. The request value (e.g. 4Gi) is the minimum amount allocated when the workload starts. |
nvidia.com/gpu |
Number of GPUs (or GPU slices if time-sharing is enabled). Both request and limit should be the same value. |
storage: Requirements for persistent storage (the root filesystem).
| Field | Description |
|---|---|
storage_class |
The Kubernetes StorageClass name in the Crafting cluster used to create the Persistent Volume. |
request_size_gb |
Initial size of the Persistent Volume in gigabytes. |
limit_size_gb |
Maximum size the Persistent Volume can automatically expand to. If omitted, the system-level limit applies. |
Notes
- Incorrect
selector.namevalues or unsupported resource values may cause the workload to fail to be scheduled, resulting in awaiting to be scheduledalert. - For memory requests, see Dynamic Resource Control for guidance on setting appropriate values.
See Also
- Node Pool — how node pools are defined and selector names are assigned
- Dynamic Resource Control — how memory and swap resources are managed
- System Admin Dashboard — creating and managing node pools