qinling/tools/kubeadm-aio
Lingxian Kong 4b06c280bb Add administrative operations for some resources
Now, admin user could list/show/delete/update most of qinling
resources, except function deletion. Because function deletion
needs to delete the trust created for qinling service by its
owner, only end user has the authority to delete their trust.

Implements: blueprint qinling-admin-operations
Change-Id: I9ec4df59fbf8ac50c96d9677dd74c54677b307a5
2018-01-18 14:45:11 +13:00
..
assets Add administrative operations for some resources 2018-01-18 14:45:11 +13:00
Dockerfile Add administrative operations for some resources 2018-01-18 14:45:11 +13:00
kubeadm-aio-launcher.sh Add administrative operations for some resources 2018-01-18 14:45:11 +13:00
README.rst Add administrative operations for some resources 2018-01-18 14:45:11 +13:00

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:

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:

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:

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:

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:

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:

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.

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:

sudo docker exec kubelet /usr/bin/openstack-helm-aio-network-prep

Logs

You can get the logs from your kubeadm-aio container by running:

sudo docker logs -f kubeadm-aio