Cloud Foundry Services Contrib Release
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):
- elastic search
- rabbitmq (see doc)
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!
It is assumed that you already have bosh running with a Cloud Foundry deployment.
You will need Ruby 1.9.3+ locally and the
$ gem install bosh_cli
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
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
Create a deployment file to describe the services you want to activate and support. Say, call it
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.
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>
- label: the name of the package
- token: the token you provided in your deployment file
$ 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
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:
- jobs: start and stop commands for each of the jobs (processes) running on Cloud Foundry nodes.
- packages: packaging instructions used by BOSH to build each of the dependencies.
- src: the source code for the components in Cloud Foundry. Note that each of the components is a submodule with a pointer to a specific sha. So even if you do not use BOSH to deploy Cloud Foundry, the list of submodule pointers
- releases: yml files containing the references to blobs for each package in a given release; these are solved within .final_builds
- .final_builds: references into the public blostore for final jobs & packages (each referenced by one or more releases)
- config: URLs and access credentials to the bosh blobstore for storing final releases
- git: Local git hooks
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.
Running integration specs
- Deploy Cloud Foundry on bosh-lite instructions
- Deploy Contrib Services on bosh-lite instructions
- Install Service auth tokens by running:
bundle install && rake setup
- run specs:
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
The source code for these services can be found inside this repo in the src/services folder
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:
git config --global user.name "Firstname Lastname" git config --global user.email "email@example.com"
- Fork the repo
- 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:
- It is small and focused with a clear commit message that conveys the intent behind your change.
- The tests pass in CI (we use Travis CI for many of our components in large part because of their excellent support for pull requests).
- Your pull request includes tests.
We review pull requests regularly.
Our documentation, currently a work in progress, is available here: http://docs.cloudfoundry.com/
Questions about the Cloud Foundry Open Source Project can be directed to our Google Groups.
- BOSH Developers: https://groups.google.com/a/cloudfoundry.org/group/bosh-dev/topics
- BOSH Users:https://groups.google.com/a/cloudfoundry.org/group/bosh-users/topics
- VCAP (Cloud Foundry) Developers: https://groups.google.com/a/cloudfoundry.org/group/vcap-dev/topics
File a bug
Bugs can be filed using Github Issues.