concourse / concourse

Concourse is a container-based continuous thing-doer written in Go.
https://concourse-ci.org
Apache License 2.0
7.35k stars 846 forks source link

Commit to "global resources" #4870

Open vito opened 4 years ago

vito commented 4 years ago

In order to fully switch to "global resources" (currently opt-in) we need to figure out what to do about resources which can't share version history.

The time resource shouldn't share history because if it does then all jobs will fire across the cluster on the same configured interval.

Community resources that use things like EC2 IAM roles to acquire credentials shouldn't share history because the configuration alone isn't enough to verify access to it (because it doesn't contain credentials). This would be a security leak.

We currently allow resources to configure unique_version_history - either as a property of the core type or as a configuration param in resource_types:. We could perhaps switch to "global resources" by default and just ask resource type authors update their READMEs when necessary, but we don't want to have to support unique_version_history forever.

Prerequisites:

vito commented 4 years ago

We also can't do this until we have a way for the time resource to not trigger every single 1m interval at once. So that's blocked on something like 'trigger resources' (https://github.com/concourse/rfcs/pull/27) which don't collect a common history.

Edit: actually, nevermind, we're not blocked on this because the time resource can opt out of version history sharing, but if we want to completely eliminate the notion of 'resource scopes' then we need to do trigger-only resources.