Documentation
¶
Index ¶
- Variables
- func ConvertKubeEventToBindingContext(kubeEvent KubeEvent, link *KubernetesBindingToMonitorLink) []BindingContext
- type BindingExecutionInfo
- type ConversionBindingToWebhookLink
- type ConversionBindingsController
- type HookController
- type KubernetesBindingToMonitorLink
- type KubernetesBindingsController
- type ScheduleBindingToCrontabLink
- type ScheduleBindingsController
- type ValidatingBindingToWebhookLink
- type ValidatingBindingsController
Constants ¶
This section is empty.
Variables ¶
var NewConversionBindingsController = func() *conversionBindingsController { return &conversionBindingsController{ Links: make(map[string]map[conversion.Rule]*ConversionBindingToWebhookLink), } }
NewKubernetesHooksController returns an implementation of KubernetesHooksController
var NewKubernetesBindingsController = func() *kubernetesBindingsController { return &kubernetesBindingsController{ BindingMonitorLinks: make(map[string]*KubernetesBindingToMonitorLink), } }
NewKubernetesHooksController returns an implementation of KubernetesHooksController
var NewScheduleBindingsController = func() *scheduleBindingsController { return &scheduleBindingsController{ ScheduleLinks: make(map[string]*ScheduleBindingToCrontabLink), } }
NewKubernetesHooksController returns an implementation of KubernetesHooksController
var NewValidatingBindingsController = func() *validatingBindingsController { return &validatingBindingsController{ ValidatingLinks: make(map[string]*ValidatingBindingToWebhookLink), } }
NewKubernetesHooksController returns an implementation of KubernetesHooksController
Functions ¶
func ConvertKubeEventToBindingContext ¶
func ConvertKubeEventToBindingContext(kubeEvent KubeEvent, link *KubernetesBindingToMonitorLink) []BindingContext
Types ¶
type BindingExecutionInfo ¶
type ConversionBindingToWebhookLink ¶
type ConversionBindingToWebhookLink struct {
BindingName string
// Useful fields to create a BindingContext
CrdName string
FromVersion string
ToVersion string
IncludeSnapshots []string
Group string
}
A link between a hook and a kube monitor
type ConversionBindingsController ¶
type ConversionBindingsController interface {
WithBindings([]ConversionConfig)
WithWebhookManager(manager *conversion.WebhookManager)
EnableConversionBindings()
DisableConversionBindings()
CanHandleEvent(event conversion.Event, rule conversion.Rule) bool
HandleEvent(event conversion.Event, rule conversion.Rule) BindingExecutionInfo
}
ScheduleBindingsController handles schedule bindings for one hook.
type HookController ¶
type HookController interface {
InitKubernetesBindings([]OnKubernetesEventConfig, kube_events_manager.KubeEventsManager)
InitScheduleBindings([]ScheduleConfig, schedule_manager.ScheduleManager)
InitValidatingBindings([]ValidatingConfig, *validating.WebhookManager)
InitConversionBindings([]ConversionConfig, *conversion.WebhookManager)
CanHandleKubeEvent(kubeEvent KubeEvent) bool
CanHandleScheduleEvent(crontab string) bool
CanHandleValidatingEvent(event ValidatingEvent) bool
CanHandleConversionEvent(event conversion.Event, rule conversion.Rule) bool
// These method should call an underlying *Binding*Controller to get binding context
// and then add Snapshots to binding context
HandleEnableKubernetesBindings(createTasksFn func(BindingExecutionInfo)) error
HandleKubeEvent(event KubeEvent, createTasksFn func(BindingExecutionInfo))
HandleScheduleEvent(crontab string, createTasksFn func(BindingExecutionInfo))
HandleValidatingEvent(event ValidatingEvent, createTasksFn func(BindingExecutionInfo))
HandleConversionEvent(event conversion.Event, rule conversion.Rule, createTasksFn func(BindingExecutionInfo))
UnlockKubernetesEvents()
UnlockKubernetesEventsFor(monitorID string)
StopMonitors()
UpdateMonitor(monitorId string, kind, apiVersion string) error
EnableScheduleBindings()
DisableScheduleBindings()
EnableValidatingBindings()
EnableConversionBindings()
KubernetesSnapshots() map[string][]ObjectAndFilterResult
UpdateSnapshots([]BindingContext) []BindingContext
}
func NewHookController ¶
func NewHookController() HookController
type KubernetesBindingToMonitorLink ¶
type KubernetesBindingToMonitorLink struct {
MonitorId string
BindingConfig OnKubernetesEventConfig
}
A link between a binding config and a Monitor.
type KubernetesBindingsController ¶
type KubernetesBindingsController interface {
WithKubernetesBindings([]OnKubernetesEventConfig)
WithKubeEventsManager(kube_events_manager.KubeEventsManager)
EnableKubernetesBindings() ([]BindingExecutionInfo, error)
UpdateMonitor(monitorId string, kind, apiVersion string) error
StartCachedSnapshotMode()
StopCachedSnapshotMode()
UnlockEvents()
UnlockEventsFor(monitorID string)
StopMonitors()
CanHandleEvent(kubeEvent KubeEvent) bool
HandleEvent(kubeEvent KubeEvent) BindingExecutionInfo
BindingNames() []string
SnapshotsFrom(bindingNames ...string) map[string][]ObjectAndFilterResult
SnapshotsFor(bindingName string) []ObjectAndFilterResult
Snapshots() map[string][]ObjectAndFilterResult
}
KubernetesBindingsController handles kubernetes bindings for one hook.
type ScheduleBindingToCrontabLink ¶
type ScheduleBindingToCrontabLink struct {
BindingName string
Crontab string
// Useful fields to create a BindingContext
IncludeSnapshots []string
AllowFailure bool
QueueName string
Group string
}
A link between a hook and a kube monitor
type ScheduleBindingsController ¶
type ScheduleBindingsController interface {
WithScheduleBindings([]ScheduleConfig)
WithScheduleManager(schedule_manager.ScheduleManager)
EnableScheduleBindings()
DisableScheduleBindings()
CanHandleEvent(crontab string) bool
HandleEvent(crontab string) []BindingExecutionInfo
}
ScheduleBindingsController handles schedule bindings for one hook.
type ValidatingBindingToWebhookLink ¶
type ValidatingBindingToWebhookLink struct {
BindingName string
ConfigurationId string
WebhookId string
// Useful fields to create a BindingContext
IncludeSnapshots []string
Group string
}
A link between a hook and a kube monitor
type ValidatingBindingsController ¶
type ValidatingBindingsController interface {
WithValidatingBindings([]ValidatingConfig)
WithWebhookManager(*validating.WebhookManager)
EnableValidatingBindings()
DisableValidatingBindings()
CanHandleEvent(event ValidatingEvent) bool
HandleEvent(event ValidatingEvent) BindingExecutionInfo
}
ScheduleBindingsController handles schedule bindings for one hook.