valohai.yaml Reference
Reference documentation for valohai.yaml configuration options and syntax.
This section provides comprehensive reference documentation for valohai.yaml configuration options.
The valohai.yaml file is the configuration blueprint for your machine learning workflows in Valohai. While the valohai.yaml Overview provides an introduction and examples, this reference section documents all available configuration options in detail.
Top-level Properties
Property Details
endpoint
endpointtype: object
properties:
description(string)files(array) ➤ Files that will be loaded into the image, for example the trained model.array items
image(string) ➤ Docker image used to run the deployment code in.name(string) ➤ Name of the endpoint, which is used as part of the URL (i.e. /project/version/name) of the deployed endpoint. Endpoint names must be lowercase, start with a letter and may contain letters, numbers and dashes thereafter.pattern:
^[a-z][a-z0-9-]+$
node-selector(string) ➤ Kubernetes node selector specifies which nodes the deployment should be scheduled to.pattern:
=
port(number) ➤ Port used for the HTTP server. Defaults to 8000.maximum: 65535
minimum: 1025
resources(object) ➤ Resource requirements and limits for the endpoint.additionalProperties: False
object properties
devicesmemory
server-command➤ Command that runs a HTTP server.oneOf
string
array
items(string)
tolerations(array) ➤ List of Kubernetes tolerations specifying which node taints the endpoint should tolerate.array items
wsgi(string) ➤ Specifies the WSGI application to serve (e.g. a Flask application). Specify the module (i.e.package.app) or the module and the WSGI callable (i.e.package.app:wsgi_callable).
required properties:
image,name
pipeline
pipelinetype: object
properties:
edges(array)array items
anyOf
*array – ShorthandEdge ➤ A shorthand edge definition as a two-item array: [source, target]. Source and target format:
node-name.edge-type.edge-key. Allowed edge types: parameter | file | dependency | output | environment-variable | metadata | input. Example:[train-model.output.model.pkl, test-model.input.model]*items: False
prefixItems
string
string
object – FullEdge ➤ A full edge definition as an object with source, target and optional additional configuration. Same source and target format as in the shorthand edge definition.
additionalProperties: False
propertiesconfiguration(object)source(string)target(string)
required properties:
source,target
name(string)nodes(array)array items
parameters(array)array items
reuse-executions(boolean) ➤ Set to true to allow Valohai to automatically detect if the executions insteps' nodes could be skipped and reuse the result from a previously successfully run node. Node's execution is considered unchanged when the step's data doesn't change (inputs, command, commit hash, parameters, step's configuration).default: False
required properties:
edges,name,nodes
step
steptype: object
properties:
category(string) ➤ Category name to group & organize steps in the UIcommand➤ The command or commands to run.oneOf
string
array
items(string)
description(string) ➤ Describes the step. This is shown as a help text in the user interface.environment(string) ➤ Default execution environment (ID or substring of environment name)environment-variable-groups(array) ➤ Groups of environment variables to include in the step execution.array items (string)
environment-variables(array) ➤ Environment variables and their default values for the step.array items
icon(string) ➤ URL to the icon representing the stepimage(string) ➤ The Docker image to use for this step.inputs(array) ➤ The inputs expected by the step.array items
mounts(array) ➤ Custom mounts to enable, for private environments allowing them.array items
cache-volumes(array) ➤ Kubernetes persistent volume claim names to used as additional input cache volumes.array items (string)
name(string) ➤ The unique name for this step.no-output-timeout➤ The time after which the step is considered to have died if no output has been generated (in seconds or as a string (e.g. "1h 30m 5s")). An unspecified value means "platform default".oneOf
integer
string
outputs(array) ➤ The outputs expected to be generated by the step.array items
parameters(array) ➤ The parameter definitions and default values to be interpolated into the command.array items
resources(object) ➤ Resource requirements and limits for the workflow.additionalProperties: False
object properties
devicesmemory
runtime-config-preset(string) ➤ The runtime configuration preset ID or slug to use for this step.source-path(string) ➤ The original source file that this step comes from, relative to this config file.stop-condition(string)time-limit➤ The time limit for the step (in seconds or as a string, e.g. "1h 30m 5s"). An unspecified value means "no timeout".oneOf
integer
string
upload-store(string) ➤ The output data store name or UUID.maxLength: 64
required properties:
command,image,name
task
tasktype: object
properties:
description(string) ➤ Describes the task. This is shown as a help text in the user interface.engine(string)execution-batch-size(integer)execution-count(integer)maximum-queued-executions(integer)name(string) ➤ The unique name for this task.on-child-error(string)optimization-target-metric(string)optimization-target-value(number)parameter-sets(array) ➤ Parameter sets for manual search mode.array items (object)
parameters(array) ➤ The variant parameter definitions and default values to be interpolated into the command.array items
reuse-children(boolean) ➤ Whether to allow automatic reuse of previous successful executions.default: False
step(string) ➤ The step to run with.stop-condition(string)type(string)
required properties:
name,step
deployment
deploymentOptional deployment definitions with defaults for initializing deployments automatically when a related pipeline is run and no matching deployment is found in the project.
type: object
properties:
name(string) ➤ The unique, URL-friendly name of the deployment.defaults(object) – DeploymentDefaults ➤ Values to use if the deployment does not yet exist in the project context.additionalProperties: True
object properties
target(string) ➤ Deployment target identifier or UUID.
required properties:
target
required properties:
name
deployment-node
deployment-nodetype: object
properties:
actions(array)array items
aliases(array)array items (string)
deployment(string)endpoints(array)array items (string)
name(string)on-error(string)allowed values:
continue|stop-all|stop-next
type(string)const:
deployment
required properties:
deployment,name,type
environment-variable-item
environment-variable-itemtype: object
properties:
default(string) ➤ The default value for the environment variable.description(string) ➤ Describes the environment variable's meaning. This can be shown as a help text in the user interface.name(string) ➤ The environment variable. This must be unique within a Step.optional(boolean) ➤ Whether this environment variable is optional. All environment variables are optional by default. Executions may not be created unless all required environment variables have a value, configured either explicitly in the step or trickled down from project-level settings.default: True
required properties:
name
execution-node
execution-nodetype: object
properties:
actions(array)array items
commit(string)edge-merge-modename(string)on-error(string)allowed values:
continue|retry|stop-all|stop-next
overridestep(string)type(string)const:
execution
required properties:
name,step,type
file-item
file-itemtype: object
properties:
description(string) ➤ The description of the file.name(string) ➤ The symbolic name of this file.path(string) ➤ Relative path of the file from the endpoint's working directory. For example "data/serialized_model.hdf5".
required properties:
name,path
input-item
input-itemtype: object
properties:
default➤ The default URL(s) for the input.oneOf
string
array
items(string)
description(string) ➤ Describes the input. This is shown as a help text in the user interface.download(string) ➤ Select downloading intention for this input. On-demand inputs are not downloaded before the step can run, instead are available to download using an authenticated download URL.default: always
allowed values:
always|on-demand
filename(string) ➤ Force a filename for this input. Will not have an effect if there are multiple files for this input.keep-directories➤ Whether to retain directories when using wildcards for this input.default: False
oneOf
boolean
string
allowed values:
full|none|suffix
name(string) ➤ The symbolic name of this input. This must be unique within a Step.maxLength: 64
optional(boolean) ➤ Whether this input is optional. Optional inputs may be disabled in the user interface.default: False
required properties:
name
mount-item
mount-itemtype: anyOf
properties:
anyOf
string ➤ A simple source:destination mount string. Note both parts must be absolute.
pattern:
^/.+:/.+$
object
additionalProperties: False
propertiesdestination(string) ➤ Container path for datapattern:
^/.+$
options(object) ➤ Additional mount optionsreadonly(boolean) ➤ Whether to mount the volume read-onlydefault: False
source(string) ➤ Host path for data (for local sources; for non-local mount types, depends)type(string) ➤ Mount type
required properties:
destination,source
node-action
node-actiontype: object
properties:
ifoneOf
string
array
items(string)
thenoneOf
string
array
items(string)
whenoneOf
string
array
items(string)
required properties:
then,when
node-edge-merge-mode
node-edge-merge-modeWhether to replace the values set for this input, or to append to them when overridden by e.g. a pipeline edge.
type: string
output-item
output-itemtype: object
properties:
description(string) ➤ Describes the output.name(string) ➤ The symbolic name of this output. This must be unique within a Step.
required properties:
name
overridden-properties
overridden-propertiestype: object
properties:
command➤ The command or commands to run.oneOf
string
array
items(string)
environment(string) ➤ Default execution environment (ID or substring of environment name)environment-variables(array) ➤ Environment variables and their default values for the node.array items
image(string) ➤ The Docker image to use for this node.inputs(array) ➤ The inputs expected by the node.array items
mounts(array) ➤ Custom mounts to enable, for private environments allowing them.array items
parameters(array) ➤ The parameter definitions and default values to be interpolated into the command.array items
param-item
param-itemtype: object
properties:
category(string) ➤ Free-form category for the parameter. Shown in the user interface.choices(array) ➤ If choices are set, the user may only choose from these choices for the parameter. Not applicable to flag parameters.default➤ The default value for the parameter.description(string) ➤ Describes the parameter. This is shown as a help text in the user interface.max(number) ➤ The maximum accepted value for the parameter. Only applicable to integer/float parameters.min(number) ➤ The minimum accepted value for the parameter. Only applicable to integer/float parameters.multiple(string) ➤ Whether to allow multiple values for this parameter, and how to pass them on the command line. Parameters set torepeatwill be repeated using the--pass-aspattern, whileseparatewill interpolate all values into a single--pass-asvalue placeholder using themultiple-separator.multipleis not available for flag parameters.default: none
allowed values:
none|repeat|separate
multiple-separator(string) ➤ The separator to use when interpolating multiple values into a command parameter. Defaults to a comma.default: ,
name(string) ➤ The symbolic name of this parameter. This must be unique within a Step.optional(boolean) ➤ Whether this parameter is optional. Optional parameters may be disabled in the user interface. Not applicable to flag parameters; they're always optional in a sense.default: False
pass-as(string) ➤ How to pass the parameter to the command.Defaults to--{name}={value}(or--{name}for flags).default: --{name}={value}
pass-false-as(string) ➤ How to pass flag (boolean) parameters when the flag is false.If either pass-true-as or pass-false-as are set, pass-as is not used.pass-true-as(string) ➤ How to pass flag (boolean) parameters when the flag is true.If either pass-true-as or pass-false-as are set, pass-as is not used.type(string) ➤ The type of the parameter.default: string
allowed values:
flag|float|integer|string
widget➤ UI widget used for editing parameter valuesoneOf
object
propertiessettings(object)type(string)
required properties:
type
string
required properties:
name
pipeline-param
pipeline-paramtype: object
properties:
category(string) ➤ Free-form category for the parameter. Shown in the user interface.default➤ The default value for the pipeline parameter.description(string) ➤ Describes the parameter. This is shown as a help text in the user interface.name(string)target(string)targetsoneOf
string
array
items(string)
task-node
task-nodetype: object
properties:
actions(array)array items
commit(string)edge-merge-modename(string)on-error(string)allowed values:
continue|retry|stop-all|stop-next
overridestep(string)type(string)const:
task
task(string)
required properties:
name,type
toleration
tolerationtype: object
properties:
effect(string) ➤ Optional, empty tolerates all effects.allowed values:
NoExecute|NoSchedule|PreferNoSchedule
key(string) ➤ Optional if operator is "Exists", to match all keys.operator(string) ➤ Optional, empty means "Equal".allowed values:
Equal|Exists
value(string) ➤ Optional as empty in some contexts like when operator is "Exists".
variant-param
variant-paramtype: object
properties:
name(string)style(string)allowed values:
linear|logspace|multiple|random|single
required properties:
name,rules,style
variant-param-rule-item
variant-param-rule-itemtype: object
properties:
base(number)count(number)distribution(string)end(number)integerify(boolean)items(array)array items (number)
max(number)min(number)numberify(boolean)seed(number)start(number)step(number)value(number)
workflow-resource-cpu
workflow-resource-cpuCPU resource requirements and limits in vCPU counts e.g. 0.1 is 10% of one CPU.
type: object
properties:
max(number)min(number)
workflow-resource-devices
workflow-resource-devicesDevices required e.g. 'nvidia.com/gpu: 1' for one NVIDIA GPU.
type: object
workflow-resource-memory
workflow-resource-memoryMemory requirements and limits in MB e.g. 100 is 100 MB.
type: object
properties:
max(number)min(number)
Related Documentation
valohai.yaml Overview - Introduction and basic examples
Using Parameters - Tutorial on working with parameters
How-to: Manage YAML - Practical guides for YAML management
Last updated
Was this helpful?
