feat(main): Armada as a plugin

Added in functionality that allows users to use access armada as a plugin for helm.

Closes 164 https://github.com/att-comdev/armada/issues/164

Change-Id: I6f43d373155454c713bff90977b1551357f22abe
This commit is contained in:
Evan Steitz 2017-09-15 19:57:50 +00:00
parent bb26131ce2
commit 6ca2875c81
3 changed files with 71 additions and 0 deletions

37
controller.sh Executable file
View File

@ -0,0 +1,37 @@
#!/bin/bash
clean_container(){
echo "Destroying $1 container..."
docker stop $1 >/dev/null
docker rm $1 >/dev/null
echo "...container destroyed"
}
readlink(){
(
cd $(dirname $1)
echo $PWD/$(basename $1)
)
}
# Check to see if the aramada container exists
if [ -n "$( sudo docker ps -a | grep quay.io/attcomdev/armada )" ]; then
echo "Armada container already exists..."
clean_container armada
fi
# Check to see if the user is trying to apply a chart
if [ $1 = "apply" ]; then
# TODO Handle erroneous or missing inputs
# Bring up a new armada container with passed in yaml mounted to the container
echo "Creating an Armada container..."
docker run -d --net host -p 8000:8000 --name armada -v $(readlink $(dirname $2)):$(readlink $(dirname $2)) -v ~/.kube/config:/armada/.kube/config -v ~/.kube/plugins/armada/examples/:/examples quay.io/attcomdev/armada:latest
docker exec armada armada apply $(readlink $2)
else
# For any other command the chart does not need to be mounted to the container
# Bring up a new armada container
echo "Creating an Armada container..."
docker run -d --net host -p 8000:8000 --name armada -v ~/.kube/config:/armada/.kube/config -v ~/.kube/plugins/armada/examples/:/examples quay.io/attcomdev/armada:latest
docker exec armada armada "$@"
fi
clean_container armada

View File

@ -0,0 +1,23 @@
Armada Plugin
============
The armada plugin extends all the functionality of Armada to be used as a plugin with Helm.
Install Plugin
---------------
::
To install the Armada plugin, all you have to do is copy the plugin directory into ~/.helm/plugins/
.. code-block:: bash
git clone https://github.com/att-comdev/armada.git ~/.helm/plugins/
Usage
------
**helm <Name> <action> [options]**
::
helm armada tiller --status
helm armada apply ~/.helm/plugins/armada/examples/simple.yaml

11
plugin.yaml Normal file
View File

@ -0,0 +1,11 @@
name: "armada"
version: "0.0.3"
usage: "Manages multiple helm charts with a centralized armada yaml"
description: |-
This plugin provides helm access to armada. A tool for managing multiple helm charts with dependencies by centralizing all configurations in a single Armada yaml and providing lifecycle hooks for all helm releases
usage:
$ helm armada tiller --status
$ helm armada apply /examples/openstack-helm.yaml
ignoreFlags: false
useTunnel: false
command: "sh $HELM_PLUGIN_DIR/controller.sh"