Skip to content

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

  1. Install Dependencies (app/requirements.txt):
google-cloud-compute>=1.14.0
google-cloud-sql>=1.7.0
google-auth>=2.23.0
  1. 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
  1. 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
  1. API Endpoints (app/api/gcp_providers.py):

    • Similar to AWS endpoints
    • Support for service account JSON upload
  2. Frontend Component (frontend/src/lib/components/settings/GCPProviderManager.svelte):

    • Fields: Name, Project ID, Zone, Service Account JSON
    • File upload for credentials
    • Test connection button
  3. 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

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information