Concourse Manifest


I was wondering if we have concept called concourse manifest ?. Below is the example which mainly the manifest file should contain.

Name: test # name of the pipline
Vars: {gitrepo}/test/concourse.vars #variables
Config: {gitrepo}/test/pcf-pipeline-tasks-externals/test-pipeline.yml # configure file
Envs: dev qa prod # Env’s


Nothing like that currently exists as far as I’m aware.

What would you use a file like this for?

I have requirement where all my individual pipelines needs to be set_pipeline if there is any change in the git. This should be dynamic though. my agenda is to create one additional file inside the individual pipelines with all the attributes that i mentioned above and call them via other pipeline.

So you want to ensure your pipelines are set automatically whenever a change is made to the git repo containing the pipeline config and tasks?

I’ve had success implementing this by making the pipelines set themselves in a job at the start of the pipeline that triggers off of changes to a git resource. This is extra easy with Concourse v5.8.0 because of the new set_pipeline step.

Something like

- name: pipeline-repo
  type: git
    private_key: ((git-private-key.private_key))
    branch: master

- name: set-pipeline
  serial: true
  - get: pipeline-repo
    trigger: true
  - set_pipeline: ((pipeline))
    file: pipeline-repo/ci/pipeline.yml
    - pipeline-repo/vars/((pipeline)).yml

This way all the config for the pipeline remains in git and there’s no need for an additional manifest-style file.

Thank you for response. Our idea is i have written a bash script and created pipeline called (Boss-pipeline) where it sets all my other pipeline’s when there is change in other pipelines. But I am struck with target (i have three targets like test,dev,prod) how do i pass the target dynamically ? So that my Boss-pipeline will know about it.


If you’re referring to the target in fly -t $target ... then that label only exists on your machine. In order to set pipelines on different Concourses or different teams within a Concourse you will need to log in multiple times in the task where you do the pipeline setting.

Its also worth noting that the set_pipeline step can only set pipelines on the Concourse and team that the pipeline calling it is on.