Containers builder for docker.
Project description
Distributed building system for docker. Will pull repo from the github by tag-webhook and build it by Dockerfile.
Features
Distributed system. Any part might be working on different hosts.
Email notifications (success and errors).
Pushing into public or private docker registry.
Building in queue.
Emailing reports to administrator about exceptions.
TLS client auth for docker daemon.
SMTP authentication
Building by webhook tag from github (You might be author of the extension for other services through pull-request ;-).
Multiple installations (thanks to RMQ vhosts)
Requirements
Python >=2.7 (>3.4 need testing).
RabbitMQ server. Provide communication for components.
Parts
The system consists of 3 parts
WEB Server. Based on tornado http server for accepting webhooks
Worker. Building daemon listen AMQP
Mailer. Mailing daemon. Provides notifying about build results.
Installation
Install Rabbitmq Server
pip install lumper
Usage
The lumper provides one executable file lumper. You might run this with option –help (or -h):
$ lumper --help
usage: lumper [-h] {server,worker,mailer} ...
positional arguments:
{server,worker,mailer}
server Run http backend
worker Run in worker mode
mailer Run as mailer delivery worker
optional arguments:
-h, --help show this help message and exit
Notice: exec "lumper <command> --help" for command options
Command line configuration
And you might see help about any modes. For web server:
$ lumper server --help
usage: lumper server [-h] [--config CONFIG] [--gen-config] [-a ADDRESS]
[-p PORT] [--secret COOKIE_SECRET] [--gzip] [--debug]
[--logging LOGGING] [--github-secret GITHUB_SECRET]
[-A RMQ_ADDRESS] [-P RMQ_PORT] [-H RMQ_VHOST]
[--user RMQ_USER] [--password RMQ_PASSWORD]
optional arguments:
-h, --help show this help message and exit
--config CONFIG Load configuration from file
--gen-config Create example of the config_file.json
Server options:
-a ADDRESS, --address ADDRESS
Listen this address
-p PORT, --port PORT Listen this port
--secret COOKIE_SECRET
Cookie secret
--gzip Gzip HTTP responses
--debug Debugging mode
--logging LOGGING Logging level
--github-secret GITHUB_SECRET
Github webhook's secret
-A RMQ_ADDRESS, --rmq-address RMQ_ADDRESS
RMQ host address
-P RMQ_PORT, --rmq-port RMQ_PORT
RMQ host port
-H RMQ_VHOST, --vhost RMQ_VHOST
RMQ virtual host
--user RMQ_USER RMQ virtual host
--password RMQ_PASSWORD
RMQ virtual host
For worker:
$ lumper worker --help
usage: lumper worker [-h] [--config CONFIG] [--gen-config] [--logging LOGGING]
[-a AMQP_ADDRESS] [-p AMQP_PORT] [-H AMQP_VHOST]
[-U AMQP_USER] [-P AMQP_PASSWORD]
[--docker-url DOCKER_URL] [--docker-tls]
[--docker-ca DOCKER_CA_CERT]
[--docker-cert DOCKER_CLIENT_CERT]
[--docker-key DOCKER_CLIENT_KEY] [--docker-tls-strict]
[--docker-registry DOCKER_REGISTRY]
[--docker-ssl-registry] [--docker-publish]
optional arguments:
-h, --help show this help message and exit
--config CONFIG Load configuration from file
--gen-config Create example of the config_file.json
Main options:
--logging LOGGING Logging level
RabbitMQ options:
-a AMQP_ADDRESS, --address AMQP_ADDRESS
RMQ host address
-p AMQP_PORT, --port AMQP_PORT
RMQ host port
-H AMQP_VHOST, --vhost AMQP_VHOST
RMQ virtual host
-U AMQP_USER, --user AMQP_USER
RMQ username
-P AMQP_PASSWORD, --password AMQP_PASSWORD
RMQ password
Docker options:
--docker-url DOCKER_URL
Docker daemon url ["unix:///var/run/docker.sock"]
--docker-tls Set when a docker daemon use TLS
--docker-ca DOCKER_CA_CERT
TLS certificate authority
--docker-cert DOCKER_CLIENT_CERT
TLS client certificate
--docker-key DOCKER_CLIENT_KEY
TLS client private key
--docker-tls-strict Strict verification server certificate
--docker-registry DOCKER_REGISTRY
Set if you have a private registry
--docker-ssl-registry
The private registry use ssl
--docker-publish Set if you want push images to registry
And for mailer:
$ lumper mailer --help
usage: lumper mailer [-h] [--config CONFIG] [--gen-config] [--logging LOGGING]
[-a AMQP_ADDRESS] [-p AMQP_PORT] [-H AMQP_VHOST]
[-U AMQP_USER] [-P AMQP_PASSWORD] [--smtp-host SMTP_HOST]
[--smtp-port SMTP_PORT] [--smtp-user SMTP_USER]
[--smtp-password SMTP_PASSWORD] [--smtp-tls]
[--smtp-sender SMTP_SENDER] [--mail-map MAIL_MAP]
[--admin-mail ADMIN_MAIL]
optional arguments:
-h, --help show this help message and exit
--config CONFIG Load configuration from file
--gen-config Create example of the config_file.json
Main options:
--logging LOGGING Logging level
RabbitMQ options:
-a AMQP_ADDRESS, --address AMQP_ADDRESS
RMQ host address
-p AMQP_PORT, --port AMQP_PORT
RMQ host port
-H AMQP_VHOST, --vhost AMQP_VHOST
RMQ virtual host
-U AMQP_USER, --user AMQP_USER
RMQ username
-P AMQP_PASSWORD, --password AMQP_PASSWORD
RMQ password
SMTP options:
--smtp-host SMTP_HOST
Server host
--smtp-port SMTP_PORT
Server port
--smtp-user SMTP_USER
Authentication username. Do auth if set.
--smtp-password SMTP_PASSWORD
Password.
--smtp-tls Use TLS.
--smtp-sender SMTP_SENDER
Sender of messages [default: lumper@localhost]
Delivery options:
--mail-map MAIL_MAP github user to E-mail map json file with hash.
--admin-mail ADMIN_MAIL
admin email for unknown users [default: root@localhost]
Config files
You might generate and save configuration from the command line:
$ lumper mailer --gen-conf
{
"admin_mail": "root@localhost",
"amqp_address": "localhost",
"amqp_password": null,
"amqp_port": 5672,
"amqp_user": null,
"amqp_vhost": "/",
"logging": null,
"mail_map": null,
"smtp_host": "localhost",
"smtp_password": null,
"smtp_port": 25,
"smtp_sender": "lumper@localhost",
"smtp_tls": false,
"smtp_user": null
}
And load it with –config option. E.g lumper mailer –config /etc/lumper/mailer.json
And convert your command line to config-file:
$ lumper mailer --smtp-host mail.google.com --gen-conf
{
...
"smtp_host": "mail.google.com",
...
}
Notice: Option –gen-conf must be defined in the end.
Project details
Release history Release notifications | RSS feed
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 lumper-0.3.0.tar.gz.
File metadata
- Download URL: lumper-0.3.0.tar.gz
- Upload date:
- Size: 14.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
09efb02ee3c303cf61d27b98c2fcd2f8e3432cc62ed22dec73ea364019d0aa27
|
|
| MD5 |
b8b1ccd9ce36e9315e97e31c542fb7aa
|
|
| BLAKE2b-256 |
ae537b70b25a0977c64d1ce5ca625200f0e44f5ee53900e73f57a7cca57428e8
|