Lucs
Lucs

Reputation: 13

CouchDB in CloudFoundry?

I review the Cloud Foundry project and try to install it on a server

I will use Couchdb as a database service.

My principal question is : How use CouchDB in Cloud Foundry?

I install a CF instance with : vcap_dev_setup -c devbox_all.yml -D mydomain.com

The devbox.yml contains :

$  install : 
      - all.

In this install the couchdb_node and the couchdb_gateway is present by default. But it seems to be bug in general. When I delete a app and I have this error for example :

$ vmc delete notes2   
  Provisioned service [mongodb-d216a] detected, would you like to delete it? [yN]: y  
  Provisioned service [redis-8fcdc] detected, would you like to delete it? [yN]: y   
  Deleting application [notes2]: OK   
  Deleting service [mongodb-d216a]: Error 503: Unexpected response from service gateway 

So I tried to install a CF instance with this config. (A standard single-node with redis, couch and mongo)

conf.yml :

$ jobs:
  install:
     - nats_server
    - router
    - stager
    - ccdb
    - cloud_controller:
        builtin_services:
         - redis
         - mongodb
         - couchdb
    - health_manager
    - dea
    - uaa
    - uaadb
    - redis_node:
        index: "0"
    - couchdb_node:
        index: "0"
    - mongodb_node:
        index: "0"
    - coudb_gateway
    - redis_gateway
    - mongodb_gateway

First, this config doesn't work, because the option 'couchdb' is not a valable keyword (In the part built-in services)

So, what I do wrong? Is in the way to integrate couch and it's not finished last week ?

To continue, I success to install the CF instance without the couchdb built-in services option but with a couchdb_node, and a couchdb_gateway. And they start. I suppose the service is runnable.

But i can't use 'couchdb' in my app manifest.yml or choose this service to bind on. (It's seems normal because it's not install as a service)

So, It seems to be close to work, but it's not.

I resquest Ideas, Advice on this subject here because I didn't find people talking about around the web.

Thank's to read me. Lucas

Upvotes: 0

Views: 848

Answers (1)

Dan Higham
Dan Higham

Reputation: 3984

I decided to try this myself and it appears to work OK. I created a new VCAP instance with vcap_dev_setup and the following configuration ..

---
deployment:
  name: "cloudfoundry"
jobs:
  install:
    - nats_server
    - cloud_controller:
        builtin_services:
          - mysql
          - postgresql
          - couchdb
    - stager
    - router
    - health_manager
    - uaa
    - uaadb
    - ccdb
    - dea
    - couchdb_gateway
    - couchdb_node:
        index: "0"
    - postgresql_gateway
    - postgresql_node:
        index: "0"
    - mysql_gateway
    - mysql_node:
        index: "0"

I was able to bind instances of CouchDB to a node app and read the service info from VCAP_SERVICES, as below;

'{"couchdb-1.2":[{"name":"couchdb-c7eb","label":"couchdb-1.2","plan":"free","tags":["key-value","cache","couchdb-1.2","couchdb"],"credentials":{"hostname":"127.0.0.1","host":"127.0.0.1","port":5984,"username":"7f3c0567-89cc-4240-b249-40d1f4586035","password":"8fef9e88-3df2-46a8-a22c-db02b2917251","name":"dde98c69f-01e9-4e97-b0d6-43bed946da95"}}]}'

I was also able to tunnel the service to a local port and connect to it which you can see in this image

CouchDB tunnel

What version of Ubuntu have you used to install VCAP?

Upvotes: 1

Related Questions