Create a pipeline template
Define a reusable pipeline template in V1 pipelines, including inputs, and reference it from any pipeline.
A pipeline template defines a complete, reusable pipeline. Use it to standardize an entire pipeline structure across teams — for example, a canonical build-and-deploy pipeline, a security-scan pipeline, or a release pipeline — so every team starts from the same baseline and updates flow through everywhere the template is used.
Before you begin
V1 pipeline access: A project with V1 pipelines enabled. Go to the V1 pipelines overview to enable V1 in your project.
Secrets and connectors: Any secrets the template references and a connector for each container image used by its steps. Go to the secrets reference and the connectors reference to configure them.
Permissions: Create and Edit on Templates. Go to the RBAC in Harness to configure roles.
Author the pipeline template
Define the template under the top-level template key with a pipeline block. The body of pipeline matches what you would write inside a regular V1 pipeline — stages, steps, and any other pipeline-level configuration.
template:
pipeline:
stages:
- name: stage_6e4d
id: stage_6e4d
steps:
- name: run
id: run
run:
script: echo 1To make the template flexible at runtime, declare inputs under template.inputs and reference them inside the pipeline body with <+inputs.<name>>.
Create the template in Harness
In your project, go to Resources and select Templates.
Select New Template. The Select Template Type dialog opens. Select Pipeline Template.
The Create template dialog opens. Fill in the following fields:
Name — a human-readable label for the template (for example,
pipeline-test).Version label — the version string consumers reference in
uses(for example,v1).Storage — where the template is stored. Select Inline to store it in Harness. To store it in a Git provider, select Harness Code, GitHub, GitLab, Bitbucket, Azure Repos, or Git and connect the relevant repository.
Optionally expand Metadata to add a description and tags.
Select Start. The template YAML editor opens.
Paste or author your pipeline template YAML in the editor, then save.
Store the template
Choose where the template is versioned.
Harness-managed: Save the template in the Harness platform. Versions are created and promoted in Harness.
Git-stored: Commit the template to a Git repository. The Git tag, branch, or commit determines the resolved version.
Go to the V1 Template Library overview to compare storage modes.
Reference the template from a pipeline
Reference a pipeline template by replacing the pipeline's stages with a top-level template block. Set uses to <scope>.<name>@<version> and supply input values under with.
Because the template defines the entire pipeline body, a pipeline that references a pipeline template has no inline stages. All stages come from the template.
Pass input values through with when the template declares inputs.
If you omit the version suffix, the pipeline resolves to the latest stable version at execution time.
Next steps
A pipeline template standardizes a complete pipeline. When you only need to share part of a pipeline, use a smaller template type instead. Go to the stage template guide to share a complete stage. Go to the step template guide to share a single step. Go to the step group template guide to share an ordered set of steps.
Last updated
Was this helpful?