|
|
|
|
@ -200,6 +200,25 @@ provider configuration must be destroyed before that provider configuration is
|
|
|
|
|
removed, unless the related resources are re-configured to use a different
|
|
|
|
|
provider configuration first.
|
|
|
|
|
|
|
|
|
|
### Provider Version Constraints in Modules
|
|
|
|
|
|
|
|
|
|
To declare that a module requires particular versions of a specific provider,
|
|
|
|
|
use the [`required_providers`](/docs/configuration/terraform.html#specifying-required-provider-versions)
|
|
|
|
|
setting inside a `terraform` block:
|
|
|
|
|
|
|
|
|
|
```hcl
|
|
|
|
|
terraform {
|
|
|
|
|
required_providers {
|
|
|
|
|
aws = ">= 2.7.0"
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Shared modules should constrain only the minimum allowed version, using a `>=`
|
|
|
|
|
constraint. This specifies the minimum version the provider is compatible
|
|
|
|
|
with while allowing users to upgrade to newer provider versions without
|
|
|
|
|
altering the module source code.
|
|
|
|
|
|
|
|
|
|
### Implicit Provider Inheritance
|
|
|
|
|
|
|
|
|
|
For convenience in simple configurations, a child module automatically inherits
|
|
|
|
|
@ -238,7 +257,7 @@ or a child module may need to use different provider settings than
|
|
|
|
|
its parent. For such situations, it's necessary to pass providers explicitly
|
|
|
|
|
as we will see in the next section.
|
|
|
|
|
|
|
|
|
|
## Passing Providers Explicitly
|
|
|
|
|
### Passing Providers Explicitly
|
|
|
|
|
|
|
|
|
|
When child modules each need a different configuration of a particular
|
|
|
|
|
provider, or where the child module requires a different provider configuration
|
|
|
|
|
|