Jira (PUP-7755) [research] workflow replacement for per-environment (plugin-sync) facts

6 views
Skip to first unread message

Moses Mendoza (JIRA)

unread,
Jul 5, 2017, 4:54:03 PM7/5/17
to puppe...@googlegroups.com
Moses Mendoza created an issue
 
Puppet / Improvement PUP-7755
[research] workflow replacement for per-environment (plugin-sync) facts
Issue Type: Improvement Improvement
Assignee: Unassigned
Created: 2017/07/05 1:53 PM
Priority: Normal Normal
Reporter: Moses Mendoza

This ticket is to explore how we could cease supporting plugin facts on a per-environment basis.

Currently per-environment plugin facts can be used as an input to node classification, which means a node may end up issuing multiple plugin downloads and catalog requests during a single run as it attempts to reconcile its environment with the one specified in its catalog.

This goes something like this:
1) agent with 'production' environment requests catalog
2) catalog specifies 'dev' environment
3) agent plugin-syncs from 'dev' environment
4) 'dev' environment plugins include new facts
5) agent submits catalog request with new facts, resulting in different classification
6) new catalog specifies 'test' environment
7) agent plugin-syncs from 'tests' environment
...
and so on up to 4 times.

The net effect on performance is non-trivial, as a worst-case agent run can generate 4x the load and nearly as many network calls. The logic in Puppet::Configurer is overly complex to accommodate.

Eliminating per-environment facts could dramatically simplify the agent run lifecycle by reducing the number of requests and environment switching logic in the configurer. This is a backwards-incompatible change that would require some sort of workflow replacement for users relying on per-environment facts. Many modules deliver facts (this is a standard mechanism for distribution of custom facts) - making them per-environment by default.

From a workflow perspective, we should investigate

  • what are the use-cases for plugin-facts that are dependent on their environment?
  • are there other ways we could achieve these without using facts?
  • how would we support distributing facts without placing them in modules, or is there another way?
  • is this even worth it?
Add Comment Add Comment
 
This message was sent by Atlassian JIRA (v6.4.14#64029-sha1:ae256fe)
Atlassian logo

Moses Mendoza (JIRA)

unread,
Jul 6, 2017, 4:30:03 PM7/6/17
to puppe...@googlegroups.com
Moses Mendoza commented on Improvement PUP-7755
 
Re: [research] workflow replacement for per-environment (plugin-sync) facts

cc Josh Cooper. I filed this yesterday but we may want to expand scope per your comments in roadmapping - ie revisit all of plugin sync not just fact distribution

Thomas Mueller (JIRA)

unread,
Jul 12, 2017, 8:13:02 AM7/12/17
to puppe...@googlegroups.com

a possible use case for per-environment facts:

  • a user has different environments for different OS types (AIX, Linux, Windows). Custom facts AIX env facts should not be present in Linux and Windows. Because AIX folks (or Linux or Windows) don't test their facts on other OS-es it might poison the other environments (failing facts, naming clashes, ...).
  • also if the puppetserver is shared among different businessunits/organizations they might not want share the custom facts because they have their very own envs.

Sometimes I even wished the facts could be distributed only to some hosts and not every node conntected to the env. Some custom facts are only needed for some specific modules (better said, are only used with some specific roles) and it does not make sense to distribute the custom fact to all servers.

Josh Cooper (Jira)

unread,
May 3, 2021, 1:11:02 PM5/3/21
to puppe...@googlegroups.com
Josh Cooper updated an issue
 
Change By: Josh Cooper
Epic Link: PUP- 5773 11032
This message was sent by Atlassian Jira (v8.13.2#813002-sha1:c495a97)
Atlassian logo

Josh Cooper (Jira)

unread,
May 11, 2021, 12:27:04 PM5/11/21
to puppe...@googlegroups.com

Josh Cooper (Jira)

unread,
Jun 10, 2021, 3:56:02 PM6/10/21
to puppe...@googlegroups.com
Josh Cooper commented on Improvement PUP-7755
 
Re: [research] workflow replacement for per-environment (plugin-sync) facts

We don't have plans on changing how facts can be distributed per environment, so I'm going to close this. However, we do have plans on making that process more efficient, especially when an agent is provisioned or changes to environments. See PUP-11032.

Reply all
Reply to author
Forward
0 new messages