Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
…r.git into main
  • Loading branch information
scottslewis committed Sep 11, 2021
2 parents 2df8633 + a77f896 commit d2eff7e
Showing 1 changed file with 30 additions and 3 deletions.
33 changes: 30 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,35 @@

This project contains an OSGi bundle implementing an ECF Discovery Provider for discovering [OSGi Remote Services](https://wiki.eclipse.org/OSGi_Remote_Services_and_ECF) based upon [Etcd](https://etcd.io/) version 3.

Etcd3 provides a popular server/service to reliably store, retrieve, and watch key-value pairs and is used in [Kubernetes](https://kubernetes.io/).
ECF discovery provider that uses etcd3 service to publish and discover remote service endpoint descriptions. See https://github.com/coreos/etcd to download, install, and configure the etcd server.

This discovery provider allows an Etcd3 server to be used to publish and discover OSGi Remote Service endpoints via Etcd3 client->server protocols.
This provider used an etcd server to publish and discover Remote Services. It's necessary to install the provider bundle: org.eclipse.ecf.provider.etcd3, and configure it so that it points to a running etcd server/service.

With this bundle OSGi Remote Services will automatically be published to an Etcd3 server and discovered by other OSGi Remote Service consumers that are using the same Etcd3 server.
Released versions of this bundle are available at [Maven Central](https://search.maven.org/search?q=a:org.eclipse.ecf.provider.etcd3)

For this provider to work, an etcd server must be running at some available hostname and port before the process using the etcd provider is started. Note that when the provider is started, it will immediately attempt to connect to the etcd server. If that connection cannot be made it will result in an ERROR to the OSGi log.

The entire list of configurable properties for the etcd provider is in [this class](https://github.com/ECF/etcd-provider/blob/master/bundles/org.eclipse.ecf.provider.etcd/src/org/eclipse/ecf/provider/etcd/EtcdDiscoveryContainerConfig.java)

The most important properties are:

| Property Name | Default Value |
| --- | --- |
| ecf.discovery.etcd3.disabled | false |
| ecf.discovery.etcd3.protocol | http |
| ecf.discovery.etcd3.hostname | 127.0.0.1 |
| ecf.discovery.etcd3.port | 2379 |
| ecf.discovery.etcd3.keyPrefix | org.eclipse.ecf.provider.etcd3.EtcdDiscoveryContainer |
| ecf.discovery.etcd3.usePlaintext | false |
| ecf.discovery.etcd3.ttl | 30 (seconds) |
| ecf.discovery.etcd3.retry | false |

For example, to set the etcd server to: 'disco.ecf-project.org' set the java system propery...e.g.

<other java start params> -Decf.discovery.etcd.hostname=disco.ecf-project.org

LICENSE
=======

The ECF etcd3 discovery provider is distributed with the Apache 2 license. See LICENSE in this directory for more
information.

0 comments on commit d2eff7e

Please sign in to comment.