diff --git a/docker/octavia/octavia-api/Dockerfile.j2 b/docker/octavia/octavia-api/Dockerfile.j2 new file mode 100644 index 0000000000..053d355a6d --- /dev/null +++ b/docker/octavia/octavia-api/Dockerfile.j2 @@ -0,0 +1,25 @@ +FROM {{ namespace }}/{{ image_prefix }}octavia-base:{{ tag }} +MAINTAINER {{ maintainer }} + +{% block octavia_api_header %}{% endblock %} + +{% import "macros.j2" as macros with context %} + +{% if install_type == 'binary' %} + {% if base_distro in ['centos', 'oraclelinux', 'rhel'] %} + {% set octavia_api_packages = [ + 'openstack-octavia-api' + ] %} + {% elif base_distro in ['ubuntu'] %} +RUN echo '{{ install_type }} not yet available for {{ base_distro }}' \ + && /bin/false + {% endif %} + +{{ macros.install_packages(octavia_api_packages | customizable("packages")) }} + +{% endif %} + +{% block octavia_api_footer %}{% endblock %} +{% block footer %}{% endblock %} + +USER octavia diff --git a/docker/octavia/octavia-base/Dockerfile.j2 b/docker/octavia/octavia-base/Dockerfile.j2 new file mode 100644 index 0000000000..2287b859c5 --- /dev/null +++ b/docker/octavia/octavia-base/Dockerfile.j2 @@ -0,0 +1,30 @@ +FROM {{ namespace }}/{{ image_prefix }}openstack-base:{{ tag }} +MAINTAINER {{ maintainer }} + +{% block octavia_base_header %}{% endblock %} + +{% import "macros.j2" as macros with context %} + +{% if install_type == 'binary' %} + {% if base_distro in ['centos', 'oraclelinux', 'rhel'] %} + {% set octavia_base_packages = [ + 'openstack-octavia-common' + ] %} + {% elif base_distro in ['ubuntu'] %} +RUN echo '{{ install_type }} not yet available for {{ base_distro }}' \ + && /bin/false + {% endif %} + +{{ macros.install_packages(octavia_base_packages | customizable("packages")) }} + +{% elif install_type == 'source' %} +ADD octavia-base-archive /octavia-base-source +RUN ln -s /octavia-base-source/* octavia \ + && useradd --user-group --create-home --home-dir /var/lib/octavia octavia \ + && /var/lib/kolla/venv/bin/pip --no-cache-dir install --upgrade -c requirements/upper-constraints.txt /octavia \ + && mkdir -p /etc/octavia \ + && cp -r /octavia/etc/* /etc/octavia/ \ + && chown -R octavia: /etc/octavia +{% endif %} + +{% block octavia_base_footer %}{% endblock %} diff --git a/docker/octavia/octavia-health-manager/Dockerfile.j2 b/docker/octavia/octavia-health-manager/Dockerfile.j2 new file mode 100644 index 0000000000..853cfb355d --- /dev/null +++ b/docker/octavia/octavia-health-manager/Dockerfile.j2 @@ -0,0 +1,25 @@ +FROM {{ namespace }}/{{ image_prefix }}octavia-base:{{ tag }} +MAINTAINER {{ maintainer }} + +{% block octavia_health_manager_header %}{% endblock %} + +{% import "macros.j2" as macros with context %} + +{% if install_type == 'binary' %} + {% if base_distro in ['centos', 'oraclelinux', 'rhel'] %} + {% set octavia_health_manager_packages = [ + 'openstack-octavia-health-manager' + ] %} + {% elif base_distro in ['ubuntu'] %} +RUN echo '{{ install_type }} not yet available for {{ base_distro }}' \ + && /bin/false + {% endif %} + +{{ macros.install_packages(octavia_health_manager_packages | customizable("packages")) }} + +{% endif %} + +{% block octavia_health_manager_footer %}{% endblock %} +{% block footer %}{% endblock %} + +USER octavia diff --git a/docker/octavia/octavia-housekeeping/Dockerfile.j2 b/docker/octavia/octavia-housekeeping/Dockerfile.j2 new file mode 100644 index 0000000000..bc70fb1751 --- /dev/null +++ b/docker/octavia/octavia-housekeeping/Dockerfile.j2 @@ -0,0 +1,25 @@ +FROM {{ namespace }}/{{ image_prefix }}octavia-base:{{ tag }} +MAINTAINER {{ maintainer }} + +{% block octavia_housekeeping_header %}{% endblock %} + +{% import "macros.j2" as macros with context %} + +{% if install_type == 'binary' %} + {% if base_distro in ['centos', 'oraclelinux', 'rhel'] %} + {% set octavia_housekeeping_packages = [ + 'openstack-octavia-housekeeping' + ] %} + {% elif base_distro in ['ubuntu'] %} +RUN echo '{{ install_type }} not yet available for {{ base_distro }}' \ + && /bin/false + {% endif %} + +{{ macros.install_packages(octavia_housekeeping_packages | customizable("packages")) }} + +{% endif %} + +{% block octavia_housekeeping_footer %}{% endblock %} +{% block footer %}{% endblock %} + +USER octavia diff --git a/docker/octavia/octavia-worker/Dockerfile.j2 b/docker/octavia/octavia-worker/Dockerfile.j2 new file mode 100644 index 0000000000..8c64f6161b --- /dev/null +++ b/docker/octavia/octavia-worker/Dockerfile.j2 @@ -0,0 +1,25 @@ +FROM {{ namespace }}/{{ image_prefix }}octavia-base:{{ tag }} +MAINTAINER {{ maintainer }} + +{% block octavia_worker_header %}{% endblock %} + +{% import "macros.j2" as macros with context %} + +{% if install_type == 'binary' %} + {% if base_distro in ['centos', 'oraclelinux', 'rhel'] %} + {% set octavia_worker_packages = [ + 'openstack-octavia-worker' + ] %} + {% elif base_distro in ['ubuntu'] %} +RUN echo '{{ install_type }} not yet available for {{ base_distro }}' \ + && /bin/false + {% endif %} + +{{ macros.install_packages(octavia_worker_packages | customizable("packages")) }} + +{% endif %} + +{% block octavia_worker_footer %}{% endblock %} +{% block footer %}{% endblock %} + +USER octavia diff --git a/kolla/common/config.py b/kolla/common/config.py index 6c7b734df1..1c3c5d2e4a 100644 --- a/kolla/common/config.py +++ b/kolla/common/config.py @@ -48,8 +48,8 @@ _PROFILE_OPTS = [ default=['aodh', 'cloudkitty', 'congress', 'designate', 'freezer', 'gnocchi', 'influxdb', 'ironic', 'karbor', 'kuryr', 'magnum', 'manila', 'mistral', 'murano', - 'panko', 'rally', 'sahara', 'searchlight', 'senlin', - 'solum', 'telegraf', 'trove', 'zaqar'], + 'octavia', 'panko', 'rally', 'sahara', 'searchlight', + 'senlin', 'solum', 'telegraf', 'trove', 'zaqar'], help='Aux Images'), cfg.ListOpt('default', default=['chrony', 'cron', 'kolla-toolbox', 'glance', @@ -286,6 +286,10 @@ SOURCES = { 'type': 'url', 'location': ('http://github.com/kanaka/noVNC/tarball/' 'v0.5.1')}, + 'octavia-base': { + 'type': 'url', + 'location': ('http://tarballs.openstack.org/octavia/' + 'octavia-master.tar.gz')}, 'panko-base': { 'type': 'url', 'location': ('http://tarballs.openstack.org/panko/' diff --git a/tests/test_build.py b/tests/test_build.py index c786cf9b08..a032c458b1 100644 --- a/tests/test_build.py +++ b/tests/test_build.py @@ -97,6 +97,7 @@ class BuildTestCentosSource(BuildTest, base.BaseTestCase): class BuildTestUbuntuBinary(BuildTest, base.BaseTestCase): excluded_images = ["karbor-base", "kuryr-base", + "octavia-base", "neutron-sfc-agent", "searchlight-base", "senlin-base",