diff --git a/.zuul.yaml b/.zuul.yaml index 4076e4a..ce3f103 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -11,12 +11,12 @@ post-run: - playbooks/devstack/post.yaml required-projects: - - skyline/skyline-apiserver + - openstack/skyline-apiserver vars: devstack_plugins: - skyline-apiserver: https://opendev.org/skyline/skyline-apiserver + skyline-apiserver: https://opendev.org/openstack/skyline-apiserver zuul_copy_output: - /var/log/skyline: logs + /var/log/kolla/skyline: logs /etc/skyline: logs /etc/nginx: logs host-vars: diff --git a/Makefile b/Makefile index 01e007f..ae984d6 100644 --- a/Makefile +++ b/Makefile @@ -20,7 +20,7 @@ GIT_BRANCH ?= $(shell git rev-parse --abbrev-ref HEAD) GIT_COMMIT ?= $(shell git rev-parse --verify HEAD) # URL for skyline-console packages -SKYLINE_CONSOLE_PACKAGE_URL ?= "https://tarballs.opendev.org/skyline/skyline-console/skyline-console-master.tar.gz" +SKYLINE_CONSOLE_PACKAGE_URL ?= "https://tarballs.opendev.org/openstack/skyline-console/skyline-console-master.tar.gz" .PHONY: all all: install fmt lint test package diff --git a/container/Dockerfile b/container/Dockerfile index 1d6a5a1..9908f0f 100644 --- a/container/Dockerfile +++ b/container/Dockerfile @@ -28,7 +28,7 @@ RUN export LANG=C.UTF-8 \ && pip install -U pip setuptools'<58.0.0' \ && pip install poetry!=1.1.8 \ && poetry config virtualenvs.create false \ - && mkdir -p /etc/skyline /var/log/skyline/ /var/lib/skyline \ + && mkdir -p /etc/skyline /var/log/kolla/skyline /var/lib/skyline \ && cd /skyline \ && poetry install \ && pip install ${SKYLINE_CONSOLE_PACKAGE_URL} \ diff --git a/devstack/README.rst b/devstack/README.rst index 42105ab..a04b16c 100644 --- a/devstack/README.rst +++ b/devstack/README.rst @@ -15,12 +15,12 @@ Enabling Skyline in Devstack > cat local.conf [[local|localrc]] - enable_plugin skyline-apiserver https://opendev.org/skyline/skyline-apiserver + enable_plugin skyline-apiserver https://opendev.org/openstack/skyline-apiserver To use stable branches, make sure devstack is on that branch, and specify the branch name to enable_plugin, for example:: - enable_plugin skyline-apiserver https://opendev.org/skyline/skyline-apiserver master + enable_plugin skyline-apiserver https://opendev.org/openstack/skyline-apiserver master 3. Run ``stack.sh`` diff --git a/devstack/settings b/devstack/settings index 00d595f..954e26f 100644 --- a/devstack/settings +++ b/devstack/settings @@ -7,18 +7,18 @@ enable_service skyline -SKYLINE_APISERVER_REPO=${SKYLINE_APISERVER_REPO:-https://opendev.org/skyline/skyline-apiserver.git} +SKYLINE_APISERVER_REPO=${SKYLINE_APISERVER_REPO:-https://opendev.org/openstack/skyline-apiserver.git} SKYLINE_APISERVER_BRANCH=${SKYLINE_APISERVER_BRANCH:-master} SKYLINE_APISERVER_DIR=${DEST}/skyline-apiserver -GITREPO["skyline-console"]=${SKYLINE_CONSOLE_REPO:-${GIT_BASE}/skyline/skyline-console.git} +GITREPO["skyline-console"]=${SKYLINE_CONSOLE_REPO:-${GIT_BASE}/openstack/skyline-console.git} GITBRANCH["skyline-console"]=${SKYLINE_CONSOLE_BRANCH:-master} GITDIR["skyline-console"]=$DEST/skyline-console # Set up default directories SKYLINE_CONF_DIR=${SKYLINE_CONF_DIR:-/etc/skyline} SKYLINE_CONF_FILE=${SKYLINE_CONF_DIR}/skyline.yaml -SKYLINE_LOG_DIR=/var/log/skyline +SKYLINE_LOG_DIR=/var/log/kolla/skyline SKYLINE_ERROR_LOG_FILE=${SKYLINE_LOG_DIR}/error.log SKYLINE_ACCESS_LOG_FILE=${SKYLINE_LOG_DIR}/access.log SKYLINE_RUN_DIR=/var/lib/skyline diff --git a/etc/gunicorn.py b/etc/gunicorn.py index 9e3b1cb..854a876 100644 --- a/etc/gunicorn.py +++ b/etc/gunicorn.py @@ -8,5 +8,5 @@ keepalive = 5 reuse_port = True proc_name = "skyline" log_level = "debug" -accesslog = "/var/log/skyline/access.log" -errorlog = "/var/log/skyline/error.log" +accesslog = "/var/log/kolla/skyline/access.log" +errorlog = "/var/log/kolla/skyline/error.log" diff --git a/kolla/kolla-0ba97fd.diff b/kolla/kolla-0ba97fd.diff deleted file mode 100755 index c303f53..0000000 --- a/kolla/kolla-0ba97fd.diff +++ /dev/null @@ -1,360 +0,0 @@ -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': { diff --git a/kolla/kolla-ansible-3d98604.diff b/kolla/kolla-ansible-3d98604.diff deleted file mode 100755 index 5ca4fc6..0000000 --- a/kolla/kolla-ansible-3d98604.diff +++ /dev/null @@ -1,848 +0,0 @@ -From 3d98604c16f7d60127122df5185843873a8ff70d Mon Sep 17 00:00:00 2001 -From: yangshaoxue -Date: Thu, 23 Sep 2021 16:50:17 +0800 -Subject: [PATCH] Skyline: Add skyline role - -Add skyline role - -Depends-On: https://review.opendev.org/c/openstack/kolla/+/810796 - -Change-Id: I5243c88ffbdb72fd3ad2e0eb6a41bd2b341f89b8 ---- - -diff --git a/ansible/group_vars/all.yml b/ansible/group_vars/all.yml -index d27139d..2afe4d2 100644 ---- a/ansible/group_vars/all.yml -+++ b/ansible/group_vars/all.yml -@@ -47,10 +47,13 @@ - # Valid options are [ binary, source ] - kolla_install_type: "source" - -+kolla_admin_vip_address: "{{ kolla_internal_vip_address }}" -+kolla_admin_fqdn: "{{ kolla_internal_fqdn if kolla_same_internal_admin_vip | bool else kolla_admin_vip_address }}" - kolla_internal_vip_address: "{{ kolla_internal_address | default('') }}" - kolla_internal_fqdn: "{{ kolla_internal_vip_address }}" - kolla_external_vip_address: "{{ kolla_internal_vip_address }}" - kolla_same_external_internal_vip: "{{ kolla_external_vip_address == kolla_internal_vip_address }}" -+kolla_same_internal_admin_vip: "{{ kolla_internal_vip_address == kolla_admin_vip_address }}" - kolla_external_fqdn: "{{ kolla_internal_fqdn if kolla_same_external_internal_vip | bool else kolla_external_vip_address }}" - - kolla_enable_sanity_checks: "no" -@@ -481,6 +484,13 @@ - skydive_analyzer_port: "8085" - skydive_agents_port: "8090" - -+skyline_port: "9999" -+skyline_enable_tls_backend: "{{ kolla_enable_tls_backend }}" -+skyline_cert: "{{ container_config_directory }}/skyline-cert.pem" -+skyline_key: "{{ container_config_directory }}/skyline-key.pem" -+skyline_ssl_certfile: "{{ skyline_cert if skyline_enable_tls_backend | bool else '' }}" -+skyline_ssl_keyfile: "{{ skyline_key if skyline_enable_tls_backend | bool else '' }}" -+ - solum_application_deployment_port: "9777" - solum_image_builder_port: "9778" - -@@ -691,6 +701,7 @@ - enable_sahara: "no" - enable_senlin: "no" - enable_skydive: "no" -+enable_skyline: "no" - enable_solum: "no" - enable_storm: "{{ enable_monasca | bool and monasca_enable_alerting_pipeline | bool }}" - enable_swift: "no" -diff --git a/ansible/inventory/all-in-one b/ansible/inventory/all-in-one -index 66e17b4..c1d9925 100644 ---- a/ansible/inventory/all-in-one -+++ b/ansible/inventory/all-in-one -@@ -213,6 +213,9 @@ - [skydive:children] - monitoring - -+[skyline:children] -+control -+ - [redis:children] - control - -diff --git a/ansible/inventory/multinode b/ansible/inventory/multinode -index 63247ff..bd94759 100644 ---- a/ansible/inventory/multinode -+++ b/ansible/inventory/multinode -@@ -231,6 +231,9 @@ - [skydive:children] - monitoring - -+[skyline:children] -+control -+ - [redis:children] - control - -diff --git a/ansible/roles/common/tasks/config.yml b/ansible/roles/common/tasks/config.yml -index 94d6d63..30e6ea3 100644 ---- a/ansible/roles/common/tasks/config.yml -+++ b/ansible/roles/common/tasks/config.yml -@@ -229,6 +229,7 @@ - - { name: "sahara", enabled: "{{ enable_sahara | bool }}" } - - { name: "senlin", enabled: "{{ enable_senlin | bool }}" } - - { name: "skydive", enabled: "{{ enable_skydive | bool }}" } -+ - { name: "skyline", enabled: "{{ enable_skyline | bool }}" } - - { name: "solum", enabled: "{{ enable_solum | bool }}" } - - { name: "storm", enabled: "{{ enable_storm | bool }}" } - - { name: "swift", enabled: "{{ enable_swift | bool }}" } -diff --git a/ansible/roles/skyline/defaults/main.yml b/ansible/roles/skyline/defaults/main.yml -new file mode 100644 -index 0000000..72e49ab ---- /dev/null -+++ b/ansible/roles/skyline/defaults/main.yml -@@ -0,0 +1,187 @@ -+--- -+project_name: "skyline" -+ -+skyline_services: -+ skyline: -+ container_name: "skyline" -+ group: skyline -+ enabled: true -+ image: "{{ skyline_image_full }}" -+ volumes: "{{ skyline_volumes }}" -+ haproxy: -+ skyline: -+ enabled: "{{ enable_skyline|bool }}" -+ mode: "tcp" -+ port: "{{ skyline_port }}" -+ listen_port: "{{ skyline_port }}" -+ frontend_tcp_extra: -+ - "option clitcpka" -+ - "timeout client 3600s" -+ backend_tcp_extra: -+ - "option srvtcpka" -+ - "timeout server 3600s" -+ custom_member_list: "{{ internal_haproxy_members.split(';') }}" -+ skyline_external: -+ enabled: "{{ enable_skyline|bool }}" -+ mode: "tcp" -+ external: true -+ port: "{{ skyline_port }}" -+ listen_port: "{{ skyline_port }}" -+ frontend_tcp_extra: -+ - "option clitcpka" -+ - "timeout client 3600s" -+ backend_tcp_extra: -+ - "option srvtcpka" -+ - "timeout server 3600s" -+ custom_member_list: "{{ external_haproxy_members.split(';') }}" -+ skyline_admin: -+ enabled: "{{ enable_skyline|bool and not kolla_same_internal_admin_vip|bool }}" -+ mode: "tcp" -+ external: false -+ port: "{{ skyline_port }}" -+ listen_port: "{{ skyline_port }}" -+ frontend_tcp_extra: -+ - "option clitcpka" -+ - "timeout client 3600s" -+ backend_tcp_extra: -+ - "option srvtcpka" -+ - "timeout server 3600s" -+ custom_member_list: "{{ admin_haproxy_members.split(';') }}" -+ -+#################### -+# Registry config -+#################### -+openstack_skyline_auth: "{{ openstack_auth }}" -+skyline_keystone_user: skyline -+skyline_admin_endpoint: "{{ admin_protocol }}://{{ kolla_admin_fqdn | put_address_in_context('url') }}:{{ skyline_port }}" -+skyline_public_endpoint: "{{ public_protocol }}://{{ kolla_external_fqdn | put_address_in_context('url') }}:{{ skyline_port }}" -+skyline_internal_endpoint: "{{ internal_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ skyline_port }}" -+skyline_ks_services: -+ - name: "skyline" -+ type: "panel" -+ description: "Custom API" -+ endpoints: -+ - {'interface': 'admin', 'url': '{{ skyline_admin_endpoint }}'} -+ - {'interface': 'internal', 'url': '{{ skyline_internal_endpoint }}'} -+ - {'interface': 'public', 'url': '{{ skyline_public_endpoint }}'} -+skyline_ks_users: -+ - project: service -+ user: "{{ skyline_keystone_user }}" -+ password: "{{ skyline_keystone_password }}" -+ role: admin -+ -+#################### -+# Database config -+#################### -+skyline_database_name: skyline -+skyline_database_user: skyline -+skyline_database_address: "{{ database_address | put_address_in_context('url') }}:{{ database_port }}" -+ -+#################### -+# HAProxy -+#################### -+internal_haproxy_members: "{% for host in groups['skyline'] %}server {{ hostvars[host]['ansible_hostname'] }} {{ 'api' | kolla_address(host) }}:{{ skyline_port }} check inter 2000 rise 2 fall 5{% if not loop.first %} backup{% endif %};{% endfor %}" -+external_haproxy_members: "{% for host in groups['skyline'] %}server {{ host }} {{ host }}:{{ skyline_port }} check inter 2000 rise 2 fall 5{% if not loop.first %} backup{% endif %};{% endfor %}" -+admin_haproxy_members: "{% for host in groups['skyline'] %}server {{ host }} {{ host }}:{{ skyline_port }} check inter 2000 rise 2 fall 5{% if not loop.first %} backup{% endif %};{% endfor %}" -+ -+#################### -+# Docker image -+#################### -+skyline_distro: "{{ kolla_base_distro }}" -+skyline_install_type: "{{ kolla_install_type }}" -+skyline_release: "{{ openstack_release }}" -+ -+skyline_image: "{{ docker_registry ~ '/' if docker_registry else '' }}{{ docker_namespace }}/{{ skyline_distro }}-{{ skyline_install_type }}-skyline" -+skyline_tag: "{{ skyline_release }}" -+skyline_image_full: "{{ skyline_image }}:{{ skyline_tag }}" -+ -+#################### -+# Skyline config -+#################### -+debug: false -+log_dir: /var/log/kolla/ -+skyline_show_raw_sql: false -+skyline_access_token_expire_seconds: 3600 -+skyline_access_token_renew_seconds: 1800 -+skyline_backend_cors_origins: [] -+skyline_nginx_prefix: /api/openstack -+skyline_base_domains: -+ - heat_user_domain -+skyline_base_roles: -+ - keystone_system_admin -+ - keystone_system_reader -+ - keystone_project_admin -+ - keystone_project_member -+ - keystone_project_reader -+ - nova_system_admin -+ - nova_system_reader -+ - nova_project_admin -+ - nova_project_member -+ - nova_project_reader -+ - cinder_system_admin -+ - cinder_system_reader -+ - cinder_project_admin -+ - cinder_project_member -+ - cinder_project_reader -+ - glance_system_admin -+ - glance_system_reader -+ - glance_project_admin -+ - glance_project_member -+ - glance_project_reader -+ - neutron_system_admin -+ - neutron_system_reader -+ - neutron_project_admin -+ - neutron_project_member -+ - neutron_project_reader -+ - heat_system_admin -+ - heat_system_reader -+ - heat_project_admin -+ - heat_project_member -+ - heat_project_reader -+ - placement_system_admin -+ - placement_system_reader -+ - panko_system_admin -+ - panko_system_reader -+ - panko_project_admin -+ - panko_project_member -+ - panko_project_reader -+ - ironic_system_admin -+ - ironic_system_reader -+ - octavia_system_admin -+ - octavia_system_reader -+ - octavia_project_admin -+ - octavia_project_member -+ - octavia_project_reader -+skyline_extension_mapping: -+ fwaas_v2: neutron_firewall -+ vpnaas: neutron_vpn -+skyline_service_mapping: -+ compute: nova -+ identity: keystone -+ image: glance -+ network: neutron -+ orchestration: heat -+ placement: placement -+ volumev3: cinder -+skyline_system_admin_roles: -+ - admin -+ - system_admin -+skyline_system_reader_roles: -+ - system_reader -+skyline_keystone_url: "{{ keystone_internal_url }}/v3/" -+skyline_secret_key: aCtmgbcUqYUy_HNVg5BDXCaeJgJQzHJXwqbXr0Nmb2o -+skyline_session_name: session -+skyline_reclaim_instance_interval: 604800 -+ -+skyline_gunicorn_debug_level: debug -+skyline_gunicorn_timeout: 3600 -+skyline_gunicorn_keepalive: 5 -+ -+################### -+# volumes -+################### -+skyline_volumes: -+ - "kolla_logs:{{ log_dir }}" -+ - "/etc/localtime:/etc/localtime:ro" -+ - "{{ '/etc/timezone:/etc/timezone:ro' if ansible_facts.os_family == 'Debian' else '' }}" -+ - "{{ node_config_directory }}/skyline/:{{ container_config_directory }}/:ro" -diff --git a/ansible/roles/skyline/handlers/main.yml b/ansible/roles/skyline/handlers/main.yml -new file mode 100644 -index 0000000..9108b03 ---- /dev/null -+++ b/ansible/roles/skyline/handlers/main.yml -@@ -0,0 +1,19 @@ -+--- -+- name: Restart skyline container -+ vars: -+ service_name: skyline -+ service: "{{ skyline_services[service_name] }}" -+ become: true -+ kolla_docker: -+ action: "recreate_or_restart_container" -+ common_options: "{{ docker_common_options }}" -+ environment: -+ SSL_KEYFILE: -+ SSL_CERTFILE: -+ LISTEN_ADDRESS: "{{ api_interface_address | put_address_in_context('url') }}" -+ KOLLA_CONFIG_STRATEGY: "{{ config_strategy }}" -+ name: "{{ service.container_name }}" -+ image: "{{ service.image }}" -+ volumes: "{{ service.volumes }}" -+ when: -+ - kolla_action != "config" -diff --git a/ansible/roles/skyline/tasks/bootstrap.yml b/ansible/roles/skyline/tasks/bootstrap.yml -new file mode 100644 -index 0000000..175fb1c ---- /dev/null -+++ b/ansible/roles/skyline/tasks/bootstrap.yml -@@ -0,0 +1,52 @@ -+--- -+- name: Creating skyline database -+ become: true -+ kolla_toolbox: -+ module_name: mysql_db -+ module_args: -+ login_host: "{{ database_address }}" -+ login_port: "{{ database_port }}" -+ login_user: "{{ database_user }}" -+ login_password: "{{ database_password }}" -+ name: "{{ skyline_database_name }}" -+ register: database -+ run_once: True -+ delegate_to: "{{ groups['skyline'][0] }}" -+ -+- name: Creating skyline database user and setting permissions -+ become: true -+ kolla_toolbox: -+ module_name: mysql_user -+ module_args: -+ login_host: "{{ database_address }}" -+ login_port: "{{ database_port }}" -+ login_user: "{{ database_user }}" -+ login_password: "{{ database_password }}" -+ name: "{{ skyline_database_user }}" -+ password: "{{ skyline_database_password }}" -+ host: "%" -+ priv: "{{ skyline_database_name }}.*:ALL" -+ append_privs: "yes" -+ run_once: True -+ delegate_to: "{{ groups['skyline'][0] }}" -+ -+- name: Creating boostrap container -+ vars: -+ service_name: skyline -+ service: "{{ skyline_services[service_name] }}" -+ become: true -+ kolla_docker: -+ action: "start_container" -+ name: "bootstrap_{{ service.container_name }}" -+ common_options: "{{ docker_common_options }}" -+ image: "{{ service.image }}" -+ detach: False -+ restart_policy: no -+ volumes: "{{ service.volumes }}" -+ environment: -+ KOLLA_BOOTSTRAP: -+ KOLLA_CONFIG_STRATEGY: "{{ config_strategy }}" -+ labels: -+ BOOTSTRAP: -+ run_once: True -+ delegate_to: "{{ groups['skyline'][0] }}" -diff --git a/ansible/roles/skyline/tasks/check.yml b/ansible/roles/skyline/tasks/check.yml -new file mode 100644 -index 0000000..ed97d53 ---- /dev/null -+++ b/ansible/roles/skyline/tasks/check.yml -@@ -0,0 +1 @@ -+--- -diff --git a/ansible/roles/skyline/tasks/config.yml b/ansible/roles/skyline/tasks/config.yml -new file mode 100644 -index 0000000..ed5697a ---- /dev/null -+++ b/ansible/roles/skyline/tasks/config.yml -@@ -0,0 +1,83 @@ -+--- -+- name: Ensuring config directories exist -+ become: true -+ file: -+ path: "{{ node_config_directory }}/{{ item.key }}" -+ state: "directory" -+ recurse: yes -+ when: -+ - inventory_hostname in groups[item.value.group] -+ - item.value.enabled | bool -+ with_dict: "{{ skyline_services }}" -+ -+- name: Ensuring log directories exist -+ file: -+ path: "{{ docker_runtime_directory or '/var/lib/docker' }}/volumes/kolla_logs/_data/{{ item.key }}" -+ state: directory -+ recurse: yes -+ when: -+ - inventory_hostname in groups[item.value.group] -+ - item.value.enabled | bool -+ with_dict: "{{ skyline_services }}" -+ -+- include_tasks: copy-certs.yml -+ when: -+ - skyline_enable_tls_backend | bool -+ -+- name: Copying over config.yaml files for services -+ become: true -+ template: -+ src: "{{ item.key }}.yaml.j2" -+ dest: "{{ node_config_directory }}/{{ item.key }}/skyline.yaml" -+ mode: "0660" -+ when: -+ - inventory_hostname in groups[item.value.group] -+ - item.value.enabled | bool -+ with_dict: "{{ skyline_services }}" -+ notify: -+ - "Restart {{ item.key }} container" -+ -+- name: Copying over gunicorn.py files for services -+ become: true -+ template: -+ src: "gunicorn.py.j2" -+ dest: "{{ node_config_directory }}/{{ item.key }}/gunicorn.py" -+ mode: "0660" -+ when: -+ - inventory_hostname in groups[item.value.group] -+ - item.value.enabled | bool -+ with_dict: "{{ skyline_services }}" -+ notify: -+ - "Restart {{ item.key }} container" -+ -+- name: Copying over config.json files for services -+ become: true -+ template: -+ src: "{{ item.key }}.json.j2" -+ dest: "{{ node_config_directory }}/{{ item.key }}/config.json" -+ mode: "0660" -+ when: -+ - inventory_hostname in groups[item.value.group] -+ - item.value.enabled | bool -+ with_dict: "{{ skyline_services }}" -+ notify: -+ - "Restart {{ item.key }} container" -+ -+- name: Check skyline containers -+ become: true -+ kolla_docker: -+ action: "compare_container" -+ common_options: "{{ docker_common_options }}" -+ name: "{{ item.value.container_name }}" -+ image: "{{ item.value.image }}" -+ volumes: "{{ item.value.volumes }}" -+ environment: -+ SSL_CERTFILE: "{{ skyline_ssl_certfile }}" -+ SSL_KEYFILE: "{{ skyline_ssl_keyfile }}" -+ register: check_skyline_containers -+ when: -+ - inventory_hostname in groups[item.value.group] -+ - item.value.enabled | bool -+ with_dict: "{{ skyline_services }}" -+ notify: -+ - "Restart {{ item.key }} container" -diff --git a/ansible/roles/skyline/tasks/copy-certs.yml b/ansible/roles/skyline/tasks/copy-certs.yml -new file mode 100644 -index 0000000..3f39794 ---- /dev/null -+++ b/ansible/roles/skyline/tasks/copy-certs.yml -@@ -0,0 +1,6 @@ -+--- -+- name: "Copy certificates and keys for {{ project_name }}" -+ import_role: -+ role: service-cert-copy -+ vars: -+ project_services: "{{ skyline_services }}" -diff --git a/ansible/roles/skyline/tasks/deploy.yml b/ansible/roles/skyline/tasks/deploy.yml -new file mode 100644 -index 0000000..0d49d33 ---- /dev/null -+++ b/ansible/roles/skyline/tasks/deploy.yml -@@ -0,0 +1,13 @@ -+--- -+- include: precheck.yml -+ -+- include: pull.yml -+ -+- include: register.yml -+ -+- include: config.yml -+ -+- include: bootstrap.yml -+ -+- name: Flush handlers -+ meta: flush_handlers -diff --git a/ansible/roles/skyline/tasks/loadbalancer.yml b/ansible/roles/skyline/tasks/loadbalancer.yml -new file mode 100644 -index 0000000..d4759ea ---- /dev/null -+++ b/ansible/roles/skyline/tasks/loadbalancer.yml -@@ -0,0 +1,7 @@ -+--- -+- name: "Configure haproxy for {{ project_name }}" -+ import_role: -+ name: haproxy-config -+ vars: -+ project_services: "{{ skyline_services }}" -+ tags: always -diff --git a/ansible/roles/skyline/tasks/main.yml b/ansible/roles/skyline/tasks/main.yml -new file mode 100644 -index 0000000..bc5d1e6 ---- /dev/null -+++ b/ansible/roles/skyline/tasks/main.yml -@@ -0,0 +1,2 @@ -+--- -+- include_tasks: "{{ kolla_action }}.yml" -diff --git a/ansible/roles/skyline/tasks/precheck.yml b/ansible/roles/skyline/tasks/precheck.yml -new file mode 100644 -index 0000000..8cfcb92 ---- /dev/null -+++ b/ansible/roles/skyline/tasks/precheck.yml -@@ -0,0 +1,18 @@ -+--- -+- name: Get container facts -+ become: true -+ kolla_container_facts: -+ name: -+ - skyline -+ register: container_facts -+ -+- name: Checking free port for Skyline -+ wait_for: -+ host: "{{ api_interface_address }}" -+ port: "{{ skyline_port }}" -+ connect_timeout: 1 -+ timeout: 1 -+ state: stopped -+ when: -+ - container_facts['skyline'] is not defined -+ - inventory_hostname in groups['skyline'] -diff --git a/ansible/roles/skyline/tasks/pull.yml b/ansible/roles/skyline/tasks/pull.yml -new file mode 100644 -index 0000000..53f9c5f ---- /dev/null -+++ b/ansible/roles/skyline/tasks/pull.yml -@@ -0,0 +1,3 @@ -+--- -+- import_role: -+ role: service-images-pull -diff --git a/ansible/roles/skyline/tasks/reconfigure.yml b/ansible/roles/skyline/tasks/reconfigure.yml -new file mode 100644 -index 0000000..f670a5b ---- /dev/null -+++ b/ansible/roles/skyline/tasks/reconfigure.yml -@@ -0,0 +1,2 @@ -+--- -+- include_tasks: deploy.yml -diff --git a/ansible/roles/skyline/tasks/register.yml b/ansible/roles/skyline/tasks/register.yml -new file mode 100644 -index 0000000..f0ec84e ---- /dev/null -+++ b/ansible/roles/skyline/tasks/register.yml -@@ -0,0 +1,8 @@ -+--- -+- import_role: -+ name: service-ks-register -+ vars: -+ service_ks_register_auth: "{{ openstack_skyline_auth }}" -+ service_ks_register_services: "{{ skyline_ks_services }}" -+ service_ks_register_users: "{{ skyline_ks_users }}" -+ tags: always -diff --git a/ansible/roles/skyline/tasks/stop.yml b/ansible/roles/skyline/tasks/stop.yml -new file mode 100644 -index 0000000..a8e9278 ---- /dev/null -+++ b/ansible/roles/skyline/tasks/stop.yml -@@ -0,0 +1,11 @@ -+--- -+- name: "Stopping skyline containers" -+ vars: -+ service: "{{ item.value }}" -+ docker_container: -+ name: "{{ service.container_name }}" -+ state: stopped -+ when: -+ - service.enabled | bool -+ - service.container_name not in skip_stop_containers -+ with_dict: "{{ skyline_services }}" -diff --git a/ansible/roles/skyline/tasks/upgrade.yml b/ansible/roles/skyline/tasks/upgrade.yml -new file mode 100644 -index 0000000..90c46fa ---- /dev/null -+++ b/ansible/roles/skyline/tasks/upgrade.yml -@@ -0,0 +1,7 @@ -+--- -+- include_tasks: register.yml -+ -+- include_tasks: config.yml -+ -+- name: Flush handlers -+ meta: flush_handlers -diff --git a/ansible/roles/skyline/templates/gunicorn.py.j2 b/ansible/roles/skyline/templates/gunicorn.py.j2 -new file mode 100644 -index 0000000..a6190e3 ---- /dev/null -+++ b/ansible/roles/skyline/templates/gunicorn.py.j2 -@@ -0,0 +1,12 @@ -+import multiprocessing -+ -+bind = "unix:/var/lib/skyline/skyline.sock" -+workers = (1 + multiprocessing.cpu_count()) // 2 -+worker_class = "uvicorn.workers.UvicornWorker" -+timeout = {{ skyline_gunicorn_timeout }} -+keepalive = {{ skyline_gunicorn_keepalive }} -+reuse_port = True -+proc_name = "{{ project_name }}" -+log_level = "{{ skyline_gunicorn_debug_level }}" -+accesslog = "{{ log_dir }}skyline/access.log" -+errorlog = "{{ log_dir }}skyline/error.log" -diff --git a/ansible/roles/skyline/templates/skyline.json.j2 b/ansible/roles/skyline/templates/skyline.json.j2 -new file mode 100644 -index 0000000..ee4559d ---- /dev/null -+++ b/ansible/roles/skyline/templates/skyline.json.j2 -@@ -0,0 +1,36 @@ -+{ -+ "command": "gunicorn -c /etc/skyline/gunicorn.py skyline_apiserver.main:app", -+ "config_files": [ -+ { -+ "source": "{{ container_config_directory }}/skyline.yaml", -+ "dest": "/etc/skyline/skyline.yaml", -+ "owner": "skyline", -+ "perm": "0600" -+ }, -+ { -+ "source": "{{ container_config_directory }}/gunicorn.py", -+ "dest": "/etc/skyline/gunicorn.py", -+ "owner": "skyline", -+ "perm": "0600" -+ }{% if skyline_enable_tls_backend | bool %}, -+ { -+ "source": "{{ container_config_directory }}/skyline-cert.pem", -+ "dest": "/etc/skyline/certs/skyline-cert.pem", -+ "owner": "skyline", -+ "perm": "0600" -+ }, -+ { -+ "source": "{{ container_config_directory }}/skyline-key.pem", -+ "dest": "/etc/skyline/certs/skyline-key.pem", -+ "owner": "skyline", -+ "perm": "0600" -+ }{% endif %} -+ ], -+ "permissions": [ -+ { -+ "path": "/var/log/kolla/skyline", -+ "owner": "skyline:skyline", -+ "recurse": true -+ } -+ ] -+} -diff --git a/ansible/roles/skyline/templates/skyline.yaml.j2 b/ansible/roles/skyline/templates/skyline.yaml.j2 -new file mode 100644 -index 0000000..6b7b4b5 ---- /dev/null -+++ b/ansible/roles/skyline/templates/skyline.yaml.j2 -@@ -0,0 +1,113 @@ -+default: -+ access_token_expire: {{ skyline_access_token_expire_seconds }} -+ access_token_renew: {{ skyline_access_token_renew_seconds }} -+ cors_allow_origins: {{ skyline_backend_cors_origins }} -+ database_url: mysql://{{ skyline_database_user }}:{{ skyline_database_password }}@{{ skyline_database_address }}/{{ skyline_database_name }} -+ debug: {{ debug }} -+ log_dir: {{ log_dir }} -+ secret_key: {{ skyline_secret_key }} -+ session_name: {{ skyline_session_name }} -+developer: -+ show_raw_sql: {{ skyline_show_raw_sql }} -+openstack: -+ base_domains: -+ - heat_user_domain -+ base_roles: -+ - keystone_system_admin -+ - keystone_system_reader -+ - keystone_project_admin -+ - keystone_project_member -+ - keystone_project_reader -+ - nova_system_admin -+ - nova_system_reader -+ - nova_project_admin -+ - nova_project_member -+ - nova_project_reader -+ - cinder_system_admin -+ - cinder_system_reader -+ - cinder_project_admin -+ - cinder_project_member -+ - cinder_project_reader -+ - glance_system_admin -+ - glance_system_reader -+ - glance_project_admin -+ - glance_project_member -+ - glance_project_reader -+ - neutron_system_admin -+ - neutron_system_reader -+ - neutron_project_admin -+ - neutron_project_member -+ - neutron_project_reader -+ - heat_system_admin -+ - heat_system_reader -+ - heat_project_admin -+ - heat_project_member -+ - heat_project_reader -+ - placement_system_admin -+ - placement_system_reader -+ - panko_system_admin -+ - panko_system_reader -+ - panko_project_admin -+ - panko_project_member -+ - panko_project_reader -+ - ironic_system_admin -+ - ironic_system_reader -+ - octavia_system_admin -+ - octavia_system_reader -+ - octavia_project_admin -+ - octavia_project_member -+ - octavia_project_reader -+ default_region: RegionOne -+ extension_mapping: -+ fwaas_v2: neutron_firewall -+ vpnaas: neutron_vpn -+ interface_type: public -+ keystone_url: {{ skyline_keystone_url }} -+ nginx_prefix: {{ skyline_nginx_prefix }} -+ reclaim_instance_interval: {{ skyline_reclaim_instance_interval }} -+ service_mapping: -+ baremetal: ironic -+ compute: nova -+ identity: keystone -+ image: glance -+ load-balancer: octavia -+ network: neutron -+ orchestration: heat -+ placement: placement -+ volumev3: cinder -+ system_admin_roles: -+ - admin -+ - system_admin -+ system_project: service -+ system_project_domain: Default -+ system_reader_roles: -+ - system_reader -+ system_user_domain: Default -+ system_user_name: skyline -+ system_user_password: {{ skyline_keystone_password }} -+setting: -+ base_settings: -+ - flavor_families -+ - gpu_models -+ - usb_models -+ flavor_families: -+ - architecture: x86_architecture -+ categories: -+ - name: general_purpose -+ properties: [] -+ - name: compute_optimized -+ properties: [] -+ - name: memory_optimized -+ properties: [] -+ - name: high_clock_speed -+ properties: [] -+ - architecture: heterogeneous_computing -+ categories: -+ - name: compute_optimized_type_with_gpu -+ properties: [] -+ - name: visualization_compute_optimized_type_with_gpu -+ properties: [] -+ gpu_models: -+ - nvidia_t4 -+ usb_models: -+ - usb_c -diff --git a/ansible/site.yml b/ansible/site.yml -index dc0be8e..daa2a50 100644 ---- a/ansible/site.yml -+++ b/ansible/site.yml -@@ -68,6 +68,7 @@ - - enable_sahara_{{ enable_sahara | bool }} - - enable_senlin_{{ enable_senlin | bool }} - - enable_skydive_{{ enable_skydive | bool }} -+ - enable_skyline_{{ enable_skyline | bool }} - - enable_solum_{{ enable_solum | bool }} - - enable_storm_{{ enable_storm | bool }} - - enable_swift_{{ enable_swift | bool }} -@@ -308,6 +309,11 @@ - tags: skydive - when: enable_skydive | bool - - include_role: -+ name: skyline -+ tasks_from: loadbalancer -+ tags: skyline -+ when: enable_skyline | bool -+ - include_role: - name: solum - tasks_from: loadbalancer - tags: solum -@@ -1091,6 +1097,17 @@ - tags: skydive, - when: enable_skydive | bool } - -+- name: Apply role skyline -+ gather_facts: false -+ hosts: -+ - skyline -+ - '&enable_skyline_True' -+ serial: '{{ kolla_serial|default("0") }}' -+ roles: -+ - { role: skyline, -+ tags: skyline, -+ when: enable_skyline | bool } -+ - - name: Apply role vitrage - gather_facts: false - hosts: -diff --git a/etc/kolla/globals.yml b/etc/kolla/globals.yml -index d7c89b7..4146a21 100644 ---- a/etc/kolla/globals.yml -+++ b/etc/kolla/globals.yml -@@ -392,6 +392,7 @@ - #enable_sahara: "no" - #enable_senlin: "no" - #enable_skydive: "no" -+#enable_skyline: "no" - #enable_solum: "no" - #enable_storm: "{{ enable_monasca | bool }}" - #enable_swift: "no" -diff --git a/etc/kolla/passwords.yml b/etc/kolla/passwords.yml -index 9b0dd99..35cc94f 100644 ---- a/etc/kolla/passwords.yml -+++ b/etc/kolla/passwords.yml -@@ -251,3 +251,9 @@ - # Ceph RadosGW options - #################### - ceph_rgw_keystone_password: -+ -+#################### -+# Skyline options -+#################### -+skyline_database_password: -+skyline_keystone_password: diff --git a/playbooks/devstack/pre.yaml b/playbooks/devstack/pre.yaml index 8cfce16..d5c995e 100644 --- a/playbooks/devstack/pre.yaml +++ b/playbooks/devstack/pre.yaml @@ -6,7 +6,7 @@ - hosts: controller vars: - devstack_base_dir: /opt/stack - - skyline_source_dirs: src/opendev.org/skyline/skyline-apiserver + - skyline_source_dirs: src/opendev.org/openstack/skyline-apiserver tasks: - name: Copy skyline-apiserver repos into devstack working directory command: rsync -a {{ skyline_source_dirs }} {{ devstack_base_dir }} diff --git a/playbooks/devstack/run-tox.yaml b/playbooks/devstack/run-tox.yaml index 2a47fbf..f835357 100644 --- a/playbooks/devstack/run-tox.yaml +++ b/playbooks/devstack/run-tox.yaml @@ -3,4 +3,4 @@ roles: - role: tox vars: - zuul_work_dir: "{{ zuul.projects['opendev.org/skyline/skyline-apiserver'].src_dir }}" + zuul_work_dir: "{{ zuul.projects['opendev.org/openstack/skyline-apiserver'].src_dir }}"