1
0
mirror of https://github.com/go-micro/go-micro.git synced 2024-12-18 08:26:38 +02:00
go-micro/config/source/etcd
Vasiliy Tolstov f23638c036 fix import paths for v2 release
Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
2020-01-30 14:44:40 +03:00
..
etcd.go fix import paths for v2 release 2020-01-30 14:44:40 +03:00
options.go fix import paths for v2 release 2020-01-30 14:44:40 +03:00
README.md Move the remaining consul cruft to go-plugins 2019-10-03 11:22:35 +01:00
util.go fix import paths for v2 release 2020-01-30 14:44:40 +03:00
watcher.go fix import paths for v2 release 2020-01-30 14:44:40 +03:00

Etcd Source

The etcd source reads config from etcd key/values

This source supports etcd version 3 and beyond.

Etcd Format

The etcd source expects keys under the default prefix /micro/config (prefix can be changed)

Values are expected to be JSON

// set database
etcdctl put /micro/config/database '{"address": "10.0.0.1", "port": 3306}'
// set cache
etcdctl put /micro/config/cache '{"address": "10.0.0.2", "port": 6379}'

Keys are split on / so access becomes

conf.Get("micro", "config", "database")

New Source

Specify source with data

etcdSource := etcd.NewSource(
	// optionally specify etcd address; default to localhost:8500
	etcd.WithAddress("10.0.0.10:8500"),
	// optionally specify prefix; defaults to /micro/config
	etcd.WithPrefix("/my/prefix"),
	// optionally strip the provided prefix from the keys, defaults to false
	etcd.StripPrefix(true),
)

Load Source

Load the source into config

// Create new config
conf := config.NewConfig()

// Load file source
conf.Load(etcdSource)