OARS on Grove?


The data working group have been building an Open Analytics Reference System, and for my upcoming conference talk, we want to show a demo of what we have so far.

Brian at tCRIL is willing to set up hosting, but I thought I might be able to save him some time by using our OCIM system to set it up using Grove. But I’m not sure where Grove + Ocim is at these days.

OARS is basically just Tutor LMS/Studio + a bunch of Tutor plugins that launch more docker containers and run more initialization scripts.

I see there’s a documentation site for how to use Grove, which is cool: https://grove.opencraft.com/

Do we have docs on how to set up a new Grove deployment using Ocim?
Are there any gotchas I should be aware of with Ocim + Grove?
Any reason why this shouldn’t Just Work™? :grinning:

Thanks team!


Nudge @gabor @keithgg ^ ?

Thanks for the nudge @jill. I meant to reply, but completely forgot.

Do we have docs on how to set up a new Grove deployment using Ocim?

That’s a nope unfortunately. Besides what’s in Ocim already, we planned on implementing Ocim v3 instead. The epic is on hold though due to sustainability reasons.

@gabor considering the above, you think we should add some docs on the Ocim + Grove integration for now so that folks have something to refer to?

Are there any gotchas I should be aware of with Ocim + Grove?

The steps to deploy on to Grove on Ocim are:

  • Create your instance as you normally would.
  • Convert it to Grove instance [there’s a button for it]
  • Trigger a Grove deployment [there’s a button for that too]

Where possible, Ocim converts the old configuration keys to the new tutor ones, but if those aren’t sufficient you can modify tutor’s config.yml directly.

Any reason why this shouldn’t Just Work™?

I looked through the plugin code and it doesn’t create any Kubernetes resources. The code will need to be updated to provision those as well and not just docker-compose service files.

Besides that, there’s no reason it shouldn’t work. The only things that could then cause issues are that:

  • The tutor version in the tools-container is too old. Grove uses v14 internally so if there’s an incompatibility it’ll cause a problem. This is unlikely though.
  • There’s some Kubernetes feature that prevents it. We had issues setting up codejail on AWS due to AppArmor. Something similar could occur.
1 Like

Thank you for this information @keithgg !

It’s sounding like it’s not going to work yet, so no rush on replying here, especially since there’s no budget right now. But I’ll put my questions out there anyway:

That would be great at some stage, thank you!

Interesting… Is this something that Grove needs to do, or something that the OARS plugins need to handle? If the latter, can you point me towards a plugin that does this?

That is actually a problem… there’s a couple of subtle syntax changes in tutor v15.x that we rely on for these plugins (I can’t remember exactly what they were, just that I had to update my tutor and modify things accordingly).

Noted. /me needs to brush up on my k8s…

It’s gotta be handled by the plugin by adding to the relevant k8s patches. Examples as requested :slight_smile:

  • The forum plugin has some simple overrides. Check any of the patches that start with k8s-
  • Grove does a bit more because we need to modify the manifests that tutor deploys.
  • Edunext’s codejail plugin is also worth looking at.
  • And of course you can check out tutor itself.

Yep, the one thing that comes to mind is tutor launch vs tutor quickstart. There were some changes in how init tasks are handled as well, but the changes required in Grove to accommodate these should be minor. IIRC Serenity will likely handle this as part of the Olive upgrade.

1 Like

If you mean how to add new Grove clusters and integrate them, yes! Definitely!

FTR: This is already resolved, we are now able to set AMIs for the Kubernetes nodes that are running the instances.

1 Like