From a514989c9c6289cc8cbf7c02f7ec47d666637ed0 Mon Sep 17 00:00:00 2001 From: Alexey Deryugin Date: Tue, 21 Apr 2015 14:39:08 +0300 Subject: [PATCH] Elements for Docker and Kubernetes migrated to murano-apps Versions for kubernetes components fixed to: * Kubernetes v0.15 * etcd v2.0.9 * flannel v0.3.1 * confd v0.7.1 * Docker v1.6.0 Change-Id: Ibf4028dc4fbc4568e5de24805669d9caa6d4caf1 (cherry picked from commit cc765433d6878f752a0709b04676de0a96e93c13) --- .../elements/docker/install.d/56-docker | 16 +++++ DockerStandaloneHost/elements/readme.rst | 42 +++++++++++ .../elements/docker/install.d/56-docker | 16 +++++ .../elements/kubernetes/element-deps | 1 + .../kubernetes/install.d/57-kubernetes | 70 +++++++++++++++++++ .../KubernetesCluster/elements/readme.rst | 42 +++++++++++ 6 files changed, 187 insertions(+) create mode 100644 DockerStandaloneHost/elements/docker/install.d/56-docker create mode 100644 DockerStandaloneHost/elements/readme.rst create mode 100644 Kubernetes/KubernetesCluster/elements/docker/install.d/56-docker create mode 100644 Kubernetes/KubernetesCluster/elements/kubernetes/element-deps create mode 100644 Kubernetes/KubernetesCluster/elements/kubernetes/install.d/57-kubernetes create mode 100644 Kubernetes/KubernetesCluster/elements/readme.rst diff --git a/DockerStandaloneHost/elements/docker/install.d/56-docker b/DockerStandaloneHost/elements/docker/install.d/56-docker new file mode 100644 index 0000000..499f336 --- /dev/null +++ b/DockerStandaloneHost/elements/docker/install.d/56-docker @@ -0,0 +1,16 @@ +#!/bin/bash + +set -eu + +if [ -e /etc/lsb-release ]; then + if [ -e /usr/lib/apt/methods/https ]; then + apt-get update + apt-get install apt-transport-https + fi + apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9 + echo "deb https://get.docker.com/ubuntu docker main" > /etc/apt/sources.list.d/docker.list + apt-get update + apt-get -y install lxc-docker=1.6.0 +else + yum -y install docker +fi \ No newline at end of file diff --git a/DockerStandaloneHost/elements/readme.rst b/DockerStandaloneHost/elements/readme.rst new file mode 100644 index 0000000..7ab0d51 --- /dev/null +++ b/DockerStandaloneHost/elements/readme.rst @@ -0,0 +1,42 @@ +Docker Elements +=============== + +This folders contains necessary DIB elements to build Docker image +expected by "Docker Standalone Host" Murano application. + + +Prerequisites +------------- + +1. Install diskimage-builder + +.. sourcecode:: bash + + sudo pip install diskimage-builder + +2. Install qemu-utils and kpartx + + +On Ubuntu, Debian: + +.. sourcecode:: bash + + sudo apt-get install qemu-utils kpartx + +On Centos, Fedora: + +.. sourcecode:: bash + + sudo yum install qemu-utils kpartx + + +Image building +-------------- + +.. sourcecode:: bash + + sudo ELEMENTS_PATH=${murano_agent_root}/contrib/elements:${murano_apps_root}/Docker/DockerStandaloneHost/elements disk-image-create \ + vm ubuntu murano-agent docker -o ubuntu14.04-x64-docker + +Where ${murano_agent_root} is a path to murano-agent files +and ${murano_apps_root} is a path to murano-apps files. \ No newline at end of file diff --git a/Kubernetes/KubernetesCluster/elements/docker/install.d/56-docker b/Kubernetes/KubernetesCluster/elements/docker/install.d/56-docker new file mode 100644 index 0000000..499f336 --- /dev/null +++ b/Kubernetes/KubernetesCluster/elements/docker/install.d/56-docker @@ -0,0 +1,16 @@ +#!/bin/bash + +set -eu + +if [ -e /etc/lsb-release ]; then + if [ -e /usr/lib/apt/methods/https ]; then + apt-get update + apt-get install apt-transport-https + fi + apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9 + echo "deb https://get.docker.com/ubuntu docker main" > /etc/apt/sources.list.d/docker.list + apt-get update + apt-get -y install lxc-docker=1.6.0 +else + yum -y install docker +fi \ No newline at end of file diff --git a/Kubernetes/KubernetesCluster/elements/kubernetes/element-deps b/Kubernetes/KubernetesCluster/elements/kubernetes/element-deps new file mode 100644 index 0000000..6d0eac4 --- /dev/null +++ b/Kubernetes/KubernetesCluster/elements/kubernetes/element-deps @@ -0,0 +1 @@ +docker \ No newline at end of file diff --git a/Kubernetes/KubernetesCluster/elements/kubernetes/install.d/57-kubernetes b/Kubernetes/KubernetesCluster/elements/kubernetes/install.d/57-kubernetes new file mode 100644 index 0000000..e695bfc --- /dev/null +++ b/Kubernetes/KubernetesCluster/elements/kubernetes/install.d/57-kubernetes @@ -0,0 +1,70 @@ +#!/bin/bash +install-packages curl wget linux-libc-dev git gcc libc6-dev bridge-utils haproxy + +SVC_ROOT=/opt/bin + +ETCD_LATEST_VERSION="v2.0.9" +KUBE_LATEST_VERSION="v0.15.0" +FLANNEL_LATEST_VERSION="v0.3.1" + +ETCD_LATEST_URL="https://github.com/coreos/etcd/releases/download/${ETCD_LATEST_VERSION}/etcd-${ETCD_LATEST_VERSION}-linux-amd64.tar.gz" +KUBE_LATEST_URL="https://github.com/GoogleCloudPlatform/kubernetes/releases/download/${KUBE_LATEST_VERSION}/kubernetes.tar.gz" +FLANNEL_LATEST_URL="https://github.com/coreos/flannel/archive/${FLANNEL_LATEST_VERSION}.tar.gz" + +mkdir -p ${SVC_ROOT} +pushd ${SVC_ROOT} + +# Install latest etcd +wget -O ${SVC_ROOT}/etcd-latest.tar.gz $ETCD_LATEST_URL +tar xzvf ${SVC_ROOT}/etcd-latest.tar.gz +rm -f ${SVC_ROOT}/etcd-latest.tar.gz + +mv ${SVC_ROOT}/etcd-${ETCD_LATEST_VERSION}-linux-amd64/etcd ${SVC_ROOT}/ +mv ${SVC_ROOT}/etcd-${ETCD_LATEST_VERSION}-linux-amd64/etcdctl ${SVC_ROOT}/ + +rm -rf ${SVC_ROOT}/etcd-${ETCD_LATEST_VERSION}-linux-amd64 + +# Install latest kubernetes +wget -O ${SVC_ROOT}/kubernetes-latest.tar.gz $KUBE_LATEST_URL +tar xzvf ${SVC_ROOT}/kubernetes-latest.tar.gz +rm -f ${SVC_ROOT}/kubernetes-latest.tar.gz + +tar xzvf ${SVC_ROOT}/kubernetes/server/kubernetes-server-linux-amd64.tar.gz +mv ${SVC_ROOT}/kubernetes ${SVC_ROOT}/kubernetes-latest + +cp ${SVC_ROOT}/kubernetes-latest/server/bin/* ${SVC_ROOT}/ + +rm -rf ${SVC_ROOT}/kubernetes-latest + +# Install Go +wget -O go.tar.gz https://storage.googleapis.com/golang/go1.4.2.linux-amd64.tar.gz +tar xzvf go.tar.gz +mv ${SVC_ROOT}/go /usr/local/go +export PATH=$PATH:/usr/local/go/bin + +# Build flannel +wget -O ${SVC_ROOT}/flannel-latest.tar.gz $FLANNEL_LATEST_URL +tar xzvf ${SVC_ROOT}/flannel-latest.tar.gz +rm -f ${SVC_ROOT}/flannel-latest.tar.gz + +mv ${SVC_ROOT}/flannel-* ${SVC_ROOT}/flannel + +pushd ${SVC_ROOT}/flannel +${SVC_ROOT}/flannel/build +popd + +cp ${SVC_ROOT}/flannel/bin/flanneld ${SVC_ROOT}/flanneld + +rm -rf ${SVC_ROOT}/flannel + + +# Update system PATH +sed -i 's/PATH="/PATH="\/opt\/bin:\/opt\/go\/bin:/g' /etc/environment + + +wget -O confd https://github.com/kelseyhightower/confd/releases/download/v0.7.1/confd-0.7.1-linux-amd64 +mv confd /usr/local/bin/confd +chmod +x /usr/local/bin/confd +mkdir -p /etc/confd/{conf.d,templates} + +popd \ No newline at end of file diff --git a/Kubernetes/KubernetesCluster/elements/readme.rst b/Kubernetes/KubernetesCluster/elements/readme.rst new file mode 100644 index 0000000..90e1877 --- /dev/null +++ b/Kubernetes/KubernetesCluster/elements/readme.rst @@ -0,0 +1,42 @@ +Kubernetes Elements +=================== + +This folders contains necessary DIB elements to build Kubernetes image +expected by "Kubernetes Cluster" Murano application. + + +Prerequisites +------------- + +1. Install diskimage-builder + +.. sourcecode:: bash + + sudo pip install diskimage-builder + +2. Install qemu-uils and kpartx + +On Ubuntu, Debian: + +.. sourcecode:: bash + + sudo apt-get install qemu-utils kpartx + + +On Centos, Fedora: + +.. sourcecode:: bash + + sudo yum install qemu-utils kpartx + + +Image building +-------------- + +.. sourcecode:: bash + + sudo ELEMENTS_PATH=${murano_agent_root}/contrib/elements:${murano_apps_root}/Docker/Kubernetes/KubernetesCluster/elements disk-image-create \ + vm ubuntu murano-agent docker -o ubuntu14.04-x64-kubernetes + +Where ${murano_agent_root} is a path to murano-agent files +and ${murano_apps_root} is a path to murano-apps files. \ No newline at end of file