terratest
Terratest is a Go library that makes it easier to write automated tests for your infrastructure code. (by gruntwork-io)
conftest
Write tests against structured configuration data using the Open Policy Agent Rego query language (by open-policy-agent)
Our great sponsors
terratest | conftest | |
---|---|---|
46 | 9 | |
7,330 | 2,785 | |
0.7% | 1.0% | |
8.7 | 8.5 | |
about 1 month ago | 8 days ago | |
Go | Go | |
Apache License 2.0 | GNU General Public License v3.0 or later |
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
terratest
Posts with mentions or reviews of terratest.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2024-03-26.
-
Top Terraform Tools to Know in 2024
Terratest is a Go library that provides tools and patterns for testing infrastructure, with first-class support for Terraform, Packer, Docker, Kubernetes, and more. It's used to write automated tests for your infrastructure code.
-
Saw a not-so-good thing in my pipeline. How do we fix it?
I think I found it. This is the one right? https://github.com/gruntwork-io/terratest/
-
terracove - open-source to instantly test the health of your terraform/terragrunt repository
What it does in parallel is basically init/plan/show using terratest on every subdirectory on your repository tree or provided paths. The output is either a JSON summary or a custom made Junit XML test file you can ingest into your tests reader. It took it around 8 minutes to map the entirety of our bloated repository.
-
Trunk Based Development: Confused about how to test code before pushing to main? How does the deploy process work for many environments?
You could deploy to a separate account (usually dev first), you can use terratest, you could try something like LocalStack. I dare say there’s other methods.
-
terratest for infrastructure
Was wondering if anyone has tried https://github.com/gruntwork-io/terratest to test their infrastructure. I like it because I can write golang tests! Thats a big plus for me.
- Is there a testing framework for Kubernetes and AWS resources?
-
How long have you guys actually had the title “platform engineer”? What other titles did you have before that, if any?
Once there is a CI pipeline for delivering infra changes you can add static code analysis tools (checkov) and even start testing changes (terratest)
-
Testing Terraform infra - terratest alternatives?
https://github.com/gruntwork-io/terratest/blob/master/test/azure/terraform_azure_example_test.go https://github.com/gruntwork-io/terratest/blob/master/examples/terraform-backend-example/main.tf
-
Appreciation for terraform
Another plus is to add tests into your workflow, just by adding a run step with terratest
-
Breve guia de sobrevivência com Terraform
Terratest: Framework de testes para Terraform, os testes devem ser escritos em Golang.
conftest
Posts with mentions or reviews of conftest.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2021-12-28.
-
Validation on list(object) variables
I wrote following conftest.dev (OPA), sample policy
- The default.go file meaning
-
Introducing Conftest and setting up CI with Github Actions to automate reviewing of Terraform code
name: tf-plan-apply on: pull_request: branches: [ main ] env: TF_VERSION: 1.0.0 CONFTEST_VERSION: 0.28.3 WORKING_DIR: ./ jobs: terraform: name: aws-eureka-pairs-etc-s3 runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v2 - name: Install conftest run: | wget -O - 'https://github.com/open-policy-agent/conftest/releases/download/v${{ env.CONFTEST_VERSION }}/conftest_${{ env.CONFTEST_VERSION }}_Linux_x86_64.tar.gz' | tar zxvf - ./conftest --version //❶ - name: Setup Terraform uses: hashicorp/setup-terraform@v1 with: terraform_wrapper: false //❷ terraform_version: ${{ env.TF_VERSION }} cli_config_credentials_token: ${{ secrets.YOUR_CRED_NAME}} - name: Terraform Init ${{ env.WORKING_DIR }} working-directory: ${{ env.WORKING_DIR }} run: terraform init - name: Terraform Plan ${{ env.WORKING_DIR }} if: github.event_name == 'pull_request' env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} working-directory: ${{ env.WORKING_DIR }} id: plan run: terraform plan -out=tfplan -no-color -lock=false -parallelism=50 - name: Convert terraform plan result to json formmat if: github.event_name == 'pull_request' id: convert working-directory: ${{ env.WORKING_DIR }} run: terraform show -json tfplan > tfplan.json - name: conftest test if: github.event_name == 'pull_request' id: conftest run: ./conftest test --no-color ${{ env.WORKING_DIR }}/tfplan.json //❸
-
Kubernetes Security Checklist 2021
Workload configuration should be audited regularly (Kics, Kubeaudit, Kubescape, Conftest, Kubesec, Checkov)
-
Don't let your Terraform go rogue with Conftest and the Open Policy Agent
Insert Conftest! As they state in their GitHub description, Conftest tests against structured configuration data using the Open Policy Agent Rego query language. In the case of Terraform, this means we're actually running unit tests against sample JSON and actual tests against the Terraform state JSON.
-
Using Open Policy Agent and Conftest to Validate Your Openshift 4 IPI Configuration
While Rego is the policy language we use to assemble our policies, we still need something to run those policies with. If you have a cluster and you want to actively evaluate policies, you can end up running an instance of Open Policy Agent and it's associated tooling. However in our case, we just want to check things at runtime (or just on some recurring basis such as when changes get checked in or a pull request is submitted). In the latter instance, we are able to use another tool from the Open Policy Agent project called ConfTest. What ConfTest allows us to do is to specify a file or directory of files that we want to inspect along with the set of policies we want to inspect them with. It then takes all of that and dumps out the associated outputs from those policies and tell us the results (i.e. the messages, how many policies were checked and the results of those policies). This tool is much better suited for our use case, so this is what we will proceed with. To grab the latest version of ConfTest, you can grab the latest release from here.
-
!!!*IMP: Conftest Integration with AWS or Other*!!!!
OR HOW TO RUN https://github.com/open-policy-agent/conftest AS CI/CD in Circle CI to apply policies?
-
Terraforming in 2021 – new features, testing and compliance
If you like terraform-compliance, Conftest might also be worth having a look. It has its own DSL to write policies, and allows you to test multiple frameworks. We found this blog post from Lennard Eijsackers very informative, and would thus rather recommend you to check it out.
-
Mental models for understanding Kubernetes Pod Security Policy PSP
Can Gatekeeper and Conftest single-source the same set of rules? I'm looking at https://github.com/open-policy-agent/conftest/issues/54#issuecomment-528988831 and not seeing how.
What are some alternatives?
When comparing terratest and conftest you can also consider the following projects:
inspec - InSpec: Auditing and Testing Framework
checkov - Prevent cloud misconfigurations and find vulnerabilities during build-time in infrastructure as code, container images and open source packages with Checkov by Bridgecrew.
tfsec - Security scanner for your Terraform code [Moved to: https://github.com/aquasecurity/tfsec]
driftctl - Detect, track and alert on infrastructure drift
tflint - A Pluggable Terraform Linter
terragrunt - Terragrunt is a thin wrapper for Terraform that provides extra tools for working with multiple Terraform modules.
gatekeeper-library - 📚 The OPA Gatekeeper policy library
atlantis - Terraform Pull Request Automation
Kyverno - Kubernetes Native Policy Management