fnruntime

package
v0.0.5 Latest Latest
Warning

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

Go to latest
Published: Dec 29, 2022 License: Apache-2.0 Imports: 20 Imported by: 0

Documentation

Index

Constants

View Source
const (
	FnExecErrorTruncateLines = 4
	// FnExecErrorIndentation is the number of spaces at the beginning of each
	// line of function failure messages.
	FnExecErrorIndentation = 2
)

Variables

This section is empty.

Functions

func ContainerRuntimeAvailable

func ContainerRuntimeAvailable(runtime ContainerRuntime) error

func NewContainerEnvFromStringSlice

func NewContainerEnvFromStringSlice(envStr []string) *runtimeutil.ContainerEnv

NewContainerEnvFromStringSlice returns a new ContainerEnv pointer with parsing input envStr. envStr example: ["foo=bar", "baz"] using this instead of runtimeutil.NewContainerEnvFromStringSlice() to avoid default envs LOG_TO_STDERR

func ResolveToImageForCLI

func ResolveToImageForCLI(ctx context.Context, image string) (string, error)

ResolveToImageForCLI converts the function short path to the full image url. If the function is Catalog function, it adds "docker.io/yndd".e.g. set-topology:v0.1 --> docker.io/yndd/set-topology:v0.1

Types

type ContainerFn

type ContainerFn struct {
	Ctx context.Context

	// Image is the container image to run
	Image string
	// ImagePullPolicy controls the image pulling behavior.
	ImagePullPolicy ImagePullPolicy
	// Container function will be killed after this timeour.
	// The default value is 5 minutes.
	Timeout time.Duration
	Perm    ContainerFnPermission
	// UIDGID is the os User ID and Group ID that will be
	// used to run the container in format userId:groupId.
	// If it's empty, "nobody" will be used.
	UIDGID string
	// StorageMounts are the storage or directories to mount
	// into the container
	StorageMounts []runtimeutil.StorageMount
	// Env is a slice of env string that will be exposed to container
	Env []string
	// FnResult is used to store the information about the result from
	// the function.
	FnResult *fnresultv1.Result
}

ContainerFn implements a KRMFn which run a containerized KRM function

func (*ContainerFn) Run

func (f *ContainerFn) Run(reader io.Reader, writer io.Writer) error

Run runs the container function using docker runtime. It reads the input from the given reader and writes the output to the provided writer.

type ContainerFnPermission

type ContainerFnPermission struct {
	AllowNetwork bool
	AllowMount   bool
}

ContainerFnPermission contains the permission of container function such as network access.

type ContainerImageError

type ContainerImageError struct {
	Image  string
	Output string
}

ContainerImageError is an error type which will be returned when the container run time cannot verify docker image.

func (*ContainerImageError) Error

func (e *ContainerImageError) Error() string

type ContainerRuntime

type ContainerRuntime string

ContainerRuntime is the type of container runtime

const (
	ContainerRuntimeEnv = "KPT_FN_RUNTIME"

	Docker  ContainerRuntime = "docker"
	Podman  ContainerRuntime = "podman"
	Nerdctl ContainerRuntime = "nerdctl"
)

func StringToContainerRuntime

func StringToContainerRuntime(v string) (ContainerRuntime, error)

func (ContainerRuntime) GetBin

func (r ContainerRuntime) GetBin() string

type ExecError

type ExecError struct {
	// OriginalErr is the original error returned from function runtime
	OriginalErr error

	// TruncateOutput indicates should error message be truncated
	TruncateOutput bool

	// Stderr is the content written to function stderr
	Stderr string `yaml:"stderr,omitempty"`

	// ExitCode is the exit code returned from function
	ExitCode int `yaml:"exitCode,omitempty"`
}

ExecError implements an error type that stores information about function failure.

func (*ExecError) Error

func (fe *ExecError) Error() string

func (*ExecError) String

func (fe *ExecError) String() string

String returns string representation of the failure.

type ExecFn

type ExecFn struct {
	// Path is the os specific path to the executable
	// file. It can be relative or absolute.
	Path string
	// Args are the arguments to the executable
	Args []string

	Env map[string]string
	// Container function will be killed after this timeour.
	// The default value is 5 minutes.
	Timeout time.Duration
	// FnResult is used to store the information about the result from
	// the function.
	FnResult *fnresultv1.Result
}

func (*ExecFn) Run

func (f *ExecFn) Run(r io.Reader, w io.Writer) error

Run runs the executable file which reads the input from r and writes the output to w.

type FunctionRunner

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

FunctionRunner wraps FunctionFilter and implements kio.Filter interface.

func NewFunctionRunner

func NewFunctionRunner(ctx context.Context,

	run Run,

	opts RunnerOptions) (*FunctionRunner, error)

NewFunctionRunner returns a FunctionRunner given a specification of a function and it's config.

func NewRunner

func NewRunner(
	ctx context.Context,
	fnc *ctrlcfgv1.Function,

	opts RunnerOptions,

) (*FunctionRunner, error)

NewRunner returns a FunctionRunner given a specification of a function and it's config.

func (*FunctionRunner) Run

type ImagePullPolicy

type ImagePullPolicy string
const (
	AlwaysPull       ImagePullPolicy = "Always"
	IfNotPresentPull ImagePullPolicy = "IfNotPresent"
	NeverPull        ImagePullPolicy = "Never"
)

type ImageResolveFunc

type ImageResolveFunc func(ctx context.Context, image string) (string, error)

ImageResolveFunc is the type for a function that can resolve a partial image to a (more) fully-qualified name

type Run

type Run func(reader io.Reader, writer io.Writer) error

type RunnerOptions

type RunnerOptions struct {
	// ImagePullPolicy controls the image pulling behavior before running the container.
	ImagePullPolicy ImagePullPolicy

	// allowExec determines if function binary executable are allowed
	// to be run during execution. Running function binaries is a
	// privileged operation, so explicit permission is required.
	AllowExec bool

	// ResolveToImage will resolve a partial image to a fully-qualified one
	ResolveToImage ImageResolveFunc
}

func (*RunnerOptions) InitDefaults

func (o *RunnerOptions) InitDefaults()

Jump to

Keyboard shortcuts

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