[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: Introducing the OpenShift Cartridge API (v2!)



Great work but honestly, I would rather see a proper node versioning system in place where the user can specify their own node.js version on the current cartridge.

--
gs
On Jun 6, 2013, at 6:05 PM, Wesley Hearn <whearn redhat com> wrote:

> 
> 
> ----- Original Message -----
>> From: "Clayton Coleman" <ccoleman redhat com>
>> To: "dev" <dev lists openshift redhat com>
>> Sent: Wednesday, June 5, 2013 3:43:04 PM
>> Subject: Introducing the OpenShift Cartridge API (v2!)
>> 
>> As folks familiar with Origin may have noticed, the team has been hard at
>> work bringing a lot of exciting new capabilities to OpenShift cartridges
>> over the last few months, and those changes are now available both in Origin
>> master (https://github.com/openshift/origin-server) and in OpenShift Online
>> (https://openshift.redhat.com/app/login).  With the new v2 cartridge API
>> it's easier than ever before to bring your favorite frameworks and services
>> to OpenShift as cartridges.  To help improve the cartridge writing
>> experience for those without Origin environments, we've also enabled the
>> ability to run your own custom cartridges directly on OpenShift Online.
>> 
>> 
>> What is possible now?
>> ---------------------
>> 
>>  * Running cartridges in userspace - all code runs in the gear under the
>>  user account
>>  * Multiple software versions in the same cart (e.g. Ruby 1.8.7 and 1.9.3
>>  are delivered together)
>>  * Expose TCP and HTTP proxy ports
>>  * Create scaled non-web cartridges
>>  * Set arbitrary environment variables on cart installation
>>  * Define both plugin and service cartridges
>>  * Participate in the cartridge build lifecycle
>>  * Can code X run on Linux?  Then it's possible :)
>> 
>> 
>> Where to get started?
>> ---------------------
>> 
>> The best place to start is with Mike's great introductory blog posts.  This
>> establishes the basics of how the API works, and the various pieces, as well
>> as an example of a real cart.
>> 
>>  * Part 1: Introduction and a simple web server
>>    https://openshift.com/blogs/new-openshift-cartridge-format-part-1
>> 
>>  * Part 2: Packaging the example as a cartridge
>>    https://openshift.com/blogs/new-openshift-cartridge-format-part-2
>> 
>> Next, hit up the Cartridge Author's Guide
>> (https://github.com/openshift/origin-server/blob/master/node/README.writing_cartridges.md)
>> which is the best reference for the various parts of the API.  If
>> something's not clearly explained, please let us know here or on IRC, or
>> even provide pull requests to the doc.
>> 
>> To get an idea of what real cartridges look like, see the supported
>> cartridges:
>> 
>>  * The source repository has both old and new cartridges (v2 carts are those
>>  without a version on the end)
>>    https://github.com/openshift/origin-server/tree/master/cartridges
>> 
>> And these new and experimental cartridges:
>> 
>>  * http://github.com/bdecoste/openshift-origin-cartridge-activemq
>>  * http://github.com/bdecoste/openshift-origin-cartridge-infinispan
>>  * http://github.com/bdecoste/openshift-origin-cartridge-torquebox
>>  * http://github.com/smarterclayton/openshift-go-cart
>>  * http://github.com/smarterclayton/openshift-redis-cart
>>  * http://github.com/smarterclayton/openshift-buildpack-cart
>>  * http://github.com/smarterclayton/openshift-cdk-cart
>>  * https://github.com/matejonnet/openshift-cartridge-ceylon
>>  * http://github.com/ncdc/openshift-binary-deployment-cartridge
>> 
>>  (not all of these cartridges are fully functional - take a look and help
>>  out if you want to see them sooner)
>> 
>> How do I deploy a cart to OpenShift Online?
>> -------------------------------------------
>> 
>> To develop cartridges on OpenShift Online, you need to provide the URL of the
>> manifest (which must be visible on the public internet) and the manifest
>> must contain an attribute 'Source-Url' which points to a zip, tar, or git
>> repository that contains the contents of your cart.
>> 
>> Upgrade to the latest version of RHC (1.9.1) and then pass the URL to the
>> create-app or add-cartridge commands (or use the web console):
>> 
>>  rhc create-app myapp http://url.to/the/cartridge/manifest.yml
>>  rhc add-cartridge http://url.to/the/cartridge/manifest.yml -a
>> 
>> Your app will add or install the cartridge - any errors should be reported
>> during creation (the most common are typos or bash script errors)
>> 
>> To prevent you from having to update a URL and zip file every time you change
>> the cartridge source, you can use a handy service we run on OpenShift - the
>> cart reflector.  You can pass the name of a GitHub repository and the commit
>> ID to load to the reflector, and it'll fetch the manifest and generate a
>> Source-Url automatically.  Here's an example to install the
>> openshift-go-cart from GitHub:
>> 
>>  rhc create-app mygoapp
>>  "http://cartreflect-claytondev.rhcloud.com/reflect?github=smarterclayton/openshift-go-cart&commit=master";
>> 
>> If you need to build your cart, or would rather have your Git repository in
>> OpenShift Online, you can install the new Cartridge Development Kit as an
>> app, and use it to build other carts.  For example:
>> 
>>  rhc create-app mynewcart "http://cdk-claytondev.rhcloud.com/";
>>  --from-code="git://github.com/smarterclayton/openshift-go-cart.git"
>> 
>> is all you need to create a copy of the Go cart and have your own private
>> copy to work on.
>> 
>> Read more about the CDK here:
>> 
>>  https://github.com/smarterclayton/openshift-cdk-cart
>> 
>> For more helpful tips on installing and running downloadable carts, visit the
>> downloadable cartridges page
>> 
>>  https://www.openshift.com/developers/download-cartridges
>> 
>> 
>> Known Limitations (for now)
>> ---------------------------
>> 
>> * Not all placement options for plugins are supported today - if you want to
>> put a cart in a specific place, check the cart guide or ask.
>> * The format of connection hooks on scaled cartridges is tough to parse.
>> We're looking to improve this, but see the Redis cart for ways to get
>> started.
>> * Process management requires some knowledge of starting, stopping, and
>> watching processes.  We're looking into ways to make this easier to start
>> out with.
>> * There's no formal upgrade process for cartridges downloaded into a gear -
>> you'll need to roll your own for now.
>> * Scale up of a downloaded cart will refetch your source cartridge - be sure
>> to have a manifest URL that uniquely identifies a particular version of a
>> cart
>> * You can't set or retrieve environment variables on app creation or via the
>> REST API - we want to get to this soon.
>> 
>> 
>> If you hit other roadblocks, let us know!  We've got a ton of new features
>> and cleanup on deck, and we want to help you bring your favorite tech to
>> OpenShift.
>> 
>> 
>> - The OpenShift development team
>> 
>> Thanks go out to all of the developers who made v2 possible - the runtime,
>> broker, and test teams have worked tirelessly to get to this point.
>> 
>> _______________________________________________
>> dev mailing list
>> dev lists openshift redhat com
>> http://lists.openshift.redhat.com/openshiftmm/listinfo/dev
>> 
> 
> I have created a nodejs 0.10.9 cartridge. Still very alpha but it works-ish.
> Over the next week or so when I get more free time I will update it and fix
> the problems I know of.
> 
> https://github.com/wshearn/openshift-origin-cartridge-nodejs
> 
> _______________________________________________
> dev mailing list
> dev lists openshift redhat com
> http://lists.openshift.redhat.com/openshiftmm/listinfo/dev
> 
> 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]