From d3565b426e5fdf576f2fe8e8cbf1b03533880787 Mon Sep 17 00:00:00 2001 From: portdirect Date: Sun, 18 Dec 2016 10:58:37 +0000 Subject: [PATCH] Add Kubernetes Images for Kolla-Kubernetes These images are intended to be used with standard Kubernetes deployment tooling. They are included with Kolla to allow operators to chose the OS Base image that is used in their environments, and provides Ceph PV support. Implements: blueprint add-kubernetes-images Change-Id: Ifb84a2b9458d071679e1e55679653d702624d702 --- docker/kube/kube-apiserver/Dockerfile.j2 | 12 +++++++++ docker/kube/kube-base/Dockerfile.j2 | 6 +++++ .../kube-controller-manager/Dockerfile.j2 | 25 +++++++++++++++++++ docker/kube/kube-discovery/Dockerfile.j2 | 13 ++++++++++ docker/kube/kube-proxy/Dockerfile.j2 | 12 +++++++++ docker/kube/kube-scheduler/Dockerfile.j2 | 12 +++++++++ ...dd-kubernetes-images-76f5a60e98d09eb7.yaml | 12 +++++++++ 7 files changed, 92 insertions(+) create mode 100644 docker/kube/kube-apiserver/Dockerfile.j2 create mode 100644 docker/kube/kube-base/Dockerfile.j2 create mode 100644 docker/kube/kube-controller-manager/Dockerfile.j2 create mode 100644 docker/kube/kube-discovery/Dockerfile.j2 create mode 100644 docker/kube/kube-proxy/Dockerfile.j2 create mode 100644 docker/kube/kube-scheduler/Dockerfile.j2 create mode 100644 releasenotes/notes/add-kubernetes-images-76f5a60e98d09eb7.yaml diff --git a/docker/kube/kube-apiserver/Dockerfile.j2 b/docker/kube/kube-apiserver/Dockerfile.j2 new file mode 100644 index 0000000000..9edd42a5e6 --- /dev/null +++ b/docker/kube/kube-apiserver/Dockerfile.j2 @@ -0,0 +1,12 @@ +FROM {{ namespace }}/{{ image_prefix }}kube-base:{{ tag }} +MAINTAINER {{ maintainer }} + +ENV KUBERNETES_COMPONENT=kube-apiserver + +RUN true \ + && curl -L ${KUBERNETES_DOWNLOAD_ROOT}/${KUBERNETES_COMPONENT} -o /usr/bin/${KUBERNETES_COMPONENT} \ + && chmod +x /usr/bin/${KUBERNETES_COMPONENT} + +# Clear any customisation by Kolla to entrypoint & command +ENTRYPOINT [] +CMD [] diff --git a/docker/kube/kube-base/Dockerfile.j2 b/docker/kube/kube-base/Dockerfile.j2 new file mode 100644 index 0000000000..db183171b3 --- /dev/null +++ b/docker/kube/kube-base/Dockerfile.j2 @@ -0,0 +1,6 @@ +FROM {{ namespace }}/{{ image_prefix }}base:{{ tag }} +MAINTAINER {{ maintainer }} + +ENV KUBERNETES_VERSION=v1.5.1 + +ENV KUBERNETES_DOWNLOAD_ROOT=https://storage.googleapis.com/kubernetes-release/release/${KUBERNETES_VERSION}/bin/linux/amd64 diff --git a/docker/kube/kube-controller-manager/Dockerfile.j2 b/docker/kube/kube-controller-manager/Dockerfile.j2 new file mode 100644 index 0000000000..713778c8e1 --- /dev/null +++ b/docker/kube/kube-controller-manager/Dockerfile.j2 @@ -0,0 +1,25 @@ +FROM {{ namespace }}/{{ image_prefix }}kube-base:{{ tag }} +MAINTAINER {{ maintainer }} + +ENV KUBERNETES_COMPONENT=kube-controller-manager + +{% import "macros.j2" as macros with context %} + +{% if base_distro in ['centos', 'oraclelinux', 'rhel'] %} + {% set ceph_support_packages = [ + 'ceph-common' + ] %} +{% elif base_distro in ['ubuntu', 'debian'] %} + {% set ceph_support_packages = [ + 'ceph-common' + ] %} +{% endif %} +{{ macros.install_packages(ceph_support_packages | customizable("packages")) }} + +RUN true \ + && curl -L ${KUBERNETES_DOWNLOAD_ROOT}/${KUBERNETES_COMPONENT} -o /usr/bin/${KUBERNETES_COMPONENT} \ + && chmod +x /usr/bin/${KUBERNETES_COMPONENT} + +# Clear any customisation by Kolla to entrypoint & command +ENTRYPOINT [] +CMD [] diff --git a/docker/kube/kube-discovery/Dockerfile.j2 b/docker/kube/kube-discovery/Dockerfile.j2 new file mode 100644 index 0000000000..37e5d14dc6 --- /dev/null +++ b/docker/kube/kube-discovery/Dockerfile.j2 @@ -0,0 +1,13 @@ +FROM {{ namespace }}/{{ image_prefix }}kube-base:{{ tag }} +MAINTAINER {{ maintainer }} + +ENV KUBERNETES_COMPONENT=kube-discovery + +# To match upstream we load the binary to /usr/local/bin +RUN true \ + && curl -L ${KUBERNETES_DOWNLOAD_ROOT}/${KUBERNETES_COMPONENT} -o /usr/local/bin/${KUBERNETES_COMPONENT} \ + && chmod +x /usr/local/bin/${KUBERNETES_COMPONENT} + +# Clear any customisation by Kolla to entrypoint & command +ENTRYPOINT [] +CMD [] diff --git a/docker/kube/kube-proxy/Dockerfile.j2 b/docker/kube/kube-proxy/Dockerfile.j2 new file mode 100644 index 0000000000..7eafe8fcdb --- /dev/null +++ b/docker/kube/kube-proxy/Dockerfile.j2 @@ -0,0 +1,12 @@ +FROM {{ namespace }}/{{ image_prefix }}kube-base:{{ tag }} +MAINTAINER {{ maintainer }} + +ENV KUBERNETES_COMPONENT=kube-proxy + +RUN true \ + && curl -L ${KUBERNETES_DOWNLOAD_ROOT}/${KUBERNETES_COMPONENT} -o /usr/bin/${KUBERNETES_COMPONENT} \ + && chmod +x /usr/bin/${KUBERNETES_COMPONENT} + +# Clear any customisation by Kolla to entrypoint & command +ENTRYPOINT [] +CMD [] diff --git a/docker/kube/kube-scheduler/Dockerfile.j2 b/docker/kube/kube-scheduler/Dockerfile.j2 new file mode 100644 index 0000000000..7009b396f5 --- /dev/null +++ b/docker/kube/kube-scheduler/Dockerfile.j2 @@ -0,0 +1,12 @@ +FROM {{ namespace }}/{{ image_prefix }}kube-base:{{ tag }} +MAINTAINER {{ maintainer }} + +ENV KUBERNETES_COMPONENT=kube-scheduler + +RUN true \ + && curl -L ${KUBERNETES_DOWNLOAD_ROOT}/${KUBERNETES_COMPONENT} -o /usr/bin/${KUBERNETES_COMPONENT} \ + && chmod +x /usr/bin/${KUBERNETES_COMPONENT} + +# Clear any customisation by Kolla to entrypoint & command +ENTRYPOINT [] +CMD [] diff --git a/releasenotes/notes/add-kubernetes-images-76f5a60e98d09eb7.yaml b/releasenotes/notes/add-kubernetes-images-76f5a60e98d09eb7.yaml new file mode 100644 index 0000000000..1b25581cc1 --- /dev/null +++ b/releasenotes/notes/add-kubernetes-images-76f5a60e98d09eb7.yaml @@ -0,0 +1,12 @@ +--- +prelude: | + Kolla-Kubernetes by default uses Ceph for stateful storage. With + Kubernetes 1.5 support was added for Ceph dynamic volume provisioning as + requested by claims made against the API server. The images supplied + by Google do not include the RBD binary that is required to support this + feature. +features: + - Add Kubernetes control pane images with Ceph RBD support. +issues: | + These images will need to be retagged by operators to use with standard + Kubernetes deployment tooling such as kubeadm.