Add tests, SDK deps, and Terraform variables — branch ready for merge#1
Merged
HunterSpence merged 7 commits intomainfrom Apr 16, 2026
Merged
Add tests, SDK deps, and Terraform variables — branch ready for merge#1HunterSpence merged 7 commits intomainfrom
HunterSpence merged 7 commits intomainfrom
Conversation
Implements AbstractCloudProvider for OCI covering: - Instance Pool / Compute scanning - Object Storage (Buckets) - Autonomous Database - Native rightsizing via OCI Optimizer - Mock mode for demo/CI runs (no OCI credentials required) - Authentication via ~/.oci/config or env vars Updates providers/__init__.py and multi.py to register OCI so the MultiCloudAggregator fans out to all four clouds automatically.
- cloud_config.py: CloudConfig dataclass + CloudProvider enum covering
AWS/Azure/GCP/OCI. Validates credentials, detects provider from env,
and serialises to/from dict/env. Single source of truth for provider
selection across all modules.
- auth/: per-provider auth helper modules (aws_auth.py, azure_auth.py,
gcp_auth.py, oci_auth.py) plus __init__.py with get_provider_credentials()
factory. Each module validates, tests, and returns a normalised
credentials dict without leaking secrets to logs.
- migration_scout/cross_cloud.py: CrossCloudMigrationPlanner — takes
source_cloud + target_cloud, maps resource types between provider
nomenclatures, generates a migration runbook, and estimates network
egress costs for every supported source→destination pair:
AWS→Azure, AWS→GCP, AWS→OCI
Azure→AWS, Azure→GCP, Azure→OCI
GCP→AWS, GCP→Azure, GCP→OCI
OCI→AWS, OCI→Azure, OCI→GCP
(16 directional pairs = full combinatorial coverage)
- .env.example: adds Azure, GCP, OCI credential blocks with inline docs
terraform/ modules/aws/ \u2014 VPC, EC2, RDS, S3, IAM, outputs modules/azure/ \u2014 Resource Group, VNet, VM, Storage Account, outputs modules/gcp/ \u2014 VPC, Compute Instance, GCS, Cloud SQL, outputs modules/oci/ \u2014 VCN, Compute Instance, Object Storage, Autonomous DB main.tf \u2014 Root module: select provider(s) via var.enabled_clouds variables.tf \u2014 All provider variables with defaults outputs.tf \u2014 Unified outputs across all clouds Each module is self-contained: can be used independently or together via the root main.tf. The root module passes source_cloud / target_cloud through to enable single-flag cloud switching for migration scenarios.
- Comparison chart vs 10 enterprise competitors placed immediately after the headline (AWS Migration Hub, Azure Migrate, GCP Migration Center, Oracle Lift, CloudEndure, Carbonite, Zerto, VMware HCX, Turbonomic, Apptio Cloudability) - Multi-cloud quick-start section: SOURCE_CLOUD / TARGET_CLOUD env vars, all 12 cross-cloud pair examples - Updated module table, architecture diagram, and module detail sections to reflect OCI + cross-cloud migration support - Updated repository structure tree - Updated .env.example reference in Requirements section
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
azure-identity>=1.16.0,google-cloud-billing>=1.13.0, andoci>=2.120.0torequirements.txtterraform/variables.tfwith the canonical 7-variable file coveringenabled_clouds,aws_region,azure_location,gcp_project,gcp_region,oci_region, andenvironmenttests/test_cross_cloud.pywith all 12 directional cross-cloud pair tests acrossTestCrossCloudAllPairs,TestOCIProvider, andTestCloudConfigclassesTest plan
requirements.txtends with the three new SDK linesterraform/variables.tfcontains exactly the 7 canonical variablestests/test_cross_cloud.pyexists and contains all three test classes