-
Notifications
You must be signed in to change notification settings - Fork 3
[onboarding-manager<->device discovery]Node Onboarding without SN #133
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
onboarding-manager/internal/handlers/southbound/grpcserver/grpc_server.go
Outdated
Show resolved
Hide resolved
onboarding-manager/internal/handlers/southbound/grpcserver/grpc_server.go
Show resolved
Hide resolved
onboarding-manager/internal/handlers/southbound/grpcserver/grpc_server.go
Outdated
Show resolved
Hide resolved
onboarding-manager/internal/handlers/southbound/grpcserver/grpc_server.go
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Awesome PR description, thanks!
Two questions:
- Should we fill Serial Number with invalid value If OM finds out it's not set? In that case we will propagate whatever will be set in EN. Make sure to check with the UX team if that's ok. An alternative would be to keep it empty and show "Not set" in UI.
- What's the impact on the host registration process? Will we enhance documentation to make UUID mandatory in the referenced cases?
onboarding-manager/internal/handlers/southbound/grpcserver/grpc_server.go
Outdated
Show resolved
Hide resolved
onboarding-manager/internal/handlers/southbound/grpcserver/grpc_server.go
Outdated
Show resolved
Hide resolved
onboarding-manager/internal/handlers/southbound/grpcserver/grpc_server.go
Show resolved
Hide resolved
@osinstom : , we are verifying the validity of the patterns on the infra-api and UI sides to ensure that only valid patterns are accepted during host registration via UI. https://github.com/open-edge-platform/infra-core/blob/16cfd45a1820e678390e70126ca663c1be622e6a/apiv2/api/proto/services/v1/services.proto#L1013 This PR is dedicated to improving southbound communication. |
In order to streamline the host registration and provisioning process, we will enhance the doc state that user can only use UUID-based host pre-registration if any invalid serial number is retrieved from a node does not fit the serial number pattern. |
Description
Problem statement:
In the 3.0 release Most of our platform, we have encountered an issue with the handling of serial numbers, from certain hardware manufacturers, specifically ASRock and AAEON. These manufacturers often provide serial numbers that do not conform to the expected pattern, leading to complications in edge node onboarding process.
AsRock Default Serail Number is "To Be Filled by O.E.M"
AAEON UP Squared Pro 7000 / Atom - Unable to provision - serial number is "Default string"
Current Design:
The Device Discovery Agent is responsible for fetching the serial number of devices. It retrieves this information directly using the dmidecode command and it is sent as part of a gRPC request to the Onboarding Manager.
Onboarding Manager expects serial numbers to follow a predefined pattern. When it receives a serial number that does not match this pattern, it throws an error.This error is communicated back to the Device Discovery Agent, indicating that the serial number is invalid.As a result, the edge node provisioning process becomes stuck in the device discovery phase, unable to proceed further due to the invalid serial number.
Fix:
The device discovery agent send the UUID and the serial number(even if improper format).The onboarding manager can proceed with onboarding and provisioning based on the UUID and bypass the serial number validation check, even if it is in the in-correct format.
Unit Testing : Existing unit test cases are failing - In progress
IO and NIO based dev validation is done with real edge node
Fixes # (issue)
Any Newly Introduced Dependencies
Please describe any newly introduced 3rd party dependencies in this change. List their name, license information and how they are used in the project.
How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration
Checklist: