Skip to content
This repository has been archived by the owner on Jul 16, 2019. It is now read-only.

Create SF backed KeyValue Store #27

Open
jjcollinge opened this issue Jan 3, 2018 · 2 comments
Open

Create SF backed KeyValue Store #27

jjcollinge opened this issue Jan 3, 2018 · 2 comments
Labels
provider issues relating to the Traefik provider sdk issues relating to the SF sdk size/large large tasks

Comments

@jjcollinge
Copy link
Owner

jjcollinge commented Jan 3, 2018

In order to store static and dynamic config (including ACME certificates) in a coordinated and centralised manner, we need to add support for a SF backed KeyValue store.
The current implementations (Consul, etcd, Zookeeper and BoltDB) work by implementing libkv https://github.com/docker/libkv
We can try to create our own implementation backed by the Property Management APIs by creating trees of names for keys and use properties as associated values.
Alternatively, we use one of the existing implementations and host that inside SF.

Property Management Proposal
KVStore keys map to Service Fabric names i.e.
/traefik/loglevel --> fabric:/traefik/loglevel
KVStore values map to property values
Property name is not needed so use a constant default value.

Use Service Fabric names over property names as they are hierarchical, this allows us map to the configuration hierarchy needed by Traefik and matches the tree structure used in libkv.

We'd need to add methods to the SFGOSDK to support;

  • Creating Service Fabric names (POST)
  • Deleting Service Fabric names (DELETE)
  • Getting individual properties with metadata (we'd use a default property name .i.e. KeyValue as the name is redundant) (GET)
  • List sub names (GET)
  • Set individual properties (PUT)

Should create a new SFKV (Service Fabric Key Value store) package which exposes a nice interface to work with the Property Management API and then utilise this from both the llibkv Service Fabric fork and existing SFGOSDK?

Third Party KV Proposal
Use existing integration between Traefik and 3rd party backend.
Could reuse KV for label overrides and other metadata.
Potential consistency issues.

@jjcollinge jjcollinge added the size/large large tasks label Jan 3, 2018
@jjcollinge jjcollinge added provider issues relating to the Traefik provider sdk issues relating to the SF sdk labels Apr 14, 2018
@mburumaxwell
Copy link

Is there any hope/update for this?

@lawrencegripper
Copy link
Collaborator

lawrencegripper commented Jun 12, 2019

There is no active work on this sorry, happy to accept PR's on it tho.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
provider issues relating to the Traefik provider sdk issues relating to the SF sdk size/large large tasks
Projects
None yet
Development

No branches or pull requests

3 participants