Skip to content

Writing workflow steps

If your input is complete, you can now turn to writing your workflow steps. You can connect workflow steps by using expressions. For example, if step A has an input that needs data from step B, Arcaflow will automatically run step B first.

To define a step type, you can do the following:

workflow.yaml
version: v0.2.0
steps:
  step_a: # Specify any ID here you want to reference the step by
    plugin: 
      deployment_type: image
      src: quay.io/some/container/image # This must be an Arcaflow-compatible image
    input: # specify input values as a data structure, mixing in expressions as needed
      some:
        key: !expr $.steps.step_b.outputs.success.some_value 
  step_b:
    plugin: 
      deployment_type: image
      src: quay.io/some/container/image
    input:
      some:
        key: !expr $.input.some_value # Reference an input value

Plugin steps

Plugin steps run Arcaflow plugins in containers. They can use Docker, Podman, or Kubernetes as deployers. If no deployer is specified in the workflow, the plugin will use the local deployer.

Plugin steps have the following properties:

Property Description
plugin Full name of the container image to run. This must be an Arcaflow-compatible container image.
step If a plugin provides more than one possible step, you can specify the step ID here.
deploy Configuration for the deployer. (See below.) This can contain expressions, so you can dynamically specify deployment parameters.
input Input data for the plugin. This can contain expressions, so you can dynamically define inputs.

You can reference plugin outputs in the format of $.steps.your_step_id.outputs.your_plugin_output_id.some_variable.

Deployers

The deploy key for plugins lets you control how the plugin container is deployed. You can use expressions to use other plugins (e.g. the kubeconfig plugin) to generate the deployment configuration and feed it into other steps.

You can configure the Docker deployer like this:

version: v0.2.0
step:
  your_step_id:
    plugin: ...
    input: ...
    deploy: # You can use expressions here
      deployer_name: docker
      connection:
        # Change this to point to a TCP-based Docker socket
        host: host-to-docker
        # Add a certificates here. This is usually needed in TCP mode.
        cacert: |
          Add your CA cert PEM here
        cert: |
          Add your client cert PEM here.
        key: |
          Add your client key PEM here.
      deployment:
        # For more options here see: https://docs.docker.com/engine/api/v1.42/#tag/Container/operation/ContainerCreate
        container:
          # Add your container config here.
        host:
          # Add your host config here.
        network:
          # Add your network config here
        platform:
          # Add your platform config here
        imagePullPolicy: Always|IfNotPresent|Never
      timeouts:
        # HTTP timeout
        http: 5s
All options for the Docker deployer
Type: scope
Root object: Config
Properties
connection (reference[Connection])
Name: Connection
Description: Docker connection information.
Required: No
Referenced object: Connection (see in the Objects section below)
deployment (reference[Deployment])
Name: Deployment
Description: Deployment configuration for the plugin.
Required: No
Referenced object: Deployment (see in the Objects section below)
timeouts (reference[Timeouts])
Name: Timeouts
Description: Timeouts for the Docker connection.
Required: No
Referenced object: Timeouts (see in the Objects section below)
Objects
Config (object)
Type: object
Properties
connection (reference[Connection])
Name: Connection
Description: Docker connection information.
Required: No
Referenced object: Connection (see in the Objects section below)
deployment (reference[Deployment])
Name: Deployment
Description: Deployment configuration for the plugin.
Required: No
Referenced object: Deployment (see in the Objects section below)
timeouts (reference[Timeouts])
Name: Timeouts
Description: Timeouts for the Docker connection.
Required: No
Referenced object: Timeouts (see in the Objects section below)
Connection (object)
Type: object
Properties
cacert (string)
Name: CA certificate
Description: CA certificate in PEM format to verify the Dockerd server certificate against.
Required: No
Minimum: 1
Must match pattern: ^\s*-----BEGIN CERTIFICATE-----(\s*.*\s*)*-----END CERTIFICATE-----\s*$
Examples
"-----BEGIN CERTIFICATE-----\nMIIB4TCCAYugAwIBAgIUCHhhffY1lzezGatYMR02gpEJChkwDQYJKoZIhvcNAQEL\nBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM\nGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yMjA5MjgwNTI4MTJaFw0yMzA5\nMjgwNTI4MTJaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEw\nHwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwXDANBgkqhkiG9w0BAQEF\nAANLADBIAkEArr89f2kggSO/yaCB6EwIQeT6ZptBoX0ZvCMI+DpkCwqOS5fwRbj1\nnEiPnLbzDDgMU8KCPAMhI7JpYRlHnipxWwIDAQABo1MwUTAdBgNVHQ4EFgQUiZ6J\nDwuF9QCh1vwQGXs2MutuQ9EwHwYDVR0jBBgwFoAUiZ6JDwuF9QCh1vwQGXs2Mutu\nQ9EwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAANBAFYIFM27BDiG725d\nVkhRblkvZzeRHhcwtDOQTC9d8M/LymN2y0nHSlJCZm/Lo/aH8viSY1vi1GSHfDz7\nTlfe8gs=\n-----END CERTIFICATE-----\n"
cert (string)
Name: Client certificate
Description: Client certificate in PEM format to authenticate against the Dockerd with.
Required: No
Minimum: 1
Must match pattern: ^\s*-----BEGIN CERTIFICATE-----(\s*.*\s*)*-----END CERTIFICATE-----\s*$
Examples
"-----BEGIN CERTIFICATE-----\nMIIB4TCCAYugAwIBAgIUCHhhffY1lzezGatYMR02gpEJChkwDQYJKoZIhvcNAQEL\nBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM\nGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yMjA5MjgwNTI4MTJaFw0yMzA5\nMjgwNTI4MTJaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEw\nHwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwXDANBgkqhkiG9w0BAQEF\nAANLADBIAkEArr89f2kggSO/yaCB6EwIQeT6ZptBoX0ZvCMI+DpkCwqOS5fwRbj1\nnEiPnLbzDDgMU8KCPAMhI7JpYRlHnipxWwIDAQABo1MwUTAdBgNVHQ4EFgQUiZ6J\nDwuF9QCh1vwQGXs2MutuQ9EwHwYDVR0jBBgwFoAUiZ6JDwuF9QCh1vwQGXs2Mutu\nQ9EwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAANBAFYIFM27BDiG725d\nVkhRblkvZzeRHhcwtDOQTC9d8M/LymN2y0nHSlJCZm/Lo/aH8viSY1vi1GSHfDz7\nTlfe8gs=\n-----END CERTIFICATE-----\n"
host (string)
Name: Host
Description: Host name for Dockerd.
Required: No
Minimum: 1
Maximum: 255
Must match pattern: ^[a-z0-9./:_-]+$
Default
"npipe:////./pipe/docker_engine"
Examples
'unix:///var/run/docker.sock'

