muhlba91/pulumi-proxmoxve

[Python] AcmeDnsPlugin could not find property 'name' in state

Closed this issue · 4 comments

When creating an ACME DNS plugin, I receive the following error when I run pulumi up:

error: Could not find required property 'name' in state. This is an error in proxmoxve resource provider, please report at https://github.com/muhlba91/pulumi-proxmoxve

The creation is still successful, but Pulumi will throw the error and will not update the state accordingly.

Rough code example below:

my_acme_dns_plugin = pulumi_proxmoxve.AcmeDnsPlugin(
    "SomeName",
    api="cf",
    plugin="cloudflare-dns"
    data={...}
    disable=False,
    opts=pulumi.ResourceOptions(provider=my_custom_provider),
)

Let me know if you require more information. Happy to help.

could you share your pulumi stack export as well? (please take care to anonymize sensitive data you might not want to post here.)

Sure. Notice though how no information is exported for the AcmeDnsPlugin resource. Also, the resource is created within a Pulumi resource component class (not sure if this might have an impact or not).

pulumi stack export data below:

{
    "version": 3,
    "deployment": {
        "manifest": {
            "time": "2024-11-02T16:18:54.659793+01:00",
            "magic": "<REDACTED>",
            "version": "v3.137.0"
        },
        "secrets_providers": {
            "type": "passphrase",
            "state": {
                "salt": "<REDACTED>"
            }
        },
        "resources": [
            {
                "urn": "urn:pulumi:test::proxmox_cluster::pulumi:pulumi:Stack::proxmox_cluster-test",
                "custom": false,
                "type": "pulumi:pulumi:Stack",
                "created": "2024-11-02T15:18:53.975352Z",
                "modified": "2024-11-02T15:18:53.975352Z",
                "sourcePosition": "project:///.venv/lib/python3.10/site-packages/pulumi/runtime/stack.py#142"
            },
            {
                "urn": "urn:pulumi:test::proxmox_cluster::pkg:index:BPSProxmox::ProxmoxNode_HOME-TEST-PVE-01",
                "custom": false,
                "type": "pkg:index:BPSProxmox",
                "outputs": {
                    "name": "home-test-pve-01"
                },
                "parent": "urn:pulumi:test::proxmox_cluster::pulumi:pulumi:Stack::proxmox_cluster-test",
                "created": "2024-11-02T15:18:53.979119Z",
                "modified": "2024-11-02T15:18:53.979119Z",
                "sourcePosition": "project:///__main__.py#12"
            },
            {
                "urn": "urn:pulumi:test::proxmox_cluster::pulumi:providers:proxmoxve::HOME-TEST-PVE-01_Provider",
                "custom": true,
                "id": "a51516ca-d532-4c28-92aa-fbc2ff587477",
                "type": "pulumi:providers:proxmoxve",
                "inputs": {
                    "__internal": {
                        "pluginDownloadURL": "github://api.github.com/muhlba91/pulumi-proxmoxve"
                    },
                    "endpoint": "https://<REDACTED>:8006",
                    "insecure": "true",
                    "password": {
                        <REDACTED>
                    },
                    "username": "<REDACTED>",
                    "version": "6.15.2"
                },
                "outputs": {
                    "endpoint": "https://<REDACTED>:8006",
                    "insecure": "true",
                    "password": {
                        <REDACTED>
                    },
                    "username": "<REDACTED>",
                    "version": "6.15.2"
                },
                "parent": "urn:pulumi:test::proxmox_cluster::pulumi:pulumi:Stack::proxmox_cluster-test",
                "propertyDependencies": {
                    "endpoint": [],
                    "insecure": [],
                    "password": [],
                    "username": []
                },
                "additionalSecretOutputs": [
                    "apiToken",
                    "authTicket",
                    "csrfPreventionToken",
                    "password"
                ],
                "created": "2024-11-02T15:18:54.022359Z",
                "modified": "2024-11-02T15:18:54.022359Z",
                "sourcePosition": "project:///.venv/lib/python3.10/site-packages/pulumi_proxmoxve/provider.py#365"
            }
        ],
        "metadata": {}
    }
}

For reference, this is my output when I ran pulumi up and before I exported the stack.

image

i think i found the reason for this error. could you try the new release v6.15.3?

if this solves the bug, the reason is that the upstream provider doesn't provide an id property. hence, i either need to compute an id deterministically, or revert to using a different property as the id. for the AcmeAccount i chose name and did not see that AcmeDnsPlugin has no name property - i used plugin now as the upstream documentation says this is the plugin's identifier.

Can confirm that it works now without throwing any errors, thanks for solving this!