...
1
16
17 package admission
18
19 import (
20 "k8s.io/apimachinery/pkg/runtime/schema"
21 "k8s.io/apiserver/pkg/admission"
22 "k8s.io/apiserver/pkg/admission/initializer"
23 quota "k8s.io/apiserver/pkg/quota/v1"
24 )
25
26
27
28
29 type WantsCloudConfig interface {
30 SetCloudConfig([]byte)
31 }
32
33
34 type PluginInitializer struct {
35 cloudConfig []byte
36 quotaConfiguration quota.Configuration
37 excludedAdmissionResources []schema.GroupResource
38 }
39
40 var _ admission.PluginInitializer = &PluginInitializer{}
41
42
43
44
45 func NewPluginInitializer(
46 cloudConfig []byte,
47 quotaConfiguration quota.Configuration,
48 excludedAdmissionResources []schema.GroupResource,
49 ) *PluginInitializer {
50 return &PluginInitializer{
51 cloudConfig: cloudConfig,
52 quotaConfiguration: quotaConfiguration,
53 excludedAdmissionResources: excludedAdmissionResources,
54 }
55 }
56
57
58
59 func (i *PluginInitializer) Initialize(plugin admission.Interface) {
60 if wants, ok := plugin.(WantsCloudConfig); ok {
61 wants.SetCloudConfig(i.cloudConfig)
62 }
63
64 if wants, ok := plugin.(initializer.WantsQuotaConfiguration); ok {
65 wants.SetQuotaConfiguration(i.quotaConfiguration)
66 }
67
68 if wants, ok := plugin.(initializer.WantsExcludedAdmissionResources); ok {
69 wants.SetExcludedAdmissionResources(i.excludedAdmissionResources)
70 }
71 }
72
View as plain text