puppetlabs / puppetlabs/puppet-resource_api
enable multiple providers for the same type
Open
Nobody has claimed this yet.
research
- Dominant language
- Ruby
- Stars
- 27
- Forks
- 42
- PR merge metrics
- No merged PRs in 30d
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 #126
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the multiple-providers-for-the-same-type section of the linked resource API specification, then compare the transport-specific provider work in PDK-1185 and #126. The issue does not identify implementation files, tests, or a defined solution, so acceptance criteria and a concrete definition of done need to be established first.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- ruby
- Domain
- devtools
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100