ENHANCEMENTS:
terraform init --json
via InitJSON
(#478)INTERNAL:
ENHANCEMENTS:
-allow-deferral
to (Terraform).Apply()
and (Terraform).Plan()
methods (#447)ENHANCEMENTS:
JSONNumber
option to Show
to enable json.Number
representation of numerical values in returned tfjson.Plan
and tfjson.State
values (#427)ENHANCEMENTS:
terraform test
command (#398)-refresh-only
flag for Plan
and Apply
methods. (#402)-destroy
flag for Apply
(#292)BUG FIXES:
TF_WORKSPACE
env var was set to an empty string, instead of being unset as intended. (#388)BUG FIXES:
(Terraform).Apply()
were missing stderr output from Terraform. (#372)BREAKING CHANGES:
ErrConfigInvalid
ErrLockIdInvalid
ErrMissingVar
ErrNoConfig
ErrNoInit
ErrNoWorkspace
ErrStateLocked
ErrStatePlanRead
ErrTFVersionMismatch
ErrWorkspaceExists
ENHANCEMENTS:
(Terraform).ApplyJSON()
, (Terraform).DestroyJSON()
, (Terraform).PlanJSON()
and (Terraform).RefreshJSON()
methods (#354)(Terraform).MetadataFunctions()
method (#358)Please note that terraform-exec now requires Go 1.18.
BUG FIXES:
terraform init
was always called with the -force-copy
flag (#268)-no-color
flag when calling terraform force-unlock
(#270)ENHANCEMENTS:
(Terraform).SetLogCore()
and (Terraform).SetLogProvider()
methods (#324)INTERNAL:
BUG FIXES:
StatePush
would fail with “Exactly one argument expected” (#316)FEATURES:
SetLog()
method for Terraform
(#291)state pull
and state push
(#215)TFEXEC_E2ETEST_TERRAFORM_PATH
(#305)BUG FIXES:
INTERNAL:
This patch version removes some unnecessary dependencies, and bumps Go module compatibility to 1.17.
This release removes the experimental tfinstall
package. We recommend users of tfinstall
switch to https://github.com/hashicorp/hc-install.
Please note also terraform-exec‘s Go version support policy, which, like Go’s own release policy, commits to supporting the last two major releases. This means that currently terraform-exec requires Go 1.17 or later.
BREAKING CHANGES:
FEATURES:
workspace delete
command (#212)workspace show
command (#245)force-unlock
command (#223)graph
command (#257)taint
command (#251)untaint
command (#251)ErrStatePlanRead
, returned when Terraform cannot read a given state or plan file (#273)FEATURES:
providers lock
command (#203)add
command (#209)Plan
/Apply
Replace
option (#211)ENHANCEMENTS:
tfexec.ErrStateLocked
to represent locked state error (#221)INTERNAL:
0.13.0
to address panic & support v1 JSON format (#224)FEATURES:
ProtocolVersion
to ReattachConfig
struct, enabling provider protocol v6 support in reattach mode, provided that Terraform and the provider plugin are both using go-plugin v1.4.1 or later. This change is backwards-compatible, as zero values for this field are interpreted as protocol v5. (#182)tfexec.Get()
for downloading modules (#176)tfexec.Upgrade013()
(#178)INTERNAL:
terraform-json
to account for changes in state & plan JSON output in Terraform v1.0.1+ (#194)SECURITY:
tfinstall
: The HashiCorp PGP signing key has been rotated (HCSEC-2021-12). This key is used to verify downloaded versions of Terraform. We recommend all users of terraform-exec upgrade to v0.13.3 for this security fix. (#166)N.B. Versions of terraform-exec prior to v0.13.3 will continue to verify older versions of Terraform (up to and including v0.15.0) for a limited period. Installation of Terraform using older versions of terraform-exec will stop working soon, and we recommend upgrading as soon as possible to avoid any interruption.
BUG FIXES:
terraform-json
to support 0.15 changes in plan & config JSON output (#153)go-getter
to prevent race conditions where consumers would require go-cleanhttp
>=0.5.2
(which tfexec itself didn't depend on until now) (#154)BUG FIXES:
NOTES:
Please note that this is the first release of terraform-exec compatible with Terraform 0.15. Running Terraform 0.15 commands with previous versions of terraform-exec may produce unexpected results.
FEATURES:
BREAKING CHANGES:
FEATURES:
<0.7.7
) (#88)Format
method with io.Reader
/io.Writer
interfaces (#96)Validate
method with tfjson
defined diagnostic types. Those types reflect exactly the types used in terraform validate -json
output (#68)StateMv
method (#112)Upgrade012
method (#105)BUG FIXES:
vendor
directory was present (#89)json.Number
instead of float64
when parsing state (#113)ErrMissingVar
(#110)FEATURES:
N.B. tfinstall binaries for all supported platforms are now available via GitHub Releases.
FEATURES:
User-Agent
header for some tfinstall
finders (#76)required_version
(#66)ShowPlanFileRaw
function to obtain the human-friendly output of a plan (#83)BREAKING CHANGES:
context.Context
added to tfinstall.Find
to allow for cancellation, timeouts, etc (#51)TF_WORKSPACE
for workspace management, you must use Terraform.WorkspaceSelect
(#75)FEATURES:
ErrWorkspaceExists
for when workspaces with the same name already exist when calling Terraform.WorkspaceNew
(#67)tfinstall.GitRef
to support installation of Terraform from a git ref instead of by released version (#51)ReattachOption
for plugin reattach functionality (#78)BREAKING CHANGES:
-detailed-exit-code
to Terraform.Plan
calls, Terraform.Plan
now also returns a bool indicating if any diff is present (#55)FEATURES:
Terraform.SetAppendUserAgent
for User-Agent management from consuming applications (#46)Terraform.WorkspaceList
, Terraform.WorkspaceNew
, and Terraform.WorkspaceSelect
along with the ErrNoWorkspace
error to indicate a workspace does not exist (#56)VarFile
options (#61)BUG FIXES:
FEATURES:
Terraform.Refresh
method (#53)Terraform.ShowStateFile
and Terraform.ShowPlanFile
(#54)DIR
positional arg in init, destroy, and plan (#52)BUG FIXES:
FEATURES:
Terraform.SetStdout
and Terraform.SetStderr
to let consumers log CLI output (#49)BUG FIXES:
ErrNoInit
on Terraform 0.13 (#48)FEATURES:
terraform show
(#41)BUG FIXES:
terraform version
output order (#47)FEATURES:
Terraform.SetLogPath
method to set TF_LOG_PATH
environment variable, and prevented manual setting of programmatically supported environment variables (#32)Terraform.Version
method to get executable version information (#7)BUG FIXES:
-var
handling issue (#34)BREAKING CHANGES:
exec.Cmd
versions of methods (#25)address
and id
arguments in Import()
(#24)StateShow()
to Show()
(#30)BUG FIXES:
Import()
config argument (#28)BUG FIXES:
tfinstall.Version
was incorrect between versions 0.1.1 and 0.2.1 inclusive.BUG FIXES:
FEATURES:
Import()
function (#20)BUG FIXES:
github.com/hashicorp/go-getter
dependency, which added a requirement for Go 1.13.Initial release.
This Go module contains two packages, github.com/hashicorp/terraform-exec/tfexec
, and github.com/hashicorp/terraform-exec/tfinstall
, which share the same version.