smc
Service Management Central (aka smc) is a lookup service for your backend services (e.g. gRPC).
Not a lot to look at yet, and no documentation yet; specifications should give you some ideas of what it can do.
To do:
- arbitrarily deep hierarchy of services so you can model e.g. cluster -> datacenter -> region -> global
- support for multiple storage backends
- health checking
- gRPC service
- CRUD
- service query / resolution
- CRUD CLI to invoke the gRPC API
- OpenTelemetry support
- Prometheus metrics
- Kubernetes controller to automatically maintain the mapping of services -> endpoints
- xDS control plane
- Envoy setup
- gRPC load balancing
- more sophisticated load balancing
Contributing
Regenerating after .proto changes
Install as needed:
go get -u github.com/golang/protobuf/protoc-gen-go
go get -u google.golang.org/grpc/cmd/protoc-gen-go-grpc
export PATH=$PATH:~/go/bin
Then run:
protoc --go_out=. --go_opt=module=github.com/andreacampi/smc --go-grpc_out=. --go-grpc_opt=module=github.com/andreacampi/smc proto/*.proto
Testing with local etcd:
cd support
docker-compose up