diff --git a/.copier-answers.ssf-ci.yml b/.copier-answers.ssf-ci.yml new file mode 100644 index 00000000..cbeee305 --- /dev/null +++ b/.copier-answers.ssf-ci.yml @@ -0,0 +1,20 @@ +# Changes here will be overwritten by Copier; NEVER EDIT MANUALLY +_commit: v2.1.0 +_src_path: https://github.com/dafyddj/copier-ssf-ci +failure_permitted_ignored: [] +failure_permitted_patterns: [] +formula_name: nginx +renovate_extend_presets: +- github>saltstack-formulas/.github +- github>saltstack-formulas/.github:copier +renovate_ignore_presets: [] +supported_oses: +- AlmaLinux OS +- Amazon Linux +- CentOS +- Debian +- Fedora Linux +- openSUSE +- Oracle Linux +- Rocky Linux +- Ubuntu diff --git a/.github/renovate.json5 b/.github/renovate.json5 new file mode 100644 index 00000000..1fe72da9 --- /dev/null +++ b/.github/renovate.json5 @@ -0,0 +1,11 @@ +{ +$schema: 'https://docs.renovatebot.com/renovate-schema.json', +extends: [ + "github>saltstack-formulas/.github", + "github>saltstack-formulas/.github:copier" +], +/********************************************************** + * This file is managed as part of a Copier template. * + * Please make your own changes below this comment. * + *********************************************************/ +} diff --git a/.github/settings.yml b/.github/settings.yml new file mode 100644 index 00000000..ba78eecd --- /dev/null +++ b/.github/settings.yml @@ -0,0 +1,8 @@ +--- +# These settings are synced to GitHub by https://probot.github.io/apps/settings/ + +repository: + # See https://docs.github.com/en/rest/reference/repos#update-a-repository + # for all available settings + + allow_squash_merge: false diff --git a/.github/workflows/kitchen.vagrant.yml b/.github/workflows/kitchen.vagrant.yml index ee67a32c..22fdc13f 100644 --- a/.github/workflows/kitchen.vagrant.yml +++ b/.github/workflows/kitchen.vagrant.yml @@ -2,7 +2,7 @@ # vim: ft=yaml --- name: 'Kitchen Vagrant (FreeBSD)' -'on': ['push', 'pull_request'] +'on': ['workflow_dispatch'] env: KITCHEN_LOCAL_YAML: 'kitchen.vagrant.yml' diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 00000000..8ee234f8 --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,65 @@ +--- +# yamllint disable rule:comments +name: Test & release + +'on': + - pull_request + - push + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: ${{ github.ref != format('refs/heads/{0}', + github.event.repository.default_branch) }} + +jobs: + should-run: + name: Prep / Should run + runs-on: ubuntu-latest + timeout-minutes: 5 + outputs: + should-run: ${{ steps.action.outputs.should-run }} + steps: + - id: action + uses: + # yamllint disable-line rule:line-length + techneg-it/should-workflow-run@dcbb88600d59ec2842778ef1e2d41f680f876329 # v1.0.0 + pre-commit: + name: Lint / `pre-commit` + needs: should-run + if: fromJSON(needs.should-run.outputs.should-run) + # yamllint disable-line rule:line-length + container: techneg/ci-pre-commit:v2.4.25@sha256:ff5192e893c1079fbf70e3ce6bfc3773815041786a75659793158be930ba7803 + runs-on: ubuntu-latest + timeout-minutes: 5 + steps: + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + with: + fetch-depth: 0 + fetch-tags: true + filter: tree:0 + - name: Export `CI_CACHE_ID` from container + run: echo "CI_CACHE_ID=$(cat /.ci_cache_id)" >> $GITHUB_ENV + - uses: actions/cache@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3 + with: + path: ~/.cache/pre-commit + key: "${{ env.CI_CACHE_ID }}|\ + ${{ hashFiles('.pre-commit-config.yaml') }}" + - name: Run `pre-commit` + run: | + git config --global --add safe.directory $(pwd) + pre-commit run --all-files --color always --verbose + pre-commit run --color always --hook-stage manual commitlint-ci + results: + name: Release / Collect results + permissions: + checks: read + runs-on: ubuntu-latest + timeout-minutes: 15 + steps: + # yamllint disable-line rule:line-length + - uses: poseidon/wait-for-status-checks@899c768d191b56eef585c18f8558da19e1f3e707 # v0.6.0 + with: + ignore: Release / Collect results + ignore_pattern: ^GitLab CI + token: ${{ secrets.GITHUB_TOKEN }} + - run: echo "::notice ::Workflow success!" diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index b0632ffb..b803e8e9 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -9,47 +9,82 @@ only_branch_master_parent_repo: &only_branch_master_parent_repo - 'master@saltstack-formulas/nginx-formula' # `stage` + stage_cache: &stage_cache 'cache' stage_lint: &stage_lint 'lint' stage_release: &stage_release 'release' stage_test: &stage_test 'test' # `image` - image_commitlint: &image_commitlint 'myii/ssf-commitlint:11' - image_dindruby: &image_dindruby 'myii/ssf-dind-ruby:2.7.1-r3' - image_precommit: &image_precommit - name: 'myii/ssf-pre-commit:2.9.2' - entrypoint: ['/bin/bash', '-c'] - image_rubocop: &image_rubocop 'pipelinecomponents/rubocop:latest' - image_semantic-release: &image_semanticrelease 'myii/ssf-semantic-release:15.14' + # yamllint disable rule:line-length + image_commitlint: &image_commitlint 'techneg/ci-commitlint:v1.1.91@sha256:02574d0409adafb76d5a40a7d08202073e5377f4a7c4bfe9e198d1203ff94a8c' + image_dindruby: &image_dindruby 'techneg/ci-docker-python-ruby:v2.2.60@sha256:de98b8d1d3cf86639fe69bfc4f0416115d18300759c5ed2948ac56f973dd944f' + image_dindrubybionic: &image_dindrubybionic 'techneg/ci-docker-python-ruby:v2.2.60@sha256:de98b8d1d3cf86639fe69bfc4f0416115d18300759c5ed2948ac56f973dd944f' + image_precommit: &image_precommit 'techneg/ci-pre-commit:v2.4.25@sha256:ff5192e893c1079fbf70e3ce6bfc3773815041786a75659793158be930ba7803' + image_rubocop: &image_rubocop 'pipelinecomponents/rubocop:latest@sha256:fe69f9642c7edde46bbd78326d2c42c6e13fc73694efb142e92e206725479328' + image_semantic-release: &image_semanticrelease 'myii/ssf-semantic-release:15.14@sha256:374f588420087517a3cc0235e11293bffd72d7a59da3d98d5e69f014ff2a7761' # `services` services_docker_dind: &services_docker_dind - - 'docker:dind' + - 'docker:28.2.2-dind@sha256:d4668861cabc1691635d98e827a81cfa834a416f8fe0f4efc609f9f806d86d82' + # yamllint enable rule:line-length # `variables` # https://forum.gitlab.com/t/gitlab-com-ci-caching-rubygems/5627/3 - # https://bundler.io/v1.16/bundle_config.html + # https://bundler.io/v2.3/man/bundle-config.1.html variables_bundler: &variables_bundler - BUNDLE_CACHE_PATH: '${CI_PROJECT_DIR}/.cache/bundler' - BUNDLE_WITHOUT: 'production' - # `cache` + BUNDLE_PATH: '${CI_PROJECT_DIR}/.cache/bundler' + BUNDLE_DEPLOYMENT: 'true' + bundle_install: &bundle_install + - 'bundle version' + - 'bundle config list' + # `--no-cache` means don't bother caching the downloaded .gem files + - 'time bundle install --no-cache' cache_bundler: &cache_bundler - key: '${CI_JOB_STAGE}' + key: + files: + - 'Gemfile.lock' + prefix: 'bundler' paths: - - '${BUNDLE_CACHE_PATH}' + - '${BUNDLE_PATH}' + # https://pre-commit.com/#gitlab-ci-example + variables_pre-commit: &variables_pre-commit + PRE_COMMIT_HOME: '${CI_PROJECT_DIR}/.cache/pre-commit' + cache_pre-commit: &cache_pre-commit + key: + files: + - '.pre-commit-config.yaml' + prefix: 'pre-commit' + paths: + - '${PRE_COMMIT_HOME}' ############################################################################### # Define stages and global variables ############################################################################### stages: + - *stage_cache - *stage_lint - *stage_test - *stage_release variables: DOCKER_DRIVER: 'overlay2' + +############################################################################### +# `cache` stage: build up the bundler cache required before the `test` stage +############################################################################### +build-cache: + stage: *stage_cache + image: *image_dindruby + variables: *variables_bundler + cache: *cache_bundler + script: *bundle_install + ############################################################################### # `lint` stage: `commitlint`, `pre-commit` & `rubocop` (latest, failure allowed) ############################################################################### -commitlint: +.lint_job: stage: *stage_lint + needs: [] + +commitlint: + extends: '.lint_job' image: *image_commitlint script: # Add `upstream` remote to get access to `upstream/master` @@ -74,17 +109,14 @@ commitlint: --verbose' pre-commit: - stage: *stage_lint + extends: '.lint_job' image: *image_precommit # https://pre-commit.com/#gitlab-ci-example - variables: - PRE_COMMIT_HOME: '${CI_PROJECT_DIR}/.cache/pre-commit' - cache: - key: '${CI_JOB_NAME}' - paths: - - '${PRE_COMMIT_HOME}' + variables: *variables_pre-commit + cache: *cache_pre-commit script: - 'pre-commit run --all-files --color always --verbose' + - 'pre-commit run --color always --hook-stage manual commitlint-ci' # Use a separate job for `rubocop` other than the one potentially run by `pre-commit` # - The `pre-commit` check will only be available for formulas that pass the default @@ -93,8 +125,8 @@ pre-commit: # - Furthermore, this job uses all of the latest `rubocop` features & cops, # which will help when upgrading the `rubocop` linter used in `pre-commit` rubocop: + extends: '.lint_job' allow_failure: true - stage: *stage_lint image: *image_rubocop script: - 'rubocop -d -P -S --enable-pending-cops' @@ -107,12 +139,10 @@ rubocop: image: *image_dindruby services: *services_docker_dind variables: *variables_bundler - cache: *cache_bundler - before_script: - # TODO: This should work from the env vars above automatically - - 'bundle config set path "${BUNDLE_CACHE_PATH}"' - - 'bundle config set without "${BUNDLE_WITHOUT}"' - - 'bundle install' + cache: + <<: *cache_bundler + policy: 'pull' + before_script: *bundle_install script: # Alternative value to consider: `${CI_JOB_NAME}` - 'bin/kitchen verify "${DOCKER_ENV_CI_JOB_NAME}"' @@ -131,100 +161,65 @@ rubocop: # Make sure the instances listed below match up with # the `platforms` defined in `kitchen.yml` # yamllint disable rule:line-length -# default-debian-11-tiamat-py3: {extends: '.test_instance'} -# default-debian-10-tiamat-py3: {extends: '.test_instance'} -# default-debian-9-tiamat-py3: {extends: '.test_instance'} -# default-ubuntu-2204-tiamat-py3: {extends: '.test_instance_failure_permitted'} -# default-ubuntu-2004-tiamat-py3: {extends: '.test_instance'} -# default-ubuntu-1804-tiamat-py3: {extends: '.test_instance'} -# default-centos-stream8-tiamat-py3: {extends: '.test_instance_failure_permitted'} -# default-centos-7-tiamat-py3: {extends: '.test_instance'} -# default-amazonlinux-2-tiamat-py3: {extends: '.test_instance'} -# default-oraclelinux-8-tiamat-py3: {extends: '.test_instance'} -# default-oraclelinux-7-tiamat-py3: {extends: '.test_instance'} -# default-almalinux-8-tiamat-py3: {extends: '.test_instance'} -# default-rockylinux-8-tiamat-py3: {extends: '.test_instance'} -# default-debian-11-master-py3: {extends: '.test_instance'} -# passenger-debian-11-master-py3: {extends: '.test_instance'} -debian-11-master-py3: {extends: '.test_instance_failure_permitted'} -# default-debian-10-master-py3: {extends: '.test_instance'} -# passenger-debian-10-master-py3: {extends: '.test_instance'} -debian-10-master-py3: {extends: '.test_instance'} -# default-debian-9-master-py3: {extends: '.test_instance'} -# passenger-debian-9-master-py3: {extends: '.test_instance'} -debian-9-master-py3: {extends: '.test_instance'} -# default-ubuntu-2204-master-py3: {extends: '.test_instance_failure_permitted'} -# passenger-ubuntu-2204-master-py3: {extends: '.test_instance_failure_permitted'} -ubuntu-2204-master-py3: {extends: '.test_instance_failure_permitted'} -# default-ubuntu-2004-master-py3: {extends: '.test_instance'} -# passenger-ubuntu-2004-master-py3: {extends: '.test_instance'} -ubuntu-2004-master-py3: {extends: '.test_instance'} -# default-ubuntu-1804-master-py3: {extends: '.test_instance'} -# passenger-ubuntu-1804-master-py3: {extends: '.test_instance'} -ubuntu-1804-master-py3: {extends: '.test_instance'} -# default-centos-stream8-master-py3: {extends: '.test_instance_failure_permitted'} -# passenger-centos-stream8-master-py3: {extends: '.test_instance_failure_permitted'} -centos-stream8-master-py3: {extends: '.test_instance_failure_permitted'} -# default-centos-7-master-py3: {extends: '.test_instance'} -# passenger-centos-7-master-py3: {extends: '.test_instance'} -centos-7-master-py3: {extends: '.test_instance'} -default-fedora-36-master-py3: {extends: '.test_instance_failure_permitted'} -# fedora-36-master-py3: {extends: '.test_instance_failure_permitted'} -default-fedora-35-master-py3: {extends: '.test_instance'} -# fedora-35-master-py3: {extends: '.test_instance'} -default-opensuse-leap-153-master-py3: {extends: '.test_instance'} -# opensuse-leap-153-master-py3: {extends: '.test_instance'} -default-opensuse-tmbl-latest-master-py3: {extends: '.test_instance_failure_permitted'} -# opensuse-tmbl-latest-master-py3: {extends: '.test_instance_failure_permitted'} -default-amazonlinux-2-master-py3: {extends: '.test_instance'} -# amazonlinux-2-master-py3: {extends: '.test_instance'} -# default-oraclelinux-8-master-py3: {extends: '.test_instance'} -# passenger-oraclelinux-8-master-py3: {extends: '.test_instance'} -oraclelinux-8-master-py3: {extends: '.test_instance'} -default-oraclelinux-7-master-py3: {extends: '.test_instance'} -# oraclelinux-7-master-py3: {extends: '.test_instance'} -default-arch-base-latest-master-py3: {extends: '.test_instance'} -# arch-base-latest-master-py3: {extends: '.test_instance'} -# default-gentoo-stage3-latest-master-py3: {extends: '.test_instance'} -# gentoo-stage3-latest-master-py3: {extends: '.test_instance'} -default-gentoo-stage3-systemd-master-py3: {extends: '.test_instance'} -# gentoo-stage3-systemd-master-py3: {extends: '.test_instance'} -# default-almalinux-8-master-py3: {extends: '.test_instance'} -# passenger-almalinux-8-master-py3: {extends: '.test_instance'} -almalinux-8-master-py3: {extends: '.test_instance'} -# default-rockylinux-8-master-py3: {extends: '.test_instance'} -# passenger-rockylinux-8-master-py3: {extends: '.test_instance'} -rockylinux-8-master-py3: {extends: '.test_instance'} -# default-debian-11-3004-1-py3: {extends: '.test_instance'} -# default-debian-10-3004-1-py3: {extends: '.test_instance'} -# default-debian-9-3004-1-py3: {extends: '.test_instance'} -# default-ubuntu-2204-3004-1-py3: {extends: '.test_instance_failure_permitted'} -# default-ubuntu-2004-3004-1-py3: {extends: '.test_instance'} -# default-ubuntu-1804-3004-1-py3: {extends: '.test_instance'} -# default-centos-stream8-3004-1-py3: {extends: '.test_instance_failure_permitted'} -# default-centos-7-3004-1-py3: {extends: '.test_instance'} -# default-fedora-36-3004-1-py3: {extends: '.test_instance_failure_permitted'} -# default-fedora-35-3004-1-py3: {extends: '.test_instance'} -# default-amazonlinux-2-3004-1-py3: {extends: '.test_instance'} -# default-oraclelinux-8-3004-1-py3: {extends: '.test_instance'} -# default-oraclelinux-7-3004-1-py3: {extends: '.test_instance'} -# default-arch-base-latest-3004-1-py3: {extends: '.test_instance'} -# default-gentoo-stage3-latest-3004-1-py3: {extends: '.test_instance'} -# default-gentoo-stage3-systemd-3004-1-py3: {extends: '.test_instance'} -# default-almalinux-8-3004-1-py3: {extends: '.test_instance'} -# default-rockylinux-8-3004-1-py3: {extends: '.test_instance'} -# default-opensuse-leap-153-3004-0-py3: {extends: '.test_instance'} -# default-opensuse-tmbl-latest-3004-0-py3: {extends: '.test_instance_failure_permitted'} -# default-debian-10-3003-4-py3: {extends: '.test_instance'} -# default-debian-9-3003-4-py3: {extends: '.test_instance'} -# default-ubuntu-2004-3003-4-py3: {extends: '.test_instance'} -# default-ubuntu-1804-3003-4-py3: {extends: '.test_instance'} -# default-centos-stream8-3003-4-py3: {extends: '.test_instance_failure_permitted'} -# default-centos-7-3003-4-py3: {extends: '.test_instance'} -# default-amazonlinux-2-3003-4-py3: {extends: '.test_instance'} -# default-oraclelinux-8-3003-4-py3: {extends: '.test_instance'} -# default-oraclelinux-7-3003-4-py3: {extends: '.test_instance'} -# default-almalinux-8-3003-4-py3: {extends: '.test_instance'} +# Fedora 41+ will permit failure until this PR is merged into kitchen-docker +# https://github.com/test-kitchen/kitchen-docker/pull/427 is merged +# OpenSUSE master branch will fail until zypperpkg module is back in salt core +# https://github.com/saltstack/great-module-migration/issues/14 +# +almalinux-9-master: {extends: '.test_instance_failure_permitted'} +almalinux-8-master: {extends: '.test_instance_failure_permitted'} +amazonlinux-2023-master: {extends: '.test_instance_failure_permitted'} +amazonlinux-2-master: {extends: '.test_instance_failure_permitted'} +centos-stream9-master: {extends: '.test_instance_failure_permitted'} +debian-12-master: {extends: '.test_instance_failure_permitted'} +debian-11-master: {extends: '.test_instance_failure_permitted'} +fedora-41-master: {extends: '.test_instance_failure_permitted'} +fedora-40-master: {extends: '.test_instance_failure_permitted'} +opensuse-leap-156-master: {extends: '.test_instance_failure_permitted'} +opensuse-tmbl-latest-master: {extends: '.test_instance_failure_permitted'} +oraclelinux-9-master: {extends: '.test_instance_failure_permitted'} +oraclelinux-8-master: {extends: '.test_instance_failure_permitted'} +rockylinux-9-master: {extends: '.test_instance_failure_permitted'} +rockylinux-8-master: {extends: '.test_instance_failure_permitted'} +ubuntu-2404-master: {extends: '.test_instance_failure_permitted'} +ubuntu-2204-master: {extends: '.test_instance_failure_permitted'} +ubuntu-2004-master: {extends: '.test_instance_failure_permitted'} +almalinux-9-3007-4: {extends: '.test_instance'} +almalinux-8-3007-4: {extends: '.test_instance'} +amazonlinux-2023-3007-4: {extends: '.test_instance'} +amazonlinux-2-3007-4: {extends: '.test_instance_failure_permitted'} +centos-stream9-3007-4: {extends: '.test_instance'} +debian-12-3007-4: {extends: '.test_instance'} +debian-11-3007-4: {extends: '.test_instance'} +fedora-41-3007-4: {extends: '.test_instance_failure_permitted'} +fedora-40-3007-4: {extends: '.test_instance'} +opensuse-leap-156-3007-4: {extends: '.test_instance'} +opensuse-tmbl-latest-3007-4: {extends: '.test_instance'} +oraclelinux-9-3007-4: {extends: '.test_instance'} +oraclelinux-8-3007-4: {extends: '.test_instance'} +rockylinux-9-3007-4: {extends: '.test_instance'} +rockylinux-8-3007-4: {extends: '.test_instance'} +ubuntu-2404-3007-4: {extends: '.test_instance'} +ubuntu-2204-3007-4: {extends: '.test_instance'} +ubuntu-2004-3007-4: {extends: '.test_instance'} +almalinux-9-3006-12: {extends: '.test_instance'} +almalinux-8-3006-12: {extends: '.test_instance'} +amazonlinux-2023-3006-12: {extends: '.test_instance'} +amazonlinux-2-3006-12: {extends: '.test_instance_failure_permitted'} +centos-stream9-3006-12: {extends: '.test_instance'} +debian-12-3006-12: {extends: '.test_instance'} +debian-11-3006-12: {extends: '.test_instance'} +fedora-41-3006-12: {extends: '.test_instance_failure_permitted'} +fedora-40-3006-12: {extends: '.test_instance'} +opensuse-leap-156-3006-12: {extends: '.test_instance'} +opensuse-tmbl-latest-3006-12: {extends: '.test_instance'} +oraclelinux-9-3006-12: {extends: '.test_instance'} +oraclelinux-8-3006-12: {extends: '.test_instance'} +rockylinux-9-3006-12: {extends: '.test_instance'} +rockylinux-8-3006-12: {extends: '.test_instance'} +ubuntu-2404-3006-12: {extends: '.test_instance'} +ubuntu-2204-3006-12: {extends: '.test_instance'} +ubuntu-2004-3006-12: {extends: '.test_instance'} # yamllint enable rule:line-length ############################################################################### diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index dc04b69f..dfee2340 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -15,28 +15,26 @@ ci: autoupdate_schedule: quarterly skip: [] submodules: false -default_stages: [commit] +default_stages: [pre-commit] repos: - - repo: https://github.com/dafyddj/commitlint-pre-commit-hook - rev: v2.3.0 + - repo: https://github.com/pre-commit/pre-commit-hooks + rev: v5.0.0 + hooks: + - id: check-merge-conflict + name: Check for Git merge conflicts + args: [--assume-in-merge] + exclude: ^docs/AUTHORS.rst$ + - repo: https://github.com/dafyddj/mirrors-commitlint + rev: v19.8.1 hooks: - id: commitlint - name: Check commit message using commitlint - description: Lint commit message against @commitlint/config-conventional rules - stages: [commit-msg] - additional_dependencies: ['@commitlint/config-conventional@8.3.4'] - - id: commitlint-travis - stages: [manual] - additional_dependencies: ['@commitlint/config-conventional@8.3.4'] - always_run: true + - id: commitlint-ci - repo: https://github.com/rubocop-hq/rubocop - rev: v1.56.4 + rev: v1.76.1 hooks: - id: rubocop name: Check Ruby files with rubocop args: [--debug] - always_run: true - pass_filenames: false - repo: https://github.com/shellcheck-py/shellcheck-py rev: v0.9.0.6 hooks: @@ -45,27 +43,51 @@ repos: files: ^.*\.(sh|bash|ksh)$ types: [] - repo: https://github.com/adrienverge/yamllint - rev: v1.32.0 + rev: v1.37.1 hooks: - id: yamllint name: Check YAML syntax with yamllint - args: [--strict, '.'] - always_run: true - pass_filenames: false + args: [--strict] + types: [file] + # Files to include + # 1. Obvious YAML files + # 2. `pillar.example` and similar files + # 3. SLS files under directory `test/` which are pillar files + # Files to exclude + # 1. SLS files under directory `test/` which are state files + # 2. `kitchen.vagrant.yml`, which contains Embedded Ruby (ERB) template syntax + # 3. YAML files heavily reliant on Jinja + # 4. `.copier-answers.yml` and its variants which are auto-generated + files: | + (?x)^( + .*\.yaml| + .*\.yml| + \.salt-lint| + \.yamllint| + .*\.example| + test/.*\.sls + )$ + exclude: | + (?x)^( + \.copier-answers(\..+)?\.ya?ml| + kitchen.vagrant.yml| + test/.*/states/.*\.sls + )$ - repo: https://github.com/warpnet/salt-lint rev: v0.9.2 hooks: - id: salt-lint name: Check Salt files using salt-lint files: ^.*\.(sls|jinja|j2|tmpl|tst)$ - - repo: https://github.com/myint/rstcheck - rev: 3f929574 + - repo: https://github.com/rstcheck/rstcheck + rev: v6.2.5 hooks: - id: rstcheck name: Check reST files using rstcheck exclude: 'docs/CHANGELOG.rst' + additional_dependencies: [sphinx==7.2.6] - repo: https://github.com/saltstack-formulas/mirrors-rst-lint - rev: v1.3.2 + rev: v1.4.0 hooks: - id: rst-lint name: Check reST files using rst-lint @@ -73,5 +95,21 @@ repos: (?x)^( docs/CHANGELOG.rst| docs/TOFS_pattern.rst| + docs/CONTRIBUTING_DOCS.rst| + docs/index.rst| )$ - additional_dependencies: [pygments==2.9.0] + additional_dependencies: [pygments==2.16.1] + - repo: https://github.com/renovatebot/pre-commit-hooks + rev: 40.48.11 + hooks: + - id: renovate-config-validator + name: Check Renovate config with renovate-config-validator + - repo: https://github.com/python-jsonschema/check-jsonschema + rev: 0.33.0 + hooks: + - id: check-github-workflows + name: Check GitHub workflows with check-jsonschema + args: [--verbose] + - id: check-gitlab-ci + name: Check GitLab CI config with check-jsonschema + args: [--verbose] diff --git a/.rstcheck.cfg b/.rstcheck.cfg index 5383623e..0daee687 100644 --- a/.rstcheck.cfg +++ b/.rstcheck.cfg @@ -1,4 +1,6 @@ [rstcheck] report=info ignore_language=rst -ignore_messages=(Duplicate (ex|im)plicit target.*|Hyperlink target ".*" is not referenced\.$) +# salt['config.get']('roles') is misidentified as a Markdown link. +# Ignore for now, but perhaps try to submit a fix upstream in rstcheck +ignore_messages=(Duplicate (ex|im)plicit target.*|Hyperlink target ".*" is not referenced\.$|\(rst\) Link is formatted in Markdown style\.) diff --git a/.rubocop.yml b/.rubocop.yml index bf4d107f..b7762c4a 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -7,7 +7,7 @@ Layout/LineLength: # Based on https://github.com/PyCQA/flake8-bugbear#opinionated-warnings (`B950`) Max: 88 Metrics/BlockLength: - IgnoredMethods: + AllowedMethods: - control - describe # Increase from default of `25` diff --git a/Gemfile b/Gemfile index f4192913..4d608b1a 100644 --- a/Gemfile +++ b/Gemfile @@ -15,9 +15,10 @@ gem 'inspec', git: 'https://gitlab.com/saltstack-formulas/infrastructure/inspec' gem 'kitchen-docker', git: 'https://gitlab.com/saltstack-formulas/infrastructure/kitchen-docker', branch: 'ssf' # rubocop:enable Layout/LineLength -gem 'kitchen-inspec', '>= 2.5.0' -gem 'kitchen-salt', '>= 0.7.2' +gem 'kitchen-inspec', '3.0.0' +gem 'kitchen-salt', '0.7.2' -group :vagrant do - gem 'kitchen-vagrant' -end +# Avoid the error 'pkeys are immutable on OpenSSL 3.0' +gem 'net-ssh', '>= 7.0.0' + +gem 'test-kitchen', '3.7.0' diff --git a/Gemfile.lock b/Gemfile.lock index 79083eba..748a0260 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,24 +1,26 @@ GIT remote: https://gitlab.com/saltstack-formulas/infrastructure/inspec - revision: aaef842906a5666f0fc0b4f186b4dd3498f5b28c + revision: a0c6295303f7d7a4d2a6164b5e77868560b04945 branch: ssf specs: - inspec (5.18.15) + inspec (5.21.15) cookstyle faraday_middleware (>= 0.12.2, < 1.1) - inspec-core (= 5.18.15) + inspec-core (= 5.21.15) mongo (= 2.13.2) progress_bar (~> 1.3.3) rake + roo (~> 2.9.0) + roo-xls train (~> 3.10) train-aws (~> 0.2) train-habitat (~> 0.1) train-winrm (~> 0.2) - inspec-core (5.18.15) + inspec-core (5.21.15) addressable (~> 2.4) chef-telemetry (~> 1.0, >= 1.0.8) - faraday (>= 0.9.0, < 1.5) - faraday_middleware (~> 1.0) + faraday (>= 1, < 3) + faraday-follow_redirects (~> 0.3) hashie (>= 3.4, < 5.0) license-acceptance (>= 0.2.13, < 3.0) method_source (>= 0.8, < 2.0) @@ -40,255 +42,275 @@ GIT GIT remote: https://gitlab.com/saltstack-formulas/infrastructure/kitchen-docker - revision: 9a09bc1e571e25f3ccabf4725ca2048d970fff82 + revision: 104079a1d2fe34f5b076f4d316f6f837fa76e412 branch: ssf specs: - kitchen-docker (2.12.0) + kitchen-docker (2.13.0) test-kitchen (>= 1.0.0) GEM remote: https://rubygems.org/ specs: - activesupport (7.0.3.1) + activesupport (7.1.5.1) + base64 + benchmark (>= 0.3) + bigdecimal concurrent-ruby (~> 1.0, >= 1.0.2) + connection_pool (>= 2.2.5) + drb i18n (>= 1.6, < 2) + logger (>= 1.4.2) minitest (>= 5.1) + mutex_m + securerandom (>= 0.3) tzinfo (~> 2.0) - addressable (2.8.0) - public_suffix (>= 2.0.2, < 5.0) - ast (2.4.2) - aws-eventstream (1.2.0) - aws-partitions (1.607.0) - aws-sdk-alexaforbusiness (1.56.0) - aws-sdk-core (~> 3, >= 3.127.0) + addressable (2.8.7) + public_suffix (>= 2.0.2, < 7.0) + ast (2.4.3) + aws-eventstream (1.3.2) + aws-partitions (1.863.0) + aws-sdk-accessanalyzer (1.44.0) + aws-sdk-core (~> 3, >= 3.188.0) aws-sigv4 (~> 1.1) - aws-sdk-amplify (1.32.0) - aws-sdk-core (~> 3, >= 3.120.0) + aws-sdk-account (1.20.0) + aws-sdk-core (~> 3, >= 3.188.0) aws-sigv4 (~> 1.1) - aws-sdk-apigateway (1.78.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-alexaforbusiness (1.67.0) + aws-sdk-core (~> 3, >= 3.188.0) aws-sigv4 (~> 1.1) - aws-sdk-apigatewayv2 (1.42.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-amplify (1.54.0) + aws-sdk-core (~> 3, >= 3.188.0) aws-sigv4 (~> 1.1) - aws-sdk-applicationautoscaling (1.51.0) - aws-sdk-core (~> 3, >= 3.112.0) + aws-sdk-apigateway (1.90.0) + aws-sdk-core (~> 3, >= 3.188.0) aws-sigv4 (~> 1.1) - aws-sdk-athena (1.55.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-apigatewayv2 (1.53.0) + aws-sdk-core (~> 3, >= 3.188.0) aws-sigv4 (~> 1.1) - aws-sdk-autoscaling (1.63.0) - aws-sdk-core (~> 3, >= 3.112.0) + aws-sdk-applicationautoscaling (1.79.0) + aws-sdk-core (~> 3, >= 3.188.0) aws-sigv4 (~> 1.1) - aws-sdk-batch (1.47.0) - aws-sdk-core (~> 3, >= 3.112.0) + aws-sdk-athena (1.79.0) + aws-sdk-core (~> 3, >= 3.188.0) aws-sigv4 (~> 1.1) - aws-sdk-budgets (1.50.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-autoscaling (1.102.0) + aws-sdk-core (~> 3, >= 3.188.0) aws-sigv4 (~> 1.1) - aws-sdk-cloudformation (1.70.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-batch (1.79.0) + aws-sdk-core (~> 3, >= 3.188.0) aws-sigv4 (~> 1.1) - aws-sdk-cloudfront (1.65.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-budgets (1.62.0) + aws-sdk-core (~> 3, >= 3.188.0) aws-sigv4 (~> 1.1) - aws-sdk-cloudhsm (1.39.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-cloudformation (1.97.0) + aws-sdk-core (~> 3, >= 3.188.0) aws-sigv4 (~> 1.1) - aws-sdk-cloudhsmv2 (1.42.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-cloudfront (1.86.1) + aws-sdk-core (~> 3, >= 3.188.0) aws-sigv4 (~> 1.1) - aws-sdk-cloudtrail (1.49.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-cloudhsm (1.50.0) + aws-sdk-core (~> 3, >= 3.188.0) aws-sigv4 (~> 1.1) - aws-sdk-cloudwatch (1.64.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-cloudhsmv2 (1.53.0) + aws-sdk-core (~> 3, >= 3.188.0) aws-sigv4 (~> 1.1) - aws-sdk-cloudwatchevents (1.46.0) - aws-sdk-core (~> 3, >= 3.112.0) + aws-sdk-cloudtrail (1.74.0) + aws-sdk-core (~> 3, >= 3.188.0) aws-sigv4 (~> 1.1) - aws-sdk-cloudwatchlogs (1.53.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-cloudwatch (1.83.0) + aws-sdk-core (~> 3, >= 3.188.0) aws-sigv4 (~> 1.1) - aws-sdk-codecommit (1.51.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-cloudwatchevents (1.69.0) + aws-sdk-core (~> 3, >= 3.188.0) aws-sigv4 (~> 1.1) - aws-sdk-codedeploy (1.49.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-cloudwatchlogs (1.77.0) + aws-sdk-core (~> 3, >= 3.188.0) aws-sigv4 (~> 1.1) - aws-sdk-codepipeline (1.53.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-codecommit (1.62.0) + aws-sdk-core (~> 3, >= 3.188.0) aws-sigv4 (~> 1.1) - aws-sdk-cognitoidentity (1.31.0) - aws-sdk-core (~> 3, >= 3.112.0) + aws-sdk-codedeploy (1.62.0) + aws-sdk-core (~> 3, >= 3.188.0) aws-sigv4 (~> 1.1) - aws-sdk-cognitoidentityprovider (1.53.0) - aws-sdk-core (~> 3, >= 3.112.0) + aws-sdk-codepipeline (1.67.0) + aws-sdk-core (~> 3, >= 3.188.0) aws-sigv4 (~> 1.1) - aws-sdk-configservice (1.79.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-cognitoidentity (1.51.0) + aws-sdk-core (~> 3, >= 3.188.0) aws-sigv4 (~> 1.1) - aws-sdk-core (3.131.2) - aws-eventstream (~> 1, >= 1.0.2) - aws-partitions (~> 1, >= 1.525.0) + aws-sdk-cognitoidentityprovider (1.85.0) + aws-sdk-core (~> 3, >= 3.188.0) + aws-sigv4 (~> 1.1) + aws-sdk-configservice (1.103.0) + aws-sdk-core (~> 3, >= 3.188.0) aws-sigv4 (~> 1.1) + aws-sdk-core (3.190.3) + aws-eventstream (~> 1, >= 1.3.0) + aws-partitions (~> 1, >= 1.651.0) + aws-sigv4 (~> 1.8) jmespath (~> 1, >= 1.6.1) - aws-sdk-costandusagereportservice (1.40.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-costandusagereportservice (1.53.0) + aws-sdk-core (~> 3, >= 3.188.0) + aws-sigv4 (~> 1.1) + aws-sdk-databasemigrationservice (1.91.0) + aws-sdk-core (~> 3, >= 3.188.0) aws-sigv4 (~> 1.1) - aws-sdk-databasemigrationservice (1.53.0) - aws-sdk-core (~> 3, >= 3.112.0) + aws-sdk-dynamodb (1.98.0) + aws-sdk-core (~> 3, >= 3.188.0) aws-sigv4 (~> 1.1) - aws-sdk-dynamodb (1.75.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-ec2 (1.429.0) + aws-sdk-core (~> 3, >= 3.188.0) aws-sigv4 (~> 1.1) - aws-sdk-ec2 (1.322.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-ecr (1.68.0) + aws-sdk-core (~> 3, >= 3.188.0) aws-sigv4 (~> 1.1) - aws-sdk-ecr (1.56.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-ecrpublic (1.25.0) + aws-sdk-core (~> 3, >= 3.188.0) aws-sigv4 (~> 1.1) - aws-sdk-ecrpublic (1.12.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-ecs (1.135.0) + aws-sdk-core (~> 3, >= 3.188.0) aws-sigv4 (~> 1.1) - aws-sdk-ecs (1.100.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-efs (1.71.0) + aws-sdk-core (~> 3, >= 3.188.0) aws-sigv4 (~> 1.1) - aws-sdk-efs (1.54.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-eks (1.95.0) + aws-sdk-core (~> 3, >= 3.188.0) aws-sigv4 (~> 1.1) - aws-sdk-eks (1.75.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-elasticache (1.95.0) + aws-sdk-core (~> 3, >= 3.188.0) aws-sigv4 (~> 1.1) - aws-sdk-elasticache (1.78.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-elasticbeanstalk (1.63.0) + aws-sdk-core (~> 3, >= 3.188.0) aws-sigv4 (~> 1.1) - aws-sdk-elasticbeanstalk (1.51.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-elasticloadbalancing (1.51.0) + aws-sdk-core (~> 3, >= 3.188.0) aws-sigv4 (~> 1.1) - aws-sdk-elasticloadbalancing (1.40.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-elasticloadbalancingv2 (1.96.0) + aws-sdk-core (~> 3, >= 3.188.0) aws-sigv4 (~> 1.1) - aws-sdk-elasticloadbalancingv2 (1.78.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-elasticsearchservice (1.79.0) + aws-sdk-core (~> 3, >= 3.188.0) aws-sigv4 (~> 1.1) - aws-sdk-elasticsearchservice (1.65.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-emr (1.81.0) + aws-sdk-core (~> 3, >= 3.188.0) aws-sigv4 (~> 1.1) - aws-sdk-emr (1.53.0) - aws-sdk-core (~> 3, >= 3.121.2) + aws-sdk-eventbridge (1.54.0) + aws-sdk-core (~> 3, >= 3.188.0) aws-sigv4 (~> 1.1) - aws-sdk-eventbridge (1.24.0) - aws-sdk-core (~> 3, >= 3.112.0) + aws-sdk-firehose (1.60.0) + aws-sdk-core (~> 3, >= 3.188.0) aws-sigv4 (~> 1.1) - aws-sdk-firehose (1.48.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-glue (1.165.0) + aws-sdk-core (~> 3, >= 3.188.0) aws-sigv4 (~> 1.1) - aws-sdk-glue (1.88.0) - aws-sdk-core (~> 3, >= 3.112.0) + aws-sdk-guardduty (1.85.0) + aws-sdk-core (~> 3, >= 3.188.0) aws-sigv4 (~> 1.1) - aws-sdk-guardduty (1.58.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-iam (1.92.0) + aws-sdk-core (~> 3, >= 3.188.0) aws-sigv4 (~> 1.1) - aws-sdk-iam (1.69.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-kafka (1.67.0) + aws-sdk-core (~> 3, >= 3.188.0) aws-sigv4 (~> 1.1) - aws-sdk-kafka (1.50.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-kinesis (1.54.0) + aws-sdk-core (~> 3, >= 3.188.0) aws-sigv4 (~> 1.1) - aws-sdk-kinesis (1.41.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-kms (1.76.0) + aws-sdk-core (~> 3, >= 3.188.0) aws-sigv4 (~> 1.1) - aws-sdk-kms (1.57.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-lambda (1.113.0) + aws-sdk-core (~> 3, >= 3.188.0) aws-sigv4 (~> 1.1) - aws-sdk-lambda (1.84.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-macie2 (1.64.0) + aws-sdk-core (~> 3, >= 3.188.0) aws-sigv4 (~> 1.1) - aws-sdk-mq (1.40.0) - aws-sdk-core (~> 3, >= 3.120.0) + aws-sdk-mq (1.58.0) + aws-sdk-core (~> 3, >= 3.188.0) aws-sigv4 (~> 1.1) - aws-sdk-networkfirewall (1.17.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-networkfirewall (1.39.0) + aws-sdk-core (~> 3, >= 3.188.0) aws-sigv4 (~> 1.1) - aws-sdk-networkmanager (1.24.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-networkmanager (1.40.0) + aws-sdk-core (~> 3, >= 3.188.0) aws-sigv4 (~> 1.1) - aws-sdk-organizations (1.59.0) - aws-sdk-core (~> 3, >= 3.112.0) + aws-sdk-organizations (1.83.0) + aws-sdk-core (~> 3, >= 3.188.0) aws-sigv4 (~> 1.1) - aws-sdk-ram (1.26.0) - aws-sdk-core (~> 3, >= 3.112.0) + aws-sdk-ram (1.52.0) + aws-sdk-core (~> 3, >= 3.188.0) aws-sigv4 (~> 1.1) - aws-sdk-rds (1.148.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-rds (1.208.0) + aws-sdk-core (~> 3, >= 3.188.0) aws-sigv4 (~> 1.1) - aws-sdk-redshift (1.84.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-redshift (1.107.0) + aws-sdk-core (~> 3, >= 3.188.0) aws-sigv4 (~> 1.1) - aws-sdk-route53 (1.63.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-route53 (1.83.0) + aws-sdk-core (~> 3, >= 3.188.0) aws-sigv4 (~> 1.1) - aws-sdk-route53domains (1.40.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-route53domains (1.54.0) + aws-sdk-core (~> 3, >= 3.188.0) aws-sigv4 (~> 1.1) - aws-sdk-route53resolver (1.37.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-route53resolver (1.51.0) + aws-sdk-core (~> 3, >= 3.188.0) aws-sigv4 (~> 1.1) - aws-sdk-s3 (1.114.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-s3 (1.141.0) + aws-sdk-core (~> 3, >= 3.189.0) aws-sdk-kms (~> 1) - aws-sigv4 (~> 1.4) - aws-sdk-s3control (1.43.0) - aws-sdk-core (~> 3, >= 3.122.0) + aws-sigv4 (~> 1.8) + aws-sdk-s3control (1.74.0) + aws-sdk-core (~> 3, >= 3.188.0) aws-sigv4 (~> 1.1) - aws-sdk-secretsmanager (1.46.0) - aws-sdk-core (~> 3, >= 3.112.0) + aws-sdk-secretsmanager (1.87.0) + aws-sdk-core (~> 3, >= 3.188.0) aws-sigv4 (~> 1.1) - aws-sdk-securityhub (1.67.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-securityhub (1.98.0) + aws-sdk-core (~> 3, >= 3.188.0) aws-sigv4 (~> 1.1) - aws-sdk-servicecatalog (1.60.0) - aws-sdk-core (~> 3, >= 3.112.0) + aws-sdk-servicecatalog (1.90.0) + aws-sdk-core (~> 3, >= 3.188.0) aws-sigv4 (~> 1.1) - aws-sdk-ses (1.41.0) - aws-sdk-core (~> 3, >= 3.120.0) + aws-sdk-ses (1.58.0) + aws-sdk-core (~> 3, >= 3.188.0) aws-sigv4 (~> 1.1) - aws-sdk-shield (1.48.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-shield (1.60.0) + aws-sdk-core (~> 3, >= 3.188.0) aws-sigv4 (~> 1.1) - aws-sdk-signer (1.32.0) - aws-sdk-core (~> 3, >= 3.120.0) + aws-sdk-signer (1.50.0) + aws-sdk-core (~> 3, >= 3.188.0) aws-sigv4 (~> 1.1) - aws-sdk-simpledb (1.29.0) - aws-sdk-core (~> 3, >= 3.120.0) + aws-sdk-simpledb (1.42.0) + aws-sdk-core (~> 3, >= 3.188.0) aws-sigv2 (~> 1.0) - aws-sdk-sms (1.40.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-sms (1.52.0) + aws-sdk-core (~> 3, >= 3.188.0) aws-sigv4 (~> 1.1) - aws-sdk-sns (1.53.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-sns (1.70.0) + aws-sdk-core (~> 3, >= 3.188.0) aws-sigv4 (~> 1.1) - aws-sdk-sqs (1.51.1) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-sqs (1.69.0) + aws-sdk-core (~> 3, >= 3.188.0) aws-sigv4 (~> 1.1) - aws-sdk-ssm (1.137.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-ssm (1.162.0) + aws-sdk-core (~> 3, >= 3.188.0) aws-sigv4 (~> 1.1) - aws-sdk-states (1.39.0) - aws-sdk-core (~> 3, >= 3.112.0) + aws-sdk-states (1.63.0) + aws-sdk-core (~> 3, >= 3.188.0) aws-sigv4 (~> 1.1) - aws-sdk-synthetics (1.19.0) - aws-sdk-core (~> 3, >= 3.121.2) + aws-sdk-synthetics (1.39.0) + aws-sdk-core (~> 3, >= 3.188.0) aws-sigv4 (~> 1.1) - aws-sdk-transfer (1.34.0) - aws-sdk-core (~> 3, >= 3.112.0) + aws-sdk-transfer (1.86.0) + aws-sdk-core (~> 3, >= 3.188.0) aws-sigv4 (~> 1.1) - aws-sdk-waf (1.43.0) - aws-sdk-core (~> 3, >= 3.122.0) + aws-sdk-waf (1.58.0) + aws-sdk-core (~> 3, >= 3.188.0) aws-sigv4 (~> 1.1) - aws-sigv2 (1.1.0) - aws-sigv4 (1.5.0) + aws-sdk-wafv2 (1.74.0) + aws-sdk-core (~> 3, >= 3.188.0) + aws-sigv4 (~> 1.1) + aws-sigv2 (1.2.0) + aws-sigv4 (1.11.0) aws-eventstream (~> 1, >= 1.0.2) azure_graph_rbac (0.17.2) ms_rest_azure (~> 0.12.0) @@ -300,42 +322,75 @@ GEM ms_rest_azure (~> 0.12.0) azure_mgmt_storage (0.23.0) ms_rest_azure (~> 0.12.0) - bcrypt_pbkdf (1.1.0) + base64 (0.2.0) + bcrypt_pbkdf (1.1.1) + bcrypt_pbkdf (1.1.1-x64-mingw-ucrt) + benchmark (0.4.0) + bigdecimal (3.1.9) bson (4.15.0) - builder (3.2.4) - chef-config (17.10.0) + builder (3.3.0) + chef-config (18.7.6) addressable - chef-utils (= 17.10.0) + chef-utils (= 18.7.6) fuzzyurl mixlib-config (>= 2.2.12, < 4.0) mixlib-shellout (>= 2.0, < 4.0) tomlrb (~> 1.2) + chef-gyoku (1.4.5) + builder (>= 2.1.2) + rexml (~> 3.4) chef-telemetry (1.1.1) chef-config concurrent-ruby (~> 1.0) - chef-utils (17.10.0) + chef-utils (18.7.6) concurrent-ruby + chef-winrm (2.3.12) + builder (>= 2.1.2) + chef-gyoku (~> 1.4.0, <= 1.4.5) + erubi (~> 1.8) + ffi (>= 1.15.5, < 1.17.0) + gssapi (~> 1.2) + httpclient (~> 2.2, >= 2.2.0.2) + logging (>= 1.6.1, < 3.0) + nori (= 2.7.0) + rexml (~> 3.3) + rubyntlm (~> 0.6.0, >= 0.6.3) + chef-winrm-elevated (1.2.5) + chef-winrm (>= 2.3.11) + chef-winrm-fs (>= 1.3.7) + erubi (~> 1.8) + chef-winrm-fs (1.3.7) + chef-winrm (>= 2.3.11) + erubi (>= 1.7) + logging (>= 1.6.1, < 3.0) + rubyzip (~> 2.0) coderay (1.1.3) - concurrent-ruby (1.1.10) - cookstyle (7.32.1) - rubocop (= 1.25.1) + concurrent-ruby (1.3.5) + connection_pool (2.5.3) + cookstyle (8.1.2) + rubocop (= 1.75.5) declarative (0.0.20) - diff-lcs (1.5.0) - docker-api (2.2.0) - excon (>= 0.47.0) + diff-lcs (1.6.2) + docker-api (2.4.0) + excon (>= 0.64.0) multi_json - domain_name (0.5.20190701) - unf (>= 0.0.5, < 1.0.0) - ed25519 (1.3.0) - erubi (1.10.0) - excon (0.92.3) - faraday (1.4.3) + domain_name (0.6.20240107) + drb (2.2.1) + ed25519 (1.4.0) + erubi (1.13.1) + excon (1.2.5) + logger + faraday (1.10.4) faraday-em_http (~> 1.0) faraday-em_synchrony (~> 1.0) faraday-excon (~> 1.1) + faraday-httpclient (~> 1.0) + faraday-multipart (~> 1.0) faraday-net_http (~> 1.0) - faraday-net_http_persistent (~> 1.1) - multipart-post (>= 1.2, < 3) + faraday-net_http_persistent (~> 1.0) + faraday-patron (~> 1.0) + faraday-rack (~> 1.0) + faraday-retry (~> 1.0) ruby2_keywords (>= 0.0.4) faraday-cookie_jar (0.0.7) faraday (>= 0.8.0) @@ -343,75 +398,109 @@ GEM faraday-em_http (1.0.0) faraday-em_synchrony (1.0.0) faraday-excon (1.1.0) - faraday-net_http (1.0.1) + faraday-follow_redirects (0.3.0) + faraday (>= 1, < 3) + faraday-httpclient (1.0.1) + faraday-multipart (1.1.0) + multipart-post (~> 2.0) + faraday-net_http (1.0.2) faraday-net_http_persistent (1.2.0) + faraday-patron (1.0.0) + faraday-rack (1.0.0) + faraday-retry (1.0.3) faraday_middleware (1.0.0) faraday (~> 1.0) - ffi (1.15.5) + ffi (1.16.3) + ffi (1.16.3-x64-mingw-ucrt) + ffi-win32-extensions (1.0.4) + ffi fuzzyurl (0.9.0) - google-api-client (0.52.0) + google-apis-admin_directory_v1 (0.46.0) + google-apis-core (>= 0.11.0, < 2.a) + google-apis-cloudkms_v1 (0.41.0) + google-apis-core (>= 0.11.0, < 2.a) + google-apis-cloudresourcemanager_v1 (0.35.0) + google-apis-core (>= 0.11.0, < 2.a) + google-apis-compute_v1 (0.83.0) + google-apis-core (>= 0.11.0, < 2.a) + google-apis-core (0.11.3) addressable (~> 2.5, >= 2.5.1) - googleauth (~> 0.9) - httpclient (>= 2.8.1, < 3.0) + googleauth (>= 0.16.2, < 2.a) + httpclient (>= 2.8.1, < 3.a) mini_mime (~> 1.0) representable (~> 3.0) - retriable (>= 2.0, < 4.0) + retriable (>= 2.0, < 4.a) rexml - signet (~> 0.12) - googleauth (0.14.0) - faraday (>= 0.17.3, < 2.0) + google-apis-iam_v1 (0.50.0) + google-apis-core (>= 0.11.0, < 2.a) + google-apis-monitoring_v3 (0.51.0) + google-apis-core (>= 0.11.0, < 2.a) + google-apis-storage_v1 (0.30.0) + google-apis-core (>= 0.11.0, < 2.a) + googleauth (1.8.1) + faraday (>= 0.17.3, < 3.a) jwt (>= 1.4, < 3.0) - memoist (~> 0.16) multi_json (~> 1.11) os (>= 0.9, < 2.0) - signet (~> 0.14) + signet (>= 0.16, < 2.a) gssapi (1.3.1) ffi (>= 1.0.1) gyoku (1.4.0) builder (>= 2.1.2) rexml (~> 3.0) hashie (4.1.0) - highline (2.0.3) - http-cookie (1.0.5) + highline (3.1.2) + reline + http-cookie (1.0.8) domain_name (~> 0.5) - httpclient (2.8.3) - i18n (1.12.0) + httpclient (2.9.0) + mutex_m + i18n (1.14.7) concurrent-ruby (~> 1.0) inifile (3.0.0) - jmespath (1.6.1) - json (2.6.2) - jwt (2.4.1) - kitchen-inspec (2.6.1) + io-console (0.8.0) + jmespath (1.6.2) + json (2.12.0) + jwt (2.10.1) + base64 + kitchen-inspec (3.0.0) hashie (>= 3.4, <= 5.0) inspec (>= 2.2.64, < 7.0) test-kitchen (>= 2.7, < 4) kitchen-salt (0.7.2) hashie (>= 3.5) test-kitchen (>= 1.4) - kitchen-vagrant (1.12.0) - test-kitchen (>= 1.4, < 4) + language_server-protocol (3.17.0.5) license-acceptance (2.1.13) pastel (~> 0.7) tomlrb (>= 1.2, < 3.0) tty-box (~> 0.6) tty-prompt (~> 0.20) + lint_roller (1.1.0) little-plugger (1.1.4) - logging (2.3.1) + logger (1.7.0) + logging (2.4.0) little-plugger (~> 1.1) multi_json (~> 1.14) - memoist (0.16.2) - method_source (1.0.0) - mini_mime (1.1.2) - minitest (5.16.2) + method_source (1.1.0) + mini_mime (1.1.5) + mini_portile2 (2.8.9) + minitest (5.25.5) mixlib-config (3.0.27) tomlrb - mixlib-install (3.12.19) + mixlib-install (3.12.30) mixlib-shellout mixlib-versioning thor - mixlib-log (3.0.9) - mixlib-shellout (3.2.7) + mixlib-log (3.2.3) + ffi (>= 1.15.5) + mixlib-shellout (3.3.9) chef-utils + mixlib-shellout (3.3.9-x64-mingw-ucrt) + chef-utils + ffi-win32-extensions (~> 1.0.3) + win32-process (~> 0.9) + wmi-lite (~> 1.0) mixlib-versioning (1.2.12) mongo (2.13.2) bson (>= 4.8.2, < 5.0.0) @@ -425,199 +514,239 @@ GEM faraday-cookie_jar (~> 0.0.6) ms_rest (~> 0.7.6) multi_json (1.15.0) - multipart-post (2.2.3) - net-scp (3.0.0) - net-ssh (>= 2.6.5, < 7.0.0) - net-ssh (6.1.0) + multipart-post (2.4.1) + mutex_m (0.3.0) + net-scp (4.1.0) + net-ssh (>= 2.6.5, < 8.0.0) + net-ssh (7.3.0) net-ssh-gateway (2.0.0) net-ssh (>= 4.0.0) - nori (2.6.0) + nokogiri (1.18.8) + mini_portile2 (~> 2.8.2) + racc (~> 1.4) + nokogiri (1.18.8-x64-mingw-ucrt) + racc (~> 1.4) + nori (2.7.0) + bigdecimal options (2.3.2) os (1.1.4) - parallel (1.22.1) - parser (3.1.2.0) + parallel (1.27.0) + parser (3.3.8.0) ast (~> 2.4.1) + racc parslet (1.8.2) pastel (0.8.0) tty-color (~> 0.5) - progress_bar (1.3.3) - highline (>= 1.6, < 3) + prism (1.4.0) + progress_bar (1.3.4) + highline (>= 1.6) options (~> 2.3.0) - pry (0.14.1) + pry (0.15.2) coderay (~> 1.1) method_source (~> 1.0) - public_suffix (4.0.7) + public_suffix (6.0.2) + racc (1.8.1) rainbow (3.1.1) - rake (13.0.6) - regexp_parser (2.5.0) + rake (13.2.1) + regexp_parser (2.10.0) + reline (0.6.1) + io-console (~> 0.5) representable (3.2.0) declarative (< 0.1.0) trailblazer-option (>= 0.1.1, < 0.2.0) uber (< 0.2.0) retriable (3.1.2) - rexml (3.2.5) + rexml (3.4.1) + roo (2.9.0) + nokogiri (~> 1) + rubyzip (>= 1.3.0, < 3.0.0) + roo-xls (1.2.0) + nokogiri + roo (>= 2.0.0, < 3) + spreadsheet (> 0.9.0) rspec (3.11.0) rspec-core (~> 3.11.0) rspec-expectations (~> 3.11.0) rspec-mocks (~> 3.11.0) rspec-core (3.11.0) rspec-support (~> 3.11.0) - rspec-expectations (3.11.0) + rspec-expectations (3.11.1) diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.11.0) - rspec-its (1.3.0) + rspec-its (1.3.1) rspec-core (>= 3.0.0) rspec-expectations (>= 3.0.0) - rspec-mocks (3.11.1) + rspec-mocks (3.11.2) diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.11.0) - rspec-support (3.11.0) - rubocop (1.25.1) + rspec-support (3.11.1) + rubocop (1.75.5) + json (~> 2.3) + language_server-protocol (~> 3.17.0.2) + lint_roller (~> 1.1.0) parallel (~> 1.10) - parser (>= 3.1.0.0) + parser (>= 3.3.0.2) rainbow (>= 2.2.2, < 4.0) - regexp_parser (>= 1.8, < 3.0) - rexml - rubocop-ast (>= 1.15.1, < 2.0) + regexp_parser (>= 2.9.3, < 3.0) + rubocop-ast (>= 1.44.0, < 2.0) ruby-progressbar (~> 1.7) - unicode-display_width (>= 1.4.0, < 3.0) - rubocop-ast (1.19.1) - parser (>= 3.1.1.0) - ruby-progressbar (1.11.0) + unicode-display_width (>= 2.4.0, < 4.0) + rubocop-ast (1.44.1) + parser (>= 3.3.7.2) + prism (~> 1.4) + ruby-ole (1.2.13.1) + ruby-progressbar (1.13.0) ruby2_keywords (0.0.5) - rubyntlm (0.6.3) - rubyzip (2.3.2) + rubyntlm (0.6.5) + base64 + rubyzip (2.4.1) + securerandom (0.4.1) semverse (3.0.2) - signet (0.17.0) + signet (0.20.0) addressable (~> 2.8) faraday (>= 0.17.5, < 3.a) jwt (>= 1.5, < 3.0) multi_json (~> 1.10) + spreadsheet (1.3.4) + bigdecimal + logger + ruby-ole sslshake (1.3.1) strings (0.2.1) strings-ansi (~> 0.2) unicode-display_width (>= 1.5, < 3.0) unicode_utils (~> 1.4) strings-ansi (0.2.0) - test-kitchen (3.3.1) + test-kitchen (3.7.0) bcrypt_pbkdf (~> 1.0) chef-utils (>= 16.4.35) ed25519 (~> 1.2) license-acceptance (>= 1.0.11, < 3.0) mixlib-install (~> 3.6) mixlib-shellout (>= 1.2, < 4.0) - net-scp (>= 1.1, < 4.0) - net-ssh (>= 2.9, < 7.0) + net-scp (>= 1.1, < 5.0) + net-ssh (>= 2.9, < 8.0) net-ssh-gateway (>= 1.2, < 3.0) thor (>= 0.19, < 2.0) winrm (~> 2.0) winrm-elevated (~> 1.0) winrm-fs (~> 1.1) - thor (1.2.1) + thor (1.3.2) timeliness (0.3.10) tomlrb (1.3.0) trailblazer-option (0.1.2) - train (3.10.1) - activesupport (>= 6.0.3.1) + train (3.12.13) + activesupport (>= 6.0.3.1, < 7.2.0) azure_graph_rbac (~> 0.16) azure_mgmt_key_vault (~> 0.17) azure_mgmt_resources (~> 0.15) azure_mgmt_security (~> 0.18) azure_mgmt_storage (~> 0.18) docker-api (>= 1.26, < 3.0) - google-api-client (>= 0.23.9, <= 0.52.0) - googleauth (>= 0.6.6, <= 0.14.0) + google-apis-admin_directory_v1 (~> 0.46.0) + google-apis-cloudkms_v1 (~> 0.41.0) + google-apis-cloudresourcemanager_v1 (~> 0.35.0) + google-apis-compute_v1 (~> 0.83.0) + google-apis-iam_v1 (~> 0.50.0) + google-apis-monitoring_v3 (~> 0.51.0) + google-apis-storage_v1 (~> 0.30.0) + googleauth (>= 0.16.2, < 1.9.0) inifile (~> 3.0) - train-core (= 3.10.1) - train-winrm (~> 0.2) - train-aws (0.2.24) - aws-sdk-alexaforbusiness (~> 1.0) - aws-sdk-amplify (~> 1.32.0) - aws-sdk-apigateway (~> 1.0) - aws-sdk-apigatewayv2 (~> 1.0) - aws-sdk-applicationautoscaling (>= 1.46, < 1.52) - aws-sdk-athena (~> 1.0) - aws-sdk-autoscaling (>= 1.22, < 1.64) - aws-sdk-batch (>= 1.36, < 1.48) - aws-sdk-budgets (~> 1.0) - aws-sdk-cloudformation (~> 1.0) - aws-sdk-cloudfront (~> 1.0) - aws-sdk-cloudhsm (~> 1.0) - aws-sdk-cloudhsmv2 (~> 1.0) - aws-sdk-cloudtrail (~> 1.8) - aws-sdk-cloudwatch (~> 1.13) - aws-sdk-cloudwatchevents (>= 1.36, < 1.47) - aws-sdk-cloudwatchlogs (~> 1.13) - aws-sdk-codecommit (~> 1.0) - aws-sdk-codedeploy (~> 1.0) - aws-sdk-codepipeline (~> 1.0) - aws-sdk-cognitoidentity (>= 1.26, < 1.32) - aws-sdk-cognitoidentityprovider (>= 1.46, < 1.54) - aws-sdk-configservice (~> 1.21) - aws-sdk-core (~> 3.0) - aws-sdk-costandusagereportservice (~> 1.6) - aws-sdk-databasemigrationservice (>= 1.42, < 1.54) - aws-sdk-dynamodb (~> 1.31) - aws-sdk-ec2 (~> 1.70) - aws-sdk-ecr (~> 1.18) - aws-sdk-ecrpublic (~> 1.3) - aws-sdk-ecs (~> 1.30) - aws-sdk-efs (~> 1.0) - aws-sdk-eks (~> 1.9) - aws-sdk-elasticache (~> 1.0) - aws-sdk-elasticbeanstalk (~> 1.0) - aws-sdk-elasticloadbalancing (~> 1.8) - aws-sdk-elasticloadbalancingv2 (~> 1.0) - aws-sdk-elasticsearchservice (~> 1.0) - aws-sdk-emr (~> 1.53.0) - aws-sdk-eventbridge (~> 1.24.0) - aws-sdk-firehose (~> 1.0) - aws-sdk-glue (>= 1.71, < 1.89) - aws-sdk-guardduty (~> 1.31) - aws-sdk-iam (~> 1.13) - aws-sdk-kafka (~> 1.0) - aws-sdk-kinesis (~> 1.0) - aws-sdk-kms (~> 1.13) - aws-sdk-lambda (~> 1.0) - aws-sdk-mq (~> 1.40.0) - aws-sdk-networkfirewall (>= 1.6.0) - aws-sdk-networkmanager (>= 1.13.0) - aws-sdk-organizations (>= 1.17, < 1.60) - aws-sdk-ram (>= 1.21, < 1.27) - aws-sdk-rds (~> 1.43) - aws-sdk-redshift (~> 1.0) - aws-sdk-route53 (~> 1.0) - aws-sdk-route53domains (~> 1.0) - aws-sdk-route53resolver (~> 1.0) - aws-sdk-s3 (~> 1.30) - aws-sdk-s3control (~> 1.43.0) - aws-sdk-secretsmanager (>= 1.42, < 1.47) - aws-sdk-securityhub (~> 1.0) - aws-sdk-servicecatalog (>= 1.48, < 1.61) - aws-sdk-ses (~> 1.41.0) - aws-sdk-shield (~> 1.30) - aws-sdk-signer (~> 1.32.0) - aws-sdk-simpledb (~> 1.29.0) - aws-sdk-sms (~> 1.0) - aws-sdk-sns (~> 1.9) - aws-sdk-sqs (~> 1.10) - aws-sdk-ssm (~> 1.0) - aws-sdk-states (>= 1.35, < 1.40) - aws-sdk-synthetics (~> 1.19.0) - aws-sdk-transfer (>= 1.26, < 1.35) - aws-sdk-waf (~> 1.43.0) - train-core (3.10.1) + train-core (= 3.12.13) + train-winrm (~> 0.2.19) + train-aws (0.2.41) + aws-partitions (~> 1.863.0) + aws-sdk-accessanalyzer (~> 1.44.0) + aws-sdk-account (~> 1.20.0) + aws-sdk-alexaforbusiness (~> 1.67.0) + aws-sdk-amplify (~> 1.54.0) + aws-sdk-apigateway (~> 1.90.0) + aws-sdk-apigatewayv2 (~> 1.53.0) + aws-sdk-applicationautoscaling (~> 1.79.0) + aws-sdk-athena (>= 1.78, < 1.80) + aws-sdk-autoscaling (= 1.102.0) + aws-sdk-batch (~> 1.79.0) + aws-sdk-budgets (~> 1.62.0) + aws-sdk-cloudformation (>= 1.96, < 1.98) + aws-sdk-cloudfront (~> 1.86.0) + aws-sdk-cloudhsm (~> 1.50.0) + aws-sdk-cloudhsmv2 (~> 1.53.0) + aws-sdk-cloudtrail (~> 1.74.0) + aws-sdk-cloudwatch (~> 1.83.0) + aws-sdk-cloudwatchevents (~> 1.69.0) + aws-sdk-cloudwatchlogs (~> 1.75) + aws-sdk-codecommit (~> 1.62.0) + aws-sdk-codedeploy (~> 1.62.0) + aws-sdk-codepipeline (~> 1.67.0) + aws-sdk-cognitoidentity (~> 1.51.0) + aws-sdk-cognitoidentityprovider (~> 1.84) + aws-sdk-configservice (~> 1.103.0) + aws-sdk-core (~> 3.190.0) + aws-sdk-costandusagereportservice (~> 1.53.0) + aws-sdk-databasemigrationservice (~> 1.91.0) + aws-sdk-dynamodb (~> 1.98.0) + aws-sdk-ec2 (>= 1.427, < 1.430) + aws-sdk-ecr (~> 1.68.0) + aws-sdk-ecrpublic (~> 1.25.0) + aws-sdk-ecs (~> 1.135.0) + aws-sdk-efs (~> 1.71.0) + aws-sdk-eks (~> 1.95.0) + aws-sdk-elasticache (~> 1.95.0) + aws-sdk-elasticbeanstalk (~> 1.63.0) + aws-sdk-elasticloadbalancing (~> 1.51.0) + aws-sdk-elasticloadbalancingv2 (~> 1.96.0) + aws-sdk-elasticsearchservice (~> 1.79.0) + aws-sdk-emr (~> 1.81.0) + aws-sdk-eventbridge (~> 1.54.0) + aws-sdk-firehose (~> 1.60.0) + aws-sdk-glue (~> 1.164) + aws-sdk-guardduty (~> 1.85.0) + aws-sdk-iam (~> 1.92.0) + aws-sdk-kafka (~> 1.67.0) + aws-sdk-kinesis (~> 1.54.0) + aws-sdk-kms (~> 1.74) + aws-sdk-lambda (~> 1.113.0) + aws-sdk-macie2 (~> 1.64.0) + aws-sdk-mq (~> 1.58.0) + aws-sdk-networkfirewall (~> 1.39.0) + aws-sdk-networkmanager (~> 1.40.0) + aws-sdk-organizations (~> 1.83.0) + aws-sdk-ram (~> 1.52.0) + aws-sdk-rds (~> 1.208.0) + aws-sdk-redshift (~> 1.107.0) + aws-sdk-route53 (~> 1.83.0) + aws-sdk-route53domains (~> 1.54.0) + aws-sdk-route53resolver (~> 1.51.0) + aws-sdk-s3 (~> 1.141.0) + aws-sdk-s3control (~> 1.74.0) + aws-sdk-secretsmanager (~> 1.87.0) + aws-sdk-securityhub (~> 1.98.0) + aws-sdk-servicecatalog (~> 1.90.0) + aws-sdk-ses (~> 1.58.0) + aws-sdk-shield (~> 1.60.0) + aws-sdk-signer (~> 1.50.0) + aws-sdk-simpledb (~> 1.42.0) + aws-sdk-sms (~> 1.52.0) + aws-sdk-sns (~> 1.70.0) + aws-sdk-sqs (~> 1.69.0) + aws-sdk-ssm (~> 1.162.0) + aws-sdk-states (~> 1.63.0) + aws-sdk-synthetics (~> 1.39.0) + aws-sdk-transfer (~> 1.86.0) + aws-sdk-waf (~> 1.58.0) + aws-sdk-wafv2 (~> 1.74.0) + train-core (3.12.13) addressable (~> 2.5) ffi (!= 1.13.0) json (>= 1.8, < 3.0) mixlib-shellout (>= 2.0, < 4.0) - net-scp (>= 1.2, < 4.0) - net-ssh (>= 2.9, < 7.0) + net-scp (>= 1.2, < 5.0) + net-ssh (>= 2.9, < 8.0) train-habitat (0.2.22) - train-winrm (0.2.13) - winrm (>= 2.3.6, < 3.0) - winrm-elevated (~> 1.2.2) - winrm-fs (~> 1.0) + train-winrm (0.2.19) + chef-winrm (~> 2.3.12) + chef-winrm-elevated (~> 1.2.5) + chef-winrm-fs (~> 1.3.7) tty-box (0.7.0) pastel (~> 0.8) strings (~> 0.2.0) @@ -631,20 +760,19 @@ GEM tty-cursor (~> 0.7) tty-screen (~> 0.8) wisper (~> 2.0) - tty-screen (0.8.1) + tty-screen (0.8.2) tty-table (0.12.0) pastel (~> 0.8) strings (~> 0.2.0) tty-screen (~> 0.8) - tzinfo (2.0.4) + tzinfo (2.0.6) concurrent-ruby (~> 1.0) uber (0.1.0) - unf (0.1.4) - unf_ext - unf_ext (0.0.8.2) - unicode-display_width (2.2.0) + unicode-display_width (2.6.0) unicode_utils (1.4.0) - winrm (2.3.6) + win32-process (0.10.0) + ffi (>= 1.0.0) + winrm (2.3.8) builder (>= 2.1.2) erubi (~> 1.8) gssapi (~> 1.2) @@ -652,6 +780,7 @@ GEM httpclient (~> 2.2, >= 2.2.0.2) logging (>= 1.6.1, < 3.0) nori (~> 2.0) + rexml (~> 3.0) rubyntlm (~> 0.6.0, >= 0.6.3) winrm-elevated (1.2.3) erubi (~> 1.8) @@ -663,16 +792,19 @@ GEM rubyzip (~> 2.0) winrm (~> 2.0) wisper (2.0.1) + wmi-lite (1.0.7) PLATFORMS ruby + x64-mingw-ucrt DEPENDENCIES inspec! kitchen-docker! - kitchen-inspec (>= 2.5.0) - kitchen-salt (>= 0.7.2) - kitchen-vagrant + kitchen-inspec (= 3.0.0) + kitchen-salt (= 0.7.2) + net-ssh (>= 7.0.0) + test-kitchen (= 3.7.0) BUNDLED WITH - 2.1.2 + 2.3.7 diff --git a/commitlint.config.js b/commitlint.config.js index 4eb37f40..10160835 100644 --- a/commitlint.config.js +++ b/commitlint.config.js @@ -5,4 +5,10 @@ module.exports = { 'footer-max-line-length': [2, 'always', 120], 'header-max-length': [2, 'always', 72], }, + ignores: [ + (commit) => commit.startsWith("chore(copier):"), + (commit) => commit.startsWith("chore(deps):"), + (commit) => commit.startsWith("ci(pre-commit.ci):"), + (commit) => commit.startsWith("[CI merge]") + ], }; diff --git a/kitchen.yml b/kitchen.yml index b71053b0..53b2ecbd 100644 --- a/kitchen.yml +++ b/kitchen.yml @@ -18,245 +18,219 @@ provisioner: - .kitchen - .git -platforms: - ## SALT `tiamat` - - name: debian-11-tiamat-py3 - driver: - image: saltimages/salt-tiamat-py3:debian-11 - run_command: /lib/systemd/systemd - - name: debian-10-tiamat-py3 - driver: - image: saltimages/salt-tiamat-py3:debian-10 - run_command: /lib/systemd/systemd - - name: debian-9-tiamat-py3 - driver: - image: saltimages/salt-tiamat-py3:debian-9 - run_command: /lib/systemd/systemd - - name: ubuntu-2204-tiamat-py3 - driver: - image: saltimages/salt-tiamat-py3:ubuntu-22.04 - run_command: /lib/systemd/systemd - - name: ubuntu-2004-tiamat-py3 - driver: - image: saltimages/salt-tiamat-py3:ubuntu-20.04 - run_command: /lib/systemd/systemd - - name: ubuntu-1804-tiamat-py3 - driver: - image: saltimages/salt-tiamat-py3:ubuntu-18.04 - run_command: /lib/systemd/systemd - - name: centos-stream8-tiamat-py3 - driver: - image: saltimages/salt-tiamat-py3:centos-stream8 - - name: centos-7-tiamat-py3 - driver: - image: saltimages/salt-tiamat-py3:centos-7 - - name: amazonlinux-2-tiamat-py3 - driver: - image: saltimages/salt-tiamat-py3:amazonlinux-2 - - name: oraclelinux-8-tiamat-py3 - driver: - image: saltimages/salt-tiamat-py3:oraclelinux-8 - - name: oraclelinux-7-tiamat-py3 - driver: - image: saltimages/salt-tiamat-py3:oraclelinux-7 - - name: almalinux-8-tiamat-py3 - driver: - image: saltimages/salt-tiamat-py3:almalinux-8 - - name: rockylinux-8-tiamat-py3 - driver: - image: saltimages/salt-tiamat-py3:rockylinux-8 +transport: + # Avoid lengthy waits when a container does not launch correctly + max_wait_until_ready: 60 +platforms: ## SALT `master` - - name: debian-11-master-py3 + - name: debian-12-master driver: - image: saltimages/salt-master-py3:debian-11 + image: saltimages/salt-master-py3:debian-12 run_command: /lib/systemd/systemd - - name: debian-10-master-py3 + - name: debian-11-master driver: - image: saltimages/salt-master-py3:debian-10 + image: saltimages/salt-master-py3:debian-11 run_command: /lib/systemd/systemd - - name: debian-9-master-py3 + - name: ubuntu-2404-master driver: - image: saltimages/salt-master-py3:debian-9 + image: saltimages/salt-master-py3:ubuntu-24.04 run_command: /lib/systemd/systemd - - name: ubuntu-2204-master-py3 + - name: ubuntu-2204-master driver: image: saltimages/salt-master-py3:ubuntu-22.04 run_command: /lib/systemd/systemd - - name: ubuntu-2004-master-py3 + - name: ubuntu-2004-master driver: image: saltimages/salt-master-py3:ubuntu-20.04 run_command: /lib/systemd/systemd - - name: ubuntu-1804-master-py3 - driver: - image: saltimages/salt-master-py3:ubuntu-18.04 - run_command: /lib/systemd/systemd - - name: centos-stream8-master-py3 - driver: - image: saltimages/salt-master-py3:centos-stream8 - - name: centos-7-master-py3 + - name: centos-stream9-master driver: - image: saltimages/salt-master-py3:centos-7 - - name: fedora-36-master-py3 + image: saltimages/salt-master-py3:centos-stream9 + - name: opensuse-leap-156-master driver: - image: saltimages/salt-master-py3:fedora-36 - - name: fedora-35-master-py3 - driver: - image: saltimages/salt-master-py3:fedora-35 - - name: opensuse-leap-153-master-py3 - driver: - image: saltimages/salt-master-py3:opensuse-leap-15.3 - # Workaround to avoid intermittent failures on `opensuse-leap-15.3`: + image: saltimages/salt-master-py3:opensuse-leap-15.6 + # Workaround to avoid intermittent failures on `opensuse-leap-15.6`: # => SCP did not finish successfully (255): (Net::SCP::Error) transport: max_ssh_sessions: 1 - - name: opensuse-tmbl-latest-master-py3 + - name: opensuse-tmbl-latest-master driver: image: saltimages/salt-master-py3:opensuse-tumbleweed-latest # Workaround to avoid intermittent failures on `opensuse-tumbleweed`: # => SCP did not finish successfully (255): (Net::SCP::Error) transport: max_ssh_sessions: 1 - - name: amazonlinux-2-master-py3 + - name: fedora-41-master driver: - image: saltimages/salt-master-py3:amazonlinux-2 - - name: oraclelinux-8-master-py3 + image: saltimages/salt-master-py3:fedora-41 + - name: fedora-40-master driver: - image: saltimages/salt-master-py3:oraclelinux-8 - - name: oraclelinux-7-master-py3 + image: saltimages/salt-master-py3:fedora-40 + - name: amazonlinux-2023-master driver: - image: saltimages/salt-master-py3:oraclelinux-7 - - name: arch-base-latest-master-py3 + image: saltimages/salt-master-py3:amazonlinux-2023 + - name: oraclelinux-9-master driver: - image: saltimages/salt-master-py3:arch-base-latest - - name: gentoo-stage3-latest-master-py3 + image: saltimages/salt-master-py3:oraclelinux-9 + - name: oraclelinux-8-master driver: - image: saltimages/salt-master-py3:gentoo-stage3-latest - run_command: /sbin/init - - name: gentoo-stage3-systemd-master-py3 + image: saltimages/salt-master-py3:oraclelinux-8 + - name: almalinux-9-master driver: - image: saltimages/salt-master-py3:gentoo-stage3-systemd - - name: almalinux-8-master-py3 + image: saltimages/salt-master-py3:almalinux-9 + - name: almalinux-8-master driver: image: saltimages/salt-master-py3:almalinux-8 - - name: rockylinux-8-master-py3 + - name: rockylinux-9-master + driver: + image: saltimages/salt-master-py3:rockylinux-9 + - name: rockylinux-8-master driver: image: saltimages/salt-master-py3:rockylinux-8 - ## SALT `3004.1` - - name: debian-11-3004-1-py3 + ## SALT `3007.4` + - name: debian-12-3007-4 driver: - image: saltimages/salt-3004.1-py3:debian-11 + image: saltimages/salt-3007.4-py3:debian-12 run_command: /lib/systemd/systemd - - name: debian-10-3004-1-py3 + - name: debian-11-3007-4 driver: - image: saltimages/salt-3004.1-py3:debian-10 + image: saltimages/salt-3007.4-py3:debian-11 run_command: /lib/systemd/systemd - - name: debian-9-3004-1-py3 + - name: ubuntu-2404-3007-4 driver: - image: saltimages/salt-3004.1-py3:debian-9 + image: saltimages/salt-3007.4-py3:ubuntu-24.04 run_command: /lib/systemd/systemd - - name: ubuntu-2204-3004-1-py3 + - name: ubuntu-2204-3007-4 driver: - image: saltimages/salt-3004.1-py3:ubuntu-22.04 + image: saltimages/salt-3007.4-py3:ubuntu-22.04 run_command: /lib/systemd/systemd - - name: ubuntu-2004-3004-1-py3 + - name: ubuntu-2004-3007-4 driver: - image: saltimages/salt-3004.1-py3:ubuntu-20.04 + image: saltimages/salt-3007.4-py3:ubuntu-20.04 run_command: /lib/systemd/systemd - - name: ubuntu-1804-3004-1-py3 + - name: centos-stream9-3007-4 driver: - image: saltimages/salt-3004.1-py3:ubuntu-18.04 - run_command: /lib/systemd/systemd - - name: centos-stream8-3004-1-py3 + image: saltimages/salt-3007.4-py3:centos-stream9 + - name: opensuse-leap-156-3007-4 driver: - image: saltimages/salt-3004.1-py3:centos-stream8 - - name: centos-7-3004-1-py3 + image: saltimages/salt-3007.4-py3:opensuse-leap-15.6 + # Workaround to avoid intermittent failures on `opensuse-leap-15.6`: + # => SCP did not finish successfully (255): (Net::SCP::Error) + transport: + max_ssh_sessions: 1 + - name: opensuse-tmbl-latest-3007-4 driver: - image: saltimages/salt-3004.1-py3:centos-7 - - name: fedora-36-3004-1-py3 + image: saltimages/salt-3007.4-py3:opensuse-tumbleweed-latest + # Workaround to avoid intermittent failures on `opensuse-tumbleweed`: + # => SCP did not finish successfully (255): (Net::SCP::Error) + transport: + max_ssh_sessions: 1 + - name: fedora-41-3007-4 driver: - image: saltimages/salt-3004.1-py3:fedora-36 - - name: fedora-35-3004-1-py3 + image: saltimages/salt-3007.4-py3:fedora-41 + - name: fedora-40-3007-4 driver: - image: saltimages/salt-3004.1-py3:fedora-35 - - name: amazonlinux-2-3004-1-py3 + image: saltimages/salt-3007.4-py3:fedora-40 + - name: amazonlinux-2023-3007-4 driver: - image: saltimages/salt-3004.1-py3:amazonlinux-2 - - name: oraclelinux-8-3004-1-py3 + image: saltimages/salt-3007.4-py3:amazonlinux-2023 + - name: amazonlinux-2-3007-4 driver: - image: saltimages/salt-3004.1-py3:oraclelinux-8 - - name: oraclelinux-7-3004-1-py3 + image: saltimages/salt-3007.4-py3:amazonlinux-2 + - name: oraclelinux-9-3007-4 driver: - image: saltimages/salt-3004.1-py3:oraclelinux-7 - - name: arch-base-latest-3004-1-py3 + image: saltimages/salt-3007.4-py3:oraclelinux-9 + - name: oraclelinux-8-3007-4 driver: - image: saltimages/salt-3004.1-py3:arch-base-latest - - name: gentoo-stage3-latest-3004-1-py3 + image: saltimages/salt-3007.4-py3:oraclelinux-8 + - name: almalinux-9-3007-4 driver: - image: saltimages/salt-3004.1-py3:gentoo-stage3-latest - run_command: /sbin/init - - name: gentoo-stage3-systemd-3004-1-py3 + image: saltimages/salt-3007.4-py3:almalinux-9 + - name: almalinux-8-3007-4 driver: - image: saltimages/salt-3004.1-py3:gentoo-stage3-systemd - - name: almalinux-8-3004-1-py3 + image: saltimages/salt-3007.4-py3:almalinux-8 + - name: rockylinux-9-3007-4 driver: - image: saltimages/salt-3004.1-py3:almalinux-8 - - name: rockylinux-8-3004-1-py3 + image: saltimages/salt-3007.4-py3:rockylinux-9 + - name: rockylinux-8-3007-4 driver: - image: saltimages/salt-3004.1-py3:rockylinux-8 + image: saltimages/salt-3007.4-py3:rockylinux-8 - ## SALT `3004.0` - - name: opensuse-leap-153-3004-0-py3 + ## SALT `3006.12` + - name: debian-12-3006-12 + driver: + image: saltimages/salt-3006.12-py3:debian-12 + run_command: /lib/systemd/systemd + - name: debian-11-3006-12 driver: - image: saltimages/salt-3004.0-py3:opensuse-leap-15.3 - # Workaround to avoid intermittent failures on `opensuse-leap-15.3`: + image: saltimages/salt-3006.12-py3:debian-11 + run_command: /lib/systemd/systemd + - name: ubuntu-2404-3006-12 + driver: + image: saltimages/salt-3006.12-py3:ubuntu-24.04 + run_command: /lib/systemd/systemd + - name: ubuntu-2204-3006-12 + driver: + image: saltimages/salt-3006.12-py3:ubuntu-22.04 + run_command: /lib/systemd/systemd + - name: ubuntu-2004-3006-12 + driver: + image: saltimages/salt-3006.12-py3:ubuntu-20.04 + run_command: /lib/systemd/systemd + - name: centos-stream9-3006-12 + driver: + image: saltimages/salt-3006.12-py3:centos-stream9 + - name: opensuse-tmbl-latest-3006-12 + driver: + image: saltimages/salt-3006.12-py3:opensuse-tumbleweed-latest + # Workaround to avoid intermittent failures on `opensuse-tumbleweed`: # => SCP did not finish successfully (255): (Net::SCP::Error) transport: max_ssh_sessions: 1 - - name: opensuse-tmbl-latest-3004-0-py3 + - name: opensuse-leap-156-3006-12 driver: - image: saltimages/salt-3004.0-py3:opensuse-tumbleweed-latest - # Workaround to avoid intermittent failures on `opensuse-tumbleweed`: + image: saltimages/salt-3006.12-py3:opensuse-leap-15.6 + # Workaround to avoid intermittent failures on `opensuse-leap-15.6`: # => SCP did not finish successfully (255): (Net::SCP::Error) transport: max_ssh_sessions: 1 - - ## SALT `3003.4` - - name: debian-10-3003-4-py3 + - name: fedora-41-3006-12 driver: - image: saltimages/salt-3003.4-py3:debian-10 - run_command: /lib/systemd/systemd - - name: debian-9-3003-4-py3 + image: saltimages/salt-3006.12-py3:fedora-41 + - name: fedora-40-3006-12 driver: - image: saltimages/salt-3003.4-py3:debian-9 - run_command: /lib/systemd/systemd - - name: ubuntu-2004-3003-4-py3 + image: saltimages/salt-3006.12-py3:fedora-40 + - name: amazonlinux-2023-3006-12 driver: - image: saltimages/salt-3003.4-py3:ubuntu-20.04 - run_command: /lib/systemd/systemd - - name: ubuntu-1804-3003-4-py3 + image: saltimages/salt-3006.12-py3:amazonlinux-2023 + - name: amazonlinux-2-3006-12 driver: - image: saltimages/salt-3003.4-py3:ubuntu-18.04 - run_command: /lib/systemd/systemd - - name: centos-stream8-3003-4-py3 + image: saltimages/salt-3006.12-py3:amazonlinux-2 + - name: oraclelinux-9-3006-12 driver: - image: saltimages/salt-3003.4-py3:centos-stream8 - - name: centos-7-3003-4-py3 + image: saltimages/salt-3006.12-py3:oraclelinux-9 + - name: oraclelinux-8-3006-12 driver: - image: saltimages/salt-3003.4-py3:centos-7 - - name: amazonlinux-2-3003-4-py3 + image: saltimages/salt-3006.12-py3:oraclelinux-8 + - name: almalinux-9-3006-12 driver: - image: saltimages/salt-3003.4-py3:amazonlinux-2 - - name: oraclelinux-8-3003-4-py3 + image: saltimages/salt-3006.12-py3:almalinux-9 + - name: almalinux-8-3006-12 driver: - image: saltimages/salt-3003.4-py3:oraclelinux-8 - - name: oraclelinux-7-3003-4-py3 + image: saltimages/salt-3006.12-py3:almalinux-8 + - name: rockylinux-9-3006-12 driver: - image: saltimages/salt-3003.4-py3:oraclelinux-7 - - name: almalinux-8-3003-4-py3 + image: saltimages/salt-3006.12-py3:rockylinux-9 + - name: rockylinux-8-3006-12 driver: - image: saltimages/salt-3003.4-py3:almalinux-8 + image: saltimages/salt-3006.12-py3:rockylinux-8 + +########################################################## +# This file is managed as part of a Copier template. # +# Please make your own changes below this comment. # +########################################################## verifier: # https://www.inspec.io/