Documentation
¶
Index ¶
- Constants
- func ReadSecret(key string) (string, error)
- type BasicAuth
- type Client
- func (s *Client) CreateNamespace(ctx context.Context, spec types.FunctionNamespace) (int, error)
- func (s *Client) CreateSecret(ctx context.Context, spec types.Secret) (int, error)
- func (s *Client) DeleteFunction(ctx context.Context, functionName, namespace string) error
- func (s *Client) DeleteNamespace(ctx context.Context, namespace string) error
- func (s *Client) DeleteSecret(ctx context.Context, secretName, namespace string) error
- func (s *Client) Deploy(ctx context.Context, spec types.FunctionDeployment) (int, error)
- func (s *Client) GetFunction(ctx context.Context, name, namespace string) (types.FunctionStatus, error)
- func (s *Client) GetFunctions(ctx context.Context, namespace string) ([]types.FunctionStatus, error)
- func (s *Client) GetInfo(ctx context.Context) (SystemInfo, error)
- func (s *Client) GetLogs(ctx context.Context, functionName, namespace string, follow bool, tail int, ...) (<-chan logs.Message, error)
- func (s *Client) GetNamespace(ctx context.Context, namespace string) (types.FunctionNamespace, error)
- func (s *Client) GetNamespaces(ctx context.Context) ([]string, error)
- func (s *Client) GetSecrets(ctx context.Context, namespace string) ([]types.Secret, error)
- func (c *Client) InvokeFunction(name, namespace string, async bool, auth bool, req *http.Request) (*http.Response, error)
- func (s *Client) ScaleFunction(ctx context.Context, functionName, namespace string, replicas uint64) error
- func (s *Client) Update(ctx context.Context, spec types.FunctionDeployment) (int, error)
- func (s *Client) UpdateNamespace(ctx context.Context, spec types.FunctionNamespace) (int, error)
- func (s *Client) UpdateSecret(ctx context.Context, spec types.Secret) (int, error)
- type ClientAuth
- type ClientCredentialsAuth
- type ClientCredentialsTokenSource
- type ClientOption
- type ExchangeConfig
- type ExchangeOption
- type MemoryTokenCache
- type OAuthError
- type Provider
- type SecretMap
- type ServiceAccountTokenSource
- type SystemInfo
- type Token
- type TokenAuth
- type TokenCache
- type TokenSource
Constants ¶
const DefaultNamespace = "openfaas-fn"
Variables ¶
This section is empty.
Functions ¶
func ReadSecret ¶
ReadSecrets reads a single secrets from /var/openfaas/secrets or from the environment "secret_mount_path" if set.
Types ¶
type Client ¶
type Client struct { // URL of the OpenFaaS gateway GatewayURL *url.URL // Authentication provider for authenticating request to the OpenFaaS API. ClientAuth ClientAuth // TokenSource for getting an ID token that can be exchanged for an // OpenFaaS function access token to invoke functions. FunctionTokenSource TokenSource // contains filtered or unexported fields }
Client is used to manage OpenFaaS and invoke functions
func NewClientWithOpts ¶ added in v0.2.11
NewClientWithOpts creates a Client for managing OpenFaaS and invoking functions It takes a list of ClientOptions to configure the client.
func (*Client) CreateNamespace ¶ added in v0.2.5
CreateNamespace creates a namespace
func (*Client) CreateSecret ¶ added in v0.2.9
CreateSecret creates a secret
func (*Client) DeleteFunction ¶ added in v0.2.1
DeleteFunction deletes a function
func (*Client) DeleteNamespace ¶ added in v0.2.5
DeleteNamespace deletes a namespace
func (*Client) DeleteSecret ¶ added in v0.2.9
DeleteSecret deletes a secret
func (*Client) GetFunction ¶ added in v0.0.2
func (s *Client) GetFunction(ctx context.Context, name, namespace string) (types.FunctionStatus, error)
GetFunction gives a richer payload than GetFunctions, but for a specific function
func (*Client) GetFunctions ¶
func (s *Client) GetFunctions(ctx context.Context, namespace string) ([]types.FunctionStatus, error)
GetFunctions lists all functions
func (*Client) GetInfo ¶ added in v0.0.2
func (s *Client) GetInfo(ctx context.Context) (SystemInfo, error)
func (*Client) GetNamespace ¶ added in v0.2.5
func (s *Client) GetNamespace(ctx context.Context, namespace string) (types.FunctionNamespace, error)
GetNamespaces get openfaas namespaces
func (*Client) GetNamespaces ¶
GetNamespaces get openfaas namespaces
func (*Client) GetSecrets ¶ added in v0.2.9
GetSecrets list all secrets
func (*Client) InvokeFunction ¶ added in v0.2.11
func (*Client) ScaleFunction ¶
func (s *Client) ScaleFunction(ctx context.Context, functionName, namespace string, replicas uint64) error
ScaleFunction scales a function to a number of replicas
func (*Client) UpdateNamespace ¶ added in v0.2.5
UpdateNamespace updates a namespace
type ClientAuth ¶ added in v0.1.0
ClientAuth an interface for client authentication. to add authentication to the client implement this interface
type ClientCredentialsAuth ¶ added in v0.2.3
type ClientCredentialsAuth struct {
// contains filtered or unexported fields
}
func NewClientCredentialsAuth ¶ added in v0.2.3
func NewClientCredentialsAuth(ts TokenSource) *ClientCredentialsAuth
type ClientCredentialsTokenSource ¶ added in v0.2.3
type ClientCredentialsTokenSource struct {
// contains filtered or unexported fields
}
ClientCredentialsTokenSource can be used to obtain an access token using the client credentials grant type. Tested with Keycloak's token endpoint, additional changes may be required for additional OIDC token endpoints.
func (*ClientCredentialsTokenSource) Token ¶ added in v0.2.3
func (ts *ClientCredentialsTokenSource) Token() (string, error)
type ClientOption ¶ added in v0.2.11
type ClientOption func(*Client)
func WithAuthentication ¶ added in v0.2.11
func WithAuthentication(auth ClientAuth) ClientOption
WithAuthentication configures the authentication provider fot the client.
func WithFunctionTokenCache ¶ added in v0.2.11
func WithFunctionTokenCache(cache TokenCache) ClientOption
WithFunctionTokenCache configures the token cache used by the client to cache access tokens for function invocations.
func WithFunctionTokenSource ¶ added in v0.2.11
func WithFunctionTokenSource(tokenSource TokenSource) ClientOption
WithFunctionTokenSource configures the function token source for the client.
type ExchangeConfig ¶ added in v0.2.11
type ExchangeOption ¶ added in v0.2.11
type ExchangeOption func(*ExchangeConfig)
ExchangeOption is used to implement functional-style options that modify the config setting for the OpenFaaS token exchange.
func WithAudience ¶ added in v0.2.11
func WithAudience(audience []string) ExchangeOption
WithAudience is an option to configure the audience requested in the token exchange.
func WithHttpClient ¶ added in v0.2.11
func WithHttpClient(client *http.Client) ExchangeOption
WithHttpClient is an option to configure the http client used to make the token exchange request.
func WithScope ¶ added in v0.2.11
func WithScope(scope []string) ExchangeOption
WithScope is an option to configure the scope requested in the token exchange.
type MemoryTokenCache ¶ added in v0.2.11
type MemoryTokenCache struct {
// contains filtered or unexported fields
}
MemoryTokenCache is a basic in-memory token cache implementation.
func NewMemoryTokenCache ¶ added in v0.2.11
func NewMemoryTokenCache() *MemoryTokenCache
NewMemoryTokenCache creates a new in memory token cache instance.
func (*MemoryTokenCache) Get ¶ added in v0.2.11
func (c *MemoryTokenCache) Get(key string) (*Token, bool)
Get retrieves the token associated with the given key from the cache. The bool return value will be false if no matching key is found, and true otherwise.
func (*MemoryTokenCache) Set ¶ added in v0.2.11
func (c *MemoryTokenCache) Set(key string, token *Token)
Set adds or updates a token with the given key in the cache.
type OAuthError ¶ added in v0.2.11
type OAuthError struct { Err string `json:"error"` Description string `json:"error_description,omitempty"` }
OAuthError represents an OAuth error response.
func (*OAuthError) Error ¶ added in v0.2.11
func (e *OAuthError) Error() string
type Provider ¶ added in v0.0.2
type Provider struct { Provider string `json:"provider,omitempty"` Version types.VersionInfo `json:"version,omitempty"` Orchestration string `json:"orchestration,omitempty"` }
type SecretMap ¶
type SecretMap struct {
// contains filtered or unexported fields
}
func ReadSecrets ¶
ReadSecrets reads all secrets from /var/openfaas/secrets or from the environment "secret_mount_path" if set. The results are returned in a map of key/value pairs.
type ServiceAccountTokenSource ¶ added in v0.2.2
type ServiceAccountTokenSource struct{}
A TokenSource to get ID token by reading a Kubernetes projected service account token from /var/secrets/tokens/openfaas-token or the path set by the token_mount_path environment variable.
func (*ServiceAccountTokenSource) Token ¶ added in v0.2.2
func (ts *ServiceAccountTokenSource) Token() (string, error)
Token returns a Kubernetes projected service account token read from /var/secrets/tokens/openfaas-token or the path set by the token_mount_path environment variable.
type SystemInfo ¶ added in v0.0.2
type SystemInfo struct { Arch string `json:"arch,omitempty"` Provider Provider `json:"provider,omitempty"` Version types.VersionInfo `json:"version,omitempty"` }
type Token ¶ added in v0.1.0
type Token struct { // IDToken is the OIDC access token that authorizes and authenticates // the requests. IDToken string // Expiry is the expiration time of the access token. // // A zero value means the token never expires. Expiry time.Time // Scope is the scope of the access token Scope []string }
Token represents an OIDC token
func ExchangeIDToken ¶ added in v0.1.0
func ExchangeIDToken(tokenURL, rawIDToken string, options ...ExchangeOption) (*Token, error)
Exchange an OIDC ID Token from an IdP for OpenFaaS token using the token exchange grant type. tokenURL should be the OpenFaaS token endpoint within the internal OIDC service
type TokenAuth ¶ added in v0.1.0
type TokenAuth struct { // TokenURL represents the OpenFaaS gateways token endpoint URL. TokenURL string // TokenSource used to get an ID token that can be exchanged for an OpenFaaS ID token. TokenSource TokenSource // contains filtered or unexported fields }
TokenAuth bearer token authentication for OpenFaaS deployments with OpenFaaS IAM enabled.
type TokenCache ¶ added in v0.2.11
type TokenSource ¶ added in v0.1.0
A TokenSource is anything that can return an OIDC ID token that can be exchanged for an OpenFaaS token.
func NewClientCredentialsTokenSource ¶ added in v0.2.3
func NewClientCredentialsTokenSource(clientID, clientSecret, tokenURL, scope, grantType, audience string) TokenSource