We are now happy to announce the launch of a new module the provide CI/CD solution for infrastructure changes
Last week, during Harness {unscripted}, we announced the Beta program of a new module - “Infrastructure as Code Management.” In this blog, we will cover the background of investing in this area and why we’re so excited about it.
In the last few years, we have helped hundreds of customers improve their software delivery process with modules like CI, CD, Feature Flags, and Security Testing Orchestration. These customers saw significant improvements in their release process by removing manual steps and adding intelligence to their pipelines. As we were working with these customers, we learned about the need to provide similar functionality to the Infrastructure layer.
Many of our customers (especially platform engineers) use infrastructure as code solutions, like Terraform, which help them manage resources efficiently and repeatedly, using git as the single source of truth. Terraform is a great tool to do that when there is a small team managing a small number of resources, but as they try to scale and increase the adoption to other teams, they will likely hit several roadblocks:
Learning all these requirements, Infrastructure as code management felt like a natural extension we should be adding to our portfolio - so we did!
The product is in its Beta phase, and we’re inviting users to join the program and give us feedback. For now, we have decided to support Terraform as the primary IaC tool, but the plan is to go broad and provide support for additional IaC providers (more on that later in this blog).
To address the challenges our customers face, we have built the the following functionality:
Users can create advanced pipelines for infrastructure changes - you can also hook multiple plugins into the flow (like Checkov and tfsec) and run steps in parallel to expedite the execution.
Users can see the resources they manage, including each resource's attributes and the Terraform-generated output.
Users can estimate how each resource's cost will change based on the new configuration.
Users can review changes before applying them to the target environment. The approval step clearly shows estimated cost changes. At the resource level, the approval dashboard shows how many changed, deleted, and added resources there are and empowers users to inspect each resource’s attribute level changes.
Harness will populate all the changes to git, allowing developers to review the resource change as part of the PR process.
Harness embeds OPA as the policy agent for its platform. Use out-of-the-box or custom written OPA rules to validate that the resources in the Terraform plan or state comply with the requirements of the organization (for example - Ensure specific AMIs are used when launching a new VM)
To reduce the burden of managing and hosting the backend for State files, IaCM provides a fully managed state management, inc., the ability to see each state's revision history and compare different revisions.
Existing Harness customers have the unfair advantage of utilizing Infrastructure as Code Management with a low effort - they can leverage the same pipeline, connectors, delegates, and other Harness components currently configured to work with other modules such as CI and CD and utilize them for Infrastructure use cases. This approach reduces the friction and effort needed to onboard the new module. We already have customers that were able to start using the product within just a few minutes!
Harness is a proud member of the OpenTofu community. We plan to support all open-source versions of Terraform and OpenTofu releases.
The product is now in its Beta phase and is still on the path to GA with many more capabilities, such as
If you’d like to give it a spin, please head over to the module website and sign up - we will work with you to make this happen!