diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile
new file mode 100644
index 000000000..74da96bbe
--- /dev/null
+++ b/.devcontainer/Dockerfile
@@ -0,0 +1,17 @@
+# [Choice] Ruby version (use -bullseye variants on local arm64/Apple Silicon): 3, 3.0, 2, 2.7, 2.6, 3-bullseye, 3.0-bullseye, 2-bullseye, 2.7-bullseye, 2.6-bullseye, 3-buster, 3.0-buster, 2-buster, 2.7-buster, 2.6-buster
+ARG VARIANT=2-bullseye
+FROM mcr.microsoft.com/vscode/devcontainers/ruby:0-${VARIANT}
+
+# [Choice] Node.js version: none, lts/*, 16, 14, 12, 10
+ARG NODE_VERSION="none"
+RUN if [ "${NODE_VERSION}" != "none" ]; then su vscode -c "umask 0002 && . /usr/local/share/nvm/nvm.sh && nvm install ${NODE_VERSION} 2>&1"; fi
+
+# [Optional] Uncomment this section to install additional OS packages.
+# RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
+# && apt-get -y install --no-install-recommends
+
+# [Optional] Uncomment this line to install additional gems.
+# RUN gem install
+
+# [Optional] Uncomment this line to install global node packages.
+# RUN su vscode -c "source /usr/local/share/nvm/nvm.sh && npm install -g " 2>&1
\ No newline at end of file
diff --git a/.devcontainer/base.Dockerfile b/.devcontainer/base.Dockerfile
new file mode 100644
index 000000000..3254fe8e6
--- /dev/null
+++ b/.devcontainer/base.Dockerfile
@@ -0,0 +1,43 @@
+# [Choice] Ruby version (use -bullseye variants on local arm64/Apple Silicon): 3, 3.0, 2, 2.7, 2.6, 3-bullseye, 3.0-bullseye, 2-bullseye, 2.7-bullseye, 2.6-bullseye, 3-buster, 3.0-buster, 2-buster, 2.7-buster, 2.6-buster
+ARG VARIANT=2-bullseye
+FROM ruby:${VARIANT}
+
+# Copy library scripts to execute
+COPY library-scripts/*.sh library-scripts/*.env /tmp/library-scripts/
+
+# [Option] Install zsh
+ARG INSTALL_ZSH="true"
+# [Option] Upgrade OS packages to their latest versions
+ARG UPGRADE_PACKAGES="true"
+# Install needed packages and setup non-root user. Use a separate RUN statement to add your own dependencies.
+ARG USERNAME=vscode
+ARG USER_UID=1000
+ARG USER_GID=$USER_UID
+RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
+ # Remove imagemagick due to https://security-tracker.debian.org/tracker/CVE-2019-10131
+ && apt-get purge -y imagemagick imagemagick-6-common \
+ # Install common packages, non-root user, rvm, core build tools
+ && bash /tmp/library-scripts/common-debian.sh "${INSTALL_ZSH}" "${USERNAME}" "${USER_UID}" "${USER_GID}" "${UPGRADE_PACKAGES}" "true" "true" \
+ && bash /tmp/library-scripts/ruby-debian.sh "none" "${USERNAME}" "true" "true" \
+ && apt-get autoremove -y && apt-get clean -y && rm -rf /var/lib/apt/lists/*
+
+# [Choice] Node.js version: none, lts/*, 16, 14, 12, 10
+ARG NODE_VERSION="none"
+ENV NVM_DIR=/usr/local/share/nvm
+ENV NVM_SYMLINK_CURRENT=true \
+ PATH=${NVM_DIR}/current/bin:${PATH}
+RUN bash /tmp/library-scripts/node-debian.sh "${NVM_DIR}" "${NODE_VERSION}" "${USERNAME}" \
+ && apt-get clean -y && rm -rf /var/lib/apt/lists/*
+
+ # Remove library scripts for final image
+RUN rm -rf /tmp/library-scripts
+
+# [Optional] Uncomment this section to install additional OS packages.
+# RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
+# && apt-get -y install --no-install-recommends
+
+# [Optional] Uncomment this line to install additional gems.
+# RUN gem install
+
+# [Optional] Uncomment this line to install global node packages.
+# RUN su vscode -c "source /usr/local/share/nvm/nvm.sh && npm install -g " 2>&1
\ No newline at end of file
diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json
new file mode 100644
index 000000000..914e7f7cd
--- /dev/null
+++ b/.devcontainer/devcontainer.json
@@ -0,0 +1,37 @@
+// For format details, see https://aka.ms/devcontainer.json. For config options, see the README at:
+// https://github.com/microsoft/vscode-dev-containers/tree/v0.209.6/containers/ruby
+{
+ "name": "Ruby",
+ "build": {
+ "dockerfile": "Dockerfile",
+ "args": {
+ // Update 'VARIANT' to pick a Ruby version: 3, 3.0, 2, 2.7, 2.6
+ // Append -bullseye or -buster to pin to an OS version.
+ // Use -bullseye variants on local on arm64/Apple Silicon.
+ "VARIANT": "3-bullseye",
+ // Options
+ "NODE_VERSION": "17"
+ }
+ },
+
+ // Set *default* container specific settings.json values on container create.
+ "settings": {},
+
+ // Add the IDs of extensions you want installed when the container is created.
+ "extensions": [
+ "rebornix.Ruby"
+ ],
+
+ // Use 'forwardPorts' to make a list of ports inside the container available locally.
+ // "forwardPorts": [],
+
+ // Use 'postCreateCommand' to run commands after the container is created.
+ // "postCreateCommand": "ruby --version",
+
+ // Comment out connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root.
+ "remoteUser": "vscode",
+ "features": {
+ "terraform": "latest"
+ }
+
+}
diff --git a/.github/workflows/kitchen-tests.yml b/.github/workflows/kitchen-tests.yml
index 822cb821c..3e2cf65da 100644
--- a/.github/workflows/kitchen-tests.yml
+++ b/.github/workflows/kitchen-tests.yml
@@ -20,8 +20,8 @@ jobs:
matrix:
include:
- operating-system: macos
- terraform-version: '1.0.1'
- terragrunt-version: '0.31.0'
+ terraform-version: '1.1.4'
+ terragrunt-version: '0.36.0'
- operating-system: ubuntu
terraform-version: '0.15.5'
- operating-system: ubuntu
@@ -47,7 +47,7 @@ jobs:
terraform_wrapper: false
- name: Setup Terragrunt
if: ${{ matrix.operating-system == 'macos' }}
- uses: autero1/action-terragrunt@v1.1.0
+ uses: autero1/action-terragrunt@v1.1.1
with:
terragrunt_version: ${{ matrix.terragrunt-version }}
- name: Mirror Terraform Providers
@@ -64,4 +64,4 @@ jobs:
if: ${{ matrix.operating-system == 'ubuntu' }}
run: |
chmod 400 ./test/terraform/$VERSION_MATCHER/backend-ssh/id_ed25519
- bundle exec rake test:kitchen:backend-ssh-ubuntu
\ No newline at end of file
+ bundle exec rake test:kitchen:backend-ssh-ubuntu
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 5ff1f81f0..665376ed5 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,12 +2,18 @@
All notable changes to this project will be documented in this file.
-The format is based on
-[Keep a Changelog](http://keepachangelog.com/en/1.0.0) and this project
-adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
+The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0)
+and this project adheres to
+[Semantic Versioning](http://semver.org/spec/v2.0.0.html).
## [Unreleased][unreleased]
+## [6.1.0] - 2022-01-22
+
+### Added
+
+- Support for Terraform >= 1.1.0, < 2.0.0.
+
## [6.0.0] - 2021-07-07
### Added
@@ -30,9 +36,9 @@ adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
### Fixed
-- `TF_WARN_OUTPUT_ERRORS` is only set during when running
- `terraform destroy` during `kitchen destroy`. It appears that this
- change was erroneously declared as functional in 4.3.0. :grimacing:
+- `TF_WARN_OUTPUT_ERRORS` is only set during when running `terraform destroy`
+ during `kitchen destroy`. It appears that this change was erroneously declared
+ as functional in 4.3.0. :grimacing:
## [5.7.1] - 2021-02-25
@@ -64,7 +70,7 @@ adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
### Security
-- Updated all gem versions to remediate ActiveSupport vulnerability, a
+- Updated all gem versions to remediate ActiveSupport vulnerability, a
dependency of the train gem.
## [5.4.0] - 2020-05-31
@@ -75,22 +81,22 @@ adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
### Changed
-- Gem deployment to RubyGems now takes place with GitHub Actions. Unit
- and Integration tests remain in Travis CI and Appveyor.
+- Gem deployment to RubyGems now takes place with GitHub Actions. Unit and
+ Integration tests remain in Travis CI and Appveyor.
## [5.3.0] - 2020-03-08
### Added
-- Verifier systems have a `bastion_host_output` attribute which allows
- a bastion host to be obtained from a Terraform output rather than
- statically defined with the `bastion_host` attribute.
+- Verifier systems have a `bastion_host_output` attribute which allows a bastion
+ host to be obtained from a Terraform output rather than statically defined
+ with the `bastion_host` attribute.
### Fixed
- All plugin log messages use consistent levels.
-- The output of the `terraform output` command has been reverted to log
- at the debug level rather than the warn level.
+- The output of the `terraform output` command has been reverted to log at the
+ debug level rather than the warn level.
## [5.2.0] - 2020-02-27
@@ -98,39 +104,39 @@ The "trapped in Atlanta" edition!
### Changed
-- Log messages have been adjusted to provide better context and
- actionable information where approriate.
+- Log messages have been adjusted to provide better context and actionable
+ information where approriate.
-- The dependency on mixlib-shellout has been updated to support
- installation using ChefDK versions 3.9 and newer.
+- The dependency on mixlib-shellout has been updated to support installation
+ using ChefDK versions 3.9 and newer.
## [5.1.1] - 2019-08-28
### Fixed
-- RbNaCl was removed from the gem dependencies to solve for an
- unexpected compatibility issue with InSpec's GCP transport [#351].
- Installation instructions were linked in the README for
- configurations which may require this gem.
+- RbNaCl was removed from the gem dependencies to solve for an unexpected
+ compatibility issue with InSpec's GCP transport [#351]. Installation
+ instructions were linked in the README for configurations which may require
+ this gem.
## [5.1.0] - 2019-07-06
### Changed
-- InSpec 3 is supported again. It must be explicitly pinned in the
- `Gemfile`, like `gem "inspec", "~> 3.0"`.
+- InSpec 3 is supported again. It must be explicitly pinned in the `Gemfile`,
+ like `gem "inspec", "~> 3.0"`.
### Fixed
-- Default values for unsupported configuration attributes inherited
- from the base Kitchen plugins were removed.
+- Default values for unsupported configuration attributes inherited from the
+ base Kitchen plugins were removed.
## [5.0.0] - 2019-06-06
### Changed
-- The supported version of InSpec is 4. This version changes the
- priority of profile attributes configurations:
+- The supported version of InSpec is 4. This version changes the priority of
+ profile attributes configurations:
1. `systems.x.attrs_outputs`
1. the default association of attributes to Terraform outputs
1. `systems.x.attrs`
@@ -145,37 +151,33 @@ The "trapped in Atlanta" edition!
### Fixed
-- Added a reference to the `client` attribute in the driver
- documentation.
+- Added a reference to the `client` attribute in the driver documentation.
- Corrected the attribute name in the `verify_version` example.
## [4.8.0] - 2019-04-14
### Added
-- The verifier exposes input variables configured through the
- `variables` attribute as InSpec profile attributes prefixed with
- `input_`; refer to the updated
- [Terraform Verifier documentation][terraform-verifier] for more
+- The verifier exposes input variables configured through the `variables`
+ attribute as InSpec profile attributes prefixed with `input_`; refer to the
+ updated [Terraform Verifier documentation][terraform-verifier] for more
details.
### Changed
-- The verifier exposes output variables as InSpec profile attributes
- prefixed with `output_`, though the unprefixed variety of attributes
- are still available for backward compatibility; refer to the updated
- [Terraform Verifier documentation][terraform-verifier] for more
- details.
+- The verifier exposes output variables as InSpec profile attributes prefixed
+ with `output_`, though the unprefixed variety of attributes are still
+ available for backward compatibility; refer to the updated [Terraform Verifier
+ documentation][terraform-verifier] for more details.
## [4.7.0] - 2019-04-13
### Added
-- The verifier systems gained a `profile_locations` attribute which
- enables overriding the default InSpec profile location of
- `test/integration/`; refer to the updated
- [Terraform Verifier documentation][terraform-verifier] for more
- details.
+- The verifier systems gained a `profile_locations` attribute which enables
+ overriding the default InSpec profile location of
+ `test/integration/`; refer to the updated [Terraform
+ Verifier documentation][terraform-verifier] for more details.
### Changed
@@ -185,55 +187,54 @@ The "trapped in Atlanta" edition!
### Added
-- The verifier gained a `fail_fast` attribute which toggles fail fast
- behaviour when verifying systems; refer to the updated
- [Terraform Verifier documentation][terraform-verifier] for more details.
+- The verifier gained a `fail_fast` attribute which toggles fail fast behaviour
+ when verifying systems; refer to the updated [Terraform Verifier
+ documentation][terraform-verifier] for more details.
## [4.5.0] - 2019-04-10
### Changed
-- The output of `terraform output` is logged at the debug level to
- prevent sensitive output values from being printed by default. This
- output can be viewed by enabling the debug log level. For example:
+- The output of `terraform output` is logged at the debug level to prevent
+ sensitive output values from being printed by default. This output can be
+ viewed by enabling the debug log level. For example:
`kitchen converge INSTANCE --log-level=debug`
## [4.4.0] - 2019-04-06
### Added
-- The driver gained a `client` configuration attribute which contains
- the pathname to the Terraform client; refer to the
- [Terraform Driver documentation][terraform-driver] for more details.
+- The driver gained a `client` configuration attribute which contains the
+ pathname to the Terraform client; refer to the [Terraform Driver
+ documentation][terraform-driver] for more details.
### Fixed
-- The verifier lost legacy code which was implicity coupled to the SSH
- transport and integrated with InSpec in undocumented ways.
+- The verifier lost legacy code which was implicity coupled to the SSH transport
+ and integrated with InSpec in undocumented ways.
## [4.3.0] - 2019-01-20
### Changed
- `TF_WARN_OUTPUT_ERRORS` is no longer automatically set when running
- `terraform apply` during `kitchen converge`. This change should allow
- output errors to be more quickly exposed to the user.
+ `terraform apply` during `kitchen converge`. This change should allow output
+ errors to be more quickly exposed to the user.
## [4.2.1] - 2019-01-19
### Changed
-- `terraform validate` is now called without `-check-variables=true`.
- This flag already defaults to `true` and will be obsolete for
- Terraform v0.12.
+- `terraform validate` is now called without `-check-variables=true`. This flag
+ already defaults to `true` and will be obsolete for Terraform v0.12.
## [4.2.0] - 2018-12-29
### Added
-- The driver gained a `:verify_version` configuration attribute which
- toggles verification of support for the available Terraform version.
- This feature allows unsupported versions of Terraform to be used.
+- The driver gained a `:verify_version` configuration attribute which toggles
+ verification of support for the available Terraform version. This feature
+ allows unsupported versions of Terraform to be used.
- The gem supports Ruby v2.6.
@@ -247,32 +248,30 @@ The "trapped in Atlanta" edition!
### Changed
-- The bundled version of InSpec is now ~> 3.0. Despite the major
- version change, it is intended to be backward compatible.
+- The bundled version of InSpec is now ~> 3.0. Despite the major version change,
+ it is intended to be backward compatible.
## [4.0.6] - 2018-12-02
### Fixed
-- `terraform output` is moved from `kitchen converge` to
- `kitchen verify` to ensure Terraform state outputs are up to date for
- use as InSpec attributes regardless of the result of
- `kitchen converge`.
+- `terraform output` is moved from `kitchen converge` to `kitchen verify` to
+ ensure Terraform state outputs are up to date for use as InSpec attributes
+ regardless of the result of `kitchen converge`.
## [4.0.5] - 2018-12-01
### Fixed
-- The escaping of Terraform command-line arguments... Again! Arguments
- for `-backend-config` and `-var` are surrounded by double quotes but
- are not escaped. This compromise is intended to ensure proper
- handling of arguments containing HashiCorp Language (HCL) on Linux,
- MacOS, and Windows. The corresponding values for the Kitchen
- configuration attributes `driver.backend_configurations` and
- `driver.variables` must be properly escaped depending on the execution
- environment. The [Kitchen configuration file](kitchen.yml) used for
- integration testing of Kitchen-Terraform contains examples of escaped
- HCL values.
+- The escaping of Terraform command-line arguments... Again! Arguments for
+ `-backend-config` and `-var` are surrounded by double quotes but are not
+ escaped. This compromise is intended to ensure proper handling of arguments
+ containing HashiCorp Language (HCL) on Linux, MacOS, and Windows. The
+ corresponding values for the Kitchen configuration attributes
+ `driver.backend_configurations` and `driver.variables` must be properly
+ escaped depending on the execution environment. The
+ [Kitchen configuration file](kitchen.yml) used for integration testing of
+ Kitchen-Terraform contains examples of escaped HCL values.
## [4.0.4] - 2018-11-21
@@ -284,39 +283,36 @@ The "trapped in Atlanta" edition!
### Changed
-- The version of InSpec was relaxed to include all versions between 2.2
- and 3
+- The version of InSpec was relaxed to include all versions between 2.2 and 3
## [4.0.2] - 2018-09-26
### Changed
-- The version of InSpec was relaxed to include 2.2.70 to enable
- compatability with ChefDK 3.2.30
+- The version of InSpec was relaxed to include 2.2.70 to enable compatability
+ with ChefDK 3.2.30
## [4.0.1] - 2018-09-15
### Fixed
-- The version of InSpec was pinned to 2.2.78 as 2.2.101 introduced a
- breaking change to the InSpec profile attributes system
+- The version of InSpec was pinned to 2.2.78 as 2.2.101 introduced a breaking
+ change to the InSpec profile attributes system
## [4.0.0] - 2018-08-13
-"An open-source software release is never late. Nor is it early. It
-arrives precisely when the maintainers get around to finishing it." -
-Gandalf the Free-As-In-Beer
+"An open-source software release is never late. Nor is it early. It arrives
+precisely when the maintainers get around to finishing it." - Gandalf the
+Free-As-In-Beer
### Added
-- The verifier configuration gained a `:systems` attribute which
- replaced the `:groups` attribute; refer to the updated
- [Terraform Verifier documentation][terraform-verifier] for more
- details
+- The verifier configuration gained a `:systems` attribute which replaced the
+ `:groups` attribute; refer to the updated [Terraform Verifier
+ documentation][terraform-verifier] for more details
-- The Terraform shell out environment now enables
- `TF_WARN_OUTPUT_ERRORS` to work around
- [Terraform issue #17655][terraform-issue-17655]
+- The Terraform shell out environment now enables `TF_WARN_OUTPUT_ERRORS` to
+ work around [Terraform issue #17655][terraform-issue-17655]
### Changed
@@ -332,18 +328,18 @@ Gandalf the Free-As-In-Beer
- Support for Ruby 2.2 was broken
-- Support for concurrency with the following commands was broken:
- `create`, `converge`, `setup`, and `destroy`
+- Support for concurrency with the following commands was broken: `create`,
+ `converge`, `setup`, and `destroy`
-- The deprecated `terraform destroy -force` flag was replaced with the
- supported `terraform destroy -auto-approve` flag
+- The deprecated `terraform destroy -force` flag was replaced with the supported
+ `terraform destroy -auto-approve` flag
-- The working directory of the Terraform shell out environment was
- changed to the value of the `:root_module_directory` attribute of the
- driver configuration
+- The working directory of the Terraform shell out environment was changed to
+ the value of the `:root_module_directory` attribute of the driver
+ configuration
-- Support for the `:groups` attribute of the verifier configuration was
- broken; `:systems` replaces `:groups`
+- Support for the `:groups` attribute of the verifier configuration was broken;
+ `:systems` replaces `:groups`
- InSpec was reconfigured to use the Kitchen logger for all logging
@@ -353,17 +349,17 @@ Gandalf the Free-As-In-Beer
### Changed
-- Deprecating support for Ruby 2.2; this version reaches end of life on
- March 31, 2018
+- Deprecating support for Ruby 2.2; this version reaches end of life on March
+ 31, 2018
-- Deprecating support for concurrency with the following commands:
- `create`, `converge`, `setup`, and `destroy`; these commands invoke
- Terraform in a manner which is not safe for concurrency
+- Deprecating support for concurrency with the following commands: `create`,
+ `converge`, `setup`, and `destroy`; these commands invoke Terraform in a
+ manner which is not safe for concurrency
### Fixed
-- Escaping the following configuration attributes for safe usage in the
- shell out commands:
+- Escaping the following configuration attributes for safe usage in the shell
+ out commands:
- backend_configurations
- plugin_directory
@@ -377,8 +373,8 @@ Gandalf the Free-As-In-Beer
### Added
-- The `lock` configuration attribute of the driver toggles locking of
- the Terraform state file
+- The `lock` configuration attribute of the driver toggles locking of the
+ Terraform state file
## [3.2.0] - 2018-03-21
@@ -402,19 +398,18 @@ Gandalf the Free-As-In-Beer
- Internal success and failure to be modeled without monads
-- All driver and provisioner actions to attempt to select or create a
- Terraform workspace
+- All driver and provisioner actions to attempt to select or create a Terraform
+ workspace
- Format and wording of the verifier `groups` attribute documentation
### Fixed
- Documented supported Terraform version for ClientVersionVerifier
-- Failure during `kitchen converge` when no Terraform outputs are
- defined
+- Failure during `kitchen converge` when no Terraform outputs are defined
-- Failure on Windows due to use of single quoted arguments for
- `-backend-config` and `-var`
+- Failure on Windows due to use of single quoted arguments for `-backend-config`
+ and `-var`
## [3.0.0] - 2017-11-28
@@ -424,16 +419,16 @@ Gandalf the Free-As-In-Beer
### Changed
-- Update `kitchen create` and `kitchen converge` to initialize and
- apply, respectively
+- Update `kitchen create` and `kitchen converge` to initialize and apply,
+ respectively
- Driver and provisioner commands use Terraform workspaces
-- Execute Terraform commands in an environment including
- the TF_IN_AUTOMATION variable
+- Execute Terraform commands in an environment including the TF_IN_AUTOMATION
+ variable
-- Change the lock_timeout configuration attribute of the driver to an
- integer representing seconds
+- Change the lock_timeout configuration attribute of the driver to an integer
+ representing seconds
- Remove the state configuration attribute from the driver
@@ -457,8 +452,8 @@ Gandalf the Free-As-In-Beer
### Added
-- Verifier `:groups` have an optional `:ssh_key` attribute that
- overrides the Test Kitchen SSH Transport `:ssh_key`
+- Verifier `:groups` have an optional `:ssh_key` attribute that overrides the
+ Test Kitchen SSH Transport `:ssh_key`
## [2.0.0] - 2017-09-13
@@ -484,8 +479,8 @@ Gandalf the Free-As-In-Beer
- Dropped support for Terraform versions < 0.10.2
-- The driver's variables configuration attribute must be a hash of
- symbols and strings
+- The driver's variables configuration attribute must be a hash of symbols and
+ strings
- Removed configuration attributes from the driver
@@ -503,23 +498,21 @@ Gandalf the Free-As-In-Beer
### Added
-- The Bundler Gemfile.lock is committed to enable Code Climate's
- bundler-audit engine and to simplify testing and releasing this gem
- with Travis CI
+- The Bundler Gemfile.lock is committed to enable Code Climate's bundler-audit
+ engine and to simplify testing and releasing this gem with Travis CI
- RSpec produces backtraces for failures in Travis CI
### Changed
-- The integration tests use Terraform version 0.9.11 instead of version
- 0.9.10
+- The integration tests use Terraform version 0.9.11 instead of version 0.9.10
- The integration tests display the Terraform versions
### Fixed
-- The Getting Started guide uses kitchen-terraform 1.0 configuration
- attributes (thanks [@davidbegin])
+- The Getting Started guide uses kitchen-terraform 1.0 configuration attributes
+ (thanks [@davidbegin])
- The Developing guide uses the new GitHub organization
@@ -557,19 +550,18 @@ Gandalf the Free-As-In-Beer
- Moved all provisioner configuration attributes to the driver
-- Dropped support for specifying the configuration attribute `variables`
- in the literal `name=value` notation
+- Dropped support for specifying the configuration attribute `variables` in the
+ literal `name=value` notation
-- Dropped support for the value of the output variable specified by
- the configuration attribute `hostnames` being in CSV format
+- Dropped support for the value of the output variable specified by the
+ configuration attribute `hostnames` being in CSV format
-- Renamed the configuration attribute `apply_timeout` to
- `command_timeout`
+- Renamed the configuration attribute `apply_timeout` to `command_timeout`
- Default the configuration attribute `cli` to `"terraform"`
-- Default the configuration attribute `color` to be based on the
- association of the Test Kitchen process with a terminal emulator
+- Default the configuration attribute `color` to be based on the association of
+ the Test Kitchen process with a terminal emulator
- Improved the engine for validating configuration attribute values
@@ -587,9 +579,8 @@ Gandalf the Free-As-In-Beer
### Fixed
-- `terraform plan` during `kitchen converge` was not reading the state
- file so subsequent converges would create duplicate state
- (thanks [@johnrengelman])
+- `terraform plan` during `kitchen converge` was not reading the state file so
+ subsequent converges would create duplicate state (thanks [@johnrengelman])
## [0.6.0] - 2017-02-22
@@ -598,15 +589,13 @@ Gandalf the Free-As-In-Beer
- Driver configuration option to specify the pathname of the Terraform
command-line interface
-- "terraform_state" InSpec attribute containing the pathname of the
- state file
+- "terraform_state" InSpec attribute containing the pathname of the state file
### Changed
- Restructured code for better distribution of responsibilities
-- Intermediate workflow Terraform commands will be logged at the debug
- level
+- Intermediate workflow Terraform commands will be logged at the debug level
### Fixed
@@ -614,18 +603,17 @@ Gandalf the Free-As-In-Beer
- Output names for Terraform 0.6 are correctly parsed
-- Incomplete InSpec control definition in the Getting Started guide (
- thanks [@burythehammer])
+- Incomplete InSpec control definition in the Getting Started guide ( thanks
+ [@burythehammer])
-- Missing descriptions of the plan and state provisioner configuration
- options
+- Missing descriptions of the plan and state provisioner configuration options
## [0.5.1] - 2017-02-17
### Fixed
-- Support for Terraform configurations that do not define any outputs
- (thanks [@johnrengelman])
+- Support for Terraform configurations that do not define any outputs (thanks
+ [@johnrengelman])
## [0.5.0] - 2017-01-09
@@ -652,26 +640,26 @@ Gandalf the Free-As-In-Beer
- [Code Climate coverage][code climate coverage]
-- Group attributes default to a mapping of all Terraform output
- variables to equivalently named InSpec attributes (thanks [@shinka81])
+- Group attributes default to a mapping of all Terraform output variables to
+ equivalently named InSpec attributes (thanks [@shinka81])
- A Docker provider example (thanks [@errygg])
- An OpenStack provider example (thanks [@xmik])
-- Groups with no hostnames will have their controls executed locally; in
- theory, this enables testing of any provider API
+- Groups with no hostnames will have their controls executed locally; in theory,
+ this enables testing of any provider API
-- Provisioner configuration for the `terraform apply -parallelism`
- option (thanks [@s3lehtin])
+- Provisioner configuration for the `terraform apply -parallelism` option
+ (thanks [@s3lehtin])
-- Clay Thomas, Ewa Czechowska, Erik R. Rygg, Kyle Sexton, and Walter
- Dolce join the gem specification authors
+- Clay Thomas, Ewa Czechowska, Erik R. Rygg, Kyle Sexton, and Walter Dolce join
+ the gem specification authors
### Changed
-- Removed the pin on the RubyGems version from the gem specification
- (thanks [@jbussdieker])
+- Removed the pin on the RubyGems version from the gem specification (thanks
+ [@jbussdieker])
### Fixed
@@ -681,19 +669,17 @@ Gandalf the Free-As-In-Beer
### Added
-- Support for Terraform v0.7 (thanks [@esword], [@maniacal], and
- [@nictrix])
+- Support for Terraform v0.7 (thanks [@esword], [@maniacal], and [@nictrix])
- Getting started guide under `examples/getting_started` (thanks
[@nellshamrell])
-- Kevin Dickerson, Nell Shamrell-Harrington, and Michael Glenney join
- the gem specification authors
+- Kevin Dickerson, Nell Shamrell-Harrington, and Michael Glenney join the gem
+ specification authors
### Changed
-- Example project moved under `examples/detailed` (thanks
- [@nellshamrell])
+- Example project moved under `examples/detailed` (thanks [@nellshamrell])
- Deprecate support for Terraform v0.6
@@ -701,8 +687,8 @@ Gandalf the Free-As-In-Beer
- Release date of kitchen-terraform v0.2.0
-- Remove references to verifying the gem; it's problematic even with
- low security (thanks [@kevindickerson])
+- Remove references to verifying the gem; it's problematic even with low
+ security (thanks [@kevindickerson])
## [0.2.0] - 2016-09-12
@@ -714,8 +700,8 @@ Gandalf the Free-As-In-Beer
- Configuration option for timeout of Terraform apply command
-- Configuration option for colored output of Terraform plan and apply
- commands (thanks [@nictrix])
+- Configuration option for colored output of Terraform plan and apply commands
+ (thanks [@nictrix])
- Configuration of variable assignments using a map
@@ -747,21 +733,19 @@ Gandalf the Free-As-In-Beer
- Contributing and developing guides (thanks [@nictrix])
-- Example instructions suggest IAM user creation for enhanced security (
- thanks [@nictrix])
+- Example instructions suggest IAM user creation for enhanced security ( thanks
+ [@nictrix])
### Changed
-- Example configuration is compatible with more AWS accounts (thanks
- [@nictrix])
+- Example configuration is compatible with more AWS accounts (thanks [@nictrix])
### Fixed
- Remove enforcement of RubyGems trust policy (thanks [@fivetwentysix])
- Only suggest the LowSecurity RubyGems trust policy; in a clean Bundler
- environment, this is the highest policy that can be successfully
- applied
+ environment, this is the highest policy that can be successfully applied
- Only enforce code coverage requirements when Guard runs all specs
@@ -787,19 +771,20 @@ Gandalf the Free-As-In-Beer
- Fix the line length of the gem specification signing key configuration
- Correct the reference to `bundle install --trust-profile` with
- `bundle install --trust-policy` in the README (thanks [@nellshamrell]
- and [@nictrix])
-
-- Clarify the gem installation instructions in the README (thanks
+ `bundle install --trust-policy` in the README (thanks [@nellshamrell] and
[@nictrix])
+- Clarify the gem installation instructions in the README (thanks [@nictrix])
+
## 0.1.0 - 2016-07-22
### Added
- Initial release
-[unreleased]: https://github.com/newcontext/kitchen-terraform/compare/v6.0.0...HEAD
+[unreleased]:
+ https://github.com/newcontext/kitchen-terraform/compare/v6.1.0...HEAD
+[6.1.0]: https://github.com/newcontext/kitchen-terraform/compare/v6.0.0...v6.1.0
[6.0.0]: https://github.com/newcontext/kitchen-terraform/compare/v5.8.0...v6.0.0
[5.8.0]: https://github.com/newcontext/kitchen-terraform/compare/v5.7.2...v5.8.0
[5.7.2]: https://github.com/newcontext/kitchen-terraform/compare/v5.7.1...v5.7.2
@@ -873,9 +858,12 @@ Gandalf the Free-As-In-Beer
[@shinka81]: https://github.com/shinka81
[@walterdolce]: https://github.com/walterdolce
[@xmik]: https://github.com/xmik
-[code climate coverage]: https://codeclimate.com/github/newcontext-oss/kitchen-terraform
+[code climate coverage]:
+ https://codeclimate.com/github/newcontext-oss/kitchen-terraform
[travis ci build plan]: https://travis-ci.com/newcontext-oss/kitchen-terraform
[terraform-issue-17655]: https://github.com/hashicorp/terraform/issues/17655
-[terraform-driver]: https://www.rubydoc.info/github/newcontext-oss/kitchen-terraform/Kitchen/Driver/Terraform
-[terraform-verifier]: http://www.rubydoc.info/github/newcontext-oss/kitchen-terraform/Kitchen/Verifier/Terraform
+[terraform-driver]:
+ https://www.rubydoc.info/github/newcontext-oss/kitchen-terraform/Kitchen/Driver/Terraform
+[terraform-verifier]:
+ http://www.rubydoc.info/github/newcontext-oss/kitchen-terraform/Kitchen/Verifier/Terraform
[#351]: https://github.com/newcontext-oss/kitchen-terraform/issues/351
diff --git a/README.md b/README.md
index 1d1a8c436..f37fd4d5d 100644
--- a/README.md
+++ b/README.md
@@ -36,7 +36,7 @@ Installation instructions can be found in the
[Terraform: Install Terraform][terraform-install] article.
Kitchen-Terraform supports versions of Terraform in the interval of
-`>= 0.11.4, < 1.1.0`.
+`>= 0.11.4, < 2.0.0`.
[tfenv] can be used to manage versions of Terraform on the system.
@@ -102,7 +102,7 @@ example.
> Installing Kitchen-Terraform with RubyGems
```sh
-gem install kitchen-terraform --version 6.0.0
+gem install kitchen-terraform --version 6.1.0
```
This approach is not recommended as it requires more effort to install
@@ -283,5 +283,3 @@ Kitchen-Terraform is distributed under the [Apache License][license].
[terraform]: https://www.terraform.io/
[test-directory]: https://github.com/newcontext-oss/kitchen-terraform/tree/master/test
[tfenv]: https://github.com/kamatama41/tfenv
-[travis-build-status-shield]: https://img.shields.io/travis/com/newcontext-oss/kitchen-terraform.svg
-[travis-build-status]: https://travis-ci.com/newcontext-oss/kitchen-terraform
diff --git a/bin/bundle b/bin/bundle
index b4615e295..824f45d76 100755
--- a/bin/bundle
+++ b/bin/bundle
@@ -60,16 +60,16 @@ m = Module.new do
Regexp.last_match(1)
end
- def bundler_version
- @bundler_version ||=
+ def bundler_requirement
+ @bundler_requirement ||=
env_var_version || cli_arg_version ||
- lockfile_version
+ bundler_requirement_for(lockfile_version)
end
- def bundler_requirement
- return "#{Gem::Requirement.default}.a" unless bundler_version
+ def bundler_requirement_for(version)
+ return "#{Gem::Requirement.default}.a" unless version
- bundler_gem_version = Gem::Version.new(bundler_version)
+ bundler_gem_version = Gem::Version.new(version)
requirement = bundler_gem_version.approximate_recommendation
diff --git a/bin/travis b/bin/travis
deleted file mode 100755
index 49ef44ca6..000000000
--- a/bin/travis
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/usr/bin/env ruby
-# frozen_string_literal: true
-
-#
-# This file was generated by Bundler.
-#
-# The application 'travis' is installed as part of a gem, and
-# this file is here to facilitate running it.
-#
-
-require "pathname"
-ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../gems.rb",
- Pathname.new(__FILE__).realpath)
-
-bundle_binstub = File.expand_path("../bundle", __FILE__)
-
-if File.file?(bundle_binstub)
- if File.read(bundle_binstub, 300) =~ /This file was generated by Bundler/
- load(bundle_binstub)
- else
- abort("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
-end
-
-require "rubygems"
-require "bundler/setup"
-
-load Gem.bin_path("travis", "travis")
diff --git a/bin/update-gems-locked.sh b/bin/update-gems-locked.sh
index 020960cc1..91602991c 100755
--- a/bin/update-gems-locked.sh
+++ b/bin/update-gems-locked.sh
@@ -13,5 +13,5 @@ then
else
bundle install
fi
-bundle binstubs --force bundler guard middleman-cli pry rake reek rspec-core rufo test-kitchen travis yard
+bundle binstubs --force bundler guard middleman-cli pry rake reek rspec-core rufo test-kitchen yard
set +x
diff --git a/docs/apple-touch-icon-114x114-precomposed.png b/docs/apple-touch-icon-114x114-precomposed.png
index 78f426e42..58ae4e7d0 100644
Binary files a/docs/apple-touch-icon-114x114-precomposed.png and b/docs/apple-touch-icon-114x114-precomposed.png differ
diff --git a/docs/apple-touch-icon-120x120-precomposed.png b/docs/apple-touch-icon-120x120-precomposed.png
index acd54e9ba..58ae4e7d0 100644
Binary files a/docs/apple-touch-icon-120x120-precomposed.png and b/docs/apple-touch-icon-120x120-precomposed.png differ
diff --git a/docs/apple-touch-icon-144x144-precomposed.png b/docs/apple-touch-icon-144x144-precomposed.png
index d0838d782..58ae4e7d0 100644
Binary files a/docs/apple-touch-icon-144x144-precomposed.png and b/docs/apple-touch-icon-144x144-precomposed.png differ
diff --git a/docs/apple-touch-icon-152x152-precomposed.png b/docs/apple-touch-icon-152x152-precomposed.png
index e617583a8..58ae4e7d0 100644
Binary files a/docs/apple-touch-icon-152x152-precomposed.png and b/docs/apple-touch-icon-152x152-precomposed.png differ
diff --git a/docs/apple-touch-icon-180x180-precomposed.png b/docs/apple-touch-icon-180x180-precomposed.png
index 864fe177a..58ae4e7d0 100644
Binary files a/docs/apple-touch-icon-180x180-precomposed.png and b/docs/apple-touch-icon-180x180-precomposed.png differ
diff --git a/docs/apple-touch-icon-57x57-precomposed.png b/docs/apple-touch-icon-57x57-precomposed.png
index d8f307e97..58ae4e7d0 100644
Binary files a/docs/apple-touch-icon-57x57-precomposed.png and b/docs/apple-touch-icon-57x57-precomposed.png differ
diff --git a/docs/apple-touch-icon-60x60-precomposed.png b/docs/apple-touch-icon-60x60-precomposed.png
index 0f748ffc4..58ae4e7d0 100644
Binary files a/docs/apple-touch-icon-60x60-precomposed.png and b/docs/apple-touch-icon-60x60-precomposed.png differ
diff --git a/docs/apple-touch-icon-72x72-precomposed.png b/docs/apple-touch-icon-72x72-precomposed.png
index b71483b9a..58ae4e7d0 100644
Binary files a/docs/apple-touch-icon-72x72-precomposed.png and b/docs/apple-touch-icon-72x72-precomposed.png differ
diff --git a/docs/apple-touch-icon-76x76-precomposed.png b/docs/apple-touch-icon-76x76-precomposed.png
index 3594c4357..58ae4e7d0 100644
Binary files a/docs/apple-touch-icon-76x76-precomposed.png and b/docs/apple-touch-icon-76x76-precomposed.png differ
diff --git a/docs/apple-touch-icon-precomposed.png b/docs/apple-touch-icon-precomposed.png
index d8f307e97..58ae4e7d0 100644
Binary files a/docs/apple-touch-icon-precomposed.png and b/docs/apple-touch-icon-precomposed.png differ
diff --git a/docs/apple-touch-icon.png b/docs/apple-touch-icon.png
index d8f307e97..58ae4e7d0 100644
Binary files a/docs/apple-touch-icon.png and b/docs/apple-touch-icon.png differ
diff --git a/docs/community/index.html b/docs/community/index.html
index dbe5b9194..0e4c89b9e 100644
--- a/docs/community/index.html
+++ b/docs/community/index.html
@@ -70,7 +70,7 @@
Contribute, report bugs and submit new features at our Github Page
- Check out Kitchen-Terraform on Travis CI
+ Check out Kitchen-Terraform on GitHub Actions
Find Kitchen-Terraform on rubygems.org
diff --git a/docs/favicon-160x160.png b/docs/favicon-160x160.png
index e89119ae8..58ae4e7d0 100644
Binary files a/docs/favicon-160x160.png and b/docs/favicon-160x160.png differ
diff --git a/docs/favicon-16x16.png b/docs/favicon-16x16.png
index 86f25d5a7..58ae4e7d0 100644
Binary files a/docs/favicon-16x16.png and b/docs/favicon-16x16.png differ
diff --git a/docs/favicon-196x196.png b/docs/favicon-196x196.png
index f41e03217..58ae4e7d0 100644
Binary files a/docs/favicon-196x196.png and b/docs/favicon-196x196.png differ
diff --git a/docs/favicon-32x32.png b/docs/favicon-32x32.png
index 1ab7c41e1..58ae4e7d0 100644
Binary files a/docs/favicon-32x32.png and b/docs/favicon-32x32.png differ
diff --git a/docs/favicon-96x96.png b/docs/favicon-96x96.png
index a2a5b8fcc..58ae4e7d0 100644
Binary files a/docs/favicon-96x96.png and b/docs/favicon-96x96.png differ
diff --git a/docs/favicon.ico b/docs/favicon.ico
index 7d5a47c6b..58ae4e7d0 100644
Binary files a/docs/favicon.ico and b/docs/favicon.ico differ
diff --git a/docs/favicon.png b/docs/favicon.png
index 86f25d5a7..58ae4e7d0 100644
Binary files a/docs/favicon.png and b/docs/favicon.png differ
diff --git a/docs/index.html b/docs/index.html
index 9fdb042c4..461717360 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -92,11 +92,11 @@
- Check out Kitchen-Terraform on Travis CI
+ Check out Kitchen-Terraform on GitHub Actions
Find Kitchen-Terraform on rubygems.org
diff --git a/source/index.html.erb b/source/index.html.erb
index 3df316626..b51629a7c 100644
--- a/source/index.html.erb
+++ b/source/index.html.erb
@@ -35,11 +35,11 @@ title: Kitchen-Terraform
>
-
+
diff --git a/spec/lib/kitchen/driver/terraform_spec.rb b/spec/lib/kitchen/driver/terraform_spec.rb
index b362f189e..80eaa65a5 100644
--- a/spec/lib/kitchen/driver/terraform_spec.rb
+++ b/spec/lib/kitchen/driver/terraform_spec.rb
@@ -65,7 +65,7 @@
end
let :version_requirement do
- ::Gem::Requirement.new ">= 0.11.4", "< 1.1.0"
+ ::Gem::Requirement.new ">= 0.11.4", "< 2.0.0"
end
let :workspace_name do
diff --git a/spec/lib/kitchen/terraform/version_spec.rb b/spec/lib/kitchen/terraform/version_spec.rb
index b7045496c..6d44befcc 100644
--- a/spec/lib/kitchen/terraform/version_spec.rb
+++ b/spec/lib/kitchen/terraform/version_spec.rb
@@ -24,7 +24,7 @@
end
let :version do
- ::Gem::Version.new "6.0.0"
+ ::Gem::Version.new "6.1.0"
end
describe ".assign_plugin_version" do
diff --git a/spec/support/kitchen/terraform/configurable_examples.rb b/spec/support/kitchen/terraform/configurable_examples.rb
index f595dbbfd..874f5c35e 100644
--- a/spec/support/kitchen/terraform/configurable_examples.rb
+++ b/spec/support/kitchen/terraform/configurable_examples.rb
@@ -26,7 +26,7 @@
describe "@plugin_version" do
it "equals the gem version" do
- expect(described_class.instance_variable_get(:@plugin_version)).to eq "6.0.0"
+ expect(described_class.instance_variable_get(:@plugin_version)).to eq "6.1.0"
end
end
diff --git a/test/terraform/PlugIns/versions.tf b/test/terraform/PlugIns/versions.tf
index 44a661a20..e3a233c7e 100644
--- a/test/terraform/PlugIns/versions.tf
+++ b/test/terraform/PlugIns/versions.tf
@@ -13,7 +13,7 @@
# limitations under the License.
terraform {
- required_version = ">= 0.13.0, < 1.1.0"
+ required_version = ">= 0.13.0, < 2.0.0"
required_providers {
local = {
diff --git a/test/terraform/attributes/versions.tf b/test/terraform/attributes/versions.tf
index 4fd83f252..9f8e387c8 100644
--- a/test/terraform/attributes/versions.tf
+++ b/test/terraform/attributes/versions.tf
@@ -13,5 +13,5 @@
# limitations under the License.
terraform {
- required_version = ">= 0.13.0, < 1.1.0"
+ required_version = ">= 0.13.0, < 2.0.0"
}
diff --git a/test/terraform/backend-ssh/versions.tf b/test/terraform/backend-ssh/versions.tf
index 30a731702..37df2ea02 100644
--- a/test/terraform/backend-ssh/versions.tf
+++ b/test/terraform/backend-ssh/versions.tf
@@ -13,7 +13,7 @@
# limitations under the License.
terraform {
- required_version = ">= 0.13.0, < 1.1.0"
+ required_version = ">= 0.13.0, < 2.0.0"
required_providers {
docker = {
diff --git a/test/terraform/variables/versions.tf b/test/terraform/variables/versions.tf
index 44a661a20..e3a233c7e 100644
--- a/test/terraform/variables/versions.tf
+++ b/test/terraform/variables/versions.tf
@@ -13,7 +13,7 @@
# limitations under the License.
terraform {
- required_version = ">= 0.13.0, < 1.1.0"
+ required_version = ">= 0.13.0, < 2.0.0"
required_providers {
local = {
diff --git a/test/terraform/workspace/versions.tf b/test/terraform/workspace/versions.tf
index 4fd83f252..9f8e387c8 100644
--- a/test/terraform/workspace/versions.tf
+++ b/test/terraform/workspace/versions.tf
@@ -13,5 +13,5 @@
# limitations under the License.
terraform {
- required_version = ">= 0.13.0, < 1.1.0"
+ required_version = ">= 0.13.0, < 2.0.0"
}