'npipe:////./pipe/docker_engine'

key (string)
Name: Client key
Description: Client private key in PEM format to authenticate against the Dockerd with.
Required: No
Minimum: 1
Must match pattern: ^\s*-----BEGIN ([A-Z]+) PRIVATE KEY-----(\s*.*\s*)*-----END ([A-Z]+) PRIVATE KEY-----\s*$
Examples
"-----BEGIN PRIVATE KEY-----\nMIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEArr89f2kggSO/yaCB\n6EwIQeT6ZptBoX0ZvCMI+DpkCwqOS5fwRbj1nEiPnLbzDDgMU8KCPAMhI7JpYRlH\nnipxWwIDAQABAkBybu/x0MElcGi2u/J2UdwScsV7je5Tt12z82l7TJmZFFJ8RLmc\nrh00Gveb4VpGhd1+c3lZbO1mIT6v3vHM9A0hAiEA14EW6b+99XYza7+5uwIDuiM+\nBz3pkK+9tlfVXE7JyKsCIQDPlYJ5xtbuT+VvB3XOdD/VWiEqEmvE3flV0417Rqha\nEQIgbyxwNpwtEgEtW8untBrA83iU2kWNRY/z7ap4LkuS+0sCIGe2E+0RmfqQsllp\nicMvM2E92YnykCNYn6TwwCQSJjRxAiEAo9MmaVlK7YdhSMPo52uJYzd9MQZJqhq+\nlB1ZGDx/ARE=\n-----END PRIVATE KEY-----\n"
ContainerConfig (object)
Type: object
Properties
Domainname (string)
Name: Domain name
Description: Domain name for the plugin container.
Required: No
Minimum: 1
Maximum: 255
Must match pattern: ^[a-zA-Z0-9-_.]+$
Env (map[string, string])
Name: Environment variables
Description: Environment variables to set on the plugin container.
Required: No
Key type
Type: string
Minimum: 1
Maximum: 255
Must match pattern: ^[A-Z0-9_]+$
Value type
Type: string
Maximum: 32760
Hostname (string)
Name: Hostname
Description: Hostname for the plugin container.
Required: No
Minimum: 1
Maximum: 255
Must match pattern: ^[a-zA-Z0-9-_.]+$
MacAddress (string)
Name: MAC address
Description: Media Access Control address for the container.
Required: No
Must match pattern: ^[a-fA-F0-9]{2}(:[a-fA-F0-9]{2}){5}$
NetworkDisabled (bool)
Name: Disable network
Description: Disable container networking completely.
Required: No
User (string)
Name: Username
Description: User that will run the command inside the container. Optionally, a group can be specified in the user:group format.
Required: No
Minimum: 1
Maximum: 255
Must match pattern: ^[a-z_][a-z0-9_-]*[$]?(:[a-z_][a-z0-9_-]*[$]?)$
Deployment (object)
Type: object
Properties
container (reference[ContainerConfig])
Name: Container configuration
Description: Provides information about the container for the plugin.
Required: No
Referenced object: ContainerConfig (see in the Objects section below)
host (reference[HostConfig])
Name: Host configuration
Description: Provides information about the container host for the plugin.
Required: No
Referenced object: HostConfig (see in the Objects section below)
imagePullPolicy (enum[string])
Name: Image pull policy
Description: When to pull the plugin image.
Required: No
Values
  • Always Always
  • IfNotPresent If not present
  • Never Never
Default
"IfNotPresent"
network (reference[NetworkConfig])
Name: Network configuration
Description: Provides information about the container networking for the plugin.
Required: No
Referenced object: NetworkConfig (see in the Objects section below)
platform (reference[PlatformConfig])
Name: Platform configuration
Description: Provides information about the container host platform for the plugin.
Required: No
Referenced object: PlatformConfig (see in the Objects section below)
HostConfig (object)
Type: object
Properties
CapAdd (list[string])
Name: Add capabilities
Description: Add capabilities to the container.
Required: No
List Items
Type: string
CapDrop (list[string])
Name: Drop capabilities
Description: Drop capabilities from the container.
Required: No
List Items
Type: string
CgroupnsMode (enum[string])
Name: CGroup namespace mode
Description: CGroup namespace mode to use for the container.
Required: No
Values
  • `` Empty
  • host Host
  • private Private
Dns (list[string])
Name: DNS servers
Description: DNS servers to use for lookup.
Required: No
List Items
Type: string
DnsOptions (list[string])
Name: DNS options
Description: DNS options to look for.
Required: No
List Items
Type: string
DnsSearch (list[string])
Name: DNS search
Description: DNS search domain.
Required: No
List Items
Type: string
ExtraHosts (list[string])
Name: Extra hosts
Description: Extra hosts entries to add
Required: No
List Items
Type: string
NetworkMode (string)
Name: Network mode
Description: Specifies either the network mode, the container network to attach to, or a name of a Docker network to use.
Required: No
Must match pattern: ^(none|bridge|host|container:[a-zA-Z0-9][a-zA-Z0-9_.-]+|[a-zA-Z0-9][a-zA-Z0-9_.-]+)$
Examples
"none"

"bridge"
"host"
"container:container-name"
"network-name"

