68d95bdcc5
* updating file-structure * update docker file * update develop docs * update api and cmd |
||
---|---|---|
.github | ||
armada | ||
docs/source | ||
examples | ||
hapi | ||
tools | ||
.editorconfig | ||
.gitignore | ||
.travis.yml | ||
Dockerfile | ||
entrypoint.sh | ||
LICENSE | ||
OWNERS | ||
README.rst | ||
requirements.txt | ||
server.py | ||
setup.cfg | ||
setup.py | ||
test-requirements.txt | ||
tox.ini |
Armada
A python orchestrator for a installing, upgrading, and managing a collection of helm charts, dependencies, and values overrides.
Note that this project is pre-alpha and under active development. It may undergo drastic changes to support the long-term vision but contributions are welcome.
Overview
The armada python library and command line tool provides a way to synchronize a helm (tiller) target with an operators intended state, consisting of several charts, dependencies, and overrides using a single file or directory with a collection of files. This allows operators to define many charts, potentially with different namespaces for those releases, and their overrides in a central place. With a single command, deploy and/or upgrade them where applicable.
Armada also supports fetching helm chart source and then building charts from source from various local and remote locations, such as git/github endpoints. In the future, it may supprot other mechanisms as well.
It will also give the operator some indication of what is about to change by assisting with diffs for both values, values overrides, and actual template changes.
Its functionality may extend beyond helm, assisting in interacting with kubernetes directly to perform basic pre and post steps, such as removing completed or failed jobs, running backup jobs, blocking on chart readiness, or deleting resources that do not support upgrades. However, primarily, it will be an interface to support orchestrating Helm.
Running Armada
To use this container, use these simple instructions:
docker run -d --name armada -p 8000:8000 -v ~/.kube/config:/root/.kube/config -v $(pwd)/examples/:/examples -v /tmp:/dev/log quay.io/attcomdev/armada:latest
Manual Install
If you want to build the docker image, follow these steps:
docker build . -t <namespace>/armada
docker run -d --name armada -p 8000:8000 -v ~/.kube/config:/root/.kube/config -v $(pwd)/examples/:/examples <namespace>/armada
Installation
The installation is fairly straight forward:
Recomended Enviroment: Ubuntu 16.04
Installing Dependecies:
you can run:
tox testenv:ubuntu
orsudo sh scripts/libgit2.sh
sudo pip install -r requirements.txt
NOTE: If you want to use virtualenv please refer to pygit2
Installing armada:
sudo pip install -e .
armada [-h | --help]
Using Armada
Before using armada we need to check a few things:
- you have a properly configure
~/.kube/config
kubectl config view
- If it does not exist, you can create it using kubectl
- Check that you have a running Tiller
kubectl get pods -n kube-system
To run armada, simply supply it with your YAML based intention for any number of charts:
$ aramda apply examples/armada.yaml [--debug ]
Your output will look something like this:
$ armada apply examples/armada.yaml 2017-02-10 09:42:36,753
armada INFO Cloning git: