provider

package
v0.3.0-rc.5 Latest Latest
Warning

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

Go to latest
Published: Sep 2, 2021 License: Apache-2.0 Imports: 10 Imported by: 0

README

Follow these steps to be accepted as a provider within the Virtual Kubelet repo.

  1. Replicate the life-cycle of a pod for example creation and deletion of a pod and how that maps to your service.
  2. Create a new provider folder with a descriptive name and the necessary code.
  3. When committing your code add a README.md, helm chart, dockerfile and specify a maintainer of the provider.
  4. Within the PR itself add a justification for why the provider should be accepted, as well as customer use cases if applicable.

Some providers are translations of Virtual Kubelet to allow others to adapt their service or applications that are written in other languages.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type InitConfig

type InitConfig struct {
	NodeName             string
	InternalIP           string
	DaemonPort           int32
	KubeClusterDomain    string
	ResourceManager      *manager.ResourceManager
	HomeKubeConfig       string
	RemoteKubeConfig     string
	HomeClusterID        string
	RemoteClusterID      string
	LiqoIpamServer       string
	InformerResyncPeriod time.Duration
}

InitConfig is the config passed to initialize a registered provider.

type InitFunc

type InitFunc func(InitConfig) (Provider, error)

InitFunc defines the signature of the function creating a Provider instance based on the corresponding configuration.

type PodMetricsProvider

type PodMetricsProvider interface {
	GetStatsSummary(context.Context) (*stats.Summary, error)
}

PodMetricsProvider is an optional interface that providers can implement to expose pod stats.

type Provider

type Provider interface {
	module.PodLifecycleHandler

	PodMetricsProvider

	// GetContainerLogs retrieves the logs of a container by name from the provider.
	GetContainerLogs(ctx context.Context, namespace, podName, containerName string, opts api.ContainerLogOpts) (io.ReadCloser, error)

	// RunInContainer executes a command in a container in the pod, copying data
	// between in/out/err and the container's stdin/stdout/stderr.
	RunInContainer(ctx context.Context, namespace, podName, containerName string, cmd []string, attach api.AttachIO) error

	// ConfigureNode enables a provider to configure the node object that
	// will be used for Kubernetes.
	ConfigureNode(context.Context, *v1.Node)
}

Provider contains the methods required to implement a virtual-kubelet provider.

Errors produced by these methods should implement an interface from github.com/liqotech/liqo/cmdInternal/errdefs package in order for the core logic to be able to understand the type of failure.

type Store

type Store struct {
	// contains filtered or unexported fields
}

Store is used for registering/fetching providers.

func NewStore

func NewStore() *Store

NewStore creates a new Store instance.

func (*Store) Exists

func (s *Store) Exists(name string) bool

Exists returns if there is an init function registered under the provided name.

func (*Store) Get

func (s *Store) Get(name string) InitFunc

Get gets the registered init func for the given name The returned function may be nil if the given name is not registered.

func (*Store) List

func (s *Store) List() []string

List lists all the registered providers.

func (*Store) Register

func (s *Store) Register(name string, f InitFunc) error

Register registers a providers init func by name.

Jump to

Keyboard shortcuts

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