PortBindings (map[string, list[reference[PortBinding]]])
Name: Port bindings
Description: Ports to expose on the host machine. Ports are specified in the format of portnumber/protocol.
Required: No
Key type
Type: string
Must match pattern: ^[0-9]+(/[a-zA-Z0-9]+)$
Value type
Type: list[reference[PortBinding]]
List Items
Type: reference[PortBinding]
Referenced object: PortBinding (see in the Objects section below)
NetworkConfig (object)
Type: object
Properties

None

PlatformConfig (object)
Type: object
Properties

None

PortBinding (object)
Type: object
Properties
HostIP (string)
Name: Host IP
Required: No
HostPort (string)
Name: Host port
Required: No
Must match pattern: ^0-9+$
Timeouts (object)
Type: object
Properties
http (int)
Name: HTTP
Description: HTTP timeout for the Docker API.
Required: No
Minimum: 100000000
Units: nanoseconds
Default
"15s"

If you want to use Podman as your local deployer, you can do so like this:

version: v0.2.0
step:
  your_step_id:
    plugin: ...
    input: ...
    deploy: # You can use expressions here
      deployer_name: podman
      podman:
        # Change where Podman is. (You can use this to point to a shell script
        path: /path/to/your/podman
        # Change the network mode
        networkMode: host
      deployment:
        # For more options here see: https://docs.docker.com/engine/api/v1.42/#tag/Container/operation/ContainerCreate
        container:
          # Add your container config here.
        host:
          # Add your host config here.
        imagePullPolicy: Always|IfNotPresent|Never
      timeouts:
        # HTTP timeout
        http: 5s
All options for the Podman deployer
Type: scope
Root object: Config
Properties
deployment (reference[Deployment])
Name: Deployment
Description: Deployment configuration for the plugin.
Required: No
Referenced object: Deployment (see in the Objects section below)
podman (reference[Podman])
Name: Podman
Description: Podman CLI configuration
Required: No
Referenced object: Podman (see in the Objects section below)
Objects
Config (object)
Type: object
Properties
deployment (reference[Deployment])
Name: Deployment
Description: Deployment configuration for the plugin.
Required: No
Referenced object: Deployment (see in the Objects section below)
podman (reference[Podman])
Name: Podman
Description: Podman CLI configuration
Required: No
Referenced object: Podman (see in the Objects section below)
ContainerConfig (object)
Type: object
Properties
Domainname (string)
Name: Domain name
Description: Domain name for the plugin container.
Required: No
Minimum: 1
Maximum: 255
Must match pattern: ^[a-zA-Z0-9-_.]+$
Env (list[string])
Name: Environment variables
Description: Environment variables to set on the plugin container.
Required: No
List Items
Type: string
Minimum: 1
Maximum: 32760
Must match pattern: ^.+=.+$
Hostname (string)
Name: Hostname
Description: Hostname for the plugin container.
Required: No
Minimum: 1
Maximum: 255
Must match pattern: ^[a-zA-Z0-9-_.]+$
MacAddress (string)
Name: MAC address
Description: Media Access Control address for the container.
Required: No
Must match pattern: ^[a-fA-F0-9]{2}(:[a-fA-F0-9]{2}){5}$
NetworkDisabled (bool)
Name: Disable network
Description: Disable container networking completely.
Required: No
User (string)
Name: Username
Description: User that will run the command inside the container. Optionally, a group can be specified in the user:group format.
Required: No
Minimum: 1
Maximum: 255
Must match pattern: ^[a-z_][a-z0-9_-]*[$]?(:[a-z_][a-z0-9_-]*[$]?)$
Deployment (object)
Type: object
Properties
container (reference[ContainerConfig])
Name: Container configuration
Description: Provides information about the container for the plugin.
Required: No
Referenced object: ContainerConfig (see in the Objects section below)
host (reference[HostConfig])
Name: Host configuration
Description: Provides information about the container host for the plugin.
Required: No
Referenced object: HostConfig (see in the Objects section below)
imagePullPolicy (enum[string])
Name: Image pull policy
Description: When to pull the plugin image.
Required: No
Values
  • Always Always
  • IfNotPresent If not present
  • Never Never
Default
"IfNotPresent"
HostConfig (object)
Type: object
Properties
Binds (list[string])
Name: Volume Bindings
Description: Volumes
Required: No
List Items
Type: string
Minimum: 1
Maximum: 32760
Must match pattern: ^.+:.+$
CapAdd (list[string])
Name: Add capabilities
Description: Add capabilities to the container.
Required: No
List Items
Type: string
CapDrop (list[string])
Name: Drop capabilities
Description: Drop capabilities from the container.
Required: No
List Items
Type: string
CgroupnsMode (enum[string])
Name: CGroup namespace mode
Description: CGroup namespace mode to use for the container.
Required: No
Values
  • `` Empty
  • host Host
  • private Private
Dns (list[string])
Name: DNS servers
Description: DNS servers to use for lookup.
Required: No
List Items
Type: string
DnsOptions (list[string])
Name: DNS options
Description: DNS options to look for.
Required: No
List Items
Type: string
DnsSearch (list[string])
Name: DNS search
Description: DNS search domain.
Required: No
List Items
Type: string
ExtraHosts (list[string])
Name: Extra hosts
Description: Extra hosts entries to add
Required: No
List Items
Type: string
NetworkMode (string)
Name: Network mode
Description: Specifies either the network mode, the container network to attach to, or a name of a Docker network to use.
Required: No
Must match pattern: ^(none|bridge|host|container:[a-zA-Z0-9][a-zA-Z0-9_.-]+|[a-zA-Z0-9][a-zA-Z0-9_.-]+)$
Examples
"none"

"bridge"
"host"
"container:container-name"
"network-name"

