Missing values in node.rb output
I'm using the ENC and node.rb mechanism with Foreman version 1.7.4
One of my nodes has suddenly started omitting certain critical classes in the output from the node.rb script.
When I click on the YAML link on the host detail page everything looks OK, but when I run the script there are certain details missing.
It's worth noting that:
- I think they are the most recently added classes
- There are a large number of interfaces on this host which have been erroneously uploaded by the puppet facts.
Issue http://projects.theforeman.org/issues/10279 seems relevant here as well.
This host is a docker server, so it has had lots of ephemeral interfaces named veth??????? which were uploaded to foreman automatically by puppet.
There are 619 interfaces beginning with 'veth' listed when I look at the output from the YAML link, but only 422 isted in the output from node.rb.
I don't want any of these interfaces to be defined, so I have temporarily enabled 'ignore_puppet_facts_for_provisioning' but I can't currently delete these interfaces from this host because it happens to be unmanaged, so I don't have the option to delete them in the interface. I haven't yet tried deleting them in the Rails console.
So it seems to me that it might be something to do with the total size of the yaml output. The output form the YAML link is 109KB but the size of the output from the node.rb script is only 76KB
#3 Updated by Ben Tullis over 6 years ago
I temporarily switch the host into managed mode, then deleted the 619 'veth******' interfaces with a lot of clicking.
I then re-ran puppet on the client and it successfully retrieved the correct classes and parameters.
It also uploaded the details of the 11 current 'veth' docker interfaces, despite the ignore_puppet_facts_for_provisioning' setting (because this is 1.7)
However, the size of the new yaml output is only 5.2KB and it works as expected, so it would indeed seem to be something to do with the size of the output.
#4 Updated by Marek Hulán about 6 years ago
- Status changed from New to Feedback
Could you please test with newer Foreman? ignore_puppet_facts_for_provisioning has been improved to ignore all interfaces updating, not just primary. Also we allowed nic management for unmanaged hosts in 1.8. There's a new feature to ignore specific interfaces, please see #11972 for more details. It will be part of Foreman 1.11.
#5 Updated by Ben Tullis about 6 years ago
Hi. Thanks for coming back to me.
I can confirm that my 'veth' interfaces are no longer being added to Foreman after an upgrade from 1.7.4 to 1.9.3.
I do still have the 'ignore_puppet_facts_for_provisioning' set to true.
However I haven't been able to test whether the node.rb script still would still truncate its output if there /were/ lots of extra network interfaces defined.
In my case, I'm content that I'm no longer affected by this bug, whether it's still present or not.
If I can do anything else to help, bearing in mind that I'm only working with a production Foreman instance, please do let me know.