From 0ba97fdcee8b832f6f9586ce1af52de8a66c4182 Mon Sep 17 00:00:00 2001 From: yangshaoxue Date: Fri, 24 Sep 2021 10:03:16 +0800 Subject: [PATCH] Skyline: Add skyline dockerfile Add skyline dockerfile Change-Id: I4e528760fd4520a5cc9b18d8564716671b9f6e74 --- diff --git a/docker/openstack-base/Dockerfile.j2 b/docker/openstack-base/Dockerfile.j2 index f0b3309..ee7d269 100644 --- a/docker/openstack-base/Dockerfile.j2 +++ b/docker/openstack-base/Dockerfile.j2 @@ -330,6 +330,12 @@ ENV PATH /var/lib/kolla/venv/bin:$PATH +{% set setuptools_pip_packages = [ + 'setuptools==57.5.0' +] %} + +RUN {{ macros.install_pip(setuptools_pip_packages | customizable("pip_packages"), constraints = false) }} + RUN {{ macros.install_pip(openstack_base_pip_packages | customizable("pip_packages")) }} {% endif %} diff --git a/docker/skyline/skyline-apiserver-base/Dockerfile.j2 b/docker/skyline/skyline-apiserver-base/Dockerfile.j2 new file mode 100644 index 0000000..bc7ee3d --- /dev/null +++ b/docker/skyline/skyline-apiserver-base/Dockerfile.j2 @@ -0,0 +1,18 @@ +FROM {{ namespace }}/{{ image_prefix }}skyline-policy-manager-base:{{ tag }} +{% block labels %} +LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build_date }}" +{% endblock %} + +{% block skyline_apiserver_base_header %}{% endblock %} + +{% import "macros.j2" as macros with context %} + +{% set skyline_apiserver_base_pip_packages = [ + '/skyline-apiserver', +] %} + +ADD skyline-apiserver-base-archive /skyline-apiserver-base-source +RUN ln -s skyline-apiserver-base-source/* skyline-apiserver \ + && {{ macros.install_pip(skyline_apiserver_base_pip_packages | customizable("pip_packages"), constraints = false) }} + +{% block skyline_apiserver_base_footer %}{% endblock %} diff --git a/docker/skyline/skyline-base/Dockerfile.j2 b/docker/skyline/skyline-base/Dockerfile.j2 new file mode 100644 index 0000000..cd2e902 --- /dev/null +++ b/docker/skyline/skyline-base/Dockerfile.j2 @@ -0,0 +1,32 @@ +FROM {{ namespace }}/{{ image_prefix }}openstack-base:{{ tag }} +{% block labels %} +LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build_date }}" +{% endblock %} + +{% block skyline_base_header %}{% endblock %} + +{% import "macros.j2" as macros with context %} + +{{ macros.configure_user(name='skyline') }} + +{% set skyline_base_packages = [ + 'nginx', + 'traceroute', + 'vim', + 'wget' +] %} + +{% if base_package_type == 'rpm' %} + {% set skyline_base_packages = skyline_base_packages + [ + ] %} +{% elif base_package_type == 'deb' %} + {% set skyline_base_packages = skyline_base_packages + [ + 'iputils-ping', + 'locales-all', + 'ssl-cert' + ] %} +{% endif %} + +{{ macros.install_packages(skyline_base_packages | customizable("packages")) }} + +{% block skyline_base_footer %}{% endblock %} diff --git a/docker/skyline/skyline-config-base/Dockerfile.j2 b/docker/skyline/skyline-config-base/Dockerfile.j2 new file mode 100644 index 0000000..496b5dd --- /dev/null +++ b/docker/skyline/skyline-config-base/Dockerfile.j2 @@ -0,0 +1,18 @@ +FROM {{ namespace }}/{{ image_prefix }}skyline-console-base:{{ tag }} +{% block labels %} +LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build_date }}" +{% endblock %} + +{% block skyline_config_base_header %}{% endblock %} + +{% import "macros.j2" as macros with context %} + +{% set skyline_config_base_pip_packages = [ + '/skyline-config', +] %} + +ADD skyline-config-base-archive /skyline-config-base-source +RUN ln -s skyline-config-base-source/* skyline-config \ + && {{ macros.install_pip(skyline_config_base_pip_packages | customizable("pip_packages"), constraints = false) }} + +{% block skyline_config_base_footer %}{% endblock %} diff --git a/docker/skyline/skyline-console-base/Dockerfile.j2 b/docker/skyline/skyline-console-base/Dockerfile.j2 new file mode 100644 index 0000000..9b25733 --- /dev/null +++ b/docker/skyline/skyline-console-base/Dockerfile.j2 @@ -0,0 +1,18 @@ +FROM {{ namespace }}/{{ image_prefix }}skyline-log-base:{{ tag }} +{% block labels %} +LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build_date }}" +{% endblock %} + +{% block skyline_console_base_header %}{% endblock %} + +{% import "macros.j2" as macros with context %} + +{% set skyline_console_base_pip_packages = [ + '/skyline-console', +] %} + +ADD skyline-console-base-archive /skyline-console-base-source +RUN ln -s skyline-console-base-source/* skyline-console \ + && {{ macros.install_pip(skyline_console_base_pip_packages | customizable("pip_packages"), constraints = false) }} + +{% block skyline_console_base_footer %}{% endblock %} diff --git a/docker/skyline/skyline-log-base/Dockerfile.j2 b/docker/skyline/skyline-log-base/Dockerfile.j2 new file mode 100644 index 0000000..db0d992 --- /dev/null +++ b/docker/skyline/skyline-log-base/Dockerfile.j2 @@ -0,0 +1,18 @@ +FROM {{ namespace }}/{{ image_prefix }}skyline-base:{{ tag }} +{% block labels %} +LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build_date }}" +{% endblock %} + +{% block skyline_log_base_header %}{% endblock %} + +{% import "macros.j2" as macros with context %} + +{% set skyline_log_base_pip_packages = [ + '/skyline-log', +] %} + +ADD skyline-log-base-archive /skyline-log-base-source +RUN ln -s skyline-log-base-source/* skyline-log \ + && {{ macros.install_pip(skyline_log_base_pip_packages | customizable("pip_packages"), constraints = false) }} + +{% block skyline_log_base_footer %}{% endblock %} diff --git a/docker/skyline/skyline-nginx-base/Dockerfile.j2 b/docker/skyline/skyline-nginx-base/Dockerfile.j2 new file mode 100644 index 0000000..15d6769 --- /dev/null +++ b/docker/skyline/skyline-nginx-base/Dockerfile.j2 @@ -0,0 +1,19 @@ +FROM {{ namespace }}/{{ image_prefix }}skyline-apiserver-base:{{ tag }} +{% block labels %} +LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build_date }}" +{% endblock %} + +{% block skyline_nginx_base_header %}{% endblock %} + +{% import "macros.j2" as macros with context %} + +{% set skyline_nginx_base_pip_packages = [ + '/skyline-nginx', +] %} + +ADD skyline-nginx-base-archive /skyline-nginx-base-source +RUN ln -s skyline-nginx-base-source/* skyline-nginx \ + && sed -i "s#/var/log#/var/log/kolla#g" /skyline-nginx/skyline_nginx/templates/nginx.conf.j2 \ + && {{ macros.install_pip(skyline_nginx_base_pip_packages | customizable("pip_packages"), constraints = false) }} + +{% block skyline_nginx_base_footer %}{% endblock %} diff --git a/docker/skyline/skyline-policy-manager-base/Dockerfile.j2 b/docker/skyline/skyline-policy-manager-base/Dockerfile.j2 new file mode 100644 index 0000000..bbc9ffc --- /dev/null +++ b/docker/skyline/skyline-policy-manager-base/Dockerfile.j2 @@ -0,0 +1,18 @@ +FROM {{ namespace }}/{{ image_prefix }}skyline-config-base:{{ tag }} +{% block labels %} +LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build_date }}" +{% endblock %} + +{% block skyline_policy_manager_base_header %}{% endblock %} + +{% import "macros.j2" as macros with context %} + +{% set skyline_policy_manager_base_pip_packages = [ + '/skyline-policy-manager', +] %} + +ADD skyline-policy-manager-base-archive /skyline-policy-manager-base-source +RUN ln -s skyline-policy-manager-base-source/* skyline-policy-manager \ + && {{ macros.install_pip(skyline_policy_manager_base_pip_packages | customizable("pip_packages"), constraints = false) }} + +{% block skyline_policy_manager_base_footer %}{% endblock %} diff --git a/docker/skyline/skyline/Dockerfile.j2 b/docker/skyline/skyline/Dockerfile.j2 new file mode 100644 index 0000000..00a69ef --- /dev/null +++ b/docker/skyline/skyline/Dockerfile.j2 @@ -0,0 +1,14 @@ +FROM {{ namespace }}/{{ image_prefix }}skyline-nginx-base:{{ tag }} +{% block labels %} +LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build_date }}" +{% endblock %} + +{% block skyline_header %}{% endblock %} + +{% import "macros.j2" as macros with context %} + +COPY extend_start.sh /usr/local/bin/kolla_extend_start +RUN chmod 755 /usr/local/bin/kolla_extend_start + +{% block skyline_footer %}{% endblock %} +{% block footer %}{% endblock %} diff --git a/docker/skyline/skyline/extend_start.sh b/docker/skyline/skyline/extend_start.sh new file mode 100644 index 0000000..621002e --- /dev/null +++ b/docker/skyline/skyline/extend_start.sh @@ -0,0 +1,26 @@ +#!/bin/bash + +if [[ ! -d "/var/log/kolla/skyline" ]]; then + mkdir -p /var/log/kolla/skyline +fi +if [[ $(stat -c %a /var/log/kolla/skyline) != "755" ]]; then + chmod 755 /var/log/kolla/skyline +fi + +if [[ "${!KOLLA_BOOTSTRAP[@]}" ]]; then + # TODO ugly path + pushd /var/lib/kolla/venv/lib/python3.8/site-packages/skyline_apiserver/db/alembic + alembic upgrade head + popd + exit 0 +fi + +if [[ -n "${SSL_CERTFILE}" && -n "${SSL_KEYFILE}" ]]; then + nginx-generator -o /etc/nginx/nginx.conf --ssl-certfile "${SSL_CERTFILE}" --ssl-keyfile "${SSL_KEYFILE}" +else + nginx-generator -o /etc/nginx/nginx.conf +fi + +sed -i "s/listen 9999/listen ${LISTEN_ADDRESS}:9999/" /etc/nginx/nginx.conf + +nginx diff --git a/kolla/common/config.py b/kolla/common/config.py index f5075a3..1024002 100755 --- a/kolla/common/config.py +++ b/kolla/common/config.py @@ -32,12 +32,12 @@ 'debian': 'Debian GNU/Linux 11 (bullseye)', 'ubuntu': 'Ubuntu 20.04', } -OPENSTACK_RELEASE = 'xena' +OPENSTACK_RELEASE = 'master' # This is noarch repository so we will use it on all architectures -DELOREAN = "https://trunk.rdoproject.org/centos8-xena/" \ +DELOREAN = "https://trunk.rdoproject.org/centos8-master/" \ "consistent/delorean.repo" -DELOREAN_DEPS = "https://trunk.rdoproject.org/centos8-xena/" \ +DELOREAN_DEPS = "https://trunk.rdoproject.org/centos8-master/" \ "delorean-deps.repo" INSTALL_TYPE_CHOICES = ['binary', 'source'] @@ -136,6 +136,7 @@ 'proxysql', 'openvswitch', 'rabbitmq', + 'skyline' ], help='Default images'), ] @@ -595,6 +596,30 @@ 'type': 'url', 'location': ('$tarballs_base/openstack/senlin/' 'senlin-${openstack_branch}.tar.gz')}, + 'skyline-log-base': { + 'type': 'url', + 'location': ('$tarballs_base/skyline/skyline-apiserver/' + 'skyline-log-${openstack_branch}.tar.gz')}, + 'skyline-console-base': { + 'type': 'url', + 'location': ('$tarballs_base/skyline/skyline-apiserver/' + 'skyline-console-${openstack_branch}.tar.gz')}, + 'skyline-config-base': { + 'type': 'url', + 'location': ('$tarballs_base/skyline/skyline-apiserver/' + 'skyline-config-${openstack_branch}.tar.gz')}, + 'skyline-policy-manager-base': { + 'type': 'url', + 'location': ('$tarballs_base/skyline/skyline-apiserver/' + 'skyline-policy-manager-${openstack_branch}.tar.gz')}, + 'skyline-apiserver-base': { + 'type': 'url', + 'location': ('$tarballs_base/skyline/skyline-apiserver/' + 'skyline-apiserver-${openstack_branch}.tar.gz')}, + 'skyline-nginx-base': { + 'type': 'url', + 'location': ('$tarballs_base/skyline/skyline-apiserver/' + 'skyline-nginx-${openstack_branch}.tar.gz')}, 'solum-base': { 'type': 'url', 'location': ('$tarballs_base/openstack/solum/' @@ -945,6 +970,10 @@ 'proxysql-user': { 'uid': 42487, 'gid': 42487, + }, + 'skyline-user': { + 'uid': 42488, + 'gid': 42488, } } diff --git a/kolla/image/build.py b/kolla/image/build.py index a868726..f4ec4d8 100755 --- a/kolla/image/build.py +++ b/kolla/image/build.py @@ -96,6 +96,7 @@ "solum-base", "vmtp", "zun-base", + "skyline-base", }, 'source+aarch64': { @@ -108,6 +109,7 @@ "nova-spicehtml5proxy", # Missing spicehtml5 package "ovsdpdk", # Not supported on CentOS "tgtd", # Not supported on CentOS 8 + "skyline-base", }, 'debian': { @@ -115,6 +117,7 @@ # Debian 'buster' "ovn-base", # needs more checking "qdrouterd", + "skyline-base", }, 'ubuntu': {