Provider configuration, versioning, and multi-provider patterns
View on GitHubpluginagentmarketplace/custom-plugin-terraform
terraform-assistant
January 20, 2026
Select agents to install to:
npx add-skill https://github.com/pluginagentmarketplace/custom-plugin-terraform/blob/main/skills/terraform-providers/SKILL.md -a claude-code --skill terraform-providersInstallation paths:
.claude/skills/terraform-providers/# Terraform Providers Skill
Configure and manage Terraform providers for single and multi-cloud deployments.
## Provider Requirements
```hcl
terraform {
required_version = ">= 1.5.0"
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 5.0"
}
azurerm = {
source = "hashicorp/azurerm"
version = "~> 3.80"
}
google = {
source = "hashicorp/google"
version = "~> 5.0"
}
kubernetes = {
source = "hashicorp/kubernetes"
version = "~> 2.24"
}
}
}
```
## Version Constraints
```hcl
version = "5.0.0" # Exact version
version = ">= 5.0" # Minimum version
version = "~> 5.0" # >= 5.0.0, < 6.0.0
version = ">= 5.0, < 6.0" # Explicit range
version = "!= 5.1.0" # Exclude version
```
## Provider Configuration
### AWS
```hcl
provider "aws" {
region = var.aws_region
default_tags {
tags = {
Environment = var.environment
ManagedBy = "Terraform"
}
}
assume_role {
role_arn = var.assume_role_arn
session_name = "TerraformSession"
}
}
```
### Azure
```hcl
provider "azurerm" {
features {
resource_group {
prevent_deletion_if_contains_resources = true
}
key_vault {
purge_soft_delete_on_destroy = false
}
}
subscription_id = var.subscription_id
tenant_id = var.tenant_id
}
```
### GCP
```hcl
provider "google" {
project = var.project_id
region = var.region
}
provider "google-beta" {
project = var.project_id
region = var.region
}
```
## Provider Aliases
### Multi-Region
```hcl
provider "aws" {
alias = "us_east_1"
region = "us-east-1"
}
provider "aws" {
alias = "us_west_2"
region = "us-west-2"
}
resource "aws_s3_bucket" "primary" {
provider = aws.us_east_1
bucket = "${var.project}-primary"
}
resource "aws_s3_bucket" "replica" {
provider = aws.us_west_2
bucket = "${var.project}-replica"
}
```
### Multi-Account
```hcl
provider "aws" {