- Introduced Aggregator.sol for Chainlink-compatible oracle functionality, including round-based updates and access control. - Added OracleWithCCIP.sol to extend Aggregator with CCIP cross-chain messaging capabilities. - Created .gitmodules to include OpenZeppelin contracts as a submodule. - Developed a comprehensive deployment guide in NEXT_STEPS_COMPLETE_GUIDE.md for Phase 2 and smart contract deployment. - Implemented Vite configuration for the orchestration portal, supporting both Vue and React frameworks. - Added server-side logic for the Multi-Cloud Orchestration Portal, including API endpoints for environment management and monitoring. - Created scripts for resource import and usage validation across non-US regions. - Added tests for CCIP error handling and integration to ensure robust functionality. - Included various new files and directories for the orchestration portal and deployment scripts.
193 lines
4.4 KiB
HCL
193 lines
4.4 KiB
HCL
# Variables for Multi-Cloud Deployment
|
|
|
|
variable "environment" {
|
|
description = "Environment name (prod, dev, test, staging)"
|
|
type = string
|
|
default = "prod"
|
|
validation {
|
|
condition = contains(["prod", "dev", "test", "staging"], var.environment)
|
|
error_message = "Environment must be one of: prod, dev, test, staging"
|
|
}
|
|
}
|
|
|
|
variable "deployment_strategy" {
|
|
description = "Deployment strategy (blue-green, canary, rolling)"
|
|
type = string
|
|
default = "blue-green"
|
|
validation {
|
|
condition = contains(["blue-green", "canary", "rolling"], var.deployment_strategy)
|
|
error_message = "Deployment strategy must be one of: blue-green, canary, rolling"
|
|
}
|
|
}
|
|
|
|
variable "enable_azure_arc" {
|
|
description = "Enable Azure Arc for hybrid management"
|
|
type = bool
|
|
default = true
|
|
}
|
|
|
|
variable "enable_service_mesh" {
|
|
description = "Enable service mesh for cross-cloud communication"
|
|
type = bool
|
|
default = true
|
|
}
|
|
|
|
variable "service_mesh_provider" {
|
|
description = "Service mesh provider (istio, linkerd, kuma)"
|
|
type = string
|
|
default = "istio"
|
|
validation {
|
|
condition = contains(["istio", "linkerd", "kuma"], var.service_mesh_provider)
|
|
error_message = "Service mesh provider must be one of: istio, linkerd, kuma"
|
|
}
|
|
}
|
|
|
|
variable "secrets_provider" {
|
|
description = "Primary secrets management provider"
|
|
type = string
|
|
default = "vault"
|
|
validation {
|
|
condition = contains(["vault", "azure-keyvault", "aws-secrets-manager", "gcp-secret-manager"], var.secrets_provider)
|
|
error_message = "Secrets provider must be one of: vault, azure-keyvault, aws-secrets-manager, gcp-secret-manager"
|
|
}
|
|
}
|
|
|
|
variable "vault_address" {
|
|
description = "HashiCorp Vault address (if using Vault)"
|
|
type = string
|
|
default = ""
|
|
}
|
|
|
|
variable "vault_token" {
|
|
description = "HashiCorp Vault token (if using Vault)"
|
|
type = string
|
|
default = ""
|
|
sensitive = true
|
|
}
|
|
|
|
# Azure-specific variables
|
|
variable "azure_subscription_id" {
|
|
description = "Azure subscription ID"
|
|
type = string
|
|
default = ""
|
|
}
|
|
|
|
variable "azure_tenant_id" {
|
|
description = "Azure tenant ID"
|
|
type = string
|
|
default = ""
|
|
}
|
|
|
|
# AWS-specific variables
|
|
variable "aws_access_key_id" {
|
|
description = "AWS access key ID"
|
|
type = string
|
|
default = ""
|
|
sensitive = true
|
|
}
|
|
|
|
variable "aws_secret_access_key" {
|
|
description = "AWS secret access key"
|
|
type = string
|
|
default = ""
|
|
sensitive = true
|
|
}
|
|
|
|
variable "aws_default_region" {
|
|
description = "AWS default region"
|
|
type = string
|
|
default = "us-west-2"
|
|
}
|
|
|
|
# GCP-specific variables
|
|
variable "gcp_project_id" {
|
|
description = "GCP project ID"
|
|
type = string
|
|
default = ""
|
|
}
|
|
|
|
variable "gcp_default_region" {
|
|
description = "GCP default region"
|
|
type = string
|
|
default = "europe-west1"
|
|
}
|
|
|
|
# IBM Cloud-specific variables
|
|
variable "ibm_api_key" {
|
|
description = "IBM Cloud API key"
|
|
type = string
|
|
default = ""
|
|
sensitive = true
|
|
}
|
|
|
|
variable "ibm_default_region" {
|
|
description = "IBM Cloud default region"
|
|
type = string
|
|
default = "us-south"
|
|
}
|
|
|
|
# Oracle Cloud-specific variables
|
|
variable "oci_tenancy_ocid" {
|
|
description = "OCI tenancy OCID"
|
|
type = string
|
|
default = ""
|
|
}
|
|
|
|
variable "oci_user_ocid" {
|
|
description = "OCI user OCID"
|
|
type = string
|
|
default = ""
|
|
}
|
|
|
|
variable "oci_fingerprint" {
|
|
description = "OCI API key fingerprint"
|
|
type = string
|
|
default = ""
|
|
}
|
|
|
|
variable "oci_private_key_path" {
|
|
description = "Path to OCI private key"
|
|
type = string
|
|
default = ""
|
|
}
|
|
|
|
variable "oci_default_region" {
|
|
description = "OCI default region"
|
|
type = string
|
|
default = "us-ashburn-1"
|
|
}
|
|
|
|
# vSphere/On-prem variables
|
|
variable "vsphere_user" {
|
|
description = "vSphere username"
|
|
type = string
|
|
default = ""
|
|
}
|
|
|
|
variable "vsphere_password" {
|
|
description = "vSphere password"
|
|
type = string
|
|
default = ""
|
|
sensitive = true
|
|
}
|
|
|
|
variable "vsphere_server" {
|
|
description = "vSphere server address"
|
|
type = string
|
|
default = ""
|
|
}
|
|
|
|
variable "tags" {
|
|
description = "Common tags to apply to all resources"
|
|
type = map(string)
|
|
default = {
|
|
Environment = "production"
|
|
Project = "DeFi Oracle Meta Mainnet"
|
|
ChainID = "138"
|
|
ManagedBy = "Terraform"
|
|
CostCenter = "Blockchain"
|
|
Owner = "DevOps Team"
|
|
}
|
|
}
|
|
|