Details
-
Task
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
-
None
Description
In order to support frameworks having multiple roles, we will introduce a FrameworkInfo.roles field as a repeated string.
Note that because we cannot distinguish between an empty set of roles (new-style framework wanting no roles) and an unset role (old-style framework wanting the "*" role), we must introduce a framework capability (i.e. MULTI_ROLE). This capability will be required for a framework to use the new roles field.
message FrameworkInfo { ... // Roles are the entities to which allocations are made. // The framework must have at least one role in order to // be offered resources. Note that `role` is deprecated // in favor of `roles` and only one of these fields must // be used. Since we cannot distinguish between empty // `roles` and the default unset `role`, we require that // frameworks set the `MULTI_ROLE` capability if // setting the `roles` field. optional string role = 6 [default="*", deprecated=true]; repeated string roles = 12; message Capability { enum Type { ... // This expresses the ability for the framework to be // "multi-tenant" via using the newly introduced `roles` // field, and examining `Offer.allocation_info` to determine // which role the offers are being made to. We also // expect that "single-tenant" schedulers eventually // provide this and move away from the deprecated // `role` field. MULTI_ROLE = 3; } optional Type type = 1; } ... }
Validation will be added in MESOS-6629 and we will prevent roles from being modified in MESOS-6631.
Attachments
Issue Links
- is depended upon by
-
MESOS-6629 Add master validation of FrameworkInfo.roles.
- Resolved