The system template files should be stored in the template source repository in a specific order for them to be uploaded to Pipelines:
namespace/<name>/<files>
.Where:
The following files can be added as part of the templates:
File | Description | Mandatory/Optional |
---|---|---|
templateDefinition.yml | This should contain the pipeline definition and should be a valid yml file. | Mandatory |
values.yml.example | Use this file as a sample for creating a values.yml file. This should be a valid yml file and it is used to specify the details required for templateDefinition.yml file. | Optional |
readme.md | This should contain the documentation for the template. | Optional |
templateDefinition.yml: This is a sample templateDefinition.yml. This can be edited to create your own version of the file.
pipelines: - name: basic steps: - name: basic1 type: Bash configuration: runtime: type: image execution: onExecute: - printenv {{ .Values.foo.bar }} - name: basic2 type: Bash configuration: runtime: type: image inputSteps: - name: basic1 execution: onExecute: - printenv {{ .Values.foo.baz }} - name: basic3 type: Bash configuration: runtime: type: image inputSteps: - name: basic2 execution: onExecute: - printenv {{ .Values.foo.zoo }} |
values.yml.example: Use this file as a sample to create the
values.yml
file.
artifactoryIntegration: myArtifactoryIntegration GitRepo: name: myGitRepo gitProvider: myGitIntegration path: myorg/myrepo branches: include: master foo: name: bar Image: name: myDockerImage sourceRepository: mySourceRepo Pipeline: name: myDockerPipeline DockerBuild: name: myDockerBuild dockerFileName: Dockerfile dockerImageName: <image name> DockerPush: targetRepository: docker-local Bash: name: myBashStep |
The pipeline templateDefinition.yml
supports these helm chart style functions:
trim
, wrap
, randAlpha
, plural
, and others.splitList
, sortAlpha
, and others.add
, max
, mul
, and others.until
, untilStep
addf
, maxf
, mulf
, and others.now
, date
, and others.default
, empty
, coalesce
, fromJson
, toJson
, toPrettyJson
, toRawJson
, ternary
b64enc
, b64dec
, and others.list
, first
, uniq
, and others.get
, set
, dict
, hasKey
, pluck
, dig
, deepCopy
, and others.atoi
, int64
, toString
, and others.base
, dir
, ext
, clean
, isAbs
, osBase
, osDir
, osExt
, osClean
, osIsAbs
fail
uuidv4
semver
, semverCompare
typeOf
, kindIs
, typeIsLike
, and others.derivePassword
, sha256sum
, genPrivateKey
, and others.getHostByName
For more information about these functions, see and
.
The following functions are not supported:
|
Perform the following steps to add system templates:
Select the admin integration, add the repository name, and branch and click Create Source to create the template source.
The admin integration should have admin access to the template source repository. |
Pipelines adds all the templates from the template source and performs a sync, and the newly added or updated templates are available in Pipelines as the latest version. If there is an error during the sync, it fails.
These templates are also uploaded to Artifactory. |
The templates from the newly uploaded template source is now available for creating pipelines. For information about managing, retiring, and git-tagging and releasing templates, see Managing Pipelines Templates.
Perform the following steps to use a system template to create a pipeline source:
Go to Administration | Pipelines | Pipeline Sources, and click Add Pipeline Source, and From Template.
Click the Select Template Version field and select the relevant version for the template.
Click Next and complete the resulting Specify values file form to add the value.yml
file.
In the Values File Path field, provide the path to the values.yml file, which contains the values for the system template. By default, the field is set to take the file from the root directory.
For more information about the Specify values file form, see the section Adding a Pipeline Source in Administering Pipeline Sources. |
The combination of pipeline template name, namespace, version and values.yml
is parsed to create the pipeline definition.
After your Pipeline Source syncs successfully, you can view the newly added pipeline by navigating to the My Pipelines on the left navbar and clicking on Pipelines → My Pipelines.