Documentation
¶
Index ¶
- func ParseBoolValue(val string, fallback bool) bool
- func ParseIntOrDurationValue(val string, fallback time.Duration) time.Duration
- func ParseIntValue(val string, fallback int) int
- func ParseString(val string, fallback string) string
- type DeleteFunctionRequest
- type FaaSConfig
- type FaaSHandlers
- type FunctionDeployment
- type FunctionResources
- type FunctionStatus
- type FunctionUsage
- type HasEnv
- type OsEnv
- type ProviderInfo
- type QueueRequest
- type ReadConfig
- type RequestQueuer
- type ScaleServiceRequest
- type Secret
- type VersionInfo
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ParseBoolValue ¶
ParseBoolValue parses the the boolean in val or, if there is an error, returns the specified default value
func ParseIntOrDurationValue ¶
ParseIntOrDurationValue parses the the duration in val or, if there is an error, returns the specified default value
func ParseIntValue ¶
ParseIntValue parses the the int in val or, if there is an error, returns the specified default value
func ParseString ¶
ParseString verifies the string in val is not empty. When empty, it returns the specified default value
Types ¶
type DeleteFunctionRequest ¶
type DeleteFunctionRequest struct {
FunctionName string `json:"functionName"`
}
DeleteFunctionRequest delete a deployed function
type FaaSConfig ¶
type FaaSConfig struct {
// TCPPort is the public port for the API.
TCPPort *int
// HTTP timeout for reading a request from clients.
ReadTimeout time.Duration
// HTTP timeout for writing a response from functions.
WriteTimeout time.Duration
// EnableHealth enables/disables the default health endpoint bound to "/healthz".
//
// Deprecated: basic auth is enabled automatcally by setting the HealthHandler in the FaaSHandlers
// struct. This value is not longer read or used.
EnableHealth bool
// EnableBasicAuth enforces basic auth on the API. If set, reads secrets from file-system
// location specificed in `SecretMountPath`.
EnableBasicAuth bool
// SecretMountPath specifies where to read secrets from for embedded basic auth.
SecretMountPath string
// MaxIdleConns with a default value of 1024, can be used for tuning HTTP proxy performance.
MaxIdleConns int
// MaxIdleConnsPerHost with a default value of 1024, can be used for tuning HTTP proxy performance.
MaxIdleConnsPerHost int
}
FaaSConfig set config for HTTP handlers
func (*FaaSConfig) GetMaxIdleConns ¶
func (c *FaaSConfig) GetMaxIdleConns() int
GetMaxIdleConns is a helper to safely return the configured MaxIdleConns or the default value of 1024
func (*FaaSConfig) GetMaxIdleConnsPerHost ¶
func (c *FaaSConfig) GetMaxIdleConnsPerHost() int
GetMaxIdleConns is a helper to safely return the configured MaxIdleConns or the default value which should then match the MaxIdleConns
func (*FaaSConfig) GetReadTimeout ¶
func (c *FaaSConfig) GetReadTimeout() time.Duration
GetReadTimeout is a helper to safely return the configured ReadTimeout or the default value of 10s
type FaaSHandlers ¶
type FaaSHandlers struct {
// FunctionProxy provides the function invocation proxy logic. Use proxy.NewHandlerFunc to
// use the standard OpenFaaS proxy implementation or provide completely custom proxy logic.
FunctionProxy http.HandlerFunc
// Workflow Proxy
FlowProxy http.HandlerFunc
FlowReader http.HandlerFunc
FunctionReader http.HandlerFunc
DeployHandler http.HandlerFunc
DeleteHandler http.HandlerFunc
ReplicaReader http.HandlerFunc
ReplicaUpdater http.HandlerFunc
SecretHandler http.HandlerFunc
// LogHandler provides streaming json logs of functions
LogHandler http.HandlerFunc
// UpdateHandler an existing function/service
UpdateHandler http.HandlerFunc
// HealthHandler defines the default health endpoint bound to "/healthz
// If the handler is not set, then the "/healthz" path will not be configured
HealthHandler http.HandlerFunc
InfoHandler http.HandlerFunc
ListNamespaceHandler http.HandlerFunc
}
FaaSHandlers provide handlers for OpenFaaS
type FunctionDeployment ¶
type FunctionDeployment struct {
// Service is the name of the function deployment
Service string `json:"service"`
// Image is a fully-qualified container image
Image string `json:"image"`
// Namespace for the function, if supported by the faas-provider
Namespace string `json:"namespace,omitempty"`
// EnvProcess overrides the fprocess environment variable and can be used
// with the watchdog
EnvProcess string `json:"envProcess,omitempty"`
// EnvVars can be provided to set environment variables for the function runtime.
EnvVars map[string]string `json:"envVars,omitempty"`
// Constraints are specific to the faas-provider.
Constraints []string `json:"constraints,omitempty"`
// Secrets list of secrets to be made available to function
Secrets []string `json:"secrets,omitempty"`
// Labels are metadata for functions which may be used by the
// faas-provider or the gateway
Labels *map[string]string `json:"labels,omitempty"`
// Annotations are metadata for functions which may be used by the
// faas-provider or the gateway
Annotations *map[string]string `json:"annotations,omitempty"`
// Limits for function
Limits *FunctionResources `json:"limits,omitempty"`
// Requests of resources requested by function
Requests *FunctionResources `json:"requests,omitempty"`
// ReadOnlyRootFilesystem removes write-access from the root filesystem
// mount-point.
ReadOnlyRootFilesystem bool `json:"readOnlyRootFilesystem,omitempty"`
}
FunctionDeployment represents a request to create or update a Function.
type FunctionResources ¶
type FunctionResources struct {
Memory string `json:"memory,omitempty"`
CPU string `json:"cpu,omitempty"`
}
FunctionResources Memory and CPU
type FunctionStatus ¶
type FunctionStatus struct {
// Name is the name of the function deployment
Name string `json:"name"`
// Image is a fully-qualified container image
Image string `json:"image"`
// Namespace for the function, if supported by the faas-provider
Namespace string `json:"namespace,omitempty"`
// EnvProcess overrides the fprocess environment variable and can be used
// with the watchdog
EnvProcess string `json:"envProcess,omitempty"`
// EnvVars set environment variables for the function runtime
EnvVars map[string]string `json:"envVars,omitempty"`
// Constraints are specific to the faas-provider
Constraints []string `json:"constraints,omitempty"`
// Secrets list of secrets to be made available to function
Secrets []string `json:"secrets,omitempty"`
// Labels are metadata for functions which may be used by the
// faas-provider or the gateway
Labels *map[string]string `json:"labels,omitempty"`
// Annotations are metadata for functions which may be used by the
// faas-provider or the gateway
Annotations *map[string]string `json:"annotations,omitempty"`
// Limits for function
Limits *FunctionResources `json:"limits,omitempty"`
// Requests of resources requested by function
Requests *FunctionResources `json:"requests,omitempty"`
// ReadOnlyRootFilesystem removes write-access from the root filesystem
// mount-point.
ReadOnlyRootFilesystem bool `json:"readOnlyRootFilesystem,omitempty"`
// InvocationCount count of invocations
InvocationCount float64 `json:"invocationCount,omitempty"`
// Replicas desired within the cluster
Replicas uint64 `json:"replicas,omitempty"`
// AvailableReplicas is the count of replicas ready to receive
// invocations as reported by the faas-provider
AvailableReplicas uint64 `json:"availableReplicas,omitempty"`
// CreatedAt is the time read back from the faas backend's
// data store for when the function or its container was created.
CreatedAt time.Time `json:"createdAt,omitempty"`
// Usage represents CPU and RAM used by all of the
// functions' replicas. Divide by AvailableReplicas for an
// average value per replica.
Usage *FunctionUsage `json:"usage,omitempty"`
}
FunctionStatus exported for system/functions endpoint
type FunctionUsage ¶
type FunctionUsage struct {
// CPU is the increase in CPU usage since the last measurement
// equivalent to Kubernetes' concept of millicores.
CPU float64 `json:"cpu,omitempty"`
//TotalMemoryBytes is the total memory usage in bytes.
TotalMemoryBytes float64 `json:"totalMemoryBytes,omitempty"`
}
FunctionUsage represents CPU and RAM used by all of the functions' replicas.
CPU is measured in seconds consumed since the last measurement RAM is measured in total bytes consumed
type ProviderInfo ¶
type ProviderInfo struct {
Name string `json:"provider"`
Version *VersionInfo `json:"version"`
Orchestration string `json:"orchestration"`
}
ProviderInfo provides information about the configured provider
type QueueRequest ¶
type QueueRequest struct {
// Header from HTTP request
Header http.Header
// Host from HTTP request
Host string
// Body from HTTP request to use for invocation
Body []byte
// Method from HTTP request
Method string
// Path from HTTP request
Path string
// QueryString from HTTP request
QueryString string
// Function name to invoke
Function string
// QueueName to publish the request to, leave blank
// for default.
QueueName string
// Used by queue worker to submit a result
CallbackURL *url.URL `json:"CallbackUrl"`
}
Request for asynchronous processing
type ReadConfig ¶
type ReadConfig struct {
}
ReadConfig constitutes config from env variables
func (ReadConfig) Read ¶
func (ReadConfig) Read(hasEnv HasEnv) (*FaaSConfig, error)
Read fetches config from environmental variables.
type RequestQueuer ¶
type RequestQueuer interface {
Queue(req *QueueRequest) error
}
RequestQueuer can public a request to be executed asynchronously
type ScaleServiceRequest ¶
type ScaleServiceRequest struct {
ServiceName string `json:"serviceName"`
Replicas uint64 `json:"replicas"`
}
ScaleServiceRequest scales the service to the requested replcia count.
type Secret ¶
type Secret struct {
// Name of the secret
Name string `json:"name"`
// Namespace if applicable for the secret
Namespace string `json:"namespace,omitempty"`
// Value is a string representing the string's value
Value string `json:"value,omitempty"`
// RawValue can be used to provide binary data when
// Value is not set
RawValue []byte `json:"rawValue,omitempty"`
}
Secret for underlying orchestrator
type VersionInfo ¶
type VersionInfo struct {
CommitMessage string `json:"commit_message,omitempty"`
SHA string `json:"sha"`
Release string `json:"release"`
}
VersionInfo provides the commit message, sha and release version number