mirror of
https://opendev.org/openstack/ansible-collections-openstack.git
synced 2026-03-26 21:43:02 +00:00
Replace calls to the sdk cloud layer with proxy layer calls where appropriate. Ensure module return values are converted into dict. General refactoring to bring module more in line with collection conventions. Expand tests to assert idempotency and presence of return values. Rename test role to identity_group to match module name. Change-Id: I06fe28f77431bb151d85c8d9cd924a1634d85d98
448 lines
17 KiB
YAML
448 lines
17 KiB
YAML
# yamllint disable
|
|
---
|
|
# Keep parent jobs in sync between branches to avoid issues e.g. with job scheduling. Zuul CI will search in master
|
|
# branch first when collecting job variants during job freeze which can have unwanted side effects. For example, when
|
|
# parent job *-base has been changed in stable/1.0.0 branch, Zuul could still use *-base variants from master branch
|
|
# during job freeze on child jobs such as *-ussuri-ansible-2.11 etc.
|
|
#
|
|
# Do not share job definitions with the job.branches attribute across multiple branches. Do not define jobs which are
|
|
# specific to other branches, except for parent jobs which are shared across branches. For example, to not add a job
|
|
# which is specific for the stable/1.0.0 branch to the .zuul.yaml in master branch. In particular do not use the
|
|
# job.branches directive on a job which will be copied to multiple branches. When you have multiple copies of a job with
|
|
# the job.branches attribute, Zuul CI could pick any of the job definitions which might not be the one you expected.
|
|
|
|
- job:
|
|
name: ansible-collections-openstack-functional-devstack-base
|
|
parent: openstacksdk-functional-devstack
|
|
# Do not restrict branches in base jobs because else Zuul would not find a matching
|
|
# parent job variant during job freeze when child jobs are on other branches.
|
|
post-run: ci/playbooks/postlog.yaml
|
|
description: |
|
|
Run openstack collections functional tests against a devstack
|
|
# Do not set job.override-checkout or job.required-projects.override-checkout in base job because
|
|
# else Zuul will use this branch when matching variants for parent jobs during job freeze
|
|
required-projects:
|
|
- openstack/ansible-collections-openstack
|
|
- openstack/designate
|
|
# openstack/devstack is required through parent job openstacksdk-functional-devstack
|
|
# openstack/os-client-config is required through parent job openstacksdk-functional-devstack
|
|
# openstack/openstacksdk is required through parent job openstacksdk-functional-devstack
|
|
irrelevant-files: &ignore_files
|
|
- changelogs/.*
|
|
- galaxy.*
|
|
- COPYING
|
|
- docs/.*
|
|
- .*\.md
|
|
- .*\.rst
|
|
- tools/run-ansible-sanity.sh
|
|
- tests/sanity/.*
|
|
- contrib/.*
|
|
- .zuul.yaml
|
|
vars:
|
|
zuul_work_dir: src/opendev.org/openstack/ansible-collections-openstack
|
|
tox_envlist: ansible
|
|
tox_install_siblings: true
|
|
fetch_subunit: false
|
|
devstack_plugins:
|
|
designate: https://opendev.org/openstack/designate
|
|
devstack_services:
|
|
designate: true
|
|
neutron-dns: true
|
|
zuul_copy_output:
|
|
'{{ devstack_log_dir }}/test_output.log': 'logs'
|
|
extensions_to_txt:
|
|
log: true
|
|
|
|
- job:
|
|
name: ansible-collections-openstack-functional-devstack
|
|
parent: ansible-collections-openstack-functional-devstack-base
|
|
branches: master
|
|
description: |
|
|
Run openstack collections functional tests against a master devstack
|
|
using master of openstacksdk with latest ansible release
|
|
vars:
|
|
# TODO: Remove tox_extra_args once all ci roles pass
|
|
tox_extra_args: &skip_broken_ci_roles >-
|
|
address_scope
|
|
auth
|
|
catalog_service
|
|
client_config
|
|
dns
|
|
dns_zone_info
|
|
endpoint
|
|
floating_ip_info
|
|
host_aggregate
|
|
identity_domain_info
|
|
identity_group
|
|
identity_group_info
|
|
identity_user
|
|
identity_user_info
|
|
identity_role
|
|
identity_role_info
|
|
image
|
|
image_info
|
|
keypair
|
|
keystone_domain
|
|
keystone_federation_protocol
|
|
keystone_idp
|
|
keystone_mapping
|
|
logging
|
|
loadbalancer
|
|
network
|
|
nova_flavor
|
|
nova_services
|
|
object
|
|
object_container
|
|
port
|
|
project
|
|
project_info
|
|
recordset
|
|
role_assignment
|
|
router
|
|
security_group
|
|
security_group_rule
|
|
server
|
|
subnet
|
|
subnet_pool
|
|
user
|
|
user_group
|
|
user_role
|
|
volume
|
|
# failing tags
|
|
# floating_ip
|
|
# orchestrate
|
|
# neutron_rbac
|
|
|
|
- job:
|
|
name: ansible-collections-openstack-functional-devstack-octavia-base
|
|
parent: ansible-collections-openstack-functional-devstack-base
|
|
# Do not restrict branches in base jobs because else Zuul would not find a matching
|
|
# parent job variant during job freeze when child jobs are on other branches.
|
|
description: |
|
|
Run openstack collections functional tests against a devstack with Octavia plugin enabled
|
|
pre-run: ci/playbooks/get_amphora_tarball.yaml
|
|
# Do not set job.override-checkout or job.required-projects.override-checkout in base job because
|
|
# else Zuul will use this branch when matching variants for parent jobs during job freeze
|
|
required-projects:
|
|
- openstack/octavia
|
|
files:
|
|
- ^ci/roles/loadbalancer/.*$
|
|
- ^plugins/modules/lb_health_monitor.py
|
|
- ^plugins/modules/lb_listener.py
|
|
- ^plugins/modules/lb_member.py
|
|
- ^plugins/modules/lb_pool.py
|
|
- ^plugins/modules/loadbalancer.py
|
|
vars:
|
|
configure_swap_size: 8192
|
|
tox_install_siblings: false
|
|
devstack_plugins:
|
|
designate: https://opendev.org/openstack/designate
|
|
octavia: https://opendev.org/openstack/octavia
|
|
devstack_services:
|
|
designate: true
|
|
neutron-dns: true
|
|
octavia: true
|
|
o-api: true
|
|
o-cw: true
|
|
o-hk: true
|
|
o-hm: true
|
|
devstack_localrc:
|
|
OCTAVIA_AMP_IMAGE_FILE: "/tmp/test-only-amphora-x64-haproxy-ubuntu-bionic.qcow2"
|
|
OCTAVIA_AMP_IMAGE_SIZE: 3
|
|
OCTAVIA_AMP_IMAGE_NAME: "test-only-amphora-x64-haproxy-ubuntu-bionic"
|
|
|
|
- job:
|
|
name: ansible-collections-openstack-functional-devstack-octavia
|
|
parent: ansible-collections-openstack-functional-devstack-octavia-base
|
|
branches: master
|
|
description: |
|
|
Run openstack collections functional tests against a master devstack
|
|
with Octavia plugin enabled, using latest releases of openstacksdk
|
|
and latest ansible release. Run it only on Load Balancer changes.
|
|
vars:
|
|
# TODO: Remove tox_extra_args once all ci roles pass
|
|
tox_extra_args: *skip_broken_ci_roles
|
|
|
|
- job:
|
|
name: ansible-collections-openstack-functional-devstack-releases
|
|
parent: ansible-collections-openstack-functional-devstack-base
|
|
branches: master
|
|
description: |
|
|
Run openstack collections functional tests against a master devstack
|
|
using latest releases of openstacksdk and latest ansible release
|
|
vars:
|
|
tox_constraints_file: '{{ ansible_user_dir }}/{{ zuul.project.src_dir }}/tests/constraints-openstacksdk-1.x.x.txt'
|
|
# TODO: Remove tox_extra_args once all ci roles pass
|
|
tox_extra_args: *skip_broken_ci_roles
|
|
tox_install_siblings: false
|
|
|
|
# Job with Ansible 2.9 for checking backward compatibility
|
|
- job:
|
|
name: ansible-collections-openstack-functional-devstack-ansible-2.9
|
|
parent: ansible-collections-openstack-functional-devstack-base
|
|
branches: master
|
|
description: |
|
|
Run openstack collections functional tests against a master devstack
|
|
using master of openstacksdk and stable 2.9 branch of ansible
|
|
required-projects:
|
|
- name: github.com/ansible/ansible
|
|
override-checkout: stable-2.9
|
|
vars:
|
|
tox_envlist: ansible-2.9
|
|
# TODO: Remove tox_extra_args once all ci roles pass
|
|
tox_extra_args: *skip_broken_ci_roles
|
|
|
|
- job:
|
|
name: ansible-collections-openstack-functional-devstack-ansible-2.11
|
|
parent: ansible-collections-openstack-functional-devstack-base
|
|
branches: master
|
|
description: |
|
|
Run openstack collections functional tests against a master devstack
|
|
using master of openstacksdk and stable 2.12 branch of ansible
|
|
required-projects:
|
|
- name: github.com/ansible/ansible
|
|
override-checkout: stable-2.11
|
|
vars:
|
|
tox_envlist: ansible-2.11
|
|
# TODO: Remove tox_extra_args once all ci roles pass
|
|
tox_extra_args: *skip_broken_ci_roles
|
|
|
|
- job:
|
|
name: ansible-collections-openstack-functional-devstack-ansible-2.12
|
|
parent: ansible-collections-openstack-functional-devstack-base
|
|
branches: master
|
|
description: |
|
|
Run openstack collections functional tests against a master devstack
|
|
using master of openstacksdk and stable 2.12 branch of ansible
|
|
required-projects:
|
|
- name: github.com/ansible/ansible
|
|
override-checkout: stable-2.12
|
|
vars:
|
|
tox_envlist: ansible-2.12
|
|
# TODO: Remove tox_extra_args once all ci roles pass
|
|
tox_extra_args: *skip_broken_ci_roles
|
|
|
|
- job:
|
|
name: ansible-collections-openstack-functional-devstack-ansible-devel
|
|
parent: ansible-collections-openstack-functional-devstack-base
|
|
branches: master
|
|
description: |
|
|
Run openstack collections functional tests against a master devstack
|
|
using master of openstacksdk and devel branch of ansible
|
|
# non-voting because we can't prevent ansible devel from breaking us
|
|
voting: false
|
|
required-projects:
|
|
- name: github.com/ansible/ansible
|
|
override-checkout: devel
|
|
vars:
|
|
# TODO: Remove tox_extra_args once all ci roles pass
|
|
tox_extra_args: *skip_broken_ci_roles
|
|
|
|
# Linters
|
|
- job:
|
|
name: openstack-tox-linters-ansible
|
|
parent: openstack-tox-linters
|
|
nodeset: ubuntu-focal
|
|
description: |
|
|
Run openstack collections linter tests using the devel branch of ansible
|
|
required-projects:
|
|
- name: github.com/ansible/ansible
|
|
override-checkout: devel
|
|
vars:
|
|
# override tox_constraints_file from parent job
|
|
tox_constraints_file: '{{ ansible_user_dir }}/{{ zuul.project.src_dir }}/tests/constraints-none.txt'
|
|
tox_envlist: linters
|
|
tox_install_siblings: true
|
|
|
|
- job:
|
|
name: openstack-tox-linters-ansible-devel
|
|
parent: openstack-tox-linters-ansible
|
|
description: |
|
|
Run openstack collections linter tests using the devel branch of ansible
|
|
# non-voting because we can't prevent ansible devel from breaking us
|
|
voting: false
|
|
vars:
|
|
python_version: 3.8
|
|
bindep_profile: test py38
|
|
|
|
- job:
|
|
name: openstack-tox-linters-ansible-2.12
|
|
parent: openstack-tox-linters-ansible
|
|
description: |
|
|
Run openstack collections linter tests using the 2.12 branch of ansible
|
|
required-projects:
|
|
- name: github.com/ansible/ansible
|
|
override-checkout: stable-2.12
|
|
vars:
|
|
tox_envlist: linters-2.12
|
|
python_version: 3.8
|
|
bindep_profile: test py38
|
|
|
|
# Cross-checks with other projects
|
|
- job:
|
|
name: bifrost-collections-src
|
|
parent: bifrost-integration-tinyipa-ubuntu-focal
|
|
required-projects:
|
|
- openstack/ansible-collections-openstack
|
|
- # always use master branch when collecting parent job variants, refer to git blame for rationale.
|
|
name: openstack/bifrost
|
|
override-checkout: master
|
|
- # always use master branch when collecting parent job variants
|
|
name: openstack/openstacksdk
|
|
override-checkout: master
|
|
- job:
|
|
name: bifrost-keystone-collections-src
|
|
parent: bifrost-integration-tinyipa-keystone-ubuntu-focal
|
|
required-projects:
|
|
- openstack/ansible-collections-openstack
|
|
- # always use master branch when collecting parent job variants, refer to git blame for rationale.
|
|
name: openstack/bifrost
|
|
override-checkout: master
|
|
- # always use master branch when collecting parent job variants
|
|
name: openstack/openstacksdk
|
|
override-checkout: master
|
|
|
|
# TripleO jobs
|
|
- job:
|
|
name: tripleo-ci-centos-9-standalone-osa
|
|
parent: tripleo-ci-centos-9-standalone-build
|
|
branches: master
|
|
vars: &tripleo_vars
|
|
consumer_job: false
|
|
branch_override: master
|
|
force_non_periodic: true
|
|
artg_change_list:
|
|
- host: "https://opendev.org"
|
|
project: "openstack/openstacksdk"
|
|
branch: "master"
|
|
refspec: "+refs/heads/*:refs/remotes/origin/*"
|
|
required-projects: &tripleo_required_projects
|
|
- # Required for TripleO Quickstart to install current patchset of the collection
|
|
# Ref.: https://opendev.org/openstack/tripleo-quickstart/src/commit/b48d869e14de40444d69a107a0b718b5f721e912/quickstart.sh#L123
|
|
openstack/ansible-collections-openstack
|
|
- # always use master branch when collecting parent job variants, refer to git blame for rationale.
|
|
name: openstack/tripleo-ci
|
|
override-checkout: master
|
|
irrelevant-files: &tripleo_irrelevant_files
|
|
- .*molecule.*
|
|
- ^.*\.md$
|
|
- ^.*\.rst$
|
|
- ^changelogs/.*$
|
|
- ^contrib/.*$
|
|
- ^docs/.*$
|
|
- ^meta/.*$
|
|
- ^requirements.*$
|
|
- ^setup.*$
|
|
- ^tests/.*$
|
|
- ^tools/.*$
|
|
- tox.ini
|
|
# Run only on files used in TripleO
|
|
files: &tripleo_files
|
|
- ^.zuul.yaml$
|
|
- ^plugins/module_utils/openstack.*$
|
|
- ^plugins/modules/catalog_service.*$
|
|
- ^plugins/modules/compute_flavor.*$
|
|
- ^plugins/modules/endpoint.*$
|
|
- ^plugins/modules/identity_domain.*$
|
|
- ^plugins/modules/identity_domain_info.*$
|
|
- ^plugins/modules/identity_role.*$
|
|
- ^plugins/modules/identity_user.*$
|
|
- ^plugins/modules/image.*$
|
|
- ^plugins/modules/keypair.*$
|
|
- ^plugins/modules/network.*$
|
|
- ^plugins/modules/project.*$
|
|
- ^plugins/modules/role_assignment.*$
|
|
- ^plugins/modules/router.*$
|
|
- ^plugins/modules/stack.*$
|
|
- ^plugins/modules/subnet.*$
|
|
|
|
- job:
|
|
name: ansible-collections-openstack-release
|
|
parent: base
|
|
run: ci/publish/publish_collection.yml
|
|
secrets:
|
|
- ansible_galaxy_info
|
|
|
|
- secret:
|
|
name: ansible_galaxy_info
|
|
data:
|
|
url: https://galaxy.ansible.com
|
|
token: !encrypted/pkcs1-oaep
|
|
- lZFzfoCbuwqV1k6qRfl/VS7E+knUW7+zpg7BptrenK4n0g7UY0HtdVkYq0pV0Tj/LbhzG
|
|
jHD0mehcV1iS6B7ORKg4criJkdDfEx09BD8z8yv0EleiIMmhlrCoMcY593OZMBtVbGi0D
|
|
CwQtNO98QIsfZogChfLfvRNiBmUV98mEb/p6p3EtGx8J7qcAsqfWxc/CzB8GCleLAHHHT
|
|
FuikMM03ZnV0ew7E+TPkHbzzPhBZOqS5HYF0HtgttHwIXdfIWp/XdTuEEk7uRRgYZ2Iao
|
|
ifWRzoKaOQmhM++e1ydCqw9D4y9dZEFNMQLwSqcrvtb8cNwT1kl7SCFqYNE2lbutj4ne6
|
|
PTBQRsKegMB4Y3ena14fNF6tCynvJLPhF/cjPH2Jhs+B19XQhWkL3TgiOY02W24YHwRcP
|
|
+LdkM8inAvyVi3DEbEqdjBPO9OFJcBOKPlCdkGvuwdNCuEpEwctWs0gV3voflG2CDKzmJ
|
|
wu9JJOAWnq/0l1WpuDqWreKeQ/BUGZC2Gb4xRAqofulgvhs4WuYoEccjH4EJFIZ90S1EP
|
|
R/ZLadqZaEhmjwGM5sMWbBbjT23XsRgg0Tzt9m8DENYMuYDqkMdRbt2jYZa+32p4hyxVe
|
|
Y6H/pqYq5b9uOzumnShaK4WlmkQyXcNPkoSlMC1h4OGvqX/WUixpI38jyMA5Tc=
|
|
|
|
- project:
|
|
check:
|
|
jobs:
|
|
- tox-pep8
|
|
- openstack-tox-linters-ansible-devel
|
|
- openstack-tox-linters-ansible-2.12
|
|
- ansible-collections-openstack-functional-devstack:
|
|
dependencies: &deps_unit_lint
|
|
- tox-pep8
|
|
- openstack-tox-linters-ansible-2.12
|
|
|
|
- ansible-collections-openstack-functional-devstack-releases:
|
|
dependencies: *deps_unit_lint
|
|
- ansible-collections-openstack-functional-devstack-ansible-2.9:
|
|
dependencies: *deps_unit_lint
|
|
- ansible-collections-openstack-functional-devstack-ansible-2.12:
|
|
dependencies: *deps_unit_lint
|
|
- ansible-collections-openstack-functional-devstack-ansible-devel:
|
|
dependencies: *deps_unit_lint
|
|
- ansible-collections-openstack-functional-devstack-octavia:
|
|
dependencies: *deps_unit_lint
|
|
|
|
- bifrost-collections-src:
|
|
voting: false
|
|
dependencies: *deps_unit_lint
|
|
irrelevant-files: *ignore_files
|
|
- bifrost-keystone-collections-src:
|
|
voting: false
|
|
dependencies: *deps_unit_lint
|
|
irrelevant-files: *ignore_files
|
|
|
|
- tripleo-ci-centos-9-standalone-osa:
|
|
voting: false
|
|
dependencies: *deps_unit_lint
|
|
|
|
gate:
|
|
jobs:
|
|
- tox-pep8
|
|
- openstack-tox-linters-ansible-2.12
|
|
# - ansible-collections-openstack-functional-devstack
|
|
- ansible-collections-openstack-functional-devstack-releases
|
|
# - ansible-collections-openstack-functional-devstack-ansible-2.9
|
|
# - ansible-collections-openstack-functional-devstack-ansible-2.12
|
|
- ansible-collections-openstack-functional-devstack-octavia
|
|
|
|
periodic:
|
|
jobs:
|
|
- openstack-tox-linters-ansible-devel
|
|
- openstack-tox-linters-ansible-2.12
|
|
- ansible-collections-openstack-functional-devstack
|
|
- ansible-collections-openstack-functional-devstack-releases
|
|
- ansible-collections-openstack-functional-devstack-ansible-2.9
|
|
- ansible-collections-openstack-functional-devstack-ansible-2.12
|
|
- ansible-collections-openstack-functional-devstack-ansible-devel
|
|
- bifrost-collections-src
|
|
- bifrost-keystone-collections-src
|
|
- ansible-collections-openstack-functional-devstack-octavia
|
|
- tripleo-ci-centos-9-standalone-osa
|
|
|
|
experimental:
|
|
jobs:
|
|
- ansible-collections-openstack-functional-devstack-ansible-2.11
|
|
|
|
tag:
|
|
jobs:
|
|
- ansible-collections-openstack-release
|