forked from concourse/baggageclaim
-
Notifications
You must be signed in to change notification settings - Fork 0
/
doc.go
35 lines (27 loc) · 1.54 KB
/
doc.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
/*
Package baggageclaim is the interface for communicating with a BaggageClaim
volume server.
BaggageClaim is an auxilary service that can be collocated with various
container servers (Garden, Docker, etc.) to let them share directories.
BaggageClaim provides a number of benefits over regular bind mounts:
By bringing everything into a the same Volume model we can compose different
technologies together. For example, a Docker image is a stack of layered
volumes which can have a Concourse build cache layered on top of them.
Volumes can be Copy-on-Write (COW) copies of other volumes. This lets us
download a Docker image once and then let it be used by untrusted jobs without
fear that they'll mutate it in some unexpected way. This same COW strategy can
be applied to any volume that BaggageClaim supports.
BaggageClaim volumes go through a three stage lifecycle of being born,
existing, and then dying. This state model is required as creating large
amounts of data can potentially take a long time to materialize. You are only
able to interact with volumes that are in the middle state.
Volumes are given a TTL which means that BaggageClaim can reclaim the disk
space used by the volumes over the life of the service. Parent-child
relationships between volumes are understood and will prevent a parent being
deleted while a child is still active.
The standard way to construct a client is:
import "github.com/concourse/baggageclaim/client"
bcClient := client.New("http://baggageclaim.example.com:7788")
bcClient.CreateVolume(...)
*/
package baggageclaim