1
0
mirror of https://github.com/go-micro/go-micro.git synced 2024-12-12 08:23:58 +02:00
go-micro/plugins/config/source/consul
2021-11-11 14:03:34 +00:00
..
consul.go go-micro.dev/v4 (#2305) 2021-10-12 12:55:53 +01:00
go.mod upgrade to go 1.17 (#2346) 2021-11-11 14:03:34 +00:00
go.sum upgrade to go 1.17 (#2346) 2021-11-11 14:03:34 +00:00
options.go go-micro.dev/v4 (#2305) 2021-10-12 12:55:53 +01:00
README.md add all the plugins 2020-12-26 15:32:45 +00:00
util.go go-micro.dev/v4 (#2305) 2021-10-12 12:55:53 +01:00
watcher.go go-micro.dev/v4 (#2305) 2021-10-12 12:55:53 +01:00

Consul Source

The consul source reads config from consul key/values

Consul Format

The consul source expects keys under the default prefix /micro/config

Values are expected to be json

// set database
consul kv put micro/config/database '{"address": "10.0.0.1", "port": 3306}'
// set cache
consul kv 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

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

Load Source

Load the source into config

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

// Load consul source
conf.Load(consulSource)