Files
smom-dbis-138/terraform/multi-cloud/providers.tf

128 lines
2.9 KiB
Terraform
Raw Normal View History

# Multi-Cloud Provider Configuration
# Configures all cloud providers based on enabled environments
terraform {
required_version = ">= 1.0"
required_providers {
# Azure
azurerm = {
source = "hashicorp/azurerm"
version = "~> 3.0"
}
# AWS
aws = {
source = "hashicorp/aws"
version = "~> 5.0"
}
# Google Cloud
google = {
source = "hashicorp/google"
version = "~> 5.0"
}
# IBM Cloud
ibm = {
source = "IBM-Cloud/ibm"
version = "~> 1.0"
}
# Oracle Cloud
oci = {
source = "oracle/oci"
version = "~> 5.0"
}
# Kubernetes (for all providers)
kubernetes = {
source = "hashicorp/kubernetes"
version = "~> 2.0"
}
# Helm
helm = {
source = "hashicorp/helm"
version = "~> 2.0"
}
# vSphere (for on-prem HCI)
vsphere = {
source = "hashicorp/vsphere"
version = "~> 2.0"
}
# Azure Arc (for hybrid management)
azapi = {
source = "Azure/azapi"
version = "~> 1.0"
}
}
}
# Azure Provider Configuration
provider "azurerm" {
features {
resource_group {
prevent_deletion_if_contains_resources = true
}
key_vault {
purge_soft_delete_on_destroy = false
recover_soft_deleted_key_vaults = true
}
}
# Credentials from environment variables or Azure CLI
# subscription_id = var.azure_subscription_id
# tenant_id = var.azure_tenant_id
}
# AWS Provider Configuration
provider "aws" {
# Credentials from environment variables, AWS CLI, or IAM roles
# access_key = var.aws_access_key_id
# secret_key = var.aws_secret_access_key
# region = var.aws_default_region
}
# Google Cloud Provider Configuration
provider "google" {
# Credentials from environment variable GOOGLE_APPLICATION_CREDENTIALS
# project = var.gcp_project_id
# region = var.gcp_default_region
}
# IBM Cloud Provider Configuration
provider "ibm" {
# Credentials from environment variables
# ibmcloud_api_key = var.ibm_api_key
# region = var.ibm_default_region
}
# Oracle Cloud Provider Configuration
provider "oci" {
# Credentials from OCI config file or environment variables
# tenancy_ocid = var.oci_tenancy_ocid
# user_ocid = var.oci_user_ocid
# fingerprint = var.oci_fingerprint
# private_key_path = var.oci_private_key_path
# region = var.oci_default_region
}
# vSphere Provider Configuration (for on-prem HCI)
provider "vsphere" {
# Configuration per environment
# user = var.vsphere_user
# password = var.vsphere_password
# vsphere_server = var.vsphere_server
# allow_unverified_ssl = true
}
# Kubernetes Provider (configured per environment)
# This will be configured dynamically based on the environment
# Helm Provider (configured per environment)
# This will be configured dynamically based on the environment