Documentation
¶
Overview ¶
Package runtime is a service runtime manager
Package runtime is a service runtime manager
Index ¶
- Constants
- Variables
- func Create(resource Resource, opts ...CreateOption) error
- func Delete(resource Resource, opts ...DeleteOption) error
- func Update(resource Resource, opts ...UpdateOption) error
- type CreateOption
- func CreateContext(ctx context.Context) CreateOption
- func CreateEntrypoint(e string) CreateOption
- func CreateImage(img string) CreateOption
- func CreateInstances(v int) CreateOption
- func CreateNamespace(ns string) CreateOption
- func CreateType(t string) CreateOption
- func ResourceLimits(r *Resources) CreateOption
- func WithArgs(args ...string) CreateOption
- func WithCommand(cmd ...string) CreateOption
- func WithEnv(env []string) CreateOption
- func WithForce(f bool) CreateOption
- func WithOutput(out io.Writer) CreateOption
- func WithPort(p string) CreateOption
- func WithRetries(retries int) CreateOption
- func WithSecret(key, value string) CreateOption
- func WithServiceAccount(s string) CreateOption
- func WithVolume(name, path string) CreateOption
- type CreateOptions
- type DeleteOption
- type DeleteOptions
- type Event
- type EventPayload
- type EventResourcePayload
- type EventType
- type Log
- type LogStream
- type LogsOption
- type LogsOptions
- type Namespace
- type NetworkPolicy
- type Option
- type Options
- type ReadOption
- type ReadOptions
- type Resource
- type ResourceQuota
- type Resources
- type Runtime
- type Service
- type ServiceStatus
- type UpdateOption
- type UpdateOptions
Constants ¶
const ( // EventTopic the events are published to EventTopic = "runtime" // EventServiceCreated is the topic events are published to when a service is created EventServiceCreated = "service.created" // EventServiceUpdated is the topic events are published to when a service is updated EventServiceUpdated = "service.updated" // EventServiceDeleted is the topic events are published to when a service is deleted EventServiceDeleted = "service.deleted" EventNamespaceCreated = "namespace.created" EventNamespaceDeleted = "namespace.deleted" EventNetworkPolicyCreated = "networkpolicy.created" EventNetworkPolicyUpdated = "networkpolicy.updated" EventNetworkPolicyDeleted = "networkpolicy.deleted" EventResourceQuotaCreated = "resourcequota.created" EventResourceQuotaUpdated = "resourcequota.updated" EventResourceQuotaDeleted = "resourcequota.deleted" )
const ( TypeNamespace = "namespace" TypeNetworkPolicy = "networkpolicy" TypeResourceQuota = "resourcequota" TypeService = "service" )
Variables ¶
Functions ¶
func Update ¶
func Update(resource Resource, opts ...UpdateOption) error
Update the resource in place
Types ¶
type CreateOption ¶
type CreateOption func(o *CreateOptions)
func CreateContext ¶
func CreateContext(ctx context.Context) CreateOption
CreateContext sets the context
func CreateEntrypoint ¶
func CreateEntrypoint(e string) CreateOption
CreateEntrypoint sets the entrypoint
func CreateInstances ¶
func CreateInstances(v int) CreateOption
CreateInstances sets the number of instances
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 ResourceLimits ¶
func ResourceLimits(r *Resources) CreateOption
ResourceLimits sets the resources for the service to use
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 WithForce ¶ added in v3.8.3
func WithForce(f bool) CreateOption
WithForce sets the sign to force restart the service
func WithRetries ¶
func WithRetries(retries int) CreateOption
WithRetries sets the max retries attemps
func WithSecret ¶
func WithSecret(key, value string) CreateOption
WithSecret sets a secret to provide the service with
func WithServiceAccount ¶
func WithServiceAccount(s string) CreateOption
WithServiceAccount sets the ServiceAccount
func WithVolume ¶
func WithVolume(name, path string) CreateOption
WithVolume adds a volume to be mounted
type CreateOptions ¶
type CreateOptions struct {
// Command to execut
Command []string
// Args to pass into command
Args []string
// Environment to configure
Env []string
// Entrypoint within the folder (e.g. in the case of a mono-repo)
Entrypoint 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
// Port to expose
Port string
// Namespace to create the service in
Namespace string
// Specify the context to use
Context context.Context
// Secrets to use
Secrets map[string]string
// Resources to allocate the service
Resources *Resources
// Volumes to mount
Volumes map[string]string
// ServiceAccount to start the container with
ServiceAccount string
// Number of instances to run
Instances int
// Force the service ignore the service status
Force bool
}
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 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 EventPayload ¶
EventPayload which is published with runtime events
type EventResourcePayload ¶
type EventResourcePayload struct {
Type string
Name string
Namespace string
NetworkPolicy *NetworkPolicy
ResourceQuota *ResourceQuota
Service *Service
}
EventResourcePayload which is published with runtime resource events
type LogsOption ¶
type LogsOption func(o *LogsOptions)
LogsOption configures runtime logging
func LogsCount ¶
func LogsCount(count int64) LogsOption
LogsExistingCount confiures how many existing lines to show
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 Namespace ¶
type Namespace struct {
// Name of the namespace
Name string
}
Namespace represents a logical namespace for organising resources
func NewNamespace ¶
NewNamespace mints a new namespace
type NetworkPolicy ¶
type NetworkPolicy struct {
// The labels allowed ingress by this policy
AllowedLabels map[string]string
// Name of the network policy
Name string
// Namespace the network policy belongs to
Namespace string
}
NetworkPolicy represents an ACL of label pairs allowing ignress to a namespace
func NewNetworkPolicy ¶
func NewNetworkPolicy(name, namespace string, allowedLabels map[string]string) (*NetworkPolicy, error)
NewNetworkPolicy mints a new networkpolicy
type Options ¶
type Options struct {
// Service type to manage
Type string
// Client to use when making requests
Client client.Client
// Base image to use
Image string
// Source of the services repository
Source string
// Context to store additional options
Context context.Context
}
Options configure runtime
type ReadOption ¶
type ReadOption func(o *ReadOptions)
func ReadService ¶
func ReadService(service string) ReadOption
ReadService returns services with the given name
func ReadVersion ¶
func ReadVersion(version string) ReadOption
ReadVersion configures 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 ResourceQuota ¶
type ResourceQuota struct {
// Name of the resource quota
Name string
// Namespace the resource quota belongs to
Namespace string
// Quota for resource REQUESTS
Requests *Resources
// Quota for resource LIMITS
Limits *Resources
}
ResourceQuota represents an ACL of label pairs allowing ignress to a namespace
func NewResourceQuota ¶
func NewResourceQuota(name, namespace string, requests, limits *Resources) (*ResourceQuota, error)
NewResourceQuota mints a new resourcequota
type Resources ¶
type Resources struct {
// CPU is the maximum amount of CPU the service will be allocated (unit millicpu)
// e.g. 0.25CPU would be passed as 250
CPU int
// Mem is the maximum amount of memory the service will be allocated (unit mebibyte)
// e.g. 128 MiB of memory would be passed as 128
Mem int
// Disk is the maximum amount of disk space the service will be allocated (unit mebibyte)
// e.g. 128 MiB of memory would be passed as 128
Disk int
}
Resources which are allocated to a service
type Runtime ¶
type Runtime interface {
// Init initializes runtime
Init(...Option) error
// Create a resource
Create(Resource, ...CreateOption) error
// Read a resource
Read(...ReadOption) ([]*Service, error)
// Update a resource
Update(Resource, ...UpdateOption) error
// Delete a resource
Delete(Resource, ...DeleteOption) error
// Logs returns the logs for a resource
Logs(Resource, ...LogsOption) (LogStream, error)
// Start starts the runtime
Start() error
// Stop shuts down the runtime
Stop() error
// String defines the runtime implementation
String() string
}
Runtime is a service runtime manager
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
// Status of the service
Status ServiceStatus
}
Service represents a Micro service running within a namespace
func NewService ¶
NewService mints a new service
type ServiceStatus ¶
type ServiceStatus int
ServiceStatus defines service statuses
const ( // Unknown indicates the status of the service is not known Unknown ServiceStatus = iota // Pending is the initial status of a service Pending // Building is the status when the service is being built Building // Starting is the status when the service has been started but is not yet ready to accept traffic Starting // Running is the status when the service is active and accepting traffic Running // Stopping is the status when a service is stopping Stopping // Stopped is the status when a service has been stopped or has completed Stopped // Error is the status when an error occured, this could be a build error or a run error. The error // details can be found within the service's metadata Error )
func (ServiceStatus) String ¶ added in v3.8.3
func (s ServiceStatus) String() string
String returns human-readable service status
type UpdateOption ¶
type UpdateOption func(o *UpdateOptions)
func UpdateContext ¶
func UpdateContext(ctx context.Context) UpdateOption
UpdateContext sets the context
func UpdateEntrypoint ¶
func UpdateEntrypoint(e string) UpdateOption
UpdateEntrypoint sets the entrypoint
func UpdateInstances ¶
func UpdateInstances(v int) UpdateOption
UpdateInstances sets the number of instances
func UpdateNamespace ¶
func UpdateNamespace(ns string) UpdateOption
UpdateNamespace sets the namespace
func UpdateSecret ¶
func UpdateSecret(key, value string) UpdateOption
WithSecret sets a secret to provide the service with
type UpdateOptions ¶
type UpdateOptions struct {
// Entrypoint within the folder (e.g. in the case of a mono-repo)
Entrypoint string
// Namespace the service is running in
Namespace string
// Specify the context to use
Context context.Context
// Secrets to use
Secrets map[string]string
// Number of instances
Instances int
}
Directories
¶
| Path | Synopsis |
|---|---|
|
Package kubernetes implements kubernetes micro runtime
|
Package kubernetes implements kubernetes micro runtime |
|
client
Package client provides an implementation of a restricted subset of kubernetes API client
|
Package client provides an implementation of a restricted subset of kubernetes API client |
|
process
Package process executes a binary
|
Package process executes a binary |
|
process/os
Package os runs processes locally
|
Package os runs processes locally |
|
test/bar
command
Package main is used to test the local runtime, specifically the entrypoint function
|
Package main is used to test the local runtime, specifically the entrypoint function |
|
test/foo/cmd/bar
command
Package main is used to test the local runtime, specifically the entrypoint function
|
Package main is used to test the local runtime, specifically the entrypoint function |
|
test/foo/cmd/baz
command
Package main is used to test the local runtime, specifically the entrypoint function
|
Package main is used to test the local runtime, specifically the entrypoint function |
|
test/qux/cmd/test
command
Package main is used to test the local runtime, specifically the entrypoint function
|
Package main is used to test the local runtime, specifically the entrypoint function |
|
Package source retrieves source code
|
Package source retrieves source code |
|
go
Package golang is a source for Go
|
Package golang is a source for Go |