Open
Conversation
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.
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:
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
reqwestpackage to build and make the HTTP requests. The interface for Google Cloud needs to be implemented insrc/integrations/providers/gcp/interface.rs3. 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.rsResource Manager:
src/integrations/providers/gcp/resource_manager.rs