Documentation
¶
Index ¶
- Constants
- Variables
- func GetFunctionIstioServiceName(fnName, fnNamespace string) string
- func GetHTTPError(err error) (int, string)
- func IsNetworkError(err error) bool
- func LoggingMiddleware(next http.Handler) http.Handler
- func MakeErrorFromHTTP(resp *http.Response) error
- func MergeContainerSpecs(specs ...*apiv1.Container) apiv1.Container
- func SetupStackTraceHandler()
- func UrlForFunction(name string) string
- type AllowedFunctionsPerContainer
- type Archive
- type ArchiveType
- type BuildStatus
- type Builder
- type Checksum
- type ChecksumType
- type ConfigMapReference
- type EnvironmentReference
- type EnvironmentSpec
- type Error
- type ExecutionStrategy
- type ExecutorType
- type FunctionLoadRequest
- type FunctionPackageRef
- type FunctionReference
- type FunctionReferenceType
- type FunctionSpec
- type HTTPTriggerSpec
- type Info
- type InvokeStrategy
- type KubernetesWatchTriggerSpec
- type MessageQueueTriggerSpec
- type PackageRef
- type PackageSpec
- type PackageStatus
- type Runtime
- type SecretReference
- type StrategyType
- type TimeTriggerSpec
Constants ¶
const ( BuildStatusPending = "pending" BuildStatusRunning = "running" BuildStatusSucceeded = "succeeded" BuildStatusFailed = "failed" BuildStatusNone = "none" )
const ( AllowedFunctionsPerContainerSingle = "single" AllowedFunctionsPerContainerInfinite = "infinite" )
const ( ExecutorTypePoolmgr = "poolmgr" ExecutorTypeNewdeploy = "newdeploy" )
const ()
const ( ErrorInternal = iota ErrorNotAuthorized ErrorNotFound ErrorNameExists ErrorInvalidArgument ErrorNoSpace ErrorNotImplmented ErrorChecksumFail ErrorSizeLimitExceeded )
const (
ArchiveLiteralSizeLimit int64 = 256 * 1024
)
const EXECUTOR_INSTANCEID_LABEL string = "executorInstanceId"
const ( // FunctionReferenceFunctionName means that the function // reference is simply by function name. FunctionReferenceTypeFunctionName = "name" )
const POOLMGR_INSTANCEID_LABEL string = "poolmgrInstanceId"
const (
StrategyTypeExecution = "execution"
)
Variables ¶
var ( GitCommit string // $(git rev-parse HEAD) (1b4716ab84903b2e477135a3dc5afdb07f685cb7) BuildDate string // $(date -u +'%Y-%m-%dT%H:%M:%SZ') (2018-03-08T18:54:38Z) Version string // fission release version (0.6.0) )
Functions ¶
func GetFunctionIstioServiceName ¶ added in v0.6.0
GetFunctionIstioServiceName return service name of function for istio feature
func GetHTTPError ¶
func IsNetworkError ¶ added in v0.6.0
IsNetworkError returns true if an error is a network error, and false otherwise.
func MakeErrorFromHTTP ¶
func MergeContainerSpecs ¶ added in v0.6.1
MergeContainerSpecs merges container specs using a predefined order.
The order of the arguments indicates which spec has precedence (lower index takes precedence over higher indexes). Slices and maps are merged; other fields are set only if they are a zero value.
func SetupStackTraceHandler ¶ added in v0.6.0
func SetupStackTraceHandler()
func UrlForFunction ¶
Types ¶
type AllowedFunctionsPerContainer ¶ added in v0.5.0
type AllowedFunctionsPerContainer string
type Archive ¶
type Archive struct { // Type defines how the package is specified: literal or URL. Type ArchiveType `json:"type,omitempty"` // Literal contents of the package. Can be used for // encoding packages below TODO (256KB?) size. Literal []byte `json:"literal,omitempty"` // URL references a package. URL string `json:"url,omitempty"` // Checksum ensures the integrity of packages // refereced by URL. Ignored for literals. Checksum Checksum `json:"checksum,omitempty"` }
Package contains or references a collection of source or binary files.
type ArchiveType ¶
type ArchiveType string
ArchiveType is either literal or URL, indicating whether the package is specified in the Archive struct or externally.
const ( // ArchiveTypeLiteral means the package contents are specified in the Literal field of // resource itself. ArchiveTypeLiteral ArchiveType = "literal" // ArchiveTypeUrl means the package contents are at the specified URL. ArchiveTypeUrl ArchiveType = "url" )
type BuildStatus ¶
type BuildStatus string
type Builder ¶
type Builder struct { // Image for containing the language runtime. Image string `json:"image,omitempty"` // (Optional) Default build command to run for this build environment. Command string `json:"command,omitempty"` // Container allows the modification of the deployed builder // container using the Kubernetes Container spec. Fission overrides // the following fields: // - Name // - Image; set to the Builder.Image // - Command; set to the Builder.Command // - TerminationMessagePath // - ImagePullPolicy // - ReadinessProbe // (optional) Container *apiv1.Container `json:"container,omitempty"` }
type Checksum ¶
type Checksum struct { Type ChecksumType `json:"type,omitempty"` Sum string `json:"sum,omitempty"` }
Checksum of package contents when the contents are stored outside the Package struct. Type is the checksum algorithm; "sha256" is the only currently supported one. Sum is hex encoded.
type ChecksumType ¶
type ChecksumType string
ChecksumType specifies the checksum algorithm, such as sha256, used for a checksum.
const (
ChecksumTypeSHA256 ChecksumType = "sha256"
)
type ConfigMapReference ¶ added in v0.5.0
type EnvironmentReference ¶
type EnvironmentSpec ¶
type EnvironmentSpec struct { // Environment API version Version int `json:"version"` // Runtime container image etc.; required Runtime Runtime `json:"runtime"` // Optional Builder Builder `json:"builder"` // Optional, but strongly encouraged. Used to populate // links from UI, CLI, etc. DocumentationURL string `json:"documentationurl,omitempty"` // Optional, defaults to 'AllowedFunctionsPerContainerSingle' AllowedFunctionsPerContainer AllowedFunctionsPerContainer `json:"allowedFunctionsPerContainer,omitempty"` // Optional, defaults to 'false' AllowAccessToExternalNetwork bool `json:"allowAccessToExternalNetwork,omitempty"` // Request and limit resources for the environment Resources apiv1.ResourceRequirements `json:"resources"` // The initial pool size for environment Poolsize int `json:"poolsize,omitempty"` }
type Error ¶
type Error struct { Code errorCode `json:"code"` Message string `json:"message"` }
Errors returned by the Fission API.
func (Error) Description ¶
func (Error) HTTPStatus ¶
type ExecutionStrategy ¶ added in v0.5.0
type ExecutionStrategy struct { ExecutorType ExecutorType MinScale int MaxScale int TargetCPUPercent int }
ExecutionStrategy specifies low-level parameters for function execution,
such as the number of instances. MinScale affects the cold start behaviour for a function. If MinScale is 0 then the deployment is created on first invocation of function and is good for requests of asynchronous nature. If MinScale is greater than 0 then MinScale number of pods are created at the time of creation of function. This ensures faster response during first invocation at the cost of consuming resources. MaxScale is the maximum number of pods that function will scale to based on TargetCPUPercent and resources allocated to the function pod.
type ExecutorType ¶ added in v0.5.0
type ExecutorType string
ExecutorType is the primary executor for an environment
type FunctionLoadRequest ¶
type FunctionLoadRequest struct { // FilePath is an absolute filesystem path to the // function. What exactly is stored here is // env-specific. Optional. FilePath string `json:"filepath"` // FunctionName has an environment-specific meaning; // usually, it defines a function within a module // containing multiple functions. Optional; default is // environment-specific. FunctionName string `json:"functionName"` // URL to expose this function at. Optional; defaults // to "/". URL string `json:"url"` // Metatdata FunctionMetadata *metav1.ObjectMeta }
Fission-Environment interface. The following types are not exposed in the Fission API, but rather used by Fission to talk to environments.
type FunctionPackageRef ¶
type FunctionPackageRef struct { PackageRef PackageRef `json:"packageref"` // FunctionName specifies a specific function within the package. This allows // functions to share packages, by having different functions within the same // package. // // Fission itself does not interpret this path. It is passed verbatim to // build and runtime environments. // // This is optional: if unspecified, the environment has a default name. FunctionName string `json:"functionName,omitempty"` }
type FunctionReference ¶
type FunctionReference struct { // Type indicates whether this function reference is by name or selector. For now, // the only supported reference type is by name. Future reference types: // * Function by label or annotation // * Branch or tag of a versioned function // * A "rolling upgrade" from one version of a function to another Type FunctionReferenceType `json:"type"` // Name of the function. Name string `json:"name"` }
type FunctionReferenceType ¶
type FunctionReferenceType string
type FunctionSpec ¶
type FunctionSpec struct { // Environment is the build and runtime environment that this function is // associated with. An Environment with this name should exist, otherwise the // function cannot be invoked. Environment EnvironmentReference `json:"environment"` // Reference to a package containing deployment and optionally the source Package FunctionPackageRef `json:"package"` Secrets []SecretReference `json:"secrets"` ConfigMaps []ConfigMapReference `json:"configmaps"` // cpu and memory resources as per K8S standards Resources apiv1.ResourceRequirements `json:"resources"` // InvokeStrategy is a set of controls which affect how function executes InvokeStrategy InvokeStrategy }
FunctionSpec describes the contents of the function.
type HTTPTriggerSpec ¶
type HTTPTriggerSpec struct { Host string `json:"host"` RelativeURL string `json:"relativeurl"` Method string `json:"method"` FunctionReference FunctionReference `json:"functionref"` }
type Info ¶ added in v0.6.1
type Info struct { GitCommit string `json:"GitCommit,omitempty"` BuildDate string `json:"BuildDate,omitempty"` Version string `json:"Version,omitempty"` }
func VersionInfo ¶ added in v0.6.1
func VersionInfo() Info
type InvokeStrategy ¶ added in v0.5.0
type InvokeStrategy struct { ExecutionStrategy ExecutionStrategy StrategyType StrategyType }
InvokeStrategy is a set of controls over how the function executes.
It affects the performance and resource usage of the function. An InvokeStategy is of one of two types: ExecutionStrategy, which controls low-level parameters such as which ExecutorType to use, when to autoscale, minimum and maximum number of running instances, etc. A higher-level AbstractInvokeStrategy will also be supported; this strategy would specify the target request rate of the function, the target latency statistics, and the target cost (in terms of compute resources).
type KubernetesWatchTriggerSpec ¶
type KubernetesWatchTriggerSpec struct { Namespace string `json:"namespace"` Type string `json:"type"` LabelSelector map[string]string `json:"labelselector"` FunctionReference FunctionReference `json:"functionref"` }
type MessageQueueTriggerSpec ¶
type MessageQueueTriggerSpec struct { FunctionReference FunctionReference `json:"functionref"` MessageQueueType string `json:"messageQueueType"` Topic string `json:"topic"` ResponseTopic string `json:"respTopic,omitempty"` ContentType string `json:"contentType"` }
MessageQueueTriggerSpec defines a binding from a topic in a message queue to a function.
type PackageRef ¶
type PackageRef struct { Namespace string `json:"namespace"` Name string `json:"name"` // Including resource version in the reference forces the function to be updated on // package update, making it possible to cache the function based on its metadata. ResourceVersion string `json:"resourceversion,omitempty"` }
type PackageSpec ¶
type PackageSpec struct { Environment EnvironmentReference `json:"environment"` Source Archive `json:"source,omitempty"` Deployment Archive `json:"deployment,omitempty"` BuildCommand string `json:"buildcmd,omitempty"` }
type PackageStatus ¶
type PackageStatus struct { BuildStatus BuildStatus `json:"buildstatus,omitempty"` BuildLog string `json:"buildlog,omitempty"` // output of the build (errors etc) }
type Runtime ¶
type Runtime struct { // Image for containing the language runtime. Image string `json:"image"` // LoadEndpointPort defines the port on which the // server listens for function load // requests. Optional; default 8888. LoadEndpointPort int32 `json:"loadendpointport"` // LoadEndpointPath defines the relative URL on which // the server listens for function load // requests. Optional; default "/specialize". LoadEndpointPath string `json:"loadendpointpath"` // FunctionEndpointPort defines the port on which the // server listens for function requests. Optional; // default 8888. FunctionEndpointPort int32 `json:"functionendpointport"` // Container allows the modification of the deployed runtime // container using the Kubernetes Container spec. Fission overrides // the following fields: // - Name // - Image; set to the Runtime.Image // - TerminationMessagePath // - ImagePullPolicy // (optional) Container *apiv1.Container `json:"container,omitempty"` }
type SecretReference ¶ added in v0.5.0
type StrategyType ¶ added in v0.5.0
type StrategyType string
StrategyType is the strategy to be used for function execution
type TimeTriggerSpec ¶
type TimeTriggerSpec struct { Cron string `json:"cron"` FunctionReference `json:"functionref"` }
TimeTrigger invokes the specific function at a time or times specified by a cron string.