Joseph Schorr
3c2e050593
Support pulling of schema2 manifests directly via a manifest list tag
...
This change ensures that if a manifest list is requested with an accepts header for a *schema 2* manifest, the legacy manifest (if any) is returned as schema 2 if it was pushed as a schema 2 manifest (rather than being auto-converted to schema 1)
2018-12-07 11:57:13 -05:00
Joseph Schorr
c3710a6a5e
Add ability for specific geographic regions to be blocked from pulling images within a namespace
2018-12-06 17:14:45 -05:00
Joseph Schorr
d59bea3569
Enable a configurable whitelist of namespaces for V22
...
If a namespace is present in the whitelist, all calls are sent to the OCI model instead of the Pre OCI model
Note that this does increase overhead for registry calls (since we need to lookup the namespace for every single call), but it should only be temporary until we've migrated all users over to the OCI data model
2018-12-03 17:37:28 -05:00
Joseph Schorr
492934de3c
Remove redundant call
2018-11-27 18:44:34 +02:00
Joseph Schorr
4e1ff90cb2
Unify the get_layers calls across all implements of manifest schemas to ensure we have a common type returned
...
Also renames some methods to make it more clear what kind of information they return
2018-11-26 17:58:48 +02:00
Joseph Schorr
180d8847db
Fix image replication for images with remote layers
2018-11-26 16:15:48 +02:00
Joseph Schorr
adccdd30ca
Read blobs from new manifest blob table where relevant
2018-11-25 17:31:09 +02:00
Joseph Schorr
4985040d31
Properly handle the empty layer when pushing schema 2 manifests
...
Docker doesn't send us the contents of this layer, so we are forced to synthesize it ourselves
2018-11-25 16:16:59 +02:00
Joseph Schorr
ffd567e2c2
Rename accessed items in the data model
2018-11-21 18:06:16 +02:00
Joseph Schorr
1f03fdb27e
Fix pulling of squashed versions of the legacy image in a manifest lists
2018-11-20 16:37:15 +02:00
Joseph Schorr
001768c043
Make security status for manifests without legacy images more clear in the UI
2018-11-20 16:37:15 +02:00
Joseph Schorr
e972e4088b
Fix lookup of manifests referenced solely by a manifest list
...
We need to ensure we can find them if there is an active tag pointing to the parent list
2018-11-19 23:31:41 +02:00
Joseph Schorr
54904cfd6e
Fix bug around pushing manifest lists that refer to the same manifest twice as children
2018-11-19 18:26:22 +02:00
Joseph Schorr
e6c2ddfa93
Add support for direct pushing of schema 2 manifests without tags
...
This is required for manifest lists
2018-11-19 14:01:41 +02:00
Joseph Schorr
8a3427e55a
Change registry data model to use a content retriever where applicable
2018-11-19 14:01:41 +02:00
Joseph Schorr
82ee21bfbd
Change OCI data model to use a content retriever for the various manifest operations
2018-11-19 12:24:04 +02:00
Joseph Schorr
1eaf5b18dd
Adjustments based on code review feedback
2018-11-15 13:51:48 +02:00
Joseph Schorr
c46b11bac1
Implement UI support for manifest lists
2018-11-14 18:40:57 +02:00
Joseph Schorr
276d0d571d
Fix support for pulling manifest lists via Docker V1 protocol where applicable
2018-11-14 14:05:06 +02:00
Joseph Schorr
37b20010aa
Add support for pushing and pulling schema 2 manifests with remote layers
...
This is required for windows image support
2018-11-14 13:21:50 +02:00
Joseph Schorr
d97055e2ba
Code review fixes
2018-11-14 09:15:58 +02:00
Joseph Schorr
7a794e29c0
Add tests for manifest lists and fix some issues encountered while testing
2018-11-13 21:03:20 +02:00
Joseph Schorr
9994f0ae61
Disable GC for repositories with manifest lists
...
This is a temporary measure so we can roll V2_2 out for internal customer testing without having to worry about GC interacting oddly with it
2018-11-13 21:03:20 +02:00
Joseph Schorr
7b9f56eff3
Fixes to ensuring existing code can process schema 2 manifests
2018-11-13 17:13:51 +02:00
Joseph Schorr
9474fb7833
Fix bug with json.dumps
changing the order of keys
...
We write the literal received JSON string into the image data, to ensure the checksums computed will always match
2018-11-13 16:50:13 +02:00
Joseph Schorr
849e613386
Implement support for schema 2 manifests
2018-11-13 11:49:12 +02:00
Joseph Schorr
d77d383e46
Add schema2 media types
2018-11-13 09:24:04 +02:00
Joseph Schorr
30f072aeff
Add support for creating schema 2 manifests and manifest lists via the OCI model
2018-11-12 23:27:49 +02:00
Joseph Schorr
6b86b87a16
Merge pull request #3290 from quay/joseph.schorr/QUAY-1124/implement-new-data-model
...
Implement the new OCI-based registry data model
2018-11-08 13:39:29 -05:00
Joseph Schorr
fdcb8bad23
Implement the new OCI-based registry data model
...
Note that this change does *not* enable the new data model by default, but does allow it to be used when a special environment variable is specified.
2018-11-07 22:07:58 -05:00
Joseph Schorr
3e63b08731
Merge pull request #3288 from quay/faster-gc
...
Change garbage collection queries to be far smaller by GCing per tag and per image
2018-11-07 14:35:38 -05:00
Joseph Schorr
5124422332
Change garbage collection queries to be far smaller by GCing per tag and per image
...
While this will require far more iterations and queries, each query itself will be quite small, thus preventing us from locking up the database
2018-11-07 00:50:34 -05:00
Joseph Schorr
5b089653d1
Add an extra check in garbage collection to ensure we don't delete manifests referenced by other new-style tags
2018-11-02 15:56:18 -04:00
Joseph Schorr
4779e05f55
Fix NPE in changing the expiration of a tag
2018-11-02 14:54:13 -04:00
Joseph Schorr
0c83e1272b
Switch Tag name field back to ASCII
...
Because we run MySQL 5.6 in production, making this field a utf-8 went outside the 767 byte max size for indexes on the `tag_repository_id_name_lifetime_end_ms` index.
2018-11-02 14:35:39 -04:00
Joseph Schorr
e8ed43b46f
Fix name of reversion field in new Tag table and add a test
2018-11-01 17:59:10 -04:00
Joseph Schorr
114e2c3bf2
Have all tag code add, modify and delete both old and new style tags
...
This preps us for being able to use the new data model with existing repositories
2018-11-01 17:59:10 -04:00
Joseph Schorr
36db133b86
Pull out common shared code in the data model interface
2018-11-01 17:59:10 -04:00
Joseph Schorr
c0653ef2ad
Add Tag, TagKind and ManifestChild tables in prep for new data model
2018-11-01 17:59:09 -04:00
Joseph Schorr
053d918d67
Rename pre oci model tests in preparation for the new model (the tests will be applicable to both models)
2018-11-01 17:59:09 -04:00
Joseph Schorr
366bddd20a
Fix NPE bug in torrentinfo set call
...
Fixes https://sentry.io/coreos/backend-production/issues/747494304
2018-10-30 16:47:59 -04:00
Joseph Schorr
88f19ee0b9
Make blob upload errors more specific
2018-10-29 12:21:18 -04:00
Joseph Schorr
4a7b4ad06a
Fix disabled namespace check
2018-10-18 14:25:40 -04:00
Joseph Schorr
cbf0edb164
Address remaining usage of the old data interface
2018-10-18 14:25:40 -04:00
Joseph Schorr
e91ba98e1b
Convert V2's tag endpoints to use the new data model interface
2018-10-18 14:25:40 -04:00
Joseph Schorr
6b5064aba4
Convert V2's manifest endpoints to use the new data model interface
2018-10-18 14:25:40 -04:00
Joseph Schorr
a172de4fdc
Reimplement cache support for blobs in the registry data model
2018-10-18 14:25:40 -04:00
Joseph Schorr
7a68c41f1c
Convert V2 to use the blob uploader interface
2018-10-18 14:25:40 -04:00
Joseph Schorr
0ae062be62
Add manifest creation to new registry data model interface
2018-10-18 14:25:39 -04:00
Joseph Schorr
818ed32f87
Add function in data interface for mounting blobs into other repositories
2018-10-18 14:25:39 -04:00