Skip to content

Configuration Schema

A pipeline is a JSON array of task objects. Each task represents a single operation to be executed in sequence.

[
{
"name": "ensure inf namespace exists",
"function": "k8sNamespaceExists",
"params": ["infctl"],
"retryCount": 0,
"shouldAbort": true
},
{
"name": "create php configmap",
"function": "RunCommand",
"params": ["./scripts/create_php_configmap_ctl.sh"],
"retryCount": 0,
"shouldAbort": true
}
]
  • Type: string
  • Description: Human-readable description displayed in logs
  • Example: "ensure inf namespace exists"
  • Type: string
  • Description: Name of the function registered within infctl
  • Known Functions: k8sNamespaceExists, RunCommand
  • Example: "RunCommand"
  • Type: array
  • Description: Array of string parameters passed to the function
  • Example: ["./scripts/create_php_configmap_ctl.sh"]
  • Type: number
  • Default: 0
  • Description: Number of times to retry the task if it fails (script returns non-zero)
  • Example: 3
  • Type: boolean
  • Default: true
  • Description: Whether to stop the pipeline if this task fails. If false, pipeline continues to next task
  • Example: true

Based on the documented examples:

  • Parameters: [namespace: string]
  • Description: Ensures a Kubernetes namespace exists
  • Parameters: [command: string]
  • Description: Executes a shell command, script, or executable
  • Notes: Can be any command, script path, or executable. Task fails if command returns non-zero exit code
[
{
"name": "ensure inf namespace exists",
"function": "k8sNamespaceExists",
"params": ["infctl"],
"retryCount": 0,
"shouldAbort": true
},
{
"name": "create php configmap",
"function": "RunCommand",
"params": ["./scripts/create_php_configmap_ctl.sh"],
"retryCount": 0,
"shouldAbort": true
}
]
[
{
"name": "say hello",
"function": "RunCommand",
"params": ["echo 'hello world'"],
"retryCount": 0,
"shouldAbort": true
}
]
[
{
"name": "optional cleanup",
"function": "RunCommand",
"params": ["rm -f /tmp/tempfile"],
"retryCount": 0,
"shouldAbort": false
},
{
"name": "main deployment",
"function": "RunCommand",
"params": ["./deploy.sh"],
"retryCount": 2,
"shouldAbort": true
}
]
  1. Tasks execute in sequence - Each task in the array runs one after another
  2. Failure handling - If a task fails (returns non-zero), it may be retried up to retryCount times
  3. Pipeline stopping - If shouldAbort is true and task fails, pipeline stops. If false, pipeline continues
  4. Unlimited flexibility - RunCommand can execute any script, command, or executable for complete automation flexibility