[WIP] K8s update and runtime package changes (#895)
* First commit: outline of K8s runtime package * Added poller. Added auto-updater into default runtime * Added build and updated Poller interface * Added comments and NewRuntime that accepts Options * DefaultPoller; Runtime options * First commit to add Kubernetes cruft * Add comments * Add micro- prefix to K8s runtime service names * Get rid of import cycles. Move K8s runtime into main runtime package * Major refactoring: Poller replaced by Notifier POller has been replaced by Notifier which returns a channel of events that can be consumed and acted upon. * Added runtime configuration options * K8s runtime is now Kubernetes runtime in dedicated pkg. Naming kung-fu. * Fix typo in command. * Fixed typo * Dont Delete service when runtime stops. runtime.Stop stops services; no need to double-stop * Track runtime services * Parse Unix timestamps properly * Added deployments into K8s client. Debug logging
This commit is contained in:
		| @@ -7,6 +7,7 @@ import ( | ||||
| 	"github.com/micro/go-micro/client" | ||||
| 	"github.com/micro/go-micro/client/selector" | ||||
| 	"github.com/micro/go-micro/registry" | ||||
| 	"github.com/micro/go-micro/runtime" | ||||
| 	"github.com/micro/go-micro/server" | ||||
| 	"github.com/micro/go-micro/transport" | ||||
| ) | ||||
| @@ -24,6 +25,7 @@ type Options struct { | ||||
| 	Transport *transport.Transport | ||||
| 	Client    *client.Client | ||||
| 	Server    *server.Server | ||||
| 	Runtime   *runtime.Runtime | ||||
|  | ||||
| 	Brokers    map[string]func(...broker.Option) broker.Broker | ||||
| 	Clients    map[string]func(...client.Option) client.Client | ||||
| @@ -31,6 +33,7 @@ type Options struct { | ||||
| 	Selectors  map[string]func(...selector.Option) selector.Selector | ||||
| 	Servers    map[string]func(...server.Option) server.Server | ||||
| 	Transports map[string]func(...transport.Option) transport.Transport | ||||
| 	Runtimes   map[string]func(...runtime.Option) runtime.Runtime | ||||
|  | ||||
| 	// Other options for implementations of the interface | ||||
| 	// can be stored in a context | ||||
| @@ -135,3 +138,10 @@ func NewTransport(name string, t func(...transport.Option) transport.Transport) | ||||
| 		o.Transports[name] = t | ||||
| 	} | ||||
| } | ||||
|  | ||||
| // New runtime func | ||||
| func NewRuntime(name string, r func(...runtime.Option) runtime.Runtime) Option { | ||||
| 	return func(o *Options) { | ||||
| 		o.Runtimes[name] = r | ||||
| 	} | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user