Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WAF Ruleset update on every run #630

Open
gleb-jiji opened this issue Jan 23, 2024 · 3 comments
Open

WAF Ruleset update on every run #630

gleb-jiji opened this issue Jan 23, 2024 · 3 comments
Labels
bug/diff kind/bug related to Pulumi generating wrong diffs on preview or up. kind/bug Some behavior is incorrect or out of spec

Comments

@gleb-jiji
Copy link

What happened?

WAF Ruleset is being updated on every run without any visible changes, similarly to #444. Seems to be triggered by rules that use action_parameters.

Example

from pulumi_cloudflare import Ruleset, RulesetRuleArgs, RulesetRuleActionParametersArgs

Ruleset(
    "waf",
    zone_id=zone_id,
    name="Custom WAF",
    phase="http_request_firewall_custom",
    kind="zone",
    rules=[
        RulesetRuleArgs(
            description="Test",
            expression='true',
            enabled=False,
            action="skip",
            action_parameters=RulesetRuleActionParametersArgs(
                phases=["http_request_firewall_managed"],
                products=["securityLevel"],
                ruleset="current",
            ),
        ),
    ],
)

Output of pulumi about

CLI          
Version      3.101.1
Go Version   go1.21.5
Go Compiler  gc

Plugins
NAME          VERSION
aws           6.18.0
cloudflare    5.18.1
digitalocean  4.25.1
hcloud        1.16.2
proxmoxve     5.21.0
python        unknown
random        4.15.0

Host     
OS       fedora
Version  38
Arch     x86_64

This project is written in python: executable='/home/user/.cache/pypoetry/virtualenvs/infra-PmXxtYjb-py3.11/bin/python3' version='3.11.7'

...

Dependencies:
NAME                 VERSION
cloudflare           2.16.0
pip                  23.2.1
pulumi_aws           6.18.0
pulumi_cloudflare    5.18.1
pulumi_digitalocean  4.25.1
pulumi-hcloud        1.16.2
pulumi_proxmoxve     5.21.0
pulumi-random        4.15.0
setuptools           68.0.0
wheel                0.41.0

Additional context

No response

Contributing

