Auto-assign a 'finish deploy' class to new hosts
|Assignee:||Ohad Levy||% Done:|
|Difficulty:||medium||Found in release:|
|Velocity based estimate||-|
When using rackspace, internap, or even EC2, the machines come pre-loaded with a base set of packages. The first thing I tend to do with one of these machines is to assign it a bootstrap class, and have it brought up to my current package set, before I assign it any other classes.
For instance, in my 0.4.2 Foreman setup, I have a userdata script that executes a curl call to Foreman from the new instance when it is done with cloud-init. The curl call adds the new host in via the Foreman API. Once I see this host in Foreman, I start assigning classes to it, and then kickoff puppetrun.
It would be handy if, when a new machine notifies Foreman that it is now present, that machine could be assigned to a class based upon either:
1. An API call, or
2. Assignment by rules similar to the TFTP rules for kickstart and such.
and then the new instance can continue the bootstrapping on it's own.