Documentation
¶
Index ¶
- func CreateRateLimiter(cfg *config.HookConfig) *rate.Limiter
- func NewHookManager(config *HookManagerConfig) *hookManager
- type CommonHook
- type Hook
- func (h *Hook) GetConfig() *config.HookConfig
- func (h *Hook) GetConfigDescription() string
- func (h *Hook) LoadConfig(configOutput []byte) (hook *Hook, err error)
- func (h *Hook) RateLimitWait(ctx context.Context) error
- func (h *Hook) Run(_ BindingType, context []BindingContext, logLabels map[string]string) (*HookResult, error)
- func (h *Hook) SafeName() string
- func (h *Hook) WithHookController(hookController controller.HookController)
- func (h *Hook) WithTmpDir(dir string)
- type HookManager
- type HookManagerConfig
- type HookResult
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CreateRateLimiter ¶
func CreateRateLimiter(cfg *config.HookConfig) *rate.Limiter
func NewHookManager ¶
func NewHookManager(config *HookManagerConfig) *hookManager
Types ¶
type CommonHook ¶
type CommonHook interface {
Name() string
}
type Hook ¶
type Hook struct {
Name string // The unique name like '002-prometheus-hooks/startup_hook'.
Path string // The absolute path to the executable file.
Config *config.HookConfig
HookController controller.HookController
RateLimiter *rate.Limiter
TmpDir string
}
func (*Hook) GetConfig ¶
func (h *Hook) GetConfig() *config.HookConfig
func (*Hook) GetConfigDescription ¶
func (*Hook) Run ¶
func (h *Hook) Run(_ BindingType, context []BindingContext, logLabels map[string]string) (*HookResult, error)
func (*Hook) WithHookController ¶
func (h *Hook) WithHookController(hookController controller.HookController)
func (*Hook) WithTmpDir ¶
type HookManager ¶
type HookManager interface {
Init() error
Run()
WorkingDir() string
TempDir() string
GetHook(name string) *Hook
GetHookNames() []string
GetHooksInOrder(bindingType BindingType) ([]string, error)
HandleKubeEvent(kubeEvent KubeEvent, createTaskFn func(*Hook, controller.BindingExecutionInfo))
HandleScheduleEvent(crontab string, createTaskFn func(*Hook, controller.BindingExecutionInfo))
HandleAdmissionEvent(event AdmissionEvent, createTaskFn func(*Hook, controller.BindingExecutionInfo))
DetectAdmissionEventType(event AdmissionEvent) BindingType
HandleConversionEvent(event conversion.Event, rule conversion.Rule, createTaskFn func(*Hook, controller.BindingExecutionInfo))
FindConversionChain(crdName string, rule conversion.Rule) []conversion.Rule
}
type HookManagerConfig ¶
type HookManagerConfig struct {
WorkingDir string
TempDir string
Kmgr kube_events_manager.KubeEventsManager
Smgr schedule_manager.ScheduleManager
Wmgr *admission.WebhookManager
Cmgr *conversion.WebhookManager
}
HookManagerConfig sets configuration for HookManager
type HookResult ¶
type HookResult struct {
Usage *executor.CmdUsage
Metrics []operation.MetricOperation
ConversionResponse *conversion.Response
AdmissionResponse *AdmissionResponse
KubernetesPatchBytes []byte
}
Click to show internal directories.
Click to hide internal directories.