Skip to content

Commit 7edd07f

Browse files
committed
Initial backup/commit. More cleanup to accomplish!
Signed-off-by: Armand Craig <ajcraig@ra.rockwell.com>
1 parent 1d11d11 commit 7edd07f

File tree

14 files changed

+276
-292
lines changed

14 files changed

+276
-292
lines changed

mkdocs.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,11 @@ nav:
3131
- device-interoperability/collecting-workload-observability-data.md
3232
- Technical References:
3333
- Margo Management Interface:
34-
- margo-api-reference/margo-api-specification.md
34+
- margo-api-reference/workload-api/api-security-details.md
3535
- margo-api-reference/workload-api/desired-state-api/desired-state.md
3636
- margo-api-reference/workload-api/device-api/device-capabilities.md
3737
- margo-api-reference/workload-api/device-api/deployment-status.md
38-
- margo-api-reference/workload-api/onboarding-api/device-onboarding.md
38+
- margo-api-reference/workload-api/onboarding-api/client-onboarding.md
3939
- margo-api-reference/workload-api/onboarding-api/rootca-download.md
4040
- Application Package Definition:
4141
- margo-api-reference/workload-api/application-package-api/application-description.md
Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
11
# Device Capabilities
22

3-
The purpose of device capabilities reporting is to ensure the Workload Fleet Management solution has the information needed to pair workloads with compatible edge devices. The [device's capabilities](../../margo-api-reference/workload-api/device-api/device-capabilities.md) are reported to the workload orchestration web service using [Margo management API](../../margo-api-reference/margo-api-specification.md).
3+
The purpose of device capabilities reporting is to ensure the Workload Fleet Management solution has the information needed to pair workloads with compatible edge devices. The device's capabilities are reported to the WFM web service using the Margo Management API.
44

55
### Device Capability Reporting
66

7-
The device owner MUST report their device's capabilities and characteristics via the [Device API](../../margo-api-reference/workload-api/device-api/device-capabilities.md) when onboarding the device with the workload orchestration solution. Additionally, during the lifecycle of the Edge device, if there is a change that impacts the reported characteristics, the device's interface shall send an update to the Workload Fleet Manager.
8-
9-
> Action: The device capabilities details are still being discussed
7+
The device owner MUST report their device's capabilities and characteristics, via the device API, when onboarding the device with the Workload Fleet Management solution. Additionally, during the lifecycle of the edge device, if there is a change that impacts the reported characteristics, the device MUST update the Workload Fleet Manager with the latest information via the management API.
108

119
The following information MUST be provided:
1210

@@ -16,10 +14,14 @@ The following information MUST be provided:
1614
- Serial Number
1715
- Margo Device Role Designation(Cluster Leader/Worker / Standalone Device)
1816
- Resources available for workloads to utilize on the Device:
19-
- Memory Capacity
17+
- Memory Capacity
2018
- Storage Capacity
21-
- CPU information
19+
- CPU information
2220
- Device peripherals(i.e. Graphics card)
2321
- Network interfaces(wifi/eth/cellular)
2422

25-
For more information see the [device capabilties API](../../margo-api-reference/workload-api/device-api/device-capabilities.md).
23+
## Relevant Links
24+
25+
Please follow the subsequent links to view more technical information on device capability reporting:
26+
27+
- [Device Capabilities API](../../margo-api-reference/workload-api/device-api/device-capabilities.md)
Lines changed: 25 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,37 @@
11
# Management Interface Requirements
22

3-
Provided below are a set of requirements that the Management Interface participants must follow to become Margo compliant.
3+
Provided below are a set of requirements that the Management Interface participants must follow to become Margo compliant.
4+
45

5-
- Additional technical details can be found in the following location: [Margo Management API specification](../../margo-api-reference/margo-api-specification.md)
66

77
## Requirements
88

9-
- The Management Interface MUST provide the following functionality:
10-
- device onboarding with the workload orchestration solution
9+
- The Management Interface MUST provide the following functionality outlined within this specification:
10+
- onboarding of the management client
1111
- device capabilities reporting
12-
- identifying desired state changes
13-
- deployment status reporting
14-
- The Workload Fleet Management vendors MUST implement the server side of the API specification.
15-
- The device vendor MUST implement a client following the API specification.
16-
- The Workload Fleet Management vendors solution MUST maintain a storage repository to store the managed edge device's associated set of desired state files.
17-
- Margo does not dictate how the desired state files are stored, other than ensuring they are available upon request.
12+
- defining the workload(s) desired state
13+
- workload deployment status reporting
14+
- The Workload Fleet Management supplier MUST implement the server side of the API specification contract.
15+
- The Device Owner MUST implement the client side of the API specification contract.
16+
- The Workload Fleet Management supplier's solution MUST maintain a storage repository to store the managed edge device's associated set of desired state files.
17+
- Margo does not dictate how the desired state files are stored, other than ensuring they are available upon request via API definition.
1818
- The device's management client MUST retrieve the device's set of desired state files from the Workload Fleet Manager.
19+
- Following the retrieval of the desired state(s), the device MUST orchestrate the changes locally via the provider.
20+
- Following the initial upload of device capabilities from client to server, the device MUST update the WFM with an updated list of capabilities if any workload related changes occur.
1921
- Interface patterns MUST support extended device communication downtime.
20-
- The Management Interface MUST MUST reference industry security protocols and port assignments for both client and server interactions.
21-
- Running the device's management client as containerized services is preferred to enable easier lifecycle management but not required.
2222
- The Management Interface MUST allow an end user to configure the following:
2323
- Downtime configuration - ensures the device's management client is not retrying communication when operating under a known downtime. Additionally, communication errors MUST be ignored during this configurable period.
2424
- Polling Interval Period - describes a configurable time period indicating the hours in which the device's management client checks for updates to the device's desired state.
25-
- Polling Interval Rate - describes the rate for how frequently the device's management client checks for updates to the device's desire state.
25+
- Polling Interval Rate - describes the rate for how frequently the device's management client checks for updates to the device's desire state.
26+
27+
28+
## Suggestions
29+
30+
- Running the device's management client as containerized services is preferred. By following Margo application packaging guidelines, it makes the management interface easier to lifecycle manage, however this is not required.
31+
32+
33+
## Relevant Links
34+
35+
Please follow the subsequent links to view more technical information regarding Margo's management interface:
36+
37+
- [Margo API Technical Reference](../../margo-api-reference/workload-api/api-security-details.md)

system-design/fleet-management/workload/workload-deployment.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,4 +40,6 @@ The deployment status uses the following rules:
4040
- The state is `Failure` if at any point the desired state fails to be applied. When reporting a `Failure` state the error message and error code MUST be reported
4141
- The state is `Success` once the desired state has been applied completely
4242

43+
44+
> Note: Drawing to be replaced with mermaid sequence diagram.
4345
![Workload Install Sequence Diagram (svg)](../../figures/workload-install-sequence.drawio.svg)

system-design/fleet-management/workload/workload-fleet-management-edge-onboarding.md

Lines changed: 12 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -6,58 +6,20 @@ In order for the Workload Fleet Management software to manage the edge device's
66
**The onboarding process includes:**
77

88
- The end user provides the the Workload Fleet Management web service's root URL to the device's management client
9-
- The device's management client downloads the workload orchestration solution vendor's public root CA certificate using the [Onboarding API](../../margo-api-reference/workload-api/onboarding-api/rootca-download.md)
9+
- The device's management client downloads the Workload Fleet Manager's public root CA certificate using the [Onboarding API](../../margo-api-reference/workload-api/onboarding-api/rootca-download.md)
1010
- Context and trust is established between the device's management client and the Workload Fleet Management web service
11-
- The device's management client uses the [Onboarding API](../../margo-api-reference/workload-api/onboarding-api/device-onboarding.md) to onboard with the workload orchestration service.
11+
- The device's management client uses the [Onboarding API](../../margo-api-reference/workload-api/onboarding-api/client-onboarding.md) to onboard with the Workload Fleet Management service.
1212
- The device's management client receives the client Id, client secret and token endpoint URL used to generate a bearer token.
1313
- The device's management client receives the URL for the Git repository containing its desired state and an associated access token for authentication
14-
- The [device capabilities](./device-capability-reporting.md) information is sent from the device to the workload orchestration web service using the [Device API](../../margo-api-reference/workload-api/device-api/device-capabilities.md)
14+
> Action: The Margo TWG is currently reviewing alternatives to GitOps. This page will be updated upon a finalization of a new strategy.
15+
- The [device capabilities](./device-capability-reporting.md) information is sent from the device to the WFM service using the [Device API](../../margo-api-reference/workload-api/device-api/device-capabilities.md)
1516

16-
![Margo Management Interface Operational Flow Diagram (svg)](../../figures/margo-interface-generic.drawio.svg)
17-
> Action: FIDO Device onboarding has not been finalized as the standard onboarding solution. Further discussion/investigations are needed.
1817

1918
### Configuring the Workload Fleet Management Web Service URL
2019

2120
> Action: Ideally this URL is discoverable instead of having to manually enter it but we still need to determine if there is a good way to make this discoverable by using something like the FDO Rendezvous service or multicast DNS. Also, once we determine how the Margo compliant device onboarding and fleet management is going to work it will probably impact this.
2221
23-
To ensure the management client is configured to communicate with the correct Workload Fleet Management web service, the device's management client needs to be configured with the expected URL. The device vendor MUST provide a way for the end user to manually set the URL the device's management client uses to communicate with the workload orchestration solution chosen by the end user.
24-
25-
### Margo Web API Authentication Method
26-
27-
The Margo Web API communication pattern between the device's management client and the workload orchestration web service must use a secure communication channel. In order to facilitate this secure communication Margo requires the use of oAuth 2.0 for authentication.
28-
29-
#### API Authorization Strategy
30-
31-
- During the [onboarding process](../../margo-api-reference/workload-api/onboarding-api/device-onboarding.md) the Workload Fleet Management's web service provides the management client with a client Id, client secret and token endpoint URL
32-
- The management client uses this information to [create a bearer token ](../../margo-api-reference/margo-api-specification.md#authorization-header)for each request
33-
- The bearer token is set in the `Authorization` header for each web request sent to the Workload Fleet Management's web service requiring authorization.
34-
35-
#### Payload Security Method
36-
37-
> Action: Certificate Rotation / Unique Identifier for device are still research areas needed.
38-
39-
Because of limitations using mTLS with common OT infrastructure such as TLS terminating HTTPS load-balancer or a HTTPS proxy doing lawful inspection Margo has adopted a certificate-based payload signing approach to protect payloads from being tampered with. By utilizing the certificates to create payload envelopes, the device's management client can ensure secure transport between the device's management client and the Workload Fleet Management's web service.
40-
41-
- During the onboarding process the end user uploads the device's x.509 certificate to the workload orchestration solution
42-
- The device's management client downloads the root CA certificate using the [Onboarding API](../../margo-api-reference/workload-api/onboarding-api/rootca-download.md)
43-
- Once this is complete, both parties are able to [secure their payloads](../../margo-api-reference/margo-api-specification.md#signing-payloads).
44-
45-
##### Details pertaining to the message Envelope:
46-
47-
Once the edge device has a message prepared for the Workload Fleet Management's web service, it completes the following to secure the message.
48-
49-
- The device's management client calculates a digest and signature of the payload
50-
- The device's management client adds an envelope around it that has:
51-
- actual payload
52-
- SHA of the payload, signed by the device certificate
53-
- Identifier for the certificate that corresponds to the private key used to sign it.
54-
- This identifier MUST be the GUID provided by the device manufacturer. Typically the hardware serial number.
55-
- The envelope is sent as the payload to the Workload Fleet Management's web service.
56-
- The Workload Fleet Management's web service treats the request's payload as envelope structure, and receives the certificate identifier.
57-
> Note: This certificate is the device certificate that was manually uploaded to the workload orchestration solution during onboarding.
58-
- The Workload Fleet Management's web service computes digest from the payload, and verifies the signature using the device certification.
59-
- The payload is then processed by the Workload Fleet Management's web service.
60-
22+
To ensure the management client is configured to communicate with the correct Workload Fleet Management web service, the device's management client needs to be configured with the expected URL. The device vendor MUST provide a way for the end user to manually set the URL the device's management client uses to communicate with the Workload FLeet Management solution chosen by the end user.
6123

6224
### GitOps Service Enrollment
6325

@@ -67,3 +29,10 @@ Once the edge device has a message prepared for the Workload Fleet Management's
6729

6830
- Git access tokens shall be provided to the device's management client. These access tokens MUST be tied to a dedicated non-user account for access where credentials are frequently rotated and short lived.
6931
- Need to support accessing rotations of tokens
32+
33+
## Relevant Links
34+
35+
Please follow the subsequent links to view more technical information regarding the management API:
36+
37+
- [Margo API Security Details(../margo-api-reference/workload-api/api-security-details.md)
38+
- [Margo API Onboarding](../margo-api-reference/workload-api/api-security-details.md)

system-design/margo-api-reference/margo-api-specification.md

Lines changed: 0 additions & 59 deletions
This file was deleted.

0 commit comments

Comments
 (0)