promenade/docs/getting-started.md

2.8 KiB

Getting Started

Development

Deployment using Vagrant

Deployment using Vagrant uses KVM instead of Virtualbox due to better performance of disk and networking, which both have significant impact on the stability of the etcd clusters.

Make sure you have Vagrant installed, then run ./tools/full-vagrant-setup.sh, which will do the following:

  • Install Vagrant libvirt plugin and its dependencies
  • Install NFS dependencies for Vagrant volume sharing
  • Install packer and build a KVM image for Ubuntu 16.04

Generate the per-host configuration, certificates and keys to be used:

mkdir configs
docker run --rm -t -v $(pwd):/target quay.io/attcomdev/promenade:latest 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/configs/up.sh /vagrant/configs/n0.yaml'

Join the master nodes:

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

Join the worker node:

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

To use Promenade from behind a proxy, simply add proxy settings to the promenade Network configuration document using the keys http_proxy, https_proxy, and no_proxy before running generate.

Note that it is important to specify no_proxy to include kubernetes and the IP addresses of all the master nodes.

Building the image

docker build -t promenade:local .

For development, you may wish to save it and have the up.sh script load it:

docker save -o promenade.tar promenade:local

Then on a node:

PROMENADE_LOAD_IMAGE=/vagrant/promenade.tar /vagrant/up.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 promenade:local .

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/up.sh /vagrant/configs/n0.yaml