Commit Graph

4700 Commits (e0281dc609a025383e9bd6505dc69f07e7bae4d9)

Author SHA1 Message Date
Olivier Gambier 9fd57ab42b Test drone 2014-11-13 13:58:52 -08:00
Olivier Gambier 378256de47 Merge pull request #690 from BrianBland/storagedriver-process-management
Adds logic for tracking ipc storage driver process status
2014-11-13 11:24:46 -08:00
Tibor Vass f0920e61bf registry: parse INDEXSERVERADDRESS into a URL for easier check in isSecure
Signed-off-by: Tibor Vass <teabee89@gmail.com>
2014-11-13 07:02:24 -08:00
Olivier Gambier d1bcfd6a08 Merge pull request #721 from stevvooe/disambiguate-url-routes
Disambiguate routing for multi-level repository names
2014-11-12 21:01:49 -08:00
Olivier Gambier a32680eb53 Merge pull request #722 from BrianBland/vet-fix
Miscellaneous go vet fixes
2014-11-12 21:01:38 -08:00
Tibor Vass cca910e878 Put mock registry address in insecureRegistries for unit tests
Signed-off-by: Tibor Vass <teabee89@gmail.com>
2014-11-12 20:34:03 -06:00
Tibor Vass 80255ff224 registry: refactor registry.IsSecure calls into registry.NewEndpoint
Signed-off-by: Tibor Vass <teabee89@gmail.com>
2014-11-12 20:34:03 -06:00
Stephen J Day 15c651b732 Simplify repository name component regexp 2014-11-12 18:06:54 -08:00
Olivier Gambier 6a0c888af7 Merge pull request #713 from BrianBland/ng-client
Adds a low level registry http client interface and implementation
2014-11-12 17:27:28 -08:00
Brian Bland c8ea224f9c Miscellaneous go vet fixes
Fixes some format strings and uses keyed fields for struct construction
2014-11-12 17:19:19 -08:00
Stephen J Day 145c89bb94 Disambiguate routing for multi-level repository names
To be able to support multi-level repository names, the API has been adjusted
to disabiguate routes tagged image manifest routes and tag list routes. With
this effort, the regular expressions have been defined in a single place to
reduce repitition and ensure that validation is consistent across the registry.

The router was also refactored to remove the use of subrouters, simplifying the
route definition code. This also reduces the number of regular expression match
checks during the routing process.
2014-11-12 17:07:44 -08:00
Stephen J Day 375f3cc136 Define common regexps used across registry application
This commit adds regular expression definitions for several string identifiers
used througout the registry. The repository name regex supports up to five path
path components and restricts repeated periods, dashes and underscores. The tag
regex simply validates the length of the tag and that printable characters are
required.

Though we define a new package common, these definition should land in docker
core.
2014-11-12 16:53:55 -08:00
Brian Bland b25e16a56c Adds Raw bytes field to ImageManifest
This can be used for proper json signature validation
2014-11-12 15:26:35 -08:00
Erik Hollensbe 524aa8b1a6 registry: always treat 127.0.0.1 as insecure for all cases anytime anywhere
Docker-DCO-1.1-Signed-off-by: Erik Hollensbe <github@hollensbe.org> (github: erikh)
2014-11-12 12:14:43 -08:00
Johan Euphrosine 8582d04393 registry: default --insecure-registry to localhost and 127.0.0.1
Signed-off-by: Johan Euphrosine <proppy@google.com>
2014-11-12 09:12:42 -08:00
Brian Bland 53bd19b98f Adds a low level registry http client interface and implementation 2014-11-11 17:43:39 -08:00
Brian Bland 31df62064d Adds logic for tracking ipc storage driver process status
This allows requests to not hang if the child process exits
2014-11-11 13:54:12 -08:00
Tibor Vass c00cd583e9 Merge pull request #9095 from proppy/is-secure-test
registry: add tests for IsSecure
2014-11-11 16:52:36 -05:00
Johan Euphrosine cd246befe2 registry: add tests for IsSecure
Signed-off-by: Johan Euphrosine <proppy@google.com>
2014-11-11 11:02:32 -08:00
Olivier Gambier d245a502b2 Merge pull request #712 from stevvooe/application-structure
Carve out initial application structure
2014-11-11 08:23:57 -08:00
Stephen J Day 22c9f45598 Carve out initial application structure
This changeset defines the application structure to be used for the http side
of the new registry. The main components are the App and Context structs. The
App context is instance global and manages global configuration and resources.
Context contains request-specific resources that may be created as a by-product
of an in-flight request.

To latently construct per-request handlers and leverage gorilla/mux, a dispatch
structure has been propped up next to the main handler flow. Without this, a
router and all handlers need to be constructed on every request. By
constructing handlers on each request, we ensure thread isolation and can
carefully control the security context of in-flight requests. There are unit
tests covering this functionality.
2014-11-10 19:03:49 -08:00
Stephen J Day 0618a2ebd7 Clearer names for layer upload routes 2014-11-10 18:26:06 -08:00
Olivier Gambier 7f75e6368d Merge pull request #711 from stevvooe/errors-marshaling
Initial implementation of API errors data structure
2014-11-10 16:54:12 -08:00
Stephen J Day da7eef2e04 Allow Errors to be an error itself
This has Errors implement the error interface, allowing it to pose as an error
itself. Use of this in the server may be minimal, for now, but it's useful for
passing around opaque client errors.

