From 3801d4b1402778877982f9c545895ea7bfd63d96 Mon Sep 17 00:00:00 2001 From: caowei Date: Mon, 15 May 2017 11:09:10 +0800 Subject: Add dragonflow container Change-Id: I8ab47f96a86c524e14a2c65dd58f1f8fa54d0895 Partially-implements: blueprint dragonflow --- docker/dragonflow/dragonflow-base/Dockerfile.j2 | 49 ++++++++++++++++++++++ docker/dragonflow/dragonflow-base/extend_start.sh | 12 ++++++ .../dragonflow/dragonflow-controller/Dockerfile.j2 | 16 +++++++ .../dragonflow/dragonflow-metadata/Dockerfile.j2 | 16 +++++++ .../dragonflow-publisher-service/Dockerfile.j2 | 16 +++++++ 5 files changed, 109 insertions(+) create mode 100644 docker/dragonflow/dragonflow-base/Dockerfile.j2 create mode 100644 docker/dragonflow/dragonflow-base/extend_start.sh create mode 100644 docker/dragonflow/dragonflow-controller/Dockerfile.j2 create mode 100644 docker/dragonflow/dragonflow-metadata/Dockerfile.j2 create mode 100644 docker/dragonflow/dragonflow-publisher-service/Dockerfile.j2 (limited to 'docker') diff --git a/docker/dragonflow/dragonflow-base/Dockerfile.j2 b/docker/dragonflow/dragonflow-base/Dockerfile.j2 new file mode 100644 index 000000000..50d191e91 --- /dev/null +++ b/docker/dragonflow/dragonflow-base/Dockerfile.j2 @@ -0,0 +1,49 @@ +FROM {{ namespace }}/{{ image_prefix }}openstack-base:{{ tag }} +LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build_date }}" + +{% block dragonflow_base_header %}{% endblock %} + +{% import "macros.j2" as macros with context %} + +{{ macros.configure_user(name='dragonflow') }} + +{% if install_type == 'binary' %} + +RUN echo '{{ install_type }} not yet available for {{ base_distro }}' \ + && /bin/false + +{% elif install_type == 'source' %} + +{% if base_distro in ['centos', 'oraclelinux', 'rhel'] %} + {% set dragonflow_base_packages = [ + 'zeromq' + ] %} + +{% elif base_distro in ['debian', 'ubuntu'] %} + {% set dragonflow_base_packages = [ + 'libzmq1' + ] %} + +{% endif %} + +{{ macros.install_packages(dragonflow_base_packages | customizable("packages")) }} + +{% set dragonflow_base_pip_packages = [ + '/dragonflow' +] %} + +ADD dragonflow-base-archive /dragonflow-base-source +RUN ln -s dragonflow-base-source/* dragonflow \ + && {{ macros.install_pip(dragonflow_base_pip_packages | customizable("pip_packages")) }} \ + && mkdir -p /etc/dragonflow \ + && cp -r /dragonflow/etc/* /etc/dragonflow/ \ + && chown -R dragonflow: /etc/dragonflow + +{% endif %} + +COPY extend_start.sh /usr/local/bin/kolla_extend_start + +RUN touch /usr/local/bin/kolla_dragonflow_extend_start \ + && chmod 755 /usr/local/bin/kolla_extend_start /usr/local/bin/kolla_dragonflow_extend_start + +{% block dragonflow_base_footer %}{% endblock %} diff --git a/docker/dragonflow/dragonflow-base/extend_start.sh b/docker/dragonflow/dragonflow-base/extend_start.sh new file mode 100644 index 000000000..eeb896f78 --- /dev/null +++ b/docker/dragonflow/dragonflow-base/extend_start.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +# Create log dir for dragonflow logs +LOG_DIR="/var/log/kolla/dragonflow" +if [[ ! -d "${LOG_DIR}" ]]; then + mkdir -p ${LOG_DIR} +fi +if [[ $(stat -c %a ${LOG_DIR}) != "755" ]]; then + chmod 755 ${LOG_DIR} +fi + +. /usr/local/bin/kolla_dragonflow_extend_start diff --git a/docker/dragonflow/dragonflow-controller/Dockerfile.j2 b/docker/dragonflow/dragonflow-controller/Dockerfile.j2 new file mode 100644 index 000000000..5efaa3115 --- /dev/null +++ b/docker/dragonflow/dragonflow-controller/Dockerfile.j2 @@ -0,0 +1,16 @@ +FROM {{ namespace }}/{{ image_prefix }}dragonflow-base:{{ tag }} +LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build_date }}" + +{% block dragonflow_controller_header %}{% endblock %} + +{% if install_type == 'binary' %} + +RUN echo '{{ install_type }} not yet available for {{ base_distro }}' \ + && /bin/false + +{% endif %} + +{% block dragonflow_controller_footer %}{% endblock %} +{% block footer %}{% endblock %} + +USER dragonflow diff --git a/docker/dragonflow/dragonflow-metadata/Dockerfile.j2 b/docker/dragonflow/dragonflow-metadata/Dockerfile.j2 new file mode 100644 index 000000000..93f93a724 --- /dev/null +++ b/docker/dragonflow/dragonflow-metadata/Dockerfile.j2 @@ -0,0 +1,16 @@ +FROM {{ namespace }}/{{ image_prefix }}dragonflow-base:{{ tag }} +LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build_date }}" + +{% block dragonflow_metadata_header %}{% endblock %} + +{% if install_type == 'binary' %} + +RUN echo '{{ install_type }} not yet available for {{ base_distro }}' \ + && /bin/false + +{% endif %} + +{% block dragonflow_metadata_footer %}{% endblock %} +{% block footer %}{% endblock %} + +USER dragonflow diff --git a/docker/dragonflow/dragonflow-publisher-service/Dockerfile.j2 b/docker/dragonflow/dragonflow-publisher-service/Dockerfile.j2 new file mode 100644 index 000000000..8c55ad58e --- /dev/null +++ b/docker/dragonflow/dragonflow-publisher-service/Dockerfile.j2 @@ -0,0 +1,16 @@ +FROM {{ namespace }}/{{ image_prefix }}dragonflow-base:{{ tag }} +LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build_date }}" + +{% block dragonflow_publisher_service_header %}{% endblock %} + +{% if install_type == 'binary' %} + +RUN echo '{{ install_type }} not yet available for {{ base_distro }}' \ + && /bin/false + +{% endif %} + +{% block dragonflow_publisher_service_footer %}{% endblock %} +{% block footer %}{% endblock %} + +USER dragonflow -- cgit v1.2.3