PortBindings (map[string, list[reference[PortBinding]]])
Name: Port bindings
Description: Ports to expose on the host machine. Ports are specified in the format of portnumber/protocol.
Required: No
Key type
Type: string
Must match pattern: ^[0-9]+(/[a-zA-Z0-9]+)$
Value type
Type: list[reference[PortBinding]]
List Items
Type: reference[PortBinding]
Referenced object: PortBinding (see in the Objects section below)
Podman (object)
Type: object
Properties
cgroupNs (string)
Name: CGroup namespace
Description: Provides the Cgroup Namespace settings for the container
Required: No
Must match pattern: ^host|ns:/proc/\d+/ns/cgroup|container:.+|private$
containerName (string)
Name: Container Name
Description: Provides name of the container
Required: No
Must match pattern: ^.*$
imageArchitecture (string)
Name: Podman image Architecture
Description: Provides Podman Image Architecture
Required: No
Must match pattern: ^.*$
Default
"amd64"
imageOS (string)
Name: Podman Image OS
Description: Provides Podman Image Operating System
Required: No
Must match pattern: ^.*$
Default
"linux"
networkMode (string)
Name: Network Mode
Description: Provides network settings for the container
Required: No
Must match pattern: ^bridge:.*|host|none$
path (string)
Name: Podman path
Description: Provides the path of podman executable
Required: No
Must match pattern: ^.*$
Default
"podman"
PortBinding (object)
Type: object
Properties
HostIP (string)
Name: Host IP
Required: No
HostPort (string)
Name: Host port
Required: No
Must match pattern: ^0-9+$

The Kubernetes deployer deploys on top of Kubernetes. You can set up the deployer like this:

version: v0.2.0
step:
  your_step_id:
    plugin: ...
    input: ...
    deploy: # You can use expressions here
      deployer_name: kubernetes
      connection:
        host: localhost:6443
        cert: |
          Add your client cert in PEM format here.
        key: |
          Add your client key in PEM format here.
        cacert: |
          Add the server CA cert in PEM format here.
All options for the Kubernetes deployer
Type: scope
Root object: Config
Properties
connection (reference[Connection])
Name: Connection
Description: Docker connection information.
Required: No
Referenced object: Connection (see in the Objects section below)
pod (reference[Pod])
Name: Pod
Description: Pod configuration for the plugin.
Required: No
Referenced object: Pod (see in the Objects section below)
timeouts (reference[Timeouts])
Name: Timeouts
Description: Timeouts for the Docker connection.
Required: No
Referenced object: Timeouts (see in the Objects section below)
Objects
AWSElasticBlockStoreVolumeSource (object)
Type: object
Properties

None

AzureDiskVolumeSource (object)
Type: object
Properties

None

AzureFileVolumeSource (object)
Type: object
Properties

None

CSIVolumeSource (object)
Type: object
Properties

None

CephFSVolumeSource (object)
Type: object
Properties

None

CinderVolumeSource (object)
Type: object
Properties

None

Config (object)
Type: object
Properties
connection (reference[Connection])
Name: Connection
Description: Docker connection information.
Required: No
Referenced object: Connection (see in the Objects section below)
pod (reference[Pod])
Name: Pod
Description: Pod configuration for the plugin.
Required: No
Referenced object: Pod (see in the Objects section below)
timeouts (reference[Timeouts])
Name: Timeouts
Description: Timeouts for the Docker connection.
Required: No
Referenced object: Timeouts (see in the Objects section below)
ConfigMapVolumeSource (object)
Type: object
Properties

None