A method, PushErr, has also been add to allow arbitrary errors to be passed
into the Errors list. This keeps the errors list flexible, allowing the app to
collect and errors before we have codes properly mapped.
2014-11-10 16:02:45 -08:00
Stephen J Day af0411420a Initial implementation of API errors data structure 2014-11-10 15:29:30 -08:00
Stephen Day 364b11e876 Merge pull request #642 from docker/init
Initial open-design proposal
2014-11-10 10:47:17 -08:00
Olivier Gambier 2b7b8fa2ca Initial open-design proposal 2014-11-10 09:39:20 -08:00
Stephen Day 0e8647f1ce Merge pull request #701 from stevvooe/initial-api-routes
Initial V2 API Router Implementation
2014-11-07 17:09:27 -08:00
Stephen J Day fec2afc93f Initial V2 API Router Implementation
This commit includes the initial API router, based on gorilla mux and a test
suite ensuring the expected variables are extracted. Currently unexported, the
structure here will likely change as this definition will be shared with the
API client.
2014-11-07 16:08:14 -08:00
Olivier Gambier da205085f3 Merge pull request #686 from BrianBland/storagedriver-versioning
Adds versioning for out-of-process storage driver
2014-11-07 14:55:13 -08:00
Olivier Gambier 57ad37163e Merge pull request #699 from BrianBland/storagedriver-api-rename
Renames ResumeWritePosition to CurrentSize in storage driver api
2014-11-07 14:51:50 -08:00
Brian Bland cb1bdacbe3 Renames ResumeWritePosition to CurrentSize in storage driver api 2014-11-07 12:58:48 -08:00
Olivier Gambier abdf927c40 Merge pull request #685 from BrianBland/storagedriver
Expects storage driver executables to be of the form registry-storage-<name>
2014-11-07 01:28:43 -08:00
Brian Bland 150677f1f5 Expects storage driver executables to be of the form registry-storage-name
Moves main packages to sub-packages of the individual storage drivers
2014-11-06 18:32:06 -08:00
Olivier Gambier e31b7d8d9a Initial open-design proposal 2014-11-06 13:28:27 -08:00
Brian Bland 1ae5485998 Adds versioning for out-of-process storage driver
The registry currently only accepts storage driver versions with the
same major version and an equal or lower minor version as its own
current storage driver api version, but this may be changed in the
future if we decide to implement specific version cross-compatibility.
2014-11-06 12:16:14 -08:00
Olivier Gambier f02cfee950 Merge pull request #652 from BrianBland/configuration
NG: Configuration parser
2014-11-05 15:44:10 -08:00
Brian Bland 96d26842f8 Refactors configuration parser, removes Registry level from config file
Most conditional parsing code has been moved into UnmarshalYAML
functions for simplicity

Uses the BrianBland fork of goyaml in configuration.go temporarily until
fix https://github.com/go-yaml/yaml/pull/52 is merged in
2014-11-04 22:31:59 -08:00
Brian Bland 2b51a8ab43 Adds README.md to the configuration package 2014-11-04 22:31:59 -08:00
Brian Bland 2013ef5a5b Adds documentation for the configuration parser and tests 2014-11-04 22:31:59 -08:00
Brian Bland 0ad4bba103 Initial configuration parser 2014-11-04 22:31:59 -08:00
Olivier Gambier df7eed3a2c Merge pull request #643 from BrianBland/next-generation
Adds storage driver interface, tests, and three basic implementations
2014-11-04 19:31:35 -08:00
Vincent Batts 7dd4199fe8 registry: don't iterate through certs
the golang tls.Conn does a fine job of that.
http://golang.org/src/pkg/crypto/tls/handshake_client.go?#L334

Signed-off-by: Vincent Batts <vbatts@redhat.com>
2014-11-04 16:12:23 -05:00
Brian Bland 7daa850d44 Fixes documentation to show that StorageDriver.List is non-recursive 2014-11-04 09:52:24 -08:00
Brian Bland 43716a2850 Uses IsTruncated and NextMarker for S3 list internal pagination 2014-11-03 16:27:19 -08:00
Brian Bland b522fbd675 Removes WrapReader boilerplate for updates to libchan
libchan now supports io.ReadCloser and io.WriteCloser, so we don't need
io.ReadWriteCloser wrapping
2014-10-31 11:50:02 -07:00
Tibor Vass eba996acfb Merge pull request #8870 from tiborvass/merge_release_v1.3.1
Merge release v1.3.1
2014-10-30 20:24:34 -04:00
Tibor Vass 47a494e0fd Fix login command
Signed-off-by: Tibor Vass <teabee89@gmail.com>
2014-10-30 19:44:44 -04:00
Tibor Vass 1b72e0234e Do not verify certificate when using --insecure-registry on an HTTPS registry
Signed-off-by: Tibor Vass <teabee89@gmail.com>

Conflicts:
	registry/registry.go
	registry/registry_test.go
	registry/service.go
	registry/session.go

Conflicts:
	registry/endpoint.go
	registry/registry.go
2014-10-30 19:44:09 -04:00
Michael Crosby 552c17d618 Don't hard code true for auth job
Signed-off-by: Michael Crosby <michael@docker.com>

Conflicts:
	registry/service.go
2014-10-30 19:41:55 -04:00