Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewFactory ¶
func NewFactory(settings Settings, defaultNamespace string, secretsInformer cache.SharedIndexInformer, cmInformer cache.SharedIndexInformer) *apiFactory
NewFactory creates a new API factory if namespace is not empty, it will override the default namespace set in settings
Types ¶
type API ¶
type API interface {
Send(obj map[string]interface{}, templates []string, dest services.Destination) error
RunTrigger(triggerName string, vars map[string]interface{}) ([]triggers.ConditionResult, error)
AddNotificationService(name string, service services.NotificationService)
GetNotificationServices() map[string]services.NotificationService
GetConfig() Config
}
API provides high level interface to send notifications and manage notification services
type Config ¶
type Config struct {
Services map[string]ServiceFactory
Triggers map[string][]triggers.Condition
Templates map[string]services.Notification
// Subscriptions holds list of default application subscriptions
Subscriptions subscriptions.DefaultSubscriptions
// DefaultTriggers holds list of triggers that is used by default if subscriber don't specify trigger
DefaultTriggers []string
// ServiceDefaultTriggers holds list of default triggers per service
ServiceDefaultTriggers map[string][]string
Namespace string
IsSelfServiceConfig bool
}
Config holds settings required to create new api
func ParseConfig ¶
ParseConfig retrieves Config from given ConfigMap and Secret
func (Config) GetGlobalDestinations ¶
func (cfg Config) GetGlobalDestinations(labels map[string]string) services.Destinations
Returns list of destinations for the specified trigger
type Factory ¶
type Factory interface {
GetAPI() (API, error)
GetAPIsFromNamespace(namespace string) (map[string]API, error)
}
Factory creates an API instance
type GetVars ¶
type GetVars func(obj map[string]interface{}, dest services.Destination) map[string]interface{}
type ServiceFactory ¶
type ServiceFactory func() (services.NotificationService, error)
type Settings ¶
type Settings struct {
// ConfigMapName holds Kubernetes ConfigName name that contains notifications settings
ConfigMapName string
// SecretName holds Kubernetes Secret name that contains sensitive information
SecretName string
// InitGetVars returns a function that produces notifications context variables
InitGetVars func(cfg *Config, configMap *v1.ConfigMap, secret *v1.Secret) (GetVars, error)
// DefaultNamespace default namespace for ConfigMap and Secret.
// For self-service notification, we get notification configurations from rollout resource namespace
// and also the default namespace
DefaultNamespace string
}
Settings holds a set of settings required for API creation
Click to show internal directories.
Click to hide internal directories.