Initial Blueprint Dry Run
From the "IaC Catalog" page click on the button that says "Try It Out"
You should now see three different options in order to create a basic Terraform Blueprint. Let’s go ahead and click the “Generate Terraform” button for the “AWS S3 Buckt & KMS Key” so we can get an idea of how Blueprints work. Clicking this button will launch a form, similar to the one we explored previously, that generates Terraform code.
When the page loads you can see that there are some instructions at the top of this form explaining what this form is, as well as a couple of different inputs enabled for us to fill out. There are also a couple of inputs that are not editable, but that are displayed. Go ahead and fill out the form.
Notice that as you change values for editable inputs like the Name and Environment the form fields for the Key Alias as well as the S3 Bucket Name dynamically update accordingly. Here you can begin to see the power of Blueprints, where you can take the bare minimum required input from a user and use that input to automatically populate additional values that otherwise might have to be entered manually.
After you're done selecting an Environment, entering a Name, and adding a Tag or two click the “Next” button on the bottom right-hand corner.
You’ll then be presented with a review screen where you can see all of the configuration that is going to be generated which will look something like this depending on the values that you entered when filling out the form
If you’re curious to see what the Terraform code that will be generated looks then click on the “Review Code” button. You’ll see a code preview that looks something like this with the actual code dependent on what you entered in the form.
Pretty neat huh? After just a couple of inputs, we’ve generated all of the Terraform code necessary to create a best-practice KMS encrypted S3 Bucket. If we were to run this code via a terraform apply (assuming we have working AWS credentials and the proper access) then an S3 Bucket would be created in our AWS account. Let’s go ahead and close out of this code preview and click the “Create” button on the bottom right-hand side of the screen, which will simply prepare the code for download for us.
We should now see a success screen, and had we gone through the processing of hooking up AutoCloud to GitHub and or Jira, then a pull request with this code have been made to the appropriate GitHub repo/branch and a Jira ticket outlining what was done would have been created. As it stands, you can now download the generated TF code using the down arrow icon on the "Download Code" tile. Note that AutoCloud does not actually create the S3 Bucket on AWS, it simply makes the Terraform code necessary to create the S3 Bucket.
By now you can probably begin to see that Blueprints are a powerful way to automate the creation of cloud resources using Terraform modules. Cloud developers are able to codify all of their knowledge and best practices into a series of opinionated, bespoke cloud deployment patterns that make the cloud self-service.
Blueprints can be used to generate anything from object storage as we’ve seen here to container deployments or entire three-tier web stacks. With every Blueprint that is created, your Ops/Cloud team has one less monotonous task to perform and your other technical stakeholders are able to do what they need to do without even knowing about the cloud or Terraform.
Now that you understand the basics of AutoCloud’s Terraform Blueprints, the next section of this tutorial will dive into how Blueprints work under the hood by taking a look at the code that powers the S3 Bucket form we just used. If you’re interested in learning more about how Blueprints work and are constructed then keep reading.