From 04944c4e4fdee1ffda2804441cf3b32d9b69b4e2 Mon Sep 17 00:00:00 2001 From: Brendan Shephard Date: Wed, 22 Sep 2021 03:41:20 +0000 Subject: [PATCH] Fix role issues for Ansible 2.11 Resolve ansible-lint issues in the role. Move all to Ansible 2.11 testing, since new molecule works with collections and TripleO will use Ansible 2.11/2.12 for deployment from Wallaby. Use FQCN for Ansible collections. Co-Author: Brendan Shephard Change-Id: I35a94d3d6335a5589a1b4ed6f3c5c599ccc59eda --- ansible-collections-requirements.yml | 11 +++++++++++ ansible-requirements.txt | 2 +- molecule-requirements.txt | 5 +++-- test-requirements.txt | 1 + tox.ini | 7 ++++--- .../ansible_plugins/modules/cleanup_ipa_services.py | 4 ++-- tripleo_ipa/molecule/default/prepare.yml | 12 ++++++------ tripleo_ipa/molecule/deregister/converge.yml | 5 +++-- tripleo_ipa/molecule/deregister/prepare.yml | 10 +++++----- tripleo_ipa/playbooks/cli-cleanup-ipa.yml | 6 ++++-- .../playbooks/ipa-server-create-principal.yaml | 2 +- tripleo_ipa/playbooks/undercloud-ipa-install.yaml | 6 ++++-- tripleo_ipa/roles/tripleo_ipa_cleanup/meta/main.yml | 1 + tripleo_ipa/roles/tripleo_ipa_dns/meta/main.yml | 1 + tripleo_ipa/roles/tripleo_ipa_dns/tasks/dns.yaml | 2 +- .../roles/tripleo_ipa_registration/meta/main.yml | 1 + .../roles/tripleo_ipa_registration/tasks/main.yml | 3 ++- tripleo_ipa/roles/tripleo_ipa_setup/meta/main.yml | 1 + zuul.d/base.yaml | 2 +- 19 files changed, 53 insertions(+), 29 deletions(-) create mode 100644 ansible-collections-requirements.yml diff --git a/ansible-collections-requirements.yml b/ansible-collections-requirements.yml new file mode 100644 index 0000000..12bf5c7 --- /dev/null +++ b/ansible-collections-requirements.yml @@ -0,0 +1,11 @@ +collections: + - containers.podman + # - community.general + # Until community.general release is out use latest from git + - name: https://github.com/ansible-collections/community.general + type: git + version: main + - community.docker + - ansible.posix + - ansible.netcommon + - openstack.cloud diff --git a/ansible-requirements.txt b/ansible-requirements.txt index 4676e4a..09661ad 100644 --- a/ansible-requirements.txt +++ b/ansible-requirements.txt @@ -1 +1 @@ -ansible>=2.8, <2.10.0 +ansible-core>=2.11,<2.12.0 diff --git a/molecule-requirements.txt b/molecule-requirements.txt index ad1e363..8b84339 100644 --- a/molecule-requirements.txt +++ b/molecule-requirements.txt @@ -1,4 +1,5 @@ -ansible>=2.8, <2.10.0 +ansible-core>=2.11,<2.12.0 docker -molecule>=3.0,<3.1 +molecule +molecule-docker testinfra diff --git a/test-requirements.txt b/test-requirements.txt index 64f45bf..7522d11 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -7,3 +7,4 @@ pre-commit # MIT mock>=2.0.0 # BSD stestr>=2.0.0 # Apache-2.0 oslotest>=3.2.0 # Apache-2.0 +yamllint diff --git a/tox.ini b/tox.ini index 30b5652..6c18d67 100644 --- a/tox.ini +++ b/tox.ini @@ -7,19 +7,20 @@ skipdist = True [testenv] usedevelop = True -install_command = pip install -c{env:UPPER_CONSTRAINTS_FILE:https://opendev.org/openstack/requirements/raw/branch/master/upper-constraints.txt} {opts} {packages} +install_command = pip install {opts} {packages} passenv = * sitepackages = True deps = -r {toxinidir}/requirements.txt -r {toxinidir}/ansible-requirements.txt -r {toxinidir}/test-requirements.txt -commands = stestr run {posargs} +commands = + ansible-galaxy install -fr {toxinidir}/ansible-collections-requirements.yml + stestr run {posargs} whitelist_externals = tox [testenv:molecule] -install_command = pip install {opts} {packages} setenv = ANSIBLE_FILTER_PLUGINS={toxinidir}/tripleo_ipa/ansible_plugins/filter ANSIBLE_LIBRARY={toxinidir}/tripleo_ipa/roles.galaxy/config_template/library:{toxinidir}/tripleo_ipa/ansible_plugins/modules diff --git a/tripleo_ipa/ansible_plugins/modules/cleanup_ipa_services.py b/tripleo_ipa/ansible_plugins/modules/cleanup_ipa_services.py index e54d348..e25c909 100644 --- a/tripleo_ipa/ansible_plugins/modules/cleanup_ipa_services.py +++ b/tripleo_ipa/ansible_plugins/modules/cleanup_ipa_services.py @@ -40,8 +40,8 @@ except ImportError: from ipalib.install.kinit import kinit_keytab from ansible.module_utils.basic import AnsibleModule -from ansible.module_utils.openstack import openstack_full_argument_spec -from ansible.module_utils.openstack import openstack_module_kwargs +from ansible_collections.openstack.cloud.plugins.module_utils.openstack import openstack_full_argument_spec +from ansible_collections.openstack.cloud.plugins.module_utils.openstack import openstack_module_kwargs ANSIBLE_METADATA = { 'metadata_version': '1.0', diff --git a/tripleo_ipa/molecule/default/prepare.yml b/tripleo_ipa/molecule/default/prepare.yml index fa4ee35..ab450d8 100644 --- a/tripleo_ipa/molecule/default/prepare.yml +++ b/tripleo_ipa/molecule/default/prepare.yml @@ -23,29 +23,29 @@ ipa_password: password123 - name: Download FreeIPA Container - docker_image: + community.docker.docker_image: name: freeipa/freeipa-server:fedora-28 source: pull - name: Make IPA data dir - file: + ansible.builtin.file: path: /tmp/ipa-data state: directory - name: Toggle SELinux boolean - seboolean: + ansible.posix.seboolean: name: container_manage_cgroup state: true persistent: true become: true - name: Remove any old IPA container - docker_container: + community.docker.docker_container: name: freeipa-server-container state: absent - name: Create network - docker_network: + community.docker.docker_network: name: ipa_network ipam_config: - subnet: 172.18.0.0/16 @@ -90,4 +90,4 @@ - name: Print ipactl status debug: - msg: "{{result.stdout}}" + msg: "{{ result.stdout }}" diff --git a/tripleo_ipa/molecule/deregister/converge.yml b/tripleo_ipa/molecule/deregister/converge.yml index 5a3bb7d..81cdd6d 100644 --- a/tripleo_ipa/molecule/deregister/converge.yml +++ b/tripleo_ipa/molecule/deregister/converge.yml @@ -26,7 +26,7 @@ tasks: - name: copy requirements file copy: - src: "{{playbook_dir}}/../../../requirements.txt" + src: "{{ playbook_dir }}/../../../requirements.txt" dest: /tmp/requirements.txt - name: install requirements pip: @@ -271,7 +271,8 @@ vars: ipa_server_hostname: ipa.example.test tasks: - - include_role: + - name: Include IPA Cleanup + include_role: name: tripleo_ipa_cleanup vars: tripleo_ipa_hosts_to_delete: ['test-1.example.test'] diff --git a/tripleo_ipa/molecule/deregister/prepare.yml b/tripleo_ipa/molecule/deregister/prepare.yml index 8cac5b3..e98bc77 100644 --- a/tripleo_ipa/molecule/deregister/prepare.yml +++ b/tripleo_ipa/molecule/deregister/prepare.yml @@ -23,29 +23,29 @@ ipa_password: password123 - name: Download FreeIPA Container - docker_image: + community.docker.docker_image: name: freeipa/freeipa-server:fedora-28 source: pull - name: Make IPA data dir - file: + ansible.builtin.file: path: /tmp/ipa-data state: directory - name: Toggle SELinux boolean - seboolean: + ansible.posix.seboolean: name: container_manage_cgroup state: true persistent: true become: true - name: Remove any old IPA container - docker_container: + community.docker.docker_container: name: freeipa-server-container state: absent - name: Create network - docker_network: + community.docker.docker_network: name: ipa_network ipam_config: - subnet: 172.18.0.0/16 diff --git a/tripleo_ipa/playbooks/cli-cleanup-ipa.yml b/tripleo_ipa/playbooks/cli-cleanup-ipa.yml index abe28cc..a6c1457 100644 --- a/tripleo_ipa/playbooks/cli-cleanup-ipa.yml +++ b/tripleo_ipa/playbooks/cli-cleanup-ipa.yml @@ -35,7 +35,8 @@ - name: End play if undercloud is not an ipa client meta: end_host - when: default_conf_stat.stat.exists == False + when: + - not default_conf_stat.stat.exists - name: Get realm and host and keytab set_fact: @@ -48,7 +49,8 @@ - name: End play if the keytab does not exist meta: end_host - when: ipa_keytab_stat.stat.exists == False + when: + - not ipa_keytab_stat.stat.exists tasks: - name: initialize the list of hosts to clean up diff --git a/tripleo_ipa/playbooks/ipa-server-create-principal.yaml b/tripleo_ipa/playbooks/ipa-server-create-principal.yaml index 463c81b..3632fd5 100644 --- a/tripleo_ipa/playbooks/ipa-server-create-principal.yaml +++ b/tripleo_ipa/playbooks/ipa-server-create-principal.yaml @@ -42,7 +42,7 @@ set_fact: ipa_principal: "{{ tripleo_ipa_principal | default(lookup('env', 'IPA_PRINCIPAL')) }}" ipa_password: "{{ tripleo_ipa_password | default(lookup('env', 'IPA_PASSWORD')) }}" - undercloud_fqdn: "{{ tripleo_undercloud_fqdn | default(lookup('env', 'UNDERCLOUD_FQDN'))}}" + undercloud_fqdn: "{{ tripleo_undercloud_fqdn | default(lookup('env', 'UNDERCLOUD_FQDN')) }}" - name: set nova service user facts set_fact: diff --git a/tripleo_ipa/playbooks/undercloud-ipa-install.yaml b/tripleo_ipa/playbooks/undercloud-ipa-install.yaml index 40076a4..4102501 100644 --- a/tripleo_ipa/playbooks/undercloud-ipa-install.yaml +++ b/tripleo_ipa/playbooks/undercloud-ipa-install.yaml @@ -83,13 +83,15 @@ - hosts: ipaclients become: true tasks: - - include_role: + - name: Include ipaclient role + include_role: name: ipaclient - hosts: "{{ tripleo_ipa_undercloud_host | default('localhost') }}" become: true tasks: - - include_role: + - name: Include create admin roles + include_role: name: "{{ item }}" with_first_found: - "/usr/share/ansible/roles/tripleo_create_admin" diff --git a/tripleo_ipa/roles/tripleo_ipa_cleanup/meta/main.yml b/tripleo_ipa/roles/tripleo_ipa_cleanup/meta/main.yml index 5255118..926029f 100644 --- a/tripleo_ipa/roles/tripleo_ipa_cleanup/meta/main.yml +++ b/tripleo_ipa/roles/tripleo_ipa_cleanup/meta/main.yml @@ -16,6 +16,7 @@ galaxy_info: + namespace: openstack author: OpenStack description: TripleO OpenStack Role -- tripleo_ipa_cleanup company: Red Hat diff --git a/tripleo_ipa/roles/tripleo_ipa_dns/meta/main.yml b/tripleo_ipa/roles/tripleo_ipa_dns/meta/main.yml index 53c0186..01c4fff 100644 --- a/tripleo_ipa/roles/tripleo_ipa_dns/meta/main.yml +++ b/tripleo_ipa/roles/tripleo_ipa_dns/meta/main.yml @@ -16,6 +16,7 @@ galaxy_info: + namespace: openstack author: OpenStack description: TripleO OpenStack Role -- tripleo_ipa_dns company: Red Hat diff --git a/tripleo_ipa/roles/tripleo_ipa_dns/tasks/dns.yaml b/tripleo_ipa/roles/tripleo_ipa_dns/tasks/dns.yaml index 3b46881..6cdab89 100644 --- a/tripleo_ipa/roles/tripleo_ipa_dns/tasks/dns.yaml +++ b/tripleo_ipa/roles/tripleo_ipa_dns/tasks/dns.yaml @@ -40,7 +40,7 @@ block: - name: set record type set_fact: - record_type: "{{ 'A' if record_value| ipv4 else 'AAAA' }}" + record_type: "{{ 'A' if record_value| ansible.netcommon.ipv4 else 'AAAA' }}" - name: add dns zone ipa_dnszone: diff --git a/tripleo_ipa/roles/tripleo_ipa_registration/meta/main.yml b/tripleo_ipa/roles/tripleo_ipa_registration/meta/main.yml index 5e60245..f5c3999 100644 --- a/tripleo_ipa/roles/tripleo_ipa_registration/meta/main.yml +++ b/tripleo_ipa/roles/tripleo_ipa_registration/meta/main.yml @@ -16,6 +16,7 @@ galaxy_info: + namespace: openstack author: OpenStack description: TripleO OpenStack Role -- tripleo_ipa_registration company: Red Hat diff --git a/tripleo_ipa/roles/tripleo_ipa_registration/tasks/main.yml b/tripleo_ipa/roles/tripleo_ipa_registration/tasks/main.yml index f3b8c7b..b17d294 100644 --- a/tripleo_ipa/roles/tripleo_ipa_registration/tasks/main.yml +++ b/tripleo_ipa/roles/tripleo_ipa_registration/tasks/main.yml @@ -56,7 +56,8 @@ changed_when: false failed_when: false - - debug: var=host_raw_data + - name: Print debug data + debug: var=host_raw_data - name: confirm that host is not already registered with current keytab when: '"has_keytab: TRUE" not in host_raw_data.stdout' diff --git a/tripleo_ipa/roles/tripleo_ipa_setup/meta/main.yml b/tripleo_ipa/roles/tripleo_ipa_setup/meta/main.yml index d7a5d03..ba423de 100644 --- a/tripleo_ipa/roles/tripleo_ipa_setup/meta/main.yml +++ b/tripleo_ipa/roles/tripleo_ipa_setup/meta/main.yml @@ -16,6 +16,7 @@ galaxy_info: + namespace: openstack author: OpenStack description: TripleO-IPA Role -- tripleo_ipa_setup company: Red Hat diff --git a/zuul.d/base.yaml b/zuul.d/base.yaml index f4da58f..b3f4e4f 100644 --- a/zuul.d/base.yaml +++ b/zuul.d/base.yaml @@ -2,7 +2,7 @@ - job: description: tripleo-ipa molecule job name: tripleo-ipa-centos-8-molecule - nodeset: centos-8 + nodeset: centos-8-stream parent: base success-url: "reports.html" failure-url: "reports.html"