Skip to content

Invalid Provider Server Combination #293

@nick-oconnor

Description

@nick-oconnor

Terraform CLI and Provider Versions

terraform: v1.4.5
terraform-provider-dns: v3.3.1

Terraform Configuration

No provider config outside of the following env vars:

DNS_UPDATE_SERVER="..."
DNS_UPDATE_KEYNAME="..."
DNS_UPDATE_KEYALGORITHM="hmac-sha256"
DNS_UPDATE_KEYSECRET="..."

Expected Behavior

Terraform does not complain about the DNS provider.

Actual Behavior

Terraform complains about the provider after successfully applying changes.

Steps to Reproduce

  1. terraform apply

How much impact is this issue causing?

Low

Logs

Invalid Provider Server Combination

  with provider["registry.terraform.io/hashicorp/dns"],
  on <empty> line 0:
  (source code not available)

The combined provider has differing provider schema implementations across providers. Provider schemas must be identical across providers. This is always an issue in the provider implementation and should be reported to the provider
developers.

Provider schema difference:   &tfprotov5.Schema{
        Version: 0,
        Block: &tfprotov5.SchemaBlock{
                Version:    0,
                Attributes: nil,
                BlockTypes: []*tfprotov5.SchemaNestedBlock{
                        &{
                                TypeName: "update",
                                Block: &tfprotov5.SchemaBlock{
                                        Version: 0,
                                        Attributes: []*tfprotov5.SchemaAttribute{
                                                ... // 3 identical elements
                                                &{Name: "port", Type: s"tftypes.Number", Description: "The target UDP port on the server where updates are sent to. Def"..., Optional: true, ...},
                                                &{Name: "retries", Type: s"tftypes.Number", Description: "How many times to retry on connection timeout. Defaults to `3`.", Optional: true, ...},
                                                &{
                                                        Name:        "server",
                                                        Type:        s"tftypes.String",
                                                        Description: "The hostname or IP address of the DNS server to send updates to.",
-                                                       Required:    false,
+                                                       Required:    true,
-                                                       Optional:    true,
+                                                       Optional:    false,
                                                        Computed:    false,
                                                        Sensitive:   false,
                                                        ... // 2 identical fields
                                                },
                                                &{Name: "timeout", Type: s"tftypes.String", Description: "Timeout for DNS queries. Valid values are durations expressed as"..., Optional: true, ...},
                                                &{Name: "transport", Type: s"tftypes.String", Description: "Transport to use for DNS queries. Valid values are `udp`, `udp4`"..., Optional: true, ...},
                                        },
                                        BlockTypes:  {&{TypeName: "gssapi", Block: &{Attributes: {&{Name: "keytab", Type: s"tftypes.String", Description: "This or `password` is required if `username` is set, not support"..., Optional: true, ...}, &{Name: "password",
Type: s"tftypes.String", Description: "This or `keytab` is required if `username` is set. The matching "..., Optional: true, ...}, &{Name: "realm", Type: s"tftypes.String", Description: "The Kerberos realm or Active Directory domain.",
Required: true, ...}, &{Name: "username", Type: s"tftypes.String", Description: "The name of the user to authenticate as. If not set the current "..., Optional: true, ...}}, Description: "A `gssapi` block. Only one `gssapi` block may
be in the configur"...}, Nesting: s"LIST"}},
                                        Description: "When the provider is used for DNS updates, this block is required.",
                                        ... // 2 identical fields
                                },
                                Nesting: s"LIST",
                                ... // 2 ignored fields
                        },
                },
                Description:     "",
                DescriptionKind: s"PLAIN",
                Deprecated:      false,
        },
  }

Additional Information

This didn't use to be an issue.

Code of Conduct

  • I agree to follow this project's Code of Conduct

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions