Terraform Advanced — Contributing to Providers

less than 1 minute read

How to contribute to Terraform providers and the open-source ecosystem.


Where to Contribute

1. terraform-provider-aws     (github.com/hashicorp/terraform-provider-aws)
2. terraform-provider-google  (github.com/hashicorp/terraform-provider-google)
3. terraform-provider-azurerm (github.com/hashicorp/terraform-provider-azurerm)
4. Community providers on the Terraform Registry
5. Your own custom providers

Types of Contributions

Bug Reports

### Description
`aws_ecs_service` ignores `health_check_grace_period_seconds` when force_new_deployment is true.

### Steps to Reproduce
1. Create ECS service with health_check_grace_period_seconds = 120
2. Set force_new_deployment = true
3. Run terraform apply

### Expected: grace period is 120s
### Actual: grace period is 0s

### Terraform Version: 1.7.0
### Provider Version: 5.30.0

Code Contributions

1. Fork the provider repo
2. Find an issue labeled "good first issue"
3. Write the fix + tests
4. Submit a PR following the contribution guide
5. Respond to review feedback

Writing Provider Tests

func TestAccAWSInstance_basic(t *testing.T) {
    resource.ParallelTest(t, resource.TestCase{
        PreCheck:     func() { testAccPreCheck(t) },
        Providers:    testAccProviders,
        CheckDestroy: testAccCheckAWSInstanceDestroy,
        Steps: []resource.TestStep{
            {
                Config: testAccAWSInstanceConfig_basic,
                Check: resource.ComposeTestCheckFunc(
                    testAccCheckAWSInstanceExists("aws_instance.test"),
                    resource.TestCheckResourceAttr("aws_instance.test", "instance_type", "t3.micro"),
                ),
            },
        },
    })
}

What’s Next?

Curated resources for continued learning.

← Pulumi Comparison Advanced Reading List →

Updated: