github.com/micro/go-micro/examples@v0.0.0-20210105173217-bf4ab679e18b/kubernetes/go/web/web.go (about) 1 package web 2 3 import ( 4 "github.com/micro/go-micro/v2" 5 "github.com/micro/go-micro/v2/web" 6 "github.com/micro/go-plugins/registry/kubernetes/v2" 7 // static selector offloads load balancing to k8s services 8 // enable with MICRO_SELECTOR=static or --selector=static 9 // requires user to create k8s services 10 "github.com/micro/go-plugins/client/selector/static/v2" 11 ) 12 13 // NewService returns a web service for kubernetes 14 func NewService(opts ...web.Option) web.Service { 15 // setup 16 k := kubernetes.NewRegistry() 17 st := static.NewSelector() 18 19 // create new service 20 service := micro.NewService( 21 micro.Registry(k), 22 micro.Selector(st), 23 ) 24 25 // prepend option 26 options := []web.Option{ 27 web.MicroService(service), 28 } 29 30 options = append(options, opts...) 31 32 // return new service 33 return web.NewService(options...) 34 }