Configuration

Setting the configuration files


Main configuration file

The configuration is done with a yaml file named config.yml located in /etc/polly.

Example of Polly advertising VirtualBox as swarm_virtualbox.

polly:
  host: tcp://127.0.0.1:7978
  store:
    type: boltdb
    endpoints: /tmp/boltdb
    bucket: MyBoltDb_test
libstorage:
  host: tcp://127.0.0.1:7981
  embedded: false
  server:
    endpoints:
      localhost:
        address: tcp://:7981
    services:
      swarm_virtualbox:
        libstorage:
          storage:
            driver: virtualbox
virtualbox:
  endpoint: http://10.0.2.2:18083
  tls: false
  volumePath: /Users/your_user/VirtualBox Volumes
  controllerName: SATAController

Driver configuration

Most configuration in Polly is inherited from the libStorage package. Read the details at libStorage to get a better understanding of how to configure the services.

REX-Ray configuration

REX-Ray is a libStorage compliant storage orchestrator. It can live on the distributed hosts where the volumes must be advertised and consumed. You can find documentation about REX-Ray here

The following is an example configuration for REX-Ray talking to the Polly and making requests for voumes on behalf of Docker. Notice how the service parameters match between this and the previous configuration. This configuration will expose virtualbox and Volume Drivers to Docker.

rexray:
  modules:
    default-docker:
      host:     unix:///run/docker/plugins/virtualbox.sock
      spec:     /etc/docker/plugins/virtualbox.spec
      libstorage:
        service: swarm_virtualbox
libstorage:
  host: tcp://$POLLY_IP:7981

Firewall port openings

The firewall on the host running Polly should be configured for the libStorage SSL endpoint and instructions should be followed from libStorage to ensure certificates are in order. The Polly REST API should not be exposed today.

Alternate key/value store option

Polly uses libkv as an abstraction layer to a key value store. libkv also allows use of Consul or Zookeeper as alternatives to Bolt. Currently only Bolt, Consul, and Zookeeper are supported for back-end stores.

By default Bolt is the default backing store; however, example configurations for Consul and Zookeeper can be found below. Consul and Zookeeper instances can either be local or remote keeping in mind a network path to those services exist from Polly (i.e. firewalls, and etc). This will allow your configuration to leverage preexisting service that might exist in your application. For example, Zookeeper instances in Apache Mesos clusters.

Consul:

polly:
  ...
  store:
    type: consul
    endpoints: 10.50.0.1:8500
  ...

Zookeeper:

polly:
  ...
  store:
    type: zk
    endpoints: 10.50.0.1:2181
  ...