Skip to content
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 Initial version of proposal for DRA mode #88

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

diconico07
Copy link
Contributor

This PR adds a proposal to implement a Dynamic Resource Allocation mode for Akri, it details why we would like to switch to a DRA mode, and what changes are needed as well as a proposed timeline.

This is a first version, while I tried to specify everything that would be needed to understand in the proposal, don't hesitate to ask for more details.

This PR adds a proposal to implement a Dynamic Resource Allocation mode
for Akri, it details why we would like to switch to a DRA mode, and what
changes are needed as well as a proposed timeline.

Signed-off-by: Nicolas Belouin <nicolas.belouin@suse.com>
Comment on lines +50 to +51
You can note that we do **not** include the name of the discovery handler as it would be in the driver name in ResourceClass
as a subdomain of `driver.akri.sh` like e.g. `udev.driver.akri.sh`
Copy link
Contributor Author

Choose a reason for hiding this comment

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

I wonder if that's the best idea to have a driver name per DH, maybe having a single driver.akri.sh DRA driver name is better and thus re-introduce discovery handler name in the DiscoveryConfiguration, as it would remove any ambiguity about what DH the configuration is for.

Another idea here was to have a dedicated CRD per DH so that way there is no ambiguity on what DH a configuration is for, but it would make creating a DH more cumbersome as one would also need to create a CRD. It would also make it harder for the agent as it would need to extract information from a possibly non akri CRD, hence I did not pursued on this idea.

Copy link

Choose a reason for hiding this comment

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

Another argument against different CRDs is that the ability to tie things together with downwards api seems useful here and an increase in resource types could make building higher level tooling harder (UI for instance)


```yaml
# apiVersion got ommited on purpose
kind: BrokerTemplate
Copy link

Choose a reason for hiding this comment

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

I wonder if ResourceTemplate might be more obvious to users? Broker can be a bit confusing IMO

Copy link

Choose a reason for hiding this comment

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

That said, the change in language might be it's own proposal...

The DRA is not yet in beta phase, we should provide this new behavior along with the "old" one as long as all our supported kubernetes
versions don't have the needed features, however some parts of the new behavior can be implemented without waiting for DRA to be broadly available.

Here is a proposed timeline:
Copy link

Choose a reason for hiding this comment

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

This makes sense to me!

globalBrokerResources: ... # this field is named configurationBrokerResources in other proposal
```

### Create a `DiscoveryConfiguration` resource kind
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 a cluster-scoped resource kind, as ResourceClasses are cluster-scoped. In fact while we currently have namespaces for our Configurations the DevicePlugin resource is expose outside this namespace, so it would makes more sense to have it cluster scoped anyway.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Status: No status
Development

Successfully merging this pull request may close these issues.

3 participants