Documentation ¶
Index ¶
- func NewConfigObserver(operatorClient v1helpers.OperatorClient, eventRecorder events.Recorder, ...) factory.Controller
- func NewNestedConfigObserver(operatorClient v1helpers.OperatorClient, eventRecorder events.Recorder, ...) factory.Controller
- func Pruned(obj map[string]interface{}, pths ...[]string) map[string]interface{}
- type ConfigObserver
- type Listers
- type ObserveConfigFunc
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewConfigObserver ¶
func NewConfigObserver( operatorClient v1helpers.OperatorClient, eventRecorder events.Recorder, listers Listers, informers []factory.Informer, observers ...ObserveConfigFunc, ) factory.Controller
func NewNestedConfigObserver ¶
func NewNestedConfigObserver( operatorClient v1helpers.OperatorClient, eventRecorder events.Recorder, listers Listers, informers []factory.Informer, nestedConfigPath []string, degradedConditionPrefix string, observers ...ObserveConfigFunc, ) factory.Controller
NewNestedConfigObserver creates a config observer that watches changes to a nested field (nestedConfigPath) in the config. Useful when the config is shared across multiple controllers in the same process.
Example:
Given the following configuration, you could run two separate controllers and point each to its own section. The first controller would be responsible for "oauthAPIServer" and the second for "oauthServer" section.
"observedConfig": { "oauthAPIServer": { "apiServerArguments": {"tls-min-version": "VersionTLS12"} }, "oauthServer": { "corsAllowedOrigins": [ "//127\\.0\\.0\\.1(:|$)","//localhost(:|$)"] } }
oauthAPIController := NewNestedConfigObserver(..., []string{"oauthAPIServer"} oauthServerController := NewNestedConfigObserver(..., []string{"oauthServer"}
Types ¶
type ConfigObserver ¶
type ConfigObserver struct {
// contains filtered or unexported fields
}
type Listers ¶
type Listers interface { // ResourceSyncer can be used to copy content from one namespace to another ResourceSyncer() resourcesynccontroller.ResourceSyncer PreRunHasSynced() []cache.InformerSynced }
Listers is an interface which will be passed to the config observer funcs. It is expected to be hard-cast to the "correct" type
type ObserveConfigFunc ¶
type ObserveConfigFunc func(listers Listers, recorder events.Recorder, existingConfig map[string]interface{}) (observedConfig map[string]interface{}, errs []error)
ObserveConfigFunc observes configuration and returns the observedConfig. This function should not return an observedConfig that would cause the service being managed by the operator to crash. For example, if a required configuration key cannot be observed, consider reusing the configuration key's previous value. Errors that occur while attempting to generate the observedConfig should be returned in the errs slice.
func WithPrefix ¶
func WithPrefix(observer ObserveConfigFunc, prefix ...string) ObserveConfigFunc
WithPrefix adds a prefix to the path the input observer would otherwise observe into