Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Trigger Resources: Per-job triggers #5698

Open
matthewpereira opened this issue Jun 1, 2020 · 0 comments
Open

Trigger Resources: Per-job triggers #5698

matthewpereira opened this issue Jun 1, 2020 · 0 comments
Labels
product epic These meta-issues link multiple engineering issues together and contextualize initiatives. sred

Comments

@matthewpereira
Copy link

matthewpereira commented Jun 1, 2020

TLDR

Trigger resources allow jobs to specify parameters that can trigger new builds but don't have anything to fetch - they just propagate config fragments to the build.

Problem

  • Currently, Concourse only allows for one time interval configured in a pipeline, as opposed to letting everything fire on its own interval. This can cause thundering herd problems, especially for those utilizing Concourse at large scale.

Proposed Solution

  • Introduce two new step types - load_var and get_varalong with a new mechanism for builds to use a 'local var source' at runtime.
  • The load_var step can be used top read a value from a file at runtime and use it as a local var in subsequent steps
  • The get_var step can be used to fetch a var from a var source and trigger a new build when its value changes

Outcomes

  • Improve today's usage of the time resource by having per-job trigger semantics rather than having all jobs downstream of one time resource leading to a thundering herd of builds hitting workers all at once.
  • Resource (proto)type authors will no longer have to implement *_file forms of any of their parameters
  • The get_var step introduces more flexible way to trigger and parameterize jobs without having to use a resource
  • Allow the team to un-feature-flag Equivalent resources defined across pipelines and teams should only correspond to a single version history #2386 , tying equivalent resources defined across pipelines and teams to a single version history. This would reduce wasted space in the DB and redundant resource checking, which is an increasingly large win for teams of increasingly large scale.

Current Status

  • Engineering implementation to be prioritized in Q3

References

See RFC
See RFC Discussion

@matthewpereira matthewpereira created this issue from a note in 2020 Quarterly Roadmap (Q4 - October to December) Jun 1, 2020
@matthewpereira matthewpereira added epic product epic These meta-issues link multiple engineering issues together and contextualize initiatives. and removed epic labels Jun 3, 2020
@scottietremendous scottietremendous moved this from Q4 - October to December to Q1 - January to March in 2020 Quarterly Roadmap Sep 2, 2020
@scottietremendous scottietremendous moved this from Q1 - January to March to Q4 - October to December in 2020 Quarterly Roadmap Oct 13, 2020
@scottietremendous scottietremendous moved this from Q4 - October to December to Q1 - January to March in 2020 Quarterly Roadmap Nov 16, 2020
@scottietremendous scottietremendous added this to Q3 - July to September in 2021 Quarterly Roadmap Feb 23, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
product epic These meta-issues link multiple engineering issues together and contextualize initiatives. sred
Projects
2020 Quarterly Roadmap
Q1 - January to March
2021 Quarterly Roadmap
Q3 - July to September
Development

No branches or pull requests

2 participants