Hashicorp releases drops of Terraform a regular basis, and September was no exception providing three updates. On September 30th, 0.13.4 was released and there is a change that has some important implications for those that rely on third-party provisioners that ship within the binary.

In the upgrade notes there is the following statement:

The built-in vendor (third-party) provisioners, which include habitatpuppetchef, and salt-masterless are now deprecated and will be removed in a future version of Terraform. More information on Discuss.

Terraform updates to version 0.13.4 1

In the Discuss article, Terraform states the following about this change:

Terraform is beginning a process to deprecate the built-in vendor provisioners that ship as part of the Terraform binary. Users of the Chef, Habitat, Puppet and Salt-Masterless provisioners will need to migrate to the included file, local-exec and remote-exec provisioners which are vendor agnostic. Starting in Terraform 0.13.4, users of the built in vendor provisioners will see a deprecation warning. We expect to remove the four vendor provisioners in Terraform 0.15.



Provisionor migration guide

Hashi corp has provided a guide to help those using these builtin provisioners to migrate away from relying on this code in the binary. The guide states the following information about the migration process:

Configuration management tools install and manage software on a machine that already exists. Terraform is not a configuration management tool, but can create machines that you then use with configuration management.

In order to migrate from using the now-deprecated vendor-specific provisioners (chefhabitatpuppet, or salt-masterless), you’ll need to modify your configuration to remove the reliance on these provisioners.

This guide focuses on migrating from your current approach to a similar one using the native file and remote-exec provisioners. However, there are other, preferred, approaches to initializing resources rather than using provisioner blocks, including leveraging Packer, cloud-init, providers or user_data for initalizing your instances. You can find out more about these approaches on HashiCorp Learn.


Upgrade notes for version 0.13.4 of Terraform

The Terraform Changelog can be found on their GitHub.


UPGRADE NOTES:

  • The built-in vendor (third-party) provisioners, which include habitatpuppetchef, and salt-masterless are now deprecated and will be removed in a future version of Terraform. More information on Discuss.
  • Deprecated interpolation-only expressions are detected in more contexts in addition to resources and provider configurations. Module calls, data sources, outputs, and locals are now also covered. Terraform also detects interpolation-only expressions in complex values such as lists and objects. An expression like "${foo}" should be rewritten as just foo. (#27272] [#26334)

BUG FIXES:

  • command: Include schemas from required but unused providers in the output of terraform providers schema. This allows development tools such as the Terraform language server to offer autocompletion for the first resource for a given provider. (#26318)
  • core: create_before_destroy status is now updated in the state during refresh (#26343)
  • core: data sources using depends_on, either directly or through their modules, are no longer are forced to wait until apply by other planned data source reads (#26375)

The latest version of Terraform can be downloaded from the Hashicorp site.

Are you new to Terraform? Get started with Terraform on Azure.


Microsoft MVP

Dan Patrick is the Chief Infrastructure Architect for Solliance and a 15 year veteran at Microsoft. He has an extensive background in IT Infrastructure and Operations. Dan has both architected and lead teams building and supporting some of the largest service providers in North America with as many 15,000 Windows Servers and 120 million endpoints. Dan has worked with Azure IaaS solutions extensively since 2012. He has a passion for Virtualization with deep experience leveraging Hyper-V, Vmware, and Citrix. He is also a Clustering specialist focusing on large host clusters and SQL Always On Availability Groups. Recently Dan, authored the Networking, Azure Active Directory and Containers portion of the 70-533 Exam Reference for Microsoft Press. You can follow him on Twitter @deltadan