Juicer is a command-line interface to the Pulp REST API which provides a 'shopping cart' style approach to uploading and promoting groups of packages or docker images through multiple environments.
This project is a fork of the original Juicer project which I hope to improve upon by leveraging use of the existing Pulp libraries.
usage: juicer [-h] [-v] [-V] {cart,rpm,repo,role,user,hello} ... Manage release carts optional arguments: -h, --help show this help message and exit -v show verbose output -V, --version show program's version number and exit Commands: 'juicer COMMAND -h' for individual help topics {cart,rpm,repo,role,user,hello} cart cart operations rpm rpm operations repo repo operations role role operations user user operations hello test your connection to the pulp server
Juicer was built to talk to Pulp version 2.6.0. Installation instructions are available here.
Currently the only supported method is installing from source while we're under construction.
sudo python ./setup.py install
Juicer is configured through a ~/.config/juicer/config
file. The
config is broken into sections by environment and may also contain an
optional DEFAULT section, from which the defaults for all following
sections are supplied.
The standard flow of this sample infrastructure goes from devel to prod; meaning that we upload our packages to devel and test them accordingly in our development environment before we promote them to prod.
[DEFAULT] username: admin password: admin port: 443 verify_ssl: True ca_path: /etc/pki/pulp/ca.crt cert_filename: /etc/pki/pulp/pulp.crt start_in: devel cart_seeds: localhost:27017 [devel] hostname: localhost promotes_to: qa [qa] hostname: localhost promotes_to: stage [stage] hostname: localhost promotes_to: prod [prod] hostname: localhost
Run make ci
to install dependencies within your local
checkout. This will create an isolated Python virtualenv. The ci
Makefile target
also runs our tests and checks PEP8 style formatting.
make ci . juicerenv/bin/activate juicer -h