Connection (object)
Type: object
Properties
bearerToken (string)
Name: Bearer token
Description: Bearer token to authenticate against the Kubernetes API with.
Required: No
burst (int)
Name: Burst
Description: Burst value for query throttling.
Required: No
Minimum: 0
Default
10
cacert (string)
Name: CA certificate
Description: CA certificate in PEM format to verify Kubernetes server certificate against.
Required: No
Minimum: 1
Must match pattern: ^\s*-----BEGIN CERTIFICATE-----(\s*.*\s*)*-----END CERTIFICATE-----\s*$
Examples
"-----BEGIN CERTIFICATE-----\nMIIB4TCCAYugAwIBAgIUCHhhffY1lzezGatYMR02gpEJChkwDQYJKoZIhvcNAQEL\nBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM\nGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yMjA5MjgwNTI4MTJaFw0yMzA5\nMjgwNTI4MTJaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEw\nHwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwXDANBgkqhkiG9w0BAQEF\nAANLADBIAkEArr89f2kggSO/yaCB6EwIQeT6ZptBoX0ZvCMI+DpkCwqOS5fwRbj1\nnEiPnLbzDDgMU8KCPAMhI7JpYRlHnipxWwIDAQABo1MwUTAdBgNVHQ4EFgQUiZ6J\nDwuF9QCh1vwQGXs2MutuQ9EwHwYDVR0jBBgwFoAUiZ6JDwuF9QCh1vwQGXs2Mutu\nQ9EwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAANBAFYIFM27BDiG725d\nVkhRblkvZzeRHhcwtDOQTC9d8M/LymN2y0nHSlJCZm/Lo/aH8viSY1vi1GSHfDz7\nTlfe8gs=\n-----END CERTIFICATE-----\n"
cert (string)
Name: Client certificate
Description: Client certificate in PEM format to authenticate against Kubernetes with.
Required: No
Minimum: 1
Must match pattern: ^\s*-----BEGIN CERTIFICATE-----(\s*.*\s*)*-----END CERTIFICATE-----\s*$
Examples
"-----BEGIN CERTIFICATE-----\nMIIB4TCCAYugAwIBAgIUCHhhffY1lzezGatYMR02gpEJChkwDQYJKoZIhvcNAQEL\nBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM\nGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yMjA5MjgwNTI4MTJaFw0yMzA5\nMjgwNTI4MTJaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEw\nHwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwXDANBgkqhkiG9w0BAQEF\nAANLADBIAkEArr89f2kggSO/yaCB6EwIQeT6ZptBoX0ZvCMI+DpkCwqOS5fwRbj1\nnEiPnLbzDDgMU8KCPAMhI7JpYRlHnipxWwIDAQABo1MwUTAdBgNVHQ4EFgQUiZ6J\nDwuF9QCh1vwQGXs2MutuQ9EwHwYDVR0jBBgwFoAUiZ6JDwuF9QCh1vwQGXs2Mutu\nQ9EwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAANBAFYIFM27BDiG725d\nVkhRblkvZzeRHhcwtDOQTC9d8M/LymN2y0nHSlJCZm/Lo/aH8viSY1vi1GSHfDz7\nTlfe8gs=\n-----END CERTIFICATE-----\n"
host (string)
Name: Host
Description: Host name and port of the Kubernetes server
Required: No
Default
"kubernetes.default.svc"
key (string)
Name: Client key
Description: Client private key in PEM format to authenticate against Kubernetes with.
Required: No
Minimum: 1
Must match pattern: ^\s*-----BEGIN ([A-Z]+) PRIVATE KEY-----(\s*.*\s*)*-----END ([A-Z]+) PRIVATE KEY-----\s*$
Examples
"-----BEGIN PRIVATE KEY-----\nMIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEArr89f2kggSO/yaCB\n6EwIQeT6ZptBoX0ZvCMI+DpkCwqOS5fwRbj1nEiPnLbzDDgMU8KCPAMhI7JpYRlH\nnipxWwIDAQABAkBybu/x0MElcGi2u/J2UdwScsV7je5Tt12z82l7TJmZFFJ8RLmc\nrh00Gveb4VpGhd1+c3lZbO1mIT6v3vHM9A0hAiEA14EW6b+99XYza7+5uwIDuiM+\nBz3pkK+9tlfVXE7JyKsCIQDPlYJ5xtbuT+VvB3XOdD/VWiEqEmvE3flV0417Rqha\nEQIgbyxwNpwtEgEtW8untBrA83iU2kWNRY/z7ap4LkuS+0sCIGe2E+0RmfqQsllp\nicMvM2E92YnykCNYn6TwwCQSJjRxAiEAo9MmaVlK7YdhSMPo52uJYzd9MQZJqhq+\nlB1ZGDx/ARE=\n-----END PRIVATE KEY-----\n"
password (string)
Name: Password
Description: Password for basic authentication.
Required: No
path (string)
Name: Path
Description: Path to the API server.
Required: No
Default
"/api"
qps (float)
Name: QPS
Description: Queries Per Second allowed against the API.
Required: No
Minimum: 0
Units: queries
Default
5.0
serverName (string)
Name: TLS server name
Description: Expected TLS server name to verify in the certificate.
Required: No
username (string)
Name: Username
Description: Username for basic authentication.
Required: No
Container (object)
Type: object
Properties
args (list[string])
Name: Arguments
Description: Arguments to the entypoint (command).
Required: No
List Items
Type: string
command (list[string])
Name: Command
Description: Override container entry point. Not executed with a shell.
Required: No
Minimum items: 1
List Items
Type: string
env (list[object])
Name: Environment
Description: Environment variables for this container.
Required: No
List Items
Type: object
Properties
name (string)
Name: Name
Description: Environment variables name.
Required: Yes
Minimum: 1
Must match pattern: ^[a-zA-Z0-9-._]+$
value (string)
Name: Value
Description: Value for the environment variable.
Required: No
valueFrom (reference[EnvFromSource])
Name: Value source
Description: Load the environment variable from a secret or config map.
Required: No
Referenced object: EnvFromSource (see in the Objects section below)
envFrom (list[reference[EnvFromSource]])
Name: Environment sources
Description: List of sources to populate the environment variables from.
Required: No
List Items
Type: reference[EnvFromSource]
Referenced object: EnvFromSource (see in the Objects section below)
image (string)
Name: Image
Description: Container image to use for this container.
Required: Yes
Minimum: 1
Must match pattern: ^[a-zA-Z0-9_\-:./]+$
imagePullPolicy (enum[string])
Name: Volume device
Description: Mount a raw block device within the container.
Required: No
Values
  • Always Always
  • IfNotPresent If not present
  • Never Never
Default
"IfNotPresent"
name (string)
Name: Name
Description: Name for the container. Each container in a pod must have a unique name.
Required: Yes
Maximum: 253
Must match pattern: ^[a-z0-9]($|[a-z0-9\-_]*[a-z0-9])$
securityContext (object)
Name: Volume device
Description: Mount a raw block device within the container.
Required: No
Properties
capabilities (object)
Name: Capabilities
Description: Add or drop POSIX capabilities.
Required: No
Properties
add (list[string])
Name: Add
Description: Add POSIX capabilities.
Required: No
List Items
Type: string
Minimum: 1
Must match pattern: ^[A-Z_]+$
drop (list[string])
Name: Drop
Description: Drop POSIX capabilities.
Required: No
List Items
Type: string
Minimum: 1
Must match pattern: ^[A-Z_]+$
privileged (bool)
Name: Privileged
Description: Run the container in privileged mode.
Required: No
volumeDevices (list[object])
Name: Volume device
Description: Mount a raw block device within the container.
Required: No
List Items
Type: object
Properties
devicePath (string)
Name: Device path
Description: Path inside the container the device will be mapped to.
Required: Yes
Minimum: 1
name (string)
Name: Name
Description: Must match the persistent volume claim in the pod.
Required: Yes
Minimum: 1
volumeMounts (list[object])
Name: Volume mounts
Description: Pod volumes to mount on this container.
Required: No
List Items
Type: object
Properties
mountPath (string)
Name: Mount path
Description: Path to mount the volume on inside the container.
Required: Yes
Minimum: 1
name (string)
Name: Volume name
Description: Must match the pod volume to mount.
Required: Yes
Minimum: 1
readOnly (bool)
Name: Read only
Description: Mount volume as read-only.
Required: No
Default
false
subPath (string)
Name: Subpath
Description: Path from the volume to mount.
Required: No
Minimum: 1
workingDir (string)
Name: Working directory
Description: Override the container working directory.
Required: No
DownwardAPIVolumeSource (object)
Type: object
Properties

None

