Skip to content

Probe traefik dns-provider-* properties once traefik:report surfaces them #450

Description

@josegonzalez

Description of feature

Blocked on dokku/dokku#8928.

dokku_traefik_property never probes the dns-provider-* family, so setting one of those properties reports drift on every plan and the task never converges. traefik:report does not surface those keys today, which is why isDynamicProperty in tasks/properties.go short-circuits traefik + dns-provider- to runUnprobedSet / runUnprobedUnset, and why dokku_traefik_property is declared ProbePartial in #448.

dokku/dokku#8928 asks the traefik plugin to surface them the way dokku-letsencrypt did in dokku/dokku-letsencrypt#413. Once that lands, docket should probe them, mirroring whatever shape #449 settles on for letsencrypt:

  • Keep isDynamicProperty's validation bypass, since the <KEY> half is an arbitrary provider environment-variable name that cannot be enumerated in traefikPropertyKeys.
  • Synthesize the probe key rather than skipping the probe. Traefik's properties are global-only, so it is the Global: "global-dns-provider-" + key half alone, with PerApp left empty.
  • Add a version floor to Requirements() matching the dokku release that carries the change, and degrade to the unprobed path below it rather than emitting an unknown_property warning.
  • Move dokku_traefik_property from ProbePartial to ProbeSupported. TestProbeSupportMatchesPlanWiring will not catch a stale declaration here on its own, since the task already has a reachable in-sync result through planProperty.

Worth doing after #449 rather than alongside it, so the letsencrypt side settles the pattern first and traefik follows it.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions