diff --git a/.github/workflows/commitlint.yml b/.github/workflows/commitlint.yml
new file mode 100644
index 0000000..42a5375
--- /dev/null
+++ b/.github/workflows/commitlint.yml
@@ -0,0 +1,16 @@
+# -*- coding: utf-8 -*-
+# vim: ft=yaml
+---
+name: Commitlint
+'on': [pull_request]
+
+jobs:
+ lint:
+ runs-on: ubuntu-latest
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ steps:
+ - uses: actions/checkout@v2
+ with:
+ fetch-depth: 0
+ - uses: wagoid/commitlint-github-action@v1
diff --git a/.gitignore b/.gitignore
index 0bbb03c..39752a7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -91,6 +91,9 @@ celerybeat-schedule
venv/
ENV/
+# visual studio
+.vs/
+
# Spyder project settings
.spyderproject
.spyproject
@@ -105,7 +108,7 @@ ENV/
.mypy_cache/
# Bundler
-Gemfile.lock
+.bundle/
# copied `.md` files used for conversion to `.rst` using `m2r`
docs/*.md
@@ -120,3 +123,12 @@ docs/*.md
Dockerfile.*_*
ignore/
tmp/
+
+# `salt-formula` -- Vagrant Specific files
+.vagrant
+top.sls
+!test/salt/pillar/top.sls
+
+# `suricata-formula` -- Platform binaries
+*.rpm
+*.deb
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000..1c6c241
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,212 @@
+# -*- coding: utf-8 -*-
+# vim: ft=yaml
+---
+###############################################################################
+# Define all YAML node anchors
+###############################################################################
+.node_anchors:
+ # `only` (also used for `except` where applicable)
+ only_branch_master_parent_repo: &only_branch_master_parent_repo
+ - 'master@saltstack-formulas/influxdb-formula'
+ # `stage`
+ 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'
+ # `services`
+ services_docker_dind: &services_docker_dind
+ - 'docker:dind'
+ # `variables`
+ # https://forum.gitlab.com/t/gitlab-com-ci-caching-rubygems/5627/3
+ # https://bundler.io/v1.16/bundle_config.html
+ variables_bundler: &variables_bundler
+ BUNDLE_CACHE_PATH: '${CI_PROJECT_DIR}/.cache/bundler'
+ BUNDLE_WITHOUT: 'production'
+ # `cache`
+ cache_bundler: &cache_bundler
+ key: '${CI_JOB_STAGE}'
+ paths:
+ - '${BUNDLE_CACHE_PATH}'
+
+###############################################################################
+# Define stages and global variables
+###############################################################################
+stages:
+ - *stage_lint
+ - *stage_test
+ - *stage_release
+variables:
+ DOCKER_DRIVER: 'overlay2'
+
+###############################################################################
+# `lint` stage: `commitlint`, `pre-commit` & `rubocop` (latest, failure allowed)
+###############################################################################
+commitlint:
+ stage: *stage_lint
+ image: *image_commitlint
+ script:
+ # Add `upstream` remote to get access to `upstream/master`
+ - 'git remote add upstream
+ https://gitlab.com/saltstack-formulas/influxdb-formula.git'
+ - 'git fetch --all'
+ # Set default commit hashes for `--from` and `--to`
+ - 'export COMMITLINT_FROM="$(git merge-base upstream/master HEAD)"'
+ - 'export COMMITLINT_TO="${CI_COMMIT_SHA}"'
+ # `coqbot` adds a merge commit to test PRs on top of the latest commit in
+ # the repo; amend this merge commit message to avoid failure
+ - |
+ if [ "${GITLAB_USER_LOGIN}" = "coqbot" ] \
+ && [ "${CI_COMMIT_BRANCH}" != "master" ]; then
+ git commit --amend -m \
+ 'chore: reword coqbot merge commit message for commitlint'
+ export COMMITLINT_TO=HEAD
+ fi
+ # Run `commitlint`
+ - 'commitlint --from "${COMMITLINT_FROM}"
+ --to "${COMMITLINT_TO}"
+ --verbose'
+
+pre-commit:
+ stage: *stage_lint
+ 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}'
+ script:
+ - 'pre-commit run --all-files --color always --verbose'
+
+# 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
+# `rubocop` check -- and must continue to do so
+# - This job is allowed to fail, so can be used for all formulas
+# - Furthermore, this job uses all of the latest `rubocop` features & cops,
+# which will help when upgrading the `rubocop` linter used in `pre-commit`
+rubocop:
+ allow_failure: true
+ stage: *stage_lint
+ image: *image_rubocop
+ script:
+ - 'rubocop -d -P -S --enable-pending-cops'
+
+###############################################################################
+# Define `test` template
+###############################################################################
+.test_instance: &test_instance
+ stage: *stage_test
+ 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'
+ script:
+ # Alternative value to consider: `${CI_JOB_NAME}`
+ - 'bin/kitchen verify "${DOCKER_ENV_CI_JOB_NAME}"'
+
+###############################################################################
+# Define `test` template (`allow_failure: true`)
+###############################################################################
+.test_instance_failure_permitted:
+ <<: *test_instance
+ allow_failure: true
+
+###############################################################################
+# `test` stage: each instance below uses the `test` template above
+###############################################################################
+## Define the rest of the matrix based on Kitchen testing
+# 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'}
+default-debian-10-master-py3: {extends: '.test_instance'}
+default-debian-9-master-py3: {extends: '.test_instance'}
+default-ubuntu-2204-master-py3: {extends: '.test_instance_failure_permitted'}
+default-ubuntu-2004-master-py3: {extends: '.test_instance'}
+default-ubuntu-1804-master-py3: {extends: '.test_instance'}
+default-centos-stream8-master-py3: {extends: '.test_instance_failure_permitted'}
+default-centos-7-master-py3: {extends: '.test_instance'}
+default-fedora-36-master-py3: {extends: '.test_instance_failure_permitted'}
+default-fedora-35-master-py3: {extends: '.test_instance'}
+default-opensuse-leap-153-master-py3: {extends: '.test_instance'}
+default-opensuse-tmbl-latest-master-py3: {extends: '.test_instance_failure_permitted'}
+default-amazonlinux-2-master-py3: {extends: '.test_instance'}
+default-oraclelinux-8-master-py3: {extends: '.test_instance'}
+default-oraclelinux-7-master-py3: {extends: '.test_instance'}
+# default-arch-base-latest-master-py3: {extends: '.test_instance'}
+# default-gentoo-stage3-latest-master-py3: {extends: '.test_instance'}
+# default-gentoo-stage3-systemd-master-py3: {extends: '.test_instance'}
+default-almalinux-8-master-py3: {extends: '.test_instance'}
+default-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'}
+# yamllint enable rule:line-length
+
+###############################################################################
+# `release` stage: `semantic-release`
+###############################################################################
+semantic-release:
+ only: *only_branch_master_parent_repo
+ stage: *stage_release
+ image: *image_semanticrelease
+ variables:
+ MAINTAINER_TOKEN: '${GH_TOKEN}'
+ script:
+ # Update `AUTHORS.md`
+ - '${HOME}/go/bin/maintainer contributor'
+ # Run `semantic-release`
+ - 'semantic-release'
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
new file mode 100644
index 0000000..1299a84
--- /dev/null
+++ b/.pre-commit-config.yaml
@@ -0,0 +1,77 @@
+# -*- coding: utf-8 -*-
+# vim: ft=yaml
+---
+# See https://pre-commit.com for more information
+# See https://pre-commit.com/hooks.html for more hooks
+ci:
+ autofix_commit_msg: |
+ ci(pre-commit.ci): apply auto fixes from pre-commit.com hooks
+
+ For more information, see https://pre-commit.ci
+ autofix_prs: true
+ autoupdate_branch: ''
+ autoupdate_commit_msg: |
+ ci(pre-commit.ci): perform `pre-commit` autoupdate
+ autoupdate_schedule: quarterly
+ skip: []
+ submodules: false
+default_stages: [commit]
+repos:
+ - repo: https://github.com/dafyddj/commitlint-pre-commit-hook
+ rev: v2.3.0
+ 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
+ - repo: https://github.com/rubocop-hq/rubocop
+ rev: v1.30.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.8.0.4
+ hooks:
+ - id: shellcheck
+ name: Check shell scripts with shellcheck
+ files: ^.*\.(sh|bash|ksh)$
+ types: []
+ - repo: https://github.com/adrienverge/yamllint
+ rev: v1.26.3
+ hooks:
+ - id: yamllint
+ name: Check YAML syntax with yamllint
+ args: [--strict, '.']
+ always_run: true
+ pass_filenames: false
+ - repo: https://github.com/warpnet/salt-lint
+ rev: v0.8.0
+ 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
+ hooks:
+ - id: rstcheck
+ name: Check reST files using rstcheck
+ exclude: 'docs/CHANGELOG.rst'
+ - repo: https://github.com/saltstack-formulas/mirrors-rst-lint
+ rev: v1.3.2
+ hooks:
+ - id: rst-lint
+ name: Check reST files using rst-lint
+ exclude: |
+ (?x)^(
+ docs/CHANGELOG.rst|
+ docs/TOFS_pattern.rst|
+ )$
+ additional_dependencies: [pygments==2.9.0]
diff --git a/.rstcheck.cfg b/.rstcheck.cfg
new file mode 100644
index 0000000..5383623
--- /dev/null
+++ b/.rstcheck.cfg
@@ -0,0 +1,4 @@
+[rstcheck]
+report=info
+ignore_language=rst
+ignore_messages=(Duplicate (ex|im)plicit target.*|Hyperlink target ".*" is not referenced\.$)
diff --git a/.rubocop.yml b/.rubocop.yml
index bdae9aa..bf4d107 100644
--- a/.rubocop.yml
+++ b/.rubocop.yml
@@ -2,9 +2,22 @@
# vim: ft=yaml
---
# General overrides used across formulas in the org
-Metrics/LineLength:
+Layout/LineLength:
# Increase from default of `80`
# Based on https://github.com/PyCQA/flake8-bugbear#opinionated-warnings (`B950`)
Max: 88
+Metrics/BlockLength:
+ IgnoredMethods:
+ - control
+ - describe
+ # Increase from default of `25`
+ Max: 30
+Security/YAMLLoad:
+ Exclude:
+ - test/integration/**/_mapdata.rb
+
+# General settings across all cops in this formula
+AllCops:
+ NewCops: enable
# Any offenses that should be fixed, e.g. collected via. `rubocop --auto-gen-config`
diff --git a/.salt-lint b/.salt-lint
index a539954..3715677 100644
--- a/.salt-lint
+++ b/.salt-lint
@@ -2,6 +2,7 @@
# vim: ft=yaml
---
exclude_paths: []
+rules: {}
skip_list:
# Using `salt-lint` for linting other files as well, such as Jinja macros/templates
- 205 # Use ".sls" as a Salt State file extension
diff --git a/.travis.yml b/.travis.yml
index 4cf7de7..7435e35 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,15 +1,28 @@
# -*- coding: utf-8 -*-
# vim: ft=yaml
---
+################################################################################
+# NOTE: This file is UNMAINTAINED; it is provided for references purposes only.
+# No guarantees are tendered that this structure will work after 2020.
+################################################################################
+# * https://en.wikipedia.org/wiki/Travis_CI:
+# - "... free open-source plans were removed in [sic] the end of 2020"
+# - https://blog.travis-ci.com/2020-11-02-travis-ci-new-billing
+# - https://ropensci.org/technotes/2020/11/19/moving-away-travis/
+################################################################################
## Machine config
-dist: bionic
-sudo: required
-services:
- - docker
+os: 'linux'
+arch: 'amd64'
+dist: 'bionic'
+version: '~> 1.0'
## Language and cache config
-language: ruby
-cache: bundler
+language: 'ruby'
+cache: 'bundler'
+
+## Services config
+services:
+ - docker
## Script to run for the test stage
script:
@@ -18,23 +31,25 @@ script:
## Stages and jobs matrix
stages:
- test
- - name: release
- if: branch = master AND type != pull_request
+ # # As part of the switch away from Travis CI, ensure that the `release` stage
+ # # is not run inadvertently
+ # - name: 'release'
+ # if: 'branch = master AND type != pull_request'
jobs:
include:
## Define the test stage that runs the linters (and testing matrix, if applicable)
# Run all of the linters in a single job
- - language: node_js
- node_js: lts/*
- env: Lint
- name: 'Lint: salt-lint, yamllint, rubocop & commitlint'
- before_install: skip
+ - language: 'node_js'
+ node_js: 'lts/*'
+ env: 'Lint'
+ name: 'Lint: salt-lint, yamllint, rubocop, shellcheck & commitlint'
+ before_install: 'skip'
script:
# Install and run `salt-lint`
- pip install --user salt-lint
- - git ls-files | grep '\.sls$\|\.jinja$\|\.j2$\|\.tmpl$'
- | xargs -I {} salt-lint {}
+ - git ls-files -- '*.sls' '*.jinja' '*.j2' '*.tmpl' '*.tst'
+ | xargs salt-lint
# Install and run `yamllint`
# Need at least `v1.17.0` for the `yaml-files` setting
- pip install --user yamllint>=1.17.0
@@ -42,50 +57,103 @@ jobs:
# Install and run `rubocop`
- gem install rubocop
- rubocop -d
+ # Run `shellcheck` (already pre-installed in Travis)
+ - shellcheck --version
+ - git ls-files -- '*.sh' '*.bash' '*.ksh'
+ | xargs shellcheck
# Install and run `commitlint`
- - npm install @commitlint/config-conventional -D
- - npm install @commitlint/travis-cli -D
+ - npm i -D @commitlint/config-conventional
+ @commitlint/travis-cli
- commitlint-travis
+ # Run `pre-commit` linters in a single job
+ - language: 'python'
+ env: 'Lint_pre-commit'
+ name: 'Lint: pre-commit'
+ before_install: 'skip'
+ cache:
+ directories:
+ - $HOME/.cache/pre-commit
+ script:
+ # Install and run `pre-commit`
+ - pip install pre-commit==2.7.1
+ - pre-commit run --all-files --color always --verbose
+ - pre-commit run --color always --hook-stage manual --verbose commitlint-travis
+
## Define the rest of the matrix based on Kitchen testing
# Make sure the instances listed below match up with
# the `platforms` defined in `kitchen.yml`
- - env: INSTANCE=default-debian-10-develop-py3
- # - env: INSTANCE=default-ubuntu-1804-develop-py3
- # - env: INSTANCE=default-centos-7-develop-py3
- # - env: INSTANCE=default-fedora-30-develop-py3
- # - env: INSTANCE=default-opensuse-leap-15-develop-py3
- # - env: INSTANCE=default-amazonlinux-2-develop-py2
- # - env: INSTANCE=default-arch-base-latest-develop-py2
- # - env: INSTANCE=default-debian-9-2019-2-py3
- - env: INSTANCE=default-ubuntu-1804-2019-2-py3
- # - env: INSTANCE=default-centos-7-2019-2-py3
- # - env: INSTANCE=default-fedora-30-2019-2-py3
- # - env: INSTANCE=default-opensuse-leap-15-2019-2-py3
- - env: INSTANCE=default-amazonlinux-2-2019-2-py2
- # - env: INSTANCE=default-arch-base-latest-2019-2-py2
- # - env: INSTANCE=default-debian-9-2018-3-py2
- # - env: INSTANCE=default-ubuntu-1604-2018-3-py2
- # - env: INSTANCE=default-centos-7-2018-3-py2
- - env: INSTANCE=default-fedora-29-2018-3-py2
- - env: INSTANCE=default-opensuse-leap-15-2018-3-py2
- # - env: INSTANCE=default-amazonlinux-2-2018-3-py2
- # - env: INSTANCE=default-arch-base-latest-2018-3-py2
- # - env: INSTANCE=default-debian-8-2017-7-py2
- # - env: INSTANCE=default-ubuntu-1604-2017-7-py2
- - env: INSTANCE=default-centos-6-2017-7-py2
- # - env: INSTANCE=default-fedora-29-2017-7-py2
- # - env: INSTANCE=default-opensuse-leap-15-2017-7-py2
- # - env: INSTANCE=default-amazonlinux-2-2017-7-py2
- # - env: INSTANCE=default-arch-base-latest-2017-7-py2
+ # - env: INSTANCE=default-debian-11-tiamat-py3
+ # - env: INSTANCE=default-debian-10-tiamat-py3
+ # - env: INSTANCE=default-debian-9-tiamat-py3
+ # - env: INSTANCE=default-ubuntu-2204-tiamat-py3
+ # - env: INSTANCE=default-ubuntu-2004-tiamat-py3
+ # - env: INSTANCE=default-ubuntu-1804-tiamat-py3
+ # - env: INSTANCE=default-centos-stream8-tiamat-py3
+ # - env: INSTANCE=default-centos-7-tiamat-py3
+ # - env: INSTANCE=default-amazonlinux-2-tiamat-py3
+ # - env: INSTANCE=default-oraclelinux-8-tiamat-py3
+ # - env: INSTANCE=default-oraclelinux-7-tiamat-py3
+ # - env: INSTANCE=default-almalinux-8-tiamat-py3
+ # - env: INSTANCE=default-rockylinux-8-tiamat-py3
+ - env: INSTANCE=default-debian-11-master-py3
+ - env: INSTANCE=default-debian-10-master-py3
+ - env: INSTANCE=default-debian-9-master-py3
+ - env: INSTANCE=default-ubuntu-2204-master-py3
+ - env: INSTANCE=default-ubuntu-2004-master-py3
+ - env: INSTANCE=default-ubuntu-1804-master-py3
+ - env: INSTANCE=default-centos-stream8-master-py3
+ - env: INSTANCE=default-centos-7-master-py3
+ - env: INSTANCE=default-fedora-36-master-py3
+ - env: INSTANCE=default-fedora-35-master-py3
+ - env: INSTANCE=default-opensuse-leap-153-master-py3
+ - env: INSTANCE=default-opensuse-tmbl-latest-master-py3
+ - env: INSTANCE=default-amazonlinux-2-master-py3
+ - env: INSTANCE=default-oraclelinux-8-master-py3
+ - env: INSTANCE=default-oraclelinux-7-master-py3
+ # - env: INSTANCE=default-arch-base-latest-master-py3
+ # - env: INSTANCE=default-gentoo-stage3-latest-master-py3
+ # - env: INSTANCE=default-gentoo-stage3-systemd-master-py3
+ - env: INSTANCE=default-almalinux-8-master-py3
+ - env: INSTANCE=default-rockylinux-8-master-py3
+ # - env: INSTANCE=default-debian-11-3004-1-py3
+ # - env: INSTANCE=default-debian-10-3004-1-py3
+ # - env: INSTANCE=default-debian-9-3004-1-py3
+ # - env: INSTANCE=default-ubuntu-2204-3004-1-py3
+ # - env: INSTANCE=default-ubuntu-2004-3004-1-py3
+ # - env: INSTANCE=default-ubuntu-1804-3004-1-py3
+ # - env: INSTANCE=default-centos-stream8-3004-1-py3
+ # - env: INSTANCE=default-centos-7-3004-1-py3
+ # - env: INSTANCE=default-fedora-36-3004-1-py3
+ # - env: INSTANCE=default-fedora-35-3004-1-py3
+ # - env: INSTANCE=default-amazonlinux-2-3004-1-py3
+ # - env: INSTANCE=default-oraclelinux-8-3004-1-py3
+ # - env: INSTANCE=default-oraclelinux-7-3004-1-py3
+ # - env: INSTANCE=default-arch-base-latest-3004-1-py3
+ # - env: INSTANCE=default-gentoo-stage3-latest-3004-1-py3
+ # - env: INSTANCE=default-gentoo-stage3-systemd-3004-1-py3
+ # - env: INSTANCE=default-almalinux-8-3004-1-py3
+ # - env: INSTANCE=default-rockylinux-8-3004-1-py3
+ # - env: INSTANCE=default-opensuse-leap-153-3004-0-py3
+ # - env: INSTANCE=default-opensuse-tmbl-latest-3004-0-py3
+ # - env: INSTANCE=default-debian-10-3003-4-py3
+ # - env: INSTANCE=default-debian-9-3003-4-py3
+ # - env: INSTANCE=default-ubuntu-2004-3003-4-py3
+ # - env: INSTANCE=default-ubuntu-1804-3003-4-py3
+ # - env: INSTANCE=default-centos-stream8-3003-4-py3
+ # - env: INSTANCE=default-centos-7-3003-4-py3
+ # - env: INSTANCE=default-amazonlinux-2-3003-4-py3
+ # - env: INSTANCE=default-oraclelinux-8-3003-4-py3
+ # - env: INSTANCE=default-oraclelinux-7-3003-4-py3
+ # - env: INSTANCE=default-almalinux-8-3003-4-py3
## Define the release stage that runs `semantic-release`
- - stage: release
- language: node_js
- node_js: lts/*
- env: Release
+ - stage: 'release'
+ language: 'node_js'
+ node_js: 'lts/*'
+ env: 'Release'
name: 'Run semantic-release inc. file updates to AUTHORS, CHANGELOG & FORMULA'
- before_install: skip
+ before_install: 'skip'
script:
# Update `AUTHORS.md`
- export MAINTAINER_TOKEN=${GH_TOKEN}
@@ -93,12 +161,26 @@ jobs:
- maintainer contributor
# Install all dependencies required for `semantic-release`
- - npm install @semantic-release/changelog@3 -D
- - npm install @semantic-release/exec@3 -D
- - npm install @semantic-release/git@7 -D
+ - npm i -D @semantic-release/changelog@3
+ @semantic-release/exec@3
+ @semantic-release/git@7
deploy:
- provider: script
- skip_cleanup: true
- script:
- # Run `semantic-release`
- - npx semantic-release@15
+ provider: 'script'
+ # Opt-in to `dpl v2` to complete the Travis build config validation (beta)
+ # * https://docs.travis-ci.com/user/build-config-validation
+ # Deprecated `skip_cleanup` can now be avoided, `cleanup: false` is by default
+ edge: true
+ # Run `semantic-release`
+ script: 'npx semantic-release@15.14'
+
+# Notification options: `always`, `never` or `change`
+notifications:
+ webhooks:
+ if: 'repo = saltstack-formulas/influxdb-formula'
+ urls:
+ - https://saltstack-formulas.zulipchat.com/api/v1/external/travis?api_key=HsIq3o5QmLxdnVCKF9is0FUIpkpAY79P&stream=CI&topic=saltstack-formulas%2Finfluxdb-formula&ignore_pull_requests=true
+ on_success: always # default: always
+ on_failure: always # default: always
+ on_start: always # default: never
+ on_cancel: always # default: always
+ on_error: always # default: always
diff --git a/.yamllint b/.yamllint
index 740beca..716baaf 100644
--- a/.yamllint
+++ b/.yamllint
@@ -2,16 +2,24 @@
# vim: ft=yaml
---
# Extend the `default` configuration provided by `yamllint`
-extends: default
+extends: 'default'
# Files to ignore completely
-# 1. All YAML files under directory `node_modules/`, introduced during the Travis run
-# 2. Any SLS files under directory `test/`, which are actually state files
-# 3. Any YAML files under directory `.kitchen/`, introduced during local testing
+# 1. All YAML files under directory `.bundle/`, introduced if gems are installed locally
+# 2. All YAML files under directory `.cache/`, introduced during the CI run
+# 3. All YAML files under directory `.git/`
+# 4. All YAML files under directory `node_modules/`, introduced during the CI run
+# 5. Any SLS files under directory `test/`, which are actually state files
+# 6. Any YAML files under directory `.kitchen/`, introduced during local testing
+# 7. `kitchen.vagrant.yml`, which contains Embedded Ruby (ERB) template syntax
ignore: |
+ .bundle/
+ .cache/
+ .git/
node_modules/
test/**/states/**/*.sls
.kitchen/
+ kitchen.vagrant.yml
yaml-files:
# Default settings
diff --git a/AUTHORS.md b/AUTHORS.md
index 37211c0..434bfbd 100644
--- a/AUTHORS.md
+++ b/AUTHORS.md
@@ -4,18 +4,18 @@ This list is sorted by the number of commits per contributor in _descending_ ord
Avatar|Contributor|Contributions
:-:|---|:-:
+
|[@myii](https://github.com/myii)|59
|[@babilen5](https://github.com/babilen5)|49
|[@alfredopalhares](https://github.com/alfredopalhares)|40
-
|[@myii](https://github.com/myii)|21
|[@n-rodriguez](https://github.com/n-rodriguez)|17
|[@nmadhok](https://github.com/nmadhok)|7
|[@aboe76](https://github.com/aboe76)|3
|[@ruimarinho](https://github.com/ruimarinho)|3
|[@fixe](https://github.com/fixe)|3
|[@iggy](https://github.com/iggy)|2
+
|[@dafyddj](https://github.com/dafyddj)|2
|[@racingferret](https://github.com/racingferret)|2
|[@gravyboat](https://github.com/gravyboat)|1
-
|[@gianarb](https://github.com/gianarb)|1
|[@qybl](https://github.com/qybl)|1
|[@nunofgs](https://github.com/nunofgs)|1
|[@whiteinge](https://github.com/whiteinge)|1
@@ -23,4 +23,4 @@ Avatar|Contributor|Contributions
---
-Auto-generated by a [forked version](https://github.com/myii/maintainer) of [gaocegege/maintainer](https://github.com/gaocegege/maintainer) on 2019-10-12.
+Auto-generated by a [forked version](https://github.com/myii/maintainer) of [gaocegege/maintainer](https://github.com/gaocegege/maintainer) on 2020-12-16.
diff --git a/CHANGELOG.md b/CHANGELOG.md
index e336f86..aac2fa2 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,48 @@
# Changelog
+## [0.3.3](https://github.com/saltstack-formulas/influxdb-formula/compare/v0.3.2...v0.3.3) (2020-12-16)
+
+
+### Bug Fixes
+
+* **release.config.js:** use full commit hash in commit link [skip ci] ([4f2c4a5](https://github.com/saltstack-formulas/influxdb-formula/commit/4f2c4a5973fb458ca02c0f1dd6c0dca2c2f65d8c))
+
+
+### Continuous Integration
+
+* **gemfile:** restrict `train` gem version until upstream fix [skip ci] ([9ac0fac](https://github.com/saltstack-formulas/influxdb-formula/commit/9ac0facd41b53807362e77800dfa68b1e70f22d7))
+* **gemfile.lock:** add to repo with updated `Gemfile` [skip ci] ([78abe11](https://github.com/saltstack-formulas/influxdb-formula/commit/78abe118ef5437306c3c179224d955a6d51a40c4))
+* **gitlab-ci:** use GitLab CI as Travis CI replacement ([09e1ffe](https://github.com/saltstack-formulas/influxdb-formula/commit/09e1ffec12a94f76a4ba6c43dedb237ef2709abc))
+* **kitchen:** avoid using bootstrap for `master` instances [skip ci] ([f2ba8bd](https://github.com/saltstack-formulas/influxdb-formula/commit/f2ba8bd011d19471c2d7e1cec2255bab45dbbe22))
+* **kitchen:** use `debian-10-master-py3` instead of `develop` [skip ci] ([1ada26c](https://github.com/saltstack-formulas/influxdb-formula/commit/1ada26c8fc6b1775c3c629925f6f46733fb349f5))
+* **kitchen:** use `develop` image until `master` is ready (`amazonlinux`) [skip ci] ([489ac8c](https://github.com/saltstack-formulas/influxdb-formula/commit/489ac8c796a97194a028237cd8e06196cd96a559))
+* **kitchen:** use `saltimages` Docker Hub where available [skip ci] ([5ca8b9a](https://github.com/saltstack-formulas/influxdb-formula/commit/5ca8b9a0ea964378a106162b1c9430dff0577d5a))
+* **kitchen+travis:** remove `master-py2-arch-base-latest` [skip ci] ([d8372de](https://github.com/saltstack-formulas/influxdb-formula/commit/d8372ded6b29dac3d00509ff884cfc86879b5269))
+* **kitchen+travis:** upgrade matrix after `2019.2.2` release [skip ci] ([61edc79](https://github.com/saltstack-formulas/influxdb-formula/commit/61edc797f94783cc76104af95910aad7f17d66b9))
+* **pre-commit:** add to formula [skip ci] ([172b5b4](https://github.com/saltstack-formulas/influxdb-formula/commit/172b5b45c01e3a9802fe1e832d316e835ff49381))
+* **pre-commit:** enable/disable `rstcheck` as relevant [skip ci] ([fabc9eb](https://github.com/saltstack-formulas/influxdb-formula/commit/fabc9eb9d3803619200260ccc9f203a49bf44ee9))
+* **pre-commit:** finalise `rstcheck` configuration [skip ci] ([c80c66e](https://github.com/saltstack-formulas/influxdb-formula/commit/c80c66eea00773693ad5175ec57387cc01f1dd19))
+* **travis:** add notifications => zulip [skip ci] ([0bc4566](https://github.com/saltstack-formulas/influxdb-formula/commit/0bc456623511153e000f4644f0cffeafc2aa044c))
+* **travis:** apply changes from build config validation [skip ci] ([c4ade2b](https://github.com/saltstack-formulas/influxdb-formula/commit/c4ade2b8971b6ef065ea324b5a4ffcf799766910))
+* **travis:** opt-in to `dpl v2` to complete build config validation [skip ci] ([b09be58](https://github.com/saltstack-formulas/influxdb-formula/commit/b09be58fd99ef57b42bc1c6d83eeace9005ee884))
+* **travis:** quote pathspecs used with `git ls-files` [skip ci] ([c8f134e](https://github.com/saltstack-formulas/influxdb-formula/commit/c8f134ebd4fe919d8cf8ad5aaa7fe154d6d2eebb))
+* **travis:** run `shellcheck` during lint job [skip ci] ([2994fa6](https://github.com/saltstack-formulas/influxdb-formula/commit/2994fa6301aea395c871704a0308b281ed8e854e))
+* **travis:** update `salt-lint` config for `v0.0.10` [skip ci] ([834e3df](https://github.com/saltstack-formulas/influxdb-formula/commit/834e3df3c8c22b82f50e5e0d62545c8bbdf61b63))
+* **travis:** use `major.minor` for `semantic-release` version [skip ci] ([3d280b1](https://github.com/saltstack-formulas/influxdb-formula/commit/3d280b14a7b0ebbac236987078fca62b3fd54fe3))
+* **travis:** use build config validation (beta) [skip ci] ([b6cc703](https://github.com/saltstack-formulas/influxdb-formula/commit/b6cc703133f23594295915f80a1c6eb2ac052273))
+* **workflows/commitlint:** add to repo [skip ci] ([d80c8c6](https://github.com/saltstack-formulas/influxdb-formula/commit/d80c8c63a159e3c22227153f7527cb0c1547d552))
+
+
+### Documentation
+
+* **contributing:** remove to use org-level file instead [skip ci] ([ff4f0fd](https://github.com/saltstack-formulas/influxdb-formula/commit/ff4f0fd5ea0556adb0b5aa92f67917dafc796276))
+* **readme:** update link to `CONTRIBUTING` [skip ci] ([f6d3bfb](https://github.com/saltstack-formulas/influxdb-formula/commit/f6d3bfbd0759bc28a1b3f6d2fe075f3e99fc9778))
+
+
+### Performance Improvements
+
+* **travis:** improve `salt-lint` invocation [skip ci] ([b995d48](https://github.com/saltstack-formulas/influxdb-formula/commit/b995d4888126b9119234e1fdf8fd1acfa3327b2b))
+
## [0.3.2](https://github.com/saltstack-formulas/influxdb-formula/compare/v0.3.1...v0.3.2) (2019-10-12)
diff --git a/CODEOWNERS b/CODEOWNERS
new file mode 100644
index 0000000..fd11123
--- /dev/null
+++ b/CODEOWNERS
@@ -0,0 +1,54 @@
+# https://help.github.com/en/github/creating-cloning-and-archiving-repositories/about-code-owners
+
+# SECTION: Owner(s) for everything in the repo, unless a later match takes precedence
+# **************************************************************************
+# *** NO GLOBAL OWNER(S) SPECIFIED ***
+# *** Ideally this will be defined for a healthy, well-maintained repo ***
+# **************************************************************************
+# FILE PATTERN OWNER(S)
+* @NONE
+
+# SECTION: Owner(s) for specific directories
+# FILE PATTERN OWNER(S)
+
+# SECTION: Owner(s) for files/directories related to `semantic-release`
+# FILE PATTERN OWNER(S)
+/.github/workflows/ @saltstack-formulas/ssf
+/bin/install-hooks @saltstack-formulas/ssf
+/bin/kitchen @saltstack-formulas/ssf
+/docs/AUTHORS.rst @saltstack-formulas/ssf
+/docs/CHANGELOG.rst @saltstack-formulas/ssf
+/docs/TOFS_pattern.rst @saltstack-formulas/ssf
+/*/_mapdata/ @saltstack-formulas/ssf
+/*/libsaltcli.jinja @saltstack-formulas/ssf
+/*/libtofs.jinja @saltstack-formulas/ssf
+/test/integration/**/_mapdata.rb @saltstack-formulas/ssf
+/test/integration/**/libraries/system.rb @saltstack-formulas/ssf
+/test/integration/**/inspec.yml @saltstack-formulas/ssf
+/test/integration/**/README.md @saltstack-formulas/ssf
+/test/salt/pillar/top.sls @saltstack-formulas/ssf
+/.gitignore @saltstack-formulas/ssf
+/.cirrus.yml @saltstack-formulas/ssf
+/.gitlab-ci.yml @saltstack-formulas/ssf
+/.pre-commit-config.yaml @saltstack-formulas/ssf
+/.rstcheck.cfg @saltstack-formulas/ssf
+/.rubocop.yml @saltstack-formulas/ssf
+/.salt-lint @saltstack-formulas/ssf
+/.travis.yml @saltstack-formulas/ssf
+/.yamllint @saltstack-formulas/ssf
+/AUTHORS.md @saltstack-formulas/ssf
+/CHANGELOG.md @saltstack-formulas/ssf
+/CODEOWNERS @saltstack-formulas/ssf
+/commitlint.config.js @saltstack-formulas/ssf
+/FORMULA @saltstack-formulas/ssf
+/Gemfile @saltstack-formulas/ssf
+/Gemfile.lock @saltstack-formulas/ssf
+/kitchen.yml @saltstack-formulas/ssf
+/kitchen.vagrant.yml @saltstack-formulas/ssf
+/kitchen.windows.yml @saltstack-formulas/ssf
+/pre-commit_semantic-release.sh @saltstack-formulas/ssf
+/release-rules.js @saltstack-formulas/ssf
+/release.config.js @saltstack-formulas/ssf
+
+# SECTION: Owner(s) for specific files
+# FILE PATTERN OWNER(S)
diff --git a/Gemfile b/Gemfile
index 5a232b6..12d9b1d 100644
--- a/Gemfile
+++ b/Gemfile
@@ -1,7 +1,19 @@
# frozen_string_literal: true
-source 'https://rubygems.org'
+source ENV.fetch('PROXY_RUBYGEMSORG', 'https://rubygems.org')
-gem 'kitchen-docker', '>= 2.9'
-gem 'kitchen-inspec', '>= 1.1'
-gem 'kitchen-salt', '>= 0.6.0'
+# Install the `inspec` gem using `git` because versions after `4.22.22`
+# suppress diff output; this version fixes this for our uses.
+# rubocop:disable Layout/LineLength
+gem 'inspec', git: 'https://gitlab.com/saltstack-formulas/infrastructure/inspec', branch: 'ssf'
+# rubocop:enable Layout/LineLength
+
+# Install the `kitchen-docker` gem using `git` in order to gain a performance
+# improvement: avoid package installations which are already covered by the
+# `salt-image-builder` (i.e. the pre-salted images that we're using)
+# rubocop:disable Layout/LineLength
+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'
diff --git a/Gemfile.lock b/Gemfile.lock
new file mode 100644
index 0000000..471bb68
--- /dev/null
+++ b/Gemfile.lock
@@ -0,0 +1,675 @@
+GIT
+ remote: https://gitlab.com/saltstack-formulas/infrastructure/inspec
+ revision: aaef842906a5666f0fc0b4f186b4dd3498f5b28c
+ branch: ssf
+ specs:
+ inspec (5.18.15)
+ cookstyle
+ faraday_middleware (>= 0.12.2, < 1.1)
+ inspec-core (= 5.18.15)
+ mongo (= 2.13.2)
+ progress_bar (~> 1.3.3)
+ rake
+ train (~> 3.10)
+ train-aws (~> 0.2)
+ train-habitat (~> 0.1)
+ train-winrm (~> 0.2)
+ inspec-core (5.18.15)
+ addressable (~> 2.4)
+ chef-telemetry (~> 1.0, >= 1.0.8)
+ faraday (>= 0.9.0, < 1.5)
+ faraday_middleware (~> 1.0)
+ hashie (>= 3.4, < 5.0)
+ license-acceptance (>= 0.2.13, < 3.0)
+ method_source (>= 0.8, < 2.0)
+ mixlib-log (~> 3.0)
+ multipart-post (~> 2.0)
+ parallel (~> 1.9)
+ parslet (>= 1.5, < 2.0)
+ pry (~> 0.13)
+ rspec (>= 3.9, <= 3.11)
+ rspec-its (~> 1.2)
+ rubyzip (>= 1.2.2, < 3.0)
+ semverse (~> 3.0)
+ sslshake (~> 1.2)
+ thor (>= 0.20, < 2.0)
+ tomlrb (>= 1.2, < 2.1)
+ train-core (~> 3.10)
+ tty-prompt (~> 0.17)
+ tty-table (~> 0.10)
+
+GIT
+ remote: https://gitlab.com/saltstack-formulas/infrastructure/kitchen-docker
+ revision: 9a09bc1e571e25f3ccabf4725ca2048d970fff82
+ branch: ssf
+ specs:
+ kitchen-docker (2.12.0)
+ test-kitchen (>= 1.0.0)
+
+GEM
+ remote: https://rubygems.org/
+ specs:
+ activesupport (7.0.3.1)
+ concurrent-ruby (~> 1.0, >= 1.0.2)
+ i18n (>= 1.6, < 2)
+ minitest (>= 5.1)
+ 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)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-amplify (1.32.0)
+ aws-sdk-core (~> 3, >= 3.120.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-apigateway (1.78.0)
+ aws-sdk-core (~> 3, >= 3.127.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-apigatewayv2 (1.42.0)
+ aws-sdk-core (~> 3, >= 3.127.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-applicationautoscaling (1.51.0)
+ aws-sdk-core (~> 3, >= 3.112.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-athena (1.55.0)
+ aws-sdk-core (~> 3, >= 3.127.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-autoscaling (1.63.0)
+ aws-sdk-core (~> 3, >= 3.112.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-batch (1.47.0)
+ aws-sdk-core (~> 3, >= 3.112.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-budgets (1.50.0)
+ aws-sdk-core (~> 3, >= 3.127.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-cloudformation (1.70.0)
+ aws-sdk-core (~> 3, >= 3.127.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-cloudfront (1.65.0)
+ aws-sdk-core (~> 3, >= 3.127.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-cloudhsm (1.39.0)
+ aws-sdk-core (~> 3, >= 3.127.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-cloudhsmv2 (1.42.0)
+ aws-sdk-core (~> 3, >= 3.127.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-cloudtrail (1.49.0)
+ aws-sdk-core (~> 3, >= 3.127.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-cloudwatch (1.64.0)
+ aws-sdk-core (~> 3, >= 3.127.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-cloudwatchevents (1.46.0)
+ aws-sdk-core (~> 3, >= 3.112.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-cloudwatchlogs (1.53.0)
+ aws-sdk-core (~> 3, >= 3.127.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-codecommit (1.51.0)
+ aws-sdk-core (~> 3, >= 3.127.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-codedeploy (1.49.0)
+ aws-sdk-core (~> 3, >= 3.127.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-codepipeline (1.53.0)
+ aws-sdk-core (~> 3, >= 3.127.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-cognitoidentity (1.31.0)
+ aws-sdk-core (~> 3, >= 3.112.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-cognitoidentityprovider (1.53.0)
+ aws-sdk-core (~> 3, >= 3.112.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-configservice (1.79.0)
+ aws-sdk-core (~> 3, >= 3.127.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-core (3.131.2)
+ aws-eventstream (~> 1, >= 1.0.2)
+ aws-partitions (~> 1, >= 1.525.0)
+ aws-sigv4 (~> 1.1)
+ jmespath (~> 1, >= 1.6.1)
+ aws-sdk-costandusagereportservice (1.40.0)
+ aws-sdk-core (~> 3, >= 3.127.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-databasemigrationservice (1.53.0)
+ aws-sdk-core (~> 3, >= 3.112.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-dynamodb (1.75.0)
+ aws-sdk-core (~> 3, >= 3.127.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-ec2 (1.322.0)
+ aws-sdk-core (~> 3, >= 3.127.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-ecr (1.56.0)
+ aws-sdk-core (~> 3, >= 3.127.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-ecrpublic (1.12.0)
+ aws-sdk-core (~> 3, >= 3.127.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-ecs (1.100.0)
+ aws-sdk-core (~> 3, >= 3.127.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-efs (1.54.0)
+ aws-sdk-core (~> 3, >= 3.127.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-eks (1.75.0)
+ aws-sdk-core (~> 3, >= 3.127.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-elasticache (1.78.0)
+ aws-sdk-core (~> 3, >= 3.127.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-elasticbeanstalk (1.51.0)
+ aws-sdk-core (~> 3, >= 3.127.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-elasticloadbalancing (1.40.0)
+ aws-sdk-core (~> 3, >= 3.127.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-elasticloadbalancingv2 (1.78.0)
+ aws-sdk-core (~> 3, >= 3.127.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-elasticsearchservice (1.65.0)
+ aws-sdk-core (~> 3, >= 3.127.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-emr (1.53.0)
+ aws-sdk-core (~> 3, >= 3.121.2)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-eventbridge (1.24.0)
+ aws-sdk-core (~> 3, >= 3.112.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-firehose (1.48.0)
+ aws-sdk-core (~> 3, >= 3.127.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-glue (1.88.0)
+ aws-sdk-core (~> 3, >= 3.112.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-guardduty (1.58.0)
+ aws-sdk-core (~> 3, >= 3.127.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-iam (1.69.0)
+ aws-sdk-core (~> 3, >= 3.127.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-kafka (1.50.0)
+ aws-sdk-core (~> 3, >= 3.127.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-kinesis (1.41.0)
+ aws-sdk-core (~> 3, >= 3.127.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-kms (1.57.0)
+ aws-sdk-core (~> 3, >= 3.127.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-lambda (1.84.0)
+ aws-sdk-core (~> 3, >= 3.127.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-mq (1.40.0)
+ aws-sdk-core (~> 3, >= 3.120.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-networkfirewall (1.17.0)
+ aws-sdk-core (~> 3, >= 3.127.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-networkmanager (1.24.0)
+ aws-sdk-core (~> 3, >= 3.127.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-organizations (1.59.0)
+ aws-sdk-core (~> 3, >= 3.112.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-ram (1.26.0)
+ aws-sdk-core (~> 3, >= 3.112.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-rds (1.148.0)
+ aws-sdk-core (~> 3, >= 3.127.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-redshift (1.84.0)
+ aws-sdk-core (~> 3, >= 3.127.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-route53 (1.63.0)
+ aws-sdk-core (~> 3, >= 3.127.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-route53domains (1.40.0)
+ aws-sdk-core (~> 3, >= 3.127.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-route53resolver (1.37.0)
+ aws-sdk-core (~> 3, >= 3.127.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-s3 (1.114.0)
+ aws-sdk-core (~> 3, >= 3.127.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.1)
+ aws-sdk-secretsmanager (1.46.0)
+ aws-sdk-core (~> 3, >= 3.112.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-securityhub (1.67.0)
+ aws-sdk-core (~> 3, >= 3.127.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-servicecatalog (1.60.0)
+ aws-sdk-core (~> 3, >= 3.112.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-ses (1.41.0)
+ aws-sdk-core (~> 3, >= 3.120.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-shield (1.48.0)
+ aws-sdk-core (~> 3, >= 3.127.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-signer (1.32.0)
+ aws-sdk-core (~> 3, >= 3.120.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-simpledb (1.29.0)
+ aws-sdk-core (~> 3, >= 3.120.0)
+ aws-sigv2 (~> 1.0)
+ aws-sdk-sms (1.40.0)
+ aws-sdk-core (~> 3, >= 3.127.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-sns (1.53.0)
+ aws-sdk-core (~> 3, >= 3.127.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-sqs (1.51.1)
+ aws-sdk-core (~> 3, >= 3.127.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-ssm (1.137.0)
+ aws-sdk-core (~> 3, >= 3.127.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-states (1.39.0)
+ aws-sdk-core (~> 3, >= 3.112.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-synthetics (1.19.0)
+ aws-sdk-core (~> 3, >= 3.121.2)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-transfer (1.34.0)
+ aws-sdk-core (~> 3, >= 3.112.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-waf (1.43.0)
+ aws-sdk-core (~> 3, >= 3.122.0)
+ aws-sigv4 (~> 1.1)
+ aws-sigv2 (1.1.0)
+ aws-sigv4 (1.5.0)
+ aws-eventstream (~> 1, >= 1.0.2)
+ azure_graph_rbac (0.17.2)
+ ms_rest_azure (~> 0.12.0)
+ azure_mgmt_key_vault (0.17.7)
+ ms_rest_azure (~> 0.12.0)
+ azure_mgmt_resources (0.18.2)
+ ms_rest_azure (~> 0.12.0)
+ azure_mgmt_security (0.19.0)
+ ms_rest_azure (~> 0.12.0)
+ azure_mgmt_storage (0.23.0)
+ ms_rest_azure (~> 0.12.0)
+ bcrypt_pbkdf (1.1.0)
+ bson (4.15.0)
+ builder (3.2.4)
+ chef-config (17.10.0)
+ addressable
+ chef-utils (= 17.10.0)
+ fuzzyurl
+ mixlib-config (>= 2.2.12, < 4.0)
+ mixlib-shellout (>= 2.0, < 4.0)
+ tomlrb (~> 1.2)
+ chef-telemetry (1.1.1)
+ chef-config
+ concurrent-ruby (~> 1.0)
+ chef-utils (17.10.0)
+ concurrent-ruby
+ coderay (1.1.3)
+ concurrent-ruby (1.1.10)
+ cookstyle (7.32.1)
+ rubocop (= 1.25.1)
+ declarative (0.0.20)
+ diff-lcs (1.5.0)
+ docker-api (2.2.0)
+ excon (>= 0.47.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)
+ faraday-em_http (~> 1.0)
+ faraday-em_synchrony (~> 1.0)
+ faraday-excon (~> 1.1)
+ faraday-net_http (~> 1.0)
+ faraday-net_http_persistent (~> 1.1)
+ multipart-post (>= 1.2, < 3)
+ ruby2_keywords (>= 0.0.4)
+ faraday-cookie_jar (0.0.7)
+ faraday (>= 0.8.0)
+ http-cookie (~> 1.0.0)
+ faraday-em_http (1.0.0)
+ faraday-em_synchrony (1.0.0)
+ faraday-excon (1.1.0)
+ faraday-net_http (1.0.1)
+ faraday-net_http_persistent (1.2.0)
+ faraday_middleware (1.0.0)
+ faraday (~> 1.0)
+ ffi (1.15.5)
+ fuzzyurl (0.9.0)
+ google-api-client (0.52.0)
+ addressable (~> 2.5, >= 2.5.1)
+ googleauth (~> 0.9)
+ httpclient (>= 2.8.1, < 3.0)
+ mini_mime (~> 1.0)
+ representable (~> 3.0)
+ retriable (>= 2.0, < 4.0)
+ rexml
+ signet (~> 0.12)
+ googleauth (0.14.0)
+ faraday (>= 0.17.3, < 2.0)
+ jwt (>= 1.4, < 3.0)
+ memoist (~> 0.16)
+ multi_json (~> 1.11)
+ os (>= 0.9, < 2.0)
+ signet (~> 0.14)
+ 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)
+ domain_name (~> 0.5)
+ httpclient (2.8.3)
+ i18n (1.12.0)
+ 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)
+ 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)
+ license-acceptance (2.1.13)
+ pastel (~> 0.7)
+ tomlrb (>= 1.2, < 3.0)
+ tty-box (~> 0.6)
+ tty-prompt (~> 0.20)
+ little-plugger (1.1.4)
+ logging (2.3.1)
+ 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)
+ mixlib-config (3.0.27)
+ tomlrb
+ mixlib-install (3.12.19)
+ mixlib-shellout
+ mixlib-versioning
+ thor
+ mixlib-log (3.0.9)
+ mixlib-shellout (3.2.7)
+ chef-utils
+ mixlib-versioning (1.2.12)
+ mongo (2.13.2)
+ bson (>= 4.8.2, < 5.0.0)
+ ms_rest (0.7.6)
+ concurrent-ruby (~> 1.0)
+ faraday (>= 0.9, < 2.0.0)
+ timeliness (~> 0.3.10)
+ ms_rest_azure (0.12.0)
+ concurrent-ruby (~> 1.0)
+ faraday (>= 0.9, < 2.0.0)
+ 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)
+ net-ssh-gateway (2.0.0)
+ net-ssh (>= 4.0.0)
+ nori (2.6.0)
+ options (2.3.2)
+ os (1.1.4)
+ parallel (1.22.1)
+ parser (3.1.2.0)
+ ast (~> 2.4.1)
+ parslet (1.8.2)
+ pastel (0.8.0)
+ tty-color (~> 0.5)
+ progress_bar (1.3.3)
+ highline (>= 1.6, < 3)
+ options (~> 2.3.0)
+ pry (0.14.1)
+ coderay (~> 1.1)
+ method_source (~> 1.0)
+ public_suffix (4.0.7)
+ rainbow (3.1.1)
+ rake (13.0.6)
+ regexp_parser (2.5.0)
+ 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)
+ 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)
+ diff-lcs (>= 1.2.0, < 2.0)
+ rspec-support (~> 3.11.0)
+ rspec-its (1.3.0)
+ rspec-core (>= 3.0.0)
+ rspec-expectations (>= 3.0.0)
+ rspec-mocks (3.11.1)
+ diff-lcs (>= 1.2.0, < 2.0)
+ rspec-support (~> 3.11.0)
+ rspec-support (3.11.0)
+ rubocop (1.25.1)
+ parallel (~> 1.10)
+ parser (>= 3.1.0.0)
+ rainbow (>= 2.2.2, < 4.0)
+ regexp_parser (>= 1.8, < 3.0)
+ rexml
+ rubocop-ast (>= 1.15.1, < 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)
+ ruby2_keywords (0.0.5)
+ rubyntlm (0.6.3)
+ rubyzip (2.3.2)
+ semverse (3.0.2)
+ signet (0.17.0)
+ addressable (~> 2.8)
+ faraday (>= 0.17.5, < 3.a)
+ jwt (>= 1.5, < 3.0)
+ multi_json (~> 1.10)
+ 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)
+ 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-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)
+ timeliness (0.3.10)
+ tomlrb (1.3.0)
+ trailblazer-option (0.1.2)
+ train (3.10.1)
+ activesupport (>= 6.0.3.1)
+ 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)
+ 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)
+ 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)
+ 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)
+ tty-box (0.7.0)
+ pastel (~> 0.8)
+ strings (~> 0.2.0)
+ tty-cursor (~> 0.7)
+ tty-color (0.6.0)
+ tty-cursor (0.7.1)
+ tty-prompt (0.23.1)
+ pastel (~> 0.8)
+ tty-reader (~> 0.8)
+ tty-reader (0.9.0)
+ tty-cursor (~> 0.7)
+ tty-screen (~> 0.8)
+ wisper (~> 2.0)
+ tty-screen (0.8.1)
+ tty-table (0.12.0)
+ pastel (~> 0.8)
+ strings (~> 0.2.0)
+ tty-screen (~> 0.8)
+ tzinfo (2.0.4)
+ 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_utils (1.4.0)
+ winrm (2.3.6)
+ builder (>= 2.1.2)
+ erubi (~> 1.8)
+ gssapi (~> 1.2)
+ gyoku (~> 1.0)
+ httpclient (~> 2.2, >= 2.2.0.2)
+ logging (>= 1.6.1, < 3.0)
+ nori (~> 2.0)
+ rubyntlm (~> 0.6.0, >= 0.6.3)
+ winrm-elevated (1.2.3)
+ erubi (~> 1.8)
+ winrm (~> 2.0)
+ winrm-fs (~> 1.0)
+ winrm-fs (1.3.5)
+ erubi (~> 1.8)
+ logging (>= 1.6.1, < 3.0)
+ rubyzip (~> 2.0)
+ winrm (~> 2.0)
+ wisper (2.0.1)
+
+PLATFORMS
+ ruby
+
+DEPENDENCIES
+ inspec!
+ kitchen-docker!
+ kitchen-inspec (>= 2.5.0)
+ kitchen-salt (>= 0.7.2)
+
+BUNDLED WITH
+ 2.1.2
diff --git a/bin/install-hooks b/bin/install-hooks
new file mode 100755
index 0000000..840bb6c
--- /dev/null
+++ b/bin/install-hooks
@@ -0,0 +1,16 @@
+#!/usr/bin/env sh
+set -o nounset # Treat unset variables as an error and immediately exit
+set -o errexit # If a command fails exit the whole script
+
+if [ "${DEBUG:-false}" = "true" ]; then
+ set -x # Run the entire script in debug mode
+fi
+
+if ! command -v pre-commit >/dev/null 2>&1; then
+ echo "pre-commit not found: please install or check your PATH" >&2
+ echo "See https://pre-commit.com/#installation" >&2
+ exit 1
+fi
+
+pre-commit install --install-hooks
+pre-commit install --hook-type commit-msg --install-hooks
diff --git a/bin/kitchen b/bin/kitchen
index dcfdb4c..5d5663e 100755
--- a/bin/kitchen
+++ b/bin/kitchen
@@ -19,8 +19,8 @@ if File.file?(bundle_binstub)
load(bundle_binstub)
else
abort(
- 'Your `bin/bundle` was not generated by Bundler, '\
- 'so this binstub cannot run. Replace `bin/bundle` by running '\
+ 'Your `bin/bundle` was not generated by Bundler, ' \
+ 'so this binstub cannot run. Replace `bin/bundle` by running ' \
'`bundle binstubs bundler --force`, then run this command again.'
)
end
diff --git a/commitlint.config.js b/commitlint.config.js
index 2f9d1aa..4eb37f4 100644
--- a/commitlint.config.js
+++ b/commitlint.config.js
@@ -1,3 +1,8 @@
module.exports = {
extends: ['@commitlint/config-conventional'],
+ rules: {
+ 'body-max-line-length': [2, 'always', 120],
+ 'footer-max-line-length': [2, 'always', 120],
+ 'header-max-length': [2, 'always', 72],
+ },
};
diff --git a/docs/AUTHORS.rst b/docs/AUTHORS.rst
index 0757219..eb461c1 100644
--- a/docs/AUTHORS.rst
+++ b/docs/AUTHORS.rst
@@ -13,15 +13,15 @@ This list is sorted by the number of commits per contributor in *descending* ord
* - Avatar
- Contributor
- Contributions
+ * - :raw-html-m2r:`
`
+ - `@myii `_
+ - 59
* - :raw-html-m2r:`
`
- `@babilen5 `_
- 49
* - :raw-html-m2r:`
`
- `@alfredopalhares `_
- 40
- * - :raw-html-m2r:`
`
- - `@myii `_
- - 21
* - :raw-html-m2r:`
`
- `@n-rodriguez `_
- 17
@@ -40,15 +40,15 @@ This list is sorted by the number of commits per contributor in *descending* ord
* - :raw-html-m2r:`
`
- `@iggy `_
- 2
+ * - :raw-html-m2r:`
`
+ - `@dafyddj `_
+ - 2
* - :raw-html-m2r:`
`
- `@racingferret `_
- 2
* - :raw-html-m2r:`
`
- `@gravyboat `_
- 1
- * - :raw-html-m2r:`
`
- - `@gianarb `_
- - 1
* - :raw-html-m2r:`
`
- `@qybl `_
- 1
@@ -65,4 +65,4 @@ This list is sorted by the number of commits per contributor in *descending* ord
----
-Auto-generated by a `forked version `_ of `gaocegege/maintainer `_ on 2019-10-12.
+Auto-generated by a `forked version `_ of `gaocegege/maintainer `_ on 2020-12-16.
diff --git a/docs/CHANGELOG.rst b/docs/CHANGELOG.rst
index fc232ea..ae8d66b 100644
--- a/docs/CHANGELOG.rst
+++ b/docs/CHANGELOG.rst
@@ -2,6 +2,54 @@
Changelog
=========
+`0.3.3 `_ (2020-12-16)
+----------------------------------------------------------------------------------------------------------
+
+Bug Fixes
+^^^^^^^^^
+
+
+* **release.config.js:** use full commit hash in commit link [skip ci] (\ `4f2c4a5 `_\ )
+
+Continuous Integration
+^^^^^^^^^^^^^^^^^^^^^^
+
+
+* **gemfile:** restrict ``train`` gem version until upstream fix [skip ci] (\ `9ac0fac `_\ )
+* **gemfile.lock:** add to repo with updated ``Gemfile`` [skip ci] (\ `78abe11 `_\ )
+* **gitlab-ci:** use GitLab CI as Travis CI replacement (\ `09e1ffe `_\ )
+* **kitchen:** avoid using bootstrap for ``master`` instances [skip ci] (\ `f2ba8bd `_\ )
+* **kitchen:** use ``debian-10-master-py3`` instead of ``develop`` [skip ci] (\ `1ada26c `_\ )
+* **kitchen:** use ``develop`` image until ``master`` is ready (\ ``amazonlinux``\ ) [skip ci] (\ `489ac8c `_\ )
+* **kitchen:** use ``saltimages`` Docker Hub where available [skip ci] (\ `5ca8b9a `_\ )
+* **kitchen+travis:** remove ``master-py2-arch-base-latest`` [skip ci] (\ `d8372de `_\ )
+* **kitchen+travis:** upgrade matrix after ``2019.2.2`` release [skip ci] (\ `61edc79 `_\ )
+* **pre-commit:** add to formula [skip ci] (\ `172b5b4 `_\ )
+* **pre-commit:** enable/disable ``rstcheck`` as relevant [skip ci] (\ `fabc9eb `_\ )
+* **pre-commit:** finalise ``rstcheck`` configuration [skip ci] (\ `c80c66e `_\ )
+* **travis:** add notifications => zulip [skip ci] (\ `0bc4566 `_\ )
+* **travis:** apply changes from build config validation [skip ci] (\ `c4ade2b `_\ )
+* **travis:** opt-in to ``dpl v2`` to complete build config validation [skip ci] (\ `b09be58 `_\ )
+* **travis:** quote pathspecs used with ``git ls-files`` [skip ci] (\ `c8f134e `_\ )
+* **travis:** run ``shellcheck`` during lint job [skip ci] (\ `2994fa6 `_\ )
+* **travis:** update ``salt-lint`` config for ``v0.0.10`` [skip ci] (\ `834e3df `_\ )
+* **travis:** use ``major.minor`` for ``semantic-release`` version [skip ci] (\ `3d280b1 `_\ )
+* **travis:** use build config validation (beta) [skip ci] (\ `b6cc703 `_\ )
+* **workflows/commitlint:** add to repo [skip ci] (\ `d80c8c6 `_\ )
+
+Documentation
+^^^^^^^^^^^^^
+
+
+* **contributing:** remove to use org-level file instead [skip ci] (\ `ff4f0fd `_\ )
+* **readme:** update link to ``CONTRIBUTING`` [skip ci] (\ `f6d3bfb `_\ )
+
+Performance Improvements
+^^^^^^^^^^^^^^^^^^^^^^^^
+
+
+* **travis:** improve ``salt-lint`` invocation [skip ci] (\ `b995d48 `_\ )
+
`0.3.2 `_ (2019-10-12)
----------------------------------------------------------------------------------------------------------
diff --git a/docs/CONTRIBUTING.rst b/docs/CONTRIBUTING.rst
deleted file mode 100644
index b7da8f4..0000000
--- a/docs/CONTRIBUTING.rst
+++ /dev/null
@@ -1,159 +0,0 @@
-.. _contributing:
-
-How to contribute
-=================
-
-This document will eventually outline all aspects of guidance to make your contributing experience a fruitful and enjoyable one.
-What it already contains is information about *commit message formatting* and how that directly affects the numerous automated processes that are used for this repo.
-It also covers how to contribute to this *formula's documentation*.
-
-.. contents:: **Table of Contents**
-
-Overview
---------
-
-Submitting a pull request is more than just code!
-To achieve a quality product, the *tests* and *documentation* need to be updated as well.
-An excellent pull request will include these in the changes, wherever relevant.
-
-Commit message formatting
--------------------------
-
-Since every type of change requires making Git commits,
-we will start by covering the importance of ensuring that all of your commit
-messages are in the correct format.
-
-Automation of multiple processes
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-This formula uses `semantic-release `_ for automating numerous processes such as bumping the version number appropriately, creating new tags/releases and updating the changelog.
-The entire process relies on the structure of commit messages to determine the version bump, which is then used for the rest of the automation.
-
-Full details are available in the upstream docs regarding the `Angular Commit Message Conventions `_.
-The key factor is that the first line of the commit message must follow this format:
-
-.. code-block::
-
- type(scope): subject
-
-
-* E.g. ``docs(contributing): add commit message formatting instructions``.
-
-Besides the version bump, the changelog and release notes are formatted accordingly.
-So based on the example above:
-
-..
-
- .. raw:: html
-
- Documentation
-
- * **contributing:** add commit message formatting instructions
-
-
-* The ``type`` translates into a ``Documentation`` sub-heading.
-* The ``(scope):`` will be shown in bold text without the brackets.
-* The ``subject`` follows the ``scope`` as standard text.
-
-Linting commit messages in Travis CI
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-This formula uses `commitlint `_ for checking commit messages during CI testing.
-This ensures that they are in accordance with the ``semantic-release`` settings.
-
-For more details about the default settings, refer back to the ``commitlint`` `reference rules `_.
-
-Relationship between commit type and version bump
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-This formula applies some customisations to the defaults, as outlined in the table below,
-based upon the `type `_ of the commit:
-
-.. list-table::
- :name: commit-type-vs-version-bump
- :header-rows: 1
- :stub-columns: 0
- :widths: 1,2,3,1,1
-
- * - Type
- - Heading
- - Description
- - Bump (default)
- - Bump (custom)
- * - ``build``
- - Build System
- - Changes related to the build system
- - –
- -
- * - ``chore``
- - –
- - Changes to the build process or auxiliary tools and libraries such as
- documentation generation
- - –
- -
- * - ``ci``
- - Continuous Integration
- - Changes to the continuous integration configuration
- - –
- -
- * - ``docs``
- - Documentation
- - Documentation only changes
- - –
- - 0.0.1
- * - ``feat``
- - Features
- - A new feature
- - 0.1.0
- -
- * - ``fix``
- - Bug Fixes
- - A bug fix
- - 0.0.1
- -
- * - ``perf``
- - Performance Improvements
- - A code change that improves performance
- - 0.0.1
- -
- * - ``refactor``
- - Code Refactoring
- - A code change that neither fixes a bug nor adds a feature
- - –
- - 0.0.1
- * - ``revert``
- - Reverts
- - A commit used to revert a previous commit
- - –
- - 0.0.1
- * - ``style``
- - Styles
- - Changes that do not affect the meaning of the code (white-space,
- formatting, missing semi-colons, etc.)
- - –
- - 0.0.1
- * - ``test``
- - Tests
- - Adding missing or correcting existing tests
- - –
- - 0.0.1
-
-Use ``BREAKING CHANGE`` to trigger a ``major`` version change
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-Adding ``BREAKING CHANGE`` to the footer of the extended description of the commit message will **always** trigger a ``major`` version change, no matter which type has been used.
-This will be appended to the changelog and release notes as well.
-To preserve good formatting of these notes, the following format is prescribed:
-
-* ``BREAKING CHANGE: .``
-
-An example of that:
-
-.. code-block:: git
-
- ...
-
- BREAKING CHANGE: With the removal of all of the `.sls` files under
- `template package`, this formula no longer supports the installation of
- packages.
-
diff --git a/docs/README.rst b/docs/README.rst
index b7cbb8e..5a730d0 100644
--- a/docs/README.rst
+++ b/docs/README.rst
@@ -37,7 +37,7 @@ Contributing to this repo
**Commit message formatting is significant!!**
-Please see :ref:`How to contribute ` for more details.
+Please see `How to contribute `_ for more details.
Available states
----------------
diff --git a/influxdb/_mapdata/_mapdata.jinja b/influxdb/_mapdata/_mapdata.jinja
new file mode 100644
index 0000000..aa9649c
--- /dev/null
+++ b/influxdb/_mapdata/_mapdata.jinja
@@ -0,0 +1,13 @@
+# yamllint disable rule:indentation rule:line-length
+# {{ grains.get("osfinger", grains.os) }}
+---
+{#- use salt.slsutil.serialize to avoid encoding errors on some platforms #}
+{{ salt["slsutil.serialize"](
+ "yaml",
+ map,
+ default_flow_style=False,
+ allow_unicode=True,
+ )
+ | regex_replace("^\s+'$", "'", multiline=True)
+ | trim
+}}
diff --git a/influxdb/_mapdata/init.sls b/influxdb/_mapdata/init.sls
new file mode 100644
index 0000000..0bab698
--- /dev/null
+++ b/influxdb/_mapdata/init.sls
@@ -0,0 +1,22 @@
+# -*- coding: utf-8 -*-
+# vim: ft=sls
+---
+{#- Get the `tplroot` from `tpldir` #}
+{%- set tplroot = tpldir.split("/")[0] %}
+{%- from tplroot ~ "/map.jinja" import influxdb_settings with context %}
+
+{%- set _mapdata = {
+ "values": influxdb_settings,
+ } %}
+{%- do salt["log.debug"]("### MAP.JINJA DUMP ###\n" ~ _mapdata | yaml(False)) %}
+
+{%- set output_dir = "/temp" if grains.os_family == "Windows" else "/tmp" %}
+{%- set output_file = output_dir ~ "/salt_mapdata_dump.yaml" %}
+
+{{ tplroot }}-mapdata-dump:
+ file.managed:
+ - name: {{ output_file }}
+ - source: salt://{{ tplroot }}/_mapdata/_mapdata.jinja
+ - template: jinja
+ - context:
+ map: {{ _mapdata | yaml }}
diff --git a/kitchen.yml b/kitchen.yml
index e411a53..87dc8ce 100644
--- a/kitchen.yml
+++ b/kitchen.yml
@@ -6,190 +6,264 @@ driver:
name: docker
use_sudo: false
privileged: true
- run_command: /lib/systemd/systemd
+ run_command: /usr/lib/systemd/systemd
-# Make sure the platforms listed below match up with
-# the `env.matrix` instances defined in `.travis.yml`
-platforms:
- ## SALT `develop`
- - name: debian-10-develop-py3
- driver:
- image: netmanagers/salt-develop-py3:debian-10
- provision_command:
- - curl -o bootstrap-salt.sh -L https://bootstrap.saltstack.com
- - sh bootstrap-salt.sh -XdPbfrq -x python3 git develop
- - name: ubuntu-1804-develop-py3
- driver:
- image: netmanagers/salt-develop-py3:ubuntu-18.04
- provision_command:
- - curl -o bootstrap-salt.sh -L https://bootstrap.saltstack.com
- - sh bootstrap-salt.sh -XdPbfrq -x python3 git develop
- - name: centos-7-develop-py3
- driver:
- image: netmanagers/salt-develop-py3:centos-7
- provision_command:
- - curl -o bootstrap-salt.sh -L https://bootstrap.saltstack.com
- - sh bootstrap-salt.sh -XdPbfrq -x python3 git develop
- - name: fedora-30-develop-py3
- driver:
- image: netmanagers/salt-develop-py3:fedora-30
- provision_command:
- - curl -o bootstrap-salt.sh -L https://bootstrap.saltstack.com
- - sh bootstrap-salt.sh -XdPbfrq -x python3 git develop
- - name: opensuse-leap-15-develop-py3
- driver:
- image: opensuse/leap:15
- provision_command:
- # yamllint disable-line rule:line-length
- - zypper install -y glibc-locale net-tools net-tools-deprecated python-xml python3-pip
- - systemctl enable sshd.service
- run_command: /usr/lib/systemd/systemd
- provisioner:
- salt_bootstrap_options: -XdPfrq -x python3 git develop
- salt_install: bootstrap
- # Workaround to avoid intermittent failures on `opensuse-leap-15`:
- # => SCP did not finish successfully (255): (Net::SCP::Error)
- transport:
- max_ssh_sessions: 1
- - name: amazonlinux-2-develop-py2
- driver:
- image: netmanagers/salt-develop-py2:amazonlinux-2
- provision_command:
- - curl -o bootstrap-salt.sh -L https://bootstrap.saltstack.com
- - sh bootstrap-salt.sh -XdPbfrq -x python2 git develop
- - name: arch-base-latest-develop-py2
- driver:
- image: netmanagers/salt-develop-py2:arch-base-latest
- provision_command:
- - curl -o bootstrap-salt.sh -L https://bootstrap.saltstack.com
- - sh bootstrap-salt.sh -XdPbfrq -x python2 git develop
- run_command: /usr/lib/systemd/systemd
+provisioner:
+ name: salt_solo
+ log_level: debug
+ salt_install: none
+ require_chef: false
+ formula: influxdb
+ salt_copy_filter:
+ - .kitchen
+ - .git
- ## SALT `2019.2`
- - name: debian-9-2019-2-py3
+platforms:
+ ## SALT `tiamat`
+ - name: debian-11-tiamat-py3
driver:
- image: netmanagers/salt-2019.2-py3:debian-9
- - name: ubuntu-1804-2019-2-py3
+ image: saltimages/salt-tiamat-py3:debian-11
+ run_command: /lib/systemd/systemd
+ - name: debian-10-tiamat-py3
driver:
- image: netmanagers/salt-2019.2-py3:ubuntu-18.04
- - name: centos-7-2019-2-py3
+ image: saltimages/salt-tiamat-py3:debian-10
+ run_command: /lib/systemd/systemd
+ - name: debian-9-tiamat-py3
driver:
- image: netmanagers/salt-2019.2-py3:centos-7
- - name: fedora-30-2019-2-py3
+ image: saltimages/salt-tiamat-py3:debian-9
+ run_command: /lib/systemd/systemd
+ - name: ubuntu-2204-tiamat-py3
driver:
- image: netmanagers/salt-2019.2-py3:fedora-30
- - name: opensuse-leap-15-2019-2-py3
+ image: saltimages/salt-tiamat-py3:ubuntu-22.04
+ run_command: /lib/systemd/systemd
+ - name: ubuntu-2004-tiamat-py3
driver:
- image: opensuse/leap:15
- provision_command:
- # yamllint disable-line rule:line-length
- - zypper install -y glibc-locale net-tools net-tools-deprecated python-xml python3-pip
- - systemctl enable sshd.service
- run_command: /usr/lib/systemd/systemd
- provisioner:
- salt_bootstrap_options: -XdPfrq -x python3 git 2019.2
- salt_install: bootstrap
- # Workaround to avoid intermittent failures on `opensuse-leap-15`:
- # => SCP did not finish successfully (255): (Net::SCP::Error)
- transport:
- max_ssh_sessions: 1
- - name: amazonlinux-2-2019-2-py2
+ 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: netmanagers/salt-2019.2-py2:amazonlinux-2
- - name: arch-base-latest-2019-2-py2
+ image: saltimages/salt-tiamat-py3:centos-7
+ - name: amazonlinux-2-tiamat-py3
driver:
- image: netmanagers/salt-2019.2-py2:arch-base-latest
- run_command: /usr/lib/systemd/systemd
+ 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
- ## SALT `2018.3`
- - name: debian-9-2018-3-py2
+ ## SALT `master`
+ - name: debian-11-master-py3
driver:
- image: netmanagers/salt-2018.3-py2:debian-9
- - name: ubuntu-1604-2018-3-py2
+ image: saltimages/salt-master-py3:debian-11
+ run_command: /lib/systemd/systemd
+ - name: debian-10-master-py3
driver:
- image: netmanagers/salt-2018.3-py2:ubuntu-16.04
- - name: centos-7-2018-3-py2
+ image: saltimages/salt-master-py3:debian-10
+ run_command: /lib/systemd/systemd
+ - name: debian-9-master-py3
driver:
- image: netmanagers/salt-2018.3-py2:centos-7
- - name: fedora-29-2018-3-py2
+ image: saltimages/salt-master-py3:debian-9
+ run_command: /lib/systemd/systemd
+ - name: ubuntu-2204-master-py3
driver:
- image: netmanagers/salt-2018.3-py2:fedora-29
- - name: opensuse-leap-15-2018-3-py2
+ image: saltimages/salt-master-py3:ubuntu-22.04
+ run_command: /lib/systemd/systemd
+ - name: ubuntu-2004-master-py3
driver:
- image: opensuse/leap:15
- provision_command:
- # yamllint disable-line rule:line-length
- - zypper install -y glibc-locale net-tools net-tools-deprecated python-xml python2-pip
- - systemctl enable sshd.service
- run_command: /usr/lib/systemd/systemd
- provisioner:
- salt_bootstrap_options: -XdPfrq -x python2 git 2018.3
- salt_install: bootstrap
- # Workaround to avoid intermittent failures on `opensuse-leap-15`:
+ 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
+ driver:
+ image: saltimages/salt-master-py3:centos-7
+ - name: fedora-36-master-py3
+ 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`:
+ # => SCP did not finish successfully (255): (Net::SCP::Error)
+ transport:
+ max_ssh_sessions: 1
+ - name: opensuse-tmbl-latest-master-py3
+ 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-2018-3-py2
+ - name: amazonlinux-2-master-py3
+ driver:
+ image: saltimages/salt-master-py3:amazonlinux-2
+ - name: oraclelinux-8-master-py3
+ driver:
+ image: saltimages/salt-master-py3:oraclelinux-8
+ - name: oraclelinux-7-master-py3
+ driver:
+ image: saltimages/salt-master-py3:oraclelinux-7
+ - name: arch-base-latest-master-py3
+ driver:
+ image: saltimages/salt-master-py3:arch-base-latest
+ - name: gentoo-stage3-latest-master-py3
+ driver:
+ image: saltimages/salt-master-py3:gentoo-stage3-latest
+ run_command: /sbin/init
+ - name: gentoo-stage3-systemd-master-py3
+ driver:
+ image: saltimages/salt-master-py3:gentoo-stage3-systemd
+ - name: almalinux-8-master-py3
driver:
- image: netmanagers/salt-2018.3-py2:amazonlinux-2
- - name: arch-base-latest-2018-3-py2
+ image: saltimages/salt-master-py3:almalinux-8
+ - name: rockylinux-8-master-py3
driver:
- image: netmanagers/salt-2018.3-py2:arch-base-latest
- run_command: /usr/lib/systemd/systemd
+ image: saltimages/salt-master-py3:rockylinux-8
- ## SALT `2017.7`
- - name: debian-8-2017-7-py2
+ ## SALT `3004.1`
+ - name: debian-11-3004-1-py3
+ driver:
+ image: saltimages/salt-3004.1-py3:debian-11
+ run_command: /lib/systemd/systemd
+ - name: debian-10-3004-1-py3
+ driver:
+ image: saltimages/salt-3004.1-py3:debian-10
+ run_command: /lib/systemd/systemd
+ - name: debian-9-3004-1-py3
+ driver:
+ image: saltimages/salt-3004.1-py3:debian-9
+ run_command: /lib/systemd/systemd
+ - name: ubuntu-2204-3004-1-py3
+ driver:
+ image: saltimages/salt-3004.1-py3:ubuntu-22.04
+ run_command: /lib/systemd/systemd
+ - name: ubuntu-2004-3004-1-py3
+ driver:
+ image: saltimages/salt-3004.1-py3:ubuntu-20.04
+ run_command: /lib/systemd/systemd
+ - name: ubuntu-1804-3004-1-py3
+ driver:
+ image: saltimages/salt-3004.1-py3:ubuntu-18.04
+ run_command: /lib/systemd/systemd
+ - name: centos-stream8-3004-1-py3
+ driver:
+ image: saltimages/salt-3004.1-py3:centos-stream8
+ - name: centos-7-3004-1-py3
+ driver:
+ image: saltimages/salt-3004.1-py3:centos-7
+ - name: fedora-36-3004-1-py3
+ driver:
+ image: saltimages/salt-3004.1-py3:fedora-36
+ - name: fedora-35-3004-1-py3
driver:
- image: netmanagers/salt-2017.7-py2:debian-8
- - name: ubuntu-1604-2017-7-py2
+ image: saltimages/salt-3004.1-py3:fedora-35
+ - name: amazonlinux-2-3004-1-py3
driver:
- image: netmanagers/salt-2017.7-py2:ubuntu-16.04
- - name: centos-6-2017-7-py2
+ image: saltimages/salt-3004.1-py3:amazonlinux-2
+ - name: oraclelinux-8-3004-1-py3
driver:
- image: netmanagers/salt-2017.7-py2:centos-6
+ image: saltimages/salt-3004.1-py3:oraclelinux-8
+ - name: oraclelinux-7-3004-1-py3
+ driver:
+ image: saltimages/salt-3004.1-py3:oraclelinux-7
+ - name: arch-base-latest-3004-1-py3
+ driver:
+ image: saltimages/salt-3004.1-py3:arch-base-latest
+ - name: gentoo-stage3-latest-3004-1-py3
+ driver:
+ image: saltimages/salt-3004.1-py3:gentoo-stage3-latest
run_command: /sbin/init
- - name: fedora-29-2017-7-py2
+ - name: gentoo-stage3-systemd-3004-1-py3
driver:
- image: netmanagers/salt-2017.7-py2:fedora-29
- - name: opensuse-leap-15-2017-7-py2
+ image: saltimages/salt-3004.1-py3:gentoo-stage3-systemd
+ - name: almalinux-8-3004-1-py3
driver:
- image: opensuse/leap:15
- provision_command:
- # yamllint disable-line rule:line-length
- - zypper install -y glibc-locale net-tools net-tools-deprecated python-xml python2-pip
- - systemctl enable sshd.service
- run_command: /usr/lib/systemd/systemd
- provisioner:
- salt_bootstrap_options: -XdPfrq -x python2 git 2017.7
- salt_install: bootstrap
- # Workaround to avoid intermittent failures on `opensuse-leap-15`:
+ image: saltimages/salt-3004.1-py3:almalinux-8
+ - name: rockylinux-8-3004-1-py3
+ driver:
+ image: saltimages/salt-3004.1-py3:rockylinux-8
+
+ ## SALT `3004.0`
+ - name: opensuse-leap-153-3004-0-py3
+ driver:
+ image: saltimages/salt-3004.0-py3:opensuse-leap-15.3
+ # Workaround to avoid intermittent failures on `opensuse-leap-15.3`:
# => SCP did not finish successfully (255): (Net::SCP::Error)
transport:
max_ssh_sessions: 1
- - name: amazonlinux-2-2017-7-py2
- driver:
- image: netmanagers/salt-2017.7-py2:amazonlinux-2
- - name: arch-base-latest-2017-7-py2
+ - name: opensuse-tmbl-latest-3004-0-py3
driver:
- image: netmanagers/salt-2017.7-py2:arch-base-latest
- run_command: /usr/lib/systemd/systemd
+ image: saltimages/salt-3004.0-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
-provisioner:
- name: salt_solo
- log_level: debug
- salt_install: none
- require_chef: false
- formula: influxdb
- salt_copy_filter:
- - .kitchen
- - .git
+ ## SALT `3003.4`
+ - name: debian-10-3003-4-py3
+ driver:
+ image: saltimages/salt-3003.4-py3:debian-10
+ run_command: /lib/systemd/systemd
+ - name: debian-9-3003-4-py3
+ driver:
+ image: saltimages/salt-3003.4-py3:debian-9
+ run_command: /lib/systemd/systemd
+ - name: ubuntu-2004-3003-4-py3
+ driver:
+ image: saltimages/salt-3003.4-py3:ubuntu-20.04
+ run_command: /lib/systemd/systemd
+ - name: ubuntu-1804-3003-4-py3
+ driver:
+ image: saltimages/salt-3003.4-py3:ubuntu-18.04
+ run_command: /lib/systemd/systemd
+ - name: centos-stream8-3003-4-py3
+ driver:
+ image: saltimages/salt-3003.4-py3:centos-stream8
+ - name: centos-7-3003-4-py3
+ driver:
+ image: saltimages/salt-3003.4-py3:centos-7
+ - name: amazonlinux-2-3003-4-py3
+ driver:
+ image: saltimages/salt-3003.4-py3:amazonlinux-2
+ - name: oraclelinux-8-3003-4-py3
+ driver:
+ image: saltimages/salt-3003.4-py3:oraclelinux-8
+ - name: oraclelinux-7-3003-4-py3
+ driver:
+ image: saltimages/salt-3003.4-py3:oraclelinux-7
+ - name: almalinux-8-3003-4-py3
+ driver:
+ image: saltimages/salt-3003.4-py3:almalinux-8
verifier:
# https://www.inspec.io/
name: inspec
sudo: true
- # cli, documentation, html, progress, json, json-min, json-rspec, junit
reporter:
+ # cli, documentation, html, progress, json, json-min, json-rspec, junit
- cli
suites:
@@ -198,6 +272,7 @@ suites:
state_top:
base:
'*':
+ - influxdb._mapdata
- influxdb
pillars:
top.sls:
diff --git a/pre-commit_semantic-release.sh b/pre-commit_semantic-release.sh
index 9d34d74..80f46e2 100755
--- a/pre-commit_semantic-release.sh
+++ b/pre-commit_semantic-release.sh
@@ -7,16 +7,16 @@ sed -i -e "s_^\(version:\).*_\1 ${1}_" FORMULA
###############################################################################
-# (B) Use `m2r` to convert automatically produced `.md` docs to `.rst`
+# (B) Use `m2r2` to convert automatically produced `.md` docs to `.rst`
###############################################################################
-# Install `m2r`
-sudo -H pip install m2r
+# Install `m2r2`
+pip3 install m2r2
# Copy and then convert the `.md` docs
-cp *.md docs/
-cd docs/
-m2r --overwrite *.md
+cp ./*.md docs/
+cd docs/ || exit
+m2r2 --overwrite ./*.md
# Change excess `H1` headings to `H2` in converted `CHANGELOG.rst`
sed -i -e '/^=.*$/s/=/-/g' CHANGELOG.rst
diff --git a/release.config.js b/release.config.js
index afa0cb1..d65751b 100644
--- a/release.config.js
+++ b/release.config.js
@@ -1,5 +1,6 @@
module.exports = {
branch: 'master',
+ repositoryUrl: 'https://github.com/saltstack-formulas/influxdb-formula',
plugins: [
['@semantic-release/commit-analyzer', {
preset: 'angular',
@@ -63,7 +64,7 @@ module.exports = {
}
if (typeof commit.hash === `string`) {
- commit.hash = commit.hash.substring(0, 7)
+ commit.shortHash = commit.hash.substring(0, 7)
}
if (typeof commit.subject === `string`) {
diff --git a/test/integration/default/inspec.yml b/test/integration/default/inspec.yml
index 9ad2e37..c645c74 100644
--- a/test/integration/default/inspec.yml
+++ b/test/integration/default/inspec.yml
@@ -6,6 +6,9 @@ title: influxdb formula
maintainer: SaltStack Formulas
license: Apache-2.0
summary: Verify that the influxdb formula is setup and configured correctly
+depends:
+ - name: share
+ path: test/integration/share
supports:
- platform-name: debian
- platform-name: ubuntu
@@ -14,5 +17,12 @@ supports:
- platform-name: opensuse
- platform-name: suse
- platform-name: freebsd
+ - platform-name: openbsd
- platform-name: amazon
+ - platform-name: oracle
- platform-name: arch
+ - platform-name: gentoo
+ - platform-name: almalinux
+ - platform-name: rocky
+ - platform-name: mac_os_x
+ - platform: windows
diff --git a/test/integration/share/README.md b/test/integration/share/README.md
new file mode 100644
index 0000000..5c5785b
--- /dev/null
+++ b/test/integration/share/README.md
@@ -0,0 +1,22 @@
+# InSpec Profile: `share`
+
+This shows the implementation of the `share` InSpec [profile](https://github.com/inspec/inspec/blob/master/docs/profiles.md).
+
+Its goal is to share the libraries between all profiles.
+
+## Libraries
+
+### `system`
+
+The `system` library provides easy access to system dependent information:
+
+- `system.platform`: based on `inspec.platform`, modify to values that are more consistent from a SaltStack perspective
+ - `system.platform[:family]` provide a family name for Arch and Gentoo
+ - `system.platform[:name]` append `linux` to both `amazon` and `oracle`; ensure Windows platforms are resolved as simply `windows`
+ - `system.platform[:release]` tweak Arch, Amazon Linux, Gentoo, openSUSE and Windows:
+ - `Arch` is always `base-latest`
+ - `Amazon Linux` release `2018` is resolved as `1`
+ - `Gentoo` release is trimmed to its major version number and then the init system is appended (i.e. `sysv` or `sysd`)
+ - `openSUSE` is resolved as `tumbleweed` if the `platform[:release]` is in date format
+ - `Windows` uses the widely-used release number (e.g. `8.1` or `2019-server`) in place of the actual system release version
+ - `system.platform[:finger]` is the concatenation of the name and the major release number (except for Ubuntu, which gives `ubuntu-20.04` for example)
diff --git a/test/integration/share/inspec.yml b/test/integration/share/inspec.yml
new file mode 100644
index 0000000..28a97b9
--- /dev/null
+++ b/test/integration/share/inspec.yml
@@ -0,0 +1,25 @@
+# -*- coding: utf-8 -*-
+# vim: ft=yaml
+---
+name: share
+title: InSpec shared resources
+maintainer: SaltStack Formulas
+license: Apache-2.0
+summary: shared resources
+supports:
+ - platform-name: debian
+ - platform-name: ubuntu
+ - platform-name: centos
+ - platform-name: fedora
+ - platform-name: opensuse
+ - platform-name: suse
+ - platform-name: freebsd
+ - platform-name: openbsd
+ - platform-name: amazon
+ - platform-name: oracle
+ - platform-name: arch
+ - platform-name: gentoo
+ - platform-name: almalinux
+ - platform-name: rocky
+ - platform-name: mac_os_x
+ - platform: windows
diff --git a/test/integration/share/libraries/system.rb b/test/integration/share/libraries/system.rb
new file mode 100644
index 0000000..64405bb
--- /dev/null
+++ b/test/integration/share/libraries/system.rb
@@ -0,0 +1,138 @@
+# frozen_string_literal: true
+
+# system.rb -- InSpec resources for system values
+# Author: Daniel Dehennin
+# Copyright (C) 2020 Daniel Dehennin
+
+# rubocop:disable Metrics/ClassLength
+class SystemResource < Inspec.resource(1)
+ name 'system'
+
+ attr_reader :platform
+
+ def initialize
+ super
+ @platform = build_platform
+ end
+
+ private
+
+ def build_platform
+ {
+ family: build_platform_family,
+ name: build_platform_name,
+ release: build_platform_release,
+ finger: build_platform_finger,
+ codename: build_platform_codename
+ }
+ end
+
+ def build_platform_family
+ case inspec.platform[:name]
+ when 'arch', 'gentoo'
+ inspec.platform[:name]
+ else
+ inspec.platform[:family]
+ end
+ end
+
+ def build_platform_name
+ case inspec.platform[:name]
+ when 'amazon', 'oracle', 'rocky'
+ "#{inspec.platform[:name]}linux"
+ when /^windows_/
+ inspec.platform[:family]
+ else
+ inspec.platform[:name]
+ end
+ end
+
+ # rubocop:disable Metrics/MethodLength,Metrics/AbcSize,Metrics/CyclomaticComplexity
+ def build_platform_release
+ case inspec.platform[:name]
+ when 'amazon'
+ # `2018` relase is named `1` in `kitchen.yml`
+ inspec.platform[:release].gsub(/2018.*/, '1')
+ when 'arch'
+ 'base-latest'
+ when 'gentoo'
+ "#{inspec.platform[:release].split('.')[0]}-#{derive_gentoo_init_system}"
+ when 'mac_os_x'
+ inspec.command('sw_vers -productVersion').stdout.to_s
+ when 'opensuse'
+ # rubocop:disable Style/NumericLiterals,Layout/LineLength
+ inspec.platform[:release].to_i > 20210101 ? 'tumbleweed' : inspec.platform[:release]
+ # rubocop:enable Style/NumericLiterals,Layout/LineLength
+ when 'windows_8.1_pro'
+ '8.1'
+ when 'windows_server_2022_datacenter'
+ '2022-server'
+ when 'windows_server_2019_datacenter'
+ '2019-server'
+ when 'windows_server_2016_datacenter'
+ '2016-server'
+ else
+ inspec.platform[:release]
+ end
+ end
+ # rubocop:enable Metrics/MethodLength,Metrics/AbcSize,Metrics/CyclomaticComplexity
+
+ def derive_gentoo_init_system
+ inspec.command('systemctl').exist? ? 'sysd' : 'sysv'
+ end
+
+ def build_platform_finger
+ "#{build_platform_name}-#{build_finger_release}"
+ end
+
+ def build_finger_release
+ case inspec.platform[:name]
+ when 'ubuntu'
+ build_platform_release.split('.').slice(0, 2).join('.')
+ else
+ build_platform_release.split('.')[0]
+ end
+ end
+
+ # rubocop:disable Metrics/MethodLength,Metrics/CyclomaticComplexity
+ def build_platform_codename
+ case build_platform_finger
+ when 'ubuntu-22.04'
+ 'jammy'
+ when 'ubuntu-20.04'
+ 'focal'
+ when 'ubuntu-18.04'
+ 'bionic'
+ when 'debian-11'
+ 'bullseye'
+ when 'debian-10'
+ 'buster'
+ when 'debian-9'
+ 'stretch'
+ when 'almalinux-8'
+ "AlmaLinux #{build_platform_release} (Arctic Sphynx)"
+ when 'amazonlinux-2'
+ 'Amazon Linux 2'
+ when 'arch-base-latest'
+ 'Arch Linux'
+ when 'centos-7'
+ 'CentOS Linux 7 (Core)'
+ when 'centos-8'
+ 'CentOS Stream 8'
+ when 'opensuse-tumbleweed'
+ 'openSUSE Tumbleweed'
+ when 'opensuse-15'
+ "openSUSE Leap #{build_platform_release}"
+ when 'oraclelinux-8', 'oraclelinux-7'
+ "Oracle Linux Server #{build_platform_release}"
+ when 'gentoo-2-sysd', 'gentoo-2-sysv'
+ 'Gentoo/Linux'
+ when 'rockylinux-8'
+ "Rocky Linux #{build_platform_release} (Green Obsidian)"
+ else
+ ''
+ end
+ end
+ # rubocop:enable Metrics/MethodLength,Metrics/CyclomaticComplexity
+end
+# rubocop:enable Metrics/ClassLength