I thought I'd kick off discussion of this ARM,
https://github.com/puppetlabs/armatures/pull/60/files
(I started discussion in the pull req, but this is probably a better
place for it)
First, the summary is about the implementation - it should probably
start with the goal: "load balancers should be able to poll masters
for their status, to support removal of malfunctioning masters from
the pool" or the like. The summary's the first (and sometimes only)
place people will look, so you have to hook them in early. Then you
can go on to discuss implementation.
Let me know if I've mischaracterized the intent.
Second, as someone who had never heard of the status indirection, the
description is confusing as to what exists and what doesn't. It might
be nice to split that up into "current functionality" and "proposed
functionality".
Perhaps include an example of both -- for me:
dmitchell@releng-puppet2 ~ $ curl -k
https://puppet:8140/production/status/no_key
Forbidden request:
releng-puppet2.srv.releng.scl3.mozilla.com(10.26.48.50) access to
/status/no_key [find] at :115
I think you're also suggesting additional keys beyond `is_alive`.
Again, an example might make that clearer.
Finally, on a technical basis, I'm not clear on how command-line
switches would translate into changes of state for a running master.
Is that through another operation on the REST endpoint?
I think this sounds like a great idea. Will you be able to implement
it, once the ARM is ironed out?
Dustin
--
You received this message because you are subscribed to the Google Groups "Puppet Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to puppet-dev+...@googlegroups.com.
To post to this group, send email to puppe...@googlegroups.com.
Visit this group at http://groups.google.com/group/puppet-dev.
For more options, visit https://groups.google.com/groups/opt_out.
The current situation is that master monitoring basically consists of
a no-op HTTP request. We'd like to get to a point where it includes
live status of the master. It makes sense for that live status to
include among other things some manually-flippable "in_service?" kind
of switch.
My understanding of the ARM is that it gets us a small step closer to
the latter, with a small code change. I think it makes a lot of sense
in that light, although it is perhaps not very ambitious for an ARM.
Dustin
--
You received this message because you are subscribed to the Google Groups "Puppet Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to puppet-dev+...@googlegroups.com.
To post to this group, send email to puppe...@googlegroups.com.
Visit this group at http://groups.google.com/group/puppet-dev.
For more options, visit https://groups.google.com/groups/opt_out.
It's not quite *static* content. I can see a lot of ways that this
might be useful to users. For example, I host yum/apt/DMG repos (and
maybe nuget too!) on my puppet masters, and as I scale puppet masters
I will want to use shared storage for those - probably NFS. So being
able to add the state of that NFS mount to my server status would be
useful -- if the mount is unavailable, the load balancer should skip
that master and I should get an alert via the monitoring system. But,
I could do that with a crontask that just kills the puppetmaster if
the mount is inaccessible. The effect would be the same, and probably
just as quick.
Another use is to take a master out of service gracefully, manually.
That's the original motivation for this ARM. However, it occurs to me
that this is usually best done via the load balancer itself - it
should have some UI for removing a node or nodes from the pool.
The more we discuss this, as written, the less useful it sounds.
Morphing it into a "make puppet monitorable as a rack app" seems like
a *big* change.
Dustin
--
You received this message because you are subscribed to the Google Groups "Puppet Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to puppet-dev+...@googlegroups.com.
To post to this group, send email to puppe...@googlegroups.com.
Visit this group at http://groups.google.com/group/puppet-dev.
For more options, visit https://groups.google.com/groups/opt_out.