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.

Reply via email to