Comments (8)
The instances diff seems like it must be present upstream - the READ returns a different value to what's created:
Read
{
"method": "/pulumirpc.ResourceProvider/Read",
"request": {
"id": "projects/pulumi-development/zones/us-west1-a/instanceGroups/video-resources-5f21209",
"urn": "urn:pulumi:p-it-venelins-m-loadbalanc-8cf5219c::loadbalancer::gcp:compute/instanceGroup:InstanceGroup::video-resources",
"properties": {
"__meta": "{\"e2bfb730-ecaa-11e6-8f88-34363bc7c4c0\":{\"create\":360000000000,\"delete\":360000000000,\"update\":360000000000},\"schema_version\":\"2\"}",
"description": "",
"id": "projects/pulumi-development/zones/us-west1-a/instanceGroups/video-resources-5f21209",
"instances": [
"https://www.googleapis.com/compute/v1/projects/pulumi-development/zones/us-west1-a/instances/video-compute-d90a9d6"
],
"name": "video-resources-5f21209",
"namedPorts": [
{
"name": "http",
"port": 80
}
],
"network": "https://www.googleapis.com/compute/beta/projects/pulumi-development/global/networks/default-network-1b6bdf9",
"project": "pulumi-development",
"selfLink": "https://www.googleapis.com/compute/beta/projects/pulumi-development/zones/us-west1-a/instanceGroups/video-resources-5f21209",
"size": 1,
"zone": "us-west1-a"
},
"inputs": {
"__defaults": [
"name"
],
"instances": [
"https://www.googleapis.com/compute/v1/projects/pulumi-development/zones/us-west1-a/instances/video-compute-d90a9d6"
],
"name": "video-resources-5f21209",
"namedPorts": [
{
"__defaults": [],
"name": "http",
"port": 80
}
],
"project": "pulumi-development",
"zone": "us-west1-a"
}
},
"response": {
"id": "projects/pulumi-development/zones/us-west1-a/instanceGroups/video-resources-5f21209",
"properties": {
"__meta": "{\"e2bfb730-ecaa-11e6-8f88-34363bc7c4c0\":{\"create\":360000000000,\"delete\":360000000000,\"update\":360000000000},\"schema_version\":\"2\"}",
"description": "",
"id": "projects/pulumi-development/zones/us-west1-a/instanceGroups/video-resources-5f21209",
"instances": [
"https://www.googleapis.com/compute/beta/projects/pulumi-development/zones/us-west1-a/instances/video-compute-d90a9d6"
],
"name": "video-resources-5f21209",
"namedPorts": [
{
"name": "http",
"port": 80
}
],
"network": "https://www.googleapis.com/compute/beta/projects/pulumi-development/global/networks/default-network-1b6bdf9",
"project": "pulumi-development",
"selfLink": "https://www.googleapis.com/compute/beta/projects/pulumi-development/zones/us-west1-a/instanceGroups/video-resources-5f21209",
"size": 1,
"zone": "us-west1-a"
},
"inputs": {
"__defaults": [
"name"
],
"instances": [
"https://www.googleapis.com/compute/beta/projects/pulumi-development/zones/us-west1-a/instances/video-compute-d90a9d6"
],
"name": "video-resources-5f21209",
"namedPorts": [
{
"__defaults": [],
"name": "http",
"port": 80
}
],
"project": "pulumi-development",
"zone": "us-west1-a"
}
},
"metadata": {
"kind": "resource",
"mode": "client",
"name": "gcp"
}
}
Create
{
"method": "/pulumirpc.ResourceProvider/Create",
"request": {
"urn": "urn:pulumi:p-it-venelins-m-loadbalanc-8cf5219c::loadbalancer::gcp:compute/instanceGroup:InstanceGroup::video-resources",
"properties": {
"__defaults": [
"name"
],
"instances": [
"https://www.googleapis.com/compute/v1/projects/pulumi-development/zones/us-west1-a/instances/video-compute-d90a9d6"
],
"name": "video-resources-5f21209",
"namedPorts": [
{
"__defaults": [],
"name": "http",
"port": 80
}
],
"project": "pulumi-development",
"zone": "us-west1-a"
}
},
"response": {
"id": "projects/pulumi-development/zones/us-west1-a/instanceGroups/video-resources-5f21209",
"properties": {
"__meta": "{\"e2bfb730-ecaa-11e6-8f88-34363bc7c4c0\":{\"create\":360000000000,\"delete\":360000000000,\"update\":360000000000},\"schema_version\":\"2\"}",
"description": "",
"id": "projects/pulumi-development/zones/us-west1-a/instanceGroups/video-resources-5f21209",
"instances": [
"https://www.googleapis.com/compute/v1/projects/pulumi-development/zones/us-west1-a/instances/video-compute-d90a9d6"
],
"name": "video-resources-5f21209",
"namedPorts": [
{
"name": "http",
"port": 80
}
],
"network": "https://www.googleapis.com/compute/beta/projects/pulumi-development/global/networks/default-network-1b6bdf9",
"project": "pulumi-development",
"selfLink": "https://www.googleapis.com/compute/beta/projects/pulumi-development/zones/us-west1-a/instanceGroups/video-resources-5f21209",
"size": 1,
"zone": "us-west1-a"
}
},
"metadata": {
"kind": "resource",
"mode": "client",
"name": "gcp"
}
}
I don't actually see why the diff is produced, the values look pretty identical.
from pulumi-gcp.
Firewall read:
{
"method": "/pulumirpc.ResourceProvider/Read",
"request": {
"id": "projects/pulumi-development/global/firewalls/ts-firewall-533c1d7",
"urn": "urn:pulumi:p-it-venelins-m-webserver-69654475::webserver::gcp:compute/firewall:Firewall::ts-firewall",
"properties": {
"__meta": "{\"e2bfb730-ecaa-11e6-8f88-34363bc7c4c0\":{\"create\":1200000000000,\"delete\":1200000000000,\"update\":1200000000000},\"schema_version\":\"1\"}",
"allows": [
{
"ports": [
"22",
"80"
],
"protocol": "tcp"
},
{
"ports": [],
"protocol": "icmp"
}
],
"creationTimestamp": "2024-06-12T08:05:44.631-07:00",
"denies": [],
"description": "",
"destinationRanges": [],
"direction": "INGRESS",
"disabled": false,
"enableLogging": null,
"id": "projects/pulumi-development/global/firewalls/ts-firewall-533c1d7",
"logConfig": null,
"name": "ts-firewall-533c1d7",
"network": "https://www.googleapis.com/compute/v1/projects/pulumi-development/global/networks/ts-network-71f2225",
"priority": 1000,
"project": "pulumi-development",
"selfLink": "https://www.googleapis.com/compute/v1/projects/pulumi-development/global/firewalls/ts-firewall-533c1d7",
"sourceRanges": null,
"sourceServiceAccounts": null,
"sourceTags": [
"foo"
],
"targetServiceAccounts": null,
"targetTags": null
},
"inputs": {
"__defaults": [
"name",
"priority"
],
"allows": [
{
"__defaults": [],
"protocol": "icmp"
},
{
"__defaults": [],
"ports": [
"22",
"80"
],
"protocol": "tcp"
}
],
"name": "ts-firewall-533c1d7",
"network": "https://www.googleapis.com/compute/v1/projects/pulumi-development/global/networks/ts-network-71f2225",
"priority": 1000,
"project": "pulumi-development",
"sourceTags": [
"foo"
]
}
},
"response": {
"id": "projects/pulumi-development/global/firewalls/ts-firewall-533c1d7",
"properties": {
"__meta": "{\"e2bfb730-ecaa-11e6-8f88-34363bc7c4c0\":{\"create\":1200000000000,\"delete\":1200000000000,\"update\":1200000000000},\"schema_version\":\"1\"}",
"allows": [
{
"ports": [
"22",
"80"
],
"protocol": "tcp"
},
{
"ports": null,
"protocol": "icmp"
}
],
"creationTimestamp": "2024-06-12T08:05:44.631-07:00",
"denies": [],
"description": "",
"destinationRanges": [],
"direction": "INGRESS",
"disabled": false,
"enableLogging": null,
"id": "projects/pulumi-development/global/firewalls/ts-firewall-533c1d7",
"logConfig": null,
"name": "ts-firewall-533c1d7",
"network": "https://www.googleapis.com/compute/v1/projects/pulumi-development/global/networks/ts-network-71f2225",
"priority": 1000,
"project": "pulumi-development",
"selfLink": "https://www.googleapis.com/compute/v1/projects/pulumi-development/global/firewalls/ts-firewall-533c1d7",
"sourceRanges": null,
"sourceServiceAccounts": null,
"sourceTags": [
"foo"
],
"targetServiceAccounts": null,
"targetTags": null
},
"inputs": {
"__defaults": [
"name",
"priority"
],
"allows": [
{
"__defaults": [],
"protocol": "tcp"
},
{
"__defaults": [],
"ports": null,
"protocol": "icmp"
}
],
"name": "ts-firewall-533c1d7",
"network": "https://www.googleapis.com/compute/v1/projects/pulumi-development/global/networks/ts-network-71f2225",
"priority": 1000,
"project": "pulumi-development",
"sourceTags": [
"foo"
]
}
},
"metadata": {
"kind": "resource",
"mode": "client",
"name": "gcp"
}
}
The ports property inside the ICMP obj is changed from [] to null
This is caused by pulumi/pulumi-terraform-bridge#2065
Without that the diff matches TF.
from pulumi-gcp.
TestNodePoolGpuAcceleratorPanic
is the test overfitting on secondary properties. Also various values showing up in the output as unknown, unlike before.
from pulumi-gcp.
The firewall issue is fixed by the latest iteration of pulumi/pulumi-terraform-bridge#2065
from pulumi-gcp.
All the above failures are now fine but there's a new one related to effectiveLabels and pulumiLabels: pulumi/pulumi-terraform-bridge#1962 (comment)
from pulumi-gcp.
Running the GCP labels example in TF:
provider "google" {
region = "us-central1"
}
resource "google_storage_bucket" "bucket" {
name = "example-bucket123123223"
location = "US"
labels = {
x = ""
y = "val"
}
}
The x = "" is returned as an unknown from preview - it is resolved as missing only after applying. I believe we flag up the diff in the length of the effectiveLabels
- before resolving the unknown they seem to be of len 2 but they are really len 1:
In plannedState: "effective_labels":cty.MapVal(map[string]cty.Value{"x":cty.UnknownVal(cty.String), "y":cty.StringVal("s")})
In priorState: "effective_labels":cty.MapVal(map[string]cty.Value{"y":cty.StringVal("s")})
The PlannedDiff: "effective_labels.%":*terraform.ResourceAttrDiff{Old:"1", New:"2", NewComputed:false, NewRemoved:false, NewExtra:interface {}(nil), RequiresNew:false, Sensitive:false, Type:0x0}, "effective_labels.x":*terraform.ResourceAttrDiff{Old:"", New:"", NewComputed:true, NewRemoved:false, NewExtra:interface {}(nil), RequiresNew:false, Sensitive:false, Type:0x0}
I believe the Old and New for the property here is likely the length.
from pulumi-gcp.
Note that TF does not produce such a diff with terraform plan -refresh-only
. I'll add some debugging there to see if they ignore the length of the element there as a diff.
Actually because of the new refresh, we essentially run the equivalent of terraform plan -refresh=true
during refresh.
Running that in TF does produce a permadiff in this case:
terraform plan
google_storage_bucket.bucket: Refreshing state... [id=example-bucket123123223]
Terraform used the selected providers to generate the following
execution plan. Resource actions are indicated with the following
symbols:
~ update in-place
Terraform will perform the following actions:
# google_storage_bucket.bucket will be updated in-place
~ resource "google_storage_bucket" "bucket" {
~ effective_labels = {
+ "x" = (known after apply)
# (1 unchanged element hidden)
}
id = "example-bucket123123223"
name = "example-bucket123123223"
~ terraform_labels = {
+ "x" = (known after apply)
# (1 unchanged element hidden)
}
# (14 unchanged attributes hidden)
# (1 unchanged block hidden)
}
Plan: 0 to add, 1 to change, 0 to destroy.
─────────────────────────────────────────────────────────────────
Note: You didn't use the -out option to save this plan, so
Terraform can't guarantee to take exactly these actions if you
run "terraform apply" now.
As x is unknown at preview time here. I'll fix the GCP tests and mark this as intended.
from pulumi-gcp.
opened #2104 for the labels failing tests, which was the last failing test here - closing this as completed.
from pulumi-gcp.
Related Issues (20)
- Failed to detect changes to certain options when creating a resource. HOT 2
- Compute Subnetwork secondary ip ranges drops note from upstream docs
- Upgrade terraform-provider-google-beta to v5.39.0 HOT 1
- Workflow failure: release HOT 1
- Workflow failure: release HOT 1
- Upgrade terraform-provider-google-beta to v5.39.1 HOT 1
- Workflow failure: master
- PRC test failures in GCP HOT 1
- Upgrade terraform-provider-google-beta to v5.40.0
- Edit retest window on gcp.monitoring.AlertPolicy HOT 1
- [Epic] GCP 8.0
- Create alpha release
- GCP v8 Prerelease: Find testers and request feedback
- GCP v8: Audit Patches
- GCP v8: Update documents
- GCP v8: Prepare blog post
- GCP v8: Create Migration Guide
- CloudSQL instances with auto disk resizing fail to update on the first try but succeed on retrying HOT 3
- Upgrade terraform-provider-google-beta to v5.41.0
- Workflow failure: release
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pulumi-gcp.