Gate scripts: Update readme to describe multinode deployment

This PS updates the gate script to make multinode developer
deployment outside of zuul much clearer.

Change-Id: I25cc8c2f101dd0241d715ef7bf2e004cddf43c06
This commit is contained in:
Pete Birley 2017-06-27 22:32:31 -05:00
parent 2af464b548
commit fc82130ceb
2 changed files with 44 additions and 10 deletions

View File

@ -6,8 +6,17 @@ locally to aid development and for demonstration purposes. Please note
that they assume full control of a machine, and may be destructive in
nature, so should only be run on a dedicated host.
Usage
-----
Supported Platforms
~~~~~~~~~~~~~~~~~~~
Currently supported host platforms are:
* Ubuntu 16.04
* CentOS 7
* Fedora 25
Usage (Single Node)
-------------------
The Gate scripts use the ``setup_gate.sh`` as an entrypoint and are
controlled by environment variables, an example of use to run the basic
@ -20,10 +29,34 @@ integration test is below:
export PVC_BACKEND=ceph
./tools/gate/setup_gate.sh
Supported Platforms
~~~~~~~~~~~~~~~~~~~
Currently supported host platforms are: \* Ubuntu 16.04 \* CentOS 7
Usage (Multi Node)
------------------
With some preparation to docker, and disabling of SELinux operation of
Fedora 25 is also supported.
To use for a multinode deployment you simply need to set a few extra environment
variables:
.. code:: bash
export INTEGRATION=multi
export INTEGRATION_TYPE=basic
export PVC_BACKEND=ceph
#IP of primary node:
export PRIMARY_NODE_IP=1.2.3.4
#IP's of subnodes:
export SUB_NODE_IPS="1.2.3.5 1.2.3.6 1.2.3.7"
#Location of SSH private key to use with subnodes:
export SSH_PRIVATE_KEY=/etc/nodepool/id_rsa
./tools/gate/setup_gate.sh
Options
-------
Rather than ceph, you may use a nfs based backend. This option is especially
useful on old or low spec machines, though is not currently supported with
Linux Kernels >=4.10:
.. code:: bash
export PVC_BACKEND=nfs

View File

@ -14,15 +14,16 @@
set -ex
: ${SSH_PRIVATE_KEY:="/etc/nodepool/id_rsa"}
: ${PRIMARY_NODE_IP:="$(cat /etc/nodepool/primary_node_private | tail -1)"}
: ${SUB_NODE_IPS:="$(cat /etc/nodepool/sub_nodes_private)"}
sudo chown $(whoami) ${SSH_PRIVATE_KEY}
sudo chmod 600 ${SSH_PRIVATE_KEY}
PRIMARY_NODE_IP=$(cat /etc/nodepool/primary_node_private | tail -1)
KUBEADM_TOKEN=$(sudo docker exec kubeadm-aio kubeadm token list | tail -n -1 | awk '{ print $1 }')
SUB_NODE_PROVISION_SCRIPT=$(mktemp --suffix=.sh)
cat /etc/nodepool/sub_nodes_private | while read SUB_NODE; do
for SUB_NODE in $SUB_NODE_IPS ; do
cat >> ${SUB_NODE_PROVISION_SCRIPT} <<EOS
ssh-keyscan "${SUB_NODE}" >> ~/.ssh/known_hosts
ssh -i ${SSH_PRIVATE_KEY} $(whoami)@${SUB_NODE} mkdir -p ${WORK_DIR%/*}