Jump to: navigation, search

App-Catalog

NO LONGER IN SERVICE

The OpenStack Community App Catalog has been removed, see [1]. The remainder of this page is left intact as a reference.

Mission

The OpenStack Community App Catalog will help you make applications available on your OpenStack cloud by providing a community driven catalog containing Glance images, Heat templates and Murano applications.

By providing a public location where OpenStack users can publish and consume artifacts to share and add additional capabilities, all OpenStack clouds become more valuable. For example vendors can publish Glance images for launching new VMs, Heat templates for creating new stacks, or Murano app packages for installing complete applications. When many OpenStack community members are publishing artifacts that users can easily download and install into their clouds this will multiply the value of their OpenStack cloud. Easy access to images, templates and apps will solve the “what now” question some user consider after successfully deploying an OpenStack environment.

FAQ

Q: What is the Community App Catalog?

The Community App Catalog is a collection of ready-to-use applications, Heat templates and machine images that you can immediately deploy into your OpenStack cloud. With the catalog (now in beta), there’s no need to go and collect parts of the applications and services you wish to deploy, work out their detailed infrastructure settings, or create scripts to handle their dependencies. To deploy a Murano app, for example, simply browse and select the one you need and copy the name into Murano in your OpenStack environment. Then click through a handful of parameters and your application is deployed


Q: What can I find in it?

The catalog features useful applications and components to use on your OpenStack Cloud, pre-configured with the necessary settings to deploy and run them

  • Murano Application packages: complete applications, either commercial or open source, ready to deploy on your cloud (aka ‘Murano Packages’)
  • Heat templates: YAML files used to orchestrate infrastructure services (network, VMs, storage, etc.) for creating a complete stack on your cloud
  • Glance Images: mountable file with a VM and bootable operating system, ready to launch on your cloud
  • Application bundles: combinations of Applications, Heat templates and Glance images pre-configured to deploy together


Q: How much does it cost?

There’s no charge to put anything in or get anything out of the App Catalog. Catalog items include both free and licensed software, and some may require payment or specific license terms. You’ll see that in each particular package.


Q: How do I update something I already put in the catalog?

  1. Clone https://git.openstack.org/openstack/app-catalog
  2. Make the changes to your entry, be sure to include what’s changed and why
  3. If you’re updating binary content be sure your commit message points to where the updated binary can be found.
  4. Commit the change for review
  5. The changes will be reviewed, merged within a day or so, and published to the catalog

Horizon Plugin for Native Access

The Community App Catalog has a Horizon plugin available at https://git.openstack.org/openstack/app-catalog-ui. When this is included in your Horizon deployment, the contents of the App Catalog are available in the Horizon panel under "Catalog". Users can search the catalog from there and easily click the "Install" button to make the asset available locally.

App-catalog-ui-apps-v1.png

App-catalog-ui-components-v1.png

How to use these assets

Glance Images

In Glance Images you will find a library of preconfigured images ready to launch virtual machines on your cloud. To use them:

  1. Browse the list and find the one you want
  2. Copy the URL for the image file
  3. Use the Glance client to add it to your cloud with the --copy-from option, or add the image from Horizon by specifying the URL as the image location.
  4. Use Nova to launch a vm from the new image

Heat Templates

In Heat Templates you will find templates for creating complete stacks in your cloud. To use them:

  1. Browse the list and find the one you want
  2. Download the template yaml file to your local machine
  3. Use the Heat client or Horizon to add the template to your cloud,
  4. Use the Heat client to create a stack

Murano Packages

In Murano Packages you will find complete applications, simple and clustered, ready to deploy into your cloud. To use them:

  1. Verify that you have Murano installed
  2. Browse the list and find the app package you want
  3. Copy the name of the app package
  4. In Horizon navigate to the Application Catalog | Packages page and Click Download Package
  5. Paste the app package name, and click Download
  6. You can now deploy the app into your cloud using Horizon or the Murano client


How to contribute

The OpenStack Community App Catalog is designed to use the same tools for submission and review as other OpenStack projects. As such we follow the OpenStack development workflow. New contributors should follow the getting started steps before proceeding, as a Launchpad ID and signed contributor license are required to add new entries.

The Community App Catalog Launchpad page can be found at https://launchpad.net/app-catalog.

A gerrit review dashboard is available to make it easier for contributors/reviewers.

We also use IRC to communicate, join us at #openstack-app-catalog on Freenode. The channel is logged, and conversations can be found at http://eavesdrop.openstack.org/irclogs/%23openstack-app-catalog/

Weekly meetings

Those involved with or interested in the Community App Catalog are encouraged to attend the weekly meetings. They are scheduled for Thursdays at 17:00 UTC on #openstack-meeting-3 (http://eavesdrop.openstack.org/#App_Catalog_Team_Meeting). The agenda can be found here: https://wiki.openstack.org/wiki/Meetings/app-catalog#Agenda

Creating content

We actively encourage new submissions - if you're interested in creating content for the catalog, you can find getting started guides at the following links:

Adding content

