Chapter 9. Cartridges

9.1. Introduction to Cartridges

Cartridges are the components of an OpenShift Enterprise application and contain the application code to provide the actual functionality required to run applications. Cartridges are available to support various programming languages, databases, monitoring services, and management.
Adding a cartridge to an application provides the desired capability without having to administer or update the included feature. When added to an application, a cartridge is deployed to one or more gears based on its requirements. Cartridges that listen to incoming traffic are placed on one or more gears, while other cartridges can be placed across multiple gears of an application.

9.1.1. Web Framework Cartridges

Web cartridges are available for a variety of programming languages and frameworks, and an application requires at least one web cartridge to listen to HTTP requests. The type of web framework cartridge must be specified when an application is created. Cartridges that listen to incoming traffic are placed on one or more gears, while other cartridges can be placed across multiple gears of an application.
The following web framework cartridges are currently available with OpenShift Enterprise 2:

Table 9.1. Available Web Framework Cartridges

Cartridge Scalable Version
Do-It-Yourself (DIY) No -
JBoss A-MQ No 6.1 [a]
JBoss EAP Yes 6.2
JBoss Fuse No 6.1 [a]
JBoss Fuse Builder Yes 6.1 [a]
Jenkins Server No 1.5
Node.js Yes 0.10
Perl Yes 5.10
PHP Yes 5.3, 5.4 [b] [c]
Python Yes 2.6, 2.7, 3.3 [d]
Ruby Yes 1.8, 1.9, 2.0 [e]
Tomcat (JBoss EWS) Yes 6, 7 [f]
[a] JBoss A-MQ 6.1, JBoss Fuse 6.1, and JBoss Fuse Builder 6.1 are available starting in OpenShift Enterprise 2.1.7
[b] PHP 5.4 is available starting in OpenShift Enterprise 2.1.
[c] PHP 5.3 has APC opcode cache enabled by default. PHP 5.4 has Zend OPCache enabled by default, with APC enabled only for user cache.
[d] Python 3.3 is available starting in OpenShift Enterprise 2.1.1.
[e] Ruby 2.0 is available starting in OpenShift Enterprise 2.2.
[f] EWS 3 is only certified to run with Java 1.7.

9.1.2. Add-on Cartridges

After an application is created with the required web framework cartridge, a number of add-on cartridges can provide extra functionality and capabilities to applications, such as databases, scheduled jobs, or continuous integration. The following table describes the functionality of the different types of add-on cartridges available with OpenShift Enterprise.

Table 9.2. Add-on Cartridge Functions

Function Description
Database Provide the application with one of several database back ends. Examples include MySQL and PostgreSQL.
Monitoring and Management Provide a range of options for managing and monitoring the application. Examples include the Cron task scheduler, and the Jenkins Client.
The following add-on cartridges are currently available for OpenShift Enterprise.
Database Cartridges

The following table describes all available database cartridges.

Table 9.3. Database Cartridges

Cartridge Scalable Version Description
MySQL No 5.1, 5.5 [a] Multi-user, multi-threaded SQL database server.
MongoDB No 2.4 [b] High-performance, open source NoSQL database.
PostgreSQL No 8.4, 9.2 Advanced object-relational database management system
[a] MySQL 5.5 is available starting in OpenShift Enterprise 2.1.
[b] MongoDB 2.4 is available starting in OpenShift Enterprise 2.1.1.

Important

While at this time of writing database cartridges are not scalable, they can be added to scalable applications.
Monitoring and Management Cartridges

The following table describes all available management cartridges, and shows whether they are scalable or not.

Table 9.4. Monitoring and Management Cartridges

Cartridge Scalable Version Description
HAProxy Yes 1.4 High performance TCP/HTTP load balancer.
Cron Yes 1.4 A daemon that runs specified programs at scheduled times.
Jenkins Client No 1.5 A client for managing Jenkins-enabled applications.

9.1.3. Downloadable Cartridges

Downloadable cartridges are available for new and existing applications along with the supported standard OpenShift Enterprise cartridges. These are custom cartridges created by users, or available from the OpenShift community. These cartridges are downloaded and installed using the URL to the manifest of the hosted downloadable cartridge.
Visit https://www.openshift.com/developers/download-cartridges for more community tips and information on downloadable cartridges.