Giter Club home page Giter Club logo

Comments (8)

VenelinMartinov avatar VenelinMartinov commented on August 15, 2024

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.

VenelinMartinov avatar VenelinMartinov commented on August 15, 2024

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.

VenelinMartinov avatar VenelinMartinov commented on August 15, 2024

TestNodePoolGpuAcceleratorPanic is the test overfitting on secondary properties. Also various values showing up in the output as unknown, unlike before.

from pulumi-gcp.

VenelinMartinov avatar VenelinMartinov commented on August 15, 2024

The firewall issue is fixed by the latest iteration of pulumi/pulumi-terraform-bridge#2065

from pulumi-gcp.

VenelinMartinov avatar VenelinMartinov commented on August 15, 2024

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.

VenelinMartinov avatar VenelinMartinov commented on August 15, 2024

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.

VenelinMartinov avatar VenelinMartinov commented on August 15, 2024

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.

VenelinMartinov avatar VenelinMartinov commented on August 15, 2024

opened #2104 for the labels failing tests, which was the last failing test here - closing this as completed.

from pulumi-gcp.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.