-
Notifications
You must be signed in to change notification settings - Fork 21
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
Add architecture for INBM v5 #629
base: develop
Are you sure you want to change the base?
Conversation
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.
I would say the platform TPM is only accessed by a pre-exec shell script run by systemd before the inbm-daemon starts up.
1. #### inbm-daemon | ||
- **Function**: Main manageability application which runs in the background | ||
- **Main Tasks**: | ||
- Spawns other `persistant` or `long-living` threads like `cloud-client`, `dispatcher-queue`, `telemetry-reporter` and `aggregator`. |
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.
not sure if this is necessary to mention at this level, but cloud client for example may spawn its own additional threads to deal with processing grpc or mqtt requests
- **Function**: Management command queue | ||
- **Main Tasks**: | ||
- implements a simple queue of size `1` for device management commands | ||
- invokes `updater` thread based on the type of update command e.g. firmware or os or application |
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.
also handles post-reboot tasks by launching 'updater' thread a second time if we have the appropriate entry in our metadata. also: we could keep a metadata file like platform update agent does, similar to our existing dispatcher_state
3. **Stage 3: Output**: | ||
- Example: Execution of workloads, generation of results, or API responses. | ||
|
||
Extensibility |
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.
First thought: with this architecture, modifying by third parties would require changes at source code level, so our focus there would be to provide clean interfaces to do so.
Things a third party might want to add:
- extra clouds
- extra telemetry
- new update types?
- new commands?
Deployment | ||
---------- | ||
|
||
[Content of Deployment] |
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.
Would be similar to existing Turtle Creek. Possibilities:
- Yocto recipe if desired
- .debs maybe with installer script
- Tiber packages
udm-bootstrap
-- although perhaps this is something that belongs to UDM and doesn't need to be mentioned here
Would also mention installed vs. provisioned, and decommissioning.
|
||
Security | ||
-------- | ||
|
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.
Topics: unix domain socket, TPM, LUKS, AppArmor, filesystem privileges.
|
||
Authentication | ||
~~~~~~~~~~~~~~ | ||
|
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.
authentication for this design is simple: clouds and inbc users have identity root
or system administrator
and can execute any valid command/manifest
|
||
Scalability | ||
----------- | ||
|
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.
scalability is n/a as scope of INBM is single node; not much runs in parallel, small footprint
PULL DESCRIPTION
INBM v5 architecture
Impact Analysis
CODE MAINTAINABILITY
go fmt
orformat-python.sh
as applicableCode must act as a teacher for future developers