Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Etcd-Based Discovery Provider
As per enhancement request 440824, recently a new ECF discovery provider has been created, based upon the etcd server/service. See the etcd github project here for specifics about the etcd project.
Getting and Etcd Discovery Provider
The ECF Etcd Discovery Provider is currently available as one of ECF's github repositories. The etcd provider repository is here.
A binary build of the Etcd Discovery Provider is available here
Etcd Discovery Provider Configuration Properties
As with other discovery providers, the ECF Etcd Discovery Provider is configured properties. Here is a table of the Etcd Discovery Provider configuration properties and their default values:
Property Name | Description | Type | Default value |
---|---|---|---|
ecf.discovery.etcd.protocol | Etcd Server URL protocol. Example: 'http' in constructed Etcd Server URL 'http://127.0.0.1:2379/v2/keys' | String | http |
ecf.discovery.etcd.hostname | Etcd Server URL hostname. Example: '127.0.0.1' in constructed Etcd Server URL 'http://127.0.0.1:2379/v2/keys' | String | None. Note that this system property is required and must be set to an operational etcd host. |
ecf.discovery.etcd.port | Etcd Server URL port. Example: '2379' in constructed Etcd Server URL 'http://127.0.0.1:2379/v2/keys' | String | 2379 |
ecf.discovery.etcd.path | Etcd Server URL initial path. Example: '/v2/keys' in constructed Etcd Server URL 'http://127.0.0.1:2379/v2/keys' | String | /v2/keys |
ecf.discovery.etcd.targetid | Etcd Server target. Example: 'http://foo.bar:2379/v2/keys' in 'http://foo.bar:2379/v2/keys'. Note that
if set, the value provided by this property will override the protocol, hostname, port, and path specified by the properties defined above. |
String | null/no value resulting in the protocol, hostname, port, and path properties used to construct the etcd service URL |
ecf.discovery.etcd.sessionid | Etcd Client Container SessionId. This is typically an automatically-generiated UUID String value...e.g.: de1326d9-1ac6-431f-8ae1-9c0e31294047. If this property is set | String | null/no value resulting in a new UUID being created and assigned as the Etcd Client Container SessionId. |
ecf.discovery.etcd.sessionTTL | Etcd Client Container SessionId Time To Live (TTL). This is the time to live in seconds for the directory associated with the ectd-provider client. The default behavior of the etcd-provider is to update the time to live when ~75% of the seconds in the TTL have expired. If the ectd-provider gets disconnected from the etcd provider, any published services will remain available for =< TTL. | Integer | 30 seconds |
ecf.discovery.etcd.containerId | Etcd Client Container Id. This is the id that is shared for all etc-provider clients The default is 'org.eclipse.ecf.provider.etcd.EtcdDiscoveryContainer' which means that all etcd-provider subscriptions are available at the following path: http://127.0.0.1:2379/v2/keys/org.eclipse.ecf.provider.etcd.EtcdDiscoveryContainer/ | String | org.eclipse.ecf.provider.etcd.EtcdDiscoveryContainer |
Note that these values and defaults are also defined in the source code in the org.eclipse.ecf.provider.etcd.EtcdDiscoveryContainerConfig class available at githhub here.