Migrating from GCP 8.x to 9.x
Pulumi GCP Provider Version Upgrade Guide
Version 9.0.0 of the GCP provider for Pulumi is a major release and includes changes that you need to consider when upgrading. This guide will help with that process and focuses only on changes from version 8.x to version 9.0.0. See the Version 8 Upgrade Guide for information on upgrading from 7.x to version 8.0.0.
Breaking changes
GCP provider v9.0 includes several breaking changes to a few resources and invokes. Here are the details:
Resource
gcp.alloydb.Cluster:- The field
deletionProtectionhas been added with a default value oftrue. This field destroying or recreating the cluster duringpulumi up. In 9.0.0, existing clusters will havedeletionProtectionset to true during the next refresh unless otherwise set in the program configuration.
- The field
Resource
gcp.apigee.KeystoresAliasesKeyCertFile:- The field
certsInfois no longer an input and instead is only available as an output property.
- The field
Resource
gcp.artifactregistry.Repository:- Default values have been removed, if you are relying on defaults, you might need to explicitly set them in your program configuration.
Resource
gcp.beyondcorp.Applicationremoved:- Associated resources
ApplicationIamBinding,ApplicationIamMember, andApplicationIamPolicyhave also been removed. - Please use the new resource
gcp.beyondcorp.SecurityGatewayApplicationinstead.
- Associated resources
Resource
gcp.bigquery.Table:- Field
view.useLegacySqlNo longer has a default value oftrue. You may need to explicitly set this field in your program configuration.
- Field
Resource
gcp.bigtable.TableIamBinding:- Field
instanceis now removed in favor ofinstanceName.
- Field
Resource
gcp.bigtable.TableIamMember:- Field
instanceis now removed in favor ofinstanceName.
- Field
Resource
gcp.bigtable.TableIamPolicy:- Field
instanceis now removed in favor ofinstanceName.
- Field
Resource
gcp.cloudfunctionsv2.Function:Field
eventTrigger.eventTypeis now a required field.Field
serviceConfig.serviceis now only available as an output property. Remove it from your program configuration when upgrading.
Resource
gcp.cloudrunv2.WorkerPool:- Field
template.containers.dependsOnis removed.
- Field
Resource
gcp.colab.RuntimeTemplate:- Field
postStartupScriptConfigis removed.
- Field
Resource
gcp.compute.InstanceTemplate:- Field
disks.diskType,disks.mode,disks.interfaceno longer use provider defaults and instead will be set by the API. See the API documentation for more details.
- Field
Resource
gcp.compute.RegionInstanceTemplate:- Field
disks.diskType,disks.mode,disks.interfaceno longer use provider defaults and instead will be set by the API. See the API documentation for more details.
- Field
Resource
gcp.compute.Subnetwork:- Field
enableFlowLogshas been removed in favor oflogConfig.
- Field
Resource
gcp.gkehub.Membership:- Field
descriptionhas been removed.
- Field
Resource
gcp.gkehub.FeatureMembership:- Field
configmanagement.binauthzhas been removed.
- Field
Resource
gcp.memorystore.Instance:- Field
allowFewerZonesDeploymenthas been removed.
- Field
Resource
gcp.networkservices.LbTrafficExtension:- Field
loadBalancingSchemeis now required. It was already needed for this resource to function correctly so no changes should be necessary.
- Field
Resource
gcp.notebooks.Locationis removed because it was not a functional resource.Resource
gcp.projects.Service:- Field
disableOnDestroyno longer defaults totrue.
- Field
Resource
gcp.redis.Cluster:- Field
allowFewerZonesDeploymenthas been removed.
- Field
Resource
gcp.securesourcemanager.Instance:- Field
deletionPolicyhas had its default value changed toPREVENT.
- Field
Resource
gcp.storage.TransferJob:Several
pathfields have improved validation and now are required to not start with/.Resource
gcp.storage.Bucket:- Field
retentionPeriodhas had its type changed tostring.
- Field
Resource
gcp.storage.Notification:- Field
topicnow requires a new format and must be provided in the formatprojects/{{project}}/topics/{{topic}}.
- Field
Resource
gcp.tpu.Nodehas been removed in favor ofgcp.tpu.V2Vm. For moving from TPU Node to TPU VM architecture, see https://cloud.google.com/tpu/docs/system-architecture-tpu-vm#from-tpu-node-to-tpu-vm.Resource
gcp.vertex.AiIndex:- Field
metadataandmetadata.configare now required. These fields were already required for resource functionality, so no change is necessary to existing configurations.
- Field
Bucket Label Import
In v9, we are removing a patch that changed the Import behavior on gcp.storage.Bucket.
This patch allowed for a pulumi import to directly import cloud labels to the Bucket’s labels field.
Going forward, the Import behavior for labels will be on par with all other resources: on a fresh import, the labels will be written to the output-only effectiveLabels field in the Pulumi state, and not to the bucket’s labels.
The generated code will not include labels.
To bring Bucket labels under Pulumi management after an import, you now need to explicitly set them on the Bucket’s labels field.
You may discover any such potential labels from the Bucket’s effectiveLabels field.
Read more about label handling here.
This change is a bug fix for https://github.com/pulumi/pulumi-gcp/issues/3337.
