- project: templates: - publish-openstack-docs-pti check: jobs: - grenade - grenade-multinode - grenade-heat-multinode - octavia-grenade - ironic-grenade: voting: false - grenade-skip-level: voting: false gate: jobs: - grenade - grenade-multinode - grenade-heat-multinode - octavia-grenade experimental: jobs: - grenade-postgresql - job: name: grenade-base parent: multinode abstract: true description: | Base grenade job This is the base grenade job for both single and multi node grenade tests. It does not define any service to be used, so that this can be used to build an upgrade test with a minimal number of services. required-projects: - opendev.org/openstack/devstack - opendev.org/openstack/grenade - opendev.org/openstack/requirements - opendev.org/openstack/tempest roles: - zuul: opendev.org/openstack/openstack-zuul-jobs - zuul: opendev.org/openstack/devstack - zuul: opendev.org/openstack/tempest vars: devstack_bases: shared: /opt/stack old: /opt/stack/old new: /opt/stack/new logs_old: /opt/stack/logs/old logs_new: /opt/stack/logs/new grenade_devstack_localrc: &grenade_base_devstack_localrc old: DEST: "{{ devstack_bases.old }}" LOGFILE: "{{ devstack_bases.old }}/logs/devstacklog.txt" new: DEST: "{{ devstack_bases.new }}" LOGFILE: "{{ devstack_bases.new }}/logs/devstacklog.txt" shared: USE_PYTHON3: true # Common settings for OpenStack CI DATABASE_PASSWORD: secretdatabase # FIXME: temporarily define MYSQL_PASSWORD too, # because some code in devstack and in grenade # still requires it to be defined. MYSQL_PASSWORD: secretdatabase RABBIT_PASSWORD: secretrabbit ADMIN_PASSWORD: secretadmin SERVICE_PASSWORD: secretservice NETWORK_GATEWAY: 10.1.0.1 FIXED_RANGE: 10.1.0.0/20 IPV4_ADDRS_SAFE_TO_USE: 10.1.0.0/20 FLOATING_RANGE: 172.24.5.0/24 PUBLIC_NETWORK_GATEWAY: 172.24.5.1 FIXED_NETWORK_SIZE: 4096 LOG_COLOR: false VERBOSE: true VERBOSE_NO_TIMESTAMP: true NOVNC_FROM_PACKAGE: true ERROR_ON_CLONE: true # Gate jobs can't deal with nested virt. Disable it. LIBVIRT_TYPE: qemu # TODO(jlibosva): Devstack defaults to OVN but OVN Grenade # as of early Victoria does not work. We can # remove setting explicitly ML2/OVS mech # driver for Grenade once OVN works with Grenade. Q_AGENT: openvswitch Q_ML2_TENANT_NETWORK_TYPE: vxlan Q_ML2_PLUGIN_MECHANISM_DRIVERS: openvswitch grenade_localrc: SAVE_DIR: "{{ devstack_bases.shared }}/save" # from tempest playbooks devstack_local_conf: test-config: $TEMPEST_CONFIG: compute: min_compute_nodes: "{{ groups['compute'] | default(['controller']) | length }}" test_results_stage_name: test_results zuul_copy_output: '{{ devstack_bases.logs_old }}': logs '{{ devstack_bases.logs_new }}': logs '{{ grenade_save_dir }}': logs '{{ grenade_log_dir }}/grenade.sh.log': logs '{{ grenade_log_dir }}/grenade.sh.log.summary': logs '{{ grenade_conf_dir }}/grenade_localrc': logs_txt '{{ grenade_conf_dir }}/grenade_pluginrc': logs_txt '{{ stage_dir }}/{{ test_results_stage_name }}.subunit': logs '{{ stage_dir }}/{{ test_results_stage_name }}.html': logs '{{ stage_dir }}/stackviz': logs '{{ stage_dir }}/apache': logs '{{ stage_dir }}/apache_config': logs '{{ stage_dir }}/etc': logs '/var/log/rabbitmq': logs '/var/log/postgresql': logs '/var/log/mysql': logs '/var/log/libvirt': logs '/etc/sudoers': logs '/etc/sudoers.d': logs '{{ stage_dir }}/iptables.txt': logs '{{ stage_dir }}/df.txt': logs '{{ stage_dir }}/pip2-freeze.txt': logs '{{ stage_dir }}/pip3-freeze.txt': logs '{{ stage_dir }}/dpkg-l.txt': logs '{{ stage_dir }}/rpm-qa.txt': logs '{{ stage_dir }}/core': logs '{{ stage_dir }}/listen53.txt': logs '{{ stage_dir }}/deprecations.log': logs '/var/log/ceph': logs '/var/log/openvswitch': logs '/var/log/glusterfs': logs '/etc/glusterfs/glusterd.vol': logs '/etc/resolv.conf': logs '/var/log/unbound.log': logs extensions_to_txt: auto: True conf: True log: True localrc: True stackenv: True summary: True group-vars: subnode: grenade_devstack_localrc: <<: *grenade_base_devstack_localrc pre-run: playbooks/pre.yaml run: playbooks/grenade.yaml post-run: playbooks/post.yaml irrelevant-files: &grenade-irrelevant-files # Documentation related - ^.*\.rst$ - ^api-ref/.*$ - ^doc/.*$ - ^releasenotes/.*$ - ^.git.*$ # Translations - ^.*/locale/.*po$ - job: name: grenade parent: grenade-base description: | Default grenade job Usually grenade jobs should inherit from this job. nodeset: openstack-single-node-focal required-projects: # NOTE(andreaf) The devstack and grenade roles take care of setting up # repos on the right branch for this job. - opendev.org/openstack/cinder - opendev.org/openstack/glance - opendev.org/openstack/keystone - opendev.org/openstack/neutron - opendev.org/openstack/nova - opendev.org/openstack/placement - opendev.org/openstack/swift timeout: 10800 vars: grenade_devstack_localrc: shared: # Common OpenStack services settings SWIFT_REPLICAS: 1 SWIFT_START_ALL_SERVICES: false SWIFT_HASH: 1234123412341234 CINDER_PERIODIC_INTERVAL: 10 DEBUG_LIBVIRT_COREDUMPS: True # Multinode specific settings SERVICE_HOST: "{{ hostvars['controller']['nodepool']['private_ipv4'] }}" HOST_IP: "{{ hostvars['controller']['nodepool']['private_ipv4'] }}" PUBLIC_BRIDGE_MTU: "{{ external_bridge_mtu }}" CELLSV2_SETUP: "singleconductor" # Node specific settings DATABASE_TYPE: mysql # Glance should always be non-standalone GLANCE_STANDALONE: False devstack_local_conf: post-config: $NEUTRON_CONF: DEFAULT: global_physnet_mtu: "{{ external_bridge_mtu }}" grenade_localrc: # enable the execution of the base smoke tests by default BASE_RUN_SMOKE: True devstack_plugins: neutron: https://opendev.org/openstack/neutron devstack_services: # Core services enabled for this branch. # This list replaces the test-matrix. # Shared services dstat: true etcd3: true mysql: true memory_tracker: true rabbit: true # TODO: tls-proxy is not tested by legacy jobs; # enable this after testing. tls-proxy: false # Keystone services key: true # Glance services g-api: true g-reg: true # Nova services n-api: true n-api-meta: true n-cauth: true n-cond: true n-cpu: true n-novnc: true n-obj: true n-sch: true placement-api: true # Neutron services # We need to keep using the neutron-legacy based services for # now until all issues with the new lib/neutron code are solved # TODO(jlibosva): Devstack defaults to OVN but OVN Grenade # as of early Victoria does not work. We can # remove setting explicitly ML2/OVS mech # driver for Grenade once OVN works with Grenade. q-agt: true q-dhcp: true q-l3: true q-meta: true q-metering: true q-svc: true ovn-controller: false ovn-northd: false q-ovn-metadata-agent: false # neutron-api: true # neutron-agent: true # neutron-dhcp: true # neutron-l3: true # neutron-metadata-agent: true # neutron-metering: true neutron-trunk: true # Swift services s-account: true s-container: true s-object: true s-proxy: true # Cinder services c-api: true c-bak: true c-sch: true c-vol: true cinder: true # Tempest was enabled by default even before the native Zuul v3 job tempest: true # Services we don't need. # This section is not really needed, it's for readability. horizon: false # Test matrix emits ceilometer but ceilometer is not installed in the # integrated gate, so specifying the services has not effect. # ceilometer-*: false group-vars: subnode: devstack_services: # Core services enabled for this branch. # This list replaces the test-matrix. # Shared services dstat: true memory_tracker: true # TODO: tls-proxy is not tested by legacy jobs; # enable this after testing. tls-proxy: false # Nova services n-cpu: true placement-client: true # Neutron services # We need to keep using the neutron-legacy based services for # now until all issues with the new lib/neutron code are solved q-agt: true # neutron-agent: true # Cinder services c-bak: true c-vol: true # Services we don't run at all on subnode. # This section is not really needed, it's for readability. # keystone: false # s-*: false horizon: false tempest: false # Test matrix emits ceilometer but ceilometer is not installed in the # integrated gate, so specifying the services has not effect. # ceilometer-*: false grenade_devstack_localrc: shared: # Multinode specific settings HOST_IP: "{{ hostvars[inventory_hostname]['nodepool']['private_ipv4'] }}" SERVICE_HOST: "{{ hostvars['controller']['nodepool']['private_ipv4'] }}" PUBLIC_BRIDGE_MTU: "{{ external_bridge_mtu }}" CELLSV2_SETUP: "singleconductor" # Subnode specific settings DATABASE_TYPE: mysql GLANCE_HOSTPORT: "{{ hostvars['controller']['nodepool']['private_ipv4'] }}:9292" Q_HOST: "{{ hostvars['controller']['nodepool']['private_ipv4'] }}" RABBIT_HOST: "{{ hostvars['controller']['nodepool']['private_ipv4'] }}" DATABASE_HOST: "{{ hostvars['controller']['nodepool']['private_ipv4'] }}" - job: name: grenade-py3 parent: grenade description: | Grenade job based on Python 3 vars: grenade_devstack_localrc: shared: USE_PYTHON3: true - job: name: grenade-forward parent: grenade description: | Forward test. This is mostly relevant for stable branches, because running it in master will execute an upgrade to the same commit. Former names for this job were: * grenade-dsvm-neutron-forward * legacy-grenade-dsvm-neutron-forward vars: # When a stable branch stable/X is created from master, # this value should be updated to stable/X. grenade_from_branch: master - job: name: grenade-dsvm-neutron-forward branches: ^(?!(stable/(ocata|pike|queens|rocky|stein|train))).*$ parent: grenade-forward - job: name: grenade-postgresql description: | Default grenade job which uses PostgreSQL parent: grenade vars: grenade_devstack_localrc: shared: DATABASE_TYPE: postgresql devstack_services: mysql: false postgresql: true group-vars: subnode: devstack_services: grenade_devstack_localrc: shared: DATABASE_TYPE: postgresql - job: name: grenade-multinode description: | Basic multinode grenade job parent: grenade nodeset: openstack-two-node-focal - job: name: grenade-skip-level description: | Grenade job that skips a release, validating that deployers can skip specific releases as prescribed by our process. parent: grenade # NOTE(gmann): This job is meant to validate the tick to tick release # upgrade so supposed to run on tick release gate only. To make sure # that, when the current master is tock release, below branch variant will # stop running it on tock release master. And once new tick release start # (means the current master is tick release), we need to remove the below # branch variant condition so that it again start running on tick release # master gate. # Along with grenade gate, this job runs on many other projects gate # also and in this job definition, we control for everyone to run on tick # release only. branches: ^(?!master).*$ vars: # Move this forward when master changes to a new skip-level-allowed # target release. Right now, this is wallaby because master is yoga. # When master is A, this should become yoga, and so forth. grenade_from_branch: stable/wallaby grenade_localrc: NOVA_ENABLE_UPGRADE_WORKAROUND: True