Documentation
¶
Index ¶
- Variables
- func ConvertKubeEventToBindingContext(kubeEvent KubeEvent, link *KubernetesBindingToMonitorLink) []BindingContext
- type AdmissionBindingToWebhookLink
- type AdmissionBindingsController
- type BindingExecutionInfo
- type ConversionBindingToWebhookLink
- type ConversionBindingsController
- type HookController
- type KubernetesBindingToMonitorLink
- type KubernetesBindingsController
- type ScheduleBindingToCrontabLink
- type ScheduleBindingsController
Constants ¶
This section is empty.
Variables ¶
var NewConversionBindingsController = func() *conversionBindingsController { return &conversionBindingsController{ Links: make(map[string]map[conversion.Rule]*ConversionBindingToWebhookLink), } }
NewConversionBindingsController returns an implementation of ConversionBindingsController
var NewKubernetesBindingsController = func() *kubernetesBindingsController { return &kubernetesBindingsController{ BindingMonitorLinks: make(map[string]*KubernetesBindingToMonitorLink), } }
NewKubernetesBindingsController returns an implementation of KubernetesBindingsController
var NewScheduleBindingsController = func() *scheduleBindingsController { return &scheduleBindingsController{ ScheduleLinks: make(map[string]*ScheduleBindingToCrontabLink), } }
NewScheduleBindingsController returns an implementation of ScheduleBindingsController
var NewValidatingBindingsController = func() *admissionBindingsController { return &admissionBindingsController{ AdmissionLinks: make(map[string]*AdmissionBindingToWebhookLink), } }
NewValidatingBindingsController returns an implementation of AdmissionBindingsController
Functions ¶
func ConvertKubeEventToBindingContext ¶
func ConvertKubeEventToBindingContext(kubeEvent KubeEvent, link *KubernetesBindingToMonitorLink) []BindingContext
Types ¶
type AdmissionBindingToWebhookLink ¶
type AdmissionBindingToWebhookLink struct {
BindingType BindingType
BindingName string
ConfigurationId string
WebhookId string
// Useful fields to create a BindingContext
IncludeSnapshots []string
Group string
}
AdmissionBindingToWebhookLink is a link between a hook and a webhook configuration.
type AdmissionBindingsController ¶
type AdmissionBindingsController interface {
WithValidatingBindings([]ValidatingConfig)
WithMutatingBindings([]MutatingConfig)
WithWebhookManager(*admission.WebhookManager)
EnableValidatingBindings()
EnableMutatingBindings()
DisableValidatingBindings()
DisableMutatingBindings()
CanHandleEvent(event AdmissionEvent) bool
HandleEvent(event AdmissionEvent) BindingExecutionInfo
}
AdmissionBindingsController handles admission bindings for one hook.
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)
InitAdmissionBindings([]ValidatingConfig, []MutatingConfig, *admission.WebhookManager)
InitConversionBindings([]ConversionConfig, *conversion.WebhookManager)
CanHandleKubeEvent(kubeEvent KubeEvent) bool
CanHandleScheduleEvent(crontab string) bool
CanHandleAdmissionEvent(event AdmissionEvent) 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))
HandleAdmissionEvent(event AdmissionEvent, 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()
EnableAdmissionBindings()
EnableConversionBindings()
KubernetesSnapshots() map[string][]ObjectAndFilterResult
UpdateSnapshots([]BindingContext) []BindingContext
SnapshotsInfo() []string
SnapshotsDump() map[string]interface{}
}
func NewHookController ¶
func NewHookController() HookController
type KubernetesBindingToMonitorLink ¶
type KubernetesBindingToMonitorLink struct {
MonitorId string
BindingConfig OnKubernetesEventConfig
}
KubernetesBindingToMonitorLink is 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
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
SnapshotsInfo() []string
SnapshotsDump() map[string]interface{}
}
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.