forked from openshift/apiserver-library-go
/
intializers.go
40 lines (33 loc) · 1.18 KB
/
intializers.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
package imagepolicy
import (
"k8s.io/apiserver/pkg/admission"
"github.com/openshift/apiserver-library-go/pkg/admission/imagepolicy/imagereferencemutators"
)
func NewInitializer(imageMutators imagereferencemutators.ImageMutators, internalImageRegistry string) admission.PluginInitializer {
return &localInitializer{
imageMutators: imageMutators,
internalImageRegistry: internalImageRegistry,
}
}
type WantsImageMutators interface {
SetImageMutators(imagereferencemutators.ImageMutators)
admission.InitializationValidator
}
type WantsInternalImageRegistry interface {
SetInternalImageRegistry(string)
admission.InitializationValidator
}
type localInitializer struct {
imageMutators imagereferencemutators.ImageMutators
internalImageRegistry string
}
// Initialize will check the initialization interfaces implemented by each plugin
// and provide the appropriate initialization data
func (i *localInitializer) Initialize(plugin admission.Interface) {
if wants, ok := plugin.(WantsImageMutators); ok {
wants.SetImageMutators(i.imageMutators)
}
if wants, ok := plugin.(WantsInternalImageRegistry); ok {
wants.SetInternalImageRegistry(i.internalImageRegistry)
}
}