Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: add flink jar beta resources #1996

Merged
merged 2 commits into from
Jan 22, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
2 changes: 1 addition & 1 deletion docs/resources/flink_application.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,5 +58,5 @@ Optional:
Import is supported using the following syntax:

```shell
terraform import aiven_flink_application.example_app PROJECT/SERVICE_NAME/APPLICATION_NAME
terraform import aiven_flink_application.example_app PROJECT/SERVICE_NAME/APPLICATION_ID
```
2 changes: 1 addition & 1 deletion docs/resources/flink_application_deployment.md
Original file line number Diff line number Diff line change
Expand Up @@ -105,5 +105,5 @@ Optional:
Import is supported using the following syntax:

```shell
terraform import aiven_flink_application_deployment.main PROJECT/SERVICE_NAME/APPLICATION_ID/APPLICATION_VERSION_ID/DEPLOYMENT_ID
terraform import aiven_flink_application_deployment.main PROJECT/SERVICE_NAME/APPLICATION_ID/DEPLOYMENT_ID
```
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
```
2 changes: 1 addition & 1 deletion examples/resources/aiven_flink_application/import.sh
Original file line number Diff line number Diff line change
@@ -1 +1 @@
terraform import aiven_flink_application.example_app PROJECT/SERVICE_NAME/APPLICATION_NAME
terraform import aiven_flink_application.example_app PROJECT/SERVICE_NAME/APPLICATION_ID
Original file line number Diff line number Diff line change
@@ -1 +1 @@
terraform import aiven_flink_application_deployment.main PROJECT/SERVICE_NAME/APPLICATION_ID/APPLICATION_VERSION_ID/DEPLOYMENT_ID
terraform import aiven_flink_application_deployment.main PROJECT/SERVICE_NAME/APPLICATION_ID/DEPLOYMENT_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
Loading