If you've already got something to share, follow these steps to add an entry to the catalog:

  1. Clone https://git.openstack.org/openstack/app-catalog
  2. Edit the assets YAML file (found in openstack_catalog/web/static/assets.yaml). The YAML file is validated against the assets.schema.yaml YAML schema file which is located in the same directory. The openStack gate checks the file for compliance with the schema, so be sure additions match schema.
  3. Make sure the tests pass - run "tox -epy27"
  4. Make sure your edit looks good - run "./run_tests.sh --runserver", then visit http://localhost:18001
  5. When submitting the entry for review, if it contains a binary intended to be hosted at storage.apps.openstack.org the commit message must include the catalog entry name, URL to retrieve the asset, and an md5 sum.
    • For example if you wanted to add a Murano package called "MyLAMPStack.zip", the commit message must show where to retrieve that asset along with the SHA or md5 hash:
      • url: http://<your-hostname>/MyLAMPStack.zip
      • hash: 7237de38ebf827e234ca643b725779e4f38f0ef0
    • [OPTIONAL] If the image is meant to be stored on the OpenStack CDN, the glance image URLs and hashes must be similarly included in the commit message, as in the following example NOTE: the image check gate test is non-voting for glance entries, so if it fails you may safely ignore it):
      • Image-URL: http://<your-hostname>/images/ubuntu-14.04-m-agent.qcow2
      • Image-hash: cbd9ded8587b98d144d9cf0faea991a9

Updating content

If you've added an asset to the catalog and later need to update it, you can follow the same review process for adding content. This is appropriate for things like updating the hash of a binary asset, or updating a link if the URL has changed.

If you are updating an asset that is related to a binary stored on the OpenStack CDN, you should submit a review that updates the hash entry in assets.yaml and in the commit message include the URL to retrieve the binary for transfer to http://storage.apps.openstack.org.

Structure of Glance entry

Glance entries are validated against the file openstack_catalog/web/static/assets.schema.yaml found in the app-catalog repository. For example, a Debian glance entry is formatted like this:

     name: Debian Jessie 8.0.0 x64
     tags: ['app']
     provided_by:
       name: Debian
       href: http://debian.org
       company: Debian Community
     description: >
                 Debian is a Unix-like computer operating system
                 and a Linux distribution that is composed entirely
                 of free and open-source software, most of which is
                 under the GNU General Public License, and packaged
                 by a group of individuals known as the Debian
                 project.
    
                 This is a Debian Stable 8.0.0 (aka Jessie) official
                 base image with cloud_init, cloud-utils, and
                 cloud-initramfs-growroot pre-installed.
     service:
       type: glance
       disk_format: qcow2
       container_format: bare
     icon:
       url: https://www.debian.org/logos/openlogo-nd-100.jpg
       top: 0
       left: 10
       height: 124
     license: Multi-licensed OpenSource
     hash: 0fcf78a066da0fe489b61176eba11f12e55f60081556693a0c5652d1acfbda57
     attributes:
       url: http://cdimage.debian.org/cdimage/openstack/archive/8.0.0/debian-8.0.0-openstack-amd64.qcow2


The 'attributes' section can contain additional elements. There is no predefined structure for 'attributes' and the only requirements for them is to be YAML valid entries. So in the example above it will be pretty safe to change 'url' to 'Image URL' and UI will still render this properly as a link. Please, feel free to add documentation links if there is a any documentation for the image.

Structure of Heat entry

Heat entries are validated against the file openstack_catalog/web/static/assets.schema.yaml found in the app-catalog repository. Am example Heat entry is formatted like this:

     name: Chef - Standalone Server
     tags: ['app']
     provided_by:
       name: Chef
       href: https://chef.io/openstack
       company: Chef
     service:
       type: heat
       format: HOT
     description: >
         This is a template to build a Standalone Chef server instance.
         It uses Ubuntu 14.04 as the base image to build it.
         Documentation on how to install it located here:
         http://docs.chef.io/server/install_server.html
         If you would like more details on how to configure the image
         please take a look at the https://github.com/chef-partners/chef-heat-templates/blob/master/README.md.
     release:
       - Kilo
     supported_by:
       name: Community and Chef Partner Engineering
     icon:
       url: http://apps.openstack.org/static/images/Chef-124x90-logo.png
       top: 5
       left: -45
       height: 170
     license: Apache 2.0
     attributes:
       url: https://raw.githubusercontent.com/chef-partners/chef-heat-templates/master/single_chef_server-HOT.yml

Structure of Murano entry

Murano entries are validated against the file openstack_catalog/web/static/assets.schema.yaml found in the app-catalog repository. An example Murano entry is formatted like this:

     name: Apcera
     tags: ['app']
     provided_by:
       name: Austin Mills
       href: "mailto:austin@apcera.com"
       company: Apcera, Inc.
     description: >
       Apcera Hybrid Cloud Operating System (HCOS) delivers seamless workload
       mobility and pervasive policy and governance across any cloud - public
       or private. Built on a foundation of trust, Apcera HCOS enables you to
       securely develop, deploy, orchestrate and govern diverse workloads
       across multiple cloud providers resulting in lower cost, simplified
       operations and assured compliance.
     service:
       type: murano
       format: package
       package_name: com.apcera.Apcera
     release:
       - Kilo
     license: Unknown
     depends:
       - name: Apcera HCOS Trial Edition
     hash: 1055116f26f2ea36a51217ab33ddec3f
     attributes:
       "Package URL": "http://storage.apps.openstack.org/apps/com.apcera.Apcera.zip"