aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorportdirect <pete@port.direct>2016-12-18 10:58:37 +0000
committerportdirect <pete@port.direct>2016-12-23 12:24:34 +0000
commitd3565b426e5fdf576f2fe8e8cbf1b03533880787 (patch)
treec94350ea56cf508753c85a3b728543f953fbfc27
parent26fb747b0a6ecf63fcb003836d80799779e6b50e (diff)
downloadkolla-d3565b426e5fdf576f2fe8e8cbf1b03533880787.tar.gz
kolla-d3565b426e5fdf576f2fe8e8cbf1b03533880787.zip
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
-rw-r--r--docker/kube/kube-apiserver/Dockerfile.j212
-rw-r--r--docker/kube/kube-base/Dockerfile.j26
-rw-r--r--docker/kube/kube-controller-manager/Dockerfile.j225
-rw-r--r--docker/kube/kube-discovery/Dockerfile.j213
-rw-r--r--docker/kube/kube-proxy/Dockerfile.j212
-rw-r--r--docker/kube/kube-scheduler/Dockerfile.j212
-rw-r--r--releasenotes/notes/add-kubernetes-images-76f5a60e98d09eb7.yaml12
7 files changed, 92 insertions, 0 deletions
diff --git a/docker/kube/kube-apiserver/Dockerfile.j2 b/docker/kube/kube-apiserver/Dockerfile.j2
new file mode 100644
index 000000000..9edd42a5e
--- /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 000000000..db183171b
--- /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 000000000..713778c8e
--- /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 000000000..37e5d14dc
--- /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 000000000..7eafe8fcd
--- /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 000000000..7009b396f
--- /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 000000000..1b25581cc
--- /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.