Skip to content

Commit

Permalink
Merge pull request #649 from linode/dev
Browse files Browse the repository at this point in the history
Release v0.35.0
  • Loading branch information
yec-akamai authored Feb 18, 2025
2 parents cc29c72 + 24bcfa1 commit d5a168a
Show file tree
Hide file tree
Showing 12 changed files with 1,321 additions and 2 deletions.
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ Name | Description |
--- | ------------ |
[linode.cloud.api_request](./docs/modules/api_request.md)|Make an arbitrary Linode API request.|
[linode.cloud.database_mysql](./docs/modules/database_mysql.md)|Manage a Linode MySQL database.|
[linode.cloud.database_mysql_v2](./docs/modules/database_mysql_v2.md)|Create, read, and update a Linode MySQL database.|
[linode.cloud.database_postgresql](./docs/modules/database_postgresql.md)|Manage a Linode PostgreSQL database.|
[linode.cloud.domain](./docs/modules/domain.md)|Manage Linode Domains.|
[linode.cloud.domain_record](./docs/modules/domain_record.md)|Manage Linode Domain Records.|
Expand Down Expand Up @@ -108,6 +109,7 @@ Name | Description |
[linode.cloud.nodebalancer_list](./docs/modules/nodebalancer_list.md)|List and filter on Node Balancers.|
[linode.cloud.nodebalancer_type_list](./docs/modules/nodebalancer_type_list.md)|List and filter on Node Balancer Types.|
[linode.cloud.object_cluster_list](./docs/modules/object_cluster_list.md)|**NOTE: This module has been deprecated because it relies on deprecated API endpoints. Going forward, `region` will be the preferred way to designate where Object Storage resources should be created.**|
[linode.cloud.object_storage_endpoint_list](./docs/modules/object_storage_endpoint_list.md)|List and filter on Object Storage Endpoints.|
[linode.cloud.placement_group_list](./docs/modules/placement_group_list.md)|List and filter on Placement Groups.|
[linode.cloud.region_list](./docs/modules/region_list.md)|List and filter on Regions.|
[linode.cloud.ssh_key_list](./docs/modules/ssh_key_list.md)|List and filter on SSH Keys.|
Expand Down
178 changes: 178 additions & 0 deletions docs/modules/database_mysql_v2.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,178 @@
# database_mysql_v2

Create, read, and update a Linode MySQL database.

