Argo · Schema
WorkflowSpec
Specification of a workflow
CNCFCI/CDGitOpsKubernetesOpen SourceProgressive DeliveryWorkflow Engine
Properties
| Name | Type | Description |
|---|---|---|
| entrypoint | string | The name of the entrypoint template |
| arguments | object | |
| templates | array | List of workflow templates |
| serviceAccountName | string | Service account to run workflow pods |
| volumes | array | Volumes available to workflow steps |
| activeDeadlineSeconds | integer | Duration in seconds before workflow times out |
| nodeSelector | object | |
| tolerations | array | |
| parallelism | integer | Maximum number of parallel running pods |
| ttlStrategy | object | Strategy for cleaning up completed workflows |
| podGC | object | Strategy for garbage collecting completed pods |
| workflowTemplateRef | object | Reference to a WorkflowTemplate |
| archiveLogs | boolean | Whether to archive workflow logs |
| hooks | object | Lifecycle hooks for the workflow |
| onExit | string | Template to execute on workflow exit |
| retryStrategy | object |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/argo/refs/heads/main/json-schema/argo-workflows-workflow-spec-schema.json",
"title": "WorkflowSpec",
"description": "Specification of a workflow",
"type": "object",
"properties": {
"entrypoint": {
"type": "string",
"description": "The name of the entrypoint template"
},
"arguments": {
"$ref": "#/components/schemas/Arguments"
},
"templates": {
"type": "array",
"description": "List of workflow templates",
"items": {
"$ref": "#/components/schemas/Template"
}
},
"serviceAccountName": {
"type": "string",
"description": "Service account to run workflow pods"
},
"volumes": {
"type": "array",
"description": "Volumes available to workflow steps",
"items": {
"type": "object"
}
},
"activeDeadlineSeconds": {
"type": "integer",
"format": "int64",
"description": "Duration in seconds before workflow times out"
},
"nodeSelector": {
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"tolerations": {
"type": "array",
"items": {
"type": "object"
}
},
"parallelism": {
"type": "integer",
"description": "Maximum number of parallel running pods"
},
"ttlStrategy": {
"type": "object",
"description": "Strategy for cleaning up completed workflows",
"properties": {
"secondsAfterCompletion": {
"type": "integer"
},
"secondsAfterSuccess": {
"type": "integer"
},
"secondsAfterFailure": {
"type": "integer"
}
}
},
"podGC": {
"type": "object",
"description": "Strategy for garbage collecting completed pods",
"properties": {
"strategy": {
"type": "string",
"enum": [
"OnPodCompletion",
"OnPodSuccess",
"OnWorkflowCompletion",
"OnWorkflowSuccess"
]
}
}
},
"workflowTemplateRef": {
"type": "object",
"description": "Reference to a WorkflowTemplate",
"properties": {
"name": {
"type": "string"
},
"clusterScope": {
"type": "boolean"
}
}
},
"archiveLogs": {
"type": "boolean",
"description": "Whether to archive workflow logs"
},
"hooks": {
"type": "object",
"description": "Lifecycle hooks for the workflow",
"additionalProperties": {
"type": "object"
}
},
"onExit": {
"type": "string",
"description": "Template to execute on workflow exit"
},
"retryStrategy": {
"$ref": "#/components/schemas/RetryStrategy"
}
}
}