Distributor Configuration¶
Web Distributor¶
Type ID: docker_distributor_web
The Web distributor is used to publish a Docker repository in a way that can be consumed and served by Crane directly. By default the redirect files are stored as /var/lib/pulp/published/docker/v1/app/<reponame>.json and /var/lib/pulp/published/docker/v2/app/<reponame>.json for the Docker v1 and v2 content, respectively. The repo data itself is stored in /var/lib/pulp/published/docker/v1/web/<repo_id>/ and /var/lib/pulp/published/docker/v2/web/<repo_id>/.
The global configuration file for the docker_web_distributor plugin can be found in /etc/pulp/server/plugins.conf.d/docker_distributor.json.
All values from the global configuration can be overridden on the local config.
Supported keys¶
- docker_publish_directory
- The publish directory used for this distributor. The web server should be configured to serve <publish_directory>/v1/web and <publish_directory>/v2/web. The default value is /var/lib/pulp/published/docker.
- protected
- if “true” requests for this repo will be checked for an entitlement certificate authorizing the server url for this repository; if “false” no authorization checking will be done. This defaults to true.
- redirect-url
- The server URL that will be used when generating the redirect map for connecting the Docker API to the location the content is stored. The value defaults to https://<server_name_from_pulp_server.conf>/pulp/docker/v1/<repo_name>. This is used for v1 content.
- repo-registry-id
- The name that should be used for the repository when it is served by Crane. If specified it will be used for the repository field in the redirect file. If a value is not specified, then repository id is used.
Export Distributor¶
Type ID: docker_distributor_export
The export distributor is used to save the contents of a v1 publish into a tar file that can be moved easily for instances where Crane is running on a different server than your Pulp instance. By default the redirect file is stored in the root of the tar file as <reponame>.json, and the repo data itself is stored in the /<repo_id>/ sub directory of the tar file.
The global configuration file for the docker_export_distributor plugin can be found in /etc/pulp/server/plugins.conf.d/docker_distributor_export.json.
All values from the global configuration can be overridden on the local config.
Supported keys¶
- docker_publish_directory
- The publish directory used for this distributor. The web server should be configured to serve <publish_directory>/export. The default value is /var/lib/pulp/published/docker.
- export_file
- The fully qualified path and name of the tar file that will be created by the export. This defaults to <docker_publish_directory>/v1/export/repo/<repo_id>.tar
- protected
- if “true” requests for this repo will be checked for an entitlement certificate authorizing the server url for this repository; if “false” no authorization checking will be done.
- redirect-url
- The URL where image files for this repository are served. Crane will join this URL with <image_id>/<filename>
- repo-registry-id
- The name that should be used for the repository when it is served by Crane. If specified it will be used for the repository field in the redirect file. If a value is not specified, then repository id is used. Docker requires that this field contains only lower case letters, integers, hyphens, and periods. Additionally a single slash can be used to namespace the repo.
V2 Redirect File¶
For Docker v2 content, the distributors generate a json file with the details of the repository contents.
The file is JSON formatted with the following keys
- type (string) - the type of the file. This will always be “pulp-docker-redirect”.
- version (int) - version of the format for the file. For Docker v2, this will be 2.
- repository (string) - the name of the repository this file is describing.
- repo-registry-id (string) - the name that will be used for this repository in the Docker registry.
- url (string) - the url for access to the repository’s content.
- protected (bool) - whether or not the repository should be protected by an entitlement certificate.
Example Redirect File Contents:
{
"type":"pulp-docker-redirect",
"version":2,
"repository":"docker",
"repo-registry-id":"redhat/docker",
"url":"http://www.foo.com/docker",
"protected": true
}
V1 Redirect File¶
For legacy Docker v1 content, the distributors generate a json file with the details of the repository contents.
The file is JSON formatted with the following keys
- type (string) - the type of the file. This will always be “pulp-docker-redirect”.
- version (int) - version of the format for the file. For Docker v1, this will be 1.
- repository (string) - the name of the repository this file is describing.
- repo-registry-id (string) - the name that will be used for this repository in the Docker registry.
- url (string) - the url for access to the repository’s content.
- protected (bool) - whether or not the repository should be protected by an entitlement certificate.
- images (array) - an array of objects describing each image/layer in the repository.
- id (str) - the image id for the image.
- tags (obj) - an object containing key, value paris of “tag-name”:”image-id”.
Example Redirect File Contents:
{
"type":"pulp-docker-redirect",
"version":1,
"repository":"docker",
"repo-registry-id":"redhat/docker",
"url":"http://www.foo.com/docker",
"protected": true,
"images":[
{"id":"48e5f45168b97799ad0aafb7e2fef9fac57b5f16f6db7f67ba2000eb947637eb"},
{"id":"511136ea3c5a64f264b78b5433614aec563103b4d4702f3ba7d4d2698e22c158"},
{"id":"769b9341d937a3dba9e460f664b4f183a6cecdd62b337220a28b3deb50ee0a02"},
{"id":"bf747efa0e2fa9f7c691588ce3938944c75607a7bb5e757f7369f86904d97c78"}
],
"tags": {"latest": "769b9341d937a3dba9e460f664b4f183a6cecdd62b337220a28b3deb50ee0a02"}
}