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

Re: Introducing the OpenShift Cartridge API (v2!)



Oops, I meant to say on build/deploy

On Jun 7, 2013, at 8:34 AM, Clayton Coleman <ccoleman redhat com> wrote:

> Setup can just ignore the version arg and use an env var - that's how the go cart works (since build packs do the same thing).  Start just does the necessary gear config. 
> 
> On Jun 7, 2013, at 1:20 AM, Mrunal Patel <mpatel redhat com> wrote:
> 
>> The current custom cartridge that Ram had created does that, but is still based on nodejs-0.6 as a base.
>> We need platform support for cartridges that can specify *  for version in manifest.yml and setup can 
>> then pull whatever version the user specifies. That way we can pull up-to-date software for fast-moving languages/frameworks.
>> 
>> Thanks,
>> Mrunal
>> 
>> ----- Original Message -----
>>> From: "Grant Shipley" <gshipley redhat com>
>>> To: "Wesley Hearn" <whearn redhat com>
>>> Cc: "dev" <dev lists openshift redhat com>
>>> Sent: Thursday, June 6, 2013 8:53:20 PM
>>> Subject: 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
>>> 
>>> 
>>> _______________________________________________
>>> dev mailing list
>>> dev lists openshift redhat com
>>> http://lists.openshift.redhat.com/openshiftmm/listinfo/dev
>> 
>> _______________________________________________
>> 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]