openqa/dispatcher: use arch filtering instead of custom WANTED

I just enhanced the scheduler code so we can share the stock
WANTED definition (which now includes all arches) between prod
and lab, but filter the arches with a config file setting. This
means we don't have to carry and install a whole custom WANTED
file with the extra arches for lab any more, we just set the
appropriate value in the config file. Also drop some stuff from
the config file that's been useless since we switched to
fedora-messaging.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
This commit is contained in:
Adam Williamson 2020-10-29 16:55:11 -07:00
parent 6937712e23
commit 2b7a62f232
6 changed files with 12 additions and 226 deletions

View file

@ -23,6 +23,7 @@ openqa_env: production
wikitcms_token: "{{ private }}/files/openidc/production/wikitcms.json"
openqa_wikitcms_hostname: fedoraproject.org
openqa_resultsdb_url: http://resultsdb01.iad2.fedoraproject.org/resultsdb_api/api/v2.0/
openqa_compose_arches: x86_64
openqa_update_arches: ['x86_64']
deployment_type: prod

View file

@ -33,9 +33,6 @@ openqa_webapi_plugins: FedoraMessaging FedoraUpdateRestart
openqa_env_suffix: .stg
openqa_env: staging
# for now, we have the 'extra' arches (ppc64 and aarch64) on stg
openqa_extraarches: true
# install openQA from updates-testing - this is staging, we live
# ON THE EDGE (radical guitar riff)
openqa_repo: updates-testing
@ -43,6 +40,7 @@ openqa_repo: updates-testing
wikitcms_token: "{{ private }}/files/openidc/staging/wikitcms.json"
openqa_wikitcms_hostname: stg.fedoraproject.org
openqa_resultsdb_url: http://resultsdb01.stg.iad2.fedoraproject.org/resultsdb_api/api/v2.0/
openqa_compose_arches: x86_64,aarch64,ppc64le
openqa_update_arches: ['x86_64', 'ppc64le']
# FIXME: disable consumers that write to wiki until auth key

View file

@ -1,5 +1,6 @@
openqa_hostname: localhost
openqa_extraarches: false
openqa_compose_arches: "x86_64"
openqa_update_arches: ["x86_64"]
openqa_amqp_passive: false
openqa_amqp_scheduler_url: "amqps://fedora:@rabbitmq.fedoraproject.org/%2Fpublic_pubsub"
openqa_amqp_scheduler_cacert: /etc/fedora-messaging/cacert.pem

View file

@ -1,186 +0,0 @@
[
{
"match": {
"subvariant": "Server",
"type": "boot",
"format": "iso",
"arch": "x86_64"
},
"score": 6
},
{
"match": {
"subvariant": "Server",
"type": "dvd",
"format": "iso",
"arch": "x86_64"
},
"score": 10
},
{
"match": {
"subvariant": "Everything",
"type": "boot",
"format": "iso",
"arch": "x86_64"
},
"score": 8
},
{
"match": {
"subvariant": "Workstation",
"type": "live",
"format": "iso",
"arch": "x86_64"
}
},
{
"match": {
"subvariant": "KDE",
"type": "live",
"format": "iso",
"arch": "x86_64"
}
},
{
"match": {
"subvariant": "Silverblue",
"type": "dvd-ostree",
"format": "iso",
"arch": "x86_64"
}
},
{
"match": {
"subvariant": "IoT",
"type": "dvd-ostree",
"format": "iso",
"arch": "x86_64"
}
},
{
"match": {
"subvariant": "Cloud_Base",
"type": "qcow2",
"format": "qcow2",
"arch": "x86_64"
}
},
{
"match": {
"subvariant": "Everything",
"type": "boot",
"format": "iso",
"arch": "ppc64le"
},
"score": 8
},
{
"match": {
"subvariant": "Workstation",
"type": "live",
"format": "iso",
"arch": "ppc64le"
}
},
{
"match": {
"subvariant": "Server",
"type": "boot",
"format": "iso",
"arch": "ppc64le"
},
"score": 6
},
{
"match": {
"subvariant": "Server",
"type": "dvd",
"format": "iso",
"arch": "ppc64le"
},
"score": 10
},
{
"match": {
"subvariant": "Cloud_Base",
"type": "qcow2",
"format": "qcow2",
"arch": "ppc64le"
}
},
{
"match": {
"subvariant": "Silverblue",
"type": "dvd-ostree",
"format": "iso",
"arch": "ppc64le"
}
},
{
"match": {
"subvariant": "IoT",
"type": "dvd-ostree",
"format": "iso",
"arch": "ppc64le"
}
},
{
"match": {
"subvariant": "Minimal",
"type": "raw-xz",
"format": "raw.xz",
"arch": "aarch64"
}
},
{
"match": {
"subvariant": "Server",
"type": "boot",
"format": "iso",
"arch": "aarch64"
},
"score": 6
},
{
"match": {
"subvariant": "Server",
"type": "dvd",
"format": "iso",
"arch": "aarch64"
},
"score": 10
},
{
"match": {
"subvariant": "Server",
"type": "raw-xz",
"format": "raw.xz",
"arch": "aarch64"
}
},
{
"match": {
"subvariant": "Workstation",
"type": "raw-xz",
"format": "raw.xz",
"arch": "aarch64"
}
},
{
"match": {
"subvariant": "Cloud_Base",
"type": "qcow2",
"format": "qcow2",
"arch": "aarch64"
}
},
{
"match": {
"subvariant": "IoT",
"type": "dvd-ostree",
"format": "iso",
"arch": "aarch64"
}
}
]

View file

@ -7,12 +7,10 @@
## string - The public hostname of the openQA server (used in
## links back from ResultsDB and wiki results)
## default - ansible_nodename
# - openqa_extraarches
## bool - when this is set, this instance will be configured to
## create jobs for 'extra' arches beyond x86_64 (currently
## ppc64 and aarch64). Only set it if this instance will
## have worker hosts for those arches
## default - false
# - openqa_compose_arches
## string - Comma-separated list of arches to schedule compose
## tests for
## default - x86_64
#
# Optional vars
# - wikitcms_token
@ -232,15 +230,6 @@
- name: Create fedora_openqa config directory
file: path=/etc/fedora-openqa state=directory owner=root group=root mode=0755
# For now, we only have enough ppc64/aarch64 workers for one instance,
# so we have a variant WANTED file that we deploy based on a config
# variable.
- name: Install extra arch WANTED images config if enabled
copy: src=images.json.extraarches dest=/etc/fedora-openqa/images.json
when: openqa_extraarches|bool
notify:
- restart openqa scheduler consumer
- name: Write schedule.conf
template: src=schedule.conf.j2 dest=/etc/fedora-openqa/schedule.conf owner=root group=root mode=0644
notify:

View file

@ -1,23 +1,6 @@
[report]
resultsdb_url: {{ openqa_resultsdb_url }}
{% if deployment_type is defined and deployment_type == 'prod' %}
wiki_hostname: fedoraproject.org
[consumers]
prod_oqa_hostname: {{ openqa_hostname }}
prod_oqa_baseurl: https://{{ external_hostname|default(ansible_nodename) }}
prod_wiki_hostname: fedoraproject.org
prod_wiki_report: true
prod_rdb_url: {{ openqa_resultsdb_url }}
prod_rdb_report: true
{% elif deployment_type is defined and deployment_type == 'stg' %}
wiki_hostname: stg.fedoraproject.org
[consumers]
# as we use the production scheduler
prod_oqa_hostname: {{ openqa_hostname }}
stg_oqa_hostname: {{ openqa_hostname }}
stg_oqa_baseurl: https://{{ external_hostname|default(ansible_nodename) }}
stg_wiki_hostname: stg.fedoraproject.org
stg_wiki_report: true
stg_rdb_url: {{ openqa_resultsdb_url }}
stg_rdb_report: true
{% endif %}
wiki_hostname: {{ openqa_wikitcms_hostname }}
[schedule]
arches: {{ openqa_compose_arches }}