Skip to content

Commit 625e972

Browse files
committed
Merge branch 'main' of github.com:gAmUssA/flink-for-java-workshop
2 parents 3bf7918 + b4795e7 commit 625e972

File tree

13 files changed

+256
-287
lines changed

13 files changed

+256
-287
lines changed

.gitignore

Lines changed: 4 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -19,30 +19,12 @@ replay_pid*
1919
!.vscode/*.code-snippets
2020
.history/
2121
*.vsix
22-
.idea/**/workspace.xml
23-
.idea/**/tasks.xml
24-
.idea/**/usage.statistics.xml
25-
.idea/**/dictionaries
26-
.idea/**/shelf
27-
.idea/**/aws.xml
28-
.idea/**/contentModel.xml
29-
.idea/**/dataSources/
30-
.idea/**/dataSources.ids
31-
.idea/**/dataSources.local.xml
32-
.idea/**/sqlDataSources.xml
33-
.idea/**/dynamic.xml
34-
.idea/**/uiDesigner.xml
35-
.idea/**/dbnavigator.xml
36-
.idea/**/gradle.xml
37-
.idea/**/libraries
22+
.idea/
3823
cmake-build-*/
39-
.idea/**/mongoSettings.xml
4024
*.iws
4125
out/
4226
.idea_modules/
4327
atlassian-ide-plugin.xml
44-
.idea/replstate.xml
45-
.idea/sonarlint/
4628
com_crashlytics_export_strings.xml
4729
crashlytics.properties
4830
crashlytics-build.properties
@@ -62,3 +44,6 @@ gradle-app.setting
6244
cloud.properties
6345
.vscode
6446
bin
47+
48+
49+
gradlew.bat
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
cloud.properties

cloud.properties.example renamed to common/utils/src/main/resources/cloud.properties.example

File renamed without changes.
Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,17 +17,20 @@ export CONFLUENT_CLOUD_API_KEY=<API KEY>
1717
export CONFLUENT_CLOUD_API_SECRET=<API SECRET>
1818
```
1919

20-
2120
== Execute Terraform Manifests
2221

2322
The terraform manifests require the Confluent Cloud organization ID in order to provision infrastructure.
2423
This can be found in the Confluent Cloud console in the "Organization Settings" and exported to an environment variable:
2524

25+
image::org-id.jpg[]
26+
27+
image::org-id-2.jpg[]
28+
2629
```bash
2730
export TF_VAR_org_id=<ORG ID VALUE FROM CONSOLE>
2831
```
2932

30-
This value can also be queried by using the Confluent CLI to query your account, piping the resulting to a `jq` query:
33+
This value can also be queried by using the Confluent CLI to query your account, piping the result to a `jq` query and using that value in a `TF_VAR_`:
3134

3235
```bash
3336
export TF_VAR_org_id=$(confluent organization list -o json | jq -c -r '.[] | select(.is_current)' | jq '.id')
@@ -51,7 +54,7 @@ This `terraform output` command will create a file with those parameters:
5154
```bash
5255
terraform output -json \
5356
| jq -r 'to_entries | map( {key: .key|tostring|split("_")|join("."), value: .value} ) | map("client.\(.key)=\(.value.value)") | .[]' \
54-
| while read -r line ; do echo "$line"; done > ../cloud.properties
57+
| while read -r line ; do echo "$line"; done > ../common/utils/src/main/resources/cloud.properties
5558
```
5659

5760
== Teardown

docs/org-id-2.jpg

51.2 KB
Loading

docs/org-id.jpg

30.6 KB
Loading

flink-table-api/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ dependencies {
3131

3232
// Test dependencies
3333
testImplementation("org.apache.flink:flink-test-utils:$flinkVersion")
34-
testImplementation(platform("org.junit:junit-bom:5.10.0"))
34+
testImplementation(platform("org.junit:junit-bom:5.12.0"))
3535
testImplementation("org.junit.jupiter:junit-jupiter")
3636
testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine")
3737
}

gradlew.bat

Lines changed: 0 additions & 94 deletions
This file was deleted.

terraform/flink-compute.tf

