Open
Description
Use Case
When implementing providers for multiple different backend implementations with similar resources (types), having to implement multiple copies of the type is tedious and error prone.
Examples:
- various flavours of mysql (mysql, mariadb, percona)
- implementations of netdev_stdlib types
- several core types (package, user, exec, ...)
Describe the Solution You Would Like
???
Describe Alternatives You've Considered
- using composite namevars to expose the different implementations
- hiding the implementation details completely within a provider
- implement distinct types and provide unified usage through a defined type in puppet
Additional Context
- https://github.com/puppetlabs/puppet-specifications/blob/master/language/resource-api/README.md#multiple-providers-for-the-same-type
- https://groups.google.com/d/msgid/puppet-users/194dfe1f-ff97-4388-92f7-be755de24d7b%40googlegroups.com?utm_medium=email&utm_source=footer
- Originally raised in https://tickets.puppetlabs.com/browse/PDK-530.
- a lesser for of this, transport-specific providers, has been implemented in PDK-1185 and (PDK-1185) Implement allowances for device-specific providers #126