https://github.com/onecommons/unfurl
10K+
Unfurl is a command line tool for managing your DevOps infrastructure. Unfurl lets you easily track configuration, secrets, software and code dependencies, and deployment history all in git.
Unfurl can integrate with the DevOps tools you are already using -- like Terraform, Ansible, and Helm -- allowing you to encapsulate your DevOps processes into reusable building blocks and describe your cloud infrastructure in simple, application-centric terms.
The ultimate goal of Unfurl is enable anyone to clone, fork, and deploy live cloud services as easily as cloning and building code from git. So that we can have:
1. Use unfurl init to create an Unfurl-managed git repository. Or use unfurl clone to clone an existing one.
2. The repository will contain a few YAML files that you can edit. They will describe everything you'll need to deploy your application, such as:
3. Use unfurl deploy to deploy the infrastructure. Unfurl will generate a plan based on your target environment and high-level model and choose the correct operations to call. It will commit to git the latest configuration and a history of changes to your cloud accounts.
4. Now you have a reproducible description of your cloud infrastructure stored in git! So you can:
Simple, stand-alone CLI that can be used both in your local development environment or in an automated CI/CD pipeline.
secrets folders.unfurl is available on PyPI. You can install using pip (or pip3):
pip install unfurl
By default unfurl creates a virtual Python environment to run in so it only installs the minimal requirements needed to run the command line. If you want to run it using your system Python install it with the "full" option:
pip install unfurl[full]
You can also install unfurl directly from this repository to get the latest code:
pip3 install "git+https://github.com/onecommons/unfurl.git#egg=unfurl"
Alternatively, you can use the Unfurl container on Docker Hub:
docker run --rm -it -v $(pwd):/data -w /data onecommons/unfurl:stable unfurl ...
The stable tag matches the version published to PyPi; latest is the latest code from the repository.
Optional: Docker or Podman
Use the table below to activate shell autocompletion for the unfurl:
| Shell | Instructions |
|---|---|
| Bash | Add this to ~/.bashrc: |
eval "$(_UNFURL_COMPLETE=bash_source unfurl)" | |
| Zsh | Add this to ~/.zshrc: |
eval "$(_UNFURL_COMPLETE=zsh_source unfurl)" | |
| Fish | Add this to ~/.config/fish/completions/unfurl.fish: |
eval (env _UNFURL_COMPLETE=fish_source unfurl) |
git clone --recurse-submodules https://github.com/onecommons/unfurl
To build documentation: Run tox -e docs.
To build a distribution package run:
python setup.py sdist bdist_wheel
You can now install this package with pip, for example:
pip install ./dist/unfurl-0.2.2.dev3-py2.py3-none-any.whl
You can use tox to run the unit tests inside the supported python environments with the latest source installed.
Install tox pip install tox==3.28.0 and then run tox in source root. To install the dependencies you may need header files installed by the following OS packages: python-dev, libcrypt-dev, openssl-dev. (Note: if installation of a dependency fails, reinvoke tox with -r to recreate the test environment.)
If you use asdf to manage multiple versions of Python, also install tox-asdf: pip install tox-asdf.
Arguments after -- are passed to the test runner, e.g. to run an individual test: tox -- tests/test_runtime.py.
Unfurl is in early stages of development and should not be used in production. In particular be mindful of these limitations:
--force and --instance command line options.The best way to manage your Unfurl project is to use Unfurl Cloud, our open-source platform for collaboratively developing cloud applications.
Check out the rest of Unfurl's documentation here
Content type
Image
Digest
sha256:40309cb8e…
Size
901.3 MB
Last updated
about 1 year ago
docker pull onecommons/unfurl