From 7e9da5cf6a61db1edacd7b1d3d0326120c9cc346 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 5 Sep 2023 00:14:24 +0000 Subject: [PATCH 01/33] Bump actions/checkout from 3 to 4 Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v3...v4) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/codeql-analysis.yml | 2 +- .github/workflows/docs.yml | 2 +- .github/workflows/main.yml | 12 ++++++------ .github/workflows/release.yml | 2 +- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 1ce0d02..923d2ae 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -22,7 +22,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Initialize CodeQL uses: github/codeql-action/init@v2 diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 7dd0d63..607d070 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -12,7 +12,7 @@ jobs: runs-on: ubuntu-latest if: github.repository == 'theforeman/foreman-operations-collection' steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: configure git run: | git config user.name "${GITHUB_ACTOR}" diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index c556a93..f76aae8 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -33,7 +33,7 @@ jobs: - python: "3.11" ansible: "devel" steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up Python uses: actions/setup-python@v4 with: @@ -52,7 +52,7 @@ jobs: docs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up Python uses: actions/setup-python@v4 with: @@ -72,7 +72,7 @@ jobs: galaxy-importer: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up Python uses: actions/setup-python@v4 with: @@ -87,7 +87,7 @@ jobs: lint: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up Python uses: actions/setup-python@v4 with: @@ -127,7 +127,7 @@ jobs: - python: "3.9" ansible: "stable-2.11" steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up Python uses: actions/setup-python@v4 with: @@ -147,7 +147,7 @@ jobs: execution_environment: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up Python uses: actions/setup-python@v4 with: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 2e330b7..11b6395 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -10,7 +10,7 @@ jobs: runs-on: ubuntu-latest if: github.repository == 'theforeman/foreman-operations-collection' steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up Python uses: actions/setup-python@v4 with: From ea94ebd9c1076b699804e0af99f9e16be1ae2dfa Mon Sep 17 00:00:00 2001 From: Evgeni Golov Date: Mon, 11 Sep 2023 19:07:49 +0200 Subject: [PATCH 02/33] also publish built artifact to github --- .github/workflows/release.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 11b6395..2b2d79a 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -21,3 +21,7 @@ jobs: run: make dist - name: Deploy Ansible Collection run: make publish GALAXY_API_KEY=${{ secrets.GALAXY_API_KEY }} + - name: Create GitHub Release + uses: softprops/action-gh-release@v1 + with: + files: theforeman-operations-*.tar.gz From 80851875705ac6073440468f9de2100598dc03cd Mon Sep 17 00:00:00 2001 From: Evgeni Golov Date: Mon, 11 Sep 2023 19:10:57 +0200 Subject: [PATCH 03/33] ensure we test and document the lowest ansible possible --- .github/workflows/main.yml | 8 ++++---- meta/runtime.yml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index f76aae8..d209333 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -121,7 +121,7 @@ jobs: - devel include: - python: "3.8" - ansible: "stable-2.9" + ansible: "v2.9.17" - python: "3.8" ansible: "stable-2.10" - python: "3.9" @@ -136,9 +136,9 @@ jobs: run: pip install --upgrade https://github.com/ansible/ansible/archive/${{ matrix.ansible }}.tar.gz - name: Install dependencies run: make test-setup - - name: Install Ansible 2.9 compatible molecule - run: pip install --upgrade 'molecule[docker,lint]<4.0' - if: matrix.ansible == 'stable-2.9' + - name: Install Ansible 2.9 compatible molecule and Jinja + run: pip install --upgrade 'molecule[docker,lint]<4.0' 'Jinja2<3.1' + if: matrix.ansible == 'v2.9.17' - name: Run tests env: DRIVER_NAME: docker diff --git a/meta/runtime.yml b/meta/runtime.yml index 43bbe45..c3c4642 100644 --- a/meta/runtime.yml +++ b/meta/runtime.yml @@ -1,2 +1,2 @@ --- -requires_ansible: '>=2.9' +requires_ansible: '>=2.9.17' From 57d7ef0338cf76b48dd6ca48e096a4c263b37611 Mon Sep 17 00:00:00 2001 From: Evgeni Golov Date: Fri, 17 Nov 2023 10:17:36 +0100 Subject: [PATCH 04/33] Switch default Python to 3.11, add Ansible 2.16 to matrix --- .github/workflows/main.yml | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index d209333..0047c18 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -18,19 +18,20 @@ jobs: fail-fast: false matrix: python: - - "3.10" + - "3.11" ansible: - - stable-2.12 - - stable-2.13 - stable-2.14 - stable-2.15 + - stable-2.16 - devel include: - python: "3.8" ansible: "stable-2.12" - python: "3.9" ansible: "stable-2.13" - - python: "3.11" + - python: "3.10" + ansible: "stable-2.14" + - python: "3.12" ansible: "devel" steps: - uses: actions/checkout@v4 @@ -112,12 +113,11 @@ jobs: fail-fast: false matrix: python: - - "3.10" + - "3.11" ansible: - - stable-2.12 - - stable-2.13 - stable-2.14 - stable-2.15 + - stable-2.16 - devel include: - python: "3.8" @@ -126,6 +126,10 @@ jobs: ansible: "stable-2.10" - python: "3.9" ansible: "stable-2.11" + - python: "3.9" + ansible: "stable-2.12" + - python: "3.9" + ansible: "stable-2.13" steps: - uses: actions/checkout@v4 - name: Set up Python From 3e14f6daea91b19eec0f17769e8efd382bcb7aac Mon Sep 17 00:00:00 2001 From: Evgeni Golov Date: Fri, 17 Nov 2023 10:52:12 +0100 Subject: [PATCH 05/33] don't run molecule with devel ansible devel dropped support for Python 3.6, so we can't test our CentOS 8 based targets anymore --- .github/workflows/main.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 0047c18..26646b3 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -118,7 +118,6 @@ jobs: - stable-2.14 - stable-2.15 - stable-2.16 - - devel include: - python: "3.8" ansible: "v2.9.17" From 9c78cf04186e24e00b424d5ac4eba03b99f454bb Mon Sep 17 00:00:00 2001 From: Evgeni Golov Date: Fri, 17 Nov 2023 09:07:39 +0100 Subject: [PATCH 06/33] Drop support for Foreman pre 3.2 / Katello pre 4.4 repositories --- changelogs/fragments/drop-foreman-pre-3.2.yml | 2 ++ .../molecule/default/prepare.yml | 7 ++--- .../tasks/redhat-modules.yml | 28 ------------------- 3 files changed, 5 insertions(+), 32 deletions(-) create mode 100644 changelogs/fragments/drop-foreman-pre-3.2.yml diff --git a/changelogs/fragments/drop-foreman-pre-3.2.yml b/changelogs/fragments/drop-foreman-pre-3.2.yml new file mode 100644 index 0000000..f6130be --- /dev/null +++ b/changelogs/fragments/drop-foreman-pre-3.2.yml @@ -0,0 +1,2 @@ +breaking_changes: + - foreman_repositories role - drop support for Foreman pre 3.2 / Katello pre 4.4 repositories diff --git a/roles/foreman_proxy_certs_generate/molecule/default/prepare.yml b/roles/foreman_proxy_certs_generate/molecule/default/prepare.yml index ce05451..857f626 100644 --- a/roles/foreman_proxy_certs_generate/molecule/default/prepare.yml +++ b/roles/foreman_proxy_certs_generate/molecule/default/prepare.yml @@ -4,8 +4,8 @@ gather_facts: true become: true vars: - foreman_repositories_version: "3.1" - foreman_repositories_katello_version: "4.3" + foreman_repositories_version: "3.8" + foreman_repositories_katello_version: "4.10" roles: - foreman_repositories - puppet_repositories @@ -22,5 +22,4 @@ foreman_installer_scenario: katello foreman_installer_package: foreman-installer-katello foreman_installer_options: - - '--disable-system-checks' - - '--verbose-log-level debug' + - '--tuning development' diff --git a/roles/foreman_repositories/tasks/redhat-modules.yml b/roles/foreman_repositories/tasks/redhat-modules.yml index e615c63..eaf3cc1 100644 --- a/roles/foreman_repositories/tasks/redhat-modules.yml +++ b/roles/foreman_repositories/tasks/redhat-modules.yml @@ -1,15 +1,4 @@ --- -- name: Enable ruby:2.7 module - ansible.builtin.dnf: - name: '@ruby:2.7' - state: present - tags: - - packages - when: - - foreman_repositories_version != 'nightly' - - foreman_repositories_version is version('2.5', '>=') - - foreman_repositories_version is version('3.2', '<') - - name: 'Enable foreman:el8 module' ansible.builtin.command: dnf module enable -y foreman:el8 # can't use the `dnf` module for modules without a default stream @@ -19,8 +8,6 @@ creates: /etc/dnf/modules.d/foreman.module tags: - packages - when: - - foreman_repositories_version == "nightly" or foreman_repositories_version is version('3.2', '>=') - name: 'Enable katello el8 modules' ansible.builtin.command: "dnf module enable -y {{ item }}:el8" @@ -36,18 +23,3 @@ - pulpcore when: - foreman_repositories_katello_version is defined - - foreman_repositories_katello_version == "nightly" or foreman_repositories_katello_version is version('4.4', '>=') - -- name: 'Enable pki-core module' - ansible.builtin.command: dnf module enable -y pki-core - # can't use the `dnf` module for modules without a default stream - # https://github.com/ansible/ansible/issues/56504 - # https://github.com/ansible/ansible/issues/64852 - args: - creates: /etc/dnf/modules.d/pki-core.module - tags: - - packages - when: - - foreman_repositories_katello_version is defined - - foreman_repositories_katello_version != "nightly" - - foreman_repositories_katello_version is version('4.3', '<=') From 466fc476b0baa9b45a3efaaa484750215d7482a7 Mon Sep 17 00:00:00 2001 From: Evgeni Golov Date: Mon, 20 Nov 2023 08:15:54 +0100 Subject: [PATCH 07/33] Drop PostgreSQL upgrade role --- .../drop-postgresql_upgrade-role.yml | 2 + roles/postgresql_upgrade/README.md | 15 ---- .../molecule/redhat/collections.yml | 5 -- .../molecule/redhat/converge.yml | 6 -- .../molecule/redhat/molecule.yml | 22 ------ .../molecule/redhat/prepare.yml | 19 ----- .../molecule/redhat/verify.yml | 18 ----- roles/postgresql_upgrade/tasks/main.yml | 69 ------------------- 8 files changed, 2 insertions(+), 154 deletions(-) create mode 100644 changelogs/fragments/drop-postgresql_upgrade-role.yml delete mode 100644 roles/postgresql_upgrade/README.md delete mode 100644 roles/postgresql_upgrade/molecule/redhat/collections.yml delete mode 100644 roles/postgresql_upgrade/molecule/redhat/converge.yml delete mode 100644 roles/postgresql_upgrade/molecule/redhat/molecule.yml delete mode 100644 roles/postgresql_upgrade/molecule/redhat/prepare.yml delete mode 100644 roles/postgresql_upgrade/molecule/redhat/verify.yml delete mode 100644 roles/postgresql_upgrade/tasks/main.yml diff --git a/changelogs/fragments/drop-postgresql_upgrade-role.yml b/changelogs/fragments/drop-postgresql_upgrade-role.yml new file mode 100644 index 0000000..1242f98 --- /dev/null +++ b/changelogs/fragments/drop-postgresql_upgrade-role.yml @@ -0,0 +1,2 @@ +breaking_changes: + - postgresql_upgrade role - removed the role as it was only needed for Foreman before 2.5 diff --git a/roles/postgresql_upgrade/README.md b/roles/postgresql_upgrade/README.md deleted file mode 100644 index f7d9687..0000000 --- a/roles/postgresql_upgrade/README.md +++ /dev/null @@ -1,15 +0,0 @@ -theforeman.operations.postgresql_upgrade -======================================== - -Upgrade Foreman's PostgreSQL from 10 to 12 on EL8. - -Example Playbooks ------------------ - -```yaml ---- -- hosts: all - gather_facts: true - roles: - - postgresql_upgrade -``` diff --git a/roles/postgresql_upgrade/molecule/redhat/collections.yml b/roles/postgresql_upgrade/molecule/redhat/collections.yml deleted file mode 100644 index 03425ca..0000000 --- a/roles/postgresql_upgrade/molecule/redhat/collections.yml +++ /dev/null @@ -1,5 +0,0 @@ -collections: - - name: community.docker - version: ">=3,<4" - - name: community.general - version: ">=2,<3" diff --git a/roles/postgresql_upgrade/molecule/redhat/converge.yml b/roles/postgresql_upgrade/molecule/redhat/converge.yml deleted file mode 100644 index 025efdc..0000000 --- a/roles/postgresql_upgrade/molecule/redhat/converge.yml +++ /dev/null @@ -1,6 +0,0 @@ ---- -- name: Converge - hosts: all - gather_facts: true - roles: - - postgresql_upgrade diff --git a/roles/postgresql_upgrade/molecule/redhat/molecule.yml b/roles/postgresql_upgrade/molecule/redhat/molecule.yml deleted file mode 100644 index 6159f8e..0000000 --- a/roles/postgresql_upgrade/molecule/redhat/molecule.yml +++ /dev/null @@ -1,22 +0,0 @@ ---- -dependency: - name: galaxy -driver: - name: ${DRIVER_NAME:-podman} -platforms: - - name: foreman.example.com - image: quay.io/centos/centos:stream8 - command: /sbin/init - tmpfs: - - /run - - /tmp:exec,mode=777 - volumes: - - /sys/fs/cgroup:/sys/fs/cgroup:ro -provisioner: - name: ansible -verifier: - name: ansible -lint: | - set -e - yamllint -c ../../.yamllint . - YAMLLINT_CONFIG_FILE=../../.yamllint ansible-lint . diff --git a/roles/postgresql_upgrade/molecule/redhat/prepare.yml b/roles/postgresql_upgrade/molecule/redhat/prepare.yml deleted file mode 100644 index 8583683..0000000 --- a/roles/postgresql_upgrade/molecule/redhat/prepare.yml +++ /dev/null @@ -1,19 +0,0 @@ ---- -- name: Prepare - hosts: all - gather_facts: true - tasks: - - name: Ensure langpacks on EL8 - ansible.builtin.dnf: - name: glibc-langpack-en - state: present - - - name: Install PostgreSQL 10 - ansible.builtin.dnf: - name: '@postgresql:10/server' - state: present - - - name: Run postgresql-setup --initdb - ansible.builtin.command: postgresql-setup --initdb - args: - creates: /var/lib/pgsql/data/PG_VERSION diff --git a/roles/postgresql_upgrade/molecule/redhat/verify.yml b/roles/postgresql_upgrade/molecule/redhat/verify.yml deleted file mode 100644 index 44340b7..0000000 --- a/roles/postgresql_upgrade/molecule/redhat/verify.yml +++ /dev/null @@ -1,18 +0,0 @@ ---- -- name: Verify - hosts: all - gather_facts: false - tasks: - - name: Get version of postgres data directory - ansible.builtin.slurp: - path: /var/lib/pgsql/data/PG_VERSION - register: __foreman_pg_version - - - name: Print PostgreSQL version - ansible.builtin.debug: - msg: "{{ __foreman_pg_version['content'] | b64decode }}" - - - name: Assure postgresql version is 12 - ansible.builtin.assert: - that: - - "'12' in __foreman_pg_version['content'] | b64decode" diff --git a/roles/postgresql_upgrade/tasks/main.yml b/roles/postgresql_upgrade/tasks/main.yml deleted file mode 100644 index f4e405e..0000000 --- a/roles/postgresql_upgrade/tasks/main.yml +++ /dev/null @@ -1,69 +0,0 @@ ---- -- name: Ensure running on EL8 - ansible.builtin.assert: - that: - - ansible_os_family == "RedHat" - - ansible_distribution_major_version == '8' - fail_msg: "This role is only supported on EL8" - -- name: Get version from the PostgreSQL data directory - ansible.builtin.slurp: - path: /var/lib/pgsql/data/PG_VERSION - register: __foreman_pg_version - -- name: Perform PostgreSQL upgrade - when: - - "'10' in __foreman_pg_version['content']|b64decode" - block: - - name: Start postgresql - ansible.builtin.service: - name: postgresql - state: started - - - name: Collect postgres data - ansible.builtin.shell: | - set -o pipefail - psql --list --tuples-only | grep -E "^\s+postgres" - become: true - become_user: postgres - changed_when: false - register: __foreman_postgres_output - - - name: Set collate and ctype facts - ansible.builtin.set_fact: - foreman_postgres_collate: "{{ __foreman_postgres_output.stdout.split('|')[3] | trim }}" - foreman_postgres_ctype: "{{ __foreman_postgres_output.stdout.split('|')[4] | trim }}" - - - name: Stop postgresql - ansible.builtin.service: - name: postgresql - state: stopped - - # https://bugzilla.redhat.com/show_bug.cgi?id=1935301 - - name: Update postgresq.conf data directory - ansible.builtin.lineinfile: - path: /var/lib/pgsql/data/postgresql.conf - regexp: '^data_directory =' - line: '' - - - name: Enable postgresql:12 module - ansible.builtin.dnf: - name: '@postgresql:12' - state: present - - - name: Update postgresql packages # noqa package-latest - ansible.builtin.dnf: - name: - - postgresql-server - - postgresql-upgrade - state: latest - - - name: Run postgresql-setup --upgrade # noqa no-changed-when - ansible.builtin.command: postgresql-setup --upgrade - environment: - PGSETUP_INITDB_OPTIONS: "--lc-collate={{ foreman_postgres_collate }} --lc-ctype={{ foreman_postgres_ctype }} --locale={{ foreman_postgres_collate }}" - - - name: Start postgresql - ansible.builtin.service: - name: postgresql - state: started From 8b40997e55bc51c3c9a5dce96c78742e5a0babaa Mon Sep 17 00:00:00 2001 From: Evgeni Golov Date: Tue, 21 Nov 2023 09:24:56 +0100 Subject: [PATCH 08/33] cleanup molecule prepare playbooks the mixture of `roles`, `pre_tasks`, `tasks` and `post_tasks` is confusing. just use `tasks` and when a role is needed `include_role`. --- roles/backup/molecule/redhat/prepare.yml | 4 +--- .../molecule/default/prepare.yml | 17 ++++++++++------- roles/installer/molecule/default/prepare.yml | 9 ++++++--- .../molecule/debian/prepare.yml | 10 ++++++---- .../molecule/redhat/prepare.yml | 10 ++++++---- 5 files changed, 29 insertions(+), 21 deletions(-) diff --git a/roles/backup/molecule/redhat/prepare.yml b/roles/backup/molecule/redhat/prepare.yml index d37863f..5568d8f 100644 --- a/roles/backup/molecule/redhat/prepare.yml +++ b/roles/backup/molecule/redhat/prepare.yml @@ -2,9 +2,7 @@ - name: Prepare hosts: all gather_facts: true - pre_tasks: + tasks: - name: Install crontabs ansible.builtin.package: name: crontabs - roles: - - backup diff --git a/roles/foreman_proxy_certs_generate/molecule/default/prepare.yml b/roles/foreman_proxy_certs_generate/molecule/default/prepare.yml index 857f626..5e8c71a 100644 --- a/roles/foreman_proxy_certs_generate/molecule/default/prepare.yml +++ b/roles/foreman_proxy_certs_generate/molecule/default/prepare.yml @@ -3,13 +3,16 @@ hosts: all gather_facts: true become: true - vars: - foreman_repositories_version: "3.8" - foreman_repositories_katello_version: "4.10" - roles: - - foreman_repositories - - puppet_repositories - post_tasks: + tasks: + - name: Configure Puppet repositories + ansible.builtin.include_role: + name: puppet_repositories + - name: Configure Foreman repositories + ansible.builtin.include_role: + name: foreman_repositories + vars: + foreman_repositories_version: "3.8" + foreman_repositories_katello_version: "4.10" - name: Ensure langpacks on EL8 ansible.builtin.dnf: name: glibc-langpack-en diff --git a/roles/installer/molecule/default/prepare.yml b/roles/installer/molecule/default/prepare.yml index c140285..e7d69c8 100644 --- a/roles/installer/molecule/default/prepare.yml +++ b/roles/installer/molecule/default/prepare.yml @@ -3,10 +3,13 @@ hosts: all gather_facts: true become: true - roles: - - puppet_repositories - - foreman_repositories tasks: + - name: Configure Puppet repositories + ansible.builtin.include_role: + name: puppet_repositories + - name: Configure Foreman repositories + ansible.builtin.include_role: + name: foreman_repositories - name: Ensure langpacks on EL8 ansible.builtin.dnf: name: glibc-langpack-en diff --git a/roles/puppet_repositories/molecule/debian/prepare.yml b/roles/puppet_repositories/molecule/debian/prepare.yml index d723e82..7f6cc94 100644 --- a/roles/puppet_repositories/molecule/debian/prepare.yml +++ b/roles/puppet_repositories/molecule/debian/prepare.yml @@ -2,7 +2,9 @@ - name: Prepare hosts: all gather_facts: true - vars: - foreman_puppet_repositories_version: 6 - roles: - - puppet_repositories + tasks: + - name: Configure Puppet 6 repositories + ansible.builtin.include_role: + name: puppet_repositories + vars: + foreman_puppet_repositories_version: 6 diff --git a/roles/puppet_repositories/molecule/redhat/prepare.yml b/roles/puppet_repositories/molecule/redhat/prepare.yml index d723e82..7f6cc94 100644 --- a/roles/puppet_repositories/molecule/redhat/prepare.yml +++ b/roles/puppet_repositories/molecule/redhat/prepare.yml @@ -2,7 +2,9 @@ - name: Prepare hosts: all gather_facts: true - vars: - foreman_puppet_repositories_version: 6 - roles: - - puppet_repositories + tasks: + - name: Configure Puppet 6 repositories + ansible.builtin.include_role: + name: puppet_repositories + vars: + foreman_puppet_repositories_version: 6 From 9bd2640667d4b40e7f4ba792fb03b4518c189dcd Mon Sep 17 00:00:00 2001 From: Evgeni Golov Date: Mon, 27 Nov 2023 09:34:52 +0100 Subject: [PATCH 09/33] only enable the Pulpcore module for Katello up to 4.10 --- .../pulpcore-module-only-up-to-410.yml | 2 ++ .../tasks/redhat-modules.yml | 23 ++++++++++++++----- 2 files changed, 19 insertions(+), 6 deletions(-) create mode 100644 changelogs/fragments/pulpcore-module-only-up-to-410.yml diff --git a/changelogs/fragments/pulpcore-module-only-up-to-410.yml b/changelogs/fragments/pulpcore-module-only-up-to-410.yml new file mode 100644 index 0000000..e3e107b --- /dev/null +++ b/changelogs/fragments/pulpcore-module-only-up-to-410.yml @@ -0,0 +1,2 @@ +minor_changes: + - foreman_repositories role - only enable the Pulpcore module for Katello up to 4.10, later versions use demodularized Pulpcore repos diff --git a/roles/foreman_repositories/tasks/redhat-modules.yml b/roles/foreman_repositories/tasks/redhat-modules.yml index eaf3cc1..aa61b39 100644 --- a/roles/foreman_repositories/tasks/redhat-modules.yml +++ b/roles/foreman_repositories/tasks/redhat-modules.yml @@ -9,17 +9,28 @@ tags: - packages -- name: 'Enable katello el8 modules' - ansible.builtin.command: "dnf module enable -y {{ item }}:el8" +- name: 'Enable katello:el8 module' + ansible.builtin.command: "dnf module enable -y katello:el8" # can't use the `dnf` module for modules without a default stream # https://github.com/ansible/ansible/issues/56504 # https://github.com/ansible/ansible/issues/64852 args: - creates: "/etc/dnf/modules.d/{{ item }}.module" + creates: "/etc/dnf/modules.d/katello.module" tags: - packages - loop: - - katello - - pulpcore when: - foreman_repositories_katello_version is defined + +- name: 'Enable pulpcore:el8 module' + ansible.builtin.command: "dnf module enable -y pulpcore:el8" + # can't use the `dnf` module for modules without a default stream + # https://github.com/ansible/ansible/issues/56504 + # https://github.com/ansible/ansible/issues/64852 + args: + creates: "/etc/dnf/modules.d/pulpcore.module" + tags: + - packages + when: + - foreman_repositories_katello_version is defined + - foreman_repositories_katello_version != 'nightly' + - foreman_repositories_katello_version is version('4.10', '<=') From 515219d1934595d9021f9a712ecc4867b499e143 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 7 Dec 2023 00:16:47 +0000 Subject: [PATCH 10/33] Bump actions/setup-python from 4 to 5 Bumps [actions/setup-python](https://github.com/actions/setup-python) from 4 to 5. - [Release notes](https://github.com/actions/setup-python/releases) - [Commits](https://github.com/actions/setup-python/compare/v4...v5) --- updated-dependencies: - dependency-name: actions/setup-python dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/docs.yml | 2 +- .github/workflows/main.yml | 12 ++++++------ .github/workflows/release.yml | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 607d070..c537db1 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -19,7 +19,7 @@ jobs: git config user.email "${GITHUB_ACTOR}@bots.github.com" git fetch --no-tags --prune --depth=1 origin +refs/heads/*:refs/remotes/origin/* - name: Set up Python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: "3.11" - name: Install dependencies diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 26646b3..10c7128 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -36,7 +36,7 @@ jobs: steps: - uses: actions/checkout@v4 - name: Set up Python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: ${{ matrix.python }} cache: 'pip' @@ -55,7 +55,7 @@ jobs: steps: - uses: actions/checkout@v4 - name: Set up Python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: "3.11" cache: 'pip' @@ -75,7 +75,7 @@ jobs: steps: - uses: actions/checkout@v4 - name: Set up Python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: "3.11" cache: 'pip' @@ -90,7 +90,7 @@ jobs: steps: - uses: actions/checkout@v4 - name: Set up Python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: "3.11" cache: 'pip' @@ -132,7 +132,7 @@ jobs: steps: - uses: actions/checkout@v4 - name: Set up Python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: ${{ matrix.python }} - name: Install Ansible @@ -152,7 +152,7 @@ jobs: steps: - uses: actions/checkout@v4 - name: Set up Python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: "3.11" cache: 'pip' diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 2b2d79a..ba5c3d5 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -12,7 +12,7 @@ jobs: steps: - uses: actions/checkout@v4 - name: Set up Python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: "3.11" - name: Install Ansible From 611f314453aceb7fb6ca1e6776ee749528dd735d Mon Sep 17 00:00:00 2001 From: Evgeni Golov Date: Mon, 11 Dec 2023 15:31:18 +0100 Subject: [PATCH 11/33] disable pulpcore module for katello 4.11+ --- .../fragments/pulpcore-module-only-up-to-410.yml | 1 + roles/foreman_repositories/tasks/redhat-modules.yml | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/changelogs/fragments/pulpcore-module-only-up-to-410.yml b/changelogs/fragments/pulpcore-module-only-up-to-410.yml index e3e107b..a75e423 100644 --- a/changelogs/fragments/pulpcore-module-only-up-to-410.yml +++ b/changelogs/fragments/pulpcore-module-only-up-to-410.yml @@ -1,2 +1,3 @@ minor_changes: - foreman_repositories role - only enable the Pulpcore module for Katello up to 4.10, later versions use demodularized Pulpcore repos + - foreman_repositories role - disable Pulpcore module on upgrades to Katello 4.11+ diff --git a/roles/foreman_repositories/tasks/redhat-modules.yml b/roles/foreman_repositories/tasks/redhat-modules.yml index aa61b39..364fc51 100644 --- a/roles/foreman_repositories/tasks/redhat-modules.yml +++ b/roles/foreman_repositories/tasks/redhat-modules.yml @@ -34,3 +34,13 @@ - foreman_repositories_katello_version is defined - foreman_repositories_katello_version != 'nightly' - foreman_repositories_katello_version is version('4.10', '<=') + +- name: 'Disable pulpcore:el8 module' + ansible.builtin.file: + path: /etc/dnf/modules.d/pulpcore.module + state: absent + tags: + - packages + when: + - foreman_repositories_katello_version is defined + - foreman_repositories_katello_version == 'nightly' or foreman_repositories_katello_version is version('4.11', '>=') From 2eb4c9bb6d3ebed161fa42541cece922334dd490 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 14 Dec 2023 00:06:59 +0000 Subject: [PATCH 12/33] Bump github/codeql-action from 2 to 3 Bumps [github/codeql-action](https://github.com/github/codeql-action) from 2 to 3. - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/github/codeql-action/compare/v2...v3) --- updated-dependencies: - dependency-name: github/codeql-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/codeql-analysis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 923d2ae..a23c065 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -25,9 +25,9 @@ jobs: uses: actions/checkout@v4 - name: Initialize CodeQL - uses: github/codeql-action/init@v2 + uses: github/codeql-action/init@v3 with: languages: ${{ matrix.language }} - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v2 + uses: github/codeql-action/analyze@v3 From 269bbe6823fffbd49c36dfced12df235de9437fa Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 15 Dec 2023 00:11:52 +0000 Subject: [PATCH 13/33] Bump actions/upload-artifact from 3 to 4 Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 3 to 4. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/v3...v4) --- updated-dependencies: - dependency-name: actions/upload-artifact dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/main.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 10c7128..8688884 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -65,7 +65,7 @@ jobs: - name: Build docs run: make doc - name: Upload docs artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: docs-html path: docs/_build/html/ @@ -102,7 +102,7 @@ jobs: - name: Run lint run: make lint - name: Upload collection artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: collection path: theforeman-operations-*.tar.gz From a387f27a7a27a48be525549f861952c3705c5174 Mon Sep 17 00:00:00 2001 From: Evgeni Golov Date: Mon, 20 Nov 2023 09:33:57 +0100 Subject: [PATCH 14/33] add metrics role --- changelogs/fragments/add-metrics-role.yml | 2 + roles/metrics/README.md | 25 +++++++ roles/metrics/defaults/main.yml | 12 +++ .../files/grafana-pcp-provisioning.yaml | 10 +++ roles/metrics/handlers/main.yml | 20 +++++ roles/metrics/molecule/debian/collections.yml | 5 ++ roles/metrics/molecule/debian/converge.yml | 6 ++ roles/metrics/molecule/debian/molecule.yml | 16 ++++ roles/metrics/molecule/debian/prepare.yml | 20 +++++ roles/metrics/molecule/debian/verify.yml | 26 +++++++ roles/metrics/molecule/redhat/collections.yml | 5 ++ roles/metrics/molecule/redhat/converge.yml | 6 ++ roles/metrics/molecule/redhat/molecule.yml | 22 ++++++ roles/metrics/molecule/redhat/prepare.yml | 30 ++++++++ roles/metrics/molecule/redhat/verify.yml | 46 ++++++++++++ roles/metrics/tasks/grafana.yml | 30 ++++++++ roles/metrics/tasks/main.yml | 74 +++++++++++++++++++ .../templates/grafana-pcp-datasources.yaml.j2 | 23 ++++++ 18 files changed, 378 insertions(+) create mode 100644 changelogs/fragments/add-metrics-role.yml create mode 100644 roles/metrics/README.md create mode 100644 roles/metrics/defaults/main.yml create mode 100644 roles/metrics/files/grafana-pcp-provisioning.yaml create mode 100644 roles/metrics/handlers/main.yml create mode 100644 roles/metrics/molecule/debian/collections.yml create mode 100644 roles/metrics/molecule/debian/converge.yml create mode 100644 roles/metrics/molecule/debian/molecule.yml create mode 100644 roles/metrics/molecule/debian/prepare.yml create mode 100644 roles/metrics/molecule/debian/verify.yml create mode 100644 roles/metrics/molecule/redhat/collections.yml create mode 100644 roles/metrics/molecule/redhat/converge.yml create mode 100644 roles/metrics/molecule/redhat/molecule.yml create mode 100644 roles/metrics/molecule/redhat/prepare.yml create mode 100644 roles/metrics/molecule/redhat/verify.yml create mode 100644 roles/metrics/tasks/grafana.yml create mode 100644 roles/metrics/tasks/main.yml create mode 100644 roles/metrics/templates/grafana-pcp-datasources.yaml.j2 diff --git a/changelogs/fragments/add-metrics-role.yml b/changelogs/fragments/add-metrics-role.yml new file mode 100644 index 0000000..f8a8185 --- /dev/null +++ b/changelogs/fragments/add-metrics-role.yml @@ -0,0 +1,2 @@ +minor_changes: + - metrics role - new role to setup PCP integration with Foreman 3.9 and newer diff --git a/roles/metrics/README.md b/roles/metrics/README.md new file mode 100644 index 0000000..b5dca44 --- /dev/null +++ b/roles/metrics/README.md @@ -0,0 +1,25 @@ +theforeman.operations.metrics +============================= + +Setup Performace Co-Pilot and Grafana to gather metrics of a Foreman installation. + +This role is heavily based on the [performancecopilot.metrics](https://github.com/performancecopilot/ansible-pcp) collection. + +Role Variables +-------------- + +* `foreman_metrics_url`: The URL of the OpenMetrics endpoint of Foreman, defaults to `https://{{ ansible_fqdn | default('localhost') }}/metrics`. +* `foreman_metrics_pcp_optional_agents`: The optional PCP agents to enable, defaults to `[apache, openmetrics, postgresql, redis]`. +* `foreman_metrics_grafana_enabled`: Whether or not Grafana should be installed and configured on the system, defaults to `true` on Red Hat family systems, and to `false` otherwise. +* `foreman_metrics_grafana_pmproxy_url`: The URL of the `pmproxy` service to be used as the Grafana datasource, defaults to `http://{{ ansible_fqdn | default('localhost') }}:44322`. + +Example Playbooks +----------------- + +```yaml +--- +- hosts: all + gather_facts: true + roles: + - metrics +``` diff --git a/roles/metrics/defaults/main.yml b/roles/metrics/defaults/main.yml new file mode 100644 index 0000000..4d69312 --- /dev/null +++ b/roles/metrics/defaults/main.yml @@ -0,0 +1,12 @@ +--- +foreman_metrics_url: "https://{{ ansible_fqdn | default('localhost') }}/metrics" +foreman_metrics_pcp_additional_packages: "{{ ['pcp-system-tools'] if ansible_os_family == 'RedHat' else ['python3-psycopg2', 'python3-requests'] }}" +foreman_metrics_pcp_optional_agents: + - apache + - openmetrics + - postgresql + - redis +foreman_metrics_pcp_optional_agent_packages_redhat: "{{ foreman_metrics_pcp_optional_agents | map('regex_replace', '^', 'pcp-pmda-') }}" +foreman_metrics_pcp_optional_agent_packages: "{{ foreman_metrics_pcp_optional_agent_packages_redhat if ansible_os_family == 'RedHat' else [] }}" +foreman_metrics_grafana_enabled: "{{ ansible_os_family == 'RedHat' }}" +foreman_metrics_grafana_pmproxy_url: "http://{{ ansible_fqdn | default('localhost') }}:44322" diff --git a/roles/metrics/files/grafana-pcp-provisioning.yaml b/roles/metrics/files/grafana-pcp-provisioning.yaml new file mode 100644 index 0000000..fbf7d39 --- /dev/null +++ b/roles/metrics/files/grafana-pcp-provisioning.yaml @@ -0,0 +1,10 @@ +--- +apiVersion: 1 + +apps: + - type: performancecopilot-pcp-app + org_id: 1 + org_name: Performance Co-Pilot + disabled: false + jsonData: + secureJsonData: diff --git a/roles/metrics/handlers/main.yml b/roles/metrics/handlers/main.yml new file mode 100644 index 0000000..9b3b6ec --- /dev/null +++ b/roles/metrics/handlers/main.yml @@ -0,0 +1,20 @@ +--- +- name: Restart pmcd + ansible.builtin.service: + name: pmcd + state: restarted + +- name: Restart pmproxy + ansible.builtin.service: + name: pmproxy + state: restarted + +- name: Restart pmlogger + ansible.builtin.service: + name: pmlogger + state: restarted + +- name: Restart grafana-server + ansible.builtin.service: + name: grafana-server + state: restarted diff --git a/roles/metrics/molecule/debian/collections.yml b/roles/metrics/molecule/debian/collections.yml new file mode 100644 index 0000000..03425ca --- /dev/null +++ b/roles/metrics/molecule/debian/collections.yml @@ -0,0 +1,5 @@ +collections: + - name: community.docker + version: ">=3,<4" + - name: community.general + version: ">=2,<3" diff --git a/roles/metrics/molecule/debian/converge.yml b/roles/metrics/molecule/debian/converge.yml new file mode 100644 index 0000000..f9ccb1a --- /dev/null +++ b/roles/metrics/molecule/debian/converge.yml @@ -0,0 +1,6 @@ +--- +- name: Converge + hosts: all + gather_facts: true + roles: + - metrics diff --git a/roles/metrics/molecule/debian/molecule.yml b/roles/metrics/molecule/debian/molecule.yml new file mode 100644 index 0000000..517489c --- /dev/null +++ b/roles/metrics/molecule/debian/molecule.yml @@ -0,0 +1,16 @@ +--- +dependency: + name: galaxy +driver: + name: ${DRIVER_NAME:-podman} +platforms: + - name: debian-bullseye + image: debian:11 +provisioner: + name: ansible +verifier: + name: ansible +lint: | + set -e + yamllint -c ../../.yamllint . + YAMLLINT_CONFIG_FILE=../../.yamllint ansible-lint . diff --git a/roles/metrics/molecule/debian/prepare.yml b/roles/metrics/molecule/debian/prepare.yml new file mode 100644 index 0000000..af225f7 --- /dev/null +++ b/roles/metrics/molecule/debian/prepare.yml @@ -0,0 +1,20 @@ +--- +- name: Prepare + hosts: all + gather_facts: true + tasks: + - name: Configure Foreman rpeositories + ansible.builtin.include_role: + name: foreman_repositories + vars: + foreman_repositories_version: 'nightly' + + - name: Install PostgreSQL + ansible.builtin.package: + name: postgresql + state: present + + - name: Start PostgreSQL + ansible.builtin.service: + name: postgresql + state: started diff --git a/roles/metrics/molecule/debian/verify.yml b/roles/metrics/molecule/debian/verify.yml new file mode 100644 index 0000000..d40df44 --- /dev/null +++ b/roles/metrics/molecule/debian/verify.yml @@ -0,0 +1,26 @@ +--- +- name: Verify + hosts: all + gather_facts: false + tasks: + - name: Ensure pcp is installed + ansible.builtin.package: + name: pcp + state: present + + - name: Read pmcd.conf + ansible.builtin.slurp: + src: /etc/pcp/pmcd/pmcd.conf + register: __foreman_pmcd_conf + + - name: Ensure optional metric collection agents are enabled + ansible.builtin.assert: + that: + - item in __foreman_pmcd_enabled_pmdas + loop: + - apache + - openmetrics + - postgresql + - redis + vars: + __foreman_pmcd_enabled_pmdas: "{{ __foreman_pmcd_conf['content'] | b64decode | split('\n') | select('contains', 'pcp/pmdas') | map('split') | map('first') }}" diff --git a/roles/metrics/molecule/redhat/collections.yml b/roles/metrics/molecule/redhat/collections.yml new file mode 100644 index 0000000..03425ca --- /dev/null +++ b/roles/metrics/molecule/redhat/collections.yml @@ -0,0 +1,5 @@ +collections: + - name: community.docker + version: ">=3,<4" + - name: community.general + version: ">=2,<3" diff --git a/roles/metrics/molecule/redhat/converge.yml b/roles/metrics/molecule/redhat/converge.yml new file mode 100644 index 0000000..f9ccb1a --- /dev/null +++ b/roles/metrics/molecule/redhat/converge.yml @@ -0,0 +1,6 @@ +--- +- name: Converge + hosts: all + gather_facts: true + roles: + - metrics diff --git a/roles/metrics/molecule/redhat/molecule.yml b/roles/metrics/molecule/redhat/molecule.yml new file mode 100644 index 0000000..1c22c75 --- /dev/null +++ b/roles/metrics/molecule/redhat/molecule.yml @@ -0,0 +1,22 @@ +--- +dependency: + name: galaxy +driver: + name: ${DRIVER_NAME:-podman} +platforms: + - name: centos8 + image: quay.io/centos/centos:stream8 + command: /sbin/init + tmpfs: + - /run + - /tmp:exec,mode=777 + volumes: + - /sys/fs/cgroup:/sys/fs/cgroup:ro +provisioner: + name: ansible +verifier: + name: ansible +lint: | + set -e + yamllint -c ../../.yamllint . + YAMLLINT_CONFIG_FILE=../../.yamllint ansible-lint . diff --git a/roles/metrics/molecule/redhat/prepare.yml b/roles/metrics/molecule/redhat/prepare.yml new file mode 100644 index 0000000..eb34204 --- /dev/null +++ b/roles/metrics/molecule/redhat/prepare.yml @@ -0,0 +1,30 @@ +--- +- name: Prepare + hosts: all + gather_facts: true + tasks: + - name: Configure Foreman rpeositories + ansible.builtin.include_role: + name: foreman_repositories + vars: + foreman_repositories_version: 'nightly' + + - name: Ensure langpacks on EL8 + ansible.builtin.package: + name: glibc-langpack-en + state: present + + - name: Install PostgreSQL + ansible.builtin.package: + name: postgresql-server + state: present + + - name: Init PostgreSQL data + ansible.builtin.command: postgresql-setup --initdb + args: + creates: /var/lib/pgsql/data/PG_VERSION + + - name: Start PostgreSQL + ansible.builtin.service: + name: postgresql + state: started diff --git a/roles/metrics/molecule/redhat/verify.yml b/roles/metrics/molecule/redhat/verify.yml new file mode 100644 index 0000000..8ec45d1 --- /dev/null +++ b/roles/metrics/molecule/redhat/verify.yml @@ -0,0 +1,46 @@ +--- +- name: Verify + hosts: all + gather_facts: false + tasks: + - name: Ensure PCP is installed + ansible.builtin.package: + name: pcp + state: present + + - name: Read pmcd.conf + ansible.builtin.slurp: + src: /etc/pcp/pmcd/pmcd.conf + register: __foreman_pmcd_conf + + - name: Ensure optional metric collection agents are enabled + ansible.builtin.assert: + that: + - item in __foreman_pmcd_enabled_pmdas + loop: + - apache + - openmetrics + - postgresql + - redis + vars: + __foreman_pmcd_enabled_pmdas: "{{ __foreman_pmcd_conf['content'] | b64decode | split('\n') | select('contains', 'pcp/pmdas') | map('split') | map('first') }}" + + - name: Ensure Grafana is installed + ansible.builtin.package: + name: grafana + state: present + + - name: Ensure grafana-server is running + ansible.builtin.service: + name: grafana-server + state: started + + - name: List installed Grafana plugins + ansible.builtin.command: grafana-cli plugins ls + changed_when: false + register: __foreman_grafana_plugins + + - name: Ensure PCP plugin is installed + ansible.builtin.assert: + that: + - "'performancecopilot-pcp-app' in __foreman_grafana_plugins.stdout" diff --git a/roles/metrics/tasks/grafana.yml b/roles/metrics/tasks/grafana.yml new file mode 100644 index 0000000..23e82e3 --- /dev/null +++ b/roles/metrics/tasks/grafana.yml @@ -0,0 +1,30 @@ +--- +- name: Install Grafana packages + ansible.builtin.package: + name: + - grafana + - grafana-pcp + state: present + disable_plugin: foreman-protector + +- name: Add PCP plugin to Grafana + ansible.builtin.copy: + src: files/grafana-pcp-provisioning.yaml + dest: "/etc/grafana/provisioning/plugins/grafana-pcp.yaml" + owner: root + group: grafana + mode: '0640' + notify: Restart grafana-server + +- name: Configure PCP datasources in Grafana + ansible.builtin.template: + src: grafana-pcp-datasources.yaml.j2 + dest: "/etc/grafana/provisioning/datasources/grafana-pcp.yaml" + mode: '0644' + notify: Restart grafana-server + +- name: Start grafana-server + ansible.builtin.service: + name: grafana-server + state: started + enabled: true diff --git a/roles/metrics/tasks/main.yml b/roles/metrics/tasks/main.yml new file mode 100644 index 0000000..99a2375 --- /dev/null +++ b/roles/metrics/tasks/main.yml @@ -0,0 +1,74 @@ +--- +- name: Install PCP and optional PMDAs + ansible.builtin.package: + name: "{{ ['foreman-pcp', 'pcp'] + foreman_metrics_pcp_additional_packages + foreman_metrics_pcp_optional_agent_packages }}" + state: present + disable_plugin: "{{ 'foreman-protector' if ansible_os_family == 'RedHat' else omit }}" + +- name: Read pmcd.conf + ansible.builtin.slurp: + src: /etc/pcp/pmcd/pmcd.conf + register: __foreman_pmcd_conf + +# see https://pcp.readthedocs.io/en/latest/UAG/InstallingAndConfiguringPcp.html#managing-optional-pmdas +- name: Ensure optional metric collection agents are enabled + ansible.builtin.file: + path: "/var/lib/pcp/pmdas/{{ item }}/.NeedInstall" + mode: u=rw,g=r,o=r + state: touch + vars: + __foreman_pmcd_enabled_pmdas: "{{ __foreman_pmcd_conf['content'] | b64decode | split('\n') | select('contains', 'pcp/pmdas') | map('split') | map('first') }}" + loop: "{{ foreman_metrics_pcp_optional_agents }}" + when: item not in __foreman_pmcd_enabled_pmdas + notify: + - Restart pmcd + - Restart pmproxy + - Restart pmlogger + +- name: Configure OpenMetrics PMDA to read Foreman metrics + ansible.builtin.copy: + dest: /var/lib/pcp/pmdas/openmetrics/config.d/foreman.url + content: "{{ foreman_metrics_url }}" + mode: '0644' + notify: + - Restart pmcd + - Restart pmproxy + - Restart pmlogger + +- name: Configure hotproc PMDA to monitor Foreman processes + ansible.builtin.file: + path: /var/lib/pcp/pmdas/proc/hotproc.conf + src: /etc/pcp/proc/foreman-hotproc.conf + state: link + notify: + - Restart pmcd + - Restart pmproxy + - Restart pmlogger + +- name: Enable pmcd + ansible.builtin.service: + name: pmcd + state: started + enabled: true + +- name: Enable pmproxy + ansible.builtin.service: + name: pmproxy + state: started + enabled: true + +- name: Enable pmlogger + ansible.builtin.service: + name: pmlogger + state: started + enabled: true + +- name: Enable pmie + ansible.builtin.service: + name: pmie + state: started + enabled: true + +- name: Include Grafana tasks + ansible.builtin.include_tasks: grafana.yml + when: foreman_metrics_grafana_enabled diff --git a/roles/metrics/templates/grafana-pcp-datasources.yaml.j2 b/roles/metrics/templates/grafana-pcp-datasources.yaml.j2 new file mode 100644 index 0000000..05bfeca --- /dev/null +++ b/roles/metrics/templates/grafana-pcp-datasources.yaml.j2 @@ -0,0 +1,23 @@ +--- +apiVersion: 1 + +datasources: +- name: PCP Vector + type: pcp-vector-datasource + access: proxy + orgId: 1 + url: {{ foreman_metrics_grafana_pmproxy_url }} + editable: true + isDefault: true +- name: PCP Redis + type: pcp-redis-datasource + access: proxy + orgId: 1 + url: {{ foreman_metrics_grafana_pmproxy_url }} + editable: true +- name: PCP bpftrace + type: pcp-bpftrace-datasource + access: proxy + orgId: 1 + url: {{ foreman_metrics_grafana_pmproxy_url }} + editable: true From d08376f2925903776ee1c91f4e6ad8d8569a6b17 Mon Sep 17 00:00:00 2001 From: Chris Roberts Date: Tue, 19 Dec 2023 10:40:23 -0500 Subject: [PATCH 15/33] SAT-21628 - Remove receptor cleanup steps inconfigure cloud connector --- .../tasks/cleanup_receptor.yml | 49 ------------------- roles/cloud_connector/tasks/main.yml | 3 -- 2 files changed, 52 deletions(-) delete mode 100644 roles/cloud_connector/tasks/cleanup_receptor.yml diff --git a/roles/cloud_connector/tasks/cleanup_receptor.yml b/roles/cloud_connector/tasks/cleanup_receptor.yml deleted file mode 100644 index 3ef4b29..0000000 --- a/roles/cloud_connector/tasks/cleanup_receptor.yml +++ /dev/null @@ -1,49 +0,0 @@ ---- -- name: Identify Satellite ID from Satellite - ansible.builtin.uri: - url: "{{ foreman_cloud_connector_url }}/api/settings?search=name%20%3D%20instance_id" - user: "{{ foreman_cloud_connector_user }}" - password: "{{ foreman_cloud_connector_password }}" - return_content: true - validate_certs: true - force_basic_auth: true - register: foreman_uuid_json - -- name: Find receptor configs - ansible.builtin.find: - paths: /etc/receptor - file_type: directory - register: __foreman_receptor_configs - -- name: Delete sources - ansible.builtin.include_tasks: delete_source.yml - loop: "{{ __foreman_receptor_configs['files'] }}" - -- name: Collect service facts - ansible.builtin.service_facts: - -- name: Stop any receptor services - ansible.builtin.service: - state: stopped - enabled: false - name: "{{ item.name }}" - loop: "{{ ansible_facts.services.values() | selectattr('name', 'regex', 'receptor\\@.+.service') | list }}" - -- name: Remove receptor packages - ansible.builtin.yum: - state: absent - name: - - receptor - - python3-receptor-satellite - - ansiblerole-satellite-receptor-installer - disable_plugin: foreman-protector - -- name: Cleanup receptor config - ansible.builtin.file: - state: absent - path: /etc/receptor - -- name: Remove receptor service file - ansible.builtin.file: - state: absent - path: /etc/systemd/system/receptor@.service diff --git a/roles/cloud_connector/tasks/main.yml b/roles/cloud_connector/tasks/main.yml index 139360c..8f85dac 100644 --- a/roles/cloud_connector/tasks/main.yml +++ b/roles/cloud_connector/tasks/main.yml @@ -63,6 +63,3 @@ - name: Configure HTTP proxy ansible.builtin.include_tasks: http_proxy.yml when: foreman_cloud_connector_http_proxy is defined - -- name: Cleanup receptor - ansible.builtin.include_tasks: cleanup_receptor.yml From 5983e250ecfd50f0a6368d09d99ba7c5b7216ab5 Mon Sep 17 00:00:00 2001 From: Evgeni Golov Date: Tue, 5 Mar 2024 09:04:24 +0100 Subject: [PATCH 16/33] only enable powertools for Katello < 4.10 4.10+ has no katello-agent support and no need for powertools --- roles/foreman_repositories/tasks/redhat.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/roles/foreman_repositories/tasks/redhat.yml b/roles/foreman_repositories/tasks/redhat.yml index 0471548..55ab2f7 100644 --- a/roles/foreman_repositories/tasks/redhat.yml +++ b/roles/foreman_repositories/tasks/redhat.yml @@ -36,6 +36,8 @@ - name: Enable powertools for Katello when: - foreman_repositories_katello_version is defined + - foreman_repositories_katello_version != 'nightly' + - foreman_repositories_katello_version is version('4.10', '<') - ansible_distribution_major_version == '8' block: - name: Install dnf-config-manager From 40cb65d811fe1fc4350d3b184da3853f93610196 Mon Sep 17 00:00:00 2001 From: Evgeni Golov Date: Tue, 5 Mar 2024 08:58:43 +0100 Subject: [PATCH 17/33] Drop CentOS 7 support --- changelogs/fragments/drop-el7.yml | 2 ++ roles/foreman_repositories/tasks/redhat.yml | 11 ----------- 2 files changed, 2 insertions(+), 11 deletions(-) create mode 100644 changelogs/fragments/drop-el7.yml diff --git a/changelogs/fragments/drop-el7.yml b/changelogs/fragments/drop-el7.yml new file mode 100644 index 0000000..ecf36cc --- /dev/null +++ b/changelogs/fragments/drop-el7.yml @@ -0,0 +1,2 @@ +breaking_changes: + - foreman_repositories role - drop support for CentOS 7 repositories diff --git a/roles/foreman_repositories/tasks/redhat.yml b/roles/foreman_repositories/tasks/redhat.yml index 55ab2f7..7fe8b3c 100644 --- a/roles/foreman_repositories/tasks/redhat.yml +++ b/roles/foreman_repositories/tasks/redhat.yml @@ -1,15 +1,4 @@ --- -- name: 'Install centos-release-scl-rh on CentOS7' # noqa package-latest - ansible.builtin.yum: - name: centos-release-scl-rh - state: latest - update_cache: true - tags: - - packages - when: - - ansible_distribution == 'CentOS' - - ansible_distribution_major_version == '7' - - name: 'Setup repository for Foreman {{ foreman_repositories_version }}' ansible.builtin.yum: name: https://yum.theforeman.org/releases/{{ foreman_repositories_version }}/el{{ ansible_distribution_major_version }}/x86_64/foreman-release.rpm From a87b4cd47c44ab42deb6a7bc1cc5066e20563b44 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Mar 2024 00:56:11 +0000 Subject: [PATCH 18/33] Bump softprops/action-gh-release from 1 to 2 Bumps [softprops/action-gh-release](https://github.com/softprops/action-gh-release) from 1 to 2. - [Release notes](https://github.com/softprops/action-gh-release/releases) - [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md) - [Commits](https://github.com/softprops/action-gh-release/compare/v1...v2) --- updated-dependencies: - dependency-name: softprops/action-gh-release dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index ba5c3d5..2bcb153 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -22,6 +22,6 @@ jobs: - name: Deploy Ansible Collection run: make publish GALAXY_API_KEY=${{ secrets.GALAXY_API_KEY }} - name: Create GitHub Release - uses: softprops/action-gh-release@v1 + uses: softprops/action-gh-release@v2 with: files: theforeman-operations-*.tar.gz From 3c34a12c97f93a87fde4e7750c6e1d4eda4c5018 Mon Sep 17 00:00:00 2001 From: Jeremy Audet Date: Fri, 15 Mar 2024 15:41:33 -0400 Subject: [PATCH 19/33] Restart rhcd after writing out config file Restart rhcd.service after writing `/etc/rhc/workers/foreman_rh_cloud.toml`. This ensures that rhcd.service reads the latest values from that file. Fix: https://issues.redhat.com/browse/SAT-23989 --- roles/cloud_connector/tasks/main.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/roles/cloud_connector/tasks/main.yml b/roles/cloud_connector/tasks/main.yml index 8f85dac..2dbcd1b 100644 --- a/roles/cloud_connector/tasks/main.yml +++ b/roles/cloud_connector/tasks/main.yml @@ -21,6 +21,8 @@ owner: root group: root mode: '0640' + notify: + - Restart rhcd - name: Create rhcd worker ansible.builtin.copy: From e9effd0450ace43938a94ebdf83c3372e0ab2463 Mon Sep 17 00:00:00 2001 From: Evgeni Golov Date: Wed, 13 Mar 2024 13:10:34 +0100 Subject: [PATCH 20/33] Add Puppet 7 and 8 to the list of supported releases --- roles/puppet_repositories/vars/main.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/roles/puppet_repositories/vars/main.yml b/roles/puppet_repositories/vars/main.yml index b2a4cfc..42af1ec 100644 --- a/roles/puppet_repositories/vars/main.yml +++ b/roles/puppet_repositories/vars/main.yml @@ -1,3 +1,5 @@ foreman_puppet_repositories_supported_versions: - "5" - "6" + - "7" + - "8" From b0eb7d87f5d810498faed104c0ba873a857b7bff Mon Sep 17 00:00:00 2001 From: Evgeni Golov Date: Mon, 18 Mar 2024 12:09:00 +0100 Subject: [PATCH 21/33] Drop Puppet 5 repository support --- roles/puppet_repositories/vars/main.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/roles/puppet_repositories/vars/main.yml b/roles/puppet_repositories/vars/main.yml index 42af1ec..9d9d773 100644 --- a/roles/puppet_repositories/vars/main.yml +++ b/roles/puppet_repositories/vars/main.yml @@ -1,5 +1,4 @@ foreman_puppet_repositories_supported_versions: - - "5" - "6" - "7" - "8" From 0a973f563f367ca616188d488aa2c31915da119d Mon Sep 17 00:00:00 2001 From: Evgeni Golov Date: Tue, 26 Mar 2024 16:34:46 +0100 Subject: [PATCH 22/33] always require foreman_repositories_version to be set --- changelogs/fragments/drop-default-repo.yml | 2 ++ roles/foreman_repositories/defaults/main.yml | 2 -- roles/foreman_repositories/molecule/debian/converge.yml | 2 ++ roles/foreman_repositories/tasks/main.yml | 6 ++++++ roles/installer/molecule/default/prepare.yml | 2 ++ 5 files changed, 12 insertions(+), 2 deletions(-) create mode 100644 changelogs/fragments/drop-default-repo.yml delete mode 100644 roles/foreman_repositories/defaults/main.yml diff --git a/changelogs/fragments/drop-default-repo.yml b/changelogs/fragments/drop-default-repo.yml new file mode 100644 index 0000000..45adfb1 --- /dev/null +++ b/changelogs/fragments/drop-default-repo.yml @@ -0,0 +1,2 @@ +breaking_changes: + - foreman_repositories role - drop default ``foreman_repositories_version``, you now have always to specify which version you want to deploy diff --git a/roles/foreman_repositories/defaults/main.yml b/roles/foreman_repositories/defaults/main.yml deleted file mode 100644 index 9c4952c..0000000 --- a/roles/foreman_repositories/defaults/main.yml +++ /dev/null @@ -1,2 +0,0 @@ ---- -foreman_repositories_version: "3.5" diff --git a/roles/foreman_repositories/molecule/debian/converge.yml b/roles/foreman_repositories/molecule/debian/converge.yml index 76c928f..54ea92e 100644 --- a/roles/foreman_repositories/molecule/debian/converge.yml +++ b/roles/foreman_repositories/molecule/debian/converge.yml @@ -2,5 +2,7 @@ - name: Converge hosts: all gather_facts: true + vars: + foreman_repositories_version: "3.5" roles: - foreman_repositories diff --git a/roles/foreman_repositories/tasks/main.yml b/roles/foreman_repositories/tasks/main.yml index 5eb70d7..56c340c 100644 --- a/roles/foreman_repositories/tasks/main.yml +++ b/roles/foreman_repositories/tasks/main.yml @@ -1,3 +1,9 @@ --- +- name: Verify that foreman_repositories_version is defined + ansible.builtin.assert: + that: + - foreman_repositories_version is defined + fail_msg: foreman_repositories_version must be defined for this role to work + - name: Load OS specific repository tasks ansible.builtin.include_tasks: "{{ ansible_os_family | lower }}.yml" diff --git a/roles/installer/molecule/default/prepare.yml b/roles/installer/molecule/default/prepare.yml index e7d69c8..07513c8 100644 --- a/roles/installer/molecule/default/prepare.yml +++ b/roles/installer/molecule/default/prepare.yml @@ -10,6 +10,8 @@ - name: Configure Foreman repositories ansible.builtin.include_role: name: foreman_repositories + vars: + foreman_repositories_version: "3.5" - name: Ensure langpacks on EL8 ansible.builtin.dnf: name: glibc-langpack-en From da165acb83aa4943da38f516c5affbe37cdfd121 Mon Sep 17 00:00:00 2001 From: Evgeni Golov Date: Tue, 26 Mar 2024 10:46:43 +0100 Subject: [PATCH 23/33] Release 3.0.0 --- CHANGELOG.rst | 21 ++++++++++++++ changelogs/changelog.yaml | 28 +++++++++++++++++++ changelogs/fragments/add-metrics-role.yml | 2 -- changelogs/fragments/drop-default-repo.yml | 2 -- changelogs/fragments/drop-el7.yml | 2 -- changelogs/fragments/drop-foreman-pre-3.2.yml | 2 -- .../drop-postgresql_upgrade-role.yml | 2 -- .../pulpcore-module-only-up-to-410.yml | 3 -- galaxy.yml | 4 ++- 9 files changed, 52 insertions(+), 14 deletions(-) delete mode 100644 changelogs/fragments/add-metrics-role.yml delete mode 100644 changelogs/fragments/drop-default-repo.yml delete mode 100644 changelogs/fragments/drop-el7.yml delete mode 100644 changelogs/fragments/drop-foreman-pre-3.2.yml delete mode 100644 changelogs/fragments/drop-postgresql_upgrade-role.yml delete mode 100644 changelogs/fragments/pulpcore-module-only-up-to-410.yml diff --git a/CHANGELOG.rst b/CHANGELOG.rst index e3073e6..4fb472e 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -4,6 +4,27 @@ theforeman.operations Release Notes .. contents:: Topics +v3.0.0 +====== + +Minor Changes +------------- + +- cloud_connector role - Remove receptor cleanup steps in configure cloud connector +- cloud_connector role - Restart rhcd after writing out config file +- foreman_repositories role - disable Pulpcore module on upgrades to Katello 4.11+ +- foreman_repositories role - only enable the Pulpcore module for Katello up to 4.10, later versions use demodularized Pulpcore repos +- metrics role - new role to setup PCP integration with Foreman 3.9 and newer +- puppet_repositories role - Add support for Puppet 7 and 8 + +Breaking Changes / Porting Guide +-------------------------------- + +- foreman_repositories role - drop default ``foreman_repositories_version``, you now have always to specify which version you want to deploy +- foreman_repositories role - drop support for CentOS 7 repositories +- foreman_repositories role - drop support for Foreman pre 3.2 / Katello pre 4.4 repositories +- postgresql_upgrade role - removed the role as it was only needed for Foreman before 2.5 +- puppet_repositories role - Drop support for Puppet 5 v2.1.0 ====== diff --git a/changelogs/changelog.yaml b/changelogs/changelog.yaml index 2b744e5..00377fd 100644 --- a/changelogs/changelog.yaml +++ b/changelogs/changelog.yaml @@ -81,3 +81,31 @@ releases: release_date: '2023-05-08' 2.1.0: release_date: '2023-09-01' + 3.0.0: + changes: + breaking_changes: + - foreman_repositories role - drop default ``foreman_repositories_version``, + you now have always to specify which version you want to deploy + - foreman_repositories role - drop support for CentOS 7 repositories + - foreman_repositories role - drop support for Foreman pre 3.2 / Katello pre + 4.4 repositories + - postgresql_upgrade role - removed the role as it was only needed for Foreman + before 2.5 + - puppet_repositories role - Drop support for Puppet 5 + minor_changes: + - cloud_connector role - Remove receptor cleanup steps in configure cloud connector + - cloud_connector role - Restart rhcd after writing out config file + - foreman_repositories role - disable Pulpcore module on upgrades to Katello + 4.11+ + - foreman_repositories role - only enable the Pulpcore module for Katello up + to 4.10, later versions use demodularized Pulpcore repos + - metrics role - new role to setup PCP integration with Foreman 3.9 and newer + - puppet_repositories role - Add support for Puppet 7 and 8 + fragments: + - add-metrics-role.yml + - drop-default-repo.yml + - drop-el7.yml + - drop-foreman-pre-3.2.yml + - drop-postgresql_upgrade-role.yml + - pulpcore-module-only-up-to-410.yml + release_date: '2024-04-08' diff --git a/changelogs/fragments/add-metrics-role.yml b/changelogs/fragments/add-metrics-role.yml deleted file mode 100644 index f8a8185..0000000 --- a/changelogs/fragments/add-metrics-role.yml +++ /dev/null @@ -1,2 +0,0 @@ -minor_changes: - - metrics role - new role to setup PCP integration with Foreman 3.9 and newer diff --git a/changelogs/fragments/drop-default-repo.yml b/changelogs/fragments/drop-default-repo.yml deleted file mode 100644 index 45adfb1..0000000 --- a/changelogs/fragments/drop-default-repo.yml +++ /dev/null @@ -1,2 +0,0 @@ -breaking_changes: - - foreman_repositories role - drop default ``foreman_repositories_version``, you now have always to specify which version you want to deploy diff --git a/changelogs/fragments/drop-el7.yml b/changelogs/fragments/drop-el7.yml deleted file mode 100644 index ecf36cc..0000000 --- a/changelogs/fragments/drop-el7.yml +++ /dev/null @@ -1,2 +0,0 @@ -breaking_changes: - - foreman_repositories role - drop support for CentOS 7 repositories diff --git a/changelogs/fragments/drop-foreman-pre-3.2.yml b/changelogs/fragments/drop-foreman-pre-3.2.yml deleted file mode 100644 index f6130be..0000000 --- a/changelogs/fragments/drop-foreman-pre-3.2.yml +++ /dev/null @@ -1,2 +0,0 @@ -breaking_changes: - - foreman_repositories role - drop support for Foreman pre 3.2 / Katello pre 4.4 repositories diff --git a/changelogs/fragments/drop-postgresql_upgrade-role.yml b/changelogs/fragments/drop-postgresql_upgrade-role.yml deleted file mode 100644 index 1242f98..0000000 --- a/changelogs/fragments/drop-postgresql_upgrade-role.yml +++ /dev/null @@ -1,2 +0,0 @@ -breaking_changes: - - postgresql_upgrade role - removed the role as it was only needed for Foreman before 2.5 diff --git a/changelogs/fragments/pulpcore-module-only-up-to-410.yml b/changelogs/fragments/pulpcore-module-only-up-to-410.yml deleted file mode 100644 index a75e423..0000000 --- a/changelogs/fragments/pulpcore-module-only-up-to-410.yml +++ /dev/null @@ -1,3 +0,0 @@ -minor_changes: - - foreman_repositories role - only enable the Pulpcore module for Katello up to 4.10, later versions use demodularized Pulpcore repos - - foreman_repositories role - disable Pulpcore module on upgrades to Katello 4.11+ diff --git a/galaxy.yml b/galaxy.yml index 5df7a39..36258a1 100644 --- a/galaxy.yml +++ b/galaxy.yml @@ -3,16 +3,18 @@ name: "operations" description: Foreman operations tasks such as install, upgrade and maintenance authors: - "Baptiste Agasse " + - "Chris Roberts " - "Eric D. Helms " - "Evgeni Golov " - "Ewoud Kohl van Wijngaarden " + - "Griffin Sullivan " - "Jeffrey van Pelt " - "Jeremy Audet " - "Kyle Williams " - "Matthias Dellweg <2500@gmx.de>" - "Robert Rettig " - "willtome " -version: "2.1.0" +version: "3.0.0" license: - "GPL-3.0-or-later" tags: From a71b4c724c7e8b6b2c2323d8f2135df39a7ce1d1 Mon Sep 17 00:00:00 2001 From: Evgeni Golov Date: Mon, 8 Apr 2024 10:55:39 +0200 Subject: [PATCH 24/33] bump requires_ansible to >=2.14.0 as required for certified collections --- .github/workflows/main.yml | 18 ------------------ meta/runtime.yml | 2 +- 2 files changed, 1 insertion(+), 19 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index de12a61..2d118b7 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -25,10 +25,6 @@ jobs: - stable-2.16 - devel include: - - python: "3.8" - ansible: "stable-2.12" - - python: "3.9" - ansible: "stable-2.13" - python: "3.10" ansible: "stable-2.14" - python: "3.12" @@ -120,17 +116,6 @@ jobs: - stable-2.14 - stable-2.15 - stable-2.16 - include: - - python: "3.8" - ansible: "v2.9.17" - - python: "3.8" - ansible: "stable-2.10" - - python: "3.9" - ansible: "stable-2.11" - - python: "3.9" - ansible: "stable-2.12" - - python: "3.9" - ansible: "stable-2.13" steps: - uses: actions/checkout@v4 - name: Set up Python @@ -141,9 +126,6 @@ jobs: run: pip install --upgrade https://github.com/ansible/ansible/archive/${{ matrix.ansible }}.tar.gz - name: Install dependencies run: make test-setup - - name: Install Ansible 2.9 compatible molecule and Jinja - run: pip install --upgrade 'molecule[docker,lint]<4.0' 'Jinja2<3.1' - if: matrix.ansible == 'v2.9.17' - name: Run tests env: DRIVER_NAME: docker diff --git a/meta/runtime.yml b/meta/runtime.yml index c3c4642..be99ccf 100644 --- a/meta/runtime.yml +++ b/meta/runtime.yml @@ -1,2 +1,2 @@ --- -requires_ansible: '>=2.9.17' +requires_ansible: '>=2.14.0' From cb266abb4903203cdf2e6f4c618470d5a123ced7 Mon Sep 17 00:00:00 2001 From: Evgeni Golov Date: Mon, 8 Apr 2024 11:00:19 +0200 Subject: [PATCH 25/33] load correct role from upstream collection in prepare tasks --- roles/capsule_certs_generate/molecule/satellite/prepare.yml | 4 ++-- roles/installer/molecule/satellite/prepare.yml | 4 ++-- roles/metrics/molecule/satellite/prepare.yml | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/roles/capsule_certs_generate/molecule/satellite/prepare.yml b/roles/capsule_certs_generate/molecule/satellite/prepare.yml index 97a1287..1d239cf 100644 --- a/roles/capsule_certs_generate/molecule/satellite/prepare.yml +++ b/roles/capsule_certs_generate/molecule/satellite/prepare.yml @@ -6,10 +6,10 @@ tasks: - name: Configure Puppet repositories ansible.builtin.include_role: - name: puppet_repositories + name: theforeman.operations.puppet_repositories - name: Configure Foreman repositories ansible.builtin.include_role: - name: foreman_repositories + name: theforeman.operations.foreman_repositories vars: foreman_repositories_version: "3.8" foreman_repositories_katello_version: "4.10" diff --git a/roles/installer/molecule/satellite/prepare.yml b/roles/installer/molecule/satellite/prepare.yml index 191b259..6cdfdab 100644 --- a/roles/installer/molecule/satellite/prepare.yml +++ b/roles/installer/molecule/satellite/prepare.yml @@ -6,10 +6,10 @@ tasks: - name: Configure Puppet repositories ansible.builtin.include_role: - name: puppet_repositories + name: theforeman.operations.puppet_repositories - name: Configure Foreman repositories ansible.builtin.include_role: - name: foreman_repositories + name: theforeman.operations.foreman_repositories vars: foreman_repositories_version: "3.2" foreman_repositories_katello_version: "4.4" diff --git a/roles/metrics/molecule/satellite/prepare.yml b/roles/metrics/molecule/satellite/prepare.yml index eb34204..d39f93b 100644 --- a/roles/metrics/molecule/satellite/prepare.yml +++ b/roles/metrics/molecule/satellite/prepare.yml @@ -5,7 +5,7 @@ tasks: - name: Configure Foreman rpeositories ansible.builtin.include_role: - name: foreman_repositories + name: theforeman.operations.foreman_repositories vars: foreman_repositories_version: 'nightly' From 96173c94ce9387f71d0bfd678394191b8240948d Mon Sep 17 00:00:00 2001 From: Evgeni Golov Date: Mon, 8 Apr 2024 11:00:33 +0200 Subject: [PATCH 26/33] properlt brand verify task variables --- roles/metrics/molecule/satellite/verify.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/roles/metrics/molecule/satellite/verify.yml b/roles/metrics/molecule/satellite/verify.yml index 8ec45d1..b97e28f 100644 --- a/roles/metrics/molecule/satellite/verify.yml +++ b/roles/metrics/molecule/satellite/verify.yml @@ -11,19 +11,19 @@ - name: Read pmcd.conf ansible.builtin.slurp: src: /etc/pcp/pmcd/pmcd.conf - register: __foreman_pmcd_conf + register: __satellite_pmcd_conf - name: Ensure optional metric collection agents are enabled ansible.builtin.assert: that: - - item in __foreman_pmcd_enabled_pmdas + - item in __satellite_pmcd_enabled_pmdas loop: - apache - openmetrics - postgresql - redis vars: - __foreman_pmcd_enabled_pmdas: "{{ __foreman_pmcd_conf['content'] | b64decode | split('\n') | select('contains', 'pcp/pmdas') | map('split') | map('first') }}" + __satellite_pmcd_enabled_pmdas: "{{ __satellite_pmcd_conf['content'] | b64decode | split('\n') | select('contains', 'pcp/pmdas') | map('split') | map('first') }}" - name: Ensure Grafana is installed ansible.builtin.package: @@ -38,9 +38,9 @@ - name: List installed Grafana plugins ansible.builtin.command: grafana-cli plugins ls changed_when: false - register: __foreman_grafana_plugins + register: __satellite_grafana_plugins - name: Ensure PCP plugin is installed ansible.builtin.assert: that: - - "'performancecopilot-pcp-app' in __foreman_grafana_plugins.stdout" + - "'performancecopilot-pcp-app' in __satellite_grafana_plugins.stdout" From 01bfd3e3ec450bb008e91ac792e31745c4f8f53e Mon Sep 17 00:00:00 2001 From: Evgeni Golov Date: Mon, 8 Apr 2024 11:04:40 +0200 Subject: [PATCH 27/33] make ansible-lint happy again --- roles/capsule_certs_generate/molecule/satellite/prepare.yml | 2 +- roles/installer/molecule/satellite/prepare.yml | 2 +- roles/metrics/molecule/satellite/prepare.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/roles/capsule_certs_generate/molecule/satellite/prepare.yml b/roles/capsule_certs_generate/molecule/satellite/prepare.yml index 1d239cf..791835e 100644 --- a/roles/capsule_certs_generate/molecule/satellite/prepare.yml +++ b/roles/capsule_certs_generate/molecule/satellite/prepare.yml @@ -7,7 +7,7 @@ - name: Configure Puppet repositories ansible.builtin.include_role: name: theforeman.operations.puppet_repositories - - name: Configure Foreman repositories + - name: Configure Foreman repositories # noqa: var-naming[pattern] ansible.builtin.include_role: name: theforeman.operations.foreman_repositories vars: diff --git a/roles/installer/molecule/satellite/prepare.yml b/roles/installer/molecule/satellite/prepare.yml index 6cdfdab..09f2b9d 100644 --- a/roles/installer/molecule/satellite/prepare.yml +++ b/roles/installer/molecule/satellite/prepare.yml @@ -7,7 +7,7 @@ - name: Configure Puppet repositories ansible.builtin.include_role: name: theforeman.operations.puppet_repositories - - name: Configure Foreman repositories + - name: Configure Foreman repositories # noqa: var-naming[pattern] ansible.builtin.include_role: name: theforeman.operations.foreman_repositories vars: diff --git a/roles/metrics/molecule/satellite/prepare.yml b/roles/metrics/molecule/satellite/prepare.yml index d39f93b..64744e7 100644 --- a/roles/metrics/molecule/satellite/prepare.yml +++ b/roles/metrics/molecule/satellite/prepare.yml @@ -3,7 +3,7 @@ hosts: all gather_facts: true tasks: - - name: Configure Foreman rpeositories + - name: Configure Foreman rpeositories # noqa: var-naming[pattern] ansible.builtin.include_role: name: theforeman.operations.foreman_repositories vars: From 5508a69b11009c7940b7a6deebb69515e7a1dd35 Mon Sep 17 00:00:00 2001 From: Evgeni Golov Date: Mon, 8 Apr 2024 11:10:44 +0200 Subject: [PATCH 28/33] fix c-c-generate role prepare to have faked installer --- roles/capsule_certs_generate/molecule/satellite/prepare.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/roles/capsule_certs_generate/molecule/satellite/prepare.yml b/roles/capsule_certs_generate/molecule/satellite/prepare.yml index 791835e..9b14897 100644 --- a/roles/capsule_certs_generate/molecule/satellite/prepare.yml +++ b/roles/capsule_certs_generate/molecule/satellite/prepare.yml @@ -13,6 +13,9 @@ vars: foreman_repositories_version: "3.8" foreman_repositories_katello_version: "4.10" + - name: Setup fake installer + ansible.builtin.include_role: + name: fake_installer_rpm - name: Ensure langpacks on EL8 ansible.builtin.dnf: name: glibc-langpack-en From 3de0c8f310685f920970a8e81739fedbdba2de2c Mon Sep 17 00:00:00 2001 From: Evgeni Golov Date: Mon, 8 Apr 2024 11:12:28 +0200 Subject: [PATCH 29/33] use foreman 3.2/katello 4.4 for fake installer --- roles/fake_installer_rpm/molecule/satellite/prepare.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/roles/fake_installer_rpm/molecule/satellite/prepare.yml b/roles/fake_installer_rpm/molecule/satellite/prepare.yml index e0c1445..f57d9f8 100644 --- a/roles/fake_installer_rpm/molecule/satellite/prepare.yml +++ b/roles/fake_installer_rpm/molecule/satellite/prepare.yml @@ -7,5 +7,5 @@ - theforeman.operations.puppet_repositories - role: theforeman.operations.foreman_repositories vars: - foreman_repositories_version: "2.4" - foreman_repositories_katello_version: "4.0" + foreman_repositories_version: "3.2" + foreman_repositories_katello_version: "4.4" From fcc088bf084299332c46fbc21ec5948d44573d75 Mon Sep 17 00:00:00 2001 From: Evgeni Golov Date: Mon, 8 Apr 2024 11:15:09 +0200 Subject: [PATCH 30/33] more noqa for ansible-lint --- roles/fake_installer_rpm/molecule/satellite/prepare.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/roles/fake_installer_rpm/molecule/satellite/prepare.yml b/roles/fake_installer_rpm/molecule/satellite/prepare.yml index f57d9f8..e6e29a5 100644 --- a/roles/fake_installer_rpm/molecule/satellite/prepare.yml +++ b/roles/fake_installer_rpm/molecule/satellite/prepare.yml @@ -7,5 +7,5 @@ - theforeman.operations.puppet_repositories - role: theforeman.operations.foreman_repositories vars: - foreman_repositories_version: "3.2" - foreman_repositories_katello_version: "4.4" + foreman_repositories_version: "3.2" # noqa: var-naming[pattern] + foreman_repositories_katello_version: "4.4" # noqa: var-naming[pattern] From 0e37eaa416069374833956cf38382f478aa9b6a6 Mon Sep 17 00:00:00 2001 From: Evgeni Golov Date: Mon, 8 Apr 2024 11:45:08 +0200 Subject: [PATCH 31/33] metrics role needs upstream collection --- roles/metrics/molecule/satellite/collections.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/roles/metrics/molecule/satellite/collections.yml b/roles/metrics/molecule/satellite/collections.yml index 03425ca..a2b40f2 100644 --- a/roles/metrics/molecule/satellite/collections.yml +++ b/roles/metrics/molecule/satellite/collections.yml @@ -3,3 +3,4 @@ collections: version: ">=3,<4" - name: community.general version: ">=2,<3" + - name: theforeman.operations From 6cda5982bd08b1e4eb4f9b59e6edf35315e4e6cd Mon Sep 17 00:00:00 2001 From: Evgeni Golov Date: Mon, 8 Apr 2024 11:45:46 +0200 Subject: [PATCH 32/33] fix typo in metrics readme --- roles/metrics/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/metrics/README.md b/roles/metrics/README.md index 1d5557a..0c1e4ff 100644 --- a/roles/metrics/README.md +++ b/roles/metrics/README.md @@ -1,7 +1,7 @@ redhat.satellite_operations.metrics ============================= -Setup Performace Co-Pilot and Grafana to gather metrics of a Satellite installation. +Setup Performance Co-Pilot and Grafana to gather metrics of a Satellite installation. This role is heavily based on the [performancecopilot.metrics](https://github.com/performancecopilot/ansible-pcp) collection. From 74d888d2a775573a255a46ed7433d779b870aba7 Mon Sep 17 00:00:00 2001 From: Evgeni Golov Date: Mon, 8 Apr 2024 12:11:17 +0200 Subject: [PATCH 33/33] don't make publish, we don't have that set up for this collection --- .github/workflows/release.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d426033..ac8eff0 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -19,8 +19,6 @@ jobs: run: pip install --upgrade ansible - name: Build Ansible Collection run: make dist - - name: Deploy Ansible Collection - run: make publish GALAXY_API_KEY=${{ secrets.GALAXY_API_KEY }} - name: Create GitHub Release uses: softprops/action-gh-release@v2 with: