Skip to content

Commit 849adc5

Browse files
Update dataproc Batch and dataproc SessionTemplate resource to support authentication config. (#14534) (#23644)
[upstream:a706c4f9f294fcd7d020a6754f9dbbd862a7b2f6] Signed-off-by: Modular Magician <[email protected]>
1 parent 3a35e02 commit 849adc5

9 files changed

+181
-0
lines changed

.changelog/14534.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
```release-note:enhancement
2+
dataproc: added `authentication_config` field to `google_dataproc_batch` and `google_dataproc_session_template` resource
3+
```

google/services/dataproc/resource_dataproc_batch.go

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,24 @@ This value must be 4-63 characters. Valid characters are /[a-z][0-9]-/.`,
9797
MaxItems: 1,
9898
Elem: &schema.Resource{
9999
Schema: map[string]*schema.Schema{
100+
"authentication_config": {
101+
Type: schema.TypeList,
102+
Optional: true,
103+
ForceNew: true,
104+
Description: `Authentication configuration for a workload is used to set the default identity for the workload execution.`,
105+
MaxItems: 1,
106+
Elem: &schema.Resource{
107+
Schema: map[string]*schema.Schema{
108+
"user_workload_authentication_type": {
109+
Type: schema.TypeString,
110+
Optional: true,
111+
ForceNew: true,
112+
ValidateFunc: verify.ValidateEnum([]string{"SERVICE_ACCOUNT", "END_USER_CREDENTIALS", ""}),
113+
Description: `Authentication type for the user workload running in containers. Possible values: ["SERVICE_ACCOUNT", "END_USER_CREDENTIALS"]`,
114+
},
115+
},
116+
},
117+
},
100118
"kms_key": {
101119
Type: schema.TypeString,
102120
Optional: true,
@@ -1244,6 +1262,8 @@ func flattenDataprocBatchEnvironmentConfigExecutionConfig(v interface{}, d *sche
12441262
flattenDataprocBatchEnvironmentConfigExecutionConfigNetworkUri(original["networkUri"], d, config)
12451263
transformed["subnetwork_uri"] =
12461264
flattenDataprocBatchEnvironmentConfigExecutionConfigSubnetworkUri(original["subnetworkUri"], d, config)
1265+
transformed["authentication_config"] =
1266+
flattenDataprocBatchEnvironmentConfigExecutionConfigAuthenticationConfig(original["authenticationConfig"], d, config)
12471267
return []interface{}{transformed}
12481268
}
12491269
func flattenDataprocBatchEnvironmentConfigExecutionConfigServiceAccount(v interface{}, d *schema.ResourceData, config *transport_tpg.Config) interface{} {
@@ -1274,6 +1294,23 @@ func flattenDataprocBatchEnvironmentConfigExecutionConfigSubnetworkUri(v interfa
12741294
return v
12751295
}
12761296

1297+
func flattenDataprocBatchEnvironmentConfigExecutionConfigAuthenticationConfig(v interface{}, d *schema.ResourceData, config *transport_tpg.Config) interface{} {
1298+
if v == nil {
1299+
return nil
1300+
}
1301+
original := v.(map[string]interface{})
1302+
if len(original) == 0 {
1303+
return nil
1304+
}
1305+
transformed := make(map[string]interface{})
1306+
transformed["user_workload_authentication_type"] =
1307+
flattenDataprocBatchEnvironmentConfigExecutionConfigAuthenticationConfigUserWorkloadAuthenticationType(original["userWorkloadAuthenticationType"], d, config)
1308+
return []interface{}{transformed}
1309+
}
1310+
func flattenDataprocBatchEnvironmentConfigExecutionConfigAuthenticationConfigUserWorkloadAuthenticationType(v interface{}, d *schema.ResourceData, config *transport_tpg.Config) interface{} {
1311+
return v
1312+
}
1313+
12771314
func flattenDataprocBatchEnvironmentConfigPeripheralsConfig(v interface{}, d *schema.ResourceData, config *transport_tpg.Config) interface{} {
12781315
if v == nil {
12791316
return nil
@@ -1715,6 +1752,13 @@ func expandDataprocBatchEnvironmentConfigExecutionConfig(v interface{}, d tpgres
17151752
transformed["subnetworkUri"] = transformedSubnetworkUri
17161753
}
17171754

1755+
transformedAuthenticationConfig, err := expandDataprocBatchEnvironmentConfigExecutionConfigAuthenticationConfig(original["authentication_config"], d, config)
1756+
if err != nil {
1757+
return nil, err
1758+
} else if val := reflect.ValueOf(transformedAuthenticationConfig); val.IsValid() && !tpgresource.IsEmptyValue(val) {
1759+
transformed["authenticationConfig"] = transformedAuthenticationConfig
1760+
}
1761+
17181762
return transformed, nil
17191763
}
17201764

@@ -1746,6 +1790,29 @@ func expandDataprocBatchEnvironmentConfigExecutionConfigSubnetworkUri(v interfac
17461790
return v, nil
17471791
}
17481792

1793+
func expandDataprocBatchEnvironmentConfigExecutionConfigAuthenticationConfig(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
1794+
l := v.([]interface{})
1795+
if len(l) == 0 || l[0] == nil {
1796+
return nil, nil
1797+
}
1798+
raw := l[0]
1799+
original := raw.(map[string]interface{})
1800+
transformed := make(map[string]interface{})
1801+
1802+
transformedUserWorkloadAuthenticationType, err := expandDataprocBatchEnvironmentConfigExecutionConfigAuthenticationConfigUserWorkloadAuthenticationType(original["user_workload_authentication_type"], d, config)
1803+
if err != nil {
1804+
return nil, err
1805+
} else if val := reflect.ValueOf(transformedUserWorkloadAuthenticationType); val.IsValid() && !tpgresource.IsEmptyValue(val) {
1806+
transformed["userWorkloadAuthenticationType"] = transformedUserWorkloadAuthenticationType
1807+
}
1808+
1809+
return transformed, nil
1810+
}
1811+
1812+
func expandDataprocBatchEnvironmentConfigExecutionConfigAuthenticationConfigUserWorkloadAuthenticationType(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
1813+
return v, nil
1814+
}
1815+
17491816
func expandDataprocBatchEnvironmentConfigPeripheralsConfig(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
17501817
l := v.([]interface{})
17511818
if len(l) == 0 {

google/services/dataproc/resource_dataproc_batch_generated_meta.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ fields:
1313
- field: 'creator'
1414
- field: 'effective_labels'
1515
provider_only: true
16+
- field: 'environment_config.execution_config.authentication_config.user_workload_authentication_type'
1617
- field: 'environment_config.execution_config.kms_key'
1718
- field: 'environment_config.execution_config.network_tags'
1819
- field: 'environment_config.execution_config.network_uri'

google/services/dataproc/resource_dataproc_batch_generated_test.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,9 @@ resource "google_dataproc_batch" "example_batch_spark" {
142142
network_uri = "default"
143143
service_account = "${data.google_project.project.number}[email protected]"
144144
staging_bucket = google_storage_bucket.bucket.name
145+
authentication_config {
146+
user_workload_authentication_type = "SERVICE_ACCOUNT"
147+
}
145148
}
146149
peripherals_config {
147150
metastore_service = google_dataproc_metastore_service.ms.name

google/services/dataproc/resource_dataproc_session_template.go

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,22 @@ projects/{project}/locations/{location}/sessionTemplates/{template_id}`,
7878
MaxItems: 1,
7979
Elem: &schema.Resource{
8080
Schema: map[string]*schema.Schema{
81+
"authentication_config": {
82+
Type: schema.TypeList,
83+
Optional: true,
84+
Description: `Authentication configuration for a workload is used to set the default identity for the workload execution.`,
85+
MaxItems: 1,
86+
Elem: &schema.Resource{
87+
Schema: map[string]*schema.Schema{
88+
"user_workload_authentication_type": {
89+
Type: schema.TypeString,
90+
Optional: true,
91+
ValidateFunc: verify.ValidateEnum([]string{"SERVICE_ACCOUNT", "END_USER_CREDENTIALS", ""}),
92+
Description: `Authentication type for the user workload running in containers. Possible values: ["SERVICE_ACCOUNT", "END_USER_CREDENTIALS"]`,
93+
},
94+
},
95+
},
96+
},
8197
"kms_key": {
8298
Type: schema.TypeString,
8399
Optional: true,
@@ -708,6 +724,8 @@ func flattenDataprocSessionTemplateEnvironmentConfigExecutionConfig(v interface{
708724
flattenDataprocSessionTemplateEnvironmentConfigExecutionConfigStagingBucket(original["stagingBucket"], d, config)
709725
transformed["subnetwork_uri"] =
710726
flattenDataprocSessionTemplateEnvironmentConfigExecutionConfigSubnetworkUri(original["subnetworkUri"], d, config)
727+
transformed["authentication_config"] =
728+
flattenDataprocSessionTemplateEnvironmentConfigExecutionConfigAuthenticationConfig(original["authenticationConfig"], d, config)
711729
return []interface{}{transformed}
712730
}
713731
func flattenDataprocSessionTemplateEnvironmentConfigExecutionConfigServiceAccount(v interface{}, d *schema.ResourceData, config *transport_tpg.Config) interface{} {
@@ -734,6 +752,23 @@ func flattenDataprocSessionTemplateEnvironmentConfigExecutionConfigSubnetworkUri
734752
return v
735753
}
736754

755+
func flattenDataprocSessionTemplateEnvironmentConfigExecutionConfigAuthenticationConfig(v interface{}, d *schema.ResourceData, config *transport_tpg.Config) interface{} {
756+
if v == nil {
757+
return nil
758+
}
759+
original := v.(map[string]interface{})
760+
if len(original) == 0 {
761+
return nil
762+
}
763+
transformed := make(map[string]interface{})
764+
transformed["user_workload_authentication_type"] =
765+
flattenDataprocSessionTemplateEnvironmentConfigExecutionConfigAuthenticationConfigUserWorkloadAuthenticationType(original["userWorkloadAuthenticationType"], d, config)
766+
return []interface{}{transformed}
767+
}
768+
func flattenDataprocSessionTemplateEnvironmentConfigExecutionConfigAuthenticationConfigUserWorkloadAuthenticationType(v interface{}, d *schema.ResourceData, config *transport_tpg.Config) interface{} {
769+
return v
770+
}
771+
737772
func flattenDataprocSessionTemplateEnvironmentConfigPeripheralsConfig(v interface{}, d *schema.ResourceData, config *transport_tpg.Config) interface{} {
738773
if v == nil {
739774
return nil
@@ -968,6 +1003,13 @@ func expandDataprocSessionTemplateEnvironmentConfigExecutionConfig(v interface{}
9681003
transformed["subnetworkUri"] = transformedSubnetworkUri
9691004
}
9701005

1006+
transformedAuthenticationConfig, err := expandDataprocSessionTemplateEnvironmentConfigExecutionConfigAuthenticationConfig(original["authentication_config"], d, config)
1007+
if err != nil {
1008+
return nil, err
1009+
} else if val := reflect.ValueOf(transformedAuthenticationConfig); val.IsValid() && !tpgresource.IsEmptyValue(val) {
1010+
transformed["authenticationConfig"] = transformedAuthenticationConfig
1011+
}
1012+
9711013
return transformed, nil
9721014
}
9731015

@@ -995,6 +1037,29 @@ func expandDataprocSessionTemplateEnvironmentConfigExecutionConfigSubnetworkUri(
9951037
return v, nil
9961038
}
9971039

1040+
func expandDataprocSessionTemplateEnvironmentConfigExecutionConfigAuthenticationConfig(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
1041+
l := v.([]interface{})
1042+
if len(l) == 0 || l[0] == nil {
1043+
return nil, nil
1044+
}
1045+
raw := l[0]
1046+
original := raw.(map[string]interface{})
1047+
transformed := make(map[string]interface{})
1048+
1049+
transformedUserWorkloadAuthenticationType, err := expandDataprocSessionTemplateEnvironmentConfigExecutionConfigAuthenticationConfigUserWorkloadAuthenticationType(original["user_workload_authentication_type"], d, config)
1050+
if err != nil {
1051+
return nil, err
1052+
} else if val := reflect.ValueOf(transformedUserWorkloadAuthenticationType); val.IsValid() && !tpgresource.IsEmptyValue(val) {
1053+
transformed["userWorkloadAuthenticationType"] = transformedUserWorkloadAuthenticationType
1054+
}
1055+
1056+
return transformed, nil
1057+
}
1058+
1059+
func expandDataprocSessionTemplateEnvironmentConfigExecutionConfigAuthenticationConfigUserWorkloadAuthenticationType(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
1060+
return v, nil
1061+
}
1062+
9981063
func expandDataprocSessionTemplateEnvironmentConfigPeripheralsConfig(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
9991064
l := v.([]interface{})
10001065
if len(l) == 0 {

google/services/dataproc/resource_dataproc_session_template_generated_meta.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ fields:
1111
- field: 'creator'
1212
- field: 'effective_labels'
1313
provider_only: true
14+
- field: 'environment_config.execution_config.authentication_config.user_workload_authentication_type'
1415
- field: 'environment_config.execution_config.kms_key'
1516
- field: 'environment_config.execution_config.network_tags'
1617
- field: 'environment_config.execution_config.service_account'

google/services/dataproc/resource_dataproc_session_template_generated_test.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,9 @@ resource "google_dataproc_session_template" "example_session_templates_jupyter"
7575
subnetwork_uri = "%{subnetwork_name}"
7676
ttl = "3600s"
7777
network_tags = ["tag1"]
78+
authentication_config {
79+
user_workload_authentication_type = "END_USER_CREDENTIALS"
80+
}
7881
}
7982
}
8083
@@ -142,6 +145,9 @@ resource "google_dataproc_session_template" "dataproc_session_templates_jupyter_
142145
subnetwork_uri = "%{subnetwork_name}"
143146
service_account = "${data.google_project.project.number}[email protected]"
144147
staging_bucket = google_storage_bucket.bucket.name
148+
authentication_config {
149+
user_workload_authentication_type = "SERVICE_ACCOUNT"
150+
}
145151
}
146152
peripherals_config {
147153
metastore_service = google_dataproc_metastore_service.ms.name

website/docs/r/dataproc_batch.html.markdown

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,9 @@ resource "google_dataproc_batch" "example_batch_spark" {
8989
network_uri = "default"
9090
service_account = "${data.google_project.project.number}[email protected]"
9191
staging_bucket = google_storage_bucket.bucket.name
92+
authentication_config {
93+
user_workload_authentication_type = "SERVICE_ACCOUNT"
94+
}
9295
}
9396
peripherals_config {
9497
metastore_service = google_dataproc_metastore_service.ms.name
@@ -437,6 +440,19 @@ The following arguments are supported:
437440
(Optional)
438441
Subnetwork configuration for workload execution.
439442

443+
* `authentication_config` -
444+
(Optional)
445+
Authentication configuration for a workload is used to set the default identity for the workload execution.
446+
Structure is [documented below](#nested_environment_config_execution_config_authentication_config).
447+
448+
449+
<a name="nested_environment_config_execution_config_authentication_config"></a>The `authentication_config` block supports:
450+
451+
* `user_workload_authentication_type` -
452+
(Optional)
453+
Authentication type for the user workload running in containers.
454+
Possible values are: `SERVICE_ACCOUNT`, `END_USER_CREDENTIALS`.
455+
440456
<a name="nested_environment_config_peripherals_config"></a>The `peripherals_config` block supports:
441457

442458
* `metastore_service` -

website/docs/r/dataproc_session_template.html.markdown

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,9 @@ resource "google_dataproc_session_template" "example_session_templates_jupyter"
5050
subnetwork_uri = "default"
5151
ttl = "3600s"
5252
network_tags = ["tag1"]
53+
authentication_config {
54+
user_workload_authentication_type = "END_USER_CREDENTIALS"
55+
}
5356
}
5457
}
5558
@@ -88,6 +91,9 @@ resource "google_dataproc_session_template" "dataproc_session_templates_jupyter_
8891
subnetwork_uri = "default"
8992
service_account = "${data.google_project.project.number}[email protected]"
9093
staging_bucket = google_storage_bucket.bucket.name
94+
authentication_config {
95+
user_workload_authentication_type = "SERVICE_ACCOUNT"
96+
}
9197
}
9298
peripherals_config {
9399
metastore_service = google_dataproc_metastore_service.ms.name
@@ -314,6 +320,19 @@ The following arguments are supported:
314320
(Optional)
315321
Subnetwork configuration for workload execution.
316322

323+
* `authentication_config` -
324+
(Optional)
325+
Authentication configuration for a workload is used to set the default identity for the workload execution.
326+
Structure is [documented below](#nested_environment_config_execution_config_authentication_config).
327+
328+
329+
<a name="nested_environment_config_execution_config_authentication_config"></a>The `authentication_config` block supports:
330+
331+
* `user_workload_authentication_type` -
332+
(Optional)
333+
Authentication type for the user workload running in containers.
334+
Possible values are: `SERVICE_ACCOUNT`, `END_USER_CREDENTIALS`.
335+
317336
<a name="nested_environment_config_peripherals_config"></a>The `peripherals_config` block supports:
318337

319338
* `metastore_service` -

0 commit comments

Comments
 (0)