A declarative framework for resilient Kubernetes deployment.
Go to file
Mark Burnett 1cc6fb4c0e update example & README 2017-06-20 11:11:17 -05:00
example update example & README 2017-06-20 11:11:17 -05:00
promenade add templates for certs and keys 2017-06-20 11:11:17 -05:00
.dockerignore Basic HA kubernetes deployment (#7) 2017-06-15 20:57:22 -07:00
.gitignore Basic HA kubernetes deployment (#7) 2017-06-15 20:57:22 -07:00
Dockerfile tighten up Dockerfile 2017-06-20 10:46:45 -05:00
LICENSE Initial commit 2017-02-14 11:13:39 -08:00
README.md update example & README 2017-06-20 11:11:17 -05:00
Vagrantfile Basic HA kubernetes deployment (#7) 2017-06-15 20:57:22 -07:00
genesis.sh Adding support for Environment variables with sudo -E 2017-06-19 15:43:53 -04:00
join.sh Adding support for Environment variables with sudo -E 2017-06-19 15:43:53 -04:00
requirements-frozen.txt Basic HA kubernetes deployment (#7) 2017-06-15 20:57:22 -07:00
requirements.txt Basic HA kubernetes deployment (#7) 2017-06-15 20:57:22 -07:00
setup.cfg Basic HA kubernetes deployment (#7) 2017-06-15 20:57:22 -07:00
setup.py Basic HA kubernetes deployment (#7) 2017-06-15 20:57:22 -07:00

README.md

Overview

Promenade is tool for deploying self-hosted, highly resilient Kubernetes clusters.

Quickstart using Vagrant

Make sure you have Vagrant and VirtualBox installed.

Generate the certificates and keys to be used:

mkdir configs
docker run --rm -t -v $(pwd):/target quay.io/attcomdev/promenade:experimental promenade -v generate -c /target/example/vagrant-input-config.yaml -o /target/configs

Start the VMs:

vagrant up

Start the genesis node:

vagrant ssh n0 -c 'sudo /vagrant/genesis.sh /vagrant/configs/n0.yaml'

Join the master nodes:

vagrant ssh n1 -c 'sudo /vagrant/join.sh /vagrant/configs/n1.yaml'
vagrant ssh n2 -c 'sudo /vagrant/join.sh /vagrant/configs/n2.yaml'

Join the worker node:

vagrant ssh n3 -c 'sudo /vagrant/join.sh /vagrant/configs/n3.yaml'

Using Promenade Behind a Proxy

To use Promenade from behind a proxy, simply export HTTP_PROXY, HTTPS_PROXY, and NO_PROXY environment variables on the vagrant host prior to executing the genesis.sh and join.sh scripts respectively. Alternatively, you may also export the DOCKER_HTTP_PROXY, DOCKER_HTTPS_PROXY, and DOCKER_NO_PROXY directly. Ensure you are running the script with sudo -E option to preserve the environment variables.

vagrant ssh n0
cd /vagrant
export DOCKER_HTTP_PROXY="http://proxy.server.com:8080"
export DOCKER_HTTPS_PROXY="https://proxy.server.com:8080"
export DOCKER_NO_PROXY="localhost,127.0.0.1"
sudo -E /vagrant/genesis.sh /vagrant/example/vagrant-config.yaml

Building the image

docker build -t quay.io/attcomdev/promenade:experimental .

For development, you may wish to save it and have the genesis.sh and join.sh scripts load it:

docker save -o promenade.tar quay.io/attcomdev/promenade:experimental

Then on a node:

PROMENADE_LOAD_IMAGE=/vagrant/promenade.tar /vagrant/genesis.sh /vagrant/path/to/node-config.yaml

To build the image from behind a proxy, you can:

export http_proxy=...
export no_proxy=...
docker build --build-arg http_proxy=$http_proxy --build-arg https_proxy=$http_proxy --build-arg no_proxy=$no_proxy  -t quay.io/attcomdev/promenade:experimental .