A Terraform provider is a plugin that lets Terraform manage resources on a specific platform, such as AWS, Azure, Google Cloud, Kubernetes or PostgreSQL. Each provider translates Terraform configuration into that platform’s API calls and defines the resource types and data sources you can use.
Providers are published in the Terraform Registry and declared in a required_providers block with a source and version constraint. terraform init downloads them and records exact versions in the .terraform.lock.hcl file.
Providers release often, and major versions can rename arguments, change defaults or remove resources. An unpinned provider can turn a routine plan into a breaking change.
A safe provider upgrade pins versions, follows the provider’s upgrade guide, runs terraform init -upgrade on a branch, and reviews the plan for unexpected replacements before merging. Steampunk Spotter checks Terraform code for provider compatibility issues and breaking changes before execution.