aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Bourke <paul.bourke@oracle.com>2016-08-03 13:13:52 +0000
committerPaul Bourke <paul.bourke@oracle.com>2016-08-11 13:46:05 +0000
commit99cf9465f8307d9fb99a4c14d72e63a0df833b58 (patch)
tree7765bc0cf8a78fe23e7d66e8d1b5d5d79c1383f8
parent495a905b8032b4d3c68246be204384da2b0f3c3d (diff)
downloadkolla-99cf9465f8307d9fb99a4c14d72e63a0df833b58.tar.gz
kolla-99cf9465f8307d9fb99a4c14d72e63a0df833b58.zip
Customizations for Cinder
Implement the new Jinja2 based templating patterns for Cinder, as outlined in the below blueprint. Change-Id: I8d0131aff9cc406bd80ce384003308aee672412a Partially-implements: blueprint third-party-plugin-support
-rw-r--r--docker/cinder/cinder-api/Dockerfile.j220
-rw-r--r--docker/cinder/cinder-backup/Dockerfile.j212
-rw-r--r--docker/cinder/cinder-base/Dockerfile.j256
-rw-r--r--docker/cinder/cinder-rpcbind/Dockerfile.j220
-rw-r--r--docker/cinder/cinder-scheduler/Dockerfile.j212
-rw-r--r--docker/cinder/cinder-volume/Dockerfile.j237
6 files changed, 103 insertions, 54 deletions
diff --git a/docker/cinder/cinder-api/Dockerfile.j2 b/docker/cinder/cinder-api/Dockerfile.j2
index 2b2414b8d..3d8d08259 100644
--- a/docker/cinder/cinder-api/Dockerfile.j2
+++ b/docker/cinder/cinder-api/Dockerfile.j2
@@ -1,25 +1,33 @@
FROM {{ namespace }}/{{ image_prefix }}cinder-base:{{ tag }}
MAINTAINER {{ maintainer }}
+{% import "macros.j2" as macros with context %}
+
{% if install_type == 'binary' %}
{% if base_distro in ['centos', 'fedora', 'oraclelinux', 'rhel'] %}
-RUN yum -y install \
- python-keystone \
- && yum clean all
+ {% set cinder_api_packages = [
+ 'python-keystone'
+ ] %}
+
{% elif base_distro in ['ubuntu'] %}
-RUN apt-get -y install --no-install-recommends \
- cinder-api \
- && apt-get clean
+ {% set cinder_api_packages = [
+ 'cinder-api'
+ ] %}
{% endif %}
+
+RUN {{ macros.install_packages(cinder_api_packages | customizable("packages")) }}
+
{% endif %}
COPY extend_start.sh /usr/local/bin/kolla_cinder_extend_start
RUN chmod 755 /usr/local/bin/kolla_cinder_extend_start
+{% block cinder_api_footer %}{% endblock %}
+{% block footer %}{% endblock %}
{{ include_footer }}
USER cinder
diff --git a/docker/cinder/cinder-backup/Dockerfile.j2 b/docker/cinder/cinder-backup/Dockerfile.j2
index 13d707d87..e187693f6 100644
--- a/docker/cinder/cinder-backup/Dockerfile.j2
+++ b/docker/cinder/cinder-backup/Dockerfile.j2
@@ -1,16 +1,22 @@
FROM {{ namespace }}/{{ image_prefix }}cinder-base:{{ tag }}
MAINTAINER {{ maintainer }}
+{% import "macros.j2" as macros with context %}
+
{% if install_type == 'binary' %}
{% if base_distro in ['ubuntu'] %}
-RUN apt-get -y install --no-install-recommends \
- cinder-backup \
- && apt-get clean
+ {% set cinder_backup_packages = [
+ 'cinder-backup'
+ ] %}
+
+RUN {{ macros.install_packages(cinder_backup_packages | customizable("packages")) }}
{% endif %}
{% endif %}
+{% block cinder_backup_footer %}{% endblock %}
+{% block footer %}{% endblock %}
{{ include_footer }}
USER cinder
diff --git a/docker/cinder/cinder-base/Dockerfile.j2 b/docker/cinder/cinder-base/Dockerfile.j2
index 50b15f675..e6749442e 100644
--- a/docker/cinder/cinder-base/Dockerfile.j2
+++ b/docker/cinder/cinder-base/Dockerfile.j2
@@ -1,47 +1,51 @@
FROM {{ namespace }}/{{ image_prefix }}openstack-base:{{ tag }}
MAINTAINER {{ maintainer }}
+{% import "macros.j2" as macros with context %}
+
{% if install_type == 'binary' %}
{% if base_distro in ['centos', 'fedora', 'oraclelinux', 'rhel'] %}
-RUN yum -y install \
- openstack-cinder \
- python-automaton \
- lvm2 \
- ceph-common \
- && yum clean all \
- && mkdir -p /etc/ceph
+ {% set cinder_base_packages = [
+ 'openstack-cinder',
+ 'python-automaton',
+ 'lvm2',
+ 'ceph-common'
+ ] %}
{% elif base_distro in ['ubuntu'] %}
-RUN apt-get -y install --no-install-recommends \
- cinder-common \
- ceph-common \
- lvm2 \
- && apt-get clean \
- && mkdir -p /etc/ceph
+ {% set cinder_base_packages = [
+ 'cinder-common',
+ 'ceph-common',
+ 'lvm2'
+ ] %}
{% endif %}
+
+RUN {{ macros.install_packages(cinder_base_packages | customizable("packages")) }}
+
{% elif install_type == 'source' %}
{% if base_distro in ['centos', 'fedora', 'oraclelinux', 'rhel'] %}
-RUN yum -y install \
- lvm2 \
- qemu-img \
- ceph-common \
- && yum clean all
+ {% set cinder_base_packages = [
+ 'lvm2',
+ 'qemu-img',
+ 'ceph-common'
+ ] %}
{% elif base_distro in ['ubuntu', 'debian'] %}
-RUN apt-get -y install --no-install-recommends \
- lvm2 \
- qemu-utils \
- ceph-common \
- && apt-get clean \
- && mkdir -p /etc/ceph
+ {% set cinder_base_packages = [
+ 'lvm2',
+ 'qemu-utils',
+ 'ceph-common'
+ ] %}
{% endif %}
+RUN {{ macros.install_packages(cinder_base_packages | customizable("packages")) }}
+
ADD cinder-base-archive /cinder-base-source
RUN ln -s cinder-base-source/* cinder \
&& useradd --user-group cinder \
@@ -57,7 +61,11 @@ COPY cinder_sudoers /etc/sudoers.d/kolla_cinder_sudoers
COPY extend_start.sh /usr/local/bin/kolla_extend_start
RUN usermod -a -G kolla cinder \
+ && mkdir -p /etc/ceph \
&& chmod 750 /etc/sudoers.d \
&& chmod 440 /etc/sudoers.d/kolla_cinder_sudoers \
&& touch /usr/local/bin/kolla_cinder_extend_start \
&& chmod 755 /usr/local/bin/kolla_extend_start /usr/local/bin/kolla_cinder_extend_start
+
+{% block cinder_base_footer %}{% endblock %}
+{% block footer %}{% endblock %}
diff --git a/docker/cinder/cinder-rpcbind/Dockerfile.j2 b/docker/cinder/cinder-rpcbind/Dockerfile.j2
index 02085901a..eede97c8e 100644
--- a/docker/cinder/cinder-rpcbind/Dockerfile.j2
+++ b/docker/cinder/cinder-rpcbind/Dockerfile.j2
@@ -1,21 +1,27 @@
FROM {{ namespace }}/{{ image_prefix }}cinder-base:{{ tag }}
MAINTAINER {{ maintainer }}
+{% import "macros.j2" as macros with context %}
+
{% if base_distro in ['centos', 'fedora', 'oraclelinux', 'rhel'] %}
-RUN yum -y install \
- nfs-utils \
- nfs-utils-lib \
- && yum clean all
+ {% set cinder_rpcbind_packages = [
+ 'nfs-utils',
+ 'nfs-utils-lib'
+ ] %}
{% elif base_distro in ['ubuntu', 'debian'] %}
-RUN apt-get -y install --no-install-recommends \
- rpcbind \
- && apt-get clean
+ {% set cinder_rpcbind_packages = [
+ 'rpcbind'
+ ] %}
{% endif %}
+RUN {{ macros.install_packages(cinder_rpcbind_packages | customizable("packages")) }}
+
+{% block cinder_rpcbind_footer %}{% endblock %}
+{% block footer %}{% endblock %}
{{ include_footer }}
USER cinder
diff --git a/docker/cinder/cinder-scheduler/Dockerfile.j2 b/docker/cinder/cinder-scheduler/Dockerfile.j2
index 3c8c0c6c6..aa5345684 100644
--- a/docker/cinder/cinder-scheduler/Dockerfile.j2
+++ b/docker/cinder/cinder-scheduler/Dockerfile.j2
@@ -1,16 +1,22 @@
FROM {{ namespace }}/{{ image_prefix }}cinder-base:{{ tag }}
MAINTAINER {{ maintainer }}
+{% import "macros.j2" as macros with context %}
+
{% if install_type == 'binary' %}
{% if base_distro in ['ubuntu'] %}
-RUN apt-get -y install --no-install-recommends \
- cinder-scheduler \
- && apt-get clean
+ {% set cinder_scheduler_packages = [
+ 'cinder-scheduler'
+ ] %}
+
+RUN {{ macros.install_packages(cinder_scheduler_packages | customizable("packages")) }}
{% endif %}
{% endif %}
+{% block cinder_scheduler_footer %}{% endblock %}
+{% block footer %}{% endblock %}
{{ include_footer }}
USER cinder
diff --git a/docker/cinder/cinder-volume/Dockerfile.j2 b/docker/cinder/cinder-volume/Dockerfile.j2
index 2fe940de3..8cb7e28b5 100644
--- a/docker/cinder/cinder-volume/Dockerfile.j2
+++ b/docker/cinder/cinder-volume/Dockerfile.j2
@@ -1,31 +1,44 @@
FROM {{ namespace }}/{{ image_prefix }}cinder-base:{{ tag }}
MAINTAINER {{ maintainer }}
+{% import "macros.j2" as macros with context %}
+
{% if base_distro in ['centos', 'fedora', 'oraclelinux', 'rhel'] %}
-RUN yum -y install \
- scsi-target-utils \
- && yum clean all
+ {% set cinder_volume_packages = [
+ 'scsi-target-utils'
+ ] %}
+
+RUN {{ macros.install_packages(cinder_volume_packages | customizable("packages")) }}
+{% block cinder_volume_redhat_setup %}
RUN sed -i '1 i include /var/lib/cinder/volumes/*' /etc/tgt/tgtd.conf
+{% endblock %}
{% elif base_distro in ['ubuntu', 'debian'] %}
-RUN apt-get -y install --no-install-recommends \
- tgt \
- && apt-get clean
+ {% set cinder_volume_packages = [
+ 'tgt'
+ ] %}
+
+RUN {{ macros.install_packages(cinder_volume_packages | customizable("packages")) }}
+{% block cinder_volume_ubuntu_setup %}
RUN sed -i '1 i include /var/lib/cinder/volumes/*' /etc/tgt/targets.conf
+{% endblock %}
{% endif %}
+
{% if install_type == 'binary' %}
-{% if base_distro in ['ubuntu', 'debian'] %}
+ {% if base_distro in ['ubuntu', 'debian'] %}
-RUN apt-get -y install --no-install-recommends \
- cinder-volume \
- && apt-get clean
+ {% set cinder_volume_packages = [
+ 'cinder-volume'
+ ] %}
-{% endif %}
+RUN {{ macros.install_packages(cinder_volume_packages | customizable("packages")) }}
+
+ {% endif %}
{% endif %}
COPY cinder_sudoers /etc/sudoers.d/cinder_sudoers
@@ -35,6 +48,8 @@ RUN chmod 750 /etc/sudoers.d \
&& chmod 440 /etc/sudoers.d/cinder_sudoers \
&& chmod 755 /usr/local/bin/kolla_extend_start
+{% block cinder_volume_footer %}{% endblock %}
+{% block footer %}{% endblock %}
{{ include_footer }}
USER cinder