Option A, 100%.
Why change your coding pattern just because a module isn't from the Forge?
Who knows, maybe one day you'll post it yourself on the Forge!
Sometimes I do the full parameter workup like in your example, and
sometimes I just use `include` and let Hiera fill in the parameters,
without having to add 'profile::' at the beginning of every parameter.
You seem to be making things more complicated by using `contains` and those
Refresh arrows though. Why not just use `include`?
On Monday, June 8, 2020 at 5:26:56 PM UTC-4, Alan Evans wrote:
>
> While _most_ things I want to manage via Puppet have modules on the forge
> that are well maintained, tested and highly flexible. Sometimes though, I
> find that there is something that my organizations uses that is just not
> common enough to have a module on the forge.
>
> In roles/profiles we consider things to be layered, with Roles at the top
> and technology specific modules at the bottom. Profiles are our place to
> control the behavior of technology specific modules and add any missing
> functionality or business logic.
>
> How do you deal with technologies that do not have corresponding modules
> on the forge?
>
> *A) Write technology module and profile?*
> Pros:
> - follows established practice
> - most flexible
> Cons:
> - extra work
> - possible duplication of effort
>
> class foo ($param1, $param2, ... $paramN) {
> contain foo::install
> contain foo::config
> contain foo::service
> Class['foo::install'] -> Class['foo::config'] -> Class['foo::service']
> }
>
>
> class profile::foo ($param1 = 'my_default', $param2 = 'other_default', ...
> $paramN) {
> foo {
> param1 => $param1,
> param2 => $param2,
> ...
> paramN = $paramN,
> }
> }
>
>
> *B) Put it all in a profile?*
> Pros:
> - less work
> - probably still flexible since you control the whole thing
> Cons:
> - does not match established practices
>
> class profile::foo ($param1 = 'my_default', $param2 = 'other_default', ...
> $paramN) {
> contain profile::foo::install
> contain profile::foo::config
> contain profile::foo::service
> Class['profile::foo::install'] -> Class['profile::foo::config'] -> Class
> ['profile::foo::service']
> }
>
>
>
> How have you handled this scenario in the past?
>
> Thank you,
> -Alan
>
--
You received this message because you are subscribed to the Google Groups
"Puppet Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/puppet-users/7181b554-99b5-4e64-80f2-90a7e1e12b76o%40googlegroups.com.