Terraform Advanced — Contributing to Providers
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.