Merge "Wind down refstack.openstack.org"
This commit is contained in:
@@ -1,58 +0,0 @@
|
||||
:title: refstack
|
||||
|
||||
.. _refstack:
|
||||
|
||||
Refstack
|
||||
########
|
||||
|
||||
Refstack is a public facing test reporting site supporting the efforts of
|
||||
the Interop Working Group to identify widely deployed capabilities and also to
|
||||
verify the test results against the established capability specification.
|
||||
More about InteropWG can be found at
|
||||
https://docs.opendev.org/openinfra/interop/latest/
|
||||
|
||||
At a Glance
|
||||
===========
|
||||
|
||||
:Hosts:
|
||||
* refstack01.openstack.org
|
||||
:Ansible:
|
||||
* :git_file:`playbooks/service-refstack.yaml`
|
||||
* :git_file:`docker/refstack/Dockerfile`
|
||||
:Projects:
|
||||
* https://opendev.org/openinfra/refstack/
|
||||
:Bugs:
|
||||
* https://storyboard.openstack.org/#!/project/openinfra/refstack
|
||||
|
||||
Overview
|
||||
========
|
||||
|
||||
There are three major components in the Refstack server:
|
||||
|
||||
* Refstack-UI
|
||||
* Refstack-API
|
||||
* Database
|
||||
|
||||
These run as two containers (UI/API and mariadb) on the host.
|
||||
|
||||
Refstack-UI
|
||||
-----------
|
||||
|
||||
Refstack-UI is a web interface for interacting with data collected with
|
||||
the API server and client.
|
||||
|
||||
Refstack-API
|
||||
------------
|
||||
|
||||
Refstack-API server is a central repository for the collection of
|
||||
interoperability test results. It also provides APIs to facilitate the
|
||||
uploading/retrieval of test data. Users can use the refstack-client tool
|
||||
to anonymously upload their data to the refstack.openstack.org site.
|
||||
|
||||
Mariadb database
|
||||
----------------
|
||||
|
||||
This is the database to host the user uploaded test results data.
|
||||
|
||||
More information about the Refstack project can be found at
|
||||
https://docs.opendev.org/openinfra/refstack/latest/
|
||||
@@ -30,7 +30,6 @@ Major Systems
|
||||
afs
|
||||
tracing
|
||||
translate
|
||||
refstack
|
||||
codesearch
|
||||
signing
|
||||
github
|
||||
|
||||
@@ -1,62 +0,0 @@
|
||||
# Copyright (c) 2020 OpenStack Foundation
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
# implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
# upload trigger - Thu 11 Aug 2022 16:11 PM UTC
|
||||
# refstack commit - f222f3fb9540f0df4bf0cb8736c2470740659b18
|
||||
|
||||
FROM opendevorg/python-builder:3.11-bookworm as builder
|
||||
|
||||
RUN apt-get update \
|
||||
&& apt-get -y install git apt-utils python3-dev dh-python libc-dev-bin \
|
||||
libc6-dev libexpat1-dev libpython3-dev libpython3-dev linux-libc-dev \
|
||||
apt-transport-https curl gnupg2 \
|
||||
&& curl -sS https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add - \
|
||||
&& echo "deb https://deb.nodesource.com/node_18.x bookworm main" | tee /etc/apt/sources.list.d/nodesource.list \
|
||||
&& curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \
|
||||
&& echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list \
|
||||
&& apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get -q --option "Dpkg::Options::=--force-confold" --assume-yes install nodejs yarn \
|
||||
&& apt-get clean \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Refstack uses openstack constraints (it probably shouldn't) in CI
|
||||
# unittesting. Install with constraints here to ensure we're installing
|
||||
# what is in theory tested.
|
||||
RUN git clone https://opendev.org/openinfra/refstack /tmp/src \
|
||||
&& curl https://opendev.org/openstack/requirements/raw/branch/master/upper-constraints.txt -o /tmp/src/upper-constraints.txt
|
||||
|
||||
RUN assemble
|
||||
|
||||
RUN cd /tmp/src && yarn install
|
||||
|
||||
# Refstack's docs are built and then hosted by refstack UI
|
||||
RUN python -m venv /tmp/venv \
|
||||
&& /tmp/venv/bin/pip install beautifulsoup4 docutils \
|
||||
&& /tmp/venv/bin/python /tmp/src/tools/convert-docs.py -o /tmp/src/refstack-ui/app/components/about/templates /tmp/src/doc/source/*.rst \
|
||||
&& rm -rf /tmp/venv
|
||||
|
||||
FROM opendevorg/python-base:3.11-bookworm as refstack
|
||||
|
||||
COPY --from=builder /output/ /output
|
||||
COPY --from=builder /tmp/src/refstack-ui/app/ /refstack-ui/app
|
||||
COPY ./entrypoint.sh /usr/bin/entrypoint
|
||||
# TODO this should be fixed probably through proper js packaging
|
||||
RUN rm /refstack-ui/app/assets/lib
|
||||
COPY --from=builder /tmp/src/node_modules/@bower_components/ /refstack-ui/app/assets/lib
|
||||
RUN /output/install-from-bindep \
|
||||
&& rm -rf /output
|
||||
|
||||
ENTRYPOINT ["/usr/bin/entrypoint"]
|
||||
CMD ["pecan", "serve", "/usr/local/lib/python3.11/site-packages/refstack/api/config.py"]
|
||||
@@ -1,4 +0,0 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
refstack-manage upgrade --revision head
|
||||
$@
|
||||
@@ -46,7 +46,6 @@ cacti_hosts:
|
||||
- mirror.regionone.osuosl.opendev.org
|
||||
- mirror-update.opendev.org
|
||||
- mirror-update.openstack.org
|
||||
- refstack01.openstack.org
|
||||
- review03.opendev.org
|
||||
- static02.opendev.org
|
||||
- storyboard01.opendev.org
|
||||
|
||||
@@ -513,17 +513,6 @@ all:
|
||||
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDK7cG5HjYAYMFa3KCPcSOtBdaSdTEjbBe63pLAWBJ9FMo5ffLbAMQeD3lA/aIKAFRmO0dvlfTV6ITjpnJTxbPjenbEOPr4Ag4PX808z/zOlho4UFKeVkhWSeZKD0cp8ZT7x3qvteMtxO/HINoFSO6y4Qhkedfpm21ahMmP8zkV0hn5liLwa9aScgu+owIMDvuB+beQbflQXkKWOZriy3xjweKQgUWdEC4GrjJwnDkXhhrvGXFzQMeJZfKJ+roSWJzWX8lN0GJAnKRJMJ/cQfXEOZu2qLk3c3/B3JXo0MUZbE0iV2CLUe4CxOzEjRaN+/XH40O+VwfvA7BqdSxg6M88MKNzjjai5Ymqojuum0Y6REaKo5UzgoDtdiDx9EF9zqOrSJt45ku0aaH3vOFwrdkm2fbXA09Gg8mcRBS448JtmhfxJF2fSbWGE4CqrpAIKW/JNTfLrzKPva+UNZ+4C8zO9TlBwvNB89PJHhg3lT4rkCa35S1QhtBuDDH71qvblX0=
|
||||
- ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBHAVwyAm5xr7nFbdSGG/hYnf3cYd+LWG62rBMtyn1uasDEJD5iclrrL+mq3kL26CBYGf6Q+FUCKAu6hVFKNfUGk=
|
||||
- ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINkLpVksHdTQyKy+jUAkREPEkWmEqPrq0SFt4tR268Pd
|
||||
refstack01.openstack.org:
|
||||
ansible_host: 104.239.144.250
|
||||
location:
|
||||
cloud: openstackci-rax
|
||||
region_name: DFW
|
||||
public_v4: 104.239.144.250
|
||||
public_v6: 2001:4800:7818:104:be76:4eff:fe04:3cee
|
||||
host_keys:
|
||||
- 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDSn4bedF+dxVMa62ivwtrhKAP511EBeXsX9MO4GeORP27A2pUgJpI27aJwtIb+atsSQkIhgJgNzCcWzzEC2hOMMyO5x/KoI30CMSx1OzQHNDOjn0fm72+0RvCxr+z5lxotjC+fv6GqTg0MKjwE2IMDflZ635tHn8tasdt/LeUo+Jm4ulMAgNVuXAsORSQsZXbivO3YnLniZd8Plqv5Xl5yLp5ryYzwhfgsUCq/GxKe/dmd97l9zmMtYM+I0ynbFsInHUfSCiWYTjK0G025CSI9618BkQGUy2g3QEbfNgfxz4oNJTrCg63O9V8qbNerrssio+oP+Oh3W+hJFdFePdSxPLC+DuI9uYeF8MXctrepucYRpeg3NgA5D7EJv3XetjqmjHzljSYhmozvnEjsexlYQF/pXhcpC+/biQpHjJuxbfMqBWnNLCXLrXbe4Izg8nRaMbEeXKEbXITKooTSDHOhyFIxdzBd3S3UIRZs3mO2OFrdHCEkBFYT5LBnoXdL8Fc='
|
||||
- 'ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBOD0NAc1G4XGcZKT+ypYQr2ToFl2WFmScHW2rS53BHGKbDrIQwc4hIRH/32Zh4/8VaXvGz39ShQP0zfuW7bZwjs='
|
||||
- 'ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHwsecA5HspF+jd2ZD2QkcthuGAc8lmZxRwikUaVVZpk'
|
||||
review03.opendev.org:
|
||||
ansible_host: 162.253.55.233
|
||||
location:
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
refstack_url: 'https://refstack.openstack.org'
|
||||
refstack_openid_endpoint: 'https://id.openinfra.dev/accounts/openid2'
|
||||
@@ -26,7 +26,6 @@ groups:
|
||||
- gitea09.opendev.org
|
||||
- review03.opendev.org
|
||||
- zuul[0-9]*.opendev.org
|
||||
- refstack01.openstack.org
|
||||
- kdc03.openstack.org
|
||||
- eavesdrop02.opendev.org
|
||||
- paste02.opendev.org
|
||||
@@ -99,7 +98,6 @@ groups:
|
||||
- mirror[0-9]*.opendev.org
|
||||
- nb[0-9]*.opendev.org
|
||||
- paste[0-9]*.opendev.org
|
||||
- refstack[0-9]*.openstack.org
|
||||
- review[0-9]*.opendev.org
|
||||
- static[0-9]*.opendev.org
|
||||
- storyboard[0-9]*.opendev.org
|
||||
@@ -128,8 +126,6 @@ groups:
|
||||
- storyboard-dev[0-9]*.opendev.org
|
||||
- translate[0-9]*.open*.org
|
||||
- translate-dev[0-9]*.open*.org
|
||||
refstack:
|
||||
- refstack[0-9]*.openstack.org
|
||||
registry:
|
||||
- insecure-ci-registry[0-9]*.opendev.org
|
||||
review:
|
||||
@@ -161,7 +157,6 @@ groups:
|
||||
- nb[0-9]*.opendev.org
|
||||
- nl[0-9]*.open*.org
|
||||
- paste[0-9]*.opendev.org
|
||||
- refstack[0-9]*.openstack.org
|
||||
- static[0-9]*.opendev.org
|
||||
- storyboard-dev[0-9]*.opendev.org
|
||||
- storyboard[0-9]*.opendev.org
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
letsencrypt_certs:
|
||||
refstack01-openstack-org-main:
|
||||
- refstack01.openstack.org
|
||||
- refstack.openstack.org
|
||||
borg_backup_excludes_extra:
|
||||
# live db files
|
||||
- /var/lib/refstack/db
|
||||
# on-disk backups
|
||||
- /var/backups/refstack-mariadb
|
||||
@@ -168,11 +168,6 @@
|
||||
- name: letsencrypt updated review03-opendev-org-main
|
||||
include_tasks: roles/letsencrypt-create-certs/handlers/restart_apache.yaml
|
||||
|
||||
# refstack
|
||||
|
||||
- name: letsencrypt updated refstack01-openstack-org-main
|
||||
include_tasks: roles/letsencrypt-create-certs/handlers/restart_apache.yaml
|
||||
|
||||
# Mirrors
|
||||
- name: letsencrypt updated mirror01-iad3-openmetal-main
|
||||
include_tasks: roles/letsencrypt-create-certs/handlers/restart_apache.yaml
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
Install, configure, and run a refstack server.
|
||||
@@ -1,2 +0,0 @@
|
||||
User-agent: *
|
||||
Disallow: /
|
||||
@@ -1,4 +0,0 @@
|
||||
- name: refstack Reload apache2
|
||||
service:
|
||||
name: apache2
|
||||
state: reloaded
|
||||
@@ -1,155 +0,0 @@
|
||||
- name: Ensure docker-compose directory exists
|
||||
file:
|
||||
state: directory
|
||||
path: /etc/refstack-docker
|
||||
mode: 0700
|
||||
|
||||
- name: Write docker-compose file
|
||||
template:
|
||||
src: docker-compose.yaml.j2
|
||||
dest: /etc/refstack-docker/docker-compose.yaml
|
||||
mode: 0600
|
||||
|
||||
- name: Install apache2
|
||||
apt:
|
||||
name:
|
||||
- apache2
|
||||
- apache2-utils
|
||||
state: present
|
||||
|
||||
- name: Apache modules
|
||||
apache2_module:
|
||||
state: present
|
||||
name: "{{ item }}"
|
||||
loop:
|
||||
- rewrite
|
||||
- proxy
|
||||
- proxy_http
|
||||
- ssl
|
||||
- headers
|
||||
- proxy_wstunnel
|
||||
|
||||
- name: Copy apache config
|
||||
template:
|
||||
src: refstack.vhost.j2
|
||||
dest: /etc/apache2/sites-enabled/000-default.conf
|
||||
owner: root
|
||||
group: root
|
||||
mode: 0644
|
||||
notify: refstack Reload apache2
|
||||
|
||||
- name: Create refstack storage
|
||||
file:
|
||||
state: directory
|
||||
path: /var/lib/refstack/
|
||||
owner: root
|
||||
group: root
|
||||
mode: 0755
|
||||
|
||||
- name: Create refstack config storage area
|
||||
file:
|
||||
state: directory
|
||||
path: /var/lib/refstack/etc
|
||||
owner: root
|
||||
group: root
|
||||
mode: 0755
|
||||
|
||||
- name: Create refstack data storage area
|
||||
file:
|
||||
state: directory
|
||||
path: /var/lib/refstack/data
|
||||
owner: root
|
||||
group: root
|
||||
mode: 0755
|
||||
|
||||
- name: Create refstack www storage area
|
||||
file:
|
||||
state: directory
|
||||
path: /var/lib/refstack/www
|
||||
owner: root
|
||||
group: root
|
||||
mode: 0755
|
||||
|
||||
# NOTE(ianw) This deliberately does not set owner/group/mode, as the
|
||||
# mariadb container chowns this directory to be owned by a
|
||||
# container-internal user and drops root privileges. We don't want to
|
||||
# reset this from outside the container.
|
||||
- name: Create refstack db storage area
|
||||
file:
|
||||
state: directory
|
||||
path: /var/lib/refstack/db
|
||||
|
||||
- name: Copy hound robots.txt
|
||||
copy:
|
||||
src: robots.txt
|
||||
dest: /var/lib/refstack/www/robots.txt
|
||||
|
||||
- name: Write refstack.conf
|
||||
template:
|
||||
src: refstack.conf.j2
|
||||
dest: /var/lib/refstack/etc/refstack.conf
|
||||
|
||||
- name: Write config.json
|
||||
template:
|
||||
src: config.json.j2
|
||||
dest: /var/lib/refstack/etc/config.json
|
||||
|
||||
- name: Install distro packages
|
||||
package:
|
||||
name:
|
||||
- docker-compose
|
||||
state: present
|
||||
|
||||
- name: Run docker-compose pull
|
||||
shell:
|
||||
cmd: docker-compose pull
|
||||
chdir: /etc/refstack-docker/
|
||||
|
||||
- name: Run docker-compose up
|
||||
shell:
|
||||
cmd: docker-compose up -d --timeout 60
|
||||
chdir: /etc/refstack-docker/
|
||||
|
||||
- name: Run docker prune to cleanup unneeded images
|
||||
shell:
|
||||
cmd: docker image prune -f
|
||||
|
||||
- name: Create db backup dest
|
||||
file:
|
||||
state: directory
|
||||
path: /var/backups/refstack-mariadb
|
||||
mode: 0700
|
||||
owner: root
|
||||
group: root
|
||||
|
||||
- name: Set up cron job to backup the database
|
||||
cron:
|
||||
name: refstack-db-backup
|
||||
state: present
|
||||
user: root
|
||||
job: >
|
||||
/usr/bin/docker-compose -f /etc/refstack-docker/docker-compose.yaml exec -T mariadb
|
||||
bash -c '/usr/bin/mysqldump --opt --databases refstack --single-transaction -uroot -p"$MYSQL_ROOT_PASSWORD"' |
|
||||
gzip -9 > /var/backups/refstack-mariadb/refstack-mariadb.sql.gz
|
||||
minute: "42"
|
||||
hour: "4"
|
||||
|
||||
- name: Rotate db backups
|
||||
include_role:
|
||||
name: logrotate
|
||||
vars:
|
||||
logrotate_file_name: /var/backups/refstack-mariadb/refstack-mariadb.sql.gz
|
||||
|
||||
- name: Setup db backup streaming job
|
||||
block:
|
||||
- name: Create backup streaming config dir
|
||||
file:
|
||||
path: /etc/borg-streams
|
||||
state: directory
|
||||
|
||||
- name: Create db streaming file
|
||||
copy:
|
||||
content: >-
|
||||
/usr/local/bin/docker-compose -f /etc/refstack-docker/docker-compose.yaml exec -T mariadb
|
||||
bash -c '/usr/bin/mysqldump --skip-extended-insert --databases refstack --single-transaction -uroot -p"$MYSQL_ROOT_PASSWORD"'
|
||||
dest: /etc/borg-streams/mysql
|
||||
@@ -1 +0,0 @@
|
||||
{"refstackApiUrl": "{{ refstack_url }}/v1"}
|
||||
@@ -1,36 +0,0 @@
|
||||
# Version 2 is the latest that is supported by docker-compose in
|
||||
# Ubuntu Xenial.
|
||||
version: '2'
|
||||
|
||||
services:
|
||||
mariadb:
|
||||
image: quay.io/opendevmirror/mariadb:10.11
|
||||
network_mode: host
|
||||
restart: always
|
||||
environment:
|
||||
MYSQL_ROOT_PASSWORD: "{{ refstack_root_db_password }}"
|
||||
MYSQL_DATABASE: refstack
|
||||
MYSQL_USER: "{{ refstack_db_username }}"
|
||||
MYSQL_PASSWORD: "{{ refstack_db_password }}"
|
||||
MARIADB_AUTO_UPGRADE: 1
|
||||
volumes:
|
||||
- /var/lib/refstack/db:/var/lib/mysql
|
||||
logging:
|
||||
driver: syslog
|
||||
options:
|
||||
tag: "docker-mariadb"
|
||||
|
||||
refstack-api:
|
||||
depends_on:
|
||||
- mariadb
|
||||
image: opendevorg/refstack:latest
|
||||
network_mode: host
|
||||
restart: always
|
||||
volumes:
|
||||
- /var/lib/refstack/etc/refstack.conf:/etc/refstack.conf
|
||||
- /var/lib/refstack/etc/config.json:/refstack-ui/app/config.json
|
||||
- /var/lib/refstack/data:/var/run/data
|
||||
logging:
|
||||
driver: syslog
|
||||
options:
|
||||
tag: "docker-refstack-api"
|
||||
@@ -1,17 +0,0 @@
|
||||
[DEFAULT]
|
||||
debug = true
|
||||
verbose = true
|
||||
ui_url = {{ refstack_url }}
|
||||
|
||||
[api]
|
||||
static_root = /refstack-ui/app
|
||||
template_path = /refstack-ui/app
|
||||
app_dev_mode = true
|
||||
api_url = {{ refstack_url }}
|
||||
enable_anonymous_upload = {{ enable_anonymous_upload | default(false) }}
|
||||
|
||||
[database]
|
||||
connection = "mysql+pymysql://{{ refstack_db_username}}:{{ refstack_db_password }}@127.0.0.1/refstack?charset=utf8"
|
||||
|
||||
[osid]
|
||||
openstack_openid_endpoint = {{ refstack_openid_endpoint }}
|
||||
@@ -1,66 +0,0 @@
|
||||
<VirtualHost *:80>
|
||||
ServerName {{ inventory_hostname }}
|
||||
ServerAdmin infra-root@openstack.org
|
||||
|
||||
ErrorLog ${APACHE_LOG_DIR}/refstack-error.log
|
||||
|
||||
LogLevel warn
|
||||
|
||||
CustomLog ${APACHE_LOG_DIR}/refstack-access.log combined
|
||||
|
||||
Redirect / https://refstack.openstack.org/
|
||||
|
||||
</VirtualHost>
|
||||
|
||||
<VirtualHost *:443>
|
||||
ServerName {{ inventory_hostname }}
|
||||
ServerAdmin webmaster@openstack.org
|
||||
|
||||
RewriteCond %{HTTP_HOST} !^refstack\.openstack\.org [nocase]
|
||||
RewriteRule ^/(.*) https://refstack.openstack.org/$1 [last,redirect=permanent]
|
||||
|
||||
AllowEncodedSlashes On
|
||||
|
||||
ErrorLog ${APACHE_LOG_DIR}/refstack-ssl-error.log
|
||||
|
||||
LogLevel warn
|
||||
|
||||
CustomLog ${APACHE_LOG_DIR}/refstack-ssl-access.log combined
|
||||
|
||||
SSLEngine on
|
||||
SSLProtocol All -SSLv2 -SSLv3
|
||||
# Note: this list should ensure ciphers that provide forward secrecy
|
||||
SSLCipherSuite ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:!AES256:!aNULL:!eNULL:!MD5:!DSS:!PSK:!SRP
|
||||
SSLHonorCipherOrder on
|
||||
|
||||
SSLCertificateFile /etc/letsencrypt-certs/{{ inventory_hostname }}/{{ inventory_hostname }}.cer
|
||||
SSLCertificateKeyFile /etc/letsencrypt-certs/{{ inventory_hostname }}/{{ inventory_hostname }}.key
|
||||
SSLCertificateChainFile /etc/letsencrypt-certs/{{ inventory_hostname }}/ca.cer
|
||||
|
||||
ProxyPass / http://localhost:8000/ retry=0
|
||||
ProxyPassReverse / http://localhost:8000/
|
||||
|
||||
# Redirect all /api requests to the internal server's address for backward
|
||||
# compatibility - previously the vhost configuration redirected all /api
|
||||
# requests to a wsgi app which executed refstack to handle the request.
|
||||
# Now the refstack server is containerized and the server is served by pecan
|
||||
# where 'pecan serve' does the same as the wsgi app before plus it also
|
||||
# serves the UI interface. This has caused that the resources previously
|
||||
# found under /api/ are one level higher (omitting the /api part of the
|
||||
# URLs).
|
||||
# Example: <hostname>/api/v1/results is now at <hostname>/v1/results
|
||||
<Location "/api/">
|
||||
ProxyPass "http://localhost:8000/"
|
||||
</Location>
|
||||
|
||||
<Location "/robots.txt">
|
||||
ProxyPass !
|
||||
</Location>
|
||||
<Directory "/var/lib/refstack/www">
|
||||
Require all granted
|
||||
</Directory>
|
||||
Alias /robots.txt /var/lib/refstack/www/robots.txt
|
||||
|
||||
</VirtualHost>
|
||||
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
- hosts: "refstack:!disabled"
|
||||
name: "Configure refstack service in docker"
|
||||
roles:
|
||||
- install-docker
|
||||
- refstack
|
||||
@@ -129,7 +129,6 @@
|
||||
- group_vars/mailman3.yaml
|
||||
- group_vars/meetpad.yaml
|
||||
- group_vars/jvb.yaml
|
||||
- group_vars/refstack.yaml
|
||||
- group_vars/registry.yaml
|
||||
- group_vars/control-plane-clouds.yaml
|
||||
- group_vars/afs-client.yaml
|
||||
@@ -153,7 +152,6 @@
|
||||
- host_vars/mirror04.openafs.provider.opendev.org.yaml
|
||||
- host_vars/mirror-update99.opendev.org.yaml
|
||||
- host_vars/paste99.opendev.org.yaml
|
||||
- host_vars/refstack01.openstack.org.yaml
|
||||
- host_vars/review99.opendev.org.yaml
|
||||
|
||||
- name: Display group membership
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
# NOTE(ianw): we set to the FQDN in the gate to avoid the
|
||||
# server trying to talk to the production CNAME; the gate testing
|
||||
# has overridden hosts for the FQDN to be localhost
|
||||
refstack_url: 'https://{{ ansible_fqdn }}'
|
||||
refstack_db_username: refstack
|
||||
refstack_db_password: Jz4ooq9TL7nc3hX3
|
||||
refstack_root_db_password: KbgY3r9HYnEYpgRP
|
||||
@@ -1 +0,0 @@
|
||||
enable_anonymous_upload: true
|
||||
@@ -1,58 +0,0 @@
|
||||
# Copyright 2020 OpenStack Foundation
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
# not use this file except in compliance with the License. You may obtain
|
||||
# a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import json
|
||||
import time
|
||||
import urllib3
|
||||
|
||||
|
||||
testinfra_hosts = ['refstack01.openstack.org']
|
||||
|
||||
test_result_json = {
|
||||
"cpid": "9cddf99456964d7c90b98362e7175a12",
|
||||
"duration_seconds": 10,
|
||||
"results": [
|
||||
{
|
||||
"name": "tempest.api.compute.flavors.test_flavors."
|
||||
"FlavorsV2TestJSON.test_list_flavors",
|
||||
"uuid": "e36c0eaa-dff5-4082-ad1f-3f9a80aa3f59"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
def test_refstack_listening(host):
|
||||
# Give it some time to come up
|
||||
for i in range(300):
|
||||
refstack_https = host.socket("tcp://0.0.0.0:443")
|
||||
if refstack_https.is_listening:
|
||||
break
|
||||
time.sleep(1)
|
||||
assert refstack_https.is_listening
|
||||
refstack_http = host.socket("tcp://0.0.0.0:8000")
|
||||
assert refstack_http.is_listening
|
||||
|
||||
def test_refstack_container_running(host):
|
||||
cmd = host.run("docker inspect refstack-docker_refstack-api_1")
|
||||
out = json.loads(cmd.stdout)
|
||||
assert out[0]["State"]["Status"] == "running"
|
||||
assert out[0]["RestartCount"] == 0
|
||||
|
||||
def test_refstack_result_submission(host):
|
||||
url = "https://refstack01.openstack.org/v1/results/"
|
||||
headers = {'Content-type': 'application/json'}
|
||||
data = json.dumps(test_result_json)
|
||||
http = urllib3.PoolManager(cert_reqs='CERT_NONE')
|
||||
resp = http.request('POST', url, body=data, headers=headers)
|
||||
assert resp.status == 201
|
||||
@@ -1,32 +0,0 @@
|
||||
# Refstack jobs
|
||||
- job:
|
||||
name: system-config-build-image-refstack
|
||||
description: Build a refstack image.
|
||||
parent: system-config-build-image
|
||||
requires: &refstack_requires
|
||||
- python-base-3.11-bookworm-container-image
|
||||
- python-builder-3.11-bookworm-container-image
|
||||
provides: refstack-container-image
|
||||
vars: &refstack_vars
|
||||
docker_images:
|
||||
- context: docker/refstack
|
||||
target: refstack
|
||||
repository: opendevorg/refstack
|
||||
# Duplicate in the run-refstack job
|
||||
files: &refstack_files
|
||||
- docker/refstack/.*
|
||||
- job:
|
||||
name: system-config-upload-image-refstack
|
||||
description: Build and upload a refstack image.
|
||||
parent: system-config-upload-image
|
||||
requires: *refstack_requires
|
||||
provides: refstack-container-image
|
||||
vars: *refstack_vars
|
||||
files: *refstack_files
|
||||
|
||||
- job:
|
||||
name: system-config-promote-image-refstack
|
||||
description: Promote a previously published refstack image to latest.
|
||||
parent: system-config-promote-image
|
||||
vars: *refstack_vars
|
||||
files: *refstack_files
|
||||
@@ -454,25 +454,6 @@
|
||||
- playbooks/roles/sync-project-config
|
||||
- zuul.d/docker-images/gerrit.yaml
|
||||
|
||||
- job:
|
||||
name: infra-prod-service-refstack
|
||||
parent: infra-prod-service-base
|
||||
description: Run service-refstack.yaml playbook.
|
||||
vars:
|
||||
playbook_name: service-refstack.yaml
|
||||
files:
|
||||
- inventory/base
|
||||
- playbooks/service-refstack.yaml
|
||||
- inventory/service/group_vars/refstack.yaml
|
||||
- inventory/service/host_vars/refstack[0-9][0-9]
|
||||
- playbooks/roles/install-docker/
|
||||
- playbooks/roles/pip3/
|
||||
- playbooks/roles/refstack/
|
||||
- playbooks/roles/iptables/
|
||||
- playbooks/roles/logrotate/
|
||||
- docker/refstack
|
||||
- docker/python-base/
|
||||
|
||||
- job:
|
||||
name: infra-prod-service-gitea
|
||||
parent: infra-prod-service-base
|
||||
|
||||
@@ -74,12 +74,6 @@
|
||||
soft: true
|
||||
- name: system-config-build-image-gerrit-3.11
|
||||
soft: true
|
||||
- system-config-build-image-refstack
|
||||
- system-config-run-refstack:
|
||||
dependencies:
|
||||
- name: opendev-buildset-registry
|
||||
- name: system-config-build-image-refstack
|
||||
soft: true
|
||||
- system-config-run-tracing
|
||||
- system-config-run-zookeeper:
|
||||
dependencies:
|
||||
@@ -220,11 +214,6 @@
|
||||
- name: opendev-buildset-registry
|
||||
- name: system-config-upload-image-gerrit-3.11
|
||||
soft: true
|
||||
- system-config-run-refstack:
|
||||
dependencies:
|
||||
- name: opendev-buildset-registry
|
||||
- name: system-config-upload-image-refstack
|
||||
soft: true
|
||||
- system-config-run-tracing
|
||||
- system-config-run-zookeeper:
|
||||
dependencies:
|
||||
@@ -261,7 +250,6 @@
|
||||
- name: opendev-buildset-registry
|
||||
- name: system-config-upload-image-assets
|
||||
soft: true
|
||||
- system-config-upload-image-refstack
|
||||
- system-config-upload-image-haproxy-statsd:
|
||||
dependencies:
|
||||
- name: opendev-buildset-registry
|
||||
@@ -314,7 +302,6 @@
|
||||
- system-config-promote-image-haproxy-statsd
|
||||
- system-config-promote-image-zookeeper-statsd
|
||||
- system-config-promote-image-accessbot
|
||||
- system-config-promote-image-refstack
|
||||
- system-config-promote-image-ircbot
|
||||
- system-config-promote-image-matrix-eavesdrop
|
||||
- system-config-promote-image-python-base-3.11-bookworm
|
||||
@@ -538,15 +525,6 @@
|
||||
- name: infra-prod-bootstrap-bridge
|
||||
- name: infra-prod-letsencrypt
|
||||
soft: true
|
||||
- infra-prod-service-refstack: &infra-prod-service-refstack
|
||||
dependencies:
|
||||
- name: infra-prod-bootstrap-bridge
|
||||
- name: infra-prod-service-borg-backup
|
||||
soft: true
|
||||
- name: infra-prod-letsencrypt
|
||||
soft: true
|
||||
- name: system-config-promote-image-refstack
|
||||
soft: true
|
||||
- infra-prod-service-review: &infra-prod-service-review
|
||||
dependencies:
|
||||
- name: infra-prod-bootstrap-bridge
|
||||
@@ -687,7 +665,6 @@
|
||||
- infra-prod-service-static: *infra-prod-service-static
|
||||
- infra-prod-service-paste: *infra-prod-service-paste
|
||||
- infra-prod-service-registry: *infra-prod-service-registry
|
||||
- infra-prod-service-refstack: *infra-prod-service-refstack
|
||||
- infra-prod-service-review: *infra-prod-service-review
|
||||
- infra-prod-service-tracing: *infra-prod-service-tracing
|
||||
- infra-prod-service-zookeeper: *infra-prod-service-zookeeper
|
||||
|
||||
@@ -1130,41 +1130,6 @@
|
||||
'/etc/apache2/': logs
|
||||
'/var/log/apache2/': logs
|
||||
|
||||
- job:
|
||||
name: system-config-run-refstack
|
||||
parent: system-config-run
|
||||
description: |
|
||||
Run the playbook for refstack server.
|
||||
requires:
|
||||
- refstack-container-image
|
||||
nodeset:
|
||||
nodes:
|
||||
- <<: *bridge_node_x86
|
||||
- name: refstack01.openstack.org
|
||||
label: ubuntu-focal
|
||||
groups:
|
||||
- <<: *bastion_group
|
||||
host-vars:
|
||||
refstack01.openstack.org:
|
||||
host_copy_output:
|
||||
'/var/log/apache2/': logs
|
||||
'/var/lib/refstack/': logs
|
||||
'/var/refstack/': logs
|
||||
vars:
|
||||
run_playbooks:
|
||||
- playbooks/letsencrypt.yaml
|
||||
- playbooks/service-refstack.yaml
|
||||
container_command: docker
|
||||
files:
|
||||
- playbooks/bootstrap-bridge.yaml
|
||||
- inventory/service/group-vars/refstack.yaml
|
||||
- playbooks/zuul/templates/group_vars/refstack.yaml.j2
|
||||
- playbooks/roles/refstack/
|
||||
- playbooks/roles/letsencrypt-create-certs/handlers/restart_apache.yaml
|
||||
- testinfra/test_refstack.py
|
||||
# If we rebuild the image, we want to run this job as well.
|
||||
- docker/refstack/.*
|
||||
|
||||
- job:
|
||||
name: system-config-run-kerberos
|
||||
parent: system-config-run
|
||||
|
||||
Reference in New Issue
Block a user