* Add Get() and GetOptions. * Removed watcher. Outline of client. YAML templates * Added default service and deployment templates and types * Added API tests and cleaned up errors. * Small refactoring. Template package is no more. * Ripped out existing code in preparation to small rework * Reshuffled the source code to make it organized better * Create service and deployment in kubernetes runtime * Major cleanup and refactoring of Kubernetes runtime * Service now handles low level K8s API calls across both K8s deployment an service API objects * Runtime has a task queue that serves for queueing runtime action requests * General refactoring * No need for Lock in k8s service * Added kubernetes runtime env var to default deployment * Enable running different versions of the same service * Can't delete services through labels * Proto cruft. Added runtime.CreateOptions implementation in proto * Removed proxy service from default env variables * Make service name mandatory param to Get method * Get Delete changes from https://github.com/micro/go-micro/pull/945 * Replaced template files with global variables * Validate service names before sending K8s API request * Refactored Kubernetes API client. Fixed typos. * Added client.Resource to make API resources more explicit in code
		
			
				
	
	
		
			160 lines
		
	
	
		
			4.9 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			160 lines
		
	
	
		
			4.9 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| // Code generated by protoc-gen-micro. DO NOT EDIT.
 | |
| // source: runtime.proto
 | |
| 
 | |
| package go_micro_runtime
 | |
| 
 | |
| import (
 | |
| 	fmt "fmt"
 | |
| 	proto "github.com/golang/protobuf/proto"
 | |
| 	math "math"
 | |
| )
 | |
| 
 | |
| import (
 | |
| 	context "context"
 | |
| 	client "github.com/micro/go-micro/client"
 | |
| 	server "github.com/micro/go-micro/server"
 | |
| )
 | |
| 
 | |
| // Reference imports to suppress errors if they are not otherwise used.
 | |
| var _ = proto.Marshal
 | |
| var _ = fmt.Errorf
 | |
| var _ = math.Inf
 | |
| 
 | |
| // This is a compile-time assertion to ensure that this generated file
 | |
| // is compatible with the proto package it is being compiled against.
 | |
| // A compilation error at this line likely means your copy of the
 | |
| // proto package needs to be updated.
 | |
| const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
 | |
| 
 | |
| // Reference imports to suppress errors if they are not otherwise used.
 | |
| var _ context.Context
 | |
| var _ client.Option
 | |
| var _ server.Option
 | |
| 
 | |
| // Client API for Runtime service
 | |
| 
 | |
| type RuntimeService interface {
 | |
| 	Create(ctx context.Context, in *CreateRequest, opts ...client.CallOption) (*CreateResponse, error)
 | |
| 	Get(ctx context.Context, in *GetRequest, opts ...client.CallOption) (*GetResponse, error)
 | |
| 	Delete(ctx context.Context, in *DeleteRequest, opts ...client.CallOption) (*DeleteResponse, error)
 | |
| 	Update(ctx context.Context, in *UpdateRequest, opts ...client.CallOption) (*UpdateResponse, error)
 | |
| 	List(ctx context.Context, in *ListRequest, opts ...client.CallOption) (*ListResponse, error)
 | |
| }
 | |
| 
 | |
| type runtimeService struct {
 | |
| 	c    client.Client
 | |
| 	name string
 | |
| }
 | |
| 
 | |
