containerd/metadata
Eric Lin 4247f2684d metadata: define content sharing policy
This changeset modifies the metadata store to allow one to set a
"content sharing policy" that defines how blobs are shared between
namespaces in the content store.

The default mode "shared" will make blobs available in all namespaces
once it is pulled into any namespace.  The blob will be pulled into
the namespace if a writer is opened with the "Expected" digest that
is already present in the backend.

The alternative mode, "isolated" requires that clients prove they have
access to the content by providing all of the content to the ingest
before the blob is added to the namespace.

Both modes share backing data, while "shared" will reduce total
bandwidth across namespaces, at the cost of allowing access to any
blob just by knowing its digest.

Note: Most functional codes and changelog of this commit originate from
Stephen J Day <stephen.day@docker.com>, see
40455aade8

Fixes #1713 Fixes #2865

Signed-off-by: Eric Lin <linxiulei@gmail.com>
2018-12-21 15:02:21 +08:00
..
boltutil boltdb/bolt --> go.etcd.io/bbolt 2018-09-12 15:23:57 -07:00
adaptors.go Support lease filters 2018-07-18 10:43:37 -07:00
bolt.go boltdb/bolt --> go.etcd.io/bbolt 2018-09-12 15:23:57 -07:00
buckets.go Merge pull request #2642 from dmcgowan/fix-commit-already-exists 2018-09-14 09:09:22 -04:00
containers_test.go boltdb/bolt --> go.etcd.io/bbolt 2018-09-12 15:23:57 -07:00
containers.go Eliminate misuses of errors.Wrapf 2018-11-29 14:26:53 -08:00
content_test.go metadata: define content sharing policy 2018-12-21 15:02:21 +08:00
content.go metadata: define content sharing policy 2018-12-21 15:02:21 +08:00
db_test.go Adds a no-op migration for metadata v3 2018-09-12 15:33:42 -07:00
db.go metadata: define content sharing policy 2018-12-21 15:02:21 +08:00
gc_test.go boltdb/bolt --> go.etcd.io/bbolt 2018-09-12 15:23:57 -07:00
gc.go boltdb/bolt --> go.etcd.io/bbolt 2018-09-12 15:23:57 -07:00
images_test.go Licence header added 2018-02-19 10:32:26 +09:00
images.go Eliminate misuses of errors.Wrapf 2018-11-29 14:26:53 -08:00
leases_test.go boltdb/bolt --> go.etcd.io/bbolt 2018-09-12 15:23:57 -07:00
leases.go Eliminate misuses of errors.Wrapf 2018-11-29 14:26:53 -08:00
migrations.go Adds a no-op migration for metadata v3 2018-09-12 15:33:42 -07:00
namespaces.go boltdb/bolt --> go.etcd.io/bbolt 2018-09-12 15:23:57 -07:00
snapshot_test.go boltdb/bolt --> go.etcd.io/bbolt 2018-09-12 15:23:57 -07:00
snapshot.go boltdb/bolt --> go.etcd.io/bbolt 2018-09-12 15:23:57 -07:00