...
1
16
17 package app
18
19 import (
20 "context"
21
22 apiextensionsscheme "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/scheme"
23 pluginvalidatingadmissionpolicy "k8s.io/apiserver/pkg/admission/plugin/policy/validating"
24 "k8s.io/apiserver/pkg/cel/openapi/resolver"
25 genericfeatures "k8s.io/apiserver/pkg/features"
26 k8sscheme "k8s.io/client-go/kubernetes/scheme"
27 "k8s.io/component-base/featuregate"
28 "k8s.io/controller-manager/controller"
29 "k8s.io/kubernetes/cmd/kube-controller-manager/names"
30 "k8s.io/kubernetes/pkg/controller/validatingadmissionpolicystatus"
31 "k8s.io/kubernetes/pkg/generated/openapi"
32 )
33
34 func newValidatingAdmissionPolicyStatusControllerDescriptor() *ControllerDescriptor {
35 return &ControllerDescriptor{
36 name: names.ValidatingAdmissionPolicyStatusController,
37 initFunc: startValidatingAdmissionPolicyStatusController,
38 requiredFeatureGates: []featuregate.Feature{
39 genericfeatures.ValidatingAdmissionPolicy,
40 },
41 }
42 }
43
44 func startValidatingAdmissionPolicyStatusController(ctx context.Context, controllerContext ControllerContext, controllerName string) (controller.Interface, bool, error) {
45
46
47 schemaResolver := resolver.NewDefinitionsSchemaResolver(openapi.GetOpenAPIDefinitions, k8sscheme.Scheme, apiextensionsscheme.Scheme).
48 Combine(&resolver.ClientDiscoveryResolver{Discovery: controllerContext.ClientBuilder.DiscoveryClientOrDie(names.ValidatingAdmissionPolicyStatusController)})
49
50 typeChecker := &pluginvalidatingadmissionpolicy.TypeChecker{
51 SchemaResolver: schemaResolver,
52 RestMapper: controllerContext.RESTMapper,
53 }
54 c, err := validatingadmissionpolicystatus.NewController(
55 controllerContext.InformerFactory.Admissionregistration().V1().ValidatingAdmissionPolicies(),
56 controllerContext.ClientBuilder.ClientOrDie(names.ValidatingAdmissionPolicyStatusController).AdmissionregistrationV1().ValidatingAdmissionPolicies(),
57 typeChecker,
58 )
59
60 go c.Run(ctx, int(controllerContext.ComponentConfig.ValidatingAdmissionPolicyStatusController.ConcurrentPolicySyncs))
61 return nil, true, err
62 }
63
View as plain text