Cloud SQL Proxy
Overview
The Cloud SQL Proxy feature enables users to create and manage Google Cloud SQL proxy connections within the Shakudo platform. This feature allows users to configure secure connections to Google Cloud SQL instances by setting up proxy configurations with optional authentication via service account credentials. The proxy acts as an intermediary that facilitates secure connections to Cloud SQL databases from within the Kubernetes cluster.
Access & Location
- Route:
?panel=cloud-sql-proxy
- Navigation: Shakudo Objects → Cloud SQL Proxies
- Access Requirements:
- View: All authenticated users can view their own Cloud SQL proxies
- View All:
dashboard-admin
ordashboard-maintainer
roles required to view all proxies across the organization - Create: All authenticated users can create Cloud SQL proxies
- Deactivate:
dashboard-admin
role required (users can only deactivate their own proxies)
- Feature Flags: None
Key Capabilities
Create Cloud SQL Proxy
Configure a new Cloud SQL proxy connection with customizable settings including:
- Custom proxy name and description
- One or more Cloud SQL instance connection strings
- Optional custom container image URL (must support wget, Cloud SQL Proxy v2+ only)
- Optional service account credentials file name
- Optional secret reference for authentication (supports both workloads and development namespaces)
List and Search Proxies
View all configured Cloud SQL proxies with searchable and sortable table display showing:
- Proxy ID, name, and description
- Custom image URL (if specified)
- Credentials file name (if specified)
- Creator email
- Copy-to-clipboard functionality for all key fields
Deactivate Proxy
Permanently remove a Cloud SQL proxy configuration. This action:
- Requires admin privileges or ownership of the proxy
- Shows confirmation dialog before deletion
- Cannot be undone once confirmed
User Interface
Main View
The main panel displays a data grid table showing all Cloud SQL proxies the user has permission to view. The table includes:
- Search/filter bar with real-time filtering across all proxy properties
- Column visibility controls
- Refresh button to reload data
- Create button in the top-right corner
- Rows are styled based on activation status
Dialogs & Modals
Create Cloud SQL Proxy Dialog
- Purpose: Full-screen form for creating new Cloud SQL proxy configurations
- Tabs:
- General: Basic proxy information and authentication settings
- Name (required, alphanumeric with dashes/underscores/dots, max 128 chars)
- Description (optional)
- Image URL (optional, overrides default Cloud SQL proxy image)
- File Name (optional, service account key file name for --credentials-file)
- Secret (optional, select from existing Hyperplane secrets in workloads or development namespaces)
- Instances: Cloud SQL instance connection strings
- At least one instance required
- Dynamic field array to add multiple instances
- General: Basic proxy information and authentication settings
- Live summary panel on the right showing all configured settings
- Actions: Create Cloud SQL Proxy button (validates form before submission)
Deactivate Cloud SQL Proxy Dialog
- Purpose: Confirmation dialog for deleting a proxy
- Fields: Shows proxy name in confirmation message
- Actions: Deactivate (confirm) or Cancel
Tables & Data Grids
- Cloud SQL Proxies Table
- Columns:
- Actions (deactivate icon button)
- ID (6-character short ID with copy button)
- Name (truncated to 30 chars with copy button)
- Image URL (copy button if specified)
- File Name (copy button if specified)
- Created By (creator's email)
- Description (truncated to 64 chars)
- Actions:
- Row-level deactivate button (role-based access)
- Copy to clipboard for ID, name, image URL, and file name
- Filtering: Real-time search across ID, name, description, and user ID fields
- Sorting: Default sort by name (ascending)
- Columns:
Technical Details
GraphQL Operations
Queries:
getHyperplaneCloudSqlProxies
- Retrieves list of Cloud SQL proxies with optional filtering and pagination- Returns: id, name, instances, description, imageUrl, hyperplaneUserEmail, hyperplaneSecretId, fileName
- Supports where clause filtering by user, name, description, etc.
- Orders results by name (ascending)
Mutations:
createHyperplaneCloudSqlProxy
- Creates a new Cloud SQL proxy configuration- Required inputs: name, instances (array)
- Optional inputs: description, imageUrl, fileName, hyperplaneUserEmail, hyperplaneSecretName, hyperplaneSecretNamespace
- Returns: id, name, instances, description, imageUrl, hyperplaneUserEmail, fileName
deleteHyperplaneCloudSqlProxy
- Permanently deletes a Cloud SQL proxy- Required input: id
- Returns: id, name of deleted proxy
Subscriptions:
- None
Component Structure
- Main Component:
components/CloudSqlProxy/CloudSqlProxyPanel.tsx
- Table View:
components/CloudSqlProxy/CloudSqlProxyTables.tsx
- Dialogs:
components/CloudSqlProxy/Dialogs/
CloudSqlProxyCreateDialog.tsx
- Full-screen creation formCloudSqlProxyDeactivateDialog.tsx
- Deletion confirmation
- Hooks:
hooks/useCloudSqlProxys.ts
- GraphQL:
graphql/cloudsqlproxy/
Common Workflows
Creating a Cloud SQL Proxy with Default Settings
- Navigate to Shakudo Objects → Cloud SQL Proxies
- Click "Create Cloud SQL Proxy" button
- Enter a unique name (alphanumeric with dashes/dots/underscores)
- Optionally add a description
- Switch to "Instances" tab
- Add one or more Cloud SQL instance connection strings
- Review the summary panel on the right
- Click "Create Cloud SQL Proxy"
- System validates name availability and creates the proxy
- Success notification appears and view returns to table
Creating a Cloud SQL Proxy with Custom Authentication
- Navigate to Shakudo Objects → Cloud SQL Proxies
- Click "Create Cloud SQL Proxy" button
- Enter proxy name and description
- Specify a custom Image URL (must support wget, Cloud SQL Proxy v2+)
- Enter the File Name of your service account key in the secret
- Select a Secret from the dropdown (choose namespace: Workloads or Development)
- Switch to "Instances" tab and add instance connection strings
- Review configuration in the summary panel
- Click "Create Cloud SQL Proxy"
- System creates proxy with custom authentication settings
Searching for Specific Proxies
- Navigate to Cloud SQL Proxies panel
- Use the filter input field at the top of the table
- Enter search term (searches across ID, name, description, user email)
- Table updates in real-time with matching results
- Click "X" to clear filter and show all proxies
Deactivating a Cloud SQL Proxy
- Locate the proxy in the table
- Click the deactivate icon (circle with X) in the leftmost column
- Confirmation dialog appears with proxy name
- Click "Deactivate" to confirm deletion
- Success notification appears and proxy is removed from table
- Note: Only admins or the proxy owner can perform this action
Related Features
- Secrets - Manage service account credentials referenced by Cloud SQL proxies
- Service Accounts - Configure service accounts for authentication
- Pipeline Jobs - Can utilize Cloud SQL proxies for database connections
- Microservices - Can access databases through configured Cloud SQL proxies
Notes & Tips
- Proxy Names: Must start and end with alphanumeric characters, can contain dashes, underscores, and dots in between, maximum 128 characters
- Default Image: If no custom image URL is provided, the system uses the default Google Cloud SQL Proxy image
- Custom Images: When using a custom image URL, ensure the image includes wget and supports Cloud SQL Proxy v2 or later
- Service Account Files: The fileName field corresponds to the --credentials-file flag in Cloud SQL Proxy and should match a file within the selected secret
- Public Instances: If connecting to a public Cloud SQL instance or using workload identity, the secret selection is optional
- Namespace Selection: Secrets can be selected from either the "Workloads" (hyperplane-pipelines) or "Development" (hyperplane-jhub) namespace
- Instance Format: Instance connection strings should follow the Google Cloud SQL connection format (project:region:instance)
- Role-Based Access: Standard users can only see and delete their own proxies; admins and maintainers can view all proxies across the organization
- Permanent Deletion: Deactivating a Cloud SQL proxy is permanent and cannot be undone
- Name Validation: The system checks for name uniqueness before creating a new proxy
- Real-time Filtering: The search filter applies OR logic across multiple fields for flexible searching