EmptyDirVolumeSource (object)
Type: object
Properties
medium (string)
Name: Medium
Description: How to store the empty directory
Required: No
Minimum: 1
Must match pattern: ^(|Memory|HugePages|HugePages-.*)$
EnvFromSource (object)
Type: object
Properties
configMapRef (object)
Name: Config map source
Description: Populates the source from a config map.
Required: No
Properties
name (string)
Name: Name
Description: Name of the referenced config map.
Required: Yes
Minimum: 1
optional (bool)
Name: Optional
Description: Specify whether the config map must be defined.
Required: No
prefix (string)
Name: Prefix
Description: An optional identifier to prepend to each key in the ConfigMap.
Required: No
Minimum: 1
Must match pattern: ^[a-zA-Z0-9-._]+$
secretRef (object)
Name: Secret source
Description: Populates the source from a secret.
Required: No
Properties
name (string)
Name: Name
Description: Name of the referenced secret.
Required: Yes
Minimum: 1
optional (bool)
Name: Optional
Description: Specify whether the secret must be defined.
Required: No
EphemeralVolumeSource (object)
Type: object
Properties

None

FCVolumeSource (object)
Type: object
Properties

None

FlexVolumeSource (object)
Type: object
Properties

None

FlockerVolumeSource (object)
Type: object
Properties

None

GCEPersistentDiskVolumeSource (object)
Type: object
Properties

None

GlusterfsVolumeSource (object)
Type: object
Properties

None

HostPathVolumeSource (object)
Type: object
Properties
path (string)
Name: Path
Description: Path to the directory on the host.
Required: Yes
Minimum: 1
Examples
"/srv/volume1"
type (enum[string])
Name: Type
Description: Type of the host path.
Required: No
Values
  • `` Unset
  • BlockDevice Block device
  • CharDevice Character device
  • Directory Directory
  • DirectoryOrCreate Create directory if not found
  • File File
  • FileOrCreate Create file if not found
  • Socket Socket
ISCSIVolumeSource (object)
Type: object
Properties

None

NFSVolumeSource (object)
Type: object
Properties

None

ObjectMeta (object)
Type: object
Properties
annotations (map[string, string])
Name: Annotations
Description: Kubernetes annotations to appy. See https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/ for details.
Required: No
Key type
Type: string
Must match pattern: ^(|([a-zA-Z](|[a-zA-Z\-.]{0,251}[a-zA-Z0-9]))/)([a-zA-Z](|[a-zA-Z\\-]{0,61}[a-zA-Z0-9]))$
Value type
Type: string
Maximum: 63
Must match pattern: ^(|[a-zA-Z0-9]+(|[-_.][a-zA-Z0-9]+)*[a-zA-Z0-9])$
generateName (string)
Name: Name prefix
Description: Name prefix to generate pod names from.
Required: No
labels (map[string, string])
Name: Labels
Description: Kubernetes labels to appy. See https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for details.
Required: No
Key type
Type: string
Must match pattern: ^(|([a-zA-Z](|[a-zA-Z\-.]{0,251}[a-zA-Z0-9]))/)([a-zA-Z](|[a-zA-Z\\-]{0,61}[a-zA-Z0-9]))$
Value type
Type: string
Maximum: 63
Must match pattern: ^(|[a-zA-Z0-9]+(|[-_.][a-zA-Z0-9]+)*[a-zA-Z0-9])$
name (string)
Name: Name
Description: Pod name.
Required: No
namespace (string)
Name: Namespace
Description: Kubernetes namespace to deploy in.
Required: No
Maximum: 253
Must match pattern: ^[a-z0-9]($|[a-z0-9\-_]*[a-z0-9])$
Default
"default"
PersistentVolumeClaimVolumeSource (object)
Type: object
Properties

None

PhotonPersistentDiskVolumeSource (object)
Type: object
Properties

None

Pod (object)
Type: object
Properties
metadata (reference[ObjectMeta])
Name: Metadata
Description: Pod metadata.
Required: No
Referenced object: ObjectMeta (see in the Objects section below)
spec (reference[PodSpec])
Name: Specification
Description: Pod specification.
Required: No
Referenced object: PodSpec (see in the Objects section below)
PodSpec (object)
Type: object
Properties
affinity (object)
Name: Affinity rules
Description: Affinity rules.
Required: No
Properties
podAffinity (object)
Name: Pod Affinity
Description: The pod affinity rules.
Required: No
Properties
requiredDuringSchedulingIgnoredDuringExecution (list[object])
Name: Required During Scheduling Ignored During Execution
Description: Hard pod affinity rules.
Required: No
Minimum items: 1
List Items
Type: object
Properties
labelSelector (object)
Name: MatchExpressions
Description: Expressions for the label selector.
Required: No
Properties
matchExpressions (list[object])
Name: MatchExpression
Description: Expression for the label selector.
Required: No
Minimum items: 1
List Items
Type: object
Properties
key (string)
Name: Key
Description: Key for the label that the system uses to denote the domain.
Required: No
Maximum: 63
Must match pattern: ^(|[a-zA-Z0-9]+(|[-_.][a-zA-Z0-9]+)*[a-zA-Z0-9])$
operator (string)
Name: Operator
Description: Logical operator for Kubernetes to use when interpreting the rules.
You can use In, NotIn, Exists, DoesNotExist, Gt and Lt.
Required: No
Maximum: 253
Must match pattern: In|NotIn|Exists|DoesNotExist|Gt|Lt
values (list[string])
Name: Values
Description: Values for the label that the system uses to denote the domain.
Required: No
Minimum items: 1
List Items
Type: string
Maximum: 63
Must match pattern: ^(|[a-zA-Z0-9]+(|[-_.][a-zA-Z0-9]+)*[a-zA-Z0-9])$
topologyKey (string)
Name: TopologyKey
Description: Key for the node label that the system uses to denote the domain.
Required: No
Maximum: 63
Must match pattern: ^(|[a-zA-Z0-9]+(|[-_./][a-zA-Z0-9]+)*[a-zA-Z0-9])$
podAntiAffinity (object)
Name: Pod Affinity
Description: The pod affinity rules.
Required: No
Properties
requiredDuringSchedulingIgnoredDuringExecution (list[object])
Name: Required During Scheduling Ignored During Execution
Description: Hard pod affinity rules.
Required: No
Minimum items: 1
List Items
Type: object
Properties
labelSelector (object)
Name: MatchExpressions
Description: Expressions for the label selector.
Required: No
Properties
matchExpressions (list[object])
Name: MatchExpression
Description: Expression for the label selector.
Required: No
Minimum items: 1
List Items
Type: object
Properties
key (string)
Name: Key
Description: Key for the label that the system uses to denote the domain.
Required: No
Maximum: 63
Must match pattern: ^(|[a-zA-Z0-9]+(|[-_.][a-zA-Z0-9]+)*[a-zA-Z0-9])$
operator (string)
Name: Operator
Description: Logical operator for Kubernetes to use when interpreting the rules.
You can use In, NotIn, Exists, DoesNotExist, Gt and Lt.
Required: No
Maximum: 253
Must match pattern: In|NotIn|Exists|DoesNotExist|Gt|Lt
values (list[string])
Name: Values
Description: Values for the label that the system uses to denote the domain.
Required: No
Minimum items: 1
List Items
Type: string
Maximum: 63
Must match pattern: ^(|[a-zA-Z0-9]+(|[-_.][a-zA-Z0-9]+)*[a-zA-Z0-9])$
topologyKey (string)
Name: TopologyKey
Description: Key for the node label that the system uses to denote the domain.
Required: No
Maximum: 63
Must match pattern: ^(|[a-zA-Z0-9]+(|[-_./][a-zA-Z0-9]+)*[a-zA-Z0-9])$
containers (list[reference[Container]])
Name: Containers
Description: A list of containers belonging to the pod.
Required: No
List Items
Type: reference[Container]
Referenced object: Container (see in the Objects section below)
initContainers (list[reference[Container]])
Name: Init containers
Description: A list of initialization containers belonging to the pod.
Required: No
List Items
Type: reference[Container]
Referenced object: Container (see in the Objects section below)
nodeSelector (map[string, string])
Name: Labels
Description: Node labels you want the target node to have.
Required: No
Key type
Type: string
Must match pattern: ^(|([a-zA-Z](|[a-zA-Z\-.]{0,251}[a-zA-Z0-9]))/)([a-zA-Z](|[a-zA-Z\\-]{0,61}[a-zA-Z0-9]))$
Value type
Type: string
Maximum: 63
Must match pattern: ^(|[a-zA-Z0-9]+(|[-_.][a-zA-Z0-9]+)*[a-zA-Z0-9])$
pluginContainer (object)
Name: Plugin container
Description: The container to run the plugin in.
Required: Yes
Properties
env (list[object])
Name: Environment
Description: Environment variables for this container.
Required: No
List Items
Type: object
Properties
name (string)
Name: Name
Description: Environment variables name.
Required: Yes
Minimum: 1
Must match pattern: ^[a-zA-Z0-9-._]+$
value (string)
Name: Value
Description: Value for the environment variable.
Required: No
valueFrom (reference[EnvFromSource])
Name: Value source
Description: Load the environment variable from a secret or config map.
Required: No
Referenced object: EnvFromSource (see in the Objects section below)
envFrom (list[reference[EnvFromSource]])
Name: Environment sources
Description: List of sources to populate the environment variables from.
Required: No
List Items
Type: reference[EnvFromSource]
Referenced object: EnvFromSource (see in the Objects section below)
imagePullPolicy (enum[string])
Name: Volume device
Description: Mount a raw block device within the container.
Required: No
Values
  • Always Always
  • IfNotPresent If not present
  • Never Never
Default
"IfNotPresent"
name (string)
Name: Name
Description: Name for the container. Each container in a pod must have a unique name.
Required: No
Maximum: 253
Must match pattern: ^[a-z0-9]($|[a-z0-9\-_]*[a-z0-9])$
Default
"arcaflow-plugin-container"
securityContext (object)
Name: Volume device
Description: Mount a raw block device within the container.
Required: No
Properties
capabilities (object)
Name: Capabilities
Description: Add or drop POSIX capabilities.
Required: No
Properties
add (list[string])
Name: Add
Description: Add POSIX capabilities.
Required: No
List Items
Type: string
Minimum: 1
Must match pattern: ^[A-Z_]+$
drop (list[string])
Name: Drop
Description: Drop POSIX capabilities.
Required: No
List Items
Type: string
Minimum: 1
Must match pattern: ^[A-Z_]+$
privileged (bool)
Name: Privileged
Description: Run the container in privileged mode.
Required: No
volumeDevices (list[object])
Name: Volume device
Description: Mount a raw block device within the container.
Required: No
List Items
Type: object
Properties
devicePath (string)
Name: Device path
Description: Path inside the container the device will be mapped to.
Required: Yes
Minimum: 1
name (string)
Name: Name
Description: Must match the persistent volume claim in the pod.
Required: Yes
Minimum: 1
volumeMounts (list[object])
Name: Volume mounts
Description: Pod volumes to mount on this container.
Required: No
List Items
Type: object
Properties
mountPath (string)
Name: Mount path
Description: Path to mount the volume on inside the container.
Required: Yes
Minimum: 1
name (string)
Name: Volume name
Description: Must match the pod volume to mount.
Required: Yes
Minimum: 1
readOnly (bool)
Name: Read only
Description: Mount volume as read-only.
Required: No
Default
false
subPath (string)
Name: Subpath
Description: Path from the volume to mount.
Required: No
Minimum: 1
volumes (list[reference[Volume]])
Name: Volumes
Description: A list of volumes that can be mounted by containers belonging to the pod.
Required: No
List Items
Type: reference[Volume]
Referenced object: Volume (see in the Objects section below)
PortworxVolumeSource (object)
Type: object
Properties

None

ProjectedVolumeSource (object)
Type: object
Properties

None

QuobyteVolumeSource (object)
Type: object
Properties

None

RBDVolumeSource (object)
Type: object
Properties

None

ScaleIOVolumeSource (object)
Type: object
Properties

None

SecretVolumeSource (object)
Type: object
Properties

None

StorageOSVolumeSource (object)
Type: object
Properties

None

