|
| 1 | +# Design: Modularized EIM API in context of modular EMF deployments in 2026.02 release |
| 2 | + |
| 3 | +Author(s): Edge Infrastructure Manager Team |
| 4 | + |
| 5 | +Last updated: 22/12/2025 |
| 6 | + |
| 7 | +## Abstract |
| 8 | + |
| 9 | +In 2026.2 release of the EMF the requirement is to decompose the EIM API to deliver multiple streamlined |
| 10 | +workflows. This design follows up the |
| 11 | +[Scenario-Specific Northbound APIs and CLI Commands for EIM Decomposition ADR](https://github.com/open-edge-platform/edge-manageability-framework/blob/57f234a08eb83b320b31cd8db34c7c7ea4837973/design-proposals/eim-nbapi-cli-decomposition.md) |
| 12 | +created for this specific topic with a more detailed design considering specific workflows. |
| 13 | + |
| 14 | +## Workflows |
| 15 | + |
| 16 | +### Full EMF/Standalone full EIM (2026.0) |
| 17 | + |
| 18 | +This is the standard deployment of EIM, in both cases, that is if the full EMF is deployed (EIM/CO/AO) or if |
| 19 | +the full EIM is deployed without the CO/AO in standalone, the full set of EIM APIs is exposed. |
| 20 | + |
| 21 | +The modular EIM will be deployed with the following services: |
| 22 | + |
| 23 | +- Onboarding service APIs |
| 24 | +- Provisioning service APIs |
| 25 | +- Maintenance service APIs |
| 26 | +- Workload service APIs* |
| 27 | +- Observability APIs |
| 28 | + |
| 29 | +In both cases there will be a microservice running on the Orchestrator exposing the list of available features. |
| 30 | +In the case of full EMF this microservice will report all features related to all APIs, in the case of full EIM in |
| 31 | +standalone the microservice will report only the EIM features and the full list of services exposed by the EIM API. |
| 32 | + |
| 33 | +### EIM - Observability (2026?) |
| 34 | + |
| 35 | +This is a scenario where observability stack is subtracted from standard EIM deployment. All other EIM APIs are exposed. |
| 36 | + |
| 37 | +The modular EIM will be deployed with the following services: |
| 38 | + |
| 39 | +- Onboarding service APIs |
| 40 | +- Provisioning service APIs |
| 41 | +- Maintenance service APIs |
| 42 | +- Workload service APIs* |
| 43 | + |
| 44 | +### EIM - vPRO only (2026.0) |
| 45 | + |
| 46 | +In this deployment only the minimum viable EIM API stack will be deployed along with the vPRO related APIs and |
| 47 | +resource managers and agents. In this scenario the EIM API will only expose the host services used to manage the |
| 48 | +host resource - since only the host resource is needed to onboard the EN, activate vPRO and do power management |
| 49 | +of the EN via vPRO. |
| 50 | + |
| 51 | +This version of modular EIM API will be deployed with the following service: |
| 52 | + |
| 53 | +- Onboarding service APIs |
| 54 | + |
| 55 | +It is assumed that provisioning/instance creation and creation of associated resources related to provisioning is |
| 56 | +not needed. |
| 57 | + |
| 58 | +API and Inventory interactions (Non CLI steps/flows subject to change /implementation - this flow is only to |
| 59 | +demonstrate the interactions between API/Inventory/CLI). |
| 60 | + |
| 61 | +1. User pre-registers host via the orch-cli using the *host service* EIM API (by providing the UUID and/or |
| 62 | + Serial No.) - there is no need to create an instance, or allocate EN to site since there is no EN management |
| 63 | + outside of vPRO related actions. |
| 64 | +2. User provisions own OS onto the EN manually and installs the Device Activation Agent (DAA), the agent |
| 65 | + communicates with the scaled back version of Onboarding Manager. |
| 66 | +3. If the information from ENs DAA matches the information provided at pre-registration (Serial/UUID) the scaled |
| 67 | + back version of the Onboarding Manager changes the status of the EN to onboarded in the *host resource* |
| 68 | + (host_status) in the inventory and creates/responds to the DAA on the EN with credentials for the PMA agent. |
| 69 | +4. User installs the PMA agent, and PMA agent waits for credentials. Remote Provisiong Client (RPC) is also |
| 70 | + installed. |
| 71 | +5. Once the PMA receives credentials it establishes connection with the Device Management Manager (DMM) on the |
| 72 | + EN. The PMA checks the device support status with RPC. |
| 73 | +6. PMA shares the RPC device support status to DMM, the DMM updates the status of the device in inventory, the |
| 74 | + status is updated in the *host resource* (amt_status* (double check if that the right field)). |
| 75 | +7. At this stage via the orch-cli the EIM API *host service* can be queried to see the AMT/vPRO information for |
| 76 | + the host if the EN supports vPRO (amt_status* (double check if that the right field)). |
| 77 | +8. User will create CIRA configuration and Domain profile via the orch-cli using the Remote Provisioning Server |
| 78 | + APIs. This information is stored within the Out-Of-Band service (RPS/MPS) |
| 79 | +9. User activates the AMT/vPRO via the orch-cli once again using the *host service* EIM API (desired_amt_state). |
| 80 | + The DMM observes the *host resource* (desired_amt) for the activation details, the PMA on EN periodically |
| 81 | + checks in with DMM to obtain the same status. Once the status is obtained by PMA it sends activation command |
| 82 | + to RPC. |
| 83 | +10. RPC on the EN starts the device activation by reaching out to RPS. RPS and and RPC exchange information |
| 84 | + (including the previously created CIRA config and Domain Profile). Once activated the PMA on the EN reports |
| 85 | + the status back to the DMM, the DMM changes the status in the *host_resource* in the inventory |
| 86 | + (current_amt_state). |
| 87 | +11. At this stage via the orch-cli the EIM API *host service* can be queried to see the AMT/vPRO activation |
| 88 | + status. |
| 89 | +12. Once the EN's AMT/vPRO is activated the user can power cycle the EN via the orch-cli using the EIM API "host |
| 90 | + service" by toggling the desired_power_state. The power status can be queried via the orch-cli by using the |
| 91 | + *host service's* power_status. |
| 92 | +13. The DMM watches the power state and updated through RPS, once updated the RPS/PRC manages the power cycle |
| 93 | + |
| 94 | + |
| 95 | + |
| 96 | +*NOTE:* Not all relationships between CLI/API/Inventory are shown in diagram above for the sake of keeping it |
| 97 | +readable. I.e assume that anything to do with listing/getting/deleting a host is in place and the relevant |
| 98 | +path/APIs/fields in inventory are used. |
| 99 | + |
| 100 | +## EIM API modularity |
| 101 | + |
| 102 | +The EIM APIv2 modularity will be achieved by enabling only necessary |
| 103 | +services based on required functionality by registering only necessary service handlers. |
| 104 | +Services are grouped |
| 105 | +together in manifests, forming API sets tailored for a given workflow. |
| 106 | + |
| 107 | +The services/APIs will be categorized into the following buckets: |
| 108 | + |
| 109 | + |
| 110 | + |
| 111 | +The APIv2 will then be built based on a manifest files calling out the required services. Once built it will be |
| 112 | +composed into a docker image that can be used to deploy the APIv2 for a given workflow. |
| 113 | + |
| 114 | + |
| 115 | + |
| 116 | +## Opens |
| 117 | + |
| 118 | +- In EIM + vPRO only workflow, is there any sort of onboarding? If not how does the EN get involved with the |
| 119 | + orchestrator? |
| 120 | + - The vPRO only ADR does not include onboarding from Orchestrator PoV or any agent that would do this from EN |
| 121 | + side: |
| 122 | + [vpro-eim-modular-decomposition](https://github.com/open-edge-platform/edge-manageability-framework/blob/557752e210cf0a34fd8fddef3f2a07b8c9206728/design-proposals/vpro-eim-modular-decomposition.md) |
| 123 | + - The onboarding/provisioning decomposition assumes that the device activation agent is moved from uOS to Agent |
| 124 | + and that the provisioning phase is split - ie. the OS provisioning does not happen and Agent provisioning is |
| 125 | + manual - but in each case there is still onboarding manager on the Orchestrator and all the resources must be |
| 126 | + available in API: |
| 127 | + [separation-of-onboard-and-provisioning](https://github.com/open-edge-platform/edge-manageability-framework/blob/6889486cb05cbc6ffee3fc370b519ab30fbe34e0/design-proposals/separation-of-onboard-and-provisioning.md) |
| 128 | + - In essence vPRO ADR does not consider onboarding at all, and the second ADR considers that the API/Inventory |
| 129 | + will always be overloaded with resources that are not needed for vPRO only scenario. |
| 130 | + |
| 131 | +**Answer**: There will be some sort of onboarding, should be minimal, we should not have the overload of API with |
| 132 | +provisioning related resources in this workflow. |
| 133 | + |
| 134 | +- What is the goal of the EIM+vPRO only workflow, is it only to enable vPRO activation and power management and |
| 135 | + the Edge Node will not be provisioned inside the Orchestrator? |
| 136 | + |
| 137 | +**Answer**: Yes, the goal is to onboard the EN - manually install the Agents on EN and establish communication, |
| 138 | +then activate vPRO and power cycle the machine, we do not expect any Orchestrator management of the device apart |
| 139 | +from vPRO/powercycle - therefore we do not need to have APIs related to any instance and instance related |
| 140 | +resources. |
| 141 | + |
| 142 | +- What is the look and feel of a vPRO only EN when enrolled to the Orchestrator? |
| 143 | + - Is it supposed to show up as a register or onboarded node? |
| 144 | + - Can the user decide to install their own OS and manually provision by installing agents? |
| 145 | + - Should the user be able to assign the vPRO only EN to a site? Or we do not care about locations in this workflow? |
| 146 | + - If the provisioning is not a part of this workflow can we assume instance creation and anything associated |
| 147 | + with the instance is not needed (osprofile,localaccount,customconfig)? |
| 148 | + |
| 149 | +**Answer**: EN is onboarded, user must install their own OS to install DAA and PMA, there is no need to assign |
| 150 | +the ENs to sites as we can assume they are managed outside of EMF, anything to do with provisioning can be |
| 151 | +disregarded in this scenario |
0 commit comments