Skip to content

Comments

Added base GCP code implementations#27

Open
vanderlei-filho wants to merge 1 commit intomainfrom
add-google-cloud-support
Open

Added base GCP code implementations#27
vanderlei-filho wants to merge 1 commit intomainfrom
add-google-cloud-support

Conversation

@vanderlei-filho
Copy link
Member

Google Cloud Platform Support

1. Authentication

Currently, our database migration sets GOOGLE_APPLICATION_CREDENTIALS as the required variable, which expects a JSON file path. However, this approach has limitations:

Requires users to have the gcloud CLI tool installed to generate the credentials file
Creates a dependency on external tooling that we'd prefer to avoid

We need to determine the minimal authentication requirements for Google Cloud API access. Research if GOOGLE_APPLICATION_CREDENTIALS can accept the JSON content directly (as a string) instead of a file path, and investigate alternative authentication methods that don't require gcloud CLI. If needed, break down the service account JSON into individual variables (e.g., private_key, client_email, project_id, etc.) to allow manual input. Update the database migration with the final authentication variable requirements.

2. API Client Implementation Strategy

The official Google Cloud Rust SDK just reached version 1.0.0 (released 3 days ago), but concerns exist:

  1. Documentation is sparse and potentially incomplete
  2. Uncertain coverage of all required Google Cloud services
  3. May be too early for production use given its recent release

Audit the Rust SDK to verify it includes all services we need (Compute Engine, IAM, etc.) and evaluate the quality and completeness of the SDK documentation. Compare SDK implementation complexity vs. direct Google Cloud REST API calls.

If going through the REST API route, check the Vultr implementations for examples on how to use the reqwest package to build and make the HTTP requests. The interface for Google Cloud needs to be implemented in src/integrations/providers/gcp/interface.rs

3. Core Functionality Implementation

Implement the essential provider methods for full Google Cloud Platform support (contained in the following files):

Resource Catalog: src/integrations/providers/gcp/resource_catalog.rs
Resource Manager: src/integrations/providers/gcp/resource_manager.rs

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant