Worker Pools

This topic isn't crucial to understanding Concourse; if you're just getting started and have finished the Installing section, you may want to first move on to Using Concourse.

The ATC does all of its scheduling using the pool of workers registered with it. There is no way to configure the workers through the ATC itself; instead, each worker continuously heartbeats its presence to the ATC, along with basic statistics like how many containers it's running. To learn more about how this works, see Registering via the TSA.

Each worker has a platform and an optional set of tags, both of which determine the workloads that the ATC can run on the worker. A Task that configures its platform as linux can only run on workers advertising the same platform. Similarly, a step in a build plan that configures tags can only run on workers matching a superset of those tags.

A worker's platform is typically one of linux, windows, or darwin, but this is just convention; if you have some esoteric platform like solaris or windows-16bit or super-nintendo the same rules apply.

A worker's tags are entirely up to you: you would configure them if you know that the worker meets some special requirement, such as living within a particular network or having particular hardware capabilities. If a worker specifies tags, it is taken out of the "default" placement pool, and steps only run on the worker if they explicitly specify a common subset of the worker's tags, by setting tags.

Each worker also advertises which resource types it supports natively. This is just a mapping from resource type (e.g. git) to the location of the resource's image on the worker (e.g. /opt/resources/git). You likely won't have to configure this yourself as all official Concourse distributions have a default set of core resource types that they'll automatically advertise, and the rest should really be configured in your pipeline via resource_types rather than being added to your workers.

  1. The /api/v1/workers API
  2. Registering via the TSA
    1. Standalone binary workers
    2. BOSH deployed workers