Docker registry elliptics driver
Project description
# Docker registry elliptics driver
This is a [docker-registry backend driver](https://github.com/dotcloud/docker-registry/tree/master/depends/docker-registry-core) based on the [Elliptics](http://reverbrain.com/elliptics/) key-value storage.
[![PyPI version][pypi-image]][pypi-url]
[![Build Status][travis-image]][travis-url]
## Usage
Assuming you have a working docker-registry.
`pip install docker-registry-driver-elliptics`
Edit your configuration so that `storage` reads `elliptics`.
## Options
You may add any of the following to your main docker-registry configuration to further configure it.
1. `elliptics_nodes`: Elliptics remotes
1. `elliptics_wait_timeout`: time to wait for the operation complete
1. `elliptics_check_timeout`: timeout for pinging node
1. `elliptics_io_thread_num`: number of IO threads in processing pool
1. `elliptics_net_thread_num`: number of threads in network processing pool
1. `elliptics_nonblocking_io_thread_num`: number of IO threads in processing pool dedicated to nonblocking ops
1. `elliptics_groups`: Elliptics groups registry should use
1. `elliptics_verbosity`: Elliptics logger verbosity (0...4)
1. `elliptics_logfile`: path to Elliptics logfile (default: `dev/stderr`)
1. `elliptics_addr_family`: address family to use when adding Elliptics remotes (default: `2` (for ipv4)). Use 10 for ipv6 remotes on Linux.
Example:
```yaml
storage: elliptics
elliptics_nodes:
elliptics-host1: 1025
elliptics-host2: 1025
...
hostN: port
elliptics_wait_timeout: 60
elliptics_check_timeout: 60
elliptics_io_thread_num: 2
elliptics_net_thread_num: 2
elliptics_nonblocking_io_thread_num: 2
elliptics_groups: [1, 2, 3]
elliptics_verbosity: 4
elliptics_logfile: "/tmp/logfile.log"
elliptics_loglevel: debug
```
## Developer setup
Clone this.
Install elliptics:
```
sudo apt-get install curl
curl http://repo.reverbrain.com/REVERBRAIN.GPG | sudo apt-key add -
sudo echo "deb http://repo.reverbrain.com/precise/ current/amd64/" | sudo tee -a /etc/apt/sources.list
sudo echo "deb http://repo.reverbrain.com/precise/ current/all/" | sudo tee -a /etc/apt/sources.list
sudo apt-get update
sudo apt-get install elliptics
```
Get your python ready:
```
sudo apt-get install python-pip
sudo pip install tox
```
Start the test elliptics:
```
cd fixtures
sudo ./start.sh
```
You are ready to hack.
In order to verify what you did is ok, just run `tox`.
This will run the tests provided by [`docker-registry-core`](https://github.com/dotcloud/docker-registry/tree/master/depends/docker-registry-core)
[pypi-url]: https://pypi.python.org/pypi/docker-registry-driver-elliptics
[pypi-image]: https://badge.fury.io/py/docker-registry-driver-elliptics.svg
[travis-url]: http://travis-ci.org/dmp42/docker-registry-driver-elliptics
[travis-image]: https://secure.travis-ci.org/dmp42/docker-registry-driver-elliptics.png?branch=master
This is a [docker-registry backend driver](https://github.com/dotcloud/docker-registry/tree/master/depends/docker-registry-core) based on the [Elliptics](http://reverbrain.com/elliptics/) key-value storage.
[![PyPI version][pypi-image]][pypi-url]
[![Build Status][travis-image]][travis-url]
## Usage
Assuming you have a working docker-registry.
`pip install docker-registry-driver-elliptics`
Edit your configuration so that `storage` reads `elliptics`.
## Options
You may add any of the following to your main docker-registry configuration to further configure it.
1. `elliptics_nodes`: Elliptics remotes
1. `elliptics_wait_timeout`: time to wait for the operation complete
1. `elliptics_check_timeout`: timeout for pinging node
1. `elliptics_io_thread_num`: number of IO threads in processing pool
1. `elliptics_net_thread_num`: number of threads in network processing pool
1. `elliptics_nonblocking_io_thread_num`: number of IO threads in processing pool dedicated to nonblocking ops
1. `elliptics_groups`: Elliptics groups registry should use
1. `elliptics_verbosity`: Elliptics logger verbosity (0...4)
1. `elliptics_logfile`: path to Elliptics logfile (default: `dev/stderr`)
1. `elliptics_addr_family`: address family to use when adding Elliptics remotes (default: `2` (for ipv4)). Use 10 for ipv6 remotes on Linux.
Example:
```yaml
storage: elliptics
elliptics_nodes:
elliptics-host1: 1025
elliptics-host2: 1025
...
hostN: port
elliptics_wait_timeout: 60
elliptics_check_timeout: 60
elliptics_io_thread_num: 2
elliptics_net_thread_num: 2
elliptics_nonblocking_io_thread_num: 2
elliptics_groups: [1, 2, 3]
elliptics_verbosity: 4
elliptics_logfile: "/tmp/logfile.log"
elliptics_loglevel: debug
```
## Developer setup
Clone this.
Install elliptics:
```
sudo apt-get install curl
curl http://repo.reverbrain.com/REVERBRAIN.GPG | sudo apt-key add -
sudo echo "deb http://repo.reverbrain.com/precise/ current/amd64/" | sudo tee -a /etc/apt/sources.list
sudo echo "deb http://repo.reverbrain.com/precise/ current/all/" | sudo tee -a /etc/apt/sources.list
sudo apt-get update
sudo apt-get install elliptics
```
Get your python ready:
```
sudo apt-get install python-pip
sudo pip install tox
```
Start the test elliptics:
```
cd fixtures
sudo ./start.sh
```
You are ready to hack.
In order to verify what you did is ok, just run `tox`.
This will run the tests provided by [`docker-registry-core`](https://github.com/dotcloud/docker-registry/tree/master/depends/docker-registry-core)
[pypi-url]: https://pypi.python.org/pypi/docker-registry-driver-elliptics
[pypi-image]: https://badge.fury.io/py/docker-registry-driver-elliptics.svg
[travis-url]: http://travis-ci.org/dmp42/docker-registry-driver-elliptics
[travis-image]: https://secure.travis-ci.org/dmp42/docker-registry-driver-elliptics.png?branch=master
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file docker-registry-driver-elliptics-0.0.2.tar.gz
.
File metadata
- Download URL: docker-registry-driver-elliptics-0.0.2.tar.gz
- Upload date:
- Size: 10.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 411516b30e86b142d71439801ae3b288288b3d0e83b762254edf57f806024a7b |
|
MD5 | 22ee22cc47ebfd602510d226a6436fc9 |
|
BLAKE2b-256 | f030cc23ce7ade5c756d55445071f9886734d87a44be9b61d9040a6fc140094e |