You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This patch adds support for a generic callback system into the generator
config that allows controller implementors to specify some code that
should be injected at specific named points in a template. I expect that
eventually this generic hook system will be more useful, flexible and
extensible than the hodge-podge of custom callback methods and overrides
currently in the generator config.
Here's an example of a generator config snippet that adds a piece of
custom code to be executed in the sdk_update.go.tpl right before the
code in the resource manager's `sdkUpdate` method calls the
`newUpdateRequestPayload()` function:
```yaml
resources:
Broker:
hooks:
sdk_update_pre_build_request:
code: if err := rm.requeueIfNotRunning(latest); err != nil { return nil, err }
```
Here is the snippet from the templates/pkg/resource/sdk_update.go.tpl
file that shows how we can add these generic named hooks into our
templates at various places:
```
{{- if $hookCode := .CRD.HookCode sdk_update_pre_build_request }}
{{ $hookCode }}
{{ end -}}
```
The controller implementor need only implement the little
`requeueIfNotRunning` function, with the function signature described
in the generator config code block. We no longer need to have function
signatures match for custom callback code since the function signature
for callback code is up to the dev writing the generator.yaml config
file.
0 commit comments