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
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
platform is typically one of
darwin, but this is just convention; if you have some esoteric platform
super-nintendo the same
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
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
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.