Skip to content

Device roles to capabilities - #197

Open
ajcraig wants to merge 25 commits into
pre-draftfrom
ajc/roles-to-capabilities
Open

Device roles to capabilities#197
ajcraig wants to merge 25 commits into
pre-draftfrom
ajc/roles-to-capabilities

Conversation

@ajcraig

@ajcraig ajcraig commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

Description

This PR implements the approved strategy to remove device roles in lieu of device capabilities.

Issues Addressed

Implements approved SUP linked below:
margo/specification-enhancements#63

Change Type

Please select the relevant options:

  • Fix (change that resolves an issue)
  • New enhancement (change that adds specification content)
  • Content edits (change that edits existing content)

Checklist

  • I have read the CONTRIBUTING document.
  • My changes adhere to the established patterns, and best practices.

ajcraig added 2 commits July 14, 2026 16:04
Signed-off-by: Armand Craig <acraig@project.margo.org>
… files.

Signed-off-by: Armand Craig <acraig@project.margo.org>
@ajcraig ajcraig changed the title Ajc/roles to capabilities [DRAFT] Device roles to capabilities Jul 23, 2026
Additional edits are still warranted in the observability content regarding gateway devices(this will be handled outside this PR).

Signed-off-by: Armand Craig <acraig@project.margo.org>
@ajcraig
ajcraig marked this pull request as ready for review July 30, 2026 18:35
@ajcraig
ajcraig requested a review from a team as a code owner July 30, 2026 18:35
@ajcraig ajcraig changed the title [DRAFT] Device roles to capabilities Device roles to capabilities Jul 30, 2026
Comment thread system-design/specification/margo-devices/device-requirements.md Outdated
Comment thread system-design/specification/margo-devices/device-requirements.md Outdated
Comment thread system-design/specification/margo-devices/device-requirements.md Outdated
Comment thread system-design/specification/margo-devices/device-requirements.md Outdated
Comment thread system-design/specification/margo-devices/device-requirements.md Outdated
Comment thread system-design/specification/margo-management-interface/device-capabilities.md Outdated
Comment thread system-design/specification/margo-management-interface/device-capabilities.md Outdated
Comment thread system-design/specification/margo-management-interface/device-capabilities.md Outdated
ajcraig and others added 10 commits July 31, 2026 08:36
Co-authored-by: Philip Presson <philip.presson@us.abb.com>
Signed-off-by: Armand Craig <acraig@project.margo.org>
Co-authored-by: Philip Presson <philip.presson@us.abb.com>
Signed-off-by: Armand Craig <acraig@project.margo.org>
…capabilities.md

Co-authored-by: Philip Presson <philip.presson@us.abb.com>
Signed-off-by: Armand Craig <acraig@project.margo.org>
…observability-data.md

Co-authored-by: Philip Presson <philip.presson@us.abb.com>
Signed-off-by: Armand Craig <acraig@project.margo.org>
…observability-data.md

Co-authored-by: Philip Presson <philip.presson@us.abb.com>
Signed-off-by: Armand Craig <acraig@project.margo.org>
…capabilities.md

Co-authored-by: Philip Presson <philip.presson@us.abb.com>
Signed-off-by: Armand Craig <acraig@project.margo.org>
…capabilities.md

Co-authored-by: Philip Presson <philip.presson@us.abb.com>
Signed-off-by: Armand Craig <acraig@project.margo.org>
…capabilities.md

Co-authored-by: Philip Presson <philip.presson@us.abb.com>
Signed-off-by: Armand Craig <acraig@project.margo.org>
Signed-off-by: Armand Craig <acraig@project.margo.org>
…properties.

Signed-off-by: Armand Craig <acraig@project.margo.org>
@ajcraig
ajcraig requested review from matlec and phil-abb July 31, 2026 16:06
Signed-off-by: Armand Craig <acraig@project.margo.org>

@matlec matlec left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Related to my comments in collecting-workload-observability-data.md: publishing-workload-observability-data.md also still refers to the removed device roles (standalone/cluster).

# Device Requirements

All current device roles MUST meet the following requirements to be considered Margo compliant. These requirements ensure devices can effectively host and manage Margo compliant workloads. A device MUST support onboarding and management from only a single workload fleet manager.
All Margo conformant devices MUST meet a baseline set of requirements to be considered Margo compliant. These requirements ensure devices can effectively manage Margo-compliant workload and/or host those workloads. A device MUST support onboarding and management from only a single workload fleet manager. A device reports what it can provide to the ecosystem through its [device capabilities](../margo-management-interface/device-capabilities.md).

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. The first sentence reads circular :)
  2. I'd align on a single wording for "Margo-conformant/-compliant" (I suggest Margo-conformant)
Suggested change
All Margo conformant devices MUST meet a baseline set of requirements to be considered Margo compliant. These requirements ensure devices can effectively manage Margo-compliant workload and/or host those workloads. A device MUST support onboarding and management from only a single workload fleet manager. A device reports what it can provide to the ecosystem through its [device capabilities](../margo-management-interface/device-capabilities.md).
A devices MUST meet a baseline set of requirements to be considered Margo-conformant. These requirements ensure devices can effectively manage Margo-conformant workload and/or host those workloads. A device MUST support onboarding and management from only a single workload fleet manager. A device reports what it can provide to the ecosystem through its [device capabilities](../margo-management-interface/device-capabilities.md).

Comment thread system-design/specification/margo-devices/device-requirements.md Outdated
Comment thread system-design/specification/margo-devices/device-requirements.md Outdated
Comment thread system-design/specification/margo-devices/device-requirements.md Outdated
Comment thread system-design/specification/margo-management-interface/device-capabilities.md Outdated

> **Action:** Need to do research to determine if this makes sense, or not, when the client is not running as a containerized workload. We may have to leave it up to what is covered through device observability for this case. If it is possible, and makes sense, we need to define what should be provided.

In addition to the resource utilization data the Workload Fleet Management Client MUST also send the following minimum set of workload observability data to the open telemetry collector on the standalone device or cluster. The device owner MAY choose to provided additional observability data if they wish.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rewording needed for "standalone" / "clustered"


### Connecting to the OpenTelemetry Collector

In order for a workload to publish its observability data to the collector on the standalone device or cluster the device own MUST inject the following environment variables into each container.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rewording needed for "standalone" / "clustered"


## Exporting Observability Data

End users MUST be able to export observability data from a standalone device or cluster to collectors, or backends, onsite or in the cloud if they wish to make the information available to enable remote monitoring and diagnostics.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rewording needed for "standalone" / "clustered"

required: [cores]
properties:
cores:
type: number

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The prose / table says integer, the schema number


| Attribute | Type | Required? | Description |
| --- | --- | --- | --- |
| cores | integer | Y | Defines the cores available within the hosts CPU. Specified as decimal units of CPU cores (e.g., `0.5` is half a core). This is defined by the device owner. After deployment of the application, the device MUST provide this number of CPU cores for the application.|

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

0.5 wouldn't be an accepted value for cores under type integer. See my note in the OpenAPI spec below.

ajcraig and others added 6 commits August 3, 2026 09:44
…capabilities.md

Co-authored-by: Matthias Lechner <matlec.public@gmail.com>
Signed-off-by: Armand Craig <acraig@project.margo.org>
Co-authored-by: Matthias Lechner <matlec.public@gmail.com>
Signed-off-by: Armand Craig <acraig@project.margo.org>
Co-authored-by: Matthias Lechner <matlec.public@gmail.com>
Signed-off-by: Armand Craig <acraig@project.margo.org>
Co-authored-by: Matthias Lechner <matlec.public@gmail.com>
Signed-off-by: Armand Craig <acraig@project.margo.org>
Co-authored-by: Matthias Lechner <matlec.public@gmail.com>
Signed-off-by: Armand Craig <acraig@project.margo.org>
Co-authored-by: Matthias Lechner <matlec.public@gmail.com>
Signed-off-by: Armand Craig <acraig@project.margo.org>
ajcraig and others added 5 commits August 3, 2026 09:48
Co-authored-by: Matthias Lechner <matlec.public@gmail.com>
Signed-off-by: Armand Craig <acraig@project.margo.org>
Co-authored-by: Matthias Lechner <matlec.public@gmail.com>
Signed-off-by: Armand Craig <acraig@project.margo.org>
…capabilities.md

Co-authored-by: Matthias Lechner <matlec.public@gmail.com>
Signed-off-by: Armand Craig <acraig@project.margo.org>
…capabilities.md

Co-authored-by: Matthias Lechner <matlec.public@gmail.com>
Signed-off-by: Armand Craig <acraig@project.margo.org>
…capabilities.md

Co-authored-by: Matthias Lechner <matlec.public@gmail.com>
Signed-off-by: Armand Craig <acraig@project.margo.org>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants