Versions in this module Expand all Collapse all v6 v6.4.2 Aug 17, 2020 Changes in this version + const GetResourceLockInterval + var ErrBaseResourceTypeNotFound = errors.New("base resource type not found") + var ErrFailedAcquirePoolLock = errors.New("failed to acquire pool lock") + var ErrFailedToGetLock = errors.New("failed to get lock") + var ErrMissingVolume = errors.New("volume mounted to container is missing") + var ErrNoWorkers = errors.New("no workers") + var GardenLimitDefault = uint64(0) + var ResourceConfigCheckSessionExpiredError = errors.New("no db container was found for owner") + func NewClient(pool Pool, provider WorkerProvider, compression compression.Compression, ...) *client + type ArtifactDestination interface + StreamIn func(context.Context, string, baggageclaim.Encoding, io.Reader) error + type ArtifactSource interface + ExistsOn func(lager.Logger, Worker) (Volume, bool, error) + func NewCacheArtifactSource(artifact runtime.CacheArtifact) ArtifactSource + type BindMountSource interface + VolumeOn func(Worker) (garden.BindMount, bool, error) + type CertsVolumeMount struct + Logger lager.Logger + func (s *CertsVolumeMount) VolumeOn(worker Worker) (garden.BindMount, bool, error) + type CheckResult struct + Versions []atc.Version + type Client interface + CreateVolume func(logger lager.Logger, vSpec VolumeSpec, wSpec WorkerSpec, ...) (Volume, error) + FindContainer func(logger lager.Logger, teamID int, handle string) (Container, bool, error) + FindVolume func(logger lager.Logger, teamID int, handle string) (Volume, bool, error) + RunCheckStep func(ctx context.Context, logger lager.Logger, owner db.ContainerOwner, ...) (CheckResult, error) + RunGetStep func(context.Context, lager.Logger, db.ContainerOwner, ContainerSpec, WorkerSpec, ...) (GetResult, error) + RunPutStep func(context.Context, lager.Logger, db.ContainerOwner, ContainerSpec, WorkerSpec, ...) (PutResult, error) + RunTaskStep func(context.Context, lager.Logger, db.ContainerOwner, ContainerSpec, WorkerSpec, ...) (TaskResult, error) + StreamFileFromArtifact func(ctx context.Context, logger lager.Logger, artifact runtime.Artifact, ...) (io.ReadCloser, error) + type Container interface + Destroy func() error + UpdateLastHijack func() error + VolumeMounts func() []VolumeMount + WorkerName func() string + type ContainerLimits struct + CPU *uint64 + Memory *uint64 + func (cl ContainerLimits) ToGardenLimits() garden.Limits + type ContainerPlacementStrategy interface + Choose func(lager.Logger, []Worker, ContainerSpec) (Worker, error) + ModifiesActiveTasks func() bool + func NewFewestBuildContainersPlacementStrategy() ContainerPlacementStrategy + func NewLimitActiveTasksPlacementStrategy(maxTasks int) ContainerPlacementStrategy + func NewRandomPlacementStrategy() ContainerPlacementStrategy + func NewVolumeLocalityPlacementStrategy() ContainerPlacementStrategy + type ContainerSpec struct + ArtifactByPath map[string]runtime.Artifact + BindMounts []BindMountSource + Dir string + Env []string + ImageSpec ImageSpec + Inputs []InputSource + Limits ContainerLimits + Outputs OutputPaths + Platform string + Tags []string + TeamID int + Type db.ContainerType + User string + func (cs *ContainerSpec) Get(key string) string + func (cs *ContainerSpec) Set(key string, value string) + type ErrCreatedVolumeNotFound struct + Handle string + WorkerName string + func (e ErrCreatedVolumeNotFound) Error() string + type FetchSource interface + Create func(context.Context) (GetResult, Volume, error) + Find func() (GetResult, Volume, bool, error) + type FetchSourceFactory interface + NewFetchSource func(logger lager.Logger, worker Worker, owner db.ContainerOwner, ...) FetchSource + func NewFetchSourceFactory(resourceCacheFactory db.ResourceCacheFactory) FetchSourceFactory + type FetchedImage struct + Metadata ImageMetadata + Privileged bool + URL string + Version atc.Version + type Fetcher interface + Fetch func(ctx context.Context, logger lager.Logger, ...) (GetResult, Volume, error) + func NewFetcher(clock clock.Clock, lockFactory lock.LockFactory, ...) Fetcher + type FewestBuildContainersPlacementStrategy struct + func (strategy *FewestBuildContainersPlacementStrategy) Choose(logger lager.Logger, workers []Worker, spec ContainerSpec) (Worker, error) + func (strategy *FewestBuildContainersPlacementStrategy) ModifiesActiveTasks() bool + type GetResult struct + ExitStatus int + GetArtifact runtime.GetArtifact + VersionResult runtime.VersionResult + type Image interface + FetchForContainer func(ctx context.Context, logger lager.Logger, container db.CreatingContainer) (FetchedImage, error) + type ImageFactory interface + GetImage func(logger lager.Logger, worker Worker, volumeClient VolumeClient, ...) (Image, error) + type ImageFetcherSpec struct + Delegate ImageFetchingDelegate + ResourceTypes atc.VersionedResourceTypes + type ImageFetchingDelegate interface + ImageVersionDetermined func(db.UsedResourceCache) error + RedactImageSource func(source atc.Source) (atc.Source, error) + Stderr func() io.Writer + Stdout func() io.Writer + type ImageMetadata struct + Env []string + User string + type ImageResource struct + Params atc.Params + Source atc.Source + Type string + Version atc.Version + type ImageSpec struct + ImageArtifact runtime.Artifact + ImageArtifactSource StreamableArtifactSource + ImageResource *ImageResource + ImageURL string + Privileged bool + ResourceType string + type InputSource interface + DestinationPath func() string + Source func() ArtifactSource + type LimitActiveTasksPlacementStrategy struct + func (strategy *LimitActiveTasksPlacementStrategy) Choose(logger lager.Logger, workers []Worker, spec ContainerSpec) (Worker, error) + func (strategy *LimitActiveTasksPlacementStrategy) ModifiesActiveTasks() bool + type NoCompatibleWorkersError struct + Spec WorkerSpec + func (err NoCompatibleWorkersError) Error() string + type NoopImageFetchingDelegate struct + func (NoopImageFetchingDelegate) ImageVersionDetermined(db.UsedResourceCache) error + func (NoopImageFetchingDelegate) RedactImageSource(source atc.Source) (atc.Source, error) + func (NoopImageFetchingDelegate) Stderr() io.Writer + func (NoopImageFetchingDelegate) Stdout() io.Writer + type OutputPaths map[string]string + type Pool interface + ContainerInWorker func(lager.Logger, db.ContainerOwner, WorkerSpec) (bool, error) + FindOrChooseWorker func(lager.Logger, WorkerSpec) (Worker, error) + FindOrChooseWorkerForContainer func(context.Context, lager.Logger, db.ContainerOwner, ContainerSpec, WorkerSpec, ...) (Worker, error) + func NewPool(provider WorkerProvider) Pool + type PutResult struct + ExitStatus int + VersionResult runtime.VersionResult + type RandomPlacementStrategy struct + func (strategy *RandomPlacementStrategy) Choose(logger lager.Logger, workers []Worker, spec ContainerSpec) (Worker, error) + func (strategy *RandomPlacementStrategy) ModifiesActiveTasks() bool + type StreamableArtifactSource interface + StreamFile func(context.Context, string) (io.ReadCloser, error) + StreamTo func(context.Context, ArtifactDestination) error + func NewStreamableArtifactSource(artifact runtime.Artifact, volume Volume, compression compression.Compression) StreamableArtifactSource + type TaskResult struct + ExitStatus int + VolumeMounts []VolumeMount + type Volume interface + COWStrategy func() baggageclaim.COWStrategy + CreateChildForContainer func(db.CreatingContainer, string) (db.CreatingVolume, error) + Destroy func() error + GetResourceCacheID func() int + Handle func() string + InitializeArtifact func(name string, buildID int) (db.WorkerArtifact, error) + InitializeResourceCache func(db.UsedResourceCache) error + InitializeTaskCache func(logger lager.Logger, jobID int, stepName string, path string, privileged bool) error + Path func() string + Properties func() (baggageclaim.VolumeProperties, error) + SetPrivileged func(bool) error + SetProperty func(key string, value string) error + StreamIn func(ctx context.Context, path string, encoding baggageclaim.Encoding, ...) error + StreamOut func(ctx context.Context, path string, encoding baggageclaim.Encoding) (io.ReadCloser, error) + WorkerName func() string + func NewVolume(bcVolume baggageclaim.Volume, dbVolume db.CreatedVolume, ...) Volume + type VolumeClient interface + CreateVolume func(lager.Logger, VolumeSpec, int, string, db.VolumeType) (Volume, error) + CreateVolumeForTaskCache func(logger lager.Logger, volumeSpec VolumeSpec, teamID int, jobID int, ...) (Volume, error) + FindOrCreateCOWVolumeForContainer func(lager.Logger, VolumeSpec, db.CreatingContainer, Volume, int, string) (Volume, error) + FindOrCreateVolumeForBaseResourceType func(lager.Logger, VolumeSpec, int, string) (Volume, error) + FindOrCreateVolumeForContainer func(lager.Logger, VolumeSpec, db.CreatingContainer, int, string) (Volume, error) + FindOrCreateVolumeForResourceCerts func(logger lager.Logger) (volume Volume, found bool, err error) + FindVolumeForResourceCache func(lager.Logger, db.UsedResourceCache) (Volume, bool, error) + FindVolumeForTaskCache func(logger lager.Logger, teamID int, jobID int, stepName string, path string) (Volume, bool, error) + LookupVolume func(lager.Logger, string) (Volume, bool, error) + func NewVolumeClient(baggageclaimClient baggageclaim.Client, dbWorker db.Worker, clock clock.Clock, ...) VolumeClient + type VolumeLocalityPlacementStrategy struct + func (strategy *VolumeLocalityPlacementStrategy) Choose(logger lager.Logger, workers []Worker, spec ContainerSpec) (Worker, error) + func (strategy *VolumeLocalityPlacementStrategy) ModifiesActiveTasks() bool + type VolumeMount struct + MountPath string + Volume Volume + type VolumeProperties map[string]string + type VolumeSpec struct + Privileged bool + Properties VolumeProperties + Strategy baggageclaim.Strategy + TTL time.Duration + type Worker interface + ActiveTasks func() (int, error) + BuildContainers func() int + CertsVolume func(lager.Logger) (volume Volume, found bool, err error) + CreateVolume func(logger lager.Logger, spec VolumeSpec, teamID int, volumeType db.VolumeType) (Volume, error) + DecreaseActiveTasks func() error + Description func() string + Ephemeral func() bool + Fetch func(context.Context, lager.Logger, db.ContainerMetadata, Worker, ContainerSpec, ...) (GetResult, Volume, error) + FindContainerByHandle func(lager.Logger, int, string) (Container, bool, error) + FindOrCreateContainer func(context.Context, lager.Logger, ImageFetchingDelegate, db.ContainerOwner, ...) (Container, error) + FindResourceCacheForVolume func(volume Volume) (db.UsedResourceCache, bool, error) + FindVolumeForResourceCache func(logger lager.Logger, resourceCache db.UsedResourceCache) (Volume, bool, error) + FindVolumeForTaskCache func(lager.Logger, int, int, string, string) (Volume, bool, error) + GardenClient func() gclient.Client + IncreaseActiveTasks func() error + IsOwnedByTeam func() bool + IsVersionCompatible func(lager.Logger, version.Version) bool + LookupVolume func(lager.Logger, string) (Volume, bool, error) + Name func() string + ResourceTypes func() []atc.WorkerResourceType + Satisfies func(lager.Logger, WorkerSpec) bool + Tags func() atc.Tags + Uptime func() time.Duration + func NewGardenWorker(gardenClient gclient.Client, volumeRepository db.VolumeRepository, ...) Worker + type WorkerProvider interface + FindWorkerForContainer func(logger lager.Logger, teamID int, handle string) (Worker, bool, error) + FindWorkerForVolume func(logger lager.Logger, teamID int, handle string) (Worker, bool, error) + FindWorkersForContainerByOwner func(logger lager.Logger, owner db.ContainerOwner) ([]Worker, error) + NewGardenWorker func(logger lager.Logger, savedWorker db.Worker, numBuildWorkers int) Worker + RunningWorkers func(lager.Logger) ([]Worker, error) + func NewDBWorkerProvider(lockFactory lock.LockFactory, retryBackOffFactory retryhttp.BackOffFactory, ...) WorkerProvider + type WorkerSpec struct + Platform string + ResourceType string + ResourceTypes atc.VersionedResourceTypes + Tags []string + TeamID int + func (spec WorkerSpec) Description() string