From 295d8c3f05adebd7290830bb6549384d6990ddbc Mon Sep 17 00:00:00 2001 From: chao zheng Date: Thu, 11 Mar 2021 13:10:48 -0800 Subject: [PATCH] add the proposal of edgex + openyurt --- docs/img/connect-device.png | Bin 0 -> 29419 bytes docs/img/struct-relation.png | Bin 0 -> 46945 bytes docs/img/system-arch.png | Bin 0 -> 46092 bytes .../20210310-edge-device-management.md | 498 ++++++++++++++++++ 4 files changed, 498 insertions(+) create mode 100644 docs/img/connect-device.png create mode 100644 docs/img/struct-relation.png create mode 100644 docs/img/system-arch.png create mode 100644 docs/proposals/20210310-edge-device-management.md diff --git a/docs/img/connect-device.png b/docs/img/connect-device.png new file mode 100644 index 0000000000000000000000000000000000000000..380987f71ca8b564ecb5861a22daafa206354be6 GIT binary patch literal 29419 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%0Dg)@R@g9)Y0%Dm)>4WXz^_&WcXre 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 literal 0 HcmV?d00001 diff --git a/docs/img/struct-relation.png b/docs/img/struct-relation.png new file mode 100644 index 0000000000000000000000000000000000000000..8c36226ee065c49b2fc2b47d94cf91363235594a GIT binary patch literal 46945 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 K{9|Jh^}hh4a86PH literal 0 HcmV?d00001 diff --git a/docs/img/system-arch.png b/docs/img/system-arch.png new file mode 100644 index 0000000000000000000000000000000000000000..65f14fbe80160110928151f915851710347e0880 GIT binary patch literal 46092 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%0AYOy`71!s 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 r2YskB#_aYQMFbuAKld, + "modified": , + "id": "", + "name": "lightcolor", + "get": { + "path": "/api/v1/device/{deviceId}/color", + "responses": [ + { + "code": "200", + "description": "get current light color", + "expectedValues": [ + "color" + ] + }, + { + "code": "503", + "description": "service unavailable" + } + ], + "url": "http://edgex-core-command:48082/api/v1/device//command/" + }, + "put": { + "path": "/api/v1/device/{deviceId}/changeColor", + "responses": [ + { + "code": "201", + "description": "set the light color" + }, + { + "code": "503", + "description": "service unavailable" + } + ], + "url": "http://edgex-core-command:48082/api/v1/device//command/" + } + } + ] +} +``` + +Then we can create a `Device` associated to the `DeviceProfile` as following, + +```yaml +apiVersion: device.openyurt.io/v1alpha1 +kind: Device +metadata: + name: testsensor +spec: + ... + profile: color-sensor + deviceProperties: + lightcolor: + name: lightcolor + desiredValue: green +``` + +Assume that the initial light color is blue, then after applying the `Device`, the device controller will try to fetch the corresponding get/put URLs from the core command service, update the `testsensor.Spec.DeviceProperties[lightcolor]` `testsensor.Status.DeviceProperties[lightcolor]`, and then set the light color to green, the updated `Device` will look like the following, +```yaml +apiVersion: device.openyurt.io/v1alpha1 +kind: Device +metadata: + name: testsensor +spec: + ... + profile: color-sensor + deviceProperties: + lightcolor: + name: lightcolor + setURL: http://edgex-core-command:48082/api/v1/device//command/ + desiredValue: green +status: + deviceProperties: + lightcolor: + name: lightcolor + getURL: http://edgex-core-command:48082/api/v1/device//command/ + desiredValue: green +``` + +### System Architecture + +Edge devices are usually located in the network regions that are unreachable from the cloud, while `DeviceService` needs to talk to edge devices directly. Therefore, we need to deploy the `DeviceService` on the edge node that connects to edge devices. On the other hand, when modifying the device properties, the device controller will need to send a request to the `DeviceService`. Hence, we will deploy a replica of the device controller in each network region. Specifically, the device controller will connect to the YurtHub, and the YurtHub will only pull the device CRDs related to connected edge devices. The system architecture is shown below, + +![system-architecture](../img/system-arch.png) + +## Upgrade Strategy + +In the first implementation, we will support the EdgeX Foundry [Hanoi](https://www.edgexfoundry.org/software/releases/), and would not support upgrading/downgrading to other versions.k + +## Implementation History + +- [x] 03/15/2021: Proposed idea in an issue or [community meeting](https://us02web.zoom.us/j/82828315928?pwd=SVVxek01T2Z0SVYraktCcDV4RmZlUT09). +- [x] 03/16/YYYY: Present proposal at a [community meeting](https://us02web.zoom.us/j/82828315928?pwd=SVVxek01T2Z0SVYraktCcDV4RmZlUT09) and collect feedbacks. +- [x] 04/13/2021: Present the revised proposal at a [community meeting](https://us02web.zoom.us/j/82828315928?pwd=SVVxek01T2Z0SVYraktCcDV4RmZlUT09) and collect feedbacks. +- [x] 04/14/2021: Finalize the proposal.