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: .. code:: 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: .. code:: bash KUBE_VERSION=v1.6.8 HELM_VERSION=v2.5.1 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: .. code:: 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: .. code:: bash export KUBEADM_IMAGE=openstackhelm/kubeadm-aio:v1.6.8 sudo docker build --pull -t ${KUBEADM_IMAGE} tools/kubeadm-aio Deploy the AIO environment ~~~~~~~~~~~~~~~~~~~~~~~~~~ To launch the environment run: .. code:: bash export KUBEADM_IMAGE=openstackhelm/kubeadm-aio:v1.6.8 export KUBE_VERSION=v1.6.8 ./tools/kubeadm-aio/kubeadm-aio-launcher.sh export KUBECONFIG=${HOME}/.kubeadm-aio/admin.conf Once this has run without errors, you should hopefully have a Kubernetes single node environment running, with Helm, Calico, appropriate RBAC rules and node labels to get developing. Prior to launching you can also optionally set the following environment variables to control aspects of the CNI used: .. code:: bash export KUBE_CNI=calico # or "canal" "weave" "flannel" export CNI_POD_CIDR=192.168.0.0/16 If you wish to use this environment as 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. .. code:: 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: .. code:: 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: .. code:: bash sudo docker logs -f kubeadm-aio