I figured out how to do this, by the way.  In site.pp, adding:

Lvm::Logical_volume {
  fs_type => lookup('foo::default_fstype'),
  options => lookup('foo::default_options'),
  size_is_minsize => true,
}

did the trick.  Theoretically I could have done something with '*' => 
lookup('foo::default_options') or whatever but this was fine for now.

https://puppet.com/docs/puppet/5.5/lang_defaults.html has more 
documentation on the matter.

-stefan


On Monday, August 31, 2020 at 11:28:52 AM UTC-5 Stefan Strandberg wrote:

> Hello,
>
> I have a use case where I'm trying to set a default variable for a defined 
> type parameter that's unfortunately fairly nested.  Perhaps there's an 
> obvious solution for this that I'm missing, but I'm not finding it.
>
> In my specific use case, we're trying to have the puppetlabs-lvm class 
> managed wholly in hiera, with an example as follows:
>
> lvm::volume_groups:
>   Volume00:
>     physical_volumes:
>       - /dev/sda3
>     logical_volumes:
>       root:
>         size: 2G
>         mountpath: /
>         fs_type: xfs
>       usr:
>         size: 4G
>         mountpath: /
>         options: defaults,nodev
>         fs_type: xfs
>
> And so forth.  Unfortunately, it gets cumbersome setting fs_type to xfs 
> for every single mount, especially when spread across multiple yamls.  
> Unfortunately, the puppetlabs-lvm logical_volume.pp is a defined type that 
> defaults fs_type to ext4, and I'm not sure how to override that as a 
> default without having to enter it in for every single filesystem.
>
> Is there any way to do this, or does it need to be done specifically for 
> every single filesystem?  I think it's a bit too nested for a wrapper class 
> that calls create_resources('lvm::volume_groups', $my_filesystems, 
> $my_defaults) or similar, I think I'd have to instead create at least two 
> wrappers which I'd rather avoid and keep this as simple as practical.
>
> So, I suppose in summary the question is if there's any way to effectively 
> globally override a defined type's parameter default value solely in hiera 
> and without writing wrapper classes?
>
> Thanks,
>
> -stefan
>
>

-- 
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 puppet-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/puppet-users/bd43edbb-15c7-4049-8e66-73844f094924n%40googlegroups.com.

Reply via email to