Details
-
Task
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
-
Mesosphere Sprint 16, Mesosphere Sprint 17
-
8
Description
Based on MESOS-1474, we'd like to provide an HTTP API on the master for the maintenance primitives in mesos.
For the MVP, we'll want something like this for manipulating the schedule:
/maintenance/schedule GET - returns the schedule, which will include the various maintenance windows. POST - create or update the schedule with a JSON blob (see below). /maintenance/status GET - returns a list of machines and their maintenance mode. /maintenance/start POST - Transition a set of machines from Draining into Deactivated mode. /maintenance/stop POST - Transition a set of machines from Deactivated into Normal mode. /maintenance/consensus <- (Not sure what the right name is. matrix? acceptance?) GET - Returns the latest info on which frameworks have accepted or declined the maintenance schedule.
(Note: The slashes in URLs might not be supported yet.)
A schedule might look like:
{ "windows" : [ { "machines" : [ { "ip" : "192.168.0.1" }, { "hostname" : "localhost" }, ... ], "unavailability" : { "start" : 12345, // Epoch seconds. "duration" : 1000 // Seconds. } }, ... ] }
There should be firewall settings such that only those with access to master can use these endpoints.
Attachments
Issue Links
- blocks
-
MESOS-3038 Resource offers do not contain Unavailability, given a maintenance schedule
- Resolved
-
MESOS-3265 Starting maintenance needs to deactivate agents and kill tasks.
- Resolved
- contains
-
MESOS-1476 Provide endpoints for deactivating / activating slaves.
- Resolved
- is blocked by
-
MESOS-2075 Add maintenance information to the replicated registry.
- Resolved
- relates to
-
MESOS-3069 Registry operations do not exist for manipulating maintanence schedules
- Resolved