As the Puppet documentation on roles and profiles states (https://puppet.com/docs/pe/2017.3/managing_nodes/roles_and_profiles_example.html#the-rules-for-profile-classes), there is a trade-off regarding how to set the parameters provided to component modules, and we should base our decision on how readable the code is versus how flexible the business data needs to be.
That is, if we always use the same value for a certain parameter, we can hardcode it (highly readable), we can compute the value for a parameter based on, for example, facts (quite readable and somewhat flexible), or we can look up the value of a parameter in our business data hierarchy (highly flexible).