- [Minimum Required Fields](#minimum-required-fields)
- [Examples](#examples)
- [Parameters](#parameters)
- [Return Values](#return-values)

## Minimum Required Fields
| Field | Type | Required | Description |
|-------------|-------|--------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `api_token` | `str` | **Required** | The Linode account personal access token. It is necessary to run the module. <br/>It can be exposed by the environment variable `LINODE_API_TOKEN` instead. <br/>See details in [Usage](https://github.com/linode/ansible_linode?tab=readme-ov-file#usage). |

## Examples

```yaml
- name: Create a basic MySQL database
linode.cloud.database_mysql_v2:
label: my-db
region: us-mia
engine: mysql/8
type: g6-nanode-1
allow_list:
- 0.0.0.0/0
state: present
```
```yaml
- name: Create a MySQL database with three nodes
linode.cloud.database_mysql_v2:
label: my-db
region: us-mia
engine: mysql/8
type: g6-standard-1
cluster_size: 3
allow_list:
- 0.0.0.0/0
state: present
```
```yaml
- name: Create a MySQL database with an explicit maintenance schedule
linode.cloud.database_mysql_v2:
label: my-db
region: us-mia
engine: mysql/8
type: g6-nanode-1
updates:
duration: 4
frequency: weekly
hour_of_day: 16
day_of_week: 4
state: present
```
```yaml
- name: Create a MySQL database forked from another database
linode.cloud.database_mysql_v2:
label: my-db
region: us-mia
engine: mysql/8
type: g6-nanode-1
fork:
source: 12345
state: present
```
```yaml
- name: Delete a MySQL database
linode.cloud.database_mysql_v2:
label: my-db
state: absent
```
## Parameters
| Field | Type | Required | Description |
|-----------|------|----------|------------------------------------------------------------------------------|
| `state` | <center>`str`</center> | <center>**Required**</center> | The desired state of the Managed Database. **(Choices: `present`, `absent`)** |
| `allow_list` | <center>`list`</center> | <center>Optional</center> | A list of IP addresses and CIDR ranges that can access the Managed Database. **(Updatable)** |
| `cluster_size` | <center>`int`</center> | <center>Optional</center> | The number of Linode instance nodes deployed to the Managed Database. **(Updatable)** |
| `engine` | <center>`str`</center> | <center>Optional</center> | The Managed Database engine in engine/version format. **(Updatable)** |
| `label` | <center>`str`</center> | <center>Optional</center> | The label of the Managed Database. |
| `region` | <center>`str`</center> | <center>Optional</center> | The region of the Managed Database. |
| `type` | <center>`str`</center> | <center>Optional</center> | The Linode Instance type used by the Managed Database for its nodes. **(Updatable)** |
| [`fork` (sub-options)](#fork) | <center>`dict`</center> | <center>Optional</center> | Information about a database to fork from. |
| [`updates` (sub-options)](#updates) | <center>`dict`</center> | <center>Optional</center> | Configuration settings for automated patch update maintenance for the Managed Database. **(Updatable)** |
| `wait_timeout` | <center>`int`</center> | <center>Optional</center> | The maximum number of seconds a poll operation can take before raising an error. **(Default: `2700`)** |

### fork

| Field | Type | Required | Description |
|-----------|------|----------|------------------------------------------------------------------------------|
| `restore_time` | <center>`str`</center> | <center>Optional</center> | The database timestamp from which it was restored. |
| `source` | <center>`int`</center> | <center>Optional</center> | The instance id of the database that was forked from. |

### updates

| Field | Type | Required | Description |
|-----------|------|----------|------------------------------------------------------------------------------|
| `day_of_week` | <center>`int`</center> | <center>**Required**</center> | The day to perform maintenance. 1=Monday, 2=Tuesday, etc. **(Choices: `1`, `2`, `3`, `4`, `5`, `6`, `7`)** |
| `duration` | <center>`int`</center> | <center>**Required**</center> | The maximum maintenance window time in hours. |
| `hour_of_day` | <center>`int`</center> | <center>**Required**</center> | The hour to begin maintenance based in UTC time. |
| `frequency` | <center>`str`</center> | <center>Optional</center> | Whether maintenance occurs on a weekly or monthly basis. **(Choices: `weekly`, `monthly`; Default: `weekly`)** |

## Return Values

- `database` - The database in JSON serialized form.

- Sample Response:
```json
{
"allow_list": [
"10.0.0.3/32"
],
"cluster_size": 3,
"created": "2025-02-10T20:10:20",
"encrypted": true,
"engine": "mysql",
"hosts": {
"primary": "a225891-akamai-prod-1798333-default.g2a.akamaidb.net",
"standby": "replica-a225891-akamai-prod-1798333-default.g2a.akamaidb.net"
},
"id": 12345,
"label": "my-db",
"members": {
"172.104.207.136": "primary",
"194.195.112.177": "failover",
"45.79.126.72": "failover"
},
"oldest_restore_time": "2025-02-10T20:15:07",
"platform": "rdbms-default",
"port": 11876,
"region": "ap-west",
"ssl_connection": true,
"status": "active",
"total_disk_size_gb": 30,
"type": "g6-standard-1",
"updated": "2025-02-10T20:25:55",
"updates": {
"day_of_week": 4,
"duration": 4,
"frequency": "weekly",
"hour_of_day": 16,
"pending": []
},
"used_disk_size_gb": 0,
"version": "8.0.35"
}
```
- See the [Linode API response documentation](https://techdocs.akamai.com/linode-api/reference/get-databases-mysql-instance) for a list of returned fields


- `ssl_cert` - The SSL CA certificate for an accessible Managed MySQL Database.

- Sample Response:
```json
{
"ca_certificate": "LS0tLS1CRUdJ...=="
}
```
- See the [Linode API response documentation](https://techdocs.akamai.com/linode-api/reference/get-databases-mysql-instance-ssl) for a list of returned fields


- `credentials` - The root username and password for an accessible Managed MySQL Database.

- Sample Response:
```json
{
"password": "s3cur3P@ssw0rd",
"username": "akmadmin"
}
```
- See the [Linode API response documentation](https://techdocs.akamai.com/linode-api/reference/get-databases-mysql-instance-credentials) for a list of returned fields


155 changes: 155 additions & 0 deletions docs/modules/object_storage_endpoint_list.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,155 @@
# object_storage_endpoint_list

List and filter on Object Storage Endpoints.

- [Minimum Required Fields](#minimum-required-fields)
- [Examples](#examples)
- [Parameters](#parameters)
- [Return Values](#return-values)

## Minimum Required Fields
| Field | Type | Required | Description |
|-------------|-------|--------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `api_token` | `str` | **Required** | The Linode account personal access token. It is necessary to run the module. <br/>It can be exposed by the environment variable `LINODE_API_TOKEN` instead. <br/>See details in [Usage](https://github.com/linode/ansible_linode?tab=readme-ov-file#usage). |

## Examples

```yaml
- name: List all available Object Storage Endpoints
linode.cloud.object_storage_endpoint_list: {}
```
## Parameters
| Field | Type | Required | Description |
|-----------|------|----------|------------------------------------------------------------------------------|
| `order` | <center>`str`</center> | <center>Optional</center> | The order to list Object Storage Endpoints in. **(Choices: `desc`, `asc`; Default: `asc`)** |
| `order_by` | <center>`str`</center> | <center>Optional</center> | The attribute to order Object Storage Endpoints by. |
| [`filters` (sub-options)](#filters) | <center>`list`</center> | <center>Optional</center> | A list of filters to apply to the resulting Object Storage Endpoints. |
| `count` | <center>`int`</center> | <center>Optional</center> | The number of Object Storage Endpoints to return. If undefined, all results will be returned. |

### filters

| Field | Type | Required | Description |
|-----------|------|----------|------------------------------------------------------------------------------|
| `name` | <center>`str`</center> | <center>**Required**</center> | The name of the field to filter on. Valid filterable fields can be found [here](https://techdocs.akamai.com/linode-api/reference/get-object-storage-endpoints). |
| `values` | <center>`list`</center> | <center>**Required**</center> | A list of values to allow for this field. Fields will pass this filter if at least one of these values matches. |

## Return Values

- `endpoints` - The returned Object Storage Endpoints.

- Sample Response:
```json
[
{
"endpoint_type": "E0",
"region": "us-southeast",
"s3_endpoint": "us-southeast-1.linodeobjects.com"
},
{
"endpoint_type": "E0",
"region": "us-east",
"s3_endpoint": "us-east-1.linodeobjects.com"
},
{
"endpoint_type": "E1",
"region": "us-iad",
"s3_endpoint": "us-iad-1.linodeobjects.com"
},
{
"endpoint_type": "E1",
"region": "us-mia",
"s3_endpoint": "us-mia-1.linodeobjects.com"
},
{
"endpoint_type": "E1",
"region": "fr-par",
"s3_endpoint": "fr-par-1.linodeobjects.com"
},
{
"endpoint_type": "E3",
"region": "gb-lon",
"s3_endpoint": "gb-lon-1.linodeobjects.com"
},
{
"endpoint_type": "E2",
"region": "sg-sin-2",
"s3_endpoint": "sg-sin-1.linodeobjects.com"
},
{
"endpoint_type": "E1",
"region": "us-ord",
"s3_endpoint": "us-ord-1.linodeobjects.com"
},
{
"endpoint_type": "E1",
"region": "us-sea",
"s3_endpoint": "us-sea-1.linodeobjects.com"
},
{
"endpoint_type": "E2",
"region": "au-mel",
"s3_endpoint": "au-mel-1.linodeobjects.com"
},
{
"endpoint_type": "E1",
"region": "id-cgk",
"s3_endpoint": "id-cgk-1.linodeobjects.com"
},
{
"endpoint_type": "E1",
"region": "in-maa",
"s3_endpoint": "in-maa-1.linodeobjects.com"
},
{
"endpoint_type": "E1",
"region": "se-sto",
"s3_endpoint": "se-sto-1.linodeobjects.com"
},
{
"endpoint_type": "E1",
"region": "it-mil",
"s3_endpoint": "it-mil-1.linodeobjects.com"
},
{
"endpoint_type": "E1",
"region": "jp-osa",
"s3_endpoint": "jp-osa-1.linodeobjects.com"
},
{
"endpoint_type": "E1",
"region": "es-mad",
"s3_endpoint": "es-mad-1.linodeobjects.com"
},
{
"endpoint_type": "E1",
"region": "us-lax",
"s3_endpoint": "us-lax-1.linodeobjects.com"
},
{
"endpoint_type": "E1",
"region": "nl-ams",
"s3_endpoint": "nl-ams-1.linodeobjects.com"
},
{
"endpoint_type": "E0",
"region": "ap-south",
"s3_endpoint": "ap-south-1.linodeobjects.com"
},
{
"endpoint_type": "E1",
"region": "br-gru",
"s3_endpoint": "br-gru-1.linodeobjects.com"
},
{
"endpoint_type": "E0",
"region": "eu-central",
"s3_endpoint": "eu-central-1.linodeobjects.com"
}
]
```
- See the [Linode API response documentation](https://techdocs.akamai.com/linode-api/reference/get-object-storage-endpoints) for a list of returned fields


Loading

0 comments on commit d5a168a

Please sign in to comment.