Vote on this issue by adding a 👍 reaction.
To contribute a fix for this issue, leave a comment (and link to your pull request, if you've opened one already).

@gleb-jiji gleb-jiji added kind/bug Some behavior is incorrect or out of spec needs-triage Needs attention from the triage team labels Jan 23, 2024
@iwahbe iwahbe added bug/diff kind/bug related to Pulumi generating wrong diffs on preview or up. and removed needs-triage Needs attention from the triage team labels Jan 25, 2024
@iwahbe
Copy link
Member

iwahbe commented Jan 25, 2024

Hi @gleb-jiji. Thanks for opening a new issue and posting a reproduction.

CC @t0yv0 I believe you were interested here.

@lukehoban
Copy link

lukehoban commented Nov 8, 2024

This still repros.

The preview shows an update, but implicates no property changes!

Previewing update (pulumi/dev)

View Live: https://app.pulumi.com/pulumi/cloudflare620/dev/previews/2530fe44-7034-4381-9f60-e54420f53dc9

  pulumi:pulumi:Stack: (same)
    [urn=urn:pulumi:dev::cloudflare620::pulumi:pulumi:Stack::cloudflare620-dev]
    ~ cloudflare:index/ruleset:Ruleset: (update)
        [id=0f10e9868c6f4501b53daee96b196949]
        [urn=urn:pulumi:dev::cloudflare620::cloudflare:index/ruleset:Ruleset::waf]
        [provider=urn:pulumi:dev::cloudflare620::pulumi:providers:cloudflare::default_5_42_0::f9a5c73b-be0e-422d-9a74-02346629e27c]
        kind  : "zone"
        name  : "Custom WAF"
        phase : "http_request_firewall_custom"
        rules : [
            [0]: {
                action          : "skip"
                actionParameters: {
                    phases  : [
                        [0]: "http_request_firewall_managed"
                    ]
                    products: [
                        [0]: "securityLevel"
                    ]
                    ruleset : "current"
                }
                description     : "Test"
                enabled         : false
                expression      : "true"
            }
        ]
        zoneId: "9dc360d8b34a71961634d6e2c5b31830"
Here's detailed logs
I1107 15:56:09.819595   15965 provider_plugin.go:911] Provider[cloudflare, 0x1400263a140].Diff(urn:pulumi:dev::cloudflare620::cloudflare:index/ruleset:Ruleset::waf,0f10e9868c6f4501b53daee96b196949): executing (#oldInputs=5#oldOutputs=7,#newInputs=5)
I1107 15:56:09.819607   15965 rpc.go:77] Marshaling property for RPC[Provider[cloudflare, 0x1400263a140].Diff(urn:pulumi:dev::cloudflare620::cloudflare:index/ruleset:Ruleset::waf,0f10e9868c6f4501b53daee96b196949).oldInputs]: kind={zone}
I1107 15:56:09.819612   15965 rpc.go:77] Marshaling property for RPC[Provider[cloudflare, 0x1400263a140].Diff(urn:pulumi:dev::cloudflare620::cloudflare:index/ruleset:Ruleset::waf,0f10e9868c6f4501b53daee96b196949).oldInputs]: name={Custom WAF}
I1107 15:56:09.819623   15965 rpc.go:77] Marshaling property for RPC[Provider[cloudflare, 0x1400263a140].Diff(urn:pulumi:dev::cloudflare620::cloudflare:index/ruleset:Ruleset::waf,0f10e9868c6f4501b53daee96b196949).oldInputs]: phase={http_request_firewall_custom}
I1107 15:56:09.819643   15965 rpc.go:77] Marshaling property for RPC[Provider[cloudflare, 0x1400263a140].Diff(urn:pulumi:dev::cloudflare620::cloudflare:index/ruleset:Ruleset::waf,0f10e9868c6f4501b53daee96b196949).oldInputs]: rules={[{map[action:{skip} actionParameters:{map[phases:{[{http_request_firewall_managed}]} products:{[{securityLevel}]} ruleset:{current}]} description:{Test} enabled:{false} expression:{true}]}]}
I1107 15:56:09.819649   15965 rpc.go:77] Marshaling property for RPC[Provider[cloudflare, 0x1400263a140].Diff(urn:pulumi:dev::cloudflare620::cloudflare:index/ruleset:Ruleset::waf,0f10e9868c6f4501b53daee96b196949).oldInputs]: action={skip}
I1107 15:56:09.819654   15965 rpc.go:77] Marshaling property for RPC[Provider[cloudflare, 0x1400263a140].Diff(urn:pulumi:dev::cloudflare620::cloudflare:index/ruleset:Ruleset::waf,0f10e9868c6f4501b53daee96b196949).oldInputs]: actionParameters={map[phases:{[{http_request_firewall_managed}]} products:{[{securityLevel}]} ruleset:{current}]}
I1107 15:56:09.819658   15965 rpc.go:77] Marshaling property for RPC[Provider[cloudflare, 0x1400263a140].Diff(urn:pulumi:dev::cloudflare620::cloudflare:index/ruleset:Ruleset::waf,0f10e9868c6f4501b53daee96b196949).oldInputs]: phases={[{http_request_firewall_managed}]}
I1107 15:56:09.819662   15965 rpc.go:77] Marshaling property for RPC[Provider[cloudflare, 0x1400263a140].Diff(urn:pulumi:dev::cloudflare620::cloudflare:index/ruleset:Ruleset::waf,0f10e9868c6f4501b53daee96b196949).oldInputs]: products={[{securityLevel}]}
I1107 15:56:09.819667   15965 rpc.go:77] Marshaling property for RPC[Provider[cloudflare, 0x1400263a140].Diff(urn:pulumi:dev::cloudflare620::cloudflare:index/ruleset:Ruleset::waf,0f10e9868c6f4501b53daee96b196949).oldInputs]: ruleset={current}
I1107 15:56:09.819670   15965 rpc.go:77] Marshaling property for RPC[Provider[cloudflare, 0x1400263a140].Diff(urn:pulumi:dev::cloudflare620::cloudflare:index/ruleset:Ruleset::waf,0f10e9868c6f4501b53daee96b196949).oldInputs]: description={Test}
I1107 15:56:09.819674   15965 rpc.go:77] Marshaling property for RPC[Provider[cloudflare, 0x1400263a140].Diff(urn:pulumi:dev::cloudflare620::cloudflare:index/ruleset:Ruleset::waf,0f10e9868c6f4501b53daee96b196949).oldInputs]: enabled={false}
I1107 15:56:09.819677   15965 rpc.go:77] Marshaling property for RPC[Provider[cloudflare, 0x1400263a140].Diff(urn:pulumi:dev::cloudflare620::cloudflare:index/ruleset:Ruleset::waf,0f10e9868c6f4501b53daee96b196949).oldInputs]: expression={true}
I1107 15:56:09.819680   15965 rpc.go:77] Marshaling property for RPC[Provider[cloudflare, 0x1400263a140].Diff(urn:pulumi:dev::cloudflare620::cloudflare:index/ruleset:Ruleset::waf,0f10e9868c6f4501b53daee96b196949).oldInputs]: zoneId={9dc360d8b34a71961634d6e2c5b31830}
I1107 15:56:09.819684   15965 rpc.go:77] Marshaling property for RPC[Provider[cloudflare, 0x1400263a140].Diff(urn:pulumi:dev::cloudflare620::cloudflare:index/ruleset:Ruleset::waf,0f10e9868c6f4501b53daee96b196949).oldOutputs]: description={}
I1107 15:56:09.819688   15965 rpc.go:77] Marshaling property for RPC[Provider[cloudflare, 0x1400263a140].Diff(urn:pulumi:dev::cloudflare620::cloudflare:index/ruleset:Ruleset::waf,0f10e9868c6f4501b53daee96b196949).oldOutputs]: id={0f10e9868c6f4501b53daee96b196949}
I1107 15:56:09.819691   15965 rpc.go:77] Marshaling property for RPC[Provider[cloudflare, 0x1400263a140].Diff(urn:pulumi:dev::cloudflare620::cloudflare:index/ruleset:Ruleset::waf,0f10e9868c6f4501b53daee96b196949).oldOutputs]: kind={zone}
I1107 15:56:09.819694   15965 rpc.go:77] Marshaling property for RPC[Provider[cloudflare, 0x1400263a140].Diff(urn:pulumi:dev::cloudflare620::cloudflare:index/ruleset:Ruleset::waf,0f10e9868c6f4501b53daee96b196949).oldOutputs]: name={Custom WAF}
I1107 15:56:09.819710   15965 rpc.go:77] Marshaling property for RPC[Provider[cloudflare, 0x1400263a140].Diff(urn:pulumi:dev::cloudflare620::cloudflare:index/ruleset:Ruleset::waf,0f10e9868c6f4501b53daee96b196949).oldOutputs]: phase={http_request_firewall_custom}
I1107 15:56:09.819728   15965 rpc.go:77] Marshaling property for RPC[Provider[cloudflare, 0x1400263a140].Diff(urn:pulumi:dev::cloudflare620::cloudflare:index/ruleset:Ruleset::waf,0f10e9868c6f4501b53daee96b196949).oldOutputs]: rules={[{map[action:{skip} actionParameters:{map[algorithms:{[]} autominifies:{[]} headers:{[]} phases:{[{http_request_firewall_managed}]} products:{[{securityLevel}]} responses:{[]} ruleset:{current}]} description:{Test} enabled:{false} expression:{true} id:{36a0591647b34a89bf21ea67680e3529} lastUpdated:{2024-11-07 23:55:06.418615 +0000 UTC} logging:{map[enabled:{true}]} ref:{36a0591647b34a89bf21ea67680e3529} version:{1}]}]}
I1107 15:56:09.819734   15965 rpc.go:77] Marshaling property for RPC[Provider[cloudflare, 0x1400263a140].Diff(urn:pulumi:dev::cloudflare620::cloudflare:index/ruleset:Ruleset::waf,0f10e9868c6f4501b53daee96b196949).oldOutputs]: action={skip}
I1107 15:56:09.819743   15965 rpc.go:77] Marshaling property for RPC[Provider[cloudflare, 0x1400263a140].Diff(urn:pulumi:dev::cloudflare620::cloudflare:index/ruleset:Ruleset::waf,0f10e9868c6f4501b53daee96b196949).oldOutputs]: actionParameters={map[algorithms:{[]} autominifies:{[]} headers:{[]} phases:{[{http_request_firewall_managed}]} products:{[{securityLevel}]} responses:{[]} ruleset:{current}]}
I1107 15:56:09.819747   15965 rpc.go:77] Marshaling property for RPC[Provider[cloudflare, 0x1400263a140].Diff(urn:pulumi:dev::cloudflare620::cloudflare:index/ruleset:Ruleset::waf,0f10e9868c6f4501b53daee96b196949).oldOutputs]: algorithms={[]}
I1107 15:56:09.819750   15965 rpc.go:77] Marshaling property for RPC[Provider[cloudflare, 0x1400263a140].Diff(urn:pulumi:dev::cloudflare620::cloudflare:index/ruleset:Ruleset::waf,0f10e9868c6f4501b53daee96b196949).oldOutputs]: autominifies={[]}
I1107 15:56:09.819754   15965 rpc.go:77] Marshaling property for RPC[Provider[cloudflare, 0x1400263a140].Diff(urn:pulumi:dev::cloudflare620::cloudflare:index/ruleset:Ruleset::waf,0f10e9868c6f4501b53daee96b196949).oldOutputs]: headers={[]}
I1107 15:56:09.819757   15965 rpc.go:77] Marshaling property for RPC[Provider[cloudflare, 0x1400263a140].Diff(urn:pulumi:dev::cloudflare620::cloudflare:index/ruleset:Ruleset::waf,0f10e9868c6f4501b53daee96b196949).oldOutputs]: phases={[{http_request_firewall_managed}]}
I1107 15:56:09.819765   15965 rpc.go:77] Marshaling property for RPC[Provider[cloudflare, 0x1400263a140].Diff(urn:pulumi:dev::cloudflare620::cloudflare:index/ruleset:Ruleset::waf,0f10e9868c6f4501b53daee96b196949).oldOutputs]: products={[{securityLevel}]}
I1107 15:56:09.819768   15965 rpc.go:77] Marshaling property for RPC[Provider[cloudflare, 0x1400263a140].Diff(urn:pulumi:dev::cloudflare620::cloudflare:index/ruleset:Ruleset::waf,0f10e9868c6f4501b53daee96b196949).oldOutputs]: responses={[]}
I1107 15:56:09.819772   15965 rpc.go:77] Marshaling property for RPC[Provider[cloudflare, 0x1400263a140].Diff(urn:pulumi:dev::cloudflare620::cloudflare:index/ruleset:Ruleset::waf,0f10e9868c6f4501b53daee96b196949).oldOutputs]: ruleset={current}
I1107 15:56:09.819775   15965 rpc.go:77] Marshaling property for RPC[Provider[cloudflare, 0x1400263a140].Diff(urn:pulumi:dev::cloudflare620::cloudflare:index/ruleset:Ruleset::waf,0f10e9868c6f4501b53daee96b196949).oldOutputs]: description={Test}
I1107 15:56:09.819779   15965 rpc.go:77] Marshaling property for RPC[Provider[cloudflare, 0x1400263a140].Diff(urn:pulumi:dev::cloudflare620::cloudflare:index/ruleset:Ruleset::waf,0f10e9868c6f4501b53daee96b196949).oldOutputs]: enabled={false}
I1107 15:56:09.819782   15965 rpc.go:77] Marshaling property for RPC[Provider[cloudflare, 0x1400263a140].Diff(urn:pulumi:dev::cloudflare620::cloudflare:index/ruleset:Ruleset::waf,0f10e9868c6f4501b53daee96b196949).oldOutputs]: expression={true}
I1107 15:56:09.819785   15965 rpc.go:77] Marshaling property for RPC[Provider[cloudflare, 0x1400263a140].Diff(urn:pulumi:dev::cloudflare620::cloudflare:index/ruleset:Ruleset::waf,0f10e9868c6f4501b53daee96b196949).oldOutputs]: id={36a0591647b34a89bf21ea67680e3529}
I1107 15:56:09.819788   15965 rpc.go:77] Marshaling property for RPC[Provider[cloudflare, 0x1400263a140].Diff(urn:pulumi:dev::cloudflare620::cloudflare:index/ruleset:Ruleset::waf,0f10e9868c6f4501b53daee96b196949).oldOutputs]: lastUpdated={2024-11-07 23:55:06.418615 +0000 UTC}
I1107 15:56:09.819792   15965 rpc.go:77] Marshaling property for RPC[Provider[cloudflare, 0x1400263a140].Diff(urn:pulumi:dev::cloudflare620::cloudflare:index/ruleset:Ruleset::waf,0f10e9868c6f4501b53daee96b196949).oldOutputs]: logging={map[enabled:{true}]}
I1107 15:56:09.819795   15965 rpc.go:77] Marshaling property for RPC[Provider[cloudflare, 0x1400263a140].Diff(urn:pulumi:dev::cloudflare620::cloudflare:index/ruleset:Ruleset::waf,0f10e9868c6f4501b53daee96b196949).oldOutputs]: enabled={true}
I1107 15:56:09.819798   15965 rpc.go:77] Marshaling property for RPC[Provider[cloudflare, 0x1400263a140].Diff(urn:pulumi:dev::cloudflare620::cloudflare:index/ruleset:Ruleset::waf,0f10e9868c6f4501b53daee96b196949).oldOutputs]: ref={36a0591647b34a89bf21ea67680e3529}
I1107 15:56:09.819807   15965 rpc.go:77] Marshaling property for RPC[Provider[cloudflare, 0x1400263a140].Diff(urn:pulumi:dev::cloudflare620::cloudflare:index/ruleset:Ruleset::waf,0f10e9868c6f4501b53daee96b196949).oldOutputs]: version={1}
I1107 15:56:09.819811   15965 rpc.go:77] Marshaling property for RPC[Provider[cloudflare, 0x1400263a140].Diff(urn:pulumi:dev::cloudflare620::cloudflare:index/ruleset:Ruleset::waf,0f10e9868c6f4501b53daee96b196949).oldOutputs]: zoneId={9dc360d8b34a71961634d6e2c5b31830}
I1107 15:56:09.819814   15965 rpc.go:77] Marshaling property for RPC[Provider[cloudflare, 0x1400263a140].Diff(urn:pulumi:dev::cloudflare620::cloudflare:index/ruleset:Ruleset::waf,0f10e9868c6f4501b53daee96b196949).newInputs]: kind={zone}
I1107 15:56:09.819818   15965 rpc.go:77] Marshaling property for RPC[Provider[cloudflare, 0x1400263a140].Diff(urn:pulumi:dev::cloudflare620::cloudflare:index/ruleset:Ruleset::waf,0f10e9868c6f4501b53daee96b196949).newInputs]: name={Custom WAF}
I1107 15:56:09.819821   15965 rpc.go:77] Marshaling property for RPC[Provider[cloudflare, 0x1400263a140].Diff(urn:pulumi:dev::cloudflare620::cloudflare:index/ruleset:Ruleset::waf,0f10e9868c6f4501b53daee96b196949).newInputs]: phase={http_request_firewall_custom}
I1107 15:56:09.819827   15965 rpc.go:77] Marshaling property for RPC[Provider[cloudflare, 0x1400263a140].Diff(urn:pulumi:dev::cloudflare620::cloudflare:index/ruleset:Ruleset::waf,0f10e9868c6f4501b53daee96b196949).newInputs]: rules={[{map[action:{skip} actionParameters:{map[phases:{[{http_request_firewall_managed}]} products:{[{securityLevel}]} ruleset:{current}]} description:{Test} enabled:{false} expression:{true}]}]}
I1107 15:56:09.819831   15965 rpc.go:77] Marshaling property for RPC[Provider[cloudflare, 0x1400263a140].Diff(urn:pulumi:dev::cloudflare620::cloudflare:index/ruleset:Ruleset::waf,0f10e9868c6f4501b53daee96b196949).newInputs]: action={skip}
I1107 15:56:09.819835   15965 rpc.go:77] Marshaling property for RPC[Provider[cloudflare, 0x1400263a140].Diff(urn:pulumi:dev::cloudflare620::cloudflare:index/ruleset:Ruleset::waf,0f10e9868c6f4501b53daee96b196949).newInputs]: actionParameters={map[phases:{[{http_request_firewall_managed}]} products:{[{securityLevel}]} ruleset:{current}]}
I1107 15:56:09.819839   15965 rpc.go:77] Marshaling property for RPC[Provider[cloudflare, 0x1400263a140].Diff(urn:pulumi:dev::cloudflare620::cloudflare:index/ruleset:Ruleset::waf,0f10e9868c6f4501b53daee96b196949).newInputs]: phases={[{http_request_firewall_managed}]}
I1107 15:56:09.819842   15965 rpc.go:77] Marshaling property for RPC[Provider[cloudflare, 0x1400263a140].Diff(urn:pulumi:dev::cloudflare620::cloudflare:index/ruleset:Ruleset::waf,0f10e9868c6f4501b53daee96b196949).newInputs]: products={[{securityLevel}]}
I1107 15:56:09.819845   15965 rpc.go:77] Marshaling property for RPC[Provider[cloudflare, 0x1400263a140].Diff(urn:pulumi:dev::cloudflare620::cloudflare:index/ruleset:Ruleset::waf,0f10e9868c6f4501b53daee96b196949).newInputs]: ruleset={current}
I1107 15:56:09.819849   15965 rpc.go:77] Marshaling property for RPC[Provider[cloudflare, 0x1400263a140].Diff(urn:pulumi:dev::cloudflare620::cloudflare:index/ruleset:Ruleset::waf,0f10e9868c6f4501b53daee96b196949).newInputs]: description={Test}
I1107 15:56:09.819852   15965 rpc.go:77] Marshaling property for RPC[Provider[cloudflare, 0x1400263a140].Diff(urn:pulumi:dev::cloudflare620::cloudflare:index/ruleset:Ruleset::waf,0f10e9868c6f4501b53daee96b196949).newInputs]: enabled={false}
I1107 15:56:09.819855   15965 rpc.go:77] Marshaling property for RPC[Provider[cloudflare, 0x1400263a140].Diff(urn:pulumi:dev::cloudflare620::cloudflare:index/ruleset:Ruleset::waf,0f10e9868c6f4501b53daee96b196949).newInputs]: expression={true}
I1107 15:56:09.819859   15965 rpc.go:77] Marshaling property for RPC[Provider[cloudflare, 0x1400263a140].Diff(urn:pulumi:dev::cloudflare620::cloudflare:index/ruleset:Ruleset::waf,0f10e9868c6f4501b53daee96b196949).newInputs]: zoneId={9dc360d8b34a71961634d6e2c5b31830}
I1107 15:56:09.860250   15965 provider_plugin.go:996] Provider[cloudflare, 0x1400263a140].Diff(urn:pulumi:dev::cloudflare620::cloudflare:index/ruleset:Ruleset::waf,0f10e9868c6f4501b53daee96b196949) success: changes=2 #replaces=[] #stables=[] delbefrepl=false, diffs=#[rules], detaileddiff=map[]

