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:
parent
bb26131ce2
commit
6ca2875c81
37
controller.sh
Executable file
37
controller.sh
Executable 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
|
||||||
|
|
23
docs/source/operations/guide-helm-plugin.rst
Normal file
23
docs/source/operations/guide-helm-plugin.rst
Normal 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
11
plugin.yaml
Normal 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"
|
Loading…
x
Reference in New Issue
Block a user