[ 
https://issues.apache.org/jira/browse/MESOS-6628?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Benjamin Mahler updated MESOS-6628:
-----------------------------------
    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.

{code}
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;
  }

  ...
}
{code}

Validation will be added in MESOS-6629 and we will prevent roles from being 
modified in MESOS-6631.

  was:
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.

{code}
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;

  ...
}
{code}

Validation will be added in MESOS-6629 and we will prevent roles from being 
modified in MESOS-6631.


> Add a FrameworkInfo.roles field along with a MULTI_ROLE capability.
> -------------------------------------------------------------------
>
>                 Key: MESOS-6628
>                 URL: https://issues.apache.org/jira/browse/MESOS-6628
>             Project: Mesos
>          Issue Type: Task
>          Components: framework api
>            Reporter: Benjamin Mahler
>
> 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.
> {code}
> 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;
>   }
>   ...
> }
> {code}
> Validation will be added in MESOS-6629 and we will prevent roles from being 
> modified in MESOS-6631.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to