Most concerningly, we are getting a diff on rules but no detaileddiff. I would not have thought the provider (terraform-bridge) was ever allowed to report that combination.

For rules itself, we see the inputs were:

oldInputs]: rules={[{map[action:{skip} actionParameters:{map[phases:{[{http_request_firewall_managed}]} products:{[{securityLevel}]} ruleset:{current}]} description:{Test} enabled:{false} expression:{true}]}]}
oldOutputs]: rules={[{map[action:{skip} actionParameters:{map[algorithms:{[]} autominifies:{[]} headers:{[]} phases:{[{http_request_firewall_managed}]} products:{[{securityLevel}]} responses:{[]} ruleset:{current}]} description:{Test} enabled:{false} expression:{true} id:{36a0591647b34a89bf21ea67680e3529} lastUpdated:{2024-11-07 23:55:06.418615 +0000 UTC} logging:{map[enabled:{true}]} ref:{36a0591647b34a89bf21ea67680e3529} version:{1}]}]}
newInputs]: rules={[{map[action:{skip} actionParameters:{map[phases:{[{http_request_firewall_managed}]} products:{[{securityLevel}]} ruleset:{current}]} description:{Test} enabled:{false} expression:{true}]}]}

The oldInputs and newInputs are identical. But the oldOutputs contains additional properties in rules.actionParameters.

This feels like most likely a diff bug in pulumi-terraform-bridge.

Notably, the same thing happens on a pulumi refresh.

@t0yv0
Copy link
Member

t0yv0 commented Nov 11, 2024

we are getting a diff on rules but no detaileddiff

This is the consequence of pulumi/pulumi-terraform-bridge#752 feature not yet being implemented, I've confirmed that RulesetResource is using the Plugin Framework.

The rest of it seems interesting to drive to resolution - does this repro in TF proper, and if not, where is the bug in the bridge.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug/diff kind/bug related to Pulumi generating wrong diffs on preview or up. kind/bug Some behavior is incorrect or out of spec
Projects
None yet
Development

No branches or pull requests

4 participants