I'm considering implementing a device plugin for handling a local resource pool. Is that a valid use case?

Long story short, I have a Mac Catalyst app I need to orchestrate. By definition, you can’t run multiple instances of an app with the same bundle ID in parallel, so I built it 10 times with different IDs. This works.

I have a bunch of jobs that are to use these instances of the application. Ideally, a Nomad plugin would:

  1. Detect if any app instances are available on a machine (just like any other resource).
  2. Assign one instance to a job when it is executed (by an ID, for example).

To my understanding, this is effectively the same pattern as handling the assignation of physical devices that happens with GPUs, so I should technically be able to implement something similar using the Device Plugin API.

I’m interested in hearing some thoughts on this. Does this use case make sense, or am I getting on a dead end?

That sounds like an unusual but awesome use case. Architecturally what you’re saying seems to make sense to me (I could maybe see the CSI plugin API working for this as well but that’d just add a layer of complication you don’t need). Can’t wait to hear how it turns out!

1 Like

Thanks for the validation! Time to see what comes out of this :smiley: