Class: Kitchen::Provisioner::Terraform
- Inherits:
-
Base
- Object
- Base
- Kitchen::Provisioner::Terraform
- Includes:
- Terraform::Configurable
- Defined in:
- lib/kitchen/provisioner/terraform.rb
Overview
The Terraform provisioner applies changes to the Terraform state based on the configuration of the root module.
Commands
The following command-line actions are provided by the provisioner.
kitchen converge
A Test Kitchen instance is converged through the following steps.
Selecting 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>
Updating the Terraform Dependency Modules
The dependency modules are updated 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_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_update identifier id'>update</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_directory identifier id'>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>
Validating the Terraform Root Module
Terraform >= 0.15.0
The root module is validated 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_validate identifier id'>validate</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'>'lt op'</span><span class='gt op'>></span><span class='lshft op'><<</span><span class='regexp val'>/span><span class='rubyid_directory identifier id'>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 root module is validated 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_validate identifier id'>validate</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_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='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_variables identifier id'>variables</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='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'>'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_file identifier id'>file</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_variable_files identifier id'</span><span class='gt op'>></span><span class='rubyid_variable_files identifier id'>variable_files</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'>'lt op'</span><span class='gt op'>></span><span class='lshft op'><<</span><span class='regexp val'>/span><span class='rubyid_directory identifier id'>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>
Applying the Terraform State Changes
The state changes are applied 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_apply identifier id'>apply</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='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_auto identifier id'</span><span class='gt op'>></span><span class='rubyid_auto identifier id'>auto</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_approve identifier id'</span><span class='gt op'>></span><span class='rubyid_approve identifier id'>approve</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_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_directory identifier id'</span><span class='gt op'>></span><span class='rubyid_directory identifier id'>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>
Retrieving the Terraform Output
The outputs are retrieved 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_output identifier id'>output</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_json identifier id'>json</s</span><span class='rubyid_pan identifier id'>pan</span><span class='gt op'>></span>
Configuration Attributes
The provisioner has no configuration attributes, but the provisioner mapping must be declared with the plugin name within the Test Kitchen configuration file.
provisioner:
name: terraform
Ruby Interface
This class implements the interface of Kitchen::Configurable which requires the following Reek suppressions: :reek:MissingSafeMethod { exclude: [ finalize_config! ] }
Constant Summary collapse
- UNSUPPORTED_BASE_ATTRIBUTES =
UNSUPPORTED_BASE_ATTRIBUTES is the list of attributes inherited from Kitchen::Provisioner::Base which are not supported by Kitchen::Provisioner::Terraform.
[ :command_prefix, :downloads, :http_proxy, :https_proxy, :ftp_proxy, :max_retries, :root_path, :retry_on_exit_code, :sudo, :sudo_command, :wait_for_retry, ]
Instance Method Summary collapse
-
#call(state) ⇒ Object
Converges a Test Kitchen instance.
Methods included from Terraform::Configurable
Instance Method Details
#call(state) ⇒ Object
Converges a Test Kitchen instance.
82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 |
# File 'lib/kitchen/provisioner/terraform.rb', line 82 def call(state) driver = instance.driver transport = driver.transport ::Kitchen::Terraform::Provisioner::Converge.new( config: driver.send(:config), connection: transport.connection({}), debug_connection: transport.connection(logger: ::Kitchen::Terraform::DebugLogger.new(logger)), logger: logger, version_requirement: version_requirement, workspace_name: workspace_name, ).call state: state rescue => error ::Kitchen::Terraform::Raise::ActionFailed.new(logger: logger).call message: error. end |