skyline-apiserver/kolla/kolla-0ba97fd.diff
yangshaoxue f47fa7dcd5 Integration with Kolla and Kolla-Ansible
1. Add kolla and kolla-ansible integrated patch
2. Add README to introduce how we can build skyline image with kolla
and deploy skyline with kolla-ansible
3. Add kolla folder as irrelevant files into jobs

Change-Id: I0cc7e9ddd62fc3e20564bf8a0d98d5c7b8f8abac
2021-10-19 16:11:07 +08:00

361 lines
12 KiB
Diff
Executable File

From 0ba97fdcee8b832f6f9586ce1af52de8a66c4182 Mon Sep 17 00:00:00 2001
From: yangshaoxue <yang.shaoxue@99cloud.net>
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': {