Skip to content

Commit 5278529

Browse files
feat: cloudrunv2 jobs and services support passing flags to gcsfuse in beta (#12226) (#8613)
[upstream:536f2e3e9ef8e2cf720862aecde1fb6fc1d570c1] Signed-off-by: Modular Magician <[email protected]>
1 parent 07ebc5c commit 5278529

7 files changed

+69
-0
lines changed

.changelog/12226.txt

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
```release-note:enhancement
2+
cloudrunv2: added `gcs.mount_options` to `google_cloud_run_v2_service` and `google_cloud_run_v2_job` (beta)
3+
```

google-beta/services/cloudrunv2/resource_cloud_run_v2_job.go

+26
Original file line numberDiff line numberDiff line change
@@ -285,6 +285,15 @@ A duration in seconds with up to nine fractional digits, ending with 's'. Exampl
285285
Required: true,
286286
Description: `Name of the cloud storage bucket to back the volume. The resource service account must have permission to access the bucket.`,
287287
},
288+
"mount_options": {
289+
Type: schema.TypeList,
290+
Optional: true,
291+
Description: `A list of flags to pass to the gcsfuse command for configuring this volume.
292+
Flags should be passed without leading dashes.`,
293+
Elem: &schema.Schema{
294+
Type: schema.TypeString,
295+
},
296+
},
288297
"read_only": {
289298
Type: schema.TypeBool,
290299
Optional: true,
@@ -1845,6 +1854,8 @@ func flattenCloudRunV2JobTemplateTemplateVolumesGcs(v interface{}, d *schema.Res
18451854
flattenCloudRunV2JobTemplateTemplateVolumesGcsBucket(original["bucket"], d, config)
18461855
transformed["read_only"] =
18471856
flattenCloudRunV2JobTemplateTemplateVolumesGcsReadOnly(original["readOnly"], d, config)
1857+
transformed["mount_options"] =
1858+
flattenCloudRunV2JobTemplateTemplateVolumesGcsMountOptions(original["mountOptions"], d, config)
18481859
return []interface{}{transformed}
18491860
}
18501861
func flattenCloudRunV2JobTemplateTemplateVolumesGcsBucket(v interface{}, d *schema.ResourceData, config *transport_tpg.Config) interface{} {
@@ -1855,6 +1866,10 @@ func flattenCloudRunV2JobTemplateTemplateVolumesGcsReadOnly(v interface{}, d *sc
18551866
return v
18561867
}
18571868

1869+
func flattenCloudRunV2JobTemplateTemplateVolumesGcsMountOptions(v interface{}, d *schema.ResourceData, config *transport_tpg.Config) interface{} {
1870+
return v
1871+
}
1872+
18581873
func flattenCloudRunV2JobTemplateTemplateVolumesNfs(v interface{}, d *schema.ResourceData, config *transport_tpg.Config) interface{} {
18591874
if v == nil {
18601875
return nil
@@ -2911,6 +2926,13 @@ func expandCloudRunV2JobTemplateTemplateVolumesGcs(v interface{}, d tpgresource.
29112926
transformed["readOnly"] = transformedReadOnly
29122927
}
29132928

2929+
transformedMountOptions, err := expandCloudRunV2JobTemplateTemplateVolumesGcsMountOptions(original["mount_options"], d, config)
2930+
if err != nil {
2931+
return nil, err
2932+
} else if val := reflect.ValueOf(transformedMountOptions); val.IsValid() && !tpgresource.IsEmptyValue(val) {
2933+
transformed["mountOptions"] = transformedMountOptions
2934+
}
2935+
29142936
return transformed, nil
29152937
}
29162938

@@ -2922,6 +2944,10 @@ func expandCloudRunV2JobTemplateTemplateVolumesGcsReadOnly(v interface{}, d tpgr
29222944
return v, nil
29232945
}
29242946

2947+
func expandCloudRunV2JobTemplateTemplateVolumesGcsMountOptions(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
2948+
return v, nil
2949+
}
2950+
29252951
func expandCloudRunV2JobTemplateTemplateVolumesNfs(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
29262952
l := v.([]interface{})
29272953
if len(l) == 0 || l[0] == nil {

google-beta/services/cloudrunv2/resource_cloud_run_v2_job_test.go

+2
Original file line numberDiff line numberDiff line change
@@ -389,6 +389,8 @@ func testAccCloudRunV2Job_cloudrunv2JobWithGcsVolume(context map[string]interfac
389389
gcs {
390390
bucket = "gcp-public-data-landsat"
391391
read_only = true
392+
mount_options = ["log-severity=info"]
393+
392394
}
393395
}
394396
}

google-beta/services/cloudrunv2/resource_cloud_run_v2_service.go

+26
Original file line numberDiff line numberDiff line change
@@ -619,6 +619,15 @@ A duration in seconds with up to nine fractional digits, ending with 's'. Exampl
619619
Required: true,
620620
Description: `GCS Bucket name`,
621621
},
622+
"mount_options": {
623+
Type: schema.TypeList,
624+
Optional: true,
625+
Description: `A list of flags to pass to the gcsfuse command for configuring this volume.
626+
Flags should be passed without leading dashes.`,
627+
Elem: &schema.Schema{
628+
Type: schema.TypeString,
629+
},
630+
},
622631
"read_only": {
623632
Type: schema.TypeBool,
624633
Optional: true,
@@ -2871,6 +2880,8 @@ func flattenCloudRunV2ServiceTemplateVolumesGcs(v interface{}, d *schema.Resourc
28712880
flattenCloudRunV2ServiceTemplateVolumesGcsBucket(original["bucket"], d, config)
28722881
transformed["read_only"] =
28732882
flattenCloudRunV2ServiceTemplateVolumesGcsReadOnly(original["readOnly"], d, config)
2883+
transformed["mount_options"] =
2884+
flattenCloudRunV2ServiceTemplateVolumesGcsMountOptions(original["mountOptions"], d, config)
28742885
return []interface{}{transformed}
28752886
}
28762887
func flattenCloudRunV2ServiceTemplateVolumesGcsBucket(v interface{}, d *schema.ResourceData, config *transport_tpg.Config) interface{} {
@@ -2881,6 +2892,10 @@ func flattenCloudRunV2ServiceTemplateVolumesGcsReadOnly(v interface{}, d *schema
28812892
return v
28822893
}
28832894

2895+
func flattenCloudRunV2ServiceTemplateVolumesGcsMountOptions(v interface{}, d *schema.ResourceData, config *transport_tpg.Config) interface{} {
2896+
return v
2897+
}
2898+
28842899
func flattenCloudRunV2ServiceTemplateVolumesNfs(v interface{}, d *schema.ResourceData, config *transport_tpg.Config) interface{} {
28852900
if v == nil {
28862901
return nil
@@ -4642,6 +4657,13 @@ func expandCloudRunV2ServiceTemplateVolumesGcs(v interface{}, d tpgresource.Terr
46424657
transformed["readOnly"] = transformedReadOnly
46434658
}
46444659

4660+
transformedMountOptions, err := expandCloudRunV2ServiceTemplateVolumesGcsMountOptions(original["mount_options"], d, config)
4661+
if err != nil {
4662+
return nil, err
4663+
} else if val := reflect.ValueOf(transformedMountOptions); val.IsValid() && !tpgresource.IsEmptyValue(val) {
4664+
transformed["mountOptions"] = transformedMountOptions
4665+
}
4666+
46454667
return transformed, nil
46464668
}
46474669

@@ -4653,6 +4675,10 @@ func expandCloudRunV2ServiceTemplateVolumesGcsReadOnly(v interface{}, d tpgresou
46534675
return v, nil
46544676
}
46554677

4678+
func expandCloudRunV2ServiceTemplateVolumesGcsMountOptions(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
4679+
return v, nil
4680+
}
4681+
46564682
func expandCloudRunV2ServiceTemplateVolumesNfs(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
46574683
l := v.([]interface{})
46584684
if len(l) == 0 || l[0] == nil {

google-beta/services/cloudrunv2/resource_cloud_run_v2_service_test.go

+2
Original file line numberDiff line numberDiff line change
@@ -272,6 +272,8 @@ resource "google_cloud_run_v2_service" "default" {
272272
gcs {
273273
bucket = "gcp-public-data-landsat"
274274
read_only = true
275+
mount_options = ["log-severity=info"]
276+
275277
}
276278
}
277279
containers {

website/docs/r/cloud_run_v2_job.html.markdown

+5
Original file line numberDiff line numberDiff line change
@@ -654,6 +654,11 @@ The following arguments are supported:
654654
(Optional)
655655
If true, mount this volume as read-only in all mounts. If false, mount this volume as read-write.
656656

657+
* `mount_options` -
658+
(Optional, [Beta](https://terraform.io/docs/providers/google/guides/provider_versions.html))
659+
A list of flags to pass to the gcsfuse command for configuring this volume.
660+
Flags should be passed without leading dashes.
661+
657662
<a name="nested_nfs"></a>The `nfs` block supports:
658663

659664
* `server` -

website/docs/r/cloud_run_v2_service.html.markdown

+5
Original file line numberDiff line numberDiff line change
@@ -1115,6 +1115,11 @@ The following arguments are supported:
11151115
(Optional)
11161116
If true, mount the GCS bucket as read-only
11171117

1118+
* `mount_options` -
1119+
(Optional, [Beta](https://terraform.io/docs/providers/google/guides/provider_versions.html))
1120+
A list of flags to pass to the gcsfuse command for configuring this volume.
1121+
Flags should be passed without leading dashes.
1122+
11181123
<a name="nested_nfs"></a>The `nfs` block supports:
11191124

11201125
* `server` -

0 commit comments

Comments
 (0)