mirror of
https://opendev.org/openstack/ansible-collections-openstack.git
synced 2026-03-26 21:43:02 +00:00
Dropped stack status checks for CREATE_COMPLETE and UPDATE_\ COMPLETE and instead pass wait=True to openstacksdk's create_stack() and update_stack() calls because those will call event_utils.\ poll_for_events() which garantees that stack has reached those states when they return [1],[2]. Check for duplicate keys in parameters which already have been defined by regular module attributes. Raise an error to warn users that they tried to overwrite parameters which they already specified with module attributes. Renamed stack's module attribute 'tag' to 'tags' to match both openstacksdk and OpenStack API and clarify that more than a single tag can be specified. Added 'tag' as an alias to keep backward compatibility. Actually pass the 'tags' aka 'tag' attribute to stack create and update functions of the openstacksdk which was lost in [3]. Added tags to integration tests. Sorted argument specs and documentation of the stack module and marked attributes which are not updatable. Dropped condition from self.conn.delete_stack() because the latter will only return False when a stack could not be found which we already. self.conn.delete_stack() will raise an exception when stack deletion fails. Renamed ci integration tests from 'orchestration' to 'stack' in order to match module name and adapted tags accordingly. Fixed and enabled ci integration tests for stack and stack_info modules. Dropped 'stack_name' from module return values in RETURN docstring and ci integration tests because openstacksdk not return this attribute. [1]9b1c433352/openstack/cloud/_orchestration.py (L92)[2]9b1c433352/openstack/cloud/_orchestration.py (L148)[3]af79857bfbChange-Id: I4ace6012112bbcce9094353e27eb4066cf25f229
461 lines
17 KiB
YAML
461 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
|
|
compute_flavor
|
|
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_services
|
|
object
|
|
object_container
|
|
port
|
|
project
|
|
project_info
|
|
quota
|
|
recordset
|
|
role_assignment
|
|
router
|
|
security_group
|
|
security_group_rule
|
|
server
|
|
stack
|
|
subnet
|
|
subnet_pool
|
|
user
|
|
user_group
|
|
user_role
|
|
volume
|
|
# failing tags
|
|
# floating_ip
|
|
# 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
|
|
nodeset: ubuntu-jammy
|
|
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.10'
|
|
bindep_profile: test py310
|
|
|
|
- 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:
|
|
vars:
|
|
artg_change_list:
|
|
- host: "https://opendev.org"
|
|
project: "openstack/openstacksdk"
|
|
branch: "master"
|
|
refspec: "+refs/heads/*:refs/remotes/origin/*"
|
|
# needed so build-test-packages builds master version
|
|
- host: "https://opendev.org"
|
|
project: "openstack/ansible-collections-openstack"
|
|
branch: "master"
|
|
refspec: "+refs/heads/*:refs/remotes/origin/*"
|
|
|
|
experimental:
|
|
jobs:
|
|
- ansible-collections-openstack-functional-devstack-ansible-2.11
|
|
|
|
tag:
|
|
jobs:
|
|
- ansible-collections-openstack-release
|