- Fix issues #41 and #48 on SSH keys
- Reference and use external SSH keys to facilitate teamwork
- Allow for reservation of private IPv4 addresses on a VLAN
- Complete rewrite of load-balancing code
- Progress on epic topics #36 and #38
- Remove dependency to cryptodome
- Provide comprehensive setup instructions for Windows users
- Add EU9 to the list of available MCP
- Improve inventory files given to ansible
- Pass Travis CI
- 4503 python statements
- Test coverage 59%
- Improve inventories for ansible
- Add environment variables to templates
- Improve tests of parameters
- Introduce package-level logger
- Make reboot stronger against transient states
- Documentation improvements
- Passing Travis CI
- 4252 python statements
- Test coverage 59%
- Better report on errors
- Add private IP addresses to the inventory prepared for Ansible
- Documentation improvements
- Use libcloud 1.1.0
- Parameters are now prepended with the keyword parameter instead of appended (Breaking change)
- Documentation improvements
- Parse Terraform logging correctly (FIX)
- Added error logs to multi-clouds
- Support for Python 3
- Added multicloud support with Hashicorp terraform, supports parameters being passed to TF vars files directly
- Add colored logging
- Multiple code fixes
- Adapt code for python 3 compatibility
- Passing Travis CI for python 2.7, but not yet for python 3
- 35 reference configurations are now provided in separate plumbery-contrib
- Passing Travis CI
- 3787 python statements
- Test coverage 53%
- Adapt Dockerfile to Windows targets
- Fix various bugs for windows - UAT for windows complete.
- Added pretty logging
- Fixed bugs around private MCPs
- Added validation phase to all post-deploy configuration tasks
- Added initial windows polisher for command execution
- Remove windows line endings from unix shell fixtures.
- Accept static IPv4 settings
- Support ICMP, TCP, UDP and IP in firewall definitions
- Add alias 'primary' for main NIC network
- Upgrade VMware tools automatically
- Fix calls to API 2.2
- Add the ability to read fittings plan from stdin
- Add entry point to launch plumbery from command line
- Add the capability to backup nodes
- Rename 'spit' to 'configure'
- Added private MCP support (compute only)
- Updated Dockerfile to support parameters
- Set 'finalize' (or 'finalise' for the English) as the new phrase for 'polish'
- Removed coordinate and city lookups (we are adding 40 MCPs this year, I really don't want to maintain that list!)
- Handover project governance to Dimension Data R&D team
- 26 tutorials are now provided in separate plumbery-contribs project at GitHub
- Introduce deployment parameters (location, domain name, network name, ...)
- Add tutorial on log consolidation (ELK)
- Add tutorial on disk orchestration (standard, high-performance, economy)
- Secure SSH communications in most tutorials (no password, no root access)
- Add virtual storage to many tutorials
- Derive regionId from locationId to streamline fittings plan
- Add action 'refresh' to ease iterations in fittings plan
- Add option -p to load parameters from the command line
- Accept web links for fittings plan and for parameters file
- Restructure code to accomodate for more complex data processing
- Fix multiple bugs and errors
- Augment test coverage
- Improve information provided in debug mode
- Passing Travis CI
- 3286 python statements
- Test coverage 53%
- A total of 24 various tutorials is provided
- Enhance tutorials on Docker and Kubernetes with virtual storage, SSH keys, class-based definition, and updated tutorial
- Add tutorial on iTop, an open source solution for ITIL management
- Add the management of virtual disks, including tiered storage
- Add tutorial showing partitioning, formatting and mounting of virtual disks
- Enhance the usage documentation page
- Accept pseudo-target of blueprints
- Add classes of nodes to streamline large deployments
- Include the library of Customer Images
- Normalize information reported by the 'inventory' command
- Expose geolocalisation information to nodes if needed
- Generalize the usage of 'information:' to support active documentation of fittings plans
- Put fittings plan in context with the new 'links:' directive
- Reduce requirements in fittings plan passed as a Python dictionary
- Add power off as secondary mechanism to stop nodes, when graceful shutdown is not enough
- Allow for CPU and memory dynamic reconfiguration
- Add option -s to run plumbery in safe mode from the command line
- Report on time spent in the cloud while working
- Fix multiple bugs and errors
- Augment test coverage
- Improve information provided in debug mode
- Passing Travis CI
- 3121 python statements
- Test coverage 50%
- Add tutorials on Docker, Kubernetes, Docker Swarm -- DevOps
- Add tutorial to create a Stackstorm server -- DevOps too
- Add tutorial to create a swarm of pingers with MQTT and Kibana -- IOT is coming
- A total of 23 various tutorials is provided
- Enhance the documentation accordingly
- Enhance the documentation page on cloud-config
- Add help for Windows users
- Add the generation of uuid when needed (ceph cluster)
- Add the capability to assign public IPv4 when needed (automatic mode)
- Expand information reported by the 'inventory' command
- Now support settings for a proxy for all interactions with API endpoints
- Restructure code and improve performance with better cache
- Fix multiple bugs and errors
- Improve information provided in debug mode
- Passing Travis CI
- 2769 python statements
- Test coverage 48%
- Provision of an advanced tutorial that demonstrates most interesting features
- A total of 18 various tutorials is provided
- Enhance the documentation accordingly
- Leverage cloud-init with global directives shared by all nodes
- Extend dynamic variables to random, on-demand RSA keys
- Enforce password-free communications, and ipv6 communications
- Add actions 'wipe' and 'secrets'
- Restructure code and consolidate functions
- Fix multiple bugs and errors
- Expand information provided in debug mode
- Passing Travis CI
- 2717 python statements
- Test coverage 47%
- Add cloud-init for node contextualisation
- Inject dynamic variables (e.g., node addresses) to node contextualisation
- Generate and store random secrets for secured node contextualisation
- Enhance usage page in the documentation
- Add a full pack of tutorials in the on-line documentation
- Add actions 'deploy' and 'dispose' to streamline usage
- Add polishers 'ping' and 'information'
- Restructure code and consolidate functions
- Fix multiple bugs and errors
- Expand information provided in debug mode
- Passing Travis CI
- Test coverage 47%
- Add tutorials to the documentation
- Fix some errors
- Expand information provided in debug mode
- Passing Travis CI
- Test coverage 39%
- Create load balancers with pools of nodes
- Streamline messages in safe mode
- Options to run in debug or in quiet mode
- Load fittings plan as a string
- Limit plumbing to some locations if needed
- Make flake8 as happy as possible (PEP8 enforcement)
- Add software documentation for polishers ansible, inventory and rub
- Split software documentation in multiple pages
- Add a first documented use case to the on-line documentation
- Restructure code of the core engine
- Passing Travis CI
- Test coverage 39%
- Run plumbery from the command-line
- Accept custom polisher from the command line too
- Release the first comprehensive on-line documentation at ReadTheDocs
- Illustrate new features in one demonstration fittings plan (the Gigafox project)
- Consolidate sample scripts and python programs for demonstrations
- Allow multiple network interfaces per node
- Reserve and manage pools of public IPv4 addresses
- Add address translation to nodes equipped with public IPv4 addresses
- Add firewall rules for nodes directly visible from the internet
- Wait for nodes to be deployed before polishing them
- Add new strategies to communicate with nodes over the network
- Fix the usage of puppet for Apache nodes
- Improve reporting messages
- Enhance code documentation
- Fix behaviour on multiple abnormal conditions
- Passing Travis CI
- Test coverage 40%
- Extend coverage of the Gigafox project
- Add monitoring to nodes created
- Run polisher 'spit' right after build to finalise setup of nodes
- Produce inventory with polisher of same name
- Introduce puppet manifests to polisher 'rub'
- Add file copy to remote nodes
- Introduce basement blueprints
- Improve reporting messages
- Enhance code documentation
- Fix behaviour on abnormal situations
- Passing Travis CI
- Test coverage 46%
- Introduce Gigafox project, to demonstrate deployment across multiple places
- Create firewall rules to allow traffic between networks
- Cache information to save on API calls and to accelerate the processing
- Improve the state engine
- Passing Travis CI
- Test coverage 48%
- Use ipv6 when possible to connect to remote nodes
- Manual tests to improve usage on specific conditions, e.g., against MCP 1.0
- Label expansion to facilitate node handling, e.g., mongo[1..20]
- Allow for destruction of networks and of domain networks
- Passing Travis CI
- Test coverage 55%
- Code refactoring into a new module for nodes
- fake8 complains only about long lines and line termination
- Passing Travis CI
- Test coverage 59%
- Allow for node bootstrapping via SSH
- Push SSH public key
- Update Linux packages
- Install Docker
- Provide an inventory of running nodes
- Build inventory for ansible
- Extension mechanism called polishers
- Add demonstration scripts related to polishers
- A lot of docstring has been added
- fake8 complains only about long lines and line termination
- Passing Travis CI
- Test coverage 59%
- First pull request fully processed
- Docstring for all modules
- Passing Travis CI
- Test coverage 62%
- First release on PyPI.