mirror of
https://github.com/googleapis/genai-toolbox.git
synced 2026-01-30 09:48:27 -05:00
## Description --- This pull request adds a new tool, cloud-sql-clone-instance, which enables cloning a Cloud SQL instance from the toolbox using the Cloud SQL Admin API. The tool supports both standard cloning and point-in-time recovery (PITR). It also supports specifying preferred zones for cloned instances via the preferredZone and preferredSecondaryZone fields. Key Features: Instance Cloning: The tool allows you to clone a Cloud SQL instance by specifying the source and destination instance names. Point-in-Time Recovery (PITR): By providing a pointInTime timestamp, you can create a clone of an instance as it existed at a specific moment. High Availability Configuration: The preferredZone and preferredSecondaryZone parameters allow you to configure the cloned instance for high availability. Tested: <img width="1182" height="446" alt="Screenshot 2025-11-11 at 12 21 47 PM" src="https://github.com/user-attachments/assets/7f39a5a3-3967-43d0-8041-f1d47b4fbcd9" /> ## PR Checklist > Thank you for opening a Pull Request! Before submitting your PR, there are a > few things you can do to make sure it goes smoothly: - [x] Make sure you reviewed [CONTRIBUTING.md](https://github.com/googleapis/genai-toolbox/blob/main/CONTRIBUTING.md) - [x] Make sure to open an issue as a [bug/issue](https://github.com/googleapis/genai-toolbox/issues/new/choose) before writing your code! That way we can discuss the change, evaluate designs, and agree on the general idea - [x] Ensure the tests and linter pass - [x] Code coverage does not decrease (if any source code was changed) - [x] Appropriate docs were updated (if necessary) - [ ] Make sure to add `!` if this involve a breaking change 🛠️ Fixes #1915 Co-authored-by: prernakakkar-google <158031829+prernakakkar-google@users.noreply.github.com> Co-authored-by: Averi Kitsch <akitsch@google.com>
68 lines
3.5 KiB
Markdown
68 lines
3.5 KiB
Markdown
---
|
|
title: cloud-sql-clone-instance
|
|
type: docs
|
|
weight: 10
|
|
description: "Clone a Cloud SQL instance."
|
|
---
|
|
|
|
The `cloud-sql-clone-instance` tool clones a Cloud SQL instance using the Cloud SQL Admin API.
|
|
|
|
{{< notice info dd>}}
|
|
This tool uses a `source` of kind `cloud-sql-admin`.
|
|
{{< /notice >}}
|
|
|
|
## Examples
|
|
|
|
Basic clone (current state)
|
|
|
|
```yaml
|
|
tools:
|
|
clone-instance-basic:
|
|
kind: cloud-sql-clone-instance
|
|
source: cloud-sql-admin-source
|
|
description: "Creates an exact copy of a Cloud SQL instance. Supports configuring instance zones and high-availability setup through zone preferences."
|
|
```
|
|
|
|
Point-in-time recovery (PITR) clone
|
|
|
|
```yaml
|
|
tools:
|
|
clone-instance-pitr:
|
|
kind: cloud-sql-clone-instance
|
|
source: cloud-sql-admin-source
|
|
description: "Creates an exact copy of a Cloud SQL instance at a specific point in time (PITR). Supports configuring instance zones and high-availability setup through zone preferences"
|
|
```
|
|
|
|
## Reference
|
|
|
|
### Tool Configuration
|
|
|
|
| **field** | **type** | **required** | **description** |
|
|
| -------------- | :------: | :----------: | ------------------------------------------------------------- |
|
|
| kind | string | true | Must be "cloud-sql-clone-instance". |
|
|
| source | string | true | The name of the `cloud-sql-admin` source to use. |
|
|
| description | string | false | A description of the tool. |
|
|
|
|
### Tool Inputs
|
|
|
|
| **parameter** | **type** | **required** | **description** |
|
|
| -------------------------- | :------: | :----------: | ------------------------------------------------------------------------------- |
|
|
| project | string | true | The project ID. |
|
|
| sourceInstanceName | string | true | The name of the source instance to clone. |
|
|
| destinationInstanceName | string | true | The name of the new (cloned) instance. |
|
|
| pointInTime | string | false | (Optional) The point in time for a PITR (Point-In-Time Recovery) clone. |
|
|
| preferredZone | string | false | (Optional) The preferred zone for the cloned instance. If not specified, defaults to the source instance's zone. |
|
|
| preferredSecondaryZone | string | false | (Optional) The preferred secondary zone for the cloned instance (for HA). |
|
|
|
|
## Usage Notes
|
|
|
|
- The tool supports both basic clone and point-in-time recovery (PITR) clone operations.
|
|
- For PITR, specify the `pointInTime` parameter in RFC3339 format (e.g., `2024-01-01T00:00:00Z`).
|
|
- The source must be a valid Cloud SQL Admin API source.
|
|
- You can optionally specify the `zone` parameter to set the zone for the cloned instance. If omitted, the zone of the source instance will be used.
|
|
- You can optionally specify the `preferredZone` and `preferredSecondaryZone` (only in REGIONAL instances) to set the preferred zones for the cloned instance. These are useful for high availability (HA) configurations. If omitted, defaults will be used based on the source instance.
|
|
|
|
## See Also
|
|
- [Cloud SQL Admin API documentation](https://cloud.google.com/sql/docs/mysql/admin-api)
|
|
- [Toolbox Cloud SQL tools documentation](../cloudsql)
|
|
- [Cloud SQL Clone API documentation](https://cloud.google.com/sql/docs/mysql/clone-instance) |