puppetlabs / puppetlabs-pecdm

Puppet Bolt driven fusion of puppetlabs/peadm and Terraform.
Apache License 2.0
14 stars 18 forks source link

Empty inventory.yaml to prevent failures #66

Closed ody closed 1 year ago

ody commented 2 years ago

Bolt's inventory.yaml is limited in how dynamic is can be when combined with the Terraform plugin, this limitation results in failures in some deployment scenarios which are supported by pecdm::provision, e.g. those which depend entirely on private IP addresses. This commit removes references to the plugin, which were not required for provisioning to function because the plan constructs its own inventory upon execution.

Example inventory files for each supported cloud can now be found in the examples directory. These inventory files can be used in the event you want to run non-pecdm Bolt plans and tasks against a successfully provisioned cluster.

reidmv commented 2 years ago

I have super-mixed feelings on this. I agree that we need to fix the issues, but it is a big usability thing to have inventory working out-of-the-box.

@ody, do you know/remember if there's an alternative way to fix this, e.g. upstream in Bolt?

ody commented 2 years ago

@reidmv I did a little digging and I do see a way to make this work but we should talk about it. It requires we add logic here: https://github.com/puppetlabs/puppetlabs-ruby_plugin_helper/blob/main/lib/plugin_helper.rb#L17-L63.

reidmv commented 2 years ago

Talked IRL. We should leave the inventory as-is, explore fixing the plugin to enable both use cases, but for now document what to do for those users who do not have public IP addrs for their instances.