Pete Birley f68b0306ab Gate: CentOS, Fedora and local use support
This PS adds support for CentOS, Fedora and running the gate locally
on a developers machine. It also expands on the original gate scripts
by setting up dns access to the OpenStack cluster from the host's
running OpenStack-Helm using a daemonset.

Change-Id: I99c573a44a73452d558e612fc020e22e7f41ade7
2017-05-18 17:49:05 -05:00

93 lines
2.4 KiB
Markdown

# Kubeadm AIO Container
This container builds a small AIO Kubeadm based Kubernetes deployment for Development and Gating use.
## Instructions
### OS Specific Host setup:
#### Ubuntu:
From a freshly provisioned Ubuntu 16.04 LTS host run:
``` bash
sudo apt-get update -y
sudo apt-get install -y \
docker.io \
nfs-common \
git \
make
```
### OS Independent Host setup:
You should install the `kubectl` and `helm` binaries:
``` bash
KUBE_VERSION=v1.6.0
HELM_VERSION=v2.3.0
TMP_DIR=$(mktemp -d)
curl -sSL https://storage.googleapis.com/kubernetes-release/release/${KUBE_VERSION}/bin/linux/amd64/kubectl -o ${TMP_DIR}/kubectl
chmod +x ${TMP_DIR}/kubectl
sudo mv ${TMP_DIR}/kubectl /usr/local/bin/kubectl
curl -sSL https://storage.googleapis.com/kubernetes-helm/helm-${HELM_VERSION}-linux-amd64.tar.gz | tar -zxv --strip-components=1 -C ${TMP_DIR}
sudo mv ${TMP_DIR}/helm /usr/local/bin/helm
rm -rf ${TMP_DIR}
```
And clone the OpenStack-Helm repo:
``` bash
git clone https://git.openstack.org/openstack/openstack-helm
```
### Build the AIO environment (Optional)
A known good image is published to dockerhub on a fairly regular basis, but if
you wish to build your own image, from the root directory of the OpenStack-Helm
repo run:
``` bash
export KUBEADM_IMAGE=openstackhelm/kubeadm-aio:v1.6
sudo docker build --pull -t ${KUBEADM_IMAGE} tools/kubeadm-aio
```
### Deploy the AIO environment
To launch the environment run:
``` bash
export KUBEADM_IMAGE=openstackhelm/kubeadm-aio:v1.6
export KUBE_VERSION=v1.6.2
./tools/kubeadm-aio/kubeadm-aio-launcher.sh
export KUBECONFIG=${HOME}/.kubeadm-aio/admin.conf
```
One this has run, you should hopefully have a Kubernetes single node environment
running, with Helm, Calico, a NFS PVC provisioner and appropriate RBAC rules and
node labels to get developing.
If you wish to use this environment at the primary Kubernetes environment on
your host you may run the following, but note that this will wipe any previous
client configuration you may have.
``` bash
mkdir -p ${HOME}/.kube
cat ${HOME}/.kubeadm-aio/admin.conf > ${HOME}/.kube/config
```
If you wish to create dummy network devices for Neutron to manage there is a
helper script that can set them up for you:
``` bash
sudo docker exec kubelet /usr/bin/openstack-helm-aio-network-prep
```
### Logs
You can get the logs from your `kubeadm-aio` container by running:
``` bash
sudo docker logs -f kubeadm-aio
```