GCP Provider Implementation (Production Requirement)
GCP Provider Implementation
Priority: HIGH (Production Requirement)
Status: Not Started
Estimated Time: 5-7 days
Dependencies: Issue #5 (Multi-Cloud Abstraction Layer)
Description
Implement Google Cloud Platform as a cloud provider, enabling Compute Engine, Cloud SQL, and Memorystore provisioning.
Implementation Details
-
Install Dependencies (
app/requirements.txt):
google-cloud-compute>=1.14.0
google-cloud-sql>=1.7.0
google-auth>=2.23.0
-
Create GCP Provider (
app/services/providers/gcp_provider.py):
from .base_provider import CloudProvider
from google.cloud import compute_v1
class GCPProvider(CloudProvider):
def __init__(self, config: Dict):
self.project_id = config['project_id']
self.zone = config.get('zone', 'us-central1-a')
self.credentials_json = config['credentials_json']
# Initialize GCP clients
async def create_instance(self, config: Dict) -> Dict:
# Implementation using google-cloud SDK
pass
-
Create Terraform Modules (
orchestration/terraform/modules/gcp/):
gcp/
├── compute_instance/
│ ├── main.tf
│ ├── variables.tf
│ └── outputs.tf
├── vpc/
│ ├── main.tf
│ ├── variables.tf
│ └── outputs.tf
├── cloud_sql/
│ ├── main.tf
│ ├── variables.tf
│ └── outputs.tf
└── memorystore/
├── main.tf
├── variables.tf
└── outputs.tf
-
API Endpoints (
app/api/gcp_providers.py):- Similar to AWS endpoints
- Support for service account JSON upload
-
Frontend Component (
frontend/src/lib/components/settings/GCPProviderManager.svelte):- Fields: Name, Project ID, Zone, Service Account JSON
- File upload for credentials
- Test connection button
-
Service Templates:
- Ubuntu on Compute Engine (e2-micro, e2-small, etc.)
- PostgreSQL on Cloud SQL
- Redis on Memorystore
Test Strategy
- Test GCP credential validation
- Create Compute Engine instance
- Verify Cloud SQL provisioning
- Test Memorystore creation
- Verify networking configuration
Deliverables
- GCPProvider class
- GCP Terraform modules
- GCP API endpoints
- GCP UI component
- GCP service templates
Labels: backend, frontend, terraform, gcp, multi-cloud