const policyRefreshIntervalDefault …
var policyRefreshInterval …
type policySource …
type paramInfo …
type compiledPolicyEntry …
type PolicyHook …
var _ …
func NewPolicySource[P runtime.Object, B runtime.Object, E Evaluator](
policyInformer cache.SharedIndexInformer,
bindingInformer cache.SharedIndexInformer,
newPolicyAccessor func(P) PolicyAccessor,
newBindingAccessor func(B) BindingAccessor,
compiler func(P) E,
paramInformerFactory informers.SharedInformerFactory,
dynamicClient dynamic.Interface,
restMapper meta.RESTMapper,
) Source[PolicyHook[P, B, E]] { … }
func SetPolicyRefreshIntervalForTests(interval time.Duration) func() { … }
func (s *policySource[P, B, E]) Run(ctx context.Context) error { … }
func (s *policySource[P, B, E]) UpstreamHasSynced() bool { … }
func (s *policySource[P, B, E]) HasSynced() bool { … }
func (s *policySource[P, B, E]) Hooks() []PolicyHook[P, B, E] { … }
func (s *policySource[P, B, E]) refreshPolicies() { … }
func (s *policySource[P, B, E]) notify() { … }
func (s *policySource[P, B, E]) calculatePolicyData() ([]PolicyHook[P, B, E], error) { … }
func (s *policySource[P, B, E]) ensureParamsForPolicyLocked(paramSource *schema.GroupVersionKind) (informers.GenericInformer, meta.RESTScope, error) { … }
func (s *policySource[P, B, E]) getParamInformer(param schema.GroupVersionKind) (informers.GenericInformer, meta.RESTScope) { … }
func (s *policySource[P, B, E]) compilePolicyLocked(policySpec P) E { … }