TIL about Concourse fly targets permalink
At work we use Concourse CI for continuous integration and delivery.
It encourages interacting with it via the
fly commandline interface (CLI).
It also requires everyone to log in to it, and be a part of a team, to do a form of role based access control (RBAC).
Today, I lost about 30 minutes trying to figure out why my new pipelines weren’t being deployed to the correct team in Concourse.
It was because I had set up my
fly target incorrectly.
A target is essentially a separate
When you log in to the
fly CLI, you specify
- A target name underwhich to store the session creds
- The Concourse CI server URL at which to log in
- An optional team name to log in as
If you don’t specify the optional team name, it will use the default.
In my case, our default team is
Then, whenever you try to deploy your pipeline like so:
fly -t $target_name set-pipeline --pipeline my-awesome-pipeline --config my-awesome-pipeline.yml
The pipeline is deployed to the team space in Concourse for the team specified by your target.
You can view all your configured targets using the
fly targets command:
λ › fly targets name url team expiry rgmt https://concourse.test.robgmills.com test Sat, 25 Apr 2020 00:25:24 UTC rgm https://concourse.live.robmills.com.com admin Sat, 25 Apr 2020 00:25:24 UTC
You can delete and edit targets:
λ › fly -t rgmt delete-target deleted target: rgmt λ › fly -t rgm edit-target --team-name live --target-name rgm-live --concourse-url https://concourse.live.robgmills.com Updated target: rgm
I needed to learn this so I could deploy a new pipeline at work. In the process, I killed two birds with one stone: added a CD pipeline that terraformed our Auth0<>SumoLogic integration and user acceptance tested one of the new CI/CD features my team built.