Class: Kitchen::Driver::Terraform
- Inherits:
-
Base
- Object
- Base
- Kitchen::Driver::Terraform
- Includes:
- Terraform::ConfigAttribute::BackendConfigurations, Terraform::ConfigAttribute::Client, Terraform::ConfigAttribute::Color, Terraform::ConfigAttribute::CommandTimeout, Terraform::ConfigAttribute::Lock, Terraform::ConfigAttribute::LockTimeout, Terraform::ConfigAttribute::Parallelism, Terraform::ConfigAttribute::PluginDirectory, Terraform::ConfigAttribute::RootModuleDirectory, Terraform::ConfigAttribute::VariableFiles, Terraform::ConfigAttribute::Variables, Terraform::ConfigAttribute::VerifyVersion, Terraform::Configurable
- Defined in:
- lib/kitchen/driver/terraform.rb
Overview
The Terraform driver is the bridge between Test Kitchen and Terraform. It manages the state of the Terraform root module under test by shelling out and running Terraform commands.
Commands
The following command-line commands are provided by the driver.
kitchen create
A Test Kitchen instance is created through the following steps.
Initializing the Terraform Working Directory
Terraform >= 0.15.0
The working directory is initialized by running a command like the following example:
<span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'rubyid_terraform identifier id'</span><span class='gt op'>></span><span class='rubyid_terraform identifier id'>terraform</span><span class='lt op'><</span><span class='regexp val'>/span> <span class='rubyid_init identifier id'>init</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span> \
<span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'minus op'</span><span class='gt op'>></span><span class='minus op'>-</span><span class='lt op'><</span><span class='regexp val'>/span><span class='rubyid_backend identifier id'>backend</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'assign token'</span><span class='geq op'>>=</span><span class='lt op'><</span><span class='regexp val'>/span><span class='rubyid_true true kw'>true</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span> \
<span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'lbrack token'</span><span class='gt op'>></span><span class='lbrack token'>[</span><span class='lt op'><</span><span class='regexp val'>/span><span class='minus op'>-</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'rubyid_backend identifier id'</span><span class='gt op'>></span><span class='rubyid_backend identifier id'>backend</span><span class='lt op'><</span><span class='regexp val'>/span><span class='minus op'>-</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'rubyid_config identifier id'</span><span class='gt op'>></span><span class='rubyid_config identifier id'>config</span><span class='lt op'><</span><span class='regexp val'>/span><span class='assign token'>=</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'lt op'</span><span class='gt op'>></span><span class='lshft op'><<</span><span class='regexp val'>/span><span class='rubyid_backend_configurations identifier id'>backend_configurations</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'lbrack token'</span><span class='gt op'>></span><span class='lbrack token'>[</span><span class='lt op'><</span><span class='regexp val'>/span><span class='integer val'>0</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'rbrack token'</span><span class='gt op'>></span><span class='rbrack token'>]</span><span class='lt op'><</span><span class='regexp val'>/span><span class='gt op'>></s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span> <span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'dot3 op'</span><span class='gt op'>></span><span class='dot3 op'>...</span><span class='lt op'><</span><span class='regexp val'>/span><span class='rbrack token'>]</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span> \
<span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'minus op'</span><span class='gt op'>></span><span class='minus op'>-</span><span class='lt op'><</span><span class='regexp val'>/span><span class='rubyid_force identifier id'>force</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'minus op'</span><span class='gt op'>></span><span class='minus op'>-</span><span class='lt op'><</span><span class='regexp val'>/span><span class='rubyid_copy identifier id'>copy</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span> \
<span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'minus op'</span><span class='gt op'>></span><span class='minus op'>-</span><span class='lt op'><</span><span class='regexp val'>/span><span class='rubyid_get identifier id'>get</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'assign token'</span><span class='geq op'>>=</span><span class='lt op'><</span><span class='regexp val'>/span><span class='rubyid_true true kw'>true</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span> \
<span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'minus op'</span><span class='gt op'>></span><span class='minus op'>-</span><span class='lt op'><</span><span class='regexp val'>/span><span class='rubyid_input identifier id'>input</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'assign token'</span><span class='geq op'>>=</span><span class='lt op'><</span><span class='regexp val'>/span><span class='rubyid_false false kw'>false</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span> \
<span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'lbrack token'</span><span class='gt op'>></span><span class='lbrack token'>[</span><span class='lt op'><</span><span class='regexp val'>/span><span class='minus op'>-</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'rubyid_no identifier id'</span><span class='gt op'>></span><span class='rubyid_no identifier id'>no</span><span class='lt op'><</span><span class='regexp val'>/span><span class='minus op'>-</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'rubyid_color identifier id'</span><span class='gt op'>></span><span class='rubyid_color identifier id'>color</span><span class='lt op'><</span><span class='regexp val'>/span><span class='rbrack token'>]</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span> \
<span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'lbrack token'</span><span class='gt op'>></span><span class='lbrack token'>[</span><span class='lt op'><</span><span class='regexp val'>/span><span class='minus op'>-</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'rubyid_plugin identifier id'</span><span class='gt op'>></span><span class='rubyid_plugin identifier id'>plugin</span><span class='lt op'><</span><span class='regexp val'>/span><span class='minus op'>-</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'rubyid_dir identifier id'</span><span class='gt op'>></span><span class='rubyid_dir identifier id'>dir</span><span class='lt op'><</span><span class='regexp val'>/span><span class='assign token'>=</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'lt op'</span><span class='gt op'>></span><span class='lshft op'><<</span><span class='regexp val'>/span><span class='rubyid_plugin_directory identifier id'>plugin_directory</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'gt op'</span><span class='rshft op'>>></span><span class='lt op'><</span><span class='regexp val'>/span><span class='rbrack token'>]</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span> \
<span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'lbrack token'</span><span class='gt op'>></span><span class='lbrack token'>[</span><span class='lt op'><</span><span class='regexp val'>/span><span class='minus op'>-</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'rubyid_upgrade identifier id'</span><span class='gt op'>></span><span class='rubyid_upgrade identifier id'>upgrade</span><span class='lt op'><</span><span class='regexp val'>/span><span class='assign token'>=</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'rubyid_true true kw'</span><span class='gt op'>></span><span class='rubyid_true true kw'>true</span><span class='lt op'><</span><span class='regexp val'>/span><span class='rbrack token'>]</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span> \
<span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'lt op'</span><span class='gt op'>></span><span class='lshft op'><<</span><span class='regexp val'>/span><span class='rubyid_root_module_directory identifier id'>root_module_directory</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'gt op'</span><span class='rshft op'>>></span><span class='lt op'><</span><span class='regexp val'>/span>
</span>
Terraform < 0.15.0
The working directory is initialized by running a command like the following example:
<span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'rubyid_terraform identifier id'</span><span class='gt op'>></span><span class='rubyid_terraform identifier id'>terraform</span><span class='lt op'><</span><span class='regexp val'>/span> <span class='rubyid_init identifier id'>init</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span> \
<span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'minus op'</span><span class='gt op'>></span><span class='minus op'>-</span><span class='lt op'><</span><span class='regexp val'>/span><span class='rubyid_backend identifier id'>backend</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'assign token'</span><span class='geq op'>>=</span><span class='lt op'><</span><span class='regexp val'>/span><span class='rubyid_true true kw'>true</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span> \
<span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'lbrack token'</span><span class='gt op'>></span><span class='lbrack token'>[</span><span class='lt op'><</span><span class='regexp val'>/span><span class='minus op'>-</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'rubyid_backend identifier id'</span><span class='gt op'>></span><span class='rubyid_backend identifier id'>backend</span><span class='lt op'><</span><span class='regexp val'>/span><span class='minus op'>-</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'rubyid_config identifier id'</span><span class='gt op'>></span><span class='rubyid_config identifier id'>config</span><span class='lt op'><</span><span class='regexp val'>/span><span class='assign token'>=</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'lt op'</span><span class='gt op'>></span><span class='lshft op'><<</span><span class='regexp val'>/span><span class='rubyid_backend_configurations identifier id'>backend_configurations</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'lbrack token'</span><span class='gt op'>></span><span class='lbrack token'>[</span><span class='lt op'><</span><span class='regexp val'>/span><span class='integer val'>0</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'rbrack token'</span><span class='gt op'>></span><span class='rbrack token'>]</span><span class='lt op'><</span><span class='regexp val'>/span><span class='gt op'>></s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span> <span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'dot3 op'</span><span class='gt op'>></span><span class='dot3 op'>...</span><span class='lt op'><</span><span class='regexp val'>/span><span class='rbrack token'>]</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span> \
<span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'minus op'</span><span class='gt op'>></span><span class='minus op'>-</span><span class='lt op'><</span><span class='regexp val'>/span><span class='rubyid_force identifier id'>force</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'minus op'</span><span class='gt op'>></span><span class='minus op'>-</span><span class='lt op'><</span><span class='regexp val'>/span><span class='rubyid_copy identifier id'>copy</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span> \
<span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'minus op'</span><span class='gt op'>></span><span class='minus op'>-</span><span class='lt op'><</span><span class='regexp val'>/span><span class='rubyid_get identifier id'>get</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'assign token'</span><span class='geq op'>>=</span><span class='lt op'><</span><span class='regexp val'>/span><span class='rubyid_true true kw'>true</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span> \
<span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'minus op'</span><span class='gt op'>></span><span class='minus op'>-</span><span class='lt op'><</span><span class='regexp val'>/span><span class='rubyid_get identifier id'>get</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'minus op'</span><span class='gt op'>></span><span class='minus op'>-</span><span class='lt op'><</span><span class='regexp val'>/span><span class='rubyid_plugins identifier id'>plugins</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'assign token'</span><span class='geq op'>>=</span><span class='lt op'><</span><span class='regexp val'>/span><span class='rubyid_true true kw'>true</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span> \
<span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'minus op'</span><span class='gt op'>></span><span class='minus op'>-</span><span class='lt op'><</span><span class='regexp val'>/span><span class='rubyid_input identifier id'>input</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'assign token'</span><span class='geq op'>>=</span><span class='lt op'><</span><span class='regexp val'>/span><span class='rubyid_false false kw'>false</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span> \
<span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'minus op'</span><span class='gt op'>></span><span class='minus op'>-</span><span class='lt op'><</span><span class='regexp val'>/span><span class='rubyid_lock identifier id'>lock</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'assign token'</span><span class='geq op'>>=</span><span class='lt op'><</span><span class='regexp val'>/span><span class='lt op'><</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'rubyid_lock identifier id'</span><span class='gt op'>></span><span class='rubyid_lock identifier id'>lock</span><span class='lt op'><</span><span class='regexp val'>/span><span class='gt op'>></s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span> \
<span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'minus op'</span><span class='gt op'>></span><span class='minus op'>-</span><span class='lt op'><</span><span class='regexp val'>/span><span class='rubyid_lock identifier id'>lock</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'minus op'</span><span class='gt op'>></span><span class='minus op'>-</span><span class='lt op'><</span><span class='regexp val'>/span><span class='rubyid_timeout identifier id'>timeout</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'assign token'</span><span class='geq op'>>=</span><span class='lt op'><</span><span class='regexp val'>/span><span class='lt op'><</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'rubyid_lock_timeout identifier id'</span><span class='gt op'>></span><span class='rubyid_lock_timeout identifier id'>lock_timeout</span><span class='lt op'><</span><span class='regexp val'>/span><span class='gt op'>></s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'rubyid_s identifier id'</span><span class='gt op'>></span><span class='rubyid_s identifier id'>s</span><span class='lt op'><</span><span class='regexp val'>/span> \
<span class='lbrack token'>[</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'minus op'</span><span class='gt op'>></span><span class='minus op'>-</span><span class='lt op'><</span><span class='regexp val'>/span><span class='rubyid_no identifier id'>no</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'minus op'</span><span class='gt op'>></span><span class='minus op'>-</span><span class='lt op'><</span><span class='regexp val'>/span><span class='rubyid_color identifier id'>color</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'rbrack token'</span><span class='gt op'>></span><span class='rbrack token'>]</span><span class='lt op'><</span><span class='regexp val'>/span> \
<span class='lbrack token'>[</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'minus op'</span><span class='gt op'>></span><span class='minus op'>-</span><span class='lt op'><</span><span class='regexp val'>/span><span class='rubyid_plugin identifier id'>plugin</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'minus op'</span><span class='gt op'>></span><span class='minus op'>-</span><span class='lt op'><</span><span class='regexp val'>/span><span class='rubyid_dir identifier id'>dir</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'assign token'</span><span class='geq op'>>=</span><span class='lt op'><</span><span class='regexp val'>/span><span class='lt op'><</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'rubyid_plugin_directory identifier id'</span><span class='gt op'>></span><span class='rubyid_plugin_directory identifier id'>plugin_directory</span><span class='lt op'><</span><span class='regexp val'>/span><span class='gt op'>></s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'rbrack token'</span><span class='gt op'>></span><span class='rbrack token'>]</span><span class='lt op'><</span><span class='regexp val'>/span> \
<span class='lbrack token'>[</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'minus op'</span><span class='gt op'>></span><span class='minus op'>-</span><span class='lt op'><</span><span class='regexp val'>/span><span class='rubyid_upgrade identifier id'>upgrade</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'assign token'</span><span class='geq op'>>=</span><span class='lt op'><</span><span class='regexp val'>/span><span class='rubyid_true true kw'>true</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'rbrack token'</span><span class='gt op'>></span><span class='rbrack token'>]</span><span class='lt op'><</span><span class='regexp val'>/span> \
<span class='minus op'>-</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'rubyid_verify identifier id'</span><span class='gt op'>></span><span class='rubyid_verify identifier id'>verify</span><span class='lt op'><</span><span class='regexp val'>/span><span class='minus op'>-</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'rubyid_plugins identifier id'</span><span class='gt op'>></span><span class='rubyid_plugins identifier id'>plugins</span><span class='lt op'><</span><span class='regexp val'>/span><span class='assign token'>=</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'rubyid_true true kw'</span><span class='gt op'>></span><span class='rubyid_true true kw'>true</span><span class='lt op'><</span><span class='regexp val'>/span> \
<span class='lt op'><</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'rubyid_root_module_directory identifier id'</span><span class='gt op'>></span><span class='rubyid_root_module_directory identifier id'>root_module_directory</span><span class='lt op'><</span><span class='regexp val'>/span><span class='gt op'>></s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span>
Creating or Selecting the Test Terraform Workspace
The workspace is created by running a command like the following example:
<span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'rubyid_terraform identifier id'</span><span class='gt op'>></span><span class='rubyid_terraform identifier id'>terraform</span><span class='lt op'><</span><span class='regexp val'>/span> <span class='rubyid_workspace identifier id'>workspace</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span> <span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'rubyid_new identifier id'</span><span class='gt op'>></span><span class='rubyid_new identifier id'>new</span><span class='lt op'><</span><span class='regexp val'>/span> <span class='lt op'><</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'rubyid_name identifier id'</span><span class='gt op'>></span><span class='rubyid_name identifier id'>name</span><span class='lt op'><</span><span class='regexp val'>/span><span class='gt op'>></s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span>
The workspace is selected by running a command like the following example:
<span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'rubyid_terraform identifier id'</span><span class='gt op'>></span><span class='rubyid_terraform identifier id'>terraform</span><span class='lt op'><</span><span class='regexp val'>/span> <span class='rubyid_workspace identifier id'>workspace</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span> <span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'rubyid_select identifier id'</span><span class='gt op'>></span><span class='rubyid_select identifier id'>select</span><span class='lt op'><</span><span class='regexp val'>/span> <span class='lt op'><</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'rubyid_name identifier id'</span><span class='gt op'>></span><span class='rubyid_name identifier id'>name</span><span class='lt op'><</span><span class='regexp val'>/span><span class='gt op'>></s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span>
kitchen destroy
A Test Kitchen instance is destroyed through the following steps.
Initializing the Terraform Working Directory
Terraform >= 0.15.0
The working directory is initialized by running a command like the following example:
<span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'rubyid_terraform identifier id'</span><span class='gt op'>></span><span class='rubyid_terraform identifier id'>terraform</span><span class='lt op'><</span><span class='regexp val'>/span> <span class='rubyid_init identifier id'>init</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span> \
<span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'minus op'</span><span class='gt op'>></span><span class='minus op'>-</span><span class='lt op'><</span><span class='regexp val'>/span><span class='rubyid_backend identifier id'>backend</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'assign token'</span><span class='geq op'>>=</span><span class='lt op'><</span><span class='regexp val'>/span><span class='rubyid_true true kw'>true</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span> \
<span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'lbrack token'</span><span class='gt op'>></span><span class='lbrack token'>[</span><span class='lt op'><</span><span class='regexp val'>/span><span class='minus op'>-</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'rubyid_backend identifier id'</span><span class='gt op'>></span><span class='rubyid_backend identifier id'>backend</span><span class='lt op'><</span><span class='regexp val'>/span><span class='minus op'>-</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'rubyid_config identifier id'</span><span class='gt op'>></span><span class='rubyid_config identifier id'>config</span><span class='lt op'><</span><span class='regexp val'>/span><span class='assign token'>=</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'lt op'</span><span class='gt op'>></span><span class='lshft op'><<</span><span class='regexp val'>/span><span class='rubyid_backend_configurations identifier id'>backend_configurations</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'lbrack token'</span><span class='gt op'>></span><span class='lbrack token'>[</span><span class='lt op'><</span><span class='regexp val'>/span><span class='integer val'>0</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'rbrack token'</span><span class='gt op'>></span><span class='rbrack token'>]</span><span class='lt op'><</span><span class='regexp val'>/span><span class='gt op'>></s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span> <span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'dot3 op'</span><span class='gt op'>></span><span class='dot3 op'>...</span><span class='lt op'><</span><span class='regexp val'>/span><span class='rbrack token'>]</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span> \
<span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'minus op'</span><span class='gt op'>></span><span class='minus op'>-</span><span class='lt op'><</span><span class='regexp val'>/span><span class='rubyid_force identifier id'>force</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'minus op'</span><span class='gt op'>></span><span class='minus op'>-</span><span class='lt op'><</span><span class='regexp val'>/span><span class='rubyid_copy identifier id'>copy</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span> \
<span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'minus op'</span><span class='gt op'>></span><span class='minus op'>-</span><span class='lt op'><</span><span class='regexp val'>/span><span class='rubyid_get identifier id'>get</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'assign token'</span><span class='geq op'>>=</span><span class='lt op'><</span><span class='regexp val'>/span><span class='rubyid_true true kw'>true</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span> \
<span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'minus op'</span><span class='gt op'>></span><span class='minus op'>-</span><span class='lt op'><</span><span class='regexp val'>/span><span class='rubyid_input identifier id'>input</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'assign token'</span><span class='geq op'>>=</span><span class='lt op'><</span><span class='regexp val'>/span><span class='rubyid_false false kw'>false</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span> \
<span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'lbrack token'</span><span class='gt op'>></span><span class='lbrack token'>[</span><span class='lt op'><</span><span class='regexp val'>/span><span class='minus op'>-</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'rubyid_no identifier id'</span><span class='gt op'>></span><span class='rubyid_no identifier id'>no</span><span class='lt op'><</span><span class='regexp val'>/span><span class='minus op'>-</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'rubyid_color identifier id'</span><span class='gt op'>></span><span class='rubyid_color identifier id'>color</span><span class='lt op'><</span><span class='regexp val'>/span><span class='rbrack token'>]</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span> \
<span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'lbrack token'</span><span class='gt op'>></span><span class='lbrack token'>[</span><span class='lt op'><</span><span class='regexp val'>/span><span class='minus op'>-</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'rubyid_plugin identifier id'</span><span class='gt op'>></span><span class='rubyid_plugin identifier id'>plugin</span><span class='lt op'><</span><span class='regexp val'>/span><span class='minus op'>-</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'rubyid_dir identifier id'</span><span class='gt op'>></span><span class='rubyid_dir identifier id'>dir</span><span class='lt op'><</span><span class='regexp val'>/span><span class='assign token'>=</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'lt op'</span><span class='gt op'>></span><span class='lshft op'><<</span><span class='regexp val'>/span><span class='rubyid_plugin_directory identifier id'>plugin_directory</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'gt op'</span><span class='rshft op'>>></span><span class='lt op'><</span><span class='regexp val'>/span><span class='rbrack token'>]</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span> \
<span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'lbrack token'</span><span class='gt op'>></span><span class='lbrack token'>[</span><span class='lt op'><</span><span class='regexp val'>/span><span class='minus op'>-</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'rubyid_upgrade identifier id'</span><span class='gt op'>></span><span class='rubyid_upgrade identifier id'>upgrade</span><span class='lt op'><</span><span class='regexp val'>/span><span class='assign token'>=</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'rubyid_true true kw'</span><span class='gt op'>></span><span class='rubyid_true true kw'>true</span><span class='lt op'><</span><span class='regexp val'>/span><span class='rbrack token'>]</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span> \
<span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'lt op'</span><span class='gt op'>></span><span class='lshft op'><<</span><span class='regexp val'>/span><span class='rubyid_root_module_directory identifier id'>root_module_directory</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'gt op'</span><span class='rshft op'>>></span><span class='lt op'><</span><span class='regexp val'>/span>
</span>
Terraform < 0.15.0
The working directory is initialized by running a command like the following example:
<span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'rubyid_terraform identifier id'</span><span class='gt op'>></span><span class='rubyid_terraform identifier id'>terraform</span><span class='lt op'><</span><span class='regexp val'>/span> <span class='rubyid_init identifier id'>init</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span> \
<span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'minus op'</span><span class='gt op'>></span><span class='minus op'>-</span><span class='lt op'><</span><span class='regexp val'>/span><span class='rubyid_backend identifier id'>backend</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'assign token'</span><span class='geq op'>>=</span><span class='lt op'><</span><span class='regexp val'>/span><span class='rubyid_true true kw'>true</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span> \
<span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'lbrack token'</span><span class='gt op'>></span><span class='lbrack token'>[</span><span class='lt op'><</span><span class='regexp val'>/span><span class='minus op'>-</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'rubyid_backend identifier id'</span><span class='gt op'>></span><span class='rubyid_backend identifier id'>backend</span><span class='lt op'><</span><span class='regexp val'>/span><span class='minus op'>-</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'rubyid_config identifier id'</span><span class='gt op'>></span><span class='rubyid_config identifier id'>config</span><span class='lt op'><</span><span class='regexp val'>/span><span class='assign token'>=</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'lt op'</span><span class='gt op'>></span><span class='lshft op'><<</span><span class='regexp val'>/span><span class='rubyid_backend_configurations identifier id'>backend_configurations</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'lbrack token'</span><span class='gt op'>></span><span class='lbrack token'>[</span><span class='lt op'><</span><span class='regexp val'>/span><span class='integer val'>0</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'rbrack token'</span><span class='gt op'>></span><span class='rbrack token'>]</span><span class='lt op'><</span><span class='regexp val'>/span><span class='gt op'>></s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span> <span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'dot3 op'</span><span class='gt op'>></span><span class='dot3 op'>...</span><span class='lt op'><</span><span class='regexp val'>/span><span class='rbrack token'>]</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span> \
<span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'minus op'</span><span class='gt op'>></span><span class='minus op'>-</span><span class='lt op'><</span><span class='regexp val'>/span><span class='rubyid_force identifier id'>force</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'minus op'</span><span class='gt op'>></span><span class='minus op'>-</span><span class='lt op'><</span><span class='regexp val'>/span><span class='rubyid_copy identifier id'>copy</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span> \
<span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'minus op'</span><span class='gt op'>></span><span class='minus op'>-</span><span class='lt op'><</span><span class='regexp val'>/span><span class='rubyid_get identifier id'>get</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'assign token'</span><span class='geq op'>>=</span><span class='lt op'><</span><span class='regexp val'>/span><span class='rubyid_true true kw'>true</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span> \
<span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'minus op'</span><span class='gt op'>></span><span class='minus op'>-</span><span class='lt op'><</span><span class='regexp val'>/span><span class='rubyid_get identifier id'>get</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'minus op'</span><span class='gt op'>></span><span class='minus op'>-</span><span class='lt op'><</span><span class='regexp val'>/span><span class='rubyid_plugins identifier id'>plugins</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'assign token'</span><span class='geq op'>>=</span><span class='lt op'><</span><span class='regexp val'>/span><span class='rubyid_true true kw'>true</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span> \
<span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'minus op'</span><span class='gt op'>></span><span class='minus op'>-</span><span class='lt op'><</span><span class='regexp val'>/span><span class='rubyid_input identifier id'>input</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'assign token'</span><span class='geq op'>>=</span><span class='lt op'><</span><span class='regexp val'>/span><span class='rubyid_false false kw'>false</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span> \
<span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'minus op'</span><span class='gt op'>></span><span class='minus op'>-</span><span class='lt op'><</span><span class='regexp val'>/span><span class='rubyid_lock identifier id'>lock</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'assign token'</span><span class='geq op'>>=</span><span class='lt op'><</span><span class='regexp val'>/span><span class='lt op'><</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'rubyid_lock identifier id'</span><span class='gt op'>></span><span class='rubyid_lock identifier id'>lock</span><span class='lt op'><</span><span class='regexp val'>/span><span class='gt op'>></s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span> \
<span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'minus op'</span><span class='gt op'>></span><span class='minus op'>-</span><span class='lt op'><</span><span class='regexp val'>/span><span class='rubyid_lock identifier id'>lock</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'minus op'</span><span class='gt op'>></span><span class='minus op'>-</span><span class='lt op'><</span><span class='regexp val'>/span><span class='rubyid_timeout identifier id'>timeout</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'assign token'</span><span class='geq op'>>=</span><span class='lt op'><</span><span class='regexp val'>/span><span class='lt op'><</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'rubyid_lock_timeout identifier id'</span><span class='gt op'>></span><span class='rubyid_lock_timeout identifier id'>lock_timeout</span><span class='lt op'><</span><span class='regexp val'>/span><span class='gt op'>></s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'rubyid_s identifier id'</span><span class='gt op'>></span><span class='rubyid_s identifier id'>s</span><span class='lt op'><</span><span class='regexp val'>/span> \
<span class='lbrack token'>[</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'minus op'</span><span class='gt op'>></span><span class='minus op'>-</span><span class='lt op'><</span><span class='regexp val'>/span><span class='rubyid_no identifier id'>no</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'minus op'</span><span class='gt op'>></span><span class='minus op'>-</span><span class='lt op'><</span><span class='regexp val'>/span><span class='rubyid_color identifier id'>color</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'rbrack token'</span><span class='gt op'>></span><span class='rbrack token'>]</span><span class='lt op'><</span><span class='regexp val'>/span> \
<span class='lbrack token'>[</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'minus op'</span><span class='gt op'>></span><span class='minus op'>-</span><span class='lt op'><</span><span class='regexp val'>/span><span class='rubyid_plugin identifier id'>plugin</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'minus op'</span><span class='gt op'>></span><span class='minus op'>-</span><span class='lt op'><</span><span class='regexp val'>/span><span class='rubyid_dir identifier id'>dir</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'assign token'</span><span class='geq op'>>=</span><span class='lt op'><</span><span class='regexp val'>/span><span class='lt op'><</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'rubyid_plugin_directory identifier id'</span><span class='gt op'>></span><span class='rubyid_plugin_directory identifier id'>plugin_directory</span><span class='lt op'><</span><span class='regexp val'>/span><span class='gt op'>></s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'rbrack token'</span><span class='gt op'>></span><span class='rbrack token'>]</span><span class='lt op'><</span><span class='regexp val'>/span> \
<span class='lbrack token'>[</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'minus op'</span><span class='gt op'>></span><span class='minus op'>-</span><span class='lt op'><</span><span class='regexp val'>/span><span class='rubyid_upgrade identifier id'>upgrade</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'assign token'</span><span class='geq op'>>=</span><span class='lt op'><</span><span class='regexp val'>/span><span class='rubyid_true true kw'>true</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'rbrack token'</span><span class='gt op'>></span><span class='rbrack token'>]</span><span class='lt op'><</span><span class='regexp val'>/span> \
<span class='minus op'>-</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'rubyid_verify identifier id'</span><span class='gt op'>></span><span class='rubyid_verify identifier id'>verify</span><span class='lt op'><</span><span class='regexp val'>/span><span class='minus op'>-</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'rubyid_plugins identifier id'</span><span class='gt op'>></span><span class='rubyid_plugins identifier id'>plugins</span><span class='lt op'><</span><span class='regexp val'>/span><span class='assign token'>=</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'rubyid_true true kw'</span><span class='gt op'>></span><span class='rubyid_true true kw'>true</span><span class='lt op'><</span><span class='regexp val'>/span> \
<span class='lt op'><</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'rubyid_root_module_directory identifier id'</span><span class='gt op'>></span><span class='rubyid_root_module_directory identifier id'>root_module_directory</span><span class='lt op'><</span><span class='regexp val'>/span><span class='gt op'>></s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span>
Selecting or Creating the Test Terraform Workspace
The workspace is selected by running a command like the following example:
<span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'rubyid_terraform identifier id'</span><span class='gt op'>></span><span class='rubyid_terraform identifier id'>terraform</span><span class='lt op'><</span><span class='regexp val'>/span> <span class='rubyid_workspace identifier id'>workspace</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span> <span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'rubyid_select identifier id'</span><span class='gt op'>></span><span class='rubyid_select identifier id'>select</span><span class='lt op'><</span><span class='regexp val'>/span> <span class='lt op'><</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'rubyid_name identifier id'</span><span class='gt op'>></span><span class='rubyid_name identifier id'>name</span><span class='lt op'><</span><span class='regexp val'>/span><span class='gt op'>></s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span>
The workspace is created by running a command like the following example:
<span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'rubyid_terraform identifier id'</span><span class='gt op'>></span><span class='rubyid_terraform identifier id'>terraform</span><span class='lt op'><</span><span class='regexp val'>/span> <span class='rubyid_workspace identifier id'>workspace</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span> <span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'rubyid_new identifier id'</span><span class='gt op'>></span><span class='rubyid_new identifier id'>new</span><span class='lt op'><</span><span class='regexp val'>/span> <span class='lt op'><</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'rubyid_name identifier id'</span><span class='gt op'>></span><span class='rubyid_name identifier id'>name</span><span class='lt op'><</span><span class='regexp val'>/span><span class='gt op'>></s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span>
Destroying the Terraform State
The state is destroyed by running a command like the following example:
<span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'rubyid_terraform identifier id'</span><span class='gt op'>></span><span class='rubyid_terraform identifier id'>terraform</span><span class='lt op'><</span><span class='regexp val'>/span> <span class='rubyid_destroy identifier id'>destroy</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span> \
<span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'minus op'</span><span class='gt op'>></span><span class='minus op'>-</span><span class='lt op'><</span><span class='regexp val'>/span><span class='rubyid_auto identifier id'>auto</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'minus op'</span><span class='gt op'>></span><span class='minus op'>-</span><span class='lt op'><</span><span class='regexp val'>/span><span class='rubyid_approve identifier id'>approve</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span> \
<span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'minus op'</span><span class='gt op'>></span><span class='minus op'>-</span><span class='lt op'><</span><span class='regexp val'>/span><span class='rubyid_lock identifier id'>lock</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'assign token'</span><span class='geq op'>>=</span><span class='lt op'><</span><span class='regexp val'>/span><span class='lt op'><</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'rubyid_lock identifier id'</span><span class='gt op'>></span><span class='rubyid_lock identifier id'>lock</span><span class='lt op'><</span><span class='regexp val'>/span><span class='gt op'>></s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span> \
<span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'minus op'</span><span class='gt op'>></span><span class='minus op'>-</span><span class='lt op'><</span><span class='regexp val'>/span><span class='rubyid_lock identifier id'>lock</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'minus op'</span><span class='gt op'>></span><span class='minus op'>-</span><span class='lt op'><</span><span class='regexp val'>/span><span class='rubyid_timeout identifier id'>timeout</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'assign token'</span><span class='geq op'>>=</span><span class='lt op'><</span><span class='regexp val'>/span><span class='lt op'><</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'rubyid_lock_timeout identifier id'</span><span class='gt op'>></span><span class='rubyid_lock_timeout identifier id'>lock_timeout</span><span class='lt op'><</span><span class='regexp val'>/span><span class='gt op'>></s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'rubyid_s identifier id'</span><span class='gt op'>></span><span class='rubyid_s identifier id'>s</span><span class='lt op'><</span><span class='regexp val'>/span> \
<span class='minus op'>-</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'rubyid_input identifier id'</span><span class='gt op'>></span><span class='rubyid_input identifier id'>input</span><span class='lt op'><</span><span class='regexp val'>/span><span class='assign token'>=</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'rubyid_false false kw'</span><span class='gt op'>></span><span class='rubyid_false false kw'>false</span><span class='lt op'><</span><span class='regexp val'>/span> \
<span class='lbrack token'>[</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'minus op'</span><span class='gt op'>></span><span class='minus op'>-</span><span class='lt op'><</span><span class='regexp val'>/span><span class='rubyid_no identifier id'>no</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'minus op'</span><span class='gt op'>></span><span class='minus op'>-</span><span class='lt op'><</span><span class='regexp val'>/span><span class='rubyid_color identifier id'>color</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'rbrack token'</span><span class='gt op'>></span><span class='rbrack token'>]</span><span class='lt op'><</span><span class='regexp val'>/span> \
<span class='minus op'>-</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'rubyid_parallelism identifier id'</span><span class='gt op'>></span><span class='rubyid_parallelism identifier id'>parallelism</span><span class='lt op'><</span><span class='regexp val'>/span><span class='assign token'>=</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'lt op'</span><span class='gt op'>></span><span class='lshft op'><<</span><span class='regexp val'>/span><span class='rubyid_parallelism identifier id'>parallelism</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'gt op'</span><span class='rshft op'>>></span><span class='lt op'><</span><span class='regexp val'>/span> \
<span class='minus op'>-</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'rubyid_refresh identifier id'</span><span class='gt op'>></span><span class='rubyid_refresh identifier id'>refresh</span><span class='lt op'><</span><span class='regexp val'>/span><span class='assign token'>=</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'rubyid_true true kw'</span><span class='gt op'>></span><span class='rubyid_true true kw'>true</span><span class='lt op'><</span><span class='regexp val'>/span> \
<span class='lbrack token'>[</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'minus op'</span><span class='gt op'>></span><span class='minus op'>-</span><span class='lt op'><</span><span class='regexp val'>/span><span class='rubyid_var identifier id'>var</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'assign token'</span><span class='geq op'>>=</span><span class='lt op'><</span><span class='regexp val'>/span><span class='lt op'><</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'rubyid_variables identifier id'</span><span class='gt op'>></span><span class='rubyid_variables identifier id'>variables</span><span class='lt op'><</span><span class='regexp val'>/span><span class='dot token'>.</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'rubyid_first identifier id'</span><span class='gt op'>></span><span class='rubyid_first identifier id'>first</span><span class='lt op'><</span><span class='regexp val'>/span><span class='gt op'>></s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'dot3 op'</span><span class='gt op'>></span><span class='dot3 op'>...</span><span class='lt op'><</span><span class='regexp val'>/span><span class='rbrack token'>]</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span> \
<span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'lbrack token'</span><span class='gt op'>></span><span class='lbrack token'>[</span><span class='lt op'><</span><span class='regexp val'>/span><span class='minus op'>-</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'rubyid_var identifier id'</span><span class='gt op'>></span><span class='rubyid_var identifier id'>var</span><span class='lt op'><</span><span class='regexp val'>/span><span class='minus op'>-</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'rubyid_file identifier id'</span><span class='gt op'>></span><span class='rubyid_file identifier id'>file</span><span class='lt op'><</span><span class='regexp val'>/span><span class='assign token'>=</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'lt op'</span><span class='gt op'>></span><span class='lshft op'><<</span><span class='regexp val'>/span><span class='rubyid_variable_files identifier id'>variable_files</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'dot token'</span><span class='gt op'>></span><span class='dot token'>.</span><span class='lt op'><</span><span class='regexp val'>/span><span class='rubyid_first identifier id'>first</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'gt op'</span><span class='rshft op'>>></span><span class='lt op'><</span><span class='regexp val'>/span><span class='dot3 op'>...</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'rbrack token'</span><span class='gt op'>></span><span class='rbrack token'>]</span><span class='lt op'><</span><span class='regexp val'>/span> \
<span class='lt op'><</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'rubyid_root_module_directory identifier id'</span><span class='gt op'>></span><span class='rubyid_root_module_directory identifier id'>root_module_directory</span><span class='lt op'><</span><span class='regexp val'>/span><span class='gt op'>></s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span>
Selecting the Default Terraform Workspace
The workspace is selected by running a command like the following example:
<span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'rubyid_terraform identifier id'</span><span class='gt op'>></span><span class='rubyid_terraform identifier id'>terraform</span><span class='lt op'><</span><span class='regexp val'>/span> <span class='rubyid_workspace identifier id'>workspace</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span> <span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'rubyid_select identifier id'</span><span class='gt op'>></span><span class='rubyid_select identifier id'>select</span><span class='lt op'><</span><span class='regexp val'>/span> <span class='lt op'><</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'rubyid_name identifier id'</span><span class='gt op'>></span><span class='rubyid_name identifier id'>name</span><span class='lt op'><</span><span class='regexp val'>/span><span class='gt op'>></s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span>
Deleting the Test Terraform Workspace
The workspace is deleted by running a command like the following example:
<span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'rubyid_terraform identifier id'</span><span class='gt op'>></span><span class='rubyid_terraform identifier id'>terraform</span><span class='lt op'><</span><span class='regexp val'>/span> <span class='rubyid_workspace identifier id'>workspace</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span> <span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'rubyid_delete identifier id'</span><span class='gt op'>></span><span class='rubyid_delete identifier id'>delete</span><span class='lt op'><</span><span class='regexp val'>/span> <span class='lt op'><</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span><span class='lt op'><</span><span class='rubyid_span identifier id'>span</span> <span class='rubyid_class class kw'>class</span><span class='assign token'>=</span><span class='string val'>'rubyid_name identifier id'</span><span class='gt op'>></span><span class='rubyid_name identifier id'>name</span><span class='lt op'><</span><span class='regexp val'>/span><span class='gt op'>></s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span>
Configuration Attributes
The configuration attributes of the driver control the behaviour of the Terraform commands that are run. Within the Test Kitchen configuration file, these attributes must be declared in the driver
mapping along with the plugin name.
driver:
name: terraform
a_configuration_attribute: some value
backend_configurations
This attribute comprises Terraform backend configuration arguments to complete a partial backend configuration.
- Type
- Required
-
False
- Default
-
{}
- Example
-
_
<span class='label val'>backend_configurations:</span> <span class='label val'>address:</span> <span class='rubyid_demo identifier id'>demo</span><span class='dot token'>.</span><span class='rubyid_consul identifier id'>consul</span><span class='dot token'>.</span><span class='rubyid_io identifier id'>io</span> <span class='label val'>path:</span> <span class='rubyid_example_app identifier id'>example_app</span><span class='div op'>/</span><span class='rubyid_terraform_state identifier id'>terraform_state</span>
client
driver.client is deprecated; use transport.client instead.
This attribute contains the pathname of the Terraform client to be used by Kitchen-Terraform.
If the value is not an absolute pathname or a relative pathname then Kitchen-Terraform will attempt to find the value in the directories of the ) PATH.
The pathname of any executable file which implements the interfaces of the following Terraform client commands may be specified: apply; destroy; get; init; validate; workspace.
- Type
- Required
-
False
- Default
-
terraform
- Example
-
client: /usr/local/bin/terraform
- Example
-
client: ./bin/terraform
- Example
-
client: terraform
color
This attribute toggles colored output from systems invoked by the plugin.
- Type
- Required
-
False
- Default
-
If a terminal emulator is associated with the Test Kitchen process then
true
; elsefalse
. - Example
-
color: false
- Caveat
-
This attribute does not toggle colored output from the Test Kitchen core, though it does use the same default logic. To toggle colored output from the core, the
--color
and--no-color
command-line flags must be used.
command_timeout
driver.command_timeout is deprecated; use transport.command_timeout instead.
This attribute controls the number of seconds that the plugin will wait for Terraform commands to finish running.
- Type
- Required
-
False
- Default
-
600
- Example
-
command_timeout: 1200
lock
This attribute toggles locking of the Terraform state file.
- Type
- Required
-
False
- Default
-
true
- Example
-
lock: false
lock_timeout
This attribute controls the number of seconds that Terraform will wait for a lock on the state to be obtained during operations related to state.
- Type
- Required
-
False
- Default
-
0
- Example
-
lock_timeout: 10
parallelism
This attribute controls the number of concurrent operations to use while Terraform walks the resource graph.
- Type
- Required
-
False
- Default
-
10
- Example
-
parallelism: 50
plugin_directory
This attribute contains the path to the directory which contains customized Terraform provider plugins to install in place of the official Terraform provider plugins.
- Type
- Required
-
False
- Default
-
There is no default value because any value will disable the normal Terraform plugin retrieval process.
- Example
-
plugin_directory: /path/to/terraform/plugins
root_module_directory
driver.root_module_directory is deprecated; use transport.root_module_directory instead.
This attribute contains the path to the directory which contains the root Terraform module to be tested.
- Type
- Required
-
False
- Default
-
The working directory of the Test Kitchen process.
- Example
-
root_module_directory: /path/to/terraform/root/module/directory
variable_files
This attribute comprises paths to Terraform variable files.
- Type
- Required
-
False
- Example
-
_
<span class='label val'>variable_files:</span> <span class='minus op'>-</span> <span class='regexp val'>/path/</span><span class='rubyid_to identifier id'>to</span><span class='div op'>/</span><span class='rubyid_first identifier id'>first</span><span class='div op'>/</span><span class='rubyid_variable identifier id'>variable</span><span class='div op'>/</span><span class='rubyid_file identifier id'>file</span> <span class='minus op'>-</span> <span class='regexp val'>/path/</span><span class='rubyid_to identifier id'>to</span><span class='div op'>/</span><span class='rubyid_second identifier id'>second</span><span class='div op'>/</span><span class='rubyid_variable identifier id'>variable</span><span class='div op'>/</span><span class='rubyid_file identifier id'>file</span>
variables
This attribute comprises Terraform variables.
- Type
- Required
-
False
- Example
-
_
<span class='label val'>variables:</span> <span class='label val'>image:</span> <span class='rubyid_image identifier id'>image</span><span class='minus op'>-</span><span class='integer val'>1234</span> <span class='label val'>zone:</span> <span class='rubyid_zone identifier id'>zone</span><span class='minus op'>-</span><span class='integer val'>5</span>
verify_version
This attribute toggles strict or permissive verification of support for the version of the Terraform client specified by the client
attribute.
- Type
- Required
-
False
- Default
-
</code>true</code>
- Example
-
verify_version: false
Ruby Interface
This class implements the interface of Kitchen::Configurable which requires the following Reek suppressions: :reek:MissingSafeMethod { exclude: [ finalize_config! ] }
Instance Attribute Summary collapse
-
#transport ⇒ Object
readonly
Returns the value of attribute transport.
Instance Method Summary collapse
-
#create(state) ⇒ void
Creates a Test Kitchen instance by initializing the working directory and creating a test workspace.
-
#destroy(state) ⇒ void
Destroys a Test Kitchen instance by initializing the working directory, selecting the test workspace, deleting the state, selecting the default workspace, and deleting the test workspace.
-
#doctor(state) ⇒ Boolean
doctor checks the system and configuration for common errors.
-
#finalize_config!(instance) ⇒ self
#finalize_config! invokes the super implementation and then initializes the strategies.
-
#initialize(config = {}) ⇒ Kitchen::Driver::Terraform
constructor
#initialize prepares a new instance of the class.
Methods included from Terraform::Configurable
Methods included from Terraform::ConfigAttribute::VariableFiles
#config_variable_files_default_value, included, to_sym
Methods included from Terraform::ConfigAttributeCacher
Methods included from Terraform::ConfigAttribute::RootModuleDirectory
#config_root_module_directory_default_value, included, to_sym
Methods included from Terraform::ConfigAttribute::PluginDirectory
#config_plugin_directory_default_value, included, to_sym
Methods included from Terraform::ConfigAttribute::Client
#config_client_default_value, #doctor_config_client, included, to_sym
Constructor Details
#initialize(config = {}) ⇒ Kitchen::Driver::Terraform
#initialize prepares a new instance of the class.
261 262 263 264 |
# File 'lib/kitchen/driver/terraform.rb', line 261 def initialize(config = {}) super config self.action_failed = ::Kitchen::Terraform::Raise::ActionFailed.new logger: logger end |
Instance Attribute Details
#transport ⇒ Object
Returns the value of attribute transport.
174 175 176 |
# File 'lib/kitchen/driver/terraform.rb', line 174 def transport @transport end |
Instance Method Details
#create(state) ⇒ void
This method returns an undefined value.
Creates a Test Kitchen instance by initializing the working directory and creating a test workspace.
181 182 183 184 185 186 187 188 189 190 191 |
# File 'lib/kitchen/driver/terraform.rb', line 181 def create(state) ::Kitchen::Terraform::Driver::Create.new( config: config, connection: transport.connection(state), logger: logger, version_requirement: version_requirement, workspace_name: workspace_name, ).call rescue => error action_failed.call message: error. end |
#destroy(state) ⇒ void
This method returns an undefined value.
Destroys a Test Kitchen instance by initializing the working directory, selecting the test workspace, deleting the state, selecting the default workspace, and deleting the test workspace.
199 200 201 202 203 204 205 206 207 208 209 |
# File 'lib/kitchen/driver/terraform.rb', line 199 def destroy(state) ::Kitchen::Terraform::Driver::Destroy.new( config: config, connection: transport.connection(state.merge(environment: { "TF_WARN_OUTPUT_ERRORS" => "true" })), logger: logger, version_requirement: version_requirement, workspace_name: workspace_name, ).call rescue => error action_failed.call message: error. end |
#doctor(state) ⇒ Boolean
doctor checks the system and configuration for common errors.
215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 |
# File 'lib/kitchen/driver/terraform.rb', line 215 def doctor(state) errors = false deprecated_config.each_pair do |attribute, | errors = true logger.warn "driver.#{attribute} is deprecated: #{message}" end methods.each do |method| next if !method.match? /doctor_config_.*/ config_error = send method errors = errors || config_error end transport_errors = transport.doctor state verifier_errors = instance.verifier.doctor state errors || transport_errors || verifier_errors end |
#finalize_config!(instance) ⇒ self
#finalize_config! invokes the super implementation and then initializes the strategies.
241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 |
# File 'lib/kitchen/driver/terraform.rb', line 241 def finalize_config!(instance) super self.deprecated_config ||= {} transport = instance.transport self.transport = if ::Kitchen::Transport::Terraform == transport.class transport else ::Kitchen::Transport::Terraform.new(config).finalize_config! instance end self end |