← Files Testkube SkillsARCHIVED FILE
skills/testworkflow-author/assets/workflow-schema.yaml
15.6 KB · Oct 4, 2026 · 12:29 UTC
# String. APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info https//git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
apiVersion: "testworkflows.testkube.io/v1"
# String. Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info https//git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
kind: "TestWorkflow"
# Object.
metadata: {}
# Object. TestWorkflow specification
spec:
# Array. Steps to run at the end of the workflow. Follows the schema of spec.steps
after: []
# Object. Configuration for concurrency policy
concurrency:
# Boolean. Whether the oldest in progress execution should be cancelled to be replaced with the latest queued one.
cancelInProgress: false
# String. Group ongoing executions by this identifier instead of by workflow name. Use the group identifier if you want the control concurrency across workflows
group: ""
# Integer. The maximum amount of concurrent executions for this workflow or group. The scheduler will check the amount of ongoing executions for this workflow or group and only schedule this workflow when the amount is below its given maximum. When using a group identifier, it is recommended to keep the maximum in sync through a WorkflowTemplate.
max: 0
# Object. Make the instance configurable with some input data for scheduling it
config: {}
# Object. Defaults for the containers for all the TestWorkflow steps
container:
# Array. Override default command in the image (empty string to default CMD of the image)
args: []
# Array. Override default command in the image (empty string to default ENTRYPOINT of the image)
command: []
# Array.
env:
# Object. Item in the array
-
# Boolean.
global: false
# String.
name: ""
# String.
value: ""
# Object.
valueFrom:
# Array.
envFrom:
# Object. Item in the array
-
# Object.
configMapRef:
# String.
prefix: ""
# Object.
secretRef:
# String. Image to be used for the container
image: ""
# String. Pulling policy for the image
imagePullPolicy: ""
# Object. Expected resources for the container
resources:
# Object. Resource limits for the container
limits: {}
# Object. Resource requests for the container
requests: {}
# Object.
securityContext:
# Boolean.
allowPrivilegeEscalation: false
# Object. Required type.
appArmorProfile:
# String.
localhostProfile: ""
# String.
type: ""
# Object.
capabilities:
# Array.
add: []
# Array.
drop: []
# Boolean.
privileged: false
# String.
procMount: ""
# Boolean.
readOnlyRootFilesystem: false
# Object.
runAsGroup: {}
# Boolean.
runAsNonRoot: false
# Object.
runAsUser: {}
# Object.
seLinuxOptions:
# String.
level: ""
# String.
role: ""
# String.
type: ""
# String.
user: ""
# Object. Required type.
seccompProfile:
# String.
localhostProfile: ""
# String.
type: ""
# Object.
windowsOptions:
# String.
gmsaCredentialSpec: ""
# String.
gmsaCredentialSpecName: ""
# Boolean.
hostProcess: false
# String.
runAsUserName: ""
# Array.
volumeMounts:
# Object. Item in the array
-
# String.
mountPath: ""
# String.
mountPropagation: ""
# String.
name: ""
# Boolean.
readOnly: false
# String.
recursiveReadOnly: ""
# String.
subPath: ""
# String.
subPathExpr: ""
# String. Override default working directory in the image (empty string to default WORKDIR for the image)
workingDir: ""
# Object. Global content that should be fetched into all containers
content:
# Array. Files to load
files:
# Object. Item in the array
-
# String. Plain-text content to put inside
content: ""
# Object. External source to use
contentFrom:
# Integer. Mode to use for the file
mode: 0
# String. Path where the file should be accessible at
path: ""
# Object. Git repository details
git:
# String. Authorization type for the credentials
authType: ""
# Boolean. Enable cone mode for sparse checkout with paths
cone: false
# String. Where to mount the fetched repository contents (defaults to "repo" directory in the data volume)
mountPath: ""
# Array. Paths to fetch for the sparse checkout
paths: []
# String. Branch, commit or a tag name to fetch
revision: ""
# String. Plain text SSH private key to fetch with
sshKey: ""
# Object. External SSH private key to fetch with
sshKeyFrom:
# Object. Required key.
configMapKeyRef:
# String.
key: ""
# String.
name: ""
# Boolean.
optional: false
# Object. Required fieldPath.
fieldRef:
# String.
apiVersion: ""
# String.
fieldPath: ""
# Object. Required key, path, volumeName.
fileKeyRef:
# String.
key: ""
# Boolean.
optional: false
# String.
path: ""
# String.
volumeName: ""
# Object. Required resource.
resourceFieldRef:
# String.
containerName: ""
# Object.
divisor: {}
# String.
resource: ""
# Object. Required key.
secretKeyRef:
# String.
key: ""
# String.
name: ""
# Boolean.
optional: false
# String. Plain text token to fetch with
token: ""
# Object. External token to fetch with
tokenFrom:
# Object. Required key.
configMapKeyRef:
# String.
key: ""
# String.
name: ""
# Boolean.
optional: false
# Object. Required fieldPath.
fieldRef:
# String.
apiVersion: ""
# String.
fieldPath: ""
# Object. Required key, path, volumeName.
fileKeyRef:
# String.
key: ""
# Boolean.
optional: false
# String.
path: ""
# String.
volumeName: ""
# Object. Required resource.
resourceFieldRef:
# String.
containerName: ""
# Object.
divisor: {}
# String.
resource: ""
# Object. Required key.
secretKeyRef:
# String.
key: ""
# String.
name: ""
# Boolean.
optional: false
# String. Uri for the Git repository
uri: ""
# String. Plain text username to fetch with
username: ""
# Object. External username to fetch with
usernameFrom:
# Object. Required key.
configMapKeyRef:
# String.
key: ""
# String.
name: ""
# Boolean.
optional: false
# Object. Required fieldPath.
fieldRef:
# String.
apiVersion: ""
# String.
fieldPath: ""
# Object. Required key, path, volumeName.
fileKeyRef:
# String.
key: ""
# Boolean.
optional: false
# String.
path: ""
# String.
volumeName: ""
# Object. Required resource.
resourceFieldRef:
# String.
containerName: ""
# Object.
divisor: {}
# String.
resource: ""
# Object. Required key.
secretKeyRef:
# String.
key: ""
# String.
name: ""
# Boolean.
optional: false
# Array. Tarballs to unpack
tarball:
# Object. Item in the array
-
# Boolean. Should it mount a new volume there
mount: false
# String. Path where the tarball should be extracted
path: ""
# String. Url for the tarball to extract
url: ""
# Array. Events triggering execution of the test workflow
events:
# Object. Item in the array
-
# Object. Required cron. Cron job configuration
cronjob:
# Object. Values to be used for test workflow execution
execution:
# Boolean. When true, SilentMode is activated for all executions (Webhooks, Insights, Health, Metrics, Cdevents all set to true).
silent: false
# Object. Test workflow execution tags
tags: {}
# Object. Targets helps decide on which runner the execution is scheduled.
target:
# Object.
match: {}
# Object.
not: {}
# Array.
replicate: []
# Object. Configuration for the scheduled job
job:
# Integer. Duration in seconds the job may be active on the node
activeDeadlineSeconds: 0
# Object. Annotations added to the scheduled job
annotations: {}
# Object. Labels added to the scheduled job
labels: {}
# String. Namespace for execution of test workflow
namespace: ""
# Object. Configuration for notifications Deprecated field is not used
notifications:
# Boolean.
disableWebhooks: false
# Object. Configuration for the scheduled pod
pod:
# Integer. Duration in seconds the pod may be active on the node
activeDeadlineSeconds: 0
# Object.
affinity: {}
# Object. Annotations added to the scheduled pod
annotations: {}
# Boolean. Disable automatic pod fsGroup inference/defaulting; explicit securityContext.fsGroup still applies
disableFsGroupDefaulting: false
# Object.
dnsConfig:
# Array.
nameservers: []
# Array.
options:
# Object. Item in the array
-
# String.
name: ""
# String.
value: ""
# Array.
searches: []
# String.
dnsPolicy: ""
# Array.
hostAliases:
# Object. Item in the array
-
# Array.
hostnames:
# String.
ip: ""
# Boolean. Whether to allow a pod to have access to the host process ID namespace
hostPID: false
# String. Specifies the hostname of the Pod
hostname: ""
# Array.
imagePullSecrets:
# Object. Item in the array
-
# String.
name: ""
# Object. Labels added to the scheduled pod
labels: {}
# String. NodeName is a request to schedule this pod onto a specific node.
nodeName: ""
# Object. Node selector to define on which node the pod should land
nodeSelector: {}
# String. PreemptionPolicy is the Policy for preempting pods with lower priority.
preemptionPolicy: ""
# Integer. The priority value. Various system components use this field to find the priority of the pod.
priority: 0
# String. If specified, indicates the pod's priority.
priorityClassName: ""
# Array.
resourceClaims:
# Object. Item in the array
-
# String.
name: ""
# String.
resourceClaimName: ""
# String.
resourceClaimTemplateName: ""
# Array.
schedulingGates:
# Object. Item in the array
-
# String.
name: ""
# Object. . Follows the schema of spec.container.securityContext
securityContext: {}
# String. Default service account name for the scheduled pod
serviceAccountName: ""
# String. If specified, the fully qualified Pod hostname will be "<hostname>.<subdomain>.<pod namespace>.svc.<cluster domain>".
subdomain: ""
# Array.
tolerations:
# Object. Item in the array
-
# String.
effect: ""
# String.
key: ""
# String.
operator: ""
# Integer.
tolerationSeconds: 0
# String.
value: ""
# Object.
topologySpreadConstraints: {}
# Object.
volumes: {}
# Object.
pvcs: {}
# Object. List of accompanying services to start
services: {}
# Array. Steps for setting up the workflow. Follows the schema of spec.steps
setup: []
# Array. Steps to execute in the workflow
steps:
# Object. Item in the array
-
# Object. Scrape artifacts from the volumes
artifacts:
# String. Expression to declare under which conditions the step should be run defaults to "passed", except artifacts where it defaults to "always"
condition: ""
# Object. Defaults for the containers in this step. Follows the schema of spec.container
container:
# Object. Content that should be fetched for this step. Follows the schema of spec.content
content:
# String. Delay before the step
delay: ""
# Object. Execute other Testkube resources
execute:
# String. Stable identifier for referencing this step in expressions (e.g., step.<id>.outputs) if not provided, auto-derived from name by lowercasing and replacing non-alphanumeric characters with underscores must contain only lowercase alphanumeric characters and underscores
id: ""
# String. Readable name for the step
name: ""
# Boolean. Is the step expected to fail
negative: false
# Boolean. Is the step optional, so its failure won't affect the TestWorkflow result
optional: false
# Object. Instructions for parallel execution
parallel:
# Boolean. Pause the step initially
paused: false
# Boolean. Mark the step as pure, applying optimizations to merge the containers together
pure: false
# Object. Required count. Policy for retrying the step
retry:
# Object. Run specific container in the current step
run:
# Object. List of accompanying services to start
services:
# Object. Steps to run before other operations in this step
setup:
# String. Script to run in a default shell for the container
shell: ""
# Object. Sub-steps to run
steps:
# Object. Required name. Single template to run in this step
template:
# String. Maximum time this step may take
timeout: ""
# Array. Multiple templates to include in this step
use:
# Object. Item in the array
use[0]:
# String. Working directory to use for this step
workingDir: ""
# Object. System configuration to define the orchestration behavior
system:
# Boolean. Disable the behavior of merging multiple operations in a single container
isolatedContainers: false
# Boolean. Assume all the steps are pure by default
pureByDefault: false
# Object. Per-workflow timeout configuration
timeouts:
# String. Maximum time for initialization/transitioning before steps run
initialization: ""
# String. Maximum time the execution may spend in queue before starting
queue: ""
# Array. Templates to include at a top-level of workflow
use:
# Object. Item in the array
-
# Object. Trait configuration values if needed
config:
# String. Name of the template to include
name: ""
SHA-256: 296d8666e441a6c9fc19d486b7fd3265540e2e0120973d99468f2f1ae9f5f8e0