cloudfoundry-community-attic / cf-services-contrib-release

release repository for community contributed services
Apache License 2.0
47 stars 60 forks source link

Cloud Foundry Services Contrib Release

Please note that support for v1 service brokers on which the following services relies upon has been removed as of cf-release v228 . General instructions for migrating service brokers can be found here.

This repository contains a wide set of interesting services that can be added into your own Cloud Foundry.

You can find the following services in this repository (in alphabetical order):

Each of these services are offered in a similar way - a single database or running instance running on a single machine.

When choosing data services for your applications you should always consult a data professional. Data is important. Please care about your data.

Perhaps it is best to consider these services as "developer-only" services that can be provisioned and used quickly by developers. That is, until you are read to understand how to do backup/restore of any given service instance and/or all of the service instances provisioned by all users.

You can deploy one or more of these services. If you don't run them, then your developers won't use them, and you won't have to support them. ZING!

Requirements

It is assumed that you already have bosh running with a Cloud Foundry deployment.

You will need Ruby 1.9.3+ locally and the bosh_cli installed:

$ gem install bosh_cli

Usage

To use this BOSH release, first upload it to your bosh:

bosh upload release https://bosh.io/d/github.com/cloudfoundry-community/cf-services-contrib-release?v=6

To deploy it you will need the source repository that contains templates:

git clone https://github.com/cloudfoundry-community/cf-services-contrib-release.git
cd cf-services-contrib-release
git checkout v6

Bosh-lite

For bosh-lite, you can quickly create a deployment manifest:

templates/make_manifest warden
bosh -n deploy

NOTE: The currently supported BOSH Lite stemcell for cf-services-contrib-release is version 388 which can be found here.

Openstack with Neutron

For openstack you will need to provide a stub file with your network details. You can use examples/openstack-neutron-stub.yml as a starting point.

templates/make_manifest openstack-neutron [path to your stub file]
bosh -n deploy

Other

Create a deployment file to describe the services you want to activate and support. Say, call it cf-services-contrib.yml.

See the examples/dns-all.yml for an example deployment file that runs all the services listed above.

Then target the deployment file and deploy it:

$ bosh deployment cf-services-contrib.yml
$ bosh deploy

This will then compile all the source packages, provision the virtual machines, and run all your services.

Authorize Services

Finally, you need to authorize each service gateway with your Cloud Foundry. For example, to authorize postgresql using the example deployment file:

$ cf create-service-auth-token <label> core <token>

For example:

$ cf create-service-auth-token mongodb core mytoken

You and all your users can now provision and bind the services:

$ cf create-service mongodb default my-mongodb
Creating service my-mongodb in org <org> / space <space> as <user>...
OK

If you're using bosh-lite, and have used the warden deployment manifest, you can authorize your services by executing:

$ rake setup

Repository Contents

This repository is structures for use with BOSH, an open source tool for release engineering, deployment and lifecycle management of large scale distributed services. The directories are for two purposes:

Source:

Releases:

See the documentation on bosh for more information about using BOSH.

In order to deploy Cloud Foundry with BOSH, you will need to create a manifest. You can view a sample manifest examples/dns-all.yml.

Development

Running integration specs

  1. Deploy Cloud Foundry on bosh-lite instructions
  2. Deploy Contrib Services on bosh-lite instructions
  3. Install Service auth tokens by running: bundle install && rake setup
  4. run specs: rspec spec

Creating a dev-release

If you want to use all changes in master you can create a bosh dev release:

git clone https://github.com/cloudfoundry-community/cf-services-contrib-release
cd cf-services-contrib-release
./update
bosh create release
bosh upload release
bosh deploy

Source Code

The source code for these services can be found inside this repo in the src/services folder

OSS Contributions

The Cloud Foundry team uses GitHub and accepts contributions via pull request

Follow these steps to make a contribution to any of our open source repositories:

  1. Complete our CLA Agreement for individuals or corporations
  2. Set your name and email
git config --global user.name "Firstname Lastname"
git config --global user.email "your_email@youremail.com"
  1. Fork the repo
  2. Make your changes on a topic branch, commit, and push to github and open a pull request.

Your pull request is much more likely to be accepted if:

We review pull requests regularly.

Documentation

Our documentation, currently a work in progress, is available here: http://docs.cloudfoundry.com/

Ask Questions

Questions about the Cloud Foundry Open Source Project can be directed to our Google Groups.

File a bug

Bugs can be filed using Github Issues.