Skip to content

Commit

Permalink
feat: add flink jar beta resources
Browse files Browse the repository at this point in the history
  • Loading branch information
byashimov committed Jan 22, 2025
1 parent b858875 commit 5c77706
Show file tree
Hide file tree
Showing 18 changed files with 1,424 additions and 45 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ nav_order: 1
Enable remote-backed storage.
- Add `aiven_service_integration_endpoint` resource and datasource field `external_azure_blob_storage_user_config`:
ExternalAzureBlobStorage user configurable settings
- Add `aiven_flink_jar_application`, `aiven_flink_jar_application_version` and `aiven_flink_jar_application_deployment` BETA resources

## [4.32.0] - 2025-01-14

Expand Down
127 changes: 127 additions & 0 deletions docs/resources/flink_jar_application.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@
---
# generated by https://github.com/hashicorp/terraform-plugin-docs
page_title: "aiven_flink_jar_application Resource - terraform-provider-aiven"
subcategory: ""
description: |-
Creates and manages an Aiven for Apache Flink® jar application https://aiven.io/docs/products/flink/howto/create-jar-application.
This resource is in the beta stage and may change without notice. Set
the PROVIDER_AIVEN_ENABLE_BETA environment variable to use the resource.
---

# aiven_flink_jar_application (Resource)

