Skip to content

Commit cf3e848

Browse files
Upgrade dcl to 1.76.0 (#12392) (#8827)
[upstream:f348de8cb80bca060c614b6d7f8d569e493df9f9] Signed-off-by: Modular Magician <[email protected]>
1 parent 7bfbec0 commit cf3e848

15 files changed

+586
-98
lines changed

.changelog/12392.txt

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
```release-note:enhancement
2+
cloudbuild: added `private_service_connect` field to `google_cloudbuild_worker_pool` resource
3+
```
4+
```release-note:enhancement
5+
clouddeploy: added `associated_entities` field to `google_clouddeploy_target` resource
6+
```
7+
```release-note:enhancement
8+
clouddeploy: added `serial_pipeline.strategy.canary.runtime_config.kubernetes.gateway_service_mesh.route_destinations` field to `google_clouddeploy_delivery_pipeline` resource
9+
```
10+
```release-note:enhancement
11+
gkehub: added `configmanagement.config_sync.stop_syncing` field to `google_gke_hub_feature_membership` resource
12+
```
13+
```release-note:deprecation
14+
gkehub: deprecated `configmanagement.config_sync.metrics_gcp_service_account_email` in `google_gke_hub_feature_membership` resource
15+
```

go.mod

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ go 1.23
44

55
require (
66
cloud.google.com/go/bigtable v1.33.0
7-
github.com/GoogleCloudPlatform/declarative-resource-client-library v1.75.0
7+
github.com/GoogleCloudPlatform/declarative-resource-client-library v1.76.0
88
github.com/apparentlymart/go-cidr v1.1.0
99
github.com/davecgh/go-spew v1.1.1
1010
github.com/dnaeon/go-vcr v1.0.1

go.sum

+2-2
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ cloud.google.com/go/monitoring v1.21.2/go.mod h1:hS3pXvaG8KgWTSz+dAdyzPrGUYmi2Q+
2222
dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk=
2323
dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk=
2424
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
25-
github.com/GoogleCloudPlatform/declarative-resource-client-library v1.75.0 h1:7tFkHNjfjm7dYnjqyuzMon+31lPaMTjca3OuamWd0Oo=
26-
github.com/GoogleCloudPlatform/declarative-resource-client-library v1.75.0/go.mod h1:pL2Qt5HT+x6xrTd806oMiM3awW6kNIXB/iiuClz6m6k=
25+
github.com/GoogleCloudPlatform/declarative-resource-client-library v1.76.0 h1:VH/j8GmTsvPds/NkGfo4OYr9C7R8ysikaqq4rcDUT0s=
26+
github.com/GoogleCloudPlatform/declarative-resource-client-library v1.76.0/go.mod h1:pL2Qt5HT+x6xrTd806oMiM3awW6kNIXB/iiuClz6m6k=
2727
github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow=
2828
github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM=
2929
github.com/ProtonMail/go-crypto v1.1.0-alpha.2 h1:bkyFVUP+ROOARdgCiJzNQo2V2kiB97LyUpzH9P6Hrlg=

google-beta/services/assuredworkloads/resource_assured_workloads_workload.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ func ResourceAssuredWorkloadsWorkload() *schema.Resource {
6060
Type: schema.TypeString,
6161
Required: true,
6262
ForceNew: true,
63-
Description: "Required. Immutable. Compliance Regime associated with this workload. Possible values: COMPLIANCE_REGIME_UNSPECIFIED, IL4, CJIS, FEDRAMP_HIGH, FEDRAMP_MODERATE, US_REGIONAL_ACCESS, HIPAA, HITRUST, EU_REGIONS_AND_SUPPORT, CA_REGIONS_AND_SUPPORT, ITAR, AU_REGIONS_AND_US_SUPPORT, ASSURED_WORKLOADS_FOR_PARTNERS, ISR_REGIONS, ISR_REGIONS_AND_SUPPORT, CA_PROTECTED_B, IL5, IL2, JP_REGIONS_AND_SUPPORT, KSA_REGIONS_AND_SUPPORT_WITH_SOVEREIGNTY_CONTROLS, REGIONAL_CONTROLS, HEALTHCARE_AND_LIFE_SCIENCES_CONTROLS, HEALTHCARE_AND_LIFE_SCIENCES_CONTROLS_WITH_US_SUPPORT",
63+
Description: "Required. Immutable. Compliance Regime associated with this workload. Possible values: COMPLIANCE_REGIME_UNSPECIFIED, IL4, CJIS, FEDRAMP_HIGH, FEDRAMP_MODERATE, US_REGIONAL_ACCESS, HIPAA, HITRUST, EU_REGIONS_AND_SUPPORT, CA_REGIONS_AND_SUPPORT, ITAR, AU_REGIONS_AND_US_SUPPORT, ASSURED_WORKLOADS_FOR_PARTNERS, ISR_REGIONS, ISR_REGIONS_AND_SUPPORT, CA_PROTECTED_B, IL5, IL2, JP_REGIONS_AND_SUPPORT, KSA_REGIONS_AND_SUPPORT_WITH_SOVEREIGNTY_CONTROLS, REGIONAL_CONTROLS, HEALTHCARE_AND_LIFE_SCIENCES_CONTROLS, HEALTHCARE_AND_LIFE_SCIENCES_CONTROLS_WITH_US_SUPPORT, IRS_1075",
6464
},
6565

6666
"display_name": {

google-beta/services/cloudbuild/resource_cloudbuild_worker_pool.go

+101-34
Original file line numberDiff line numberDiff line change
@@ -84,12 +84,23 @@ func ResourceCloudbuildWorkerPool() *schema.Resource {
8484
},
8585

8686
"network_config": {
87-
Type: schema.TypeList,
88-
Optional: true,
89-
ForceNew: true,
90-
Description: "Network configuration for the `WorkerPool`.",
91-
MaxItems: 1,
92-
Elem: CloudbuildWorkerPoolNetworkConfigSchema(),
87+
Type: schema.TypeList,
88+
Optional: true,
89+
ForceNew: true,
90+
Description: "Network configuration for the `WorkerPool`.",
91+
MaxItems: 1,
92+
Elem: CloudbuildWorkerPoolNetworkConfigSchema(),
93+
ConflictsWith: []string{"private_service_connect"},
94+
},
95+
96+
"private_service_connect": {
97+
Type: schema.TypeList,
98+
Optional: true,
99+
ForceNew: true,
100+
Description: "Private Service Connect configuration for the pool.",
101+
MaxItems: 1,
102+
Elem: CloudbuildWorkerPoolPrivateServiceConnectSchema(),
103+
ConflictsWith: []string{"network_config"},
93104
},
94105

95106
"project": {
@@ -171,6 +182,27 @@ func CloudbuildWorkerPoolNetworkConfigSchema() *schema.Resource {
171182
}
172183
}
173184

185+
func CloudbuildWorkerPoolPrivateServiceConnectSchema() *schema.Resource {
186+
return &schema.Resource{
187+
Schema: map[string]*schema.Schema{
188+
"network_attachment": {
189+
Type: schema.TypeString,
190+
Required: true,
191+
ForceNew: true,
192+
DiffSuppressFunc: tpgresource.CompareSelfLinkOrResourceName,
193+
Description: "Required. Immutable. The network attachment that the worker network interface is connected to. Must be in the format `projects/{project}/regions/{region}/networkAttachments/{networkAttachment}`. The region of network attachment must be the same as the worker pool. See [Network Attachments](https://cloud.google.com/vpc/docs/about-network-attachments)",
194+
},
195+
196+
"route_all_traffic": {
197+
Type: schema.TypeBool,
198+
Optional: true,
199+
ForceNew: true,
200+
Description: "Immutable. Route all traffic through PSC interface. Enable this if you want full control of traffic in the private pool. Configure Cloud NAT for the subnet of network attachment if you need to access public Internet. If false, Only route private IPs, e.g. 10.0.0.0/8, 172.16.0.0/12, and 192.168.0.0/16 through PSC interface.",
201+
},
202+
},
203+
}
204+
}
205+
174206
func CloudbuildWorkerPoolWorkerConfigSchema() *schema.Resource {
175207
return &schema.Resource{
176208
Schema: map[string]*schema.Schema{
@@ -204,13 +236,14 @@ func resourceCloudbuildWorkerPoolCreate(d *schema.ResourceData, meta interface{}
204236
}
205237

206238
obj := &cloudbuild.WorkerPool{
207-
Location: dcl.String(d.Get("location").(string)),
208-
Name: dcl.String(d.Get("name").(string)),
209-
DisplayName: dcl.String(d.Get("display_name").(string)),
210-
Annotations: tpgresource.CheckStringMap(d.Get("effective_annotations")),
211-
NetworkConfig: expandCloudbuildWorkerPoolNetworkConfig(d.Get("network_config")),
212-
Project: dcl.String(project),
213-
WorkerConfig: expandCloudbuildWorkerPoolWorkerConfig(d.Get("worker_config")),
239+
Location: dcl.String(d.Get("location").(string)),
240+
Name: dcl.String(d.Get("name").(string)),
241+
DisplayName: dcl.String(d.Get("display_name").(string)),
242+
Annotations: tpgresource.CheckStringMap(d.Get("effective_annotations")),
243+
NetworkConfig: expandCloudbuildWorkerPoolNetworkConfig(d.Get("network_config")),
244+
PrivateServiceConnect: expandCloudbuildWorkerPoolPrivateServiceConnect(d.Get("private_service_connect")),
245+
Project: dcl.String(project),
246+
WorkerConfig: expandCloudbuildWorkerPoolWorkerConfig(d.Get("worker_config")),
214247
}
215248

216249
id, err := obj.ID()
@@ -258,13 +291,14 @@ func resourceCloudbuildWorkerPoolRead(d *schema.ResourceData, meta interface{})
258291
}
259292

260293
obj := &cloudbuild.WorkerPool{
261-
Location: dcl.String(d.Get("location").(string)),
262-
Name: dcl.String(d.Get("name").(string)),
263-
DisplayName: dcl.String(d.Get("display_name").(string)),
264-
Annotations: tpgresource.CheckStringMap(d.Get("effective_annotations")),
265-
NetworkConfig: expandCloudbuildWorkerPoolNetworkConfig(d.Get("network_config")),
266-
Project: dcl.String(project),
267-
WorkerConfig: expandCloudbuildWorkerPoolWorkerConfig(d.Get("worker_config")),
294+
Location: dcl.String(d.Get("location").(string)),
295+
Name: dcl.String(d.Get("name").(string)),
296+
DisplayName: dcl.String(d.Get("display_name").(string)),
297+
Annotations: tpgresource.CheckStringMap(d.Get("effective_annotations")),
298+
NetworkConfig: expandCloudbuildWorkerPoolNetworkConfig(d.Get("network_config")),
299+
PrivateServiceConnect: expandCloudbuildWorkerPoolPrivateServiceConnect(d.Get("private_service_connect")),
300+
Project: dcl.String(project),
301+
WorkerConfig: expandCloudbuildWorkerPoolWorkerConfig(d.Get("worker_config")),
268302
}
269303

270304
userAgent, err := tpgresource.GenerateUserAgentString(d, config.UserAgent)
@@ -304,6 +338,9 @@ func resourceCloudbuildWorkerPoolRead(d *schema.ResourceData, meta interface{})
304338
if err = d.Set("network_config", flattenCloudbuildWorkerPoolNetworkConfig(res.NetworkConfig)); err != nil {
305339
return fmt.Errorf("error setting network_config in state: %s", err)
306340
}
341+
if err = d.Set("private_service_connect", flattenCloudbuildWorkerPoolPrivateServiceConnect(res.PrivateServiceConnect)); err != nil {
342+
return fmt.Errorf("error setting private_service_connect in state: %s", err)
343+
}
307344
if err = d.Set("project", res.Project); err != nil {
308345
return fmt.Errorf("error setting project in state: %s", err)
309346
}
@@ -339,13 +376,14 @@ func resourceCloudbuildWorkerPoolUpdate(d *schema.ResourceData, meta interface{}
339376
}
340377

341378
obj := &cloudbuild.WorkerPool{
342-
Location: dcl.String(d.Get("location").(string)),
343-
Name: dcl.String(d.Get("name").(string)),
344-
DisplayName: dcl.String(d.Get("display_name").(string)),
345-
Annotations: tpgresource.CheckStringMap(d.Get("effective_annotations")),
346-
NetworkConfig: expandCloudbuildWorkerPoolNetworkConfig(d.Get("network_config")),
347-
Project: dcl.String(project),
348-
WorkerConfig: expandCloudbuildWorkerPoolWorkerConfig(d.Get("worker_config")),
379+
Location: dcl.String(d.Get("location").(string)),
380+
Name: dcl.String(d.Get("name").(string)),
381+
DisplayName: dcl.String(d.Get("display_name").(string)),
382+
Annotations: tpgresource.CheckStringMap(d.Get("effective_annotations")),
383+
NetworkConfig: expandCloudbuildWorkerPoolNetworkConfig(d.Get("network_config")),
384+
PrivateServiceConnect: expandCloudbuildWorkerPoolPrivateServiceConnect(d.Get("private_service_connect")),
385+
Project: dcl.String(project),
386+
WorkerConfig: expandCloudbuildWorkerPoolWorkerConfig(d.Get("worker_config")),
349387
}
350388
directive := tpgdclresource.UpdateDirective
351389
userAgent, err := tpgresource.GenerateUserAgentString(d, config.UserAgent)
@@ -388,13 +426,14 @@ func resourceCloudbuildWorkerPoolDelete(d *schema.ResourceData, meta interface{}
388426
}
389427

390428
obj := &cloudbuild.WorkerPool{
391-
Location: dcl.String(d.Get("location").(string)),
392-
Name: dcl.String(d.Get("name").(string)),
393-
DisplayName: dcl.String(d.Get("display_name").(string)),
394-
Annotations: tpgresource.CheckStringMap(d.Get("effective_annotations")),
395-
NetworkConfig: expandCloudbuildWorkerPoolNetworkConfig(d.Get("network_config")),
396-
Project: dcl.String(project),
397-
WorkerConfig: expandCloudbuildWorkerPoolWorkerConfig(d.Get("worker_config")),
429+
Location: dcl.String(d.Get("location").(string)),
430+
Name: dcl.String(d.Get("name").(string)),
431+
DisplayName: dcl.String(d.Get("display_name").(string)),
432+
Annotations: tpgresource.CheckStringMap(d.Get("effective_annotations")),
433+
NetworkConfig: expandCloudbuildWorkerPoolNetworkConfig(d.Get("network_config")),
434+
PrivateServiceConnect: expandCloudbuildWorkerPoolPrivateServiceConnect(d.Get("private_service_connect")),
435+
Project: dcl.String(project),
436+
WorkerConfig: expandCloudbuildWorkerPoolWorkerConfig(d.Get("worker_config")),
398437
}
399438

400439
log.Printf("[DEBUG] Deleting WorkerPool %q", d.Id())
@@ -471,6 +510,34 @@ func flattenCloudbuildWorkerPoolNetworkConfig(obj *cloudbuild.WorkerPoolNetworkC
471510

472511
}
473512

513+
func expandCloudbuildWorkerPoolPrivateServiceConnect(o interface{}) *cloudbuild.WorkerPoolPrivateServiceConnect {
514+
if o == nil {
515+
return cloudbuild.EmptyWorkerPoolPrivateServiceConnect
516+
}
517+
objArr := o.([]interface{})
518+
if len(objArr) == 0 || objArr[0] == nil {
519+
return cloudbuild.EmptyWorkerPoolPrivateServiceConnect
520+
}
521+
obj := objArr[0].(map[string]interface{})
522+
return &cloudbuild.WorkerPoolPrivateServiceConnect{
523+
NetworkAttachment: dcl.String(obj["network_attachment"].(string)),
524+
RouteAllTraffic: dcl.Bool(obj["route_all_traffic"].(bool)),
525+
}
526+
}
527+
528+
func flattenCloudbuildWorkerPoolPrivateServiceConnect(obj *cloudbuild.WorkerPoolPrivateServiceConnect) interface{} {
529+
if obj == nil || obj.Empty() {
530+
return nil
531+
}
532+
transformed := map[string]interface{}{
533+
"network_attachment": obj.NetworkAttachment,
534+
"route_all_traffic": obj.RouteAllTraffic,
535+
}
536+
537+
return []interface{}{transformed}
538+
539+
}
540+
474541
func expandCloudbuildWorkerPoolWorkerConfig(o interface{}) *cloudbuild.WorkerPoolWorkerConfig {
475542
if o == nil {
476543
return nil

google-beta/services/cloudbuild/resource_cloudbuild_worker_pool_test.go

+15-2
Original file line numberDiff line numberDiff line change
@@ -59,9 +59,17 @@ func TestAccCloudbuildWorkerPool_withComputedAnnotations(t *testing.T) {
5959
func TestAccCloudbuildWorkerPool_basic(t *testing.T) {
6060
t.Parallel()
6161

62+
testNetworkName := acctest.BootstrapSharedTestNetwork(t, "attachment-network")
63+
subnetName := acctest.BootstrapSubnet(t, "tf-test-subnet", testNetworkName)
64+
networkAttachmentName := acctest.BootstrapNetworkAttachment(t, "tf-test-attachment", subnetName)
65+
66+
// Need to have the full network attachment name in the format project/{project_id}/regions/{region_id}/networkAttachments/{networkAttachmentName}
67+
fullFormNetworkAttachmentName := fmt.Sprintf("projects/%s/regions/%s/networkAttachments/%s", envvar.GetTestProjectFromEnv(), envvar.GetTestRegionFromEnv(), networkAttachmentName)
68+
6269
context := map[string]interface{}{
63-
"random_suffix": acctest.RandString(t, 10),
64-
"project": envvar.GetTestProjectFromEnv(),
70+
"random_suffix": acctest.RandString(t, 10),
71+
"project": envvar.GetTestProjectFromEnv(),
72+
"network_attachment": fullFormNetworkAttachmentName,
6573
}
6674

6775
acctest.VcrTest(t, resource.TestCase{
@@ -108,6 +116,11 @@ resource "google_cloudbuild_worker_pool" "pool" {
108116
machine_type = "e2-standard-8"
109117
no_external_ip = true
110118
}
119+
120+
private_service_connect {
121+
network_attachment = "%{network_attachment}"
122+
route_all_traffic = false
123+
}
111124
}
112125
`, context)
113126
}

google-beta/services/clouddeploy/resource_clouddeploy_delivery_pipeline.go

+57
Original file line numberDiff line numberDiff line change
@@ -537,6 +537,14 @@ func ClouddeployDeliveryPipelineSerialPipelineStagesStrategyCanaryRuntimeConfigK
537537
Description: "Optional. The label to use when selecting Pods for the Deployment and Service resources. This label must already be present in both resources.",
538538
},
539539

540+
"route_destinations": {
541+
Type: schema.TypeList,
542+
Optional: true,
543+
Description: "Optional. Route destinations allow configuring the Gateway API HTTPRoute to be deployed to additional clusters. This option is available for multi-cluster service mesh set ups that require the route to exist in the clusters that call the service. If unspecified, the HTTPRoute will only be deployed to the Target cluster.",
544+
MaxItems: 1,
545+
Elem: ClouddeployDeliveryPipelineSerialPipelineStagesStrategyCanaryRuntimeConfigKubernetesGatewayServiceMeshRouteDestinationsSchema(),
546+
},
547+
540548
"route_update_wait_time": {
541549
Type: schema.TypeString,
542550
Optional: true,
@@ -552,6 +560,25 @@ func ClouddeployDeliveryPipelineSerialPipelineStagesStrategyCanaryRuntimeConfigK
552560
}
553561
}
554562

563+
func ClouddeployDeliveryPipelineSerialPipelineStagesStrategyCanaryRuntimeConfigKubernetesGatewayServiceMeshRouteDestinationsSchema() *schema.Resource {
564+
return &schema.Resource{
565+
Schema: map[string]*schema.Schema{
566+
"destination_ids": {
567+
Type: schema.TypeList,
568+
Required: true,
569+
Description: "Required. The clusters where the Gateway API HTTPRoute resource will be deployed to. Valid entries include the associated entities IDs configured in the Target resource and \"@self\" to include the Target cluster.",
570+
Elem: &schema.Schema{Type: schema.TypeString},
571+
},
572+
573+
"propagate_service": {
574+
Type: schema.TypeBool,
575+
Optional: true,
576+
Description: "Optional. Whether to propagate the Kubernetes Service to the route destination clusters. The Service will always be deployed to the Target cluster even if the HTTPRoute is not. This option may be used to facilitiate successful DNS lookup in the route destination clusters. Can only be set to true if destinations are specified.",
577+
},
578+
},
579+
}
580+
}
581+
555582
func ClouddeployDeliveryPipelineSerialPipelineStagesStrategyCanaryRuntimeConfigKubernetesServiceNetworkingSchema() *schema.Resource {
556583
return &schema.Resource{
557584
Schema: map[string]*schema.Schema{
@@ -1515,6 +1542,7 @@ func expandClouddeployDeliveryPipelineSerialPipelineStagesStrategyCanaryRuntimeC
15151542
HttpRoute: dcl.String(obj["http_route"].(string)),
15161543
Service: dcl.String(obj["service"].(string)),
15171544
PodSelectorLabel: dcl.String(obj["pod_selector_label"].(string)),
1545+
RouteDestinations: expandClouddeployDeliveryPipelineSerialPipelineStagesStrategyCanaryRuntimeConfigKubernetesGatewayServiceMeshRouteDestinations(obj["route_destinations"]),
15181546
RouteUpdateWaitTime: dcl.String(obj["route_update_wait_time"].(string)),
15191547
StableCutbackDuration: dcl.String(obj["stable_cutback_duration"].(string)),
15201548
}
@@ -1529,6 +1557,7 @@ func flattenClouddeployDeliveryPipelineSerialPipelineStagesStrategyCanaryRuntime
15291557
"http_route": obj.HttpRoute,
15301558
"service": obj.Service,
15311559
"pod_selector_label": obj.PodSelectorLabel,
1560+
"route_destinations": flattenClouddeployDeliveryPipelineSerialPipelineStagesStrategyCanaryRuntimeConfigKubernetesGatewayServiceMeshRouteDestinations(obj.RouteDestinations),
15321561
"route_update_wait_time": obj.RouteUpdateWaitTime,
15331562
"stable_cutback_duration": obj.StableCutbackDuration,
15341563
}
@@ -1537,6 +1566,34 @@ func flattenClouddeployDeliveryPipelineSerialPipelineStagesStrategyCanaryRuntime
15371566

15381567
}
15391568

1569+
func expandClouddeployDeliveryPipelineSerialPipelineStagesStrategyCanaryRuntimeConfigKubernetesGatewayServiceMeshRouteDestinations(o interface{}) *clouddeploy.DeliveryPipelineSerialPipelineStagesStrategyCanaryRuntimeConfigKubernetesGatewayServiceMeshRouteDestinations {
1570+
if o == nil {
1571+
return clouddeploy.EmptyDeliveryPipelineSerialPipelineStagesStrategyCanaryRuntimeConfigKubernetesGatewayServiceMeshRouteDestinations
1572+
}
1573+
objArr := o.([]interface{})
1574+
if len(objArr) == 0 || objArr[0] == nil {
1575+
return clouddeploy.EmptyDeliveryPipelineSerialPipelineStagesStrategyCanaryRuntimeConfigKubernetesGatewayServiceMeshRouteDestinations
1576+
}
1577+
obj := objArr[0].(map[string]interface{})
1578+
return &clouddeploy.DeliveryPipelineSerialPipelineStagesStrategyCanaryRuntimeConfigKubernetesGatewayServiceMeshRouteDestinations{
1579+
DestinationIds: tpgdclresource.ExpandStringArray(obj["destination_ids"]),
1580+
PropagateService: dcl.Bool(obj["propagate_service"].(bool)),
1581+
}
1582+
}
1583+
1584+
func flattenClouddeployDeliveryPipelineSerialPipelineStagesStrategyCanaryRuntimeConfigKubernetesGatewayServiceMeshRouteDestinations(obj *clouddeploy.DeliveryPipelineSerialPipelineStagesStrategyCanaryRuntimeConfigKubernetesGatewayServiceMeshRouteDestinations) interface{} {
1585+
if obj == nil || obj.Empty() {
1586+
return nil
1587+
}
1588+
transformed := map[string]interface{}{
1589+
"destination_ids": obj.DestinationIds,
1590+
"propagate_service": obj.PropagateService,
1591+
}
1592+
1593+
return []interface{}{transformed}
1594+
1595+
}
1596+
15401597
func expandClouddeployDeliveryPipelineSerialPipelineStagesStrategyCanaryRuntimeConfigKubernetesServiceNetworking(o interface{}) *clouddeploy.DeliveryPipelineSerialPipelineStagesStrategyCanaryRuntimeConfigKubernetesServiceNetworking {
15411598
if o == nil {
15421599
return clouddeploy.EmptyDeliveryPipelineSerialPipelineStagesStrategyCanaryRuntimeConfigKubernetesServiceNetworking

google-beta/services/clouddeploy/resource_clouddeploy_delivery_pipeline_generated_test.go

+5
Original file line numberDiff line numberDiff line change
@@ -319,6 +319,11 @@ resource "google_clouddeploy_delivery_pipeline" "primary" {
319319
http_route = "example-http-route"
320320
service = "example-service"
321321
pod_selector_label = "example.com/app-name"
322+
323+
route_destinations {
324+
destination_ids = ["example-destination-id"]
325+
propagate_service = true
326+
}
322327
}
323328
}
324329
}

0 commit comments

Comments
 (0)