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.
Description of feature
Blocked on dokku/dokku#8928.
dokku_traefik_propertynever probes thedns-provider-*family, so setting one of those properties reports drift on everyplanand the task never converges.traefik:reportdoes not surface those keys today, which is whyisDynamicPropertyintasks/properties.goshort-circuitstraefik+dns-provider-torunUnprobedSet/runUnprobedUnset, and whydokku_traefik_propertyis declaredProbePartialin #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:
isDynamicProperty's validation bypass, since the<KEY>half is an arbitrary provider environment-variable name that cannot be enumerated intraefikPropertyKeys.Global: "global-dns-provider-" + keyhalf alone, withPerAppleft empty.Requirements()matching the dokku release that carries the change, and degrade to the unprobed path below it rather than emitting anunknown_propertywarning.dokku_traefik_propertyfromProbePartialtoProbeSupported.TestProbeSupportMatchesPlanWiringwill not catch a stale declaration here on its own, since the task already has a reachable in-sync result throughplanProperty.Worth doing after #449 rather than alongside it, so the letsencrypt side settles the pattern first and traefik follows it.