Fuzzball Documentation
Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage

Fuzzfiles From Existing Templates

The Workflow Catalog is prepopulated with a set of official CIQ templates based on common applications and workflows. If you use a shared group, you may also see templates created by other users within your group.

Please select either the web UI or CLI tab to see the appropriate instructions for your environment.

Main Workflow Catalog page

Once you identify an interesting template, click on the template’s kebab menu to either select “View details” to see more information, or “Run” to launch the workflow directly from the main page. If you select “View details” you can see the template along with the user-supplied inputs.

Hello World example in Workflow Catalog

In the “Hello World” example above, we can see the actual template that is used to construct the Fuzzfile on the right. Inputs are surrounded by double curly braces and preceded by a dot (e.g. {{.ContainerUri}}). These inputs are listed with short explanations on the left side of the screen.

From here, you can choose either “Render Fuzzfile and Edit” or “Render Fuzzfile and Run”. Either way, a dialog box opens allowing you to provide new values for the inputs or accept the defaults.

If you selected “Render Fuzzfile and Run” you can then make any desired changes to the input values and select “Run”. This will create a Fuzzfile behind the scenes based on the input you selected and validate it for accuracy. Then you can press “Start Workflow” to run the workflow based on the Fuzzfile.

Press Continue to run workflow

If you selected “Render Fuzzfile and Edit”, the steps will be the same except you click “Edit” to load the Fuzzfile into the Workflow Editor instead of directly running it.

Workflow Catalog Fuzzfile opened in Workflow Editor

From there, you can inspect and further refine the resulting Fuzzfile, and launch a workflow based on the Fuzzfile when you are ready. See the Workflow Editor section for more details.

You can render a fuzzfile from a workflow template and values with the Fuzzball CLI. First you need to identify the UUID of the template like so:

$ fuzzball workflow-template list --filter 'name="Hello, World"'
NAME         | ID                                   | OWNER    | PROVIDER | UPDATETIME            | DISABLED
Hello, World | 7f8e322c-8d03-579c-a41b-f6257949dd17 | PROVIDER | CIQ      | 2026-02-11 01:51:48PM | false

Then you can render a Fuzzfile from that template. You can provide the values for the template interactively like so:

$ fuzzball workflow-template render-fuzzfile 7f8e322c-8d03-579c-a41b-f6257949dd17
ContainerUri - URI for the docker image to use for this workflow [docker://alpine:latest]:
Timeout - How long to wait for the workflow job to complete [5m0s]: 4m
Cores - How many CPU cores to allocate for the workflow job [1]: 1
Memory - How much memory to allocate for the workflow job [1GiB]: 512MB
Script - Script to run for the 'hello world' job [echo "Hello, world! Hostname ${HOSTNAME}"]:
# Copyright 2025 CIQ, Inc. All rights reserved.
version: v1
jobs:
  helloworld:
    image:
      uri: "docker://alpine:latest"
    policy:
      retry:
        attempts: 1
      timeout:
        execute: "4m"
    command:
      - /bin/sh
      - '-c'
      - echo "Hello, world! Hostname ${HOSTNAME}"
    resource:
      cpu:
        cores: 1
        affinity: NUMA
      memory:
        size: 512MB

Alternatively you can provide values in a yaml format file:

$ cat > values.yaml <<'__EOF__'
values:
  - name: ContainerUri
    string_value: docker://alpine:latest
  - name: Memory
    string_value: 512MB
  - name: Cores
    uint_value: 1
  - name: Timeout
    string_value: 4m
  - name: Script
    string_value: echo "Hello, cruel world from ${HOSTNAME}"
__EOF__

$ fuzzball workflow-template render-fuzzfile --values values.yaml 7f8e322c-8d03-579c-a41b-f6257949dd17
# Copyright 2025 CIQ, Inc. All rights reserved.
version: v1
jobs:
  helloworld:
    image:
      uri: "docker://alpine:latest"
    policy:
      retry:
        attempts: 1
      timeout:
        execute: "4m"
    command:
      - /bin/sh
      - '-c'
      - echo "Hello, cruel world from ${HOSTNAME}"
    resource:
      cpu:
        cores: 1
        affinity: NUMA
      memory:
        size: 512MB

The equivalent of selecting “Render Fuzzfile and Run” in the web UI would be to save the rendered Fuzzfile and submit it.

$ fuzzball workflow-template render-fuzzfile --values values.yaml 7f8e322c-8d03-579c-a41b-f6257949dd17 > hello.fz

$ fuzzball workflow start hello.fz
71553f7c-92c7-4576-abd2-fe8e4b6bea97