Issue #19350 has been updated by Rob Nelson.

Status changed from Unreviewed to Rejected

The posture of puppet is "manage what you specify, and only what you specify." 
At this time there is no goal to remove unmanaged resources in general or 
unmanage during a delta. If you wish to specifically remove a resource, create 
a resource that says 'ensure => absent'. See 
http://blog.yo61.com/writing-puppet-manifests-that-can-remove-resources-as-well-as-adding-them.html
 for an example.

----------------------------------------
Feature #19350: Stateful Cleanup Messages
https://projects.puppetlabs.com/issues/19350#change-98320

* Author: Kyle Harper
* Status: Rejected
* Priority: Normal
* Assignee: 
* Category: 
* Target version: 
* Affected Puppet version: 
* Keywords: 
* Branch: 
----------------------------------------
Synopsis:
When a resource is removed from a manifest, it remains on the target nodes.  
Puppet should be aware of superfluous items that it has managed in the past, 
and take actions accordingly to help ensure stateful correctness (aka: leave it 
the way you found it).


Cause for Request:
Cruft can be as detrimental to a server's stability as a missing file.  Puppet 
is fantastic about making sure things exist; but it doesn't ever 'look behind' 
to see if it's left a trail of cruft.  There are two situations where cruft can 
come into existence:

1. Human Error
I work on a module or node definition.  Some resources are defined, let's say 
some files.  I later update the module to put the files somewhere else.  I 
forget to go clean up the original files on all my nodes.  I now have 
superfluous files that might be innocuous, or they could be a problem.  
Regardless, asking a human to forward-think all these changes is the antithesis 
of what an automated tool like puppet could be able to achieve.

2. Silent Content Creation
I work on a module or node definition.  I create a resource, we'll say a cron 
entry.  I notice I misspelled "dailyy_backup".  I change it to "daily_backup" 
not realizing an agent already ran and has a cron entry now.  When it runs 
again, there will be two cron entries for my daily backup, and I won't know it.


My Request:
Allow puppet to, at a minimum, compare its current manifest for a node with 
previous manifests for that node.  If a resource was previously defined but is 
no longer managed AND still exists on a node: alert me to a possible clean-up.  
I can then take those alerts and either use puppet to ensure => absent on them 
or simply remove the target resources manually.

The end goal here is to help make puppet do what it does even better:  automate 
configuration and remove human error.


-- 
You have received this notification because you have either subscribed to it, 
or are involved in it.
To change your notification preferences, please click here: 
http://projects.puppetlabs.com/my/account

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Bugs" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to puppet-bugs+unsubscr...@googlegroups.com.
To post to this group, send email to puppet-bugs@googlegroups.com.
Visit this group at http://groups.google.com/group/puppet-bugs.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to