Timeouts (object)
Type: object
Properties
http (int)
Name: HTTP
Description: HTTP timeout for the Docker API.
Required: No
Minimum: 100000000
Units: nanoseconds
Default
"15s"
Volume (object)
Type: object
Properties
awsElasticBlockStore (reference[AWSElasticBlockStoreVolumeSource])
Name: AWS EBS
Description: AWS Elastic Block Storage.
Required: No
Referenced object: AWSElasticBlockStoreVolumeSource (see in the Objects section below)
azureDisk (reference[AzureDiskVolumeSource])
Name: Azure Data Disk
Description: Mount an Azure Data Disk as a volume.
Required: No
Referenced object: AzureDiskVolumeSource (see in the Objects section below)
azureFile (reference[AzureFileVolumeSource])
Name: Azure File
Description: Mount an Azure File Service mount.
Required: No
Referenced object: AzureFileVolumeSource (see in the Objects section below)
cephfs (reference[CephFSVolumeSource])
Name: CephFS
Description: Mount a CephFS volume.
Required: No
Referenced object: CephFSVolumeSource (see in the Objects section below)
cinder (reference[CinderVolumeSource])
Name: Cinder
Description: Mount a cinder volume attached and mounted on the host machine.
Required: No
Referenced object: CinderVolumeSource (see in the Objects section below)
configMap (reference[ConfigMapVolumeSource])
Name: ConfigMap
Description: Mount a ConfigMap as a volume.
Required: No
Referenced object: ConfigMapVolumeSource (see in the Objects section below)
csi (reference[CSIVolumeSource])
Name: CSI Volume
Description: Mount a volume using a CSI driver.
Required: No
Referenced object: CSIVolumeSource (see in the Objects section below)
downwardAPI (reference[DownwardAPIVolumeSource])
Name: Downward API
Description: Specify a volume that the pod should mount itself.
Required: No
Referenced object: DownwardAPIVolumeSource (see in the Objects section below)
emptyDir (reference[EmptyDirVolumeSource])
Name: Empty directory
Description: Temporary empty directory.
Required: No
Referenced object: EmptyDirVolumeSource (see in the Objects section below)
ephemeral (reference[EphemeralVolumeSource])
Name: Ephemeral
Description: Mount a volume that is handled by a cluster storage driver.
Required: No
Referenced object: EphemeralVolumeSource (see in the Objects section below)
fc (reference[FCVolumeSource])
Name: Fibre Channel
Description: Mount a Fibre Channel volume that's attached to the host machine.
Required: No
Referenced object: FCVolumeSource (see in the Objects section below)
flexVolume (reference[FlexVolumeSource])
Name: Flex
Description: Mount a generic volume provisioned/attached using an exec based plugin.
Required: No
Referenced object: FlexVolumeSource (see in the Objects section below)
flocker (reference[FlockerVolumeSource])
Name: Flocker
Description: Mount a Flocker volume.
Required: No
Referenced object: FlockerVolumeSource (see in the Objects section below)
gcePersistentDisk (reference[GCEPersistentDiskVolumeSource])
Name: GCE disk
Description: Google Cloud disk.
Required: No
Referenced object: GCEPersistentDiskVolumeSource (see in the Objects section below)
glusterfs (reference[GlusterfsVolumeSource])
Name: GlusterFS
Description: Mount a Gluster volume.
Required: No
Referenced object: GlusterfsVolumeSource (see in the Objects section below)
hostPath (reference[HostPathVolumeSource])
Name: Host path
Description: Mount volume from the host.
Required: No
Referenced object: HostPathVolumeSource (see in the Objects section below)
iscsi (reference[ISCSIVolumeSource])
Name: iSCSI
Description: Mount an iSCSI volume.
Required: No
Referenced object: ISCSIVolumeSource (see in the Objects section below)
name (string)
Name: Name
Description: The name this volume can be referenced by.
Required: Yes
Maximum: 253
Must match pattern: ^[a-z0-9]($|[a-z0-9\-_]*[a-z0-9])$
nfs (reference[NFSVolumeSource])
Name: NFS
Description: Mount an NFS share.
Required: No
Referenced object: NFSVolumeSource (see in the Objects section below)
persistentVolumeClaim (reference[PersistentVolumeClaimVolumeSource])
Name: Persistent Volume Claim
Description: Mount a Persistent Volume Claim.
Required: No
Referenced object: PersistentVolumeClaimVolumeSource (see in the Objects section below)
photonPersistentDisk (reference[PhotonPersistentDiskVolumeSource])
Name: PhotonController persistent disk
Description: Mount a PhotonController persistent disk as a volume.
Required: No
Referenced object: PhotonPersistentDiskVolumeSource (see in the Objects section below)
portworxVolume (reference[PortworxVolumeSource])
Name: Portworx Volume
Description: Mount a Portworx volume.
Required: No
Referenced object: PortworxVolumeSource (see in the Objects section below)
projected (reference[ProjectedVolumeSource])
Name: Projected
Description: Projected items for all in one resources secrets, configmaps, and downward API.
Required: No
Referenced object: ProjectedVolumeSource (see in the Objects section below)
quobyte (reference[QuobyteVolumeSource])
Name: quobyte
Description: Mount Quobyte volume from the host.
Required: No
Referenced object: QuobyteVolumeSource (see in the Objects section below)
rbd (reference[RBDVolumeSource])
Name: Rados Block Device
Description: Mount a Rados Block Device.
Required: No
Referenced object: RBDVolumeSource (see in the Objects section below)
scaleIO (reference[ScaleIOVolumeSource])
Name: ScaleIO Persistent Volume
Description: Mount a ScaleIO persistent volume.
Required: No
Referenced object: ScaleIOVolumeSource (see in the Objects section below)
secret (reference[SecretVolumeSource])
Name: Secret
Description: Mount a Kubernetes secret.
Required: No
Referenced object: SecretVolumeSource (see in the Objects section below)
storageos (reference[StorageOSVolumeSource])
Name: StorageOS Volume
Description: Mount a StorageOS volume.
Required: No
Referenced object: StorageOSVolumeSource (see in the Objects section below)
vsphereVolume (reference[VsphereVirtualDiskVolumeSource])
Name: vSphere Virtual Disk
Description: Mount a vSphere Virtual Disk as a volume.
Required: No
Referenced object: VsphereVirtualDiskVolumeSource (see in the Objects section below)
VsphereVirtualDiskVolumeSource (object)
Type: object
Properties

None