Skip to content
Cloud Foundry OpenStack Swift Service
Ruby
Find file
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
bin
config
lib/swift_service
spec
vendor/cache
.gitignore
Changelog.textile
Gemfile
Gemfile.lock
Rakefile
Readme.textile
VERSION

Readme.textile

Cloud Foundry OpenStack Swift Service

This service allows to integration an OpenStack Swift as a Cloud Foundry service.

Prerequisites

  • A running OpenStack installation including Swift.
  • The service has been tested against a OpenStack Grizzly installation.

How it works

Provision

  • Create tenant: When a Swift service instance is provisioned, a OpenStack tenant (project) is created.
  • Create user: for the new tenant also a user is generated.
  • Create directory: a directory is created.

By creating an OpenStack tenant (project) a Cloud Foundry user can only see buckets of his OpenStack tenant.
OpenStack tenants are meant to isolate resources from each other.

An account meta key is set for the newly created tenant. With this tenant wide account meta key, being part of the bind credentials, users can
create temporary urls to make private files selectively public for a limited time period.

Bind

Binding to a Swift service instance means to create a user for the given Swift Tenant (representing a Cloud Foundry Swift service instance).
This means it is possible to have multiple Cloud Foundry apps to bind to the same OpenStack tenant and hence access the same
Swift bucket.

Plans

The current implementation supports only the “free” plan and enforce a quota of 10GB.
However, this is to be addressed in future versions.

Usage of the swift service within applications

Direct fog access

This blog post gives an introduction on how to use the cf swift service within your applications deployed on Cloud Foundry.

Paperclip access

A “blog post” about using the swift service within your applications using the paperclip gem: http://blog.anynines.com/how-to-use-the-anynines-swift-service-with-paperclip/

Something went wrong with that request. Please try again.