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
This commit is contained in:
portdirect 2016-12-18 10:58:37 +00:00
parent 26fb747b0a
commit d3565b426e
7 changed files with 92 additions and 0 deletions

View File

@ -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 []

View File

@ -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

View File

@ -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 []

View File

@ -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 []

View File

@ -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 []

View File

@ -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 []

View File

@ -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.