| func NewRuntimeService(name string, c client.Client) RuntimeService {
 | |
| 	if c == nil {
 | |
| 		c = client.NewClient()
 | |
| 	}
 | |
| 	if len(name) == 0 {
 | |
| 		name = "go.micro.runtime"
 | |
| 	}
 | |
| 	return &runtimeService{
 | |
| 		c:    c,
 | |
| 		name: name,
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func (c *runtimeService) Create(ctx context.Context, in *CreateRequest, opts ...client.CallOption) (*CreateResponse, error) {
 | |
| 	req := c.c.NewRequest(c.name, "Runtime.Create", in)
 | |
| 	out := new(CreateResponse)
 | |
| 	err := c.c.Call(ctx, req, out, opts...)
 | |
| 	if err != nil {
 | |
| 		return nil, err
 | |
| 	}
 | |
| 	return out, nil
 | |
| }
 | |
| 
 | |
| func (c *runtimeService) Get(ctx context.Context, in *GetRequest, opts ...client.CallOption) (*GetResponse, error) {
 | |
| 	req := c.c.NewRequest(c.name, "Runtime.Get", in)
 | |
| 	out := new(GetResponse)
 | |
| 	err := c.c.Call(ctx, req, out, opts...)
 | |
| 	if err != nil {
 | |
| 		return nil, err
 | |
| 	}
 | |
| 	return out, nil
 | |
| }
 | |
| 
 | |
| func (c *runtimeService) Delete(ctx context.Context, in *DeleteRequest, opts ...client.CallOption) (*DeleteResponse, error) {
 | |
| 	req := c.c.NewRequest(c.name, "Runtime.Delete", in)
 | |
| 	out := new(DeleteResponse)
 | |
| 	err := c.c.Call(ctx, req, out, opts...)
 | |
| 	if err != nil {
 | |
| 		return nil, err
 | |
| 	}
 | |
| 	return out, nil
 | |
| }
 | |
| 
 | |
| func (c *runtimeService) Update(ctx context.Context, in *UpdateRequest, opts ...client.CallOption) (*UpdateResponse, error) {
 | |
| 	req := c.c.NewRequest(c.name, "Runtime.Update", in)
 | |
| 	out := new(UpdateResponse)
 | |
| 	err := c.c.Call(ctx, req, out, opts...)
 | |
| 	if err != nil {
 | |
| 		return nil, err
 | |
| 	}
 | |
| 	return out, nil
 | |
| }
 | |
| 
 | |
| func (c *runtimeService) List(ctx context.Context, in *ListRequest, opts ...client.CallOption) (*ListResponse, error) {
 | |
| 	req := c.c.NewRequest(c.name, "Runtime.List", in)
 | |
| 	out := new(ListResponse)
 | |
| 	err := c.c.Call(ctx, req, out, opts...)
 | |
| 	if err != nil {
 | |
| 		return nil, err
 | |
| 	}
 | |
| 	return out, nil
 | |
| }
 | |
| 
 | |
| // Server API for Runtime service
 | |
| 
 | |
| type RuntimeHandler interface {
 | |
| 	Create(context.Context, *CreateRequest, *CreateResponse) error
 | |
| 	Get(context.Context, *GetRequest, *GetResponse) error
 | |
| 	Delete(context.Context, *DeleteRequest, *DeleteResponse) error
 | |
| 	Update(context.Context, *UpdateRequest, *UpdateResponse) error
 | |
| 	List(context.Context, *ListRequest, *ListResponse) error
 | |
| }
 | |
| 
 | |
| func RegisterRuntimeHandler(s server.Server, hdlr RuntimeHandler, opts ...server.HandlerOption) error {
 | |
| 	type runtime interface {
 | |
| 		Create(ctx context.Context, in *CreateRequest, out *CreateResponse) error
 | |
| 		Get(ctx context.Context, in *GetRequest, out *GetResponse) error
 | |
| 		Delete(ctx context.Context, in *DeleteRequest, out *DeleteResponse) error
 | |
| 		Update(ctx context.Context, in *UpdateRequest, out *UpdateResponse) error
 | |
| 		List(ctx context.Context, in *ListRequest, out *ListResponse) error
 | |
| 	}
 | |
| 	type Runtime struct {
 | |
| 		runtime
 | |
| 	}
 | |
| 	h := &runtimeHandler{hdlr}
 | |
| 	return s.Handle(s.NewHandler(&Runtime{h}, opts...))
 | |
| }
 | |
| 
 | |
| type runtimeHandler struct {
 | |
| 	RuntimeHandler
 | |
| }
 | |
| 
 | |
| func (h *runtimeHandler) Create(ctx context.Context, in *CreateRequest, out *CreateResponse) error {
 | |
| 	return h.RuntimeHandler.Create(ctx, in, out)
 | |
| }
 | |
| 
 | |
| func (h *runtimeHandler) Get(ctx context.Context, in *GetRequest, out *GetResponse) error {
 | |
| 	return h.RuntimeHandler.Get(ctx, in, out)
 | |
| }
 | |
| 
 | |
| func (h *runtimeHandler) Delete(ctx context.Context, in *DeleteRequest, out *DeleteResponse) error {
 | |
| 	return h.RuntimeHandler.Delete(ctx, in, out)
 | |
| }
 | |
| 
 | |
| func (h *runtimeHandler) Update(ctx context.Context, in *UpdateRequest, out *UpdateResponse) error {
 | |
| 	return h.RuntimeHandler.Update(ctx, in, out)
 | |
| }
 | |
| 
 | |
| func (h *runtimeHandler) List(ctx context.Context, in *ListRequest, out *ListResponse) error {
 | |
| 	return h.RuntimeHandler.List(ctx, in, out)
 | |
| }
 |