From 431a8dfbc073317d64281cb0ac97e9d1b3afb8c9 Mon Sep 17 00:00:00 2001 From: Paula Muir Date: Mon, 26 Apr 2021 21:07:55 +0100 Subject: [PATCH 1/5] (maint) Running a pdk update to consume latest pdk-template changes --- .github/workflows/auto_release.yml | 13 +++++++++---- .github/workflows/nightly.yml | 30 ++++++++++++++++++++---------- .github/workflows/pr_test.yml | 29 +++++++++++++++++++---------- .gitignore | 1 + .gitpod.yml | 2 +- .pdkignore | 2 ++ .travis.yml | 4 ++++ Gemfile | 10 ---------- metadata.json | 4 ++-- spec/spec_helper.rb | 4 ++++ 10 files changed, 62 insertions(+), 37 deletions(-) diff --git a/.github/workflows/auto_release.yml b/.github/workflows/auto_release.yml index a88b99ca1..d15d148d9 100644 --- a/.github/workflows/auto_release.yml +++ b/.github/workflows/auto_release.yml @@ -36,7 +36,7 @@ jobs: persist-credentials: false - name: "PDK Release prep" - uses: docker://puppet/pdk:nightly + uses: docker://puppet/iac_release:ci with: args: 'release prep --force' env: @@ -46,12 +46,12 @@ jobs: if: ${{ github.repository_owner == 'puppetlabs' }} id: gv run: | - echo "::set-output name=ver::$(cat metadata.json | jq .version | tr -d \")" + echo "::set-output name=ver::$(jq --raw-output .version metadata.json)" - name: "Commit changes" if: ${{ github.repository_owner == 'puppetlabs' }} run: | - git config --local user.email "action@github.com" + git config --local user.email "${{ github.repository_owner }}@users.noreply.github.com" git config --local user.name "GitHub Action" git add . git commit -m "Release prep v${{ steps.gv.outputs.ver }}" @@ -66,7 +66,12 @@ jobs: branch: "release-prep" delete-branch: true title: "Release prep v${{ steps.gv.outputs.ver }}" - body: "Automated release-prep through [pdk-templates](https://github.com/puppetlabs/pdk-templates/blob/main/moduleroot/.github/workflows/auto_release.yml.erb)" + body: | + Automated release-prep through [pdk-templates](https://github.com/puppetlabs/pdk-templates/blob/main/moduleroot/.github/workflows/auto_release.yml.erb) from commit ${{ github.sha }}. + Please verify before merging: + - [ ] last [nightly](https://github.com/${{ github.repository }}/actions/workflows/nightly.yml) run is green + - [ ] [Changelog](https://github.com/${{ github.repository }}/blob/release-prep/CHANGELOG.md) is readable and has no unlabeled pull requests + - [ ] Ensure the [changelog](https://github.com/${{ github.repository }}/blob/release-prep/CHANGELOG.md) version and [metadata](https://github.com/${{ github.repository }}/blob/release-prep/metadata.json) version match labels: "maintenance" - name: PR outputs diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 0c1fd28b9..865578cfd 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -58,7 +58,7 @@ jobs: if: ${{ github.repository_owner == 'puppetlabs' }} run: | if [ '${{ github.repository_owner }}' == 'puppetlabs' ]; then - buildevents cmd $TRACE_ID $STEP_ID matrix_from_metadata -- bundle exec matrix_from_metadata + buildevents cmd $TRACE_ID $STEP_ID matrix_from_metadata -- bundle exec matrix_from_metadata_v2 else echo "::set-output name=matrix::{}" fi @@ -69,6 +69,7 @@ jobs: buildevents step $TRACE_ID $STEP_ID $STEP_START 'Setup Test Matrix' Acceptance: + name: "${{matrix.platforms.label}}, ${{matrix.collection}}" needs: - setup_matrix @@ -82,8 +83,10 @@ jobs: steps: - run: | - echo 'platform=${{ matrix.platform }}' >> $BUILDEVENT_FILE + echo 'platform=${{ matrix.platforms.image }}' >> $BUILDEVENT_FILE echo 'collection=${{ matrix.collection }}' >> $BUILDEVENT_FILE + echo 'label=${{ matrix.platforms.label }}' >> $BUILDEVENT_FILE + - name: "Honeycomb: Start recording" uses: puppetlabs/kvrhdn-gha-buildevents@pdk-templates-v1 @@ -91,11 +94,11 @@ jobs: apikey: ${{ env.HONEYCOMB_WRITEKEY }} dataset: ${{ env.HONEYCOMB_DATASET }} job-status: ${{ job.status }} - matrix-key: ${{ matrix.platform }}-${{ matrix.collection }} + matrix-key: ${{ matrix.platforms.label }}-${{ matrix.collection }} - name: "Honeycomb: start first step" run: | - echo STEP_ID=${{ matrix.platform }}-${{ matrix.collection }}-1 >> $GITHUB_ENV + echo STEP_ID=${{ matrix.platforms.image }}-${{ matrix.collection }}-1 >> $GITHUB_ENV echo STEP_START=$(date +%s) >> $GITHUB_ENV - name: Checkout Source @@ -117,18 +120,25 @@ jobs: if: ${{ always() }} run: | buildevents step $TRACE_ID $STEP_ID $STEP_START 'Setup Environment' - echo STEP_ID=${{ matrix.platform }}-${{ matrix.collection }}-2 >> $GITHUB_ENV + echo STEP_ID=${{ matrix.platforms.image }}-${{ matrix.collection }}-2 >> $GITHUB_ENV echo STEP_START=$(date +%s) >> $GITHUB_ENV - name: Provision test environment run: | - buildevents cmd $TRACE_ID $STEP_ID 'rake litmus:provision ${{ matrix.platform }}' -- bundle exec rake 'litmus:provision[provision::provision_service,${{ matrix.platform }}]' + buildevents cmd $TRACE_ID $STEP_ID 'rake litmus:provision ${{ matrix.platforms.image }}' -- bundle exec rake 'litmus:provision[${{matrix.platforms.provider}},${{ matrix.platforms.image }}]' echo ::group::=== REQUEST === cat request.json || true echo echo ::endgroup:: echo ::group::=== INVENTORY === - sed -e 's/password: .*/password: "[redacted]"/' < inventory.yaml || true + if [ -f 'spec/fixtures/litmus_inventory.yaml' ]; + then + FILE='spec/fixtures/litmus_inventory.yaml' + elif [ -f 'inventory.yaml' ]; + then + FILE='inventory.yaml' + fi + sed -e 's/password: .*/password: "[redacted]"/' < $FILE || true echo ::endgroup:: - name: Install agent @@ -144,7 +154,7 @@ jobs: run: | echo ::group::honeycomb step buildevents step $TRACE_ID $STEP_ID $STEP_START 'Deploy test system' - echo STEP_ID=${{ matrix.platform }}-${{ matrix.collection }}-3 >> $GITHUB_ENV + echo STEP_ID=${{ matrix.platforms.image }}-${{ matrix.collection }}-3 >> $GITHUB_ENV echo STEP_START=$(date +%s) >> $GITHUB_ENV echo ::endgroup:: @@ -156,14 +166,14 @@ jobs: if: ${{ always() }} run: | buildevents step $TRACE_ID $STEP_ID $STEP_START 'Run acceptance tests' - echo STEP_ID=${{ matrix.platform }}-${{ matrix.collection }}-4 >> $GITHUB_ENV + echo STEP_ID=${{ matrix.platforms.image }}-${{ matrix.collection }}-4 >> $GITHUB_ENV echo STEP_START=$(date +%s) >> $GITHUB_ENV - name: Remove test environment if: ${{ always() }} continue-on-error: true run: | - if [ -f inventory.yaml ]; then + if [[ -f inventory.yaml || -f spec/fixtures/litmus_inventory.yaml ]]; then buildevents cmd $TRACE_ID $STEP_ID 'rake litmus:tear_down' -- bundle exec rake 'litmus:tear_down' echo ::group::=== REQUEST === cat request.json || true diff --git a/.github/workflows/pr_test.yml b/.github/workflows/pr_test.yml index 207dfcadd..69e414b55 100644 --- a/.github/workflows/pr_test.yml +++ b/.github/workflows/pr_test.yml @@ -55,7 +55,7 @@ jobs: id: get-matrix run: | if [ '${{ github.repository_owner }}' == 'puppetlabs' ]; then - buildevents cmd $TRACE_ID $STEP_ID matrix_from_metadata -- bundle exec matrix_from_metadata + buildevents cmd $TRACE_ID $STEP_ID matrix_from_metadata -- bundle exec matrix_from_metadata_v2 else echo "::set-output name=matrix::{}" fi @@ -66,6 +66,7 @@ jobs: buildevents step $TRACE_ID $STEP_ID $STEP_START 'Setup Test Matrix' Acceptance: + name: "${{matrix.platforms.label}}, ${{matrix.collection}}" needs: - setup_matrix if: ${{ needs.setup_matrix.outputs.matrix != '{}' }} @@ -80,8 +81,9 @@ jobs: steps: - run: | - echo 'platform=${{ matrix.platform }}' >> $BUILDEVENT_FILE + echo 'platform=${{ matrix.platforms.image }}' >> $BUILDEVENT_FILE echo 'collection=${{ matrix.collection }}' >> $BUILDEVENT_FILE + echo 'label=${{ matrix.platforms.label }}' >> $BUILDEVENT_FILE - name: "Honeycomb: Start recording" uses: puppetlabs/kvrhdn-gha-buildevents@pdk-templates-v1 @@ -89,11 +91,11 @@ jobs: apikey: ${{ env.HONEYCOMB_WRITEKEY }} dataset: ${{ env.HONEYCOMB_DATASET }} job-status: ${{ job.status }} - matrix-key: ${{ matrix.platform }}-${{ matrix.collection }} + matrix-key: ${{ matrix.platforms.label }}-${{ matrix.collection }} - name: "Honeycomb: start first step" run: | - echo STEP_ID=${{ matrix.platform }}-${{ matrix.collection }}-1 >> $GITHUB_ENV + echo STEP_ID=${{ matrix.platforms.image }}-${{ matrix.collection }}-1 >> $GITHUB_ENV echo STEP_START=$(date +%s) >> $GITHUB_ENV - name: Checkout Source @@ -115,18 +117,25 @@ jobs: if: ${{ always() }} run: | buildevents step $TRACE_ID $STEP_ID $STEP_START 'Setup Environment' - echo STEP_ID=${{ matrix.platform }}-${{ matrix.collection }}-2 >> $GITHUB_ENV + echo STEP_ID=${{ matrix.platforms.image }}-${{ matrix.collection }}-2 >> $GITHUB_ENV echo STEP_START=$(date +%s) >> $GITHUB_ENV - name: Provision test environment run: | - buildevents cmd $TRACE_ID $STEP_ID 'rake litmus:provision ${{ matrix.platform }}' -- bundle exec rake 'litmus:provision[provision::provision_service,${{ matrix.platform }}]' + buildevents cmd $TRACE_ID $STEP_ID 'rake litmus:provision ${{ matrix.platforms.image }}' -- bundle exec rake 'litmus:provision[${{matrix.platforms.provider}},${{ matrix.platforms.image }}]' echo ::group::=== REQUEST === cat request.json || true echo echo ::endgroup:: echo ::group::=== INVENTORY === - sed -e 's/password: .*/password: "[redacted]"/' < inventory.yaml || true + if [ -f 'spec/fixtures/litmus_inventory.yaml' ]; + then + FILE='spec/fixtures/litmus_inventory.yaml' + elif [ -f 'inventory.yaml' ]; + then + FILE='inventory.yaml' + fi + sed -e 's/password: .*/password: "[redacted]"/' < $FILE || true echo ::endgroup:: - name: Install agent @@ -142,7 +151,7 @@ jobs: run: | echo ::group::honeycomb step buildevents step $TRACE_ID $STEP_ID $STEP_START 'Deploy test system' - echo STEP_ID=${{ matrix.platform }}-${{ matrix.collection }}-3 >> $GITHUB_ENV + echo STEP_ID=${{ matrix.platforms.image }}-${{ matrix.collection }}-3 >> $GITHUB_ENV echo STEP_START=$(date +%s) >> $GITHUB_ENV echo ::endgroup:: @@ -154,14 +163,14 @@ jobs: if: ${{ always() }} run: | buildevents step $TRACE_ID $STEP_ID $STEP_START 'Run acceptance tests' - echo STEP_ID=${{ matrix.platform }}-${{ matrix.collection }}-4 >> $GITHUB_ENV + echo STEP_ID=${{ matrix.platforms.image }}-${{ matrix.collection }}-4 >> $GITHUB_ENV echo STEP_START=$(date +%s) >> $GITHUB_ENV - name: Remove test environment if: ${{ always() }} continue-on-error: true run: | - if [ -f inventory.yaml ]; then + if [[ -f inventory.yaml || -f spec/fixtures/litmus_inventory.yaml ]]; then buildevents cmd $TRACE_ID $STEP_ID 'rake litmus:tear_down' -- bundle exec rake 'litmus:tear_down' echo ::group::=== REQUEST === cat request.json || true diff --git a/.gitignore b/.gitignore index 2767022cd..988dcbbe6 100644 --- a/.gitignore +++ b/.gitignore @@ -25,3 +25,4 @@ .project .envrc /inventory.yaml +/spec/fixtures/litmus_inventory.yaml diff --git a/.gitpod.yml b/.gitpod.yml index 18406c508..9d89d9faa 100644 --- a/.gitpod.yml +++ b/.gitpod.yml @@ -6,4 +6,4 @@ tasks: vscode: extensions: - - puppet.puppet-vscode@1.0.0:oSzfTkDf6Cmc1jOjgW33VA== + - puppet.puppet-vscode@1.2.0:f5iEPbmOj6FoFTOV6q8LTg== diff --git a/.pdkignore b/.pdkignore index 254808c8f..33a13477b 100644 --- a/.pdkignore +++ b/.pdkignore @@ -25,6 +25,7 @@ .project .envrc /inventory.yaml +/spec/fixtures/litmus_inventory.yaml /appveyor.yml /.fixtures.yml /Gemfile @@ -42,3 +43,4 @@ /spec/ /.vscode/ /.sync.yml +/.devcontainer/ diff --git a/.travis.yml b/.travis.yml index baab97630..e2e20a355 100644 --- a/.travis.yml +++ b/.travis.yml @@ -29,6 +29,7 @@ jobs: include: - before_script: - "bundle exec rake 'litmus:provision_list[travis_ub_6]'" + - "bundle exec bolt command run 'apt-get install wget -y || yum install wget -y' --inventoryfile inventory.yaml --targets='localhost*'" - "bundle exec rake 'litmus:install_agent[puppet6]'" - "bundle exec rake litmus:install_module" env: @@ -40,6 +41,7 @@ jobs: stage: acceptance - before_script: - "bundle exec rake 'litmus:provision_list[travis_deb]'" + - "bundle exec bolt command run 'apt-get install wget -y || yum install wget -y' --inventoryfile inventory.yaml --targets='localhost*'" - "bundle exec rake 'litmus:install_agent[puppet6]'" - "bundle exec rake litmus:install_module" env: @@ -51,6 +53,7 @@ jobs: stage: acceptance - before_script: - "bundle exec rake 'litmus:provision_list[travis_el7]'" + - "bundle exec bolt command run 'apt-get install wget -y || yum install wget -y' --inventoryfile inventory.yaml --targets='localhost*'" - "bundle exec rake 'litmus:install_agent[puppet6]'" - "bundle exec rake litmus:install_module" env: @@ -62,6 +65,7 @@ jobs: stage: acceptance - before_script: - "bundle exec rake 'litmus:provision_list[travis_el8]'" + - "bundle exec bolt command run 'apt-get install wget -y || yum install wget -y' --inventoryfile inventory.yaml --targets='localhost*'" - "bundle exec rake 'litmus:install_agent[puppet6]'" - "bundle exec rake litmus:install_module" env: diff --git a/Gemfile b/Gemfile index ae2b430dc..135373d02 100644 --- a/Gemfile +++ b/Gemfile @@ -45,16 +45,6 @@ gems['puppet'] = location_for(puppet_version) gems['facter'] = location_for(facter_version) if facter_version gems['hiera'] = location_for(hiera_version) if hiera_version -if Gem.win_platform? && puppet_version =~ %r{^(file:///|git://)} - # If we're using a Puppet gem on Windows which handles its own win32-xxx gem - # dependencies (>= 3.5.0), set the maximum versions (see PUP-6445). - gems['win32-dir'] = ['<= 0.4.9', require: false] - gems['win32-eventlog'] = ['<= 0.6.5', require: false] - gems['win32-process'] = ['<= 0.7.5', require: false] - gems['win32-security'] = ['<= 0.2.5', require: false] - gems['win32-service'] = ['0.8.8', require: false] -end - gems.each do |gem_name, gem_params| gem gem_name, *gem_params end diff --git a/metadata.json b/metadata.json index dc6a426f1..67fcbc5d7 100644 --- a/metadata.json +++ b/metadata.json @@ -77,6 +77,6 @@ ], "description": "MySQL module", "template-url": "https://github.com/puppetlabs/pdk-templates#main", - "template-ref": "heads/main-0-g44cc7ed", - "pdk-version": "1.18.1" + "template-ref": "heads/main-0-ge04486b", + "pdk-version": "2.0.0" } diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 4ee263f9e..ce79d90bd 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -1,5 +1,9 @@ # frozen_string_literal: true +RSpec.configure do |c| + c.mock_with :rspec +end + require 'puppetlabs_spec_helper/module_spec_helper' require 'rspec-puppet-facts' From 1790dbce3bdda8abf2974a7d8af525767694e522 Mon Sep 17 00:00:00 2001 From: Paula Muir Date: Tue, 27 Apr 2021 12:51:24 +0100 Subject: [PATCH 2/5] fix grant tests for fqdn --- spec/acceptance/types/mysql_grant_spec.rb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/spec/acceptance/types/mysql_grant_spec.rb b/spec/acceptance/types/mysql_grant_spec.rb index 76face412..bb7d60a25 100644 --- a/spec/acceptance/types/mysql_grant_spec.rb +++ b/spec/acceptance/types/mysql_grant_spec.rb @@ -369,12 +369,12 @@ class { 'mysql::server': user => "web@${dbSubnet}", require => Mysql_user["web@${dbSubnet}"], } - mysql_user { "web@${fqdn}": + mysql_user { "web@${::networking['ip']}": ensure => present, } - mysql_grant { "web@${fqdn}/*.*": - user => "web@${fqdn}", - require => Mysql_user["web@${fqdn}"], + mysql_grant { "web@${::networking['ip']}/*.*": + user => "web@${::networking['ip']}", + require => Mysql_user["web@${::networking['ip']}"], } mysql_user { 'web@localhost': ensure => present, From 1e8f2e00bb18c88e32789a2dd1acaaacfdcadc0d Mon Sep 17 00:00:00 2001 From: Paula Muir Date: Tue, 27 Apr 2021 13:54:33 +0100 Subject: [PATCH 3/5] removing lsbdistname --- manifests/params.pp | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/manifests/params.pp b/manifests/params.pp index 0bb1755f5..049809f1f 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -257,17 +257,17 @@ $python_package_name = 'python-mysqldb' } - $ruby_package_name = $::lsbdistcodename ? { - 'jessie' => 'ruby-mysql', - 'stretch' => 'ruby-mysql2', - 'buster' => 'ruby-mysql2', - 'trusty' => 'ruby-mysql', - 'xenial' => 'ruby-mysql', - 'bionic' => 'ruby-mysql2', - 'focal' => 'ruby-mysql2', - default => 'libmysql-ruby', - } - } + $ruby_package_name = $facts['operatingsystemmajrelease'] ? { + '8' => 'ruby-mysql', # jessie + '9' => 'ruby-mysql2', # stretch + '10' => 'ruby-mysql2', # buster + '14.04' => 'ruby-mysql', # trusty + '16.04' => 'ruby-mysql', # xenial + '18.04' => 'ruby-mysql2', # bionic + '20.04' => 'ruby-mysql2', # focal + default => 'libmysql-ruby', + } + } 'Archlinux': { $daemon_dev_package_name = undef From f74cc2086bd5bde11ed39c5f97d0dd8b188c86d9 Mon Sep 17 00:00:00 2001 From: Paula Muir Date: Tue, 27 Apr 2021 16:52:53 +0100 Subject: [PATCH 4/5] try; --- manifests/params.pp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/manifests/params.pp b/manifests/params.pp index 049809f1f..8fb647735 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -267,6 +267,8 @@ '20.04' => 'ruby-mysql2', # focal default => 'libmysql-ruby', } + notice("************************************") + notice($ruby_package_name) } 'Archlinux': { From af7c1479dd7d176fff5f713bb962458a2fcc7725 Mon Sep 17 00:00:00 2001 From: Paula Muir Date: Wed, 28 Apr 2021 17:27:55 +0100 Subject: [PATCH 5/5] fix lint --- manifests/params.pp | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/manifests/params.pp b/manifests/params.pp index 8fb647735..c8692c323 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -258,18 +258,16 @@ } $ruby_package_name = $facts['operatingsystemmajrelease'] ? { - '8' => 'ruby-mysql', # jessie - '9' => 'ruby-mysql2', # stretch - '10' => 'ruby-mysql2', # buster - '14.04' => 'ruby-mysql', # trusty - '16.04' => 'ruby-mysql', # xenial - '18.04' => 'ruby-mysql2', # bionic - '20.04' => 'ruby-mysql2', # focal - default => 'libmysql-ruby', - } - notice("************************************") - notice($ruby_package_name) - } + '8' => 'ruby-mysql', # jessie + '9' => 'ruby-mysql2', # stretch + '10' => 'ruby-mysql2', # buster + '14.04' => 'ruby-mysql', # trusty + '16.04' => 'ruby-mysql', # xenial + '18.04' => 'ruby-mysql2', # bionic + '20.04' => 'ruby-mysql2', # focal + default => 'libmysql-ruby', + } + } 'Archlinux': { $daemon_dev_package_name = undef