Plone on OpenShift quickstart using the DIY cartridge


TLDR; Plone is now deployable easily on openshift.redhat.com . Check out the repository here: https://github.com/kagesenshi/plone-openshift-quickstart.

Plone on openshift.redhat.com

Yesterday I posted about  deploying Plone using a cartridge in your own private OpenShift Origin VM.

Afterwards that day, I had some chat in the #openshift IRC channel and was informed that it is OK to run buildout in openshift.redhat.com, and last night, I converted the scripts and config from the cartridge so that it fits in the workflow of the DIY cartridge.

Features/Notes:
  • Deploys Plone 4.2 with Dexterity content types easily and quickly on openshift.redhat.com
  • Downloads are cached in ${OPENSHIFT_TMP_DIR}/${OPENDIR_APP_UUID}-cache. However, as this is not shared, it means all new apps will have to redownload the python eggs. While it might be possible to use a shared download cache for this  (OPENSHIFT_TMP_DIR is apparently /tmp), I am not sure whether the SELinux settings in the server allows it or not.
  • Virtualenv and generated eggs are stored in OPENSHIFT_DATA_DIR. Technically though, they are not exactly data. However, as we need them to be persistent, and the DIY cartridge does not provide a folder to store persistent, non-data, automatically generated files, they had to be stored there.
  • The quickstart template is quite generic for any buildout-based deployment. So, technically, you can add support for Grok, BlueBream and any framework that can be deployed using buildout using this template as its base. I'm planning to create a quickstart template for deploying Grok either tonight or later this week.  Will post about it.

Comments

Nate Aune said…
Thanks for your efforts in making Plone deployable on OpenShift! I tried out your repo, and managed to get Plone deployed, but the git push took a really long time!

Maybe it would be a better approach to download a tarball bundle of pre-compiled eggs rather than fetching them during the buildout process.

See how @pigeonflight did it with his Dotcloud Plone repo. https://github.com/pigeonflight/stack-python-plone/blob/master/getplone.sh#L7
David Bain said…
I'm seriously looking into the "egg bundling" approach for openshift, especially now that dotcloud is sunsetting their free sandboxes.

Popular posts from this blog

Tee'ing Python subprocess.Popen output

Consolidated community site infrastructure on Plone

HOWTO: Linux Container (LXC) on Fedora 12