slide

Hashi corp cloud engineer terraform associate exam update for version 003

Ned Bellavance
7 min read

Cover

Are you preparing for the Terraform Certified Associate exam? Did you know there’s a new version? That’s what we’re going to cover in this post.

Terraform Certified Associate Exam Summary

Let’s start with the basics, if you’re not familiar with the Terraform Certified Associate exam, I covered it in some detail in a couple YouTube videos. The tl;dw is that the exam covers nine primary objectives, is intended for people who have been using Terraform in development/prod for about six months, and is a multiple choice test lasting one hour.

Since Terraform is a constantly changing technology, the exam has to be updated periodically to stay in line with best practices and new features that have been introduced. The latest update is version 003, launching in March of 2023- so, like right now. Later in the post, we’ll go over the differences between version 002 and 003, but first I want to answer some common questions.

Common Questions

For starters, you will be able to take version 002 of the exam until mid-May of 2023. So if you’ve already started studying and don’t want to adjust or find new study materials for version 003, fret not, you have a month and a half to take the previous version.

Second, if you take version 002 of the exam, your certification is good for two years. That’s the case for either version, but I wanted to make it clear that taking the older version doesn’t change the expiration date.

Lastly, both exam versions cost the same. There’s no discount on the older version of the exam, or temporary sale to entice people to take the new version.

With all that out of the way, let’s dig into the differences between version 002 and 003.

Updates for Version 003

Comparing version 002 and 003, they look largely the same. Some of the changes are cosmetic in nature, like the names of objectives, and some go deeper into deprecated commands or new features.

Let’s start with the cosmetic changes. Four of the primary objectives have new names, but honestly the only one that really matters is objective nine, which has changed from “Understand Terraform Cloud and Enterprise capabilities” to “Understand Terraform Cloud capabilities”. I know that seems pretty minor, but the focus is clear. You should know what Terraform Cloud can do, but don’t worry too much about Terraform Enterprise- it is just a self-hosted version of Terraform Cloud after all. They’ve also revised the sub-objectives for this primary objective, and I’ll get to those in a moment.

Removals

Next up let’s deal with what has been removed. All sub-objectives dealing with provisioners are gone. 🥳 No longer do you need to know how to use local-exec and remote-exec. HashiCorp has been advising against using provisioners for a while now, and they’ve been steadily adding functionality to core Terraform that replaces the need for provisioners and the null_resource. Check out the new builtin terraform_data resource released with version 1.4.

The terraform taint command is deprecated in favor of the -replace flag with terraform plan and apply. Instead of knowing about taint, focus on the existence of the -replace flag and how it works.

The terraform refresh command has also been deprecated in favor of the -refresh-only flag for terraform plan and apply. Again, focus on the existence of the -refresh-only flag and how it works.

The terraform workspace command has been removed from the exam, but it is not deprecated. HashiCorp has started advising against the use of Terraform core workspaces, which is a contentious opinion I don’t necessarily endorse, but that’s a topic for another time. The point is that you don’t need to know how to use workspaces, but you do need to know that they exist.

The objective “Configure resource using a dynamic block” is no longer its own objective, but be aware it is still part of the exam. I’m not sure why it was its own objective in the first place, and now it isn’t. You should still know how a dynamic block works.

That’s the removals, what about additions?

Additions

A new addition to Terraform since version 002 is the cloud block that connects a Terraform configuration to Terraform Cloud, using it as a remote state backend among other things. The previous method was to use the remote backend type, and now the cloud block is preferred. You should know how to use the cloud block to connect to Terraform Cloud with the CLI workflow.

To further emphasize the change and also to differentiate the available backends for state data, the objective “Describe remote state storage mechanisms and supported standard backends” has been renamed to “Differentiate remote state back end options”. Instead of knowing how the different backends work, you simply need to know what features they might support, that’s basically remote state lock and workspaces. Also, the name is a lot shorter, which I appreciate on an aesthetic level.

In lieu of the deprecation of terraform taint and refresh, the new objective “Manage resource drift and Terraform state” is basically telling you to study up on the -replace and -refresh-only flags and how they can be used to deal with changes made outside of Terraform.

Another new feature of Terraform is the .terraform.lock.hcl file generated when you run terraform init against a new configuration. The lock file records the constraints for providers and modules, and what version of each provider is being used. This lets you lock in a specific version of a provider and check the lock file into source control for consistency. Make sure you know what the lock file is, what it contains, and how to update it.

Introduced back in version 0.15, sensitive values are now part of the exam, included in the “Demonstrate use of variables and outputs” objective. You should know how to mark variables and outputs as sensitive, what it means functionally for them to be marked as sensitive, and how to remove the sensitive attribute from a variable or output.

Turning back to the last objective, regarding Terraform Cloud, the original three sub-objectives have been slimmed down to just two:

  • Explain how Terraform Cloud helps to manage infrastructure
  • Describe how Terraform Cloud enables collaboration and governance

The first objective basically covers workspaces in Terraform Cloud. You should know what a workspace is, how it works to provision infrastructure, and the three available workflows for workspaces.

The second objective is more about the governance available from Sentinel in Terraform Cloud, cost control, and collabortion via the private registry and teams. My recommendation is to sign up for an account and start the free trial that includes all features. The trial is good for 30 days and doesn’t require a credit card or any other form of payment.

TL;DR

My big takeaway, and the thing I’d recommend focusing on is the new functionality. It’s not going to hurt you to know the deprecated stuff, but you’ll struggle a bit if you don’t know about the new features. If you’re going to study anything, focus on the following:

Certification Guide

If you want to do a bit of studying before the exam then may I humbly suggest my certification guide on Leanpub? I just finished updating it to be in line with version 003 of the exam, and since I publish it through Leanpub, you’ll get updates to the guide for free. That means when version 004 of the exam comes out and you need to recertify, you’ll have the latest version of the guide available to help you through.

And if you use this link to buy the guide you’ll get the guide for a mere $10 instead of the suggested $15 until April 7th.

Summary

That’s about all you need to know about version 003 of the exam. If you decide to sit the new version the exam, let me know about your experience pass or fail, I’d love to hear about what did or didn’t help in this post or the guide.

Thanks for reading and happy Terraforming!