Fix CI failures
* new ansible-lint complaints * clamp ansible-lint to <7 * tox 4 support * switch to CentOS NFV Open vSwitch repository for OVS - rocky 9 RDO install was failing * switch from Kayobe CentOS stream 8 to Rocky Linux 9 and Ubuntu Jammy jobs - these are the current supported distros in Kayobe master Change-Id: Ic607ccccc866da65c100053bfa15ee141a98679e
This commit is contained in:
parent
d0ded32016
commit
2c2c8b9504
@ -4,6 +4,7 @@ skip_list:
|
|||||||
- fqcn[action]
|
- fqcn[action]
|
||||||
- name[missing]
|
- name[missing]
|
||||||
- name[template]
|
- name[template]
|
||||||
|
- var-naming[no-role-prefix]
|
||||||
|
|
||||||
warn_list:
|
warn_list:
|
||||||
- no-changed-when
|
- no-changed-when
|
||||||
|
@ -5,6 +5,7 @@
|
|||||||
- host-setup
|
- host-setup
|
||||||
tasks:
|
tasks:
|
||||||
- name: Ensure Tenks venv is properly set up
|
- name: Ensure Tenks venv is properly set up
|
||||||
|
when: virtualenv_path
|
||||||
block:
|
block:
|
||||||
|
|
||||||
- name: Init Tenks venv and upgrade pip
|
- name: Init Tenks venv and upgrade pip
|
||||||
@ -21,8 +22,6 @@
|
|||||||
state: latest # noqa package-latest
|
state: latest # noqa package-latest
|
||||||
virtualenv: "{{ virtualenv_path }}"
|
virtualenv: "{{ virtualenv_path }}"
|
||||||
|
|
||||||
when: virtualenv_path
|
|
||||||
|
|
||||||
- name: Load current Tenks state
|
- name: Load current Tenks state
|
||||||
hosts: localhost
|
hosts: localhost
|
||||||
tags:
|
tags:
|
||||||
@ -49,6 +48,7 @@
|
|||||||
- host-setup
|
- host-setup
|
||||||
tasks:
|
tasks:
|
||||||
- name: Set up host
|
- name: Set up host
|
||||||
|
when: cmd == 'deploy'
|
||||||
block:
|
block:
|
||||||
- name: Configure host for Libvirt
|
- name: Configure host for Libvirt
|
||||||
include_role:
|
include_role:
|
||||||
@ -81,5 +81,3 @@
|
|||||||
vbmcd_virtualenv_path: "{{ virtualenv_path }}"
|
vbmcd_virtualenv_path: "{{ virtualenv_path }}"
|
||||||
vbmcd_python_upper_constraints_url: >-
|
vbmcd_python_upper_constraints_url: >-
|
||||||
{{ python_upper_constraints_url }}
|
{{ python_upper_constraints_url }}
|
||||||
|
|
||||||
when: cmd == 'deploy'
|
|
||||||
|
@ -24,12 +24,13 @@
|
|||||||
file:
|
file:
|
||||||
path: "{{ log_directory }}"
|
path: "{{ log_directory }}"
|
||||||
state: directory
|
state: directory
|
||||||
mode: 0755
|
mode: "0755"
|
||||||
become: true
|
become: true
|
||||||
# Don't remove log directory during teardown to preserve historical logs.
|
# Don't remove log directory during teardown to preserve historical logs.
|
||||||
when: cmd != 'teardown'
|
when: cmd != 'teardown'
|
||||||
|
|
||||||
- name: Check if OVS is installed
|
- name: Check if OVS is installed
|
||||||
|
when: bridge_type == "openvswitch"
|
||||||
block:
|
block:
|
||||||
- name: Check if ovs-vsctl command is present
|
- name: Check if ovs-vsctl command is present
|
||||||
command: ovs-vsctl --version
|
command: ovs-vsctl --version
|
||||||
@ -44,7 +45,6 @@
|
|||||||
openvswitch. If it is installed, please report this as a bug.
|
openvswitch. If it is installed, please report this as a bug.
|
||||||
# Assume a non-zero return code means that openvswitch is not installed.
|
# Assume a non-zero return code means that openvswitch is not installed.
|
||||||
when: ovs_vsctl_check.rc != 0
|
when: ovs_vsctl_check.rc != 0
|
||||||
when: bridge_type == "openvswitch"
|
|
||||||
|
|
||||||
- name: Configure physical networks
|
- name: Configure physical networks
|
||||||
include_tasks: physical_network.yml
|
include_tasks: physical_network.yml
|
||||||
|
@ -36,6 +36,7 @@
|
|||||||
when: if_details.stdout_lines[-1].split()[0] == 'bridge'
|
when: if_details.stdout_lines[-1].split()[0] == 'bridge'
|
||||||
|
|
||||||
- name: Register source interface as an Open vSwitch bridge
|
- name: Register source interface as an Open vSwitch bridge
|
||||||
|
when: if_details.stdout_lines[-1].split()[0] == 'openvswitch'
|
||||||
block:
|
block:
|
||||||
- name: Get list of OVS bridges
|
- name: Get list of OVS bridges
|
||||||
command: ovs-vsctl list-br
|
command: ovs-vsctl list-br
|
||||||
@ -48,8 +49,6 @@
|
|||||||
source_type: openvswitch
|
source_type: openvswitch
|
||||||
when: source_interface in ovs_bridges.stdout_lines
|
when: source_interface in ovs_bridges.stdout_lines
|
||||||
|
|
||||||
when: if_details.stdout_lines[-1].split()[0] == 'openvswitch'
|
|
||||||
|
|
||||||
|
|
||||||
### Actual configuration starts here.
|
### Actual configuration starts here.
|
||||||
- name: Ensure Open vSwitch bridge is in the correct state
|
- name: Ensure Open vSwitch bridge is in the correct state
|
||||||
@ -60,6 +59,7 @@
|
|||||||
when: bridge_type == "openvswitch"
|
when: bridge_type == "openvswitch"
|
||||||
|
|
||||||
- name: Create Tenks bridge
|
- name: Create Tenks bridge
|
||||||
|
when: bridge_type == "linuxbridge"
|
||||||
block:
|
block:
|
||||||
- name: Check if Tenks bridge exists
|
- name: Check if Tenks bridge exists
|
||||||
stat:
|
stat:
|
||||||
@ -85,7 +85,6 @@
|
|||||||
when:
|
when:
|
||||||
- state == 'present'
|
- state == 'present'
|
||||||
- not stat_result.stat.exists
|
- not stat_result.stat.exists
|
||||||
when: bridge_type == "linuxbridge"
|
|
||||||
|
|
||||||
- name: Configure existing Linux bridge
|
- name: Configure existing Linux bridge
|
||||||
when: source_type == 'linuxbridge'
|
when: source_type == 'linuxbridge'
|
||||||
@ -147,6 +146,13 @@
|
|||||||
become: true
|
become: true
|
||||||
|
|
||||||
- name: Plug source interface into Tenks Linux bridge
|
- name: Plug source interface into Tenks Linux bridge
|
||||||
|
when:
|
||||||
|
- bridge_type == 'linuxbridge'
|
||||||
|
- source_type == 'direct'
|
||||||
|
# If 'absent', we've already deleted the bridge earlier, so no need to
|
||||||
|
# unplug the interface.
|
||||||
|
- state != 'absent'
|
||||||
|
become: true
|
||||||
block:
|
block:
|
||||||
- name: Speculatively check interface's master
|
- name: Speculatively check interface's master
|
||||||
command: >-
|
command: >-
|
||||||
@ -160,10 +166,3 @@
|
|||||||
{{ tenks_ip_path }} link set dev {{ source_interface }} master {{ tenks_bridge }}
|
{{ tenks_ip_path }} link set dev {{ source_interface }} master {{ tenks_bridge }}
|
||||||
changed_when: true
|
changed_when: true
|
||||||
when: master_result.rc != 0
|
when: master_result.rc != 0
|
||||||
when:
|
|
||||||
- bridge_type == 'linuxbridge'
|
|
||||||
- source_type == 'direct'
|
|
||||||
# If 'absent', we've already deleted the bridge earlier, so no need to
|
|
||||||
# unplug the interface.
|
|
||||||
- state != 'absent'
|
|
||||||
become: true
|
|
||||||
|
@ -24,6 +24,7 @@
|
|||||||
loop_var: spec
|
loop_var: spec
|
||||||
|
|
||||||
- name: Include the wait-for-resources role
|
- name: Include the wait-for-resources role
|
||||||
|
when: tenks_expected_resources | length > 0
|
||||||
block:
|
block:
|
||||||
- name: Check that OpenStack credentials exist in the environment
|
- name: Check that OpenStack credentials exist in the environment
|
||||||
fail:
|
fail:
|
||||||
@ -48,4 +49,3 @@
|
|||||||
{{ python_upper_constraints_url }}
|
{{ python_upper_constraints_url }}
|
||||||
# Only attempt to wait for resources when the placement service is running
|
# Only attempt to wait for resources when the placement service is running
|
||||||
when: service_list_output.stdout | from_json | selectattr('Type', 'equalto', 'placement') | list | length >= 1
|
when: service_list_output.stdout | from_json | selectattr('Type', 'equalto', 'placement') | list | length >= 1
|
||||||
when: tenks_expected_resources | length > 0
|
|
||||||
|
@ -45,6 +45,7 @@
|
|||||||
# argument to the os_ironic module, due to a quirk in its implementation.
|
# argument to the os_ironic module, due to a quirk in its implementation.
|
||||||
# Grab the endpoint from the file.
|
# Grab the endpoint from the file.
|
||||||
- name: Set ironic_url for os_ironic module
|
- name: Set ironic_url for os_ironic module
|
||||||
|
when: lookup('env', 'OS_CLOUD') | length > 0
|
||||||
block:
|
block:
|
||||||
- name: Query clouds.yaml
|
- name: Query clouds.yaml
|
||||||
os_client_config:
|
os_client_config:
|
||||||
@ -65,7 +66,6 @@
|
|||||||
- name: Set a fact about the ironic API endpoint
|
- name: Set a fact about the ironic API endpoint
|
||||||
set_fact:
|
set_fact:
|
||||||
ironic_url: "{{ openstack.clouds[0].auth.endpoint }}"
|
ironic_url: "{{ openstack.clouds[0].auth.endpoint }}"
|
||||||
when: lookup('env', 'OS_CLOUD') | length > 0
|
|
||||||
|
|
||||||
- name: Detect ironic API version
|
- name: Detect ironic API version
|
||||||
command: >-
|
command: >-
|
||||||
|
@ -7,6 +7,9 @@
|
|||||||
when: "'resource_class' not in node.ironic_config"
|
when: "'resource_class' not in node.ironic_config"
|
||||||
|
|
||||||
- name: Collect domain NIC MAC addresses
|
- name: Collect domain NIC MAC addresses
|
||||||
|
# If the node's state is 'absent', the domain will already have been
|
||||||
|
# destroyed.
|
||||||
|
when: (node.state | default('present')) == 'present'
|
||||||
block:
|
block:
|
||||||
- name: Get vNIC MAC addresses
|
- name: Get vNIC MAC addresses
|
||||||
# The output format of this command gives two lines of header, followed by
|
# The output format of this command gives two lines of header, followed by
|
||||||
@ -36,10 +39,6 @@
|
|||||||
loop: "{{ iflist_res.stdout_lines[2:] }}"
|
loop: "{{ iflist_res.stdout_lines[2:] }}"
|
||||||
when: (node.state | default('present')) == 'present'
|
when: (node.state | default('present')) == 'present'
|
||||||
|
|
||||||
# If the node's state is 'absent', the domain will already have been
|
|
||||||
# destroyed.
|
|
||||||
when: (node.state | default('present')) == 'present'
|
|
||||||
|
|
||||||
- name: Configure node in Ironic
|
- name: Configure node in Ironic
|
||||||
os_ironic:
|
os_ironic:
|
||||||
auth_type: "{{ 'password' if lookup('env', 'OS_USERNAME') else omit }}"
|
auth_type: "{{ 'password' if lookup('env', 'OS_USERNAME') else omit }}"
|
||||||
@ -58,7 +57,7 @@
|
|||||||
deploy_ramdisk: "{{ ironic_deploy_ramdisk_uuid | default(omit, true) }}"
|
deploy_ramdisk: "{{ ironic_deploy_ramdisk_uuid | default(omit, true) }}"
|
||||||
name: "{{ node.name }}"
|
name: "{{ node.name }}"
|
||||||
# The 'nics' list can be empty without a problem if state is 'absent'.
|
# The 'nics' list can be empty without a problem if state is 'absent'.
|
||||||
nics: "{{ nics | default([]) }}"
|
nics: "{{ nics | default([]) }}" # noqa args[module]
|
||||||
state: "{{ node.state | default('present') }}"
|
state: "{{ node.state | default('present') }}"
|
||||||
vars:
|
vars:
|
||||||
# This module requires the openstacksdk package, which is installed within
|
# This module requires the openstacksdk package, which is installed within
|
||||||
@ -68,6 +67,7 @@
|
|||||||
register: node_res
|
register: node_res
|
||||||
|
|
||||||
- name: Perform node and port attribute manipulation
|
- name: Perform node and port attribute manipulation
|
||||||
|
when: (node.state | default('present')) == 'present'
|
||||||
block:
|
block:
|
||||||
# The os_ironic module automatically brings the node from 'enrol' to
|
# The os_ironic module automatically brings the node from 'enrol' to
|
||||||
# 'available' state, but we still need to set more port and node attributes.
|
# 'available' state, but we still need to set more port and node attributes.
|
||||||
@ -76,6 +76,7 @@
|
|||||||
command: >-
|
command: >-
|
||||||
'{{ ironic_virtualenv_path }}/bin/openstack' baremetal node maintenance set
|
'{{ ironic_virtualenv_path }}/bin/openstack' baremetal node maintenance set
|
||||||
'{{ node_res.uuid }}'
|
'{{ node_res.uuid }}'
|
||||||
|
changed_when: true
|
||||||
|
|
||||||
- name: Set additional Ironic node attributes
|
- name: Set additional Ironic node attributes
|
||||||
command: >-
|
command: >-
|
||||||
@ -107,12 +108,14 @@
|
|||||||
# If the capabilities field is provided, the boot_mode should be set
|
# If the capabilities field is provided, the boot_mode should be set
|
||||||
# explicitly.
|
# explicitly.
|
||||||
capabilities: "boot_mode:{{ default_boot_mode }}"
|
capabilities: "boot_mode:{{ default_boot_mode }}"
|
||||||
|
changed_when: true
|
||||||
|
|
||||||
- name: Add Ironic node traits
|
- name: Add Ironic node traits
|
||||||
command: >-
|
command: >-
|
||||||
'{{ ironic_virtualenv_path }}/bin/openstack' baremetal node add trait
|
'{{ ironic_virtualenv_path }}/bin/openstack' baremetal node add trait
|
||||||
'{{ node_res.uuid }}'
|
'{{ node_res.uuid }}'
|
||||||
{{ " ".join(node.ironic_config.traits) }}
|
{{ " ".join(node.ironic_config.traits) }}
|
||||||
|
changed_when: true
|
||||||
when: node.ironic_config.traits | default([])
|
when: node.ironic_config.traits | default([])
|
||||||
|
|
||||||
- name: Set additional Ironic port attributes
|
- name: Set additional Ironic port attributes
|
||||||
@ -129,5 +132,4 @@
|
|||||||
command: >-
|
command: >-
|
||||||
'{{ ironic_virtualenv_path }}/bin/openstack' baremetal node maintenance
|
'{{ ironic_virtualenv_path }}/bin/openstack' baremetal node maintenance
|
||||||
unset '{{ node_res.uuid }}'
|
unset '{{ node_res.uuid }}'
|
||||||
|
changed_when: true
|
||||||
when: (node.state | default('present')) == 'present'
|
|
||||||
|
@ -47,6 +47,7 @@
|
|||||||
--local-link-connection switch_id='{{ switch_id }}'
|
--local-link-connection switch_id='{{ switch_id }}'
|
||||||
--local-link-connection switch_info='{{ bridge }}'
|
--local-link-connection switch_info='{{ bridge }}'
|
||||||
--local-link-connection port_id='{{ port_id }}'
|
--local-link-connection port_id='{{ port_id }}'
|
||||||
|
changed_when: true
|
||||||
when: >-
|
when: >-
|
||||||
(supports_port_physnet and port_attributes.physical_network != physnet) or
|
(supports_port_physnet and port_attributes.physical_network != physnet) or
|
||||||
port_attributes.local_link_connection.get('switch_id') != switch_id or
|
port_attributes.local_link_connection.get('switch_id') != switch_id or
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
---
|
---
|
||||||
- name: Unplug veth from source bridge
|
- name: Unplug veth from source bridge
|
||||||
|
when: veth_pair_plug_into_source | bool
|
||||||
block:
|
block:
|
||||||
- include_tasks: is-attached.yml
|
- include_tasks: is-attached.yml
|
||||||
vars:
|
vars:
|
||||||
@ -11,8 +12,8 @@
|
|||||||
ip link set {{ veth_pair_source_link_name }} nomaster
|
ip link set {{ veth_pair_source_link_name }} nomaster
|
||||||
when:
|
when:
|
||||||
- veth_pair_is_attached
|
- veth_pair_is_attached
|
||||||
|
changed_when: true
|
||||||
become: true
|
become: true
|
||||||
when: veth_pair_plug_into_source | bool
|
|
||||||
|
|
||||||
- name: Delete veth pair
|
- name: Delete veth pair
|
||||||
command: >-
|
command: >-
|
||||||
|
@ -28,6 +28,7 @@
|
|||||||
become: true
|
become: true
|
||||||
|
|
||||||
- name: Plug veth into source bridge
|
- name: Plug veth into source bridge
|
||||||
|
when: veth_pair_peer_bridge_type == "linuxbridge"
|
||||||
block:
|
block:
|
||||||
- include_tasks: is-attached.yml
|
- include_tasks: is-attached.yml
|
||||||
vars:
|
vars:
|
||||||
@ -40,10 +41,11 @@
|
|||||||
{{ veth_pair_peer_bridge }}
|
{{ veth_pair_peer_bridge }}
|
||||||
when:
|
when:
|
||||||
- not veth_pair_is_attached
|
- not veth_pair_is_attached
|
||||||
|
changed_when: true
|
||||||
become: true
|
become: true
|
||||||
when: veth_pair_peer_bridge_type == "linuxbridge"
|
|
||||||
|
|
||||||
- name: Plug veth into source bridge
|
- name: Plug veth into source bridge
|
||||||
|
when: veth_pair_plug_into_source | bool
|
||||||
block:
|
block:
|
||||||
- include_tasks: is-attached.yml
|
- include_tasks: is-attached.yml
|
||||||
vars:
|
vars:
|
||||||
@ -56,5 +58,5 @@
|
|||||||
{{ veth_pair_source_bridge }}
|
{{ veth_pair_source_bridge }}
|
||||||
when:
|
when:
|
||||||
- not veth_pair_is_attached
|
- not veth_pair_is_attached
|
||||||
|
changed_when: true
|
||||||
become: true
|
become: true
|
||||||
when: veth_pair_plug_into_source | bool
|
|
||||||
|
@ -36,6 +36,7 @@
|
|||||||
get_url:
|
get_url:
|
||||||
url: "{{ vbmcd_python_upper_constraints_url }}"
|
url: "{{ vbmcd_python_upper_constraints_url }}"
|
||||||
dest: "{{ u_c_file.path }}"
|
dest: "{{ u_c_file.path }}"
|
||||||
|
mode: "0644"
|
||||||
|
|
||||||
# NOTE(yoctozepto): It is preferable to use the libvirt python binding that
|
# NOTE(yoctozepto): It is preferable to use the libvirt python binding that
|
||||||
# is delivered with the distribution as it is guaranteed to work with the
|
# is delivered with the distribution as it is guaranteed to work with the
|
||||||
@ -62,6 +63,9 @@
|
|||||||
state: absent
|
state: absent
|
||||||
|
|
||||||
- name: "[selinux] Allow systemd to start vbmcd from venv"
|
- name: "[selinux] Allow systemd to start vbmcd from venv"
|
||||||
|
when:
|
||||||
|
- ansible_facts.selinux.status | default('disabled') == 'enabled'
|
||||||
|
- vbmcd_virtualenv_path
|
||||||
block:
|
block:
|
||||||
|
|
||||||
- name: "[selinux] Allow systemd to start vbmcd from venv - sefcontext"
|
- name: "[selinux] Allow systemd to start vbmcd from venv - sefcontext"
|
||||||
@ -72,23 +76,19 @@
|
|||||||
state: present
|
state: present
|
||||||
register: sefcontext
|
register: sefcontext
|
||||||
|
|
||||||
- name: "[selinux] Allow systemd to start vbmcd from venv - restorecon"
|
- name: "[selinux] Allow systemd to start vbmcd from venv - restorecon" # noqa no-handler
|
||||||
become: true
|
become: true
|
||||||
command: "restorecon -r {{ vbmcd_virtualenv_path }}/bin"
|
command: "restorecon -r {{ vbmcd_virtualenv_path }}/bin"
|
||||||
when: sefcontext.changed
|
when: sefcontext.changed
|
||||||
changed_when: true
|
changed_when: true
|
||||||
|
|
||||||
when:
|
|
||||||
- ansible_facts.selinux.status | default('disabled') == 'enabled'
|
|
||||||
- vbmcd_virtualenv_path
|
|
||||||
|
|
||||||
- name: Ensure Virtual BMC systemd service is configured
|
- name: Ensure Virtual BMC systemd service is configured
|
||||||
template:
|
template:
|
||||||
src: templates/{{ item }}.j2
|
src: templates/{{ item }}.j2
|
||||||
dest: /etc/systemd/system/{{ item }}
|
dest: /etc/systemd/system/{{ item }}
|
||||||
owner: root
|
owner: root
|
||||||
group: root
|
group: root
|
||||||
mode: 0644
|
mode: "0644"
|
||||||
become: true
|
become: true
|
||||||
register: service_file
|
register: service_file
|
||||||
loop:
|
loop:
|
||||||
|
@ -1,11 +1,13 @@
|
|||||||
---
|
---
|
||||||
- name: Install the Delorean dependencies repository
|
- name: Install Open vSwitch package repository
|
||||||
become: true
|
become: true
|
||||||
get_url:
|
package:
|
||||||
url: "https://trunk.rdoproject.org/centos{{ ansible_facts.distribution_major_version }}-master/delorean-deps.repo"
|
name: "{{ openvswitch_package_repo_name }}"
|
||||||
dest: /etc/yum.repos.d/
|
state: present
|
||||||
when:
|
register: result
|
||||||
- ansible_facts.os_family == "RedHat"
|
until: result is success
|
||||||
|
retries: 3
|
||||||
|
when: openvswitch_package_repo_name is not none
|
||||||
|
|
||||||
- name: Install Open vSwitch
|
- name: Install Open vSwitch
|
||||||
become: true
|
become: true
|
||||||
|
@ -1,2 +1,4 @@
|
|||||||
---
|
---
|
||||||
|
openvswitch_package_repo_name:
|
||||||
openvswitch_package_name: openvswitch-switch
|
openvswitch_package_name: openvswitch-switch
|
||||||
|
openvswitch_service_name: openvswitch-switch
|
||||||
|
@ -1,2 +1,4 @@
|
|||||||
---
|
---
|
||||||
openvswitch_package_name: openvswitch
|
openvswitch_package_repo_name: centos-release-nfv-openvswitch
|
||||||
|
openvswitch_package_name: openvswitch3.1
|
||||||
|
openvswitch_service_name: openvswitch
|
||||||
|
@ -13,5 +13,3 @@ config_dir: "{{ ansible_facts.env.HOME ~ '/' ~ 'tenks-config' }}"
|
|||||||
tenks_overrides_path: "{{ config_dir ~ '/' ~ 'tenks-overrides.yml' }}"
|
tenks_overrides_path: "{{ config_dir ~ '/' ~ 'tenks-overrides.yml' }}"
|
||||||
tenks_requirements_overrides_path: "{{ tenks_src_dir }}/requirements-overrides.yml"
|
tenks_requirements_overrides_path: "{{ tenks_src_dir }}/requirements-overrides.yml"
|
||||||
logs_dir: "/tmp/logs"
|
logs_dir: "/tmp/logs"
|
||||||
|
|
||||||
openvswitch_service_name: "{{ openvswitch_package_name }}"
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
# of appearance. Changing the order has an impact on the overall integration
|
# of appearance. Changing the order has an impact on the overall integration
|
||||||
# process, which may cause wedges in the gate later.
|
# process, which may cause wedges in the gate later.
|
||||||
|
|
||||||
ansible-lint>=3.0.0 # MIT
|
ansible-lint>=3.0.0,<7 # MIT
|
||||||
coverage>=4.5.1 # Apache-2.0
|
coverage>=4.5.1 # Apache-2.0
|
||||||
flake8>=3.5.0 # MIT
|
flake8>=3.5.0 # MIT
|
||||||
stestr>=1.0.0 # Apache-2.0
|
stestr>=1.0.0 # Apache-2.0
|
||||||
|
5
tox.ini
5
tox.ini
@ -10,7 +10,7 @@ usedevelop = True
|
|||||||
install_command = pip install {opts} {packages}
|
install_command = pip install {opts} {packages}
|
||||||
passenv =
|
passenv =
|
||||||
HOME
|
HOME
|
||||||
whitelist_externals =
|
allowlist_externals =
|
||||||
bash
|
bash
|
||||||
rm
|
rm
|
||||||
setenv =
|
setenv =
|
||||||
@ -44,7 +44,7 @@ commands = sphinx-build -W -b html doc/source doc/build/html
|
|||||||
|
|
||||||
[testenv:pdf-docs]
|
[testenv:pdf-docs]
|
||||||
deps = {[testenv:docs]deps}
|
deps = {[testenv:docs]deps}
|
||||||
whitelist_externals = make
|
allowlist_externals = make
|
||||||
commands = sphinx-build -W -b latex doc/source doc/build/pdf
|
commands = sphinx-build -W -b latex doc/source doc/build/pdf
|
||||||
make -C doc/build/pdf
|
make -C doc/build/pdf
|
||||||
|
|
||||||
@ -68,6 +68,7 @@ commands =
|
|||||||
coverage xml -o cover/coverage.xml
|
coverage xml -o cover/coverage.xml
|
||||||
|
|
||||||
[testenv:alint]
|
[testenv:alint]
|
||||||
|
allowlist_externals = bash
|
||||||
# ansible-lint doesn't support custom modules, so add ours to the Ansible path.
|
# ansible-lint doesn't support custom modules, so add ours to the Ansible path.
|
||||||
setenv = ANSIBLE_LIBRARY = {toxinidir}/ansible/action_plugins/
|
setenv = ANSIBLE_LIBRARY = {toxinidir}/ansible/action_plugins/
|
||||||
# Exclude roles downloaded from Galaxy (in the form 'author.role') from
|
# Exclude roles downloaded from Galaxy (in the form 'author.role') from
|
||||||
|
@ -27,11 +27,9 @@
|
|||||||
- tenks-deploy-teardown-linuxbridge-uefi-ubuntu-jammy
|
- tenks-deploy-teardown-linuxbridge-uefi-ubuntu-jammy
|
||||||
# Until we have ironic jobs using tenks, gate on the kayobe overcloud
|
# Until we have ironic jobs using tenks, gate on the kayobe overcloud
|
||||||
# deploy job, which uses tenks to test bare metal compute provisioning.
|
# deploy job, which uses tenks to test bare metal compute provisioning.
|
||||||
- kayobe-overcloud-centos8s:
|
- kayobe-overcloud-rocky9:
|
||||||
# FIXME(mgoddard): The master branch of Kolla Ansible currently
|
voting: false
|
||||||
# does not support CS8/RL8, so Kayobe jobs are failing. Use the
|
- kayobe-overcloud-ubuntu-jammy
|
||||||
# yoga branch for now.
|
|
||||||
override-checkout: stable/yoga
|
|
||||||
gate:
|
gate:
|
||||||
jobs:
|
jobs:
|
||||||
- openstack-tox-pep8
|
- openstack-tox-pep8
|
||||||
@ -54,8 +52,5 @@
|
|||||||
- tenks-deploy-teardown-linuxbridge-uefi-ubuntu-jammy
|
- tenks-deploy-teardown-linuxbridge-uefi-ubuntu-jammy
|
||||||
# Until we have ironic jobs using tenks, gate on the kayobe overcloud
|
# Until we have ironic jobs using tenks, gate on the kayobe overcloud
|
||||||
# deploy job, which uses tenks to test bare metal compute provisioning.
|
# deploy job, which uses tenks to test bare metal compute provisioning.
|
||||||
- kayobe-overcloud-centos8s:
|
# - kayobe-overcloud-rocky9
|
||||||
# FIXME(mgoddard): The master branch of Kolla Ansible currently
|
- kayobe-overcloud-ubuntu-jammy
|
||||||
# does not support CS8/RL8, so Kayobe jobs are failing. Use the
|
|
||||||
# yoga branch for now.
|
|
||||||
override-checkout: stable/yoga
|
|
||||||
|
Loading…
Reference in New Issue
Block a user