Stack Config
version number: 0.1.0 author: ScienceLogic
Overview
Render, merge and validate docker_compose files for deploying a stack.
This library is using docker-compose merging process, but at the end it does a final verification to let users know whether this is a valid docker-compose for deploying a stack or not, as docker-compose doesn't validate that.
Additionally, this library will compile valid yaml jinja2 templates, so they can be merged along with the other docker-compose files.
Installation
To install use pip:
$ pip install stackconfig
Or clone the repo:
$ git clone https://github.com/Sciencelogic/stackconfig.git
$ python setup.py install
Development
- Fork
- Set Dev Environment
pip install -r dev_requirements.txt
pip install -r requirements.txt
pip install -e .
git checkout -b feature-more-cool-stuff
Test
# run tests using tox
tox
# run tests with pytest
pytest
Version
bumpversion major # major release
or
bumpversion minor # minor release
or
bumpversion patch # hotfix release
git push origin release-n.n.0
or
git push origin hotfix-x.x.n
Usage example as cli tool
$ stackconfig --help
Usage: stackconfig [OPTIONS]
Options:
-f, --file PATH docker-compose file to be merged. Accept multiple
arguments.
-o, --output PATH Output path for the final docker-compose file
[default: /tmp/docker-compose-20220425-16-49-16.yml]
-d, --j2data PATH Yaml file that contains variables to render the
provided jinja2 template.
-t, --j2template PATH Jinja2 template that needs to be a valid docker-
compose file after being rendered.
--version TEXT Set valid version for the final docker-compose file
--help Show this message and exit.
$ stackconfig -f docker-compose.yml -f compose-override.yml -t docker-compose-template.yml.j2 -d data_file.yml --version 3.8 -o docker-compose-final.yml
Usage example using Python
from stackconfig.stackconfig import StackConfigCompose
from stackconfig.utils.jinja2_utils import render_jijnja2_compose
jinja_env = {}
yml_compiled_files = render_jijnja2_compose(['/tmp/docker-compose.yml.j2',
'/tmp/docker-compose-override-yml.j2'],
data_file='/tmp/data_file.yml',
data_dict=jinja_env)
# valid docker-compose files can be appended, all of them are going to be merged using the docker-compose library
yml_compiled_files.append("/tmp/docker-copmose-override2.yml")
stack_config = StackConfigCompose(yml_compiled_files, '/tmp/docker-compose-output.yml')
stack_config.merge_stack_compose()
Not Exactly What You Want?
Options that may be a good fit for you:
Metadata
Release files for stackconfig 1.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| stackconfig-1.1.0-py2.py3-none-any.whl | Python 3, Python 2 | none | any | Details |
Release files / stackconfig-1.1.0-py2.py3-none-any.whl
| Download URL | stackconfig-1.1.0-py2.py3-none-any.whl |
|---|---|
| Size | 7.4 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
d98cb73a5a169df356bbf72dd704b28f89542ce70fe3f2bbe65b2d15510d8264
|
|
BLAKE2b-256 checksum How to use checksums |
cb0fe849370cae245f25370c564dfae9123b233300ef814b128a7ac57a2a240d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.6
|
Security for stackconfig 1.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.