Pipeline Templates
Pipeline template JSON
A pipeline template uses the following config JSON:
{
"schema": "v2",
"variables": [
{
"type": "<type>",
"defaultValue": <value>,
"description": "<description>",
"name": "<varName>"
}
],
"id": "<templateName>", # The pipeline instance references the template using this
"protect": <true | false>,
"metadata": {
"name": "displayName", # The display name shown in Deck
"description": "<description>",
"owner": "example@example.com",
"scopes": ["global"] # Not used
},
"pipeline": { # Contains the templatized pipeline itself
"lastModifiedBy": "anonymous", # Not used
"updateTs": "0", # Not used
"parameterConfig": [], # Same as in a regular pipeline
"limitConcurrent": true, # Same as in a regular pipeline
"keepWaitingPipelines": false, # Same as in a regular pipeline
"description": "", # Same as in a regular pipeline
"triggers": [], # Same as in a regular pipeline
"notifications": [], # Same as in a regular pipeline
"stages": [ # Contains the templated stages
{
# This one is an example stage:
"waitTime": "${ templateVariables.waitTime }", # Templated field.
"name": "My Wait Stage",
"type": "wait",
"refId": "wait1",
"requisiteStageRefIds": []
}
]
}
}
Pipeline JSON
A pipeline instance that implements a pipeline template uses the following config:
{
"schema": "v2",
"application": "<appName>", # Set this to the app you want to create the pipeline in.
"name": "New Pipeline Name", # The name of your pipeline.
"template": {
"type": "front50/pipelineTemplate",
"artifactAccount": "front50ArtifactCredentials",
"reference": "spinnaker://<templateName>"
},
"variables": {
"<varName>": <value>, # Value for the template variable.
"someOtherVar": <value>
},
"inherit": [],
"triggers": [],
"parameters": [],
"notifications": [],
"description": "",
"stages": []
}
A more thorough explanation of some fields such as protect
can be found in the v1
schema
here
.
Last modified September 28, 2020: rest of reference cleanup work (a023331)