Add Qinling containers

Add Qinling Dockerfile , Qinling is an OpenStack project
to provide "Function as a service". This project aims to
provide a platform to support serverless functions.

Change-Id: Idebf5c8756a0d0225adcce29b45a399120bb5eb6
Implements: blueprint qinling-support
This commit is contained in:
Gaetan Trellu 2019-05-15 22:43:11 -04:00
parent b55fa2f8b7
commit dbdf927d39
10 changed files with 121 additions and 0 deletions

View File

@ -101,6 +101,7 @@ Kolla provides images to deploy the following OpenStack projects:
- `Nova <https://docs.openstack.org/nova/latest/>`__
- `Octavia <https://docs.openstack.org/octavia/latest/>`__
- `Panko <https://docs.openstack.org/panko/latest/>`__
- `Qinling <https://docs.openstack.org/qinling/latest/>`__
- `Rally <https://docs.openstack.org/rally/latest/>`__
- `Sahara <https://docs.openstack.org/sahara/latest/>`__
- `Searchlight <https://docs.openstack.org/searchlight/latest/>`__

View File

@ -192,6 +192,14 @@ function config_octavia_dashboard {
"${SITE_PACKAGES}/openstack_dashboard/local/enabled/_1482_project_load_balancer_panel.py"
}
function config_qinling_dashboard {
for file in ${SITE_PACKAGES}/qinling_dashboard/enabled/_*[^__].py; do
config_dashboard "${ENABLE_QINLING}" \
"${SITE_PACKAGES}/qinling_dashboard/enabled/${file##*/}" \
"${SITE_PACKAGES}/openstack_dashboard/local/enabled/${file##*/}"
done
}
function config_sahara_dashboard {
for file in ${SITE_PACKAGES}/sahara_dashboard/enabled/_*[^__].py; do
config_dashboard "${ENABLE_SAHARA}" \
@ -324,6 +332,7 @@ config_murano_dashboard
config_neutron_lbaas
config_neutron_vpnaas_dashboard
config_octavia_dashboard
config_qinling_dashboard
config_sahara_dashboard
config_searchlight_ui
config_senlin_dashboard

View File

@ -0,0 +1,19 @@
FROM {{ namespace }}/{{ image_prefix }}qinling-base:{{ tag }}
LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build_date }}"
{% block qinling_api_header %}{% endblock %}
{% if install_type == 'binary' %}
RUN echo '{{ install_type }} not yet available for {{ base_distro }}' \
&& /bin/false
{% endif %}
COPY extend_start.sh /usr/local/bin/kolla_qinling_extend_start
RUN chmod 755 /usr/local/bin/kolla_qinling_extend_start
{% block qinling_api_footer %}{% endblock %}
{% block footer %}{% endblock %}
USER qinling

View File

@ -0,0 +1,8 @@
#!/bin/bash
# Bootstrap and exit if KOLLA_BOOTSTRAP variable is set. This catches all cases
# of the KOLLA_BOOTSTRAP variable being set, including empty.
if [[ "${!KOLLA_BOOTSTRAP[@]}" ]]; then
qinling-db-manage upgrade head
exit 0
fi

View File

@ -0,0 +1,36 @@
FROM {{ namespace }}/{{ image_prefix }}openstack-base:{{ tag }}
LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build_date }}"
{% block qinling_base_header %}{% endblock %}
{% import "macros.j2" as macros with context %}
{{ macros.configure_user(name='qinling') }}
{% if install_type == 'binary' %}
RUN echo '{{ install_type }} not yet available for {{ base_distro }}' \
&& /bin/false
{% elif install_type == 'source' %}
ADD qinling-base-archive /qinling-base-source
{% set qinling_base_pip_packages = [
'/qinling'
] %}
RUN ln -s qinling-base-source/* qinling \
&& {{ macros.install_pip(qinling_base_pip_packages | customizable("pip_packages")) }} \
&& mkdir -p /etc/qinling \
&& cp -r /qinling/etc/* /etc/qinling/ \
&& chown -R qinling: /etc/qinling
{% endif %}
COPY extend_start.sh /usr/local/bin/kolla_extend_start
RUN touch /usr/local/bin/kolla_qinling_extend_start \
&& chmod 755 /usr/local/bin/kolla_extend_start /usr/local/bin/kolla_qinling_extend_start
{% block qinling_base_footer %}{% endblock %}

View File

@ -0,0 +1,10 @@
#!/bin/bash
if [[ ! -d "/var/log/kolla/qinling" ]]; then
mkdir -p /var/log/kolla/qinling
fi
if [[ $(stat -c %a /var/log/kolla/qinling) != "755" ]]; then
chmod 755 /var/log/kolla/qinling
fi
. /usr/local/bin/kolla_qinling_extend_start

View File

@ -0,0 +1,16 @@
FROM {{ namespace }}/{{ image_prefix }}qinling-base:{{ tag }}
LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build_date }}"
{% block qinling_engine_header %}{% endblock %}
{% if install_type == 'binary' %}
RUN echo '{{ install_type }} not yet available for {{ base_distro }}' \
&& /bin/false
{% endif %}
{% block qinling_engine_footer %}{% endblock %}
{% block footer %}{% endblock %}
USER qinling

View File

@ -115,6 +115,7 @@ _PROFILE_OPTS = [
'novajoin',
'octavia',
'panko',
'qinling',
'rally',
'redis',
'sahara',
@ -450,6 +451,10 @@ SOURCES = {
'type': 'url',
'location': ('$tarballs_base/octavia-dashboard/'
'octavia-dashboard-master.tar.gz')},
'horizon-plugin-qinling-dashboard': {
'type': 'url',
'location': ('$tarballs_base/qinling-dashboard/'
'qinling-dashboard-master.tar.gz')},
'horizon-plugin-sahara-dashboard': {
'type': 'url',
'location': ('$tarballs_base/sahara-dashboard/'
@ -679,6 +684,10 @@ SOURCES = {
'type': 'url',
'location': ('$tarballs_base/placement/'
'placement-master.tar.gz')},
'qinling-base': {
'type': 'url',
'location': ('$tarballs_base/qinling/'
'qinling-master.tar.gz')},
'tempest-plugin-tempest-conf': {
'type': 'url',
'location': ('$tarballs_base/python-tempestconf/'
@ -1188,6 +1197,10 @@ USERS = {
'cyborg-user': {
'uid': 42483,
'gid': 42483,
},
'qinling-user': {
'uid': 42484,
'gid': 42484,
}
}

View File

@ -91,6 +91,7 @@ SKIPPED_IMAGES = {
"monasca-thresh",
"nova-mksproxy",
"ovsdpdk",
"qinling-base",
"searchlight-base",
"solum-base",
"vmtp",
@ -126,6 +127,7 @@ SKIPPED_IMAGES = {
"octavia-base",
# There is no qdrouterd package for ubuntu bionic
"qdrouterd",
"qinling-base",
"searchlight-base",
"solum-base",
"tacker-base",
@ -167,6 +169,7 @@ SKIPPED_IMAGES = {
"nova-mksproxy",
"novajoin-base",
"octavia-base",
"qinling-base",
"searchlight-base",
"sensu-base",
"solum-base",
@ -199,6 +202,7 @@ SKIPPED_IMAGES = {
"monasca-thresh",
"nova-mksproxy",
"ovsdpdk",
"qinling-base",
"searchlight-base",
"solum-base",
"vmtp",

View File

@ -0,0 +1,5 @@
---
features:
- Adds Qinling images. Qinling is an OpenStack project
to provide "Function as a Service". This project aims to
provide a platform to support serverless functions.