Creates and manages an [Aiven for Apache Flink® jar application](https://aiven.io/docs/products/flink/howto/create-jar-application).

**This resource is in the beta stage and may change without notice.** Set
the `PROVIDER_AIVEN_ENABLE_BETA` environment variable to use the resource.

## Example Usage

```terraform
resource "aiven_flink" "example" {
project = data.aiven_project.example.project
service_name = "example-flink-service"
cloud_name = "google-europe-west1"
plan = "business-4"
maintenance_window_dow = "monday"
maintenance_window_time = "04:00:00"
flink_user_config {
// Enables upload and deployment of Custom JARs
custom_code = true
}
}
resource "aiven_flink_jar_application" "example" {
project = aiven_flink.example.project
service_name = aiven_flink.example.service_name
name = "example-app-jar"
}
```

<!-- schema generated by tfplugindocs -->
## Schema

### Required

- `name` (String) Application name. Maximum length: `128`.
- `project` (String) Project name. Changing this property forces recreation of the resource.
- `service_name` (String) Service name. Changing this property forces recreation of the resource.

### Optional

- `timeouts` (Block, Optional) (see [below for nested schema](#nestedblock--timeouts))

### Read-Only

- `application_id` (String) Application ID.
- `application_versions` (List of Object) JarApplicationVersions. (see [below for nested schema](#nestedatt--application_versions))
- `created_at` (String) The creation timestamp of this entity in ISO 8601 format, always in UTC.
- `created_by` (String) The creator of this entity.
- `current_deployment` (List of Object) Flink JarApplicationDeployment. (see [below for nested schema](#nestedatt--current_deployment))
- `id` (String) The ID of this resource.
- `updated_at` (String) The update timestamp of this entity in ISO 8601 format, always in UTC.
- `updated_by` (String) The latest updater of this entity.

<a id="nestedblock--timeouts"></a>
### Nested Schema for `timeouts`

Optional:

- `create` (String)
- `default` (String)
- `delete` (String)
- `read` (String)
- `update` (String)


<a id="nestedatt--application_versions"></a>
### Nested Schema for `application_versions`

Read-Only:

- `created_at` (String)
- `created_by` (String)
- `file_info` (List of Object) (see [below for nested schema](#nestedobjatt--application_versions--file_info))
- `id` (String)
- `version` (Number)

<a id="nestedobjatt--application_versions--file_info"></a>
### Nested Schema for `application_versions.file_info`

Read-Only:

- `file_sha256` (String)
- `file_size` (Number)
- `file_status` (String)
- `url` (String)
- `verify_error_code` (Number)
- `verify_error_message` (String)



<a id="nestedatt--current_deployment"></a>
### Nested Schema for `current_deployment`

Read-Only:

- `created_at` (String)
- `created_by` (String)
- `entry_class` (String)
- `error_msg` (String)
- `id` (String)
- `job_id` (String)
- `last_savepoint` (String)
- `parallelism` (Number)
- `program_args` (Set of String)
- `starting_savepoint` (String)
- `status` (String)
- `version_id` (String)

## Import

Import is supported using the following syntax:

```shell
terraform import aiven_flink_jar_application.example PROJECT/SERVICE_NAME/APPLICATION_ID
```
103 changes: 103 additions & 0 deletions docs/resources/flink_jar_application_deployment.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
---
# generated by https://github.com/hashicorp/terraform-plugin-docs
page_title: "aiven_flink_jar_application_deployment Resource - terraform-provider-aiven"
subcategory: ""
description: |-
Creates and manages the deployment of an Aiven for Apache Flink® application.
This resource is in the beta stage and may change without notice. Set
the PROVIDER_AIVEN_ENABLE_BETA environment variable to use the resource.
---

# aiven_flink_jar_application_deployment (Resource)

Creates and manages the deployment of an Aiven for Apache Flink® application.

**This resource is in the beta stage and may change without notice.** Set
the `PROVIDER_AIVEN_ENABLE_BETA` environment variable to use the resource.

## Example Usage

```terraform
resource "aiven_flink" "example" {
project = data.aiven_project.example.project
service_name = "example-flink-service"
cloud_name = "google-europe-west1"
plan = "business-4"
maintenance_window_dow = "monday"
maintenance_window_time = "04:00:00"
flink_user_config {
// Enables upload and deployment of Custom JARs
custom_code = true
}
}
resource "aiven_flink_jar_application" "example" {
project = aiven_flink.example.project
service_name = aiven_flink.example.service_name
name = "example-app-jar"
}
resource "aiven_flink_jar_application_version" "example" {
project = aiven_flink.example.project
service_name = aiven_flink.example.service_name
application_id = aiven_flink_jar_application.example.application_id
source = "./example.jar"
}
resource "aiven_flink_jar_application_deployment" "example" {
project = aiven_flink.example.project
service_name = aiven_flink.example.service_name
application_id = aiven_flink_jar_application.example.application_id
version_id = aiven_flink_jar_application_version.example.application_version_id
}
```

<!-- schema generated by tfplugindocs -->
## Schema

### Required

- `application_id` (String) Application Id. Changing this property forces recreation of the resource.
- `project` (String) Project name. Changing this property forces recreation of the resource.
- `service_name` (String) Service name. Changing this property forces recreation of the resource.
- `version_id` (String) ApplicationVersion ID. Maximum length: `36`. Changing this property forces recreation of the resource.

### Optional

- `entry_class` (String) The fully qualified name of the entry class to pass during Flink job submission through the entryClass parameter. Maximum length: `128`.
- `parallelism` (Number) Reading of Flink parallel execution documentation is recommended before setting this value to other than 1. Please do not set this value higher than (total number of nodes x number_of_task_slots), or every new job created will fail.
- `program_args` (Set of String) Arguments to pass during Flink job submission through the programArgsList parameter.
- `restart_enabled` (Boolean) Specifies whether a Flink Job is restarted in case it fails. Changing this property forces recreation of the resource.
- `starting_savepoint` (String) Job savepoint. Maximum length: `2048`.
- `timeouts` (Block, Optional) (see [below for nested schema](#nestedblock--timeouts))

### Read-Only

- `created_at` (String) The creation timestamp of this entity in ISO 8601 format, always in UTC.
- `created_by` (String) The creator of this entity.
- `deployment_id` (String) Deployment ID.
- `error_msg` (String) Error message describing what caused deployment to fail.
- `id` (String) The ID of this resource.
- `job_id` (String) Job ID.
- `last_savepoint` (String) Job savepoint.
- `status` (String) Deployment status. The possible values are `CANCELED`, `CANCELLING`, `CANCELLING_REQUESTED`, `CREATED`, `DELETE_REQUESTED`, `DELETING`, `FAILED`, `FAILING`, `FINISHED`, `INITIALIZING`, `RECONCILING`, `RESTARTING`, `RUNNING`, `SAVING`, `SAVING_AND_STOP`, `SAVING_AND_STOP_REQUESTED` and `SUSPENDED`.

<a id="nestedblock--timeouts"></a>
### Nested Schema for `timeouts`

Optional:

- `create` (String)
- `default` (String)
- `delete` (String)
- `read` (String)
- `update` (String)

## Import

Import is supported using the following syntax:

```shell
terraform import aiven_flink_jar_application_deployment.example PROJECT/SERVICE_NAME/APPLICATION_ID/DEPLOYMENT_ID
```
103 changes: 103 additions & 0 deletions docs/resources/flink_jar_application_version.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
---
# generated by https://github.com/hashicorp/terraform-plugin-docs
page_title: "aiven_flink_jar_application_version Resource - terraform-provider-aiven"
subcategory: ""
description: |-
Creates and manages an Aiven for Apache Flink® jar application version.
This resource is in the beta stage and may change without notice. Set
the PROVIDER_AIVEN_ENABLE_BETA environment variable to use the resource.
---

# aiven_flink_jar_application_version (Resource)

Creates and manages an Aiven for Apache Flink® jar application version.

**This resource is in the beta stage and may change without notice.** Set
the `PROVIDER_AIVEN_ENABLE_BETA` environment variable to use the resource.

## Example Usage

```terraform
resource "aiven_flink" "example" {
project = data.aiven_project.example.project
service_name = "example-flink-service"
cloud_name = "google-europe-west1"
plan = "business-4"
maintenance_window_dow = "monday"
maintenance_window_time = "04:00:00"
flink_user_config {
// Enables upload and deployment of Custom JARs
custom_code = true
}
}
resource "aiven_flink_jar_application" "example" {
project = aiven_flink.example.project
service_name = aiven_flink.example.service_name
name = "example-app-jar"
}
resource "aiven_flink_jar_application_version" "example" {
project = aiven_flink.example.project
service_name = aiven_flink.example.service_name
application_id = aiven_flink_jar_application.example.application_id
source = "./example.jar"
}
```

<!-- schema generated by tfplugindocs -->
## Schema

### Required

- `application_id` (String) Application Id. Changing this property forces recreation of the resource.
- `project` (String) Project name. Changing this property forces recreation of the resource.
- `service_name` (String) Service name. Changing this property forces recreation of the resource.
- `source` (String) The path to the jar file to upload.

### Optional

- `timeouts` (Block, Optional) (see [below for nested schema](#nestedblock--timeouts))

### Read-Only

- `application_version_id` (String) ApplicationVersion ID.
- `created_at` (String) The creation timestamp of this entity in ISO 8601 format, always in UTC.
- `created_by` (String) The creator of this entity.
- `file_info` (List of Object) Flink JarApplicationVersion FileInfo. (see [below for nested schema](#nestedatt--file_info))
- `id` (String) The ID of this resource.
- `source_checksum` (String) The sha256 checksum of the jar file to upload.
- `version` (Number) Version number.

<a id="nestedblock--timeouts"></a>
### Nested Schema for `timeouts`

Optional:

- `create` (String)
- `default` (String)
- `delete` (String)
- `read` (String)
- `update` (String)


<a id="nestedatt--file_info"></a>
### Nested Schema for `file_info`

Read-Only:

- `file_sha256` (String)
- `file_size` (Number)
- `file_status` (String)
- `url` (String)
- `verify_error_code` (Number)
- `verify_error_message` (String)

## Import

Import is supported using the following syntax:

```shell
terraform import aiven_flink_jar_application_version.example PROJECT/SERVICE_NAME/APPLICATION_ID/APPLICATION_VERSION_ID
```
1 change: 1 addition & 0 deletions examples/resources/aiven_flink_jar_application/import.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
terraform import aiven_flink_jar_application.example PROJECT/SERVICE_NAME/APPLICATION_ID
19 changes: 19 additions & 0 deletions examples/resources/aiven_flink_jar_application/resource.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
resource "aiven_flink" "example" {
project = data.aiven_project.example.project
service_name = "example-flink-service"
cloud_name = "google-europe-west1"
plan = "business-4"
maintenance_window_dow = "monday"
maintenance_window_time = "04:00:00"

flink_user_config {
// Enables upload and deployment of Custom JARs
custom_code = true
}
}

resource "aiven_flink_jar_application" "example" {
project = aiven_flink.example.project
service_name = aiven_flink.example.service_name
name = "example-app-jar"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
terraform import aiven_flink_jar_application_deployment.example PROJECT/SERVICE_NAME/APPLICATION_ID/DEPLOYMENT_ID
Loading

0 comments on commit 5c77706

Please sign in to comment.