runtime

package
v4.0.0-...-699247e Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 27, 2023 License: Apache-2.0 Imports: 19 Imported by: 0

Documentation

Overview

Package runtime is a service runtime manager

Index

Constants

This section is empty.

Variables

View Source
var (
	// DefaultRuntime is default micro runtime.
	DefaultRuntime Runtime = NewRuntime()
	// DefaultName is default runtime service name.
	DefaultName = "go.micro.runtime"

	ErrAlreadyExists = errors.New("already exists")
)

Functions

This section is empty.

Types

type CreateOption

type CreateOption func(o *CreateOptions)

func CreateContext

func CreateContext(ctx context.Context) CreateOption

CreateContext sets the context.

func CreateImage

func CreateImage(img string) CreateOption

CreateImage sets the image to use.

func CreateNamespace

func CreateNamespace(ns string) CreateOption

CreateNamespace sets the namespace.

func CreateType

func CreateType(t string) CreateOption

CreateType sets the type of service to create.

func WithArgs

func WithArgs(args ...string) CreateOption

WithArgs specifies the command to execute.

func WithCommand

func WithCommand(cmd ...string) CreateOption

WithCommand specifies the command to execute.

func WithEnv

func WithEnv(env []string) CreateOption

WithEnv sets the created service environment.

func WithOutput

func WithOutput(out io.Writer) CreateOption

WithOutput sets the arg output.

func WithRetries

func WithRetries(retries int) CreateOption

type CreateOptions

type CreateOptions struct {
	// Command to execut
	Command []string
	// Args to pass into command
	Args []string
	// Environment to configure
	Env []string
	// Log output
	Output io.Writer
	// Type of service to create
	Type string
	// Retries before failing deploy
	Retries int
	// Specify the image to use
	Image string
	// Namespace to create the service in
	Namespace string
	// Specify the context to use
	Context context.Context
}

CreateOptions configure runtime services.

type DeleteOption

type DeleteOption func(o *DeleteOptions)

func DeleteContext

func DeleteContext(ctx context.Context) DeleteOption

DeleteContext sets the context.

func DeleteNamespace

func DeleteNamespace(ns string) DeleteOption

DeleteNamespace sets the namespace.

type DeleteOptions

type DeleteOptions struct {
	// Namespace the service is running in
	Namespace string
	// Specify the context to use
	Context context.Context
}

type Event

type Event struct {
	// ID of the event
	ID string
	// Type is event type
	Type EventType
	// Timestamp is event timestamp
	Timestamp time.Time
	// Service the event relates to
	Service *Service
	// Options to use when processing the event
	Options *CreateOptions
}

Event is notification event.

type EventType

type EventType int

EventType defines schedule event.

const (
	// Create is emitted when a new build has been craeted.
	Create EventType = iota
	// Update is emitted when a new update become available.
	Update
	// Delete is emitted when a build has been deleted.
	Delete
)

func (EventType) String

func (t EventType) String() string

String returns human readable event type.

type LogRecord

type LogRecord struct {
	Message  string
	Metadata map[string]string
}

type LogStream

type LogStream interface {
	Error() error
	Chan() chan LogRecord
	Stop() error
}

Stream returns a log stream.

type LogsOption

type LogsOption func(o *LogsOptions)

LogsOption configures runtime logging.

func LogsContext

func LogsContext(ctx context.Context) LogsOption

LogsContext sets the context.

func LogsCount

func LogsCount(count int64) LogsOption

LogsExistingCount confiures how many existing lines to show.

func LogsNamespace

func LogsNamespace(ns string) LogsOption

LogsNamespace sets the namespace.

func LogsStream

func LogsStream(stream bool) LogsOption

LogsStream configures whether to stream new lines.

type LogsOptions

type LogsOptions struct {
	// How many existing lines to show
	Count int64
	// Stream new lines?
	Stream bool
	// Namespace the service is running in
	Namespace string
	// Specify the context to use
	Context context.Context
}

LogsOptions configure runtime logging.

type Option

type Option func(o *Options)

func WithClient

func WithClient(c client.Client) Option

WithClient sets the client to use.

func WithImage

func WithImage(t string) Option

WithImage sets the image to use.

func WithLogger

func WithLogger(l logger.Logger) Option

WithLogger sets the underline logger.

func WithScheduler

func WithScheduler(n Scheduler) Option

WithScheduler specifies a scheduler for updates.

func WithSource

func WithSource(src string) Option

WithSource sets the base image / repository.

func WithType

func WithType(t string) Option

WithType sets the service type to manage.

type Options

type Options struct {
	// Scheduler for updates
	Scheduler Scheduler
	// Service type to manage
	Type string
	// Source of the services repository
	Source string
	// Base image to use
	Image string
	// Client to use when making requests
	Client client.Client
	// Logger underline logger
	Logger logger.Logger
}

Options configure runtime.

func NewOptions

func NewOptions(opts ...Option) *Options

type ReadOption

type ReadOption func(o *ReadOptions)

func ReadContext

func ReadContext(ctx context.Context) ReadOption

ReadContext sets the context.

func ReadNamespace

func ReadNamespace(ns string) ReadOption

ReadNamespace sets the namespace.

func ReadService

func ReadService(service string) ReadOption

ReadService returns services with the given name.

func ReadType

func ReadType(t string) ReadOption

ReadType returns services of the given type.

func ReadVersion

func ReadVersion(version string) ReadOption

ReadVersion confifgures service version.

type ReadOptions

type ReadOptions struct {
	// Service name
	Service string
	// Version queries services with given version
	Version string
	// Type of service
	Type string
	// Namespace the service is running in
	Namespace string
	// Specify the context to use
	Context context.Context
}

ReadOptions queries runtime services.

type Runtime

type Runtime interface {
	// Init initializes runtime
	Init(...Option) error
	// Create registers a service
	Create(*Service, ...CreateOption) error
	// Read returns the service
	Read(...ReadOption) ([]*Service, error)
	// Update the service in place
	Update(*Service, ...UpdateOption) error
	// Remove a service
	Delete(*Service, ...DeleteOption) error
	// Logs returns the logs for a service
	Logs(*Service, ...LogsOption) (LogStream, error)
	// Start starts the runtime
	Start() error
	// Stop shuts down the runtime
	Stop() error
	// String describes runtime
	String() string
}

Runtime is a service runtime manager.

func NewRuntime

func NewRuntime(opts ...Option) Runtime

NewRuntime creates new local runtime and returns it.

type Scheduler

type Scheduler interface {
	// Notify publishes schedule events
	Notify() (<-chan Event, error)
	// Close stops the scheduler
	Close() error
}

Scheduler is a runtime service scheduler.

type Service

type Service struct {
	// Name of the service
	Name string
	// Version of the service
	Version string
	// url location of source
	Source string
	// Metadata stores metadata
	Metadata map[string]string
}

Service is runtime service.

type UpdateOption

type UpdateOption func(o *UpdateOptions)

func UpdateContext

func UpdateContext(ctx context.Context) UpdateOption

UpdateContext sets the context.

func UpdateNamespace

func UpdateNamespace(ns string) UpdateOption

UpdateNamespace sets the namespace.

type UpdateOptions

type UpdateOptions struct {
	// Namespace the service is running in
	Namespace string
	// Specify the context to use
	Context context.Context
}

Directories

Path Synopsis
Package kubernetes implements kubernetes micro runtime
Package kubernetes implements kubernetes micro runtime
Package local provides a local runtime
Package local provides a local runtime
build
Package build builds a micro runtime package
Package build builds a micro runtime package
build/docker
Package docker builds docker images
Package docker builds docker images
build/go
Package golang is a go package manager
Package golang is a go package manager
git
process
Package process executes a binary
Package process executes a binary
process/os
Package os runs processes locally
Package os runs processes locally
source
Package source retrieves source code
Package source retrieves source code
source/git
Package git provides a git source
Package git provides a git source
source/go
Package golang is a source for Go
Package golang is a source for Go

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL