Skip to main content

Create Custom Images

Create and define custom SUNK images

When using Slurm, it is common practice to create a custom image with task-specific software and dependencies installed. CoreWeave publishes SUNK images, which can be fully customized at every stage of deployment.

Customize a published SUNK image

You can customize an existing SUNK image with a Dockerfile, as detailed below.

  1. Browse the container registry for a published SUNK image that closely matches your requirements.

  2. Create a Dockerfile using the FROM directive to specify the selected base image. For example:

    Example
    FROM coreweave/sunk-base:latest
    # Your customizations go here...
    Tip

    For more information about using the FROM instruction, see the Docker documentation.

  3. Add the needed software and dependencies by extending the Dockerfile with custom instructions.

  4. Build the Dockerfile to create a custom image.

Using custom images

After customizing a SUNK image with a Dockerfile, you will need to define the image in the appropriate section of the values.yaml file, depending on the type of node the image is intended for. This process is the same for all Slurm node types, including the Node Controller and database. The examples below demonstrate how to define SUNK images for a compute node and for a login node.

Define a custom compute node image

Compute nodes define custom images in the compute.nodes.<node-type> section of the values.yaml file.

Specify the custom image, including the repository and tag, for each compute node definition in compute.nodes, as in the following example:

Example
compute:
nodes:
my-node-type:
image:
repository: custom-slurmd
tag: 1.0.0

Define a custom login node image

Login nodes define custom images in the login.image section of the values.yaml file.

Specify the custom image, including the repository and tag, in login.image, as in the example below:

Example
login:
image:
repository: custom-controller
tag: 1.0.0