Documentation ¶
Index ¶
- Variables
- func ConvertKubeEventToBindingContext(kubeEvent kemtypes.KubeEvent, link *KubernetesBindingToMonitorLink) []bctx.BindingContext
- type AdmissionBindingToWebhookLink
- type AdmissionBindingsController
- func (c *AdmissionBindingsController) CanHandleEvent(event admission.Event) bool
- func (c *AdmissionBindingsController) DisableMutatingBindings()
- func (c *AdmissionBindingsController) DisableValidatingBindings()
- func (c *AdmissionBindingsController) EnableMutatingBindings()
- func (c *AdmissionBindingsController) EnableValidatingBindings()
- func (c *AdmissionBindingsController) HandleEvent(event admission.Event) BindingExecutionInfo
- func (c *AdmissionBindingsController) WithMutatingBindings(bindings []htypes.MutatingConfig)
- func (c *AdmissionBindingsController) WithValidatingBindings(bindings []htypes.ValidatingConfig)
- func (c *AdmissionBindingsController) WithWebhookManager(mgr *admission.WebhookManager)
- type BindingExecutionInfo
- type ConversionBindingToWebhookLink
- type ConversionBindingsController
- func (c *ConversionBindingsController) CanHandleEvent(crdName string, _ *v1.ConversionRequest, rule conversion.Rule) bool
- func (c *ConversionBindingsController) DisableConversionBindings()
- func (c *ConversionBindingsController) EnableConversionBindings()
- func (c *ConversionBindingsController) HandleEvent(crdName string, request *v1.ConversionRequest, rule conversion.Rule) BindingExecutionInfo
- func (c *ConversionBindingsController) WithBindings(bindings []htypes.ConversionConfig)
- func (c *ConversionBindingsController) WithWebhookManager(mgr *conversion.WebhookManager)
- type HookController
- func (hc *HookController) CanHandleAdmissionEvent(event admission.Event) bool
- func (hc *HookController) CanHandleConversionEvent(crdName string, event *v1.ConversionRequest, rule conversion.Rule) bool
- func (hc *HookController) CanHandleKubeEvent(kubeEvent kemtypes.KubeEvent) bool
- func (hc *HookController) CanHandleScheduleEvent(crontab string) bool
- func (hc *HookController) DisableScheduleBindings()
- func (hc *HookController) EnableAdmissionBindings()
- func (hc *HookController) EnableConversionBindings()
- func (hc *HookController) EnableScheduleBindings()
- func (hc *HookController) HandleAdmissionEvent(event admission.Event, createTasksFn func(BindingExecutionInfo))
- func (hc *HookController) HandleConversionEvent(crdName string, request *v1.ConversionRequest, rule conversion.Rule, ...)
- func (hc *HookController) HandleEnableKubernetesBindings(createTasksFn func(BindingExecutionInfo)) error
- func (hc *HookController) HandleKubeEvent(event kemtypes.KubeEvent, createTasksFn func(BindingExecutionInfo))
- func (hc *HookController) HandleScheduleEvent(crontab string, createTasksFn func(BindingExecutionInfo))
- func (hc *HookController) InitAdmissionBindings(vbindings []htypes.ValidatingConfig, mbindings []htypes.MutatingConfig, ...)
- func (hc *HookController) InitConversionBindings(bindings []htypes.ConversionConfig, webhookMgr *conversion.WebhookManager)
- func (hc *HookController) InitKubernetesBindings(bindings []htypes.OnKubernetesEventConfig, ...)
- func (hc *HookController) InitScheduleBindings(bindings []htypes.ScheduleConfig, scheduleMgr schedulemanager.ScheduleManager)
- func (hc *HookController) KubernetesSnapshots() map[string][]kemtypes.ObjectAndFilterResult
- func (hc *HookController) SnapshotsDump() map[string]interface{}
- func (hc *HookController) SnapshotsInfo() []string
- func (hc *HookController) StopMonitors()
- func (hc *HookController) UnlockKubernetesEvents()
- func (hc *HookController) UnlockKubernetesEventsFor(monitorID string)
- func (hc *HookController) UpdateMonitor(monitorId string, kind, apiVersion string) error
- func (hc *HookController) UpdateSnapshots(context []bctx.BindingContext) []bctx.BindingContext
- 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(logger *log.Logger) *kubernetesBindingsController { return &kubernetesBindingsController{ BindingMonitorLinks: make(map[string]*KubernetesBindingToMonitorLink), logger: logger, } }
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 kemtypes.KubeEvent, link *KubernetesBindingToMonitorLink) []bctx.BindingContext
Types ¶
type AdmissionBindingToWebhookLink ¶ added in v1.2.0
type AdmissionBindingToWebhookLink struct { BindingType htypes.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 ¶ added in v1.2.0
type AdmissionBindingsController struct { // Controller holds validating/mutating bindings from one hook. Hook always belongs to one configurationId. ConfigurationId string // WebhookId -> link AdmissionLinks map[string]*AdmissionBindingToWebhookLink ValidatingBindings []htypes.ValidatingConfig MutatingBindings []htypes.MutatingConfig // contains filtered or unexported fields }
func (*AdmissionBindingsController) CanHandleEvent ¶ added in v1.2.0
func (c *AdmissionBindingsController) CanHandleEvent(event admission.Event) bool
func (*AdmissionBindingsController) DisableMutatingBindings ¶ added in v1.2.0
func (c *AdmissionBindingsController) DisableMutatingBindings()
func (*AdmissionBindingsController) DisableValidatingBindings ¶ added in v1.2.0
func (c *AdmissionBindingsController) DisableValidatingBindings()
func (*AdmissionBindingsController) EnableMutatingBindings ¶ added in v1.2.0
func (c *AdmissionBindingsController) EnableMutatingBindings()
func (*AdmissionBindingsController) EnableValidatingBindings ¶ added in v1.2.0
func (c *AdmissionBindingsController) EnableValidatingBindings()
func (*AdmissionBindingsController) HandleEvent ¶ added in v1.2.0
func (c *AdmissionBindingsController) HandleEvent(event admission.Event) BindingExecutionInfo
func (*AdmissionBindingsController) WithMutatingBindings ¶ added in v1.2.0
func (c *AdmissionBindingsController) WithMutatingBindings(bindings []htypes.MutatingConfig)
func (*AdmissionBindingsController) WithValidatingBindings ¶ added in v1.2.0
func (c *AdmissionBindingsController) WithValidatingBindings(bindings []htypes.ValidatingConfig)
func (*AdmissionBindingsController) WithWebhookManager ¶ added in v1.2.0
func (c *AdmissionBindingsController) WithWebhookManager(mgr *admission.WebhookManager)
type BindingExecutionInfo ¶
type BindingExecutionInfo struct { BindingContext []bctx.BindingContext IncludeSnapshots []string IncludeAllSnapshots bool AllowFailure bool QueueName string Binding string Group string KubernetesBinding htypes.OnKubernetesEventConfig }
type ConversionBindingToWebhookLink ¶
type ConversionBindingToWebhookLink struct { BindingName string // Useful fields to create a BindingContext CrdName string FromVersion string ToVersion string IncludeSnapshots []string Group string }
ConversionBindingToWebhookLink a link between a hook and a kube monitor
type ConversionBindingsController ¶
type ConversionBindingsController struct { // crdName -> conversionRule id -> link Links map[string]map[conversion.Rule]*ConversionBindingToWebhookLink Bindings []htypes.ConversionConfig // contains filtered or unexported fields }
ConversionBindingsController holds validating bindings from one hook.
func (*ConversionBindingsController) CanHandleEvent ¶
func (c *ConversionBindingsController) CanHandleEvent(crdName string, _ *v1.ConversionRequest, rule conversion.Rule) bool
func (*ConversionBindingsController) DisableConversionBindings ¶
func (c *ConversionBindingsController) DisableConversionBindings()
func (*ConversionBindingsController) EnableConversionBindings ¶
func (c *ConversionBindingsController) EnableConversionBindings()
func (*ConversionBindingsController) HandleEvent ¶
func (c *ConversionBindingsController) HandleEvent(crdName string, request *v1.ConversionRequest, rule conversion.Rule) BindingExecutionInfo
func (*ConversionBindingsController) WithBindings ¶
func (c *ConversionBindingsController) WithBindings(bindings []htypes.ConversionConfig)
func (*ConversionBindingsController) WithWebhookManager ¶
func (c *ConversionBindingsController) WithWebhookManager(mgr *conversion.WebhookManager)
type HookController ¶
type HookController struct { KubernetesController KubernetesBindingsController ScheduleController ScheduleBindingsController AdmissionController *AdmissionBindingsController ConversionController *ConversionBindingsController // contains filtered or unexported fields }
func NewHookController ¶
func NewHookController() *HookController
func (*HookController) CanHandleAdmissionEvent ¶ added in v1.2.0
func (hc *HookController) CanHandleAdmissionEvent(event admission.Event) bool
func (*HookController) CanHandleConversionEvent ¶
func (hc *HookController) CanHandleConversionEvent(crdName string, event *v1.ConversionRequest, rule conversion.Rule) bool
func (*HookController) CanHandleKubeEvent ¶
func (hc *HookController) CanHandleKubeEvent(kubeEvent kemtypes.KubeEvent) bool
func (*HookController) CanHandleScheduleEvent ¶
func (hc *HookController) CanHandleScheduleEvent(crontab string) bool
func (*HookController) DisableScheduleBindings ¶
func (hc *HookController) DisableScheduleBindings()
func (*HookController) EnableAdmissionBindings ¶ added in v1.2.0
func (hc *HookController) EnableAdmissionBindings()
func (*HookController) EnableConversionBindings ¶
func (hc *HookController) EnableConversionBindings()
func (*HookController) EnableScheduleBindings ¶
func (hc *HookController) EnableScheduleBindings()
func (*HookController) HandleAdmissionEvent ¶ added in v1.2.0
func (hc *HookController) HandleAdmissionEvent(event admission.Event, createTasksFn func(BindingExecutionInfo))
func (*HookController) HandleConversionEvent ¶
func (hc *HookController) HandleConversionEvent(crdName string, request *v1.ConversionRequest, rule conversion.Rule, createTasksFn func(BindingExecutionInfo))
func (*HookController) HandleEnableKubernetesBindings ¶
func (hc *HookController) HandleEnableKubernetesBindings(createTasksFn func(BindingExecutionInfo)) error
func (*HookController) HandleKubeEvent ¶
func (hc *HookController) HandleKubeEvent(event kemtypes.KubeEvent, createTasksFn func(BindingExecutionInfo))
func (*HookController) HandleScheduleEvent ¶
func (hc *HookController) HandleScheduleEvent(crontab string, createTasksFn func(BindingExecutionInfo))
func (*HookController) InitAdmissionBindings ¶ added in v1.2.0
func (hc *HookController) InitAdmissionBindings(vbindings []htypes.ValidatingConfig, mbindings []htypes.MutatingConfig, webhookMgr *admission.WebhookManager)
func (*HookController) InitConversionBindings ¶
func (hc *HookController) InitConversionBindings(bindings []htypes.ConversionConfig, webhookMgr *conversion.WebhookManager)
func (*HookController) InitKubernetesBindings ¶
func (hc *HookController) InitKubernetesBindings(bindings []htypes.OnKubernetesEventConfig, kubeEventMgr kubeeventsmanager.KubeEventsManager, logger *log.Logger)
func (*HookController) InitScheduleBindings ¶
func (hc *HookController) InitScheduleBindings(bindings []htypes.ScheduleConfig, scheduleMgr schedulemanager.ScheduleManager)
func (*HookController) KubernetesSnapshots ¶
func (hc *HookController) KubernetesSnapshots() map[string][]kemtypes.ObjectAndFilterResult
KubernetesSnapshots returns a 'full snapshot': all snapshots for all registered kubernetes bindings. Note: no caching as in UpdateSnapshots because KubernetesSnapshots used for non-combined binding contexts.
func (*HookController) SnapshotsDump ¶ added in v1.0.8
func (hc *HookController) SnapshotsDump() map[string]interface{}
func (*HookController) SnapshotsInfo ¶ added in v1.0.8
func (hc *HookController) SnapshotsInfo() []string
func (*HookController) StopMonitors ¶
func (hc *HookController) StopMonitors()
func (*HookController) UnlockKubernetesEvents ¶
func (hc *HookController) UnlockKubernetesEvents()
func (*HookController) UnlockKubernetesEventsFor ¶
func (hc *HookController) UnlockKubernetesEventsFor(monitorID string)
func (*HookController) UpdateMonitor ¶ added in v1.0.2
func (hc *HookController) UpdateMonitor(monitorId string, kind, apiVersion string) error
func (*HookController) UpdateSnapshots ¶
func (hc *HookController) UpdateSnapshots(context []bctx.BindingContext) []bctx.BindingContext
UpdateSnapshots ensures fresh consistent snapshots for combined binding contexts.
It uses caching to retrieve snapshots for a particular binding name only once. This caching is important for Synchronization and self-includes: Combined "Synchronization" binging contexts or "Synchronization" with self-inclusion may require several calls to Snapshot*() methods, but objects may change between these calls.
type KubernetesBindingToMonitorLink ¶
type KubernetesBindingToMonitorLink struct { MonitorId string BindingConfig htypes.OnKubernetesEventConfig }
KubernetesBindingToMonitorLink is a link between a binding config and a Monitor.
type KubernetesBindingsController ¶
type KubernetesBindingsController interface { WithKubernetesBindings([]htypes.OnKubernetesEventConfig) WithKubeEventsManager(kubeeventsmanager.KubeEventsManager) EnableKubernetesBindings() ([]BindingExecutionInfo, error) UpdateMonitor(monitorId string, kind, apiVersion string) error UnlockEvents() UnlockEventsFor(monitorID string) StopMonitors() CanHandleEvent(kubeEvent kemtypes.KubeEvent) bool HandleEvent(kubeEvent kemtypes.KubeEvent) BindingExecutionInfo BindingNames() []string SnapshotsFrom(bindingNames ...string) map[string][]kemtypes.ObjectAndFilterResult SnapshotsFor(bindingName string) []kemtypes.ObjectAndFilterResult Snapshots() map[string][]kemtypes.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([]htypes.ScheduleConfig) WithScheduleManager(schedulemanager.ScheduleManager) EnableScheduleBindings() DisableScheduleBindings() CanHandleEvent(crontab string) bool HandleEvent(crontab string) []BindingExecutionInfo }
ScheduleBindingsController handles schedule bindings for one hook.