Lines changed: 60 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -1,79 +1,88 @@
1-
resource "confluent_flink_compute_pool" "main_flink_pool" {
2-
display_name = "main_flink_pool"
3-
cloud = var.cloud_provider
4-
region = var.cloud_region
5-
max_cfu = 5
1+
resource "confluent_flink_compute_pool" "compute_pool_1" {
2+
display_name = "-workshop_compute_pool_1"
3+
cloud = var.cloud_provider
4+
region = var.cloud_region
5+
max_cfu = 10
66
environment {
77
id = confluent_environment.cc_env.id
88
}
9-
}
109

11-
data "confluent_flink_region" "main_flink_region" {
12-
cloud = var.cloud_provider
13-
region = var.cloud_region
10+
lifecycle {
11+
prevent_destroy = false
12+
}
1413
}
1514

16-
resource "confluent_service_account" "flink_developer" {
17-
display_name = "${var.cc_env_name}-flink_developer"
18-
description = "Service account for flink developer"
15+
// Service account to perform a task within Confluent Cloud, such as executing a Flink statement
16+
resource "confluent_service_account" "statements-runner" {
17+
display_name = "${var.cc_env_name}-statements-runner"
18+
description = "Service account for running Flink Statements in 'inventory' Kafka cluster"
19+
20+
lifecycle {
21+
prevent_destroy = false
22+
}
1923
}
2024

21-
resource "confluent_role_binding" "fd_flink_developer" {
22-
principal = "User:${confluent_service_account.flink_developer.id}"
23-
role_name = "FlinkDeveloper"
25+
resource "confluent_role_binding" "statements-runner-environment-admin" {
26+
principal = "User:${confluent_service_account.statements-runner.id}"
27+
role_name = "EnvironmentAdmin"
2428
crn_pattern = confluent_environment.cc_env.resource_name
25-
26-
depends_on = [confluent_flink_compute_pool.main_flink_pool]
29+
lifecycle {
30+
prevent_destroy = false
31+
}
2732
}
2833

29-
resource "confluent_role_binding" "fd_kafka_write" {
30-
principal = "User:${confluent_service_account.flink_developer.id}"
31-
role_name = "DeveloperWrite"
32-
crn_pattern = "${confluent_kafka_cluster.kafka_cluster.rbac_crn}/kafka=${confluent_kafka_cluster.kafka_cluster.id}/topic=*"
33-
34-
depends_on = [confluent_kafka_cluster.kafka_cluster]
34+
// https://docs.confluent.io/cloud/current/access-management/access-control/rbac/predefined-rbac-roles.html#flinkadmin
35+
resource "confluent_role_binding" "app-manager-flink-developer" {
36+
principal = "User:${confluent_service_account.app-manager.id}"
37+
role_name = "FlinkAdmin"
38+
crn_pattern = confluent_environment.cc_env.resource_name
39+
lifecycle {
40+
prevent_destroy = false
41+
}
3542
}
3643

37-
resource "confluent_role_binding" "fd_kafka_read" {
38-
principal = "User:${confluent_service_account.flink_developer.id}"
39-
role_name = "DeveloperRead"
40-
crn_pattern = "${confluent_kafka_cluster.kafka_cluster.rbac_crn}/kafka=${confluent_kafka_cluster.kafka_cluster.id}/topic=*"
44+
data "confluent_organization" "main" {}
4145

42-
depends_on = [confluent_kafka_cluster.kafka_cluster]
46+
// https://docs.confluent.io/cloud/current/access-management/access-control/rbac/predefined-rbac-roles.html#assigner
47+
// https://docs.confluent.io/cloud/current/flink/operate-and-deploy/flink-rbac.html#submit-long-running-statements
48+
resource "confluent_role_binding" "app-manager-assigner" {
49+
principal = "User:${confluent_service_account.app-manager.id}"
50+
role_name = "Assigner"
51+
crn_pattern = "${data.confluent_organization.main.resource_name}/service-account=${confluent_service_account.statements-runner.id}"
52+
lifecycle {
53+
prevent_destroy = false
54+
}
4355
}
4456

45-
resource "confluent_role_binding" "fd_schema_registry_write" {
46-
principal = "User:${confluent_service_account.flink_developer.id}"
47-
role_name = "DeveloperWrite"
48-
crn_pattern = "${data.confluent_schema_registry_cluster.advanced.resource_name}/subject=*"
57+
data "confluent_flink_region" "us-east-2" {
58+
cloud = var.cloud_provider
59+
region = var.cloud_region
4960
}
5061

51-
resource "confluent_role_binding" "fd_schema_registry_read" {
52-
principal = "User:${confluent_service_account.flink_developer.id}"
53-
role_name = "DeveloperRead"
54-
crn_pattern = "${data.confluent_schema_registry_cluster.advanced.resource_name}/subject=*"
62+
data "confluent_flink_region" "main" {
63+
cloud = var.cloud_provider
64+
region = var.cloud_region
5565
}
5666

57-
resource "confluent_api_key" "flink_developer_api_key" {
58-
display_name = "flink_developer_api_key"
59-
description = "Flink Developer API Key that is owned by 'flink_developer' service account"
67+
68+
resource "confluent_api_key" "app-manager-flink-api-key" {
69+
display_name = "app-manager-flink-api-key"
70+
description = "Flink API Key that is owned by 'app-manager' service account"
6071
owner {
61-
id = confluent_service_account.flink_developer.id
62-
api_version = confluent_service_account.flink_developer.api_version
63-
kind = confluent_service_account.flink_developer.kind
72+
id = confluent_service_account.app-manager.id
73+
api_version = confluent_service_account.app-manager.api_version
74+
kind = confluent_service_account.app-manager.kind
6475
}
65-
6676
managed_resource {
67-
id = data.confluent_flink_region.main_flink_region.id
68-
api_version = data.confluent_flink_region.main_flink_region.api_version
69-
kind = data.confluent_flink_region.main_flink_region.kind
70-
77+
id = data.confluent_flink_region.us-east-2.id
78+
api_version = confluent_flink_compute_pool.compute_pool_1.api_version
79+
kind = data.confluent_flink_region.us-east-2.kind
7180
environment {
7281
id = confluent_environment.cc_env.id
7382
}
7483
}
84+
lifecycle {
85+
prevent_destroy = false
86+
}
87+
}
7588

76-
depends_on = [
77-
confluent_service_account.flink_developer
78-
]
79-
}

0 commit comments

Comments
 (0)