Configuration Schema
Pipeline Structure
Section titled “Pipeline Structure”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 }]
Task Object Schema
Section titled “Task Object Schema”Required Properties
Section titled “Required Properties”- Type:
string
- Description: Human-readable description displayed in logs
- Example:
"ensure inf namespace exists"
function
Section titled “function”- Type:
string
- Description: Name of the function registered within infctl
- Known Functions:
k8sNamespaceExists
,RunCommand
- Example:
"RunCommand"
params
Section titled “params”- Type:
array
- Description: Array of string parameters passed to the function
- Example:
["./scripts/create_php_configmap_ctl.sh"]
Optional Properties
Section titled “Optional Properties”retryCount
Section titled “retryCount”- Type:
number
- Default:
0
- Description: Number of times to retry the task if it fails (script returns non-zero)
- Example:
3
shouldAbort
Section titled “shouldAbort”- Type:
boolean
- Default:
true
- Description: Whether to stop the pipeline if this task fails. If
false
, pipeline continues to next task - Example:
true
Known Functions
Section titled “Known Functions”Based on the documented examples:
k8sNamespaceExists
Section titled “k8sNamespaceExists”- Parameters:
[namespace: string]
- Description: Ensures a Kubernetes namespace exists
RunCommand
Section titled “RunCommand”- 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
Example Configurations
Section titled “Example Configurations”Basic Two-Step Pipeline
Section titled “Basic Two-Step Pipeline”[ { "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 }]
Simple Script Execution
Section titled “Simple Script Execution”[ { "name": "say hello", "function": "RunCommand", "params": ["echo 'hello world'"], "retryCount": 0, "shouldAbort": true }]
Continue on Failure
Section titled “Continue on Failure”[ { "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 }]
Execution Rules
Section titled “Execution Rules”- Tasks execute in sequence - Each task in the array runs one after another
- Failure handling - If a task fails (returns non-zero), it may be retried up to
retryCount
times - Pipeline stopping - If
shouldAbort
istrue
and task fails, pipeline stops. Iffalse
, pipeline continues - Unlimited flexibility -
RunCommand
can execute any script, command, or executable for complete automation flexibility