Documentation ¶
Index ¶
- func Bool(b bool) *bool
- func BoolDeref(ptr *bool, def bool) bool
- type BindingAction
- type FilterFunc
- type FilterResult
- type GoHook
- type HookBindingContext
- type HookConfig
- type HookConfigSettings
- type HookInput
- type HookMetadata
- type ILogger
- type KubernetesConfig
- type MetricsCollector
- type OrderedConfig
- type PatchableValues
- func (p *PatchableValues) ArrayCount(path string) (int, error)
- func (p *PatchableValues) Exists(path string) bool
- func (p *PatchableValues) Get(path string) gjson.Result
- func (p *PatchableValues) GetOk(path string) (gjson.Result, bool)
- func (p *PatchableValues) GetPatches() []*utils.ValuesPatchOperation
- func (p *PatchableValues) GetRaw(path string) interface{}
- func (p *PatchableValues) Remove(path string)
- func (p *PatchableValues) Set(path string, value interface{})
- type ScheduleConfig
- type Snapshots
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type BindingAction ¶
type FilterFunc ¶
type FilterFunc func(*unstructured.Unstructured) (FilterResult, error)
type FilterResult ¶
type FilterResult interface{}
type GoHook ¶
type GoHook interface { Config() *HookConfig Run(input *HookInput) error }
type HookBindingContext ¶
type HookBindingContext struct { // Type of binding context: [Event, Synchronization, Group, Schedule] Type string // Binding is a related binding name. Binding string // Snapshots contain all objects for all bindings. Snapshots map[string][]types.ObjectAndFilterResult }
type HookConfig ¶
type HookConfig struct { Schedule []ScheduleConfig Kubernetes []KubernetesConfig // OnStartup runs hook on module/global startup // Attention! During the startup you don't have snapshots available // use native KubeClient to fetch resources OnStartup *OrderedConfig OnBeforeHelm *OrderedConfig OnAfterHelm *OrderedConfig OnAfterDeleteHelm *OrderedConfig OnBeforeAll *OrderedConfig OnAfterAll *OrderedConfig AllowFailure bool Queue string Settings *HookConfigSettings Logger *unilogger.Logger }
type HookConfigSettings ¶
type HookInput ¶
type HookInput struct { Snapshots Snapshots Values *PatchableValues ConfigValues *PatchableValues MetricsCollector MetricsCollector PatchCollector *object_patch.PatchCollector Logger ILogger BindingActions *[]BindingAction }
type HookMetadata ¶
type ILogger ¶
type ILogger interface { Debug(msg string, args ...any) DebugContext(ctx context.Context, msg string, args ...any) Debugf(format string, args ...any) Enabled(ctx context.Context, level slog.Level) bool Error(msg string, args ...any) ErrorContext(ctx context.Context, msg string, args ...any) Errorf(format string, args ...any) Fatal(msg string, args ...any) Fatalf(format string, args ...any) GetLevel() unilogger.Level Handler() slog.Handler Info(msg string, args ...any) InfoContext(ctx context.Context, msg string, args ...any) Infof(format string, args ...any) Log(ctx context.Context, level slog.Level, msg string, args ...any) LogAttrs(ctx context.Context, level slog.Level, msg string, attrs ...slog.Attr) Logf(ctx context.Context, level unilogger.Level, format string, args ...any) Named(name string) *unilogger.Logger SetLevel(level unilogger.Level) SetOutput(w io.Writer) Trace(msg string, args ...any) Tracef(format string, args ...any) Warn(msg string, args ...any) WarnContext(ctx context.Context, msg string, args ...any) Warnf(format string, args ...any) With(args ...any) *unilogger.Logger WithGroup(name string) *unilogger.Logger }
type KubernetesConfig ¶
type KubernetesConfig struct { // Name is a key in snapshots map. Name string // ApiVersion of objects. "v1" is used if not set. ApiVersion string // Kind of objects. Kind string // NameSelector used to subscribe on object by its name. NameSelector *types.NameSelector // NamespaceSelector used to subscribe on objects in namespaces. NamespaceSelector *types.NamespaceSelector // LabelSelector used to subscribe on objects by matching their labels. LabelSelector *v1.LabelSelector // FieldSelector used to subscribe on objects by matching specific fields (the list of fields is narrow, see shell-operator documentation). FieldSelector *types.FieldSelector // ExecuteHookOnEvents is true by default. Set to false if only snapshot update is needed. ExecuteHookOnEvents *bool // ExecuteHookOnSynchronization is true by default. Set to false if only snapshot update is needed. ExecuteHookOnSynchronization *bool // WaitForSynchronization is true by default. Set to false if beforeHelm is not required this snapshot on start. WaitForSynchronization *bool // FilterFunc used to filter object content for snapshot. Addon-operator use checksum of this filtered result to ignore irrelevant events. FilterFunc FilterFunc }
type MetricsCollector ¶
type MetricsCollector interface { // Inc increments the specified Counter metric Inc(name string, labels map[string]string, opts ...metrics.Option) // Add adds custom value for the specified Counter metric Add(name string, value float64, labels map[string]string, opts ...metrics.Option) // Set specifies the custom value for the Gauge metric Set(name string, value float64, labels map[string]string, opts ...metrics.Option) // Expire marks metric's group as expired Expire(group string) }
MetricsCollector collects metric's records for exporting them as a batch
type OrderedConfig ¶
type OrderedConfig struct {
Order float64
}
type PatchableValues ¶
type PatchableValues struct {
// contains filtered or unexported fields
}
func NewPatchableValues ¶
func NewPatchableValues(values map[string]interface{}) (*PatchableValues, error)
func (*PatchableValues) ArrayCount ¶
func (p *PatchableValues) ArrayCount(path string) (int, error)
ArrayCount counts the number of elements in a JSON array at a path
func (*PatchableValues) Exists ¶
func (p *PatchableValues) Exists(path string) bool
Exists checks whether a path exists
func (*PatchableValues) Get ¶
func (p *PatchableValues) Get(path string) gjson.Result
Get value from patchable. It could be null value
func (*PatchableValues) GetOk ¶
func (p *PatchableValues) GetOk(path string) (gjson.Result, bool)
GetOk returns value and `exists` flag
func (*PatchableValues) GetPatches ¶
func (p *PatchableValues) GetPatches() []*utils.ValuesPatchOperation
func (*PatchableValues) GetRaw ¶
func (p *PatchableValues) GetRaw(path string) interface{}
GetRaw get empty interface
func (*PatchableValues) Remove ¶
func (p *PatchableValues) Remove(path string)
func (*PatchableValues) Set ¶
func (p *PatchableValues) Set(path string, value interface{})
type ScheduleConfig ¶
type Snapshots ¶
type Snapshots map[string][]FilterResult
Click to show internal directories.
Click to hide internal directories.