Skip to content

Conversation

@europaul
Copy link
Contributor

Signal to the controller that it should expect a hardware inventory report from the device.

message OptionalCapabilities {
// Virtualization type Kubevirt
bool hv_type_kubevirt = 1;
bool hw_inventory_support = 2;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am unsure if it should be OptionalCapability or APICapability...

I understand APICapability as that from now on every EVE version is supporting this capability, while OptionalCapability is used for capabilities that not necessarily is supported in all EVE versions from now on.
As the hw inventory is supported by all future EVE versions, I would guess it should be an APICapability?

Or should be just abandon APICapability because of it's shortcomings?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The OptionalCapabilities makes more sense if only a subset of EVE nodes (for any given version) will support it, or if we are certain we will remove it in future versions.

But otherwise the more compact APICapability makes more sense.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is how I understood those fields from reading the docs:

  • // Capabilities indicates features in the EdgeDevConfig where there is
    // no easy way to otherwise determine whether or not they are parsed and
    // supported by EVE-OS
    // A larger number indicates all lower numbers are also supported thus
    // this works similar to a version field for the EdgeDevConfig support.
    enum APICapability {
    - APICapability describes some feature of EVE that can be turned on / configured through EdgeDevConfig. So the controller needs to know that if it turns it on in EdgeDevConfig it will indeed have effect on EVE
  • // OptionalCapabilities indicates any additional capabilities device wants
    // to publish to controller. For example Kubevirt hypervisor is not supported by
    // all eve flavors.
    - OptionalCapabilities is something that's not available in every EVE version (you're right) but also something that EVE wants to tell to the controller about itself - not related to EdgeDevConfig - more like a passive feature, like what hypervisor it uses. That sounds to me more like "I will send HW inventory, you don't need to do anything, just be aware".

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@eriknordmark what do you think?

Signal to the controller that it should expect a hardware inventory
report from the device.

Signed-off-by: Paul Gaiduk <paulg@zededa.com>
Add generate go and python code for info.proto.

Signed-off-by: Paul Gaiduk <paulg@zededa.com>
Copy link
Contributor

@eriknordmark eriknordmark left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You're correct that this doesn't affect what needs to be configured so let's not put it in api capability. Just check with @zed-rishabh that he doesn't see issues with the controller accessing this field to decide how to proceed.

@eriknordmark eriknordmark merged commit 5feda27 into lf-edge:main Jan 14, 2026
4 checks passed
@europaul europaul mentioned this pull request Jan 15, 2026
6 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants