- project: queue: watcher templates: - check-requirements - openstack-cover-jobs - openstack-python3-jobs - publish-openstack-docs-pti - release-notes-jobs-python3 check: jobs: - watcher-tempest-functional - watcher-tempest-functional-jammy - watcher-grenade - watcher-tempest-strategies - watcher-tempest-actuator - watcherclient-tempest-functional - watcher-tempest-functional-ipv6-only - watcher-prometheus-integration gate: jobs: - watcher-tempest-functional - watcher-tempest-functional-jammy - watcher-tempest-functional-ipv6-only - job: name: watcher-tempest-actuator parent: watcher-tempest-multinode vars: tempest_test_regex: watcher_tempest_plugin.tests.scenario.test_execute_actuator - job: name: watcher-tempest-strategies parent: watcher-tempest-multinode vars: tempest_concurrency: 1 tempest_test_regex: watcher_tempest_plugin.tests.scenario.test_execute_strategies - job: name: watcher-tempest-multinode parent: watcher-tempest-functional nodeset: openstack-two-node-noble roles: - zuul: openstack/tempest group-vars: subnode: devstack_local_conf: post-config: $WATCHER_CONF: watcher_cluster_data_model_collectors.compute: period: 120 watcher_cluster_data_model_collectors.baremetal: period: 120 watcher_cluster_data_model_collectors.storage: period: 120 devstack_services: watcher-api: false watcher-decision-engine: true watcher-applier: false c-bak: false ceilometer: false ceilometer-acompute: false ceilometer-acentral: false ceilometer-anotification: false watcher: false gnocchi-api: false gnocchi-metricd: false rabbit: false mysql: false vars: devstack_local_conf: post-config: $WATCHER_CONF: watcher_cluster_data_model_collectors.compute: period: 120 watcher_cluster_data_model_collectors.baremetal: period: 120 watcher_cluster_data_model_collectors.storage: period: 120 test-config: $TEMPEST_CONFIG: compute: min_compute_nodes: 2 min_microversion: 2.56 compute-feature-enabled: live_migration: true block_migration_for_live_migration: true placement: min_microversion: 1.29 devstack_plugins: ceilometer: https://opendev.org/openstack/ceilometer - job: name: watcher-tempest-functional parent: devstack-tempest timeout: 7200 required-projects: &base_required_projects - openstack/ceilometer - openstack/python-openstackclient - openstack/python-watcherclient - openstack/watcher - openstack/watcher-tempest-plugin - openstack/tempest vars: &base_vars devstack_plugins: watcher: https://opendev.org/openstack/watcher devstack_services: watcher-api: true watcher-decision-engine: true watcher-applier: true tempest: true s-account: false s-container: false s-object: false s-proxy: false tempest_plugins: - watcher-tempest-plugin tempest_test_regex: watcher_tempest_plugin.tests.api tox_envlist: all zuul_copy_output: /etc/hosts: logs # TODO(gmann): As per the 2025.1 testing runtime, we need to run at least # one job on jammy. This job can be removed in the next cycle(2025.2) - job: name: watcher-tempest-functional-jammy description: This is integrated job testing on Ubuntu jammy(22.04) parent: watcher-tempest-functional nodeset: openstack-single-node-jammy vars: <<: *base_vars python_version: '3.9' - job: name: watcher-tempest-functional-ipv6-only parent: devstack-tempest-ipv6 description: | Watcher devstack tempest tests job for IPv6-only deployment required-projects: *base_required_projects vars: *base_vars - job: name: watcher-grenade parent: grenade required-projects: - openstack/watcher - openstack/python-watcherclient - openstack/watcher-tempest-plugin vars: *base_vars irrelevant-files: &irrelevent_files - ^(test-|)requirements.txt$ - ^.*\.rst$ - ^api-ref/.*$ - ^doc/.*$ - ^watcher/hacking/.*$ - ^watcher/tests/.*$ - ^releasenotes/.*$ - ^setup.cfg$ - ^tools/.*$ - ^tox.ini$ - job: # This job is used in python-watcherclient repo name: watcherclient-tempest-functional parent: watcher-tempest-functional timeout: 4200 vars: tempest_concurrency: 1 tempest_test_regex: watcher_tempest_plugin.tests.client_functional - job: name: watcher-sg-core-tempest-base parent: devstack-tempest nodeset: openstack-two-node-noble description: | This job is for testing watcher and sg-core/prometheus installation abstract: true pre-run: - playbooks/generate_prometheus_config.yml irrelevant-files: *irrelevent_files timeout: 7800 required-projects: &base_sg_required_projects - openstack/aodh - openstack/ceilometer - openstack/tempest - openstack-k8s-operators/sg-core - openstack/watcher - openstack/python-watcherclient - openstack/watcher-tempest-plugin - openstack/devstack-plugin-prometheus vars: configure_swap_size: 8192 devstack_plugins: ceilometer: https://opendev.org/openstack/ceilometer aodh: https://opendev.org/openstack/aodh sg-core: https://github.com/openstack-k8s-operators/sg-core watcher: https://opendev.org/openstack/watcher devstack-plugin-prometheus: https://opendev.org/openstack/devstack-plugin-prometheus devstack_services: watcher-api: true watcher-decision-engine: true watcher-applier: true tempest: true # We do not need Swift in this job so disable it for speed # Swift services s-account: false s-container: false s-object: false s-proxy: false # Prometheus related service prometheus: true node_exporter: true devstack_localrc: CEILOMETER_BACKENDS: "sg-core" CEILOMETER_PIPELINE_INTERVAL: 15 CEILOMETER_ALARM_THRESHOLD: 6000000000 NODE_EXPORTER_ENABLE: false PROMETHEUS_ENABLE: false PROMETHEUS_SERVICE_SCRAPE_TARGETS: "sg-core,node-exporter" PROMETHEUS_CONFIG_FILE: "/home/zuul/prometheus.yml" devstack_local_conf: post-config: $WATCHER_CONF: watcher_datasources: datasources: prometheus prometheus_client: host: 127.0.0.1 port: 9090 watcher_cluster_data_model_collectors.compute: period: 120 watcher_cluster_data_model_collectors.baremetal: period: 120 watcher_cluster_data_model_collectors.storage: period: 120 test-config: $TEMPEST_CONFIG: compute: min_compute_nodes: 2 min_microversion: 2.56 compute-feature-enabled: live_migration: true block_migration_for_live_migration: true placement: min_microversion: 1.29 service_available: sg_core: True telemetry_services: metric_backends: prometheus telemetry: disable_ssl_certificate_validation: True ceilometer_polling_interval: 15 # Note(Chandan Kumar): Setting datasource to empty till we # add prometheus datasource support in watcher-tempest-plugin optimize: datasource: "" tempest_plugins: - watcher-tempest-plugin # TODO (rlandy): enable all scenario tests # when tests can be run with prometheus data source. # https://bugs.launchpad.net/watcher-tempest-plugin/+bug/2090853 tempest_test_regex: "\ (^^watcher_tempest_plugin.tests.scenario.test_execute_vm_workload_consolidation)|\ (^watcher_tempest_plugin.tests.scenario.test_execute_workload_balancing)" tempest_concurrency: 1 tox_envlist: all zuul_copy_output: /etc/prometheus/prometheus.yml: logs group-vars: subnode: devstack_plugins: ceilometer: https://opendev.org/openstack/ceilometer sg-core: https://github.com/openstack-k8s-operators/sg-core devstack-plugin-prometheus: https://opendev.org/openstack/devstack-plugin-prometheus devstack_services: ceilometer-acompute: true sg-core: false prometheus: false node_exporter: true devstack_localrc: CEILOMETER_BACKEND: "none" CEILOMETER_BACKENDS: "none" # sg_core related var NODE_EXPORTER_ENABLE: false PROMETHEUS_ENABLE: false devstack_local_conf: post-config: $WATCHER_CONF: watcher_cluster_data_model_collectors.compute: period: 120 watcher_cluster_data_model_collectors.baremetal: period: 120 watcher_cluster_data_model_collectors.storage: period: 120 - job: name: watcher-prometheus-integration parent: watcher-sg-core-tempest-base