promenade/README.md

2.2 KiB

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 .