1
0
Fork 0
mirror of https://github.com/kyverno/kyverno.git synced 2025-03-07 00:17:13 +00:00
kyverno/pkg/cel/engine/engine.go

38 lines
828 B
Go
Raw Normal View History

package engine
import (
"context"
"github.com/kyverno/kyverno/pkg/cel/policy"
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
)
type EngineRequest struct {
Resource *unstructured.Unstructured
NamespaceLabels map[string]map[string]string
}
type EngineResponse struct{}
type Engine interface {
Handle(context.Context, EngineRequest, ...policy.CompiledPolicy) (EngineResponse, error)
}
type engine struct{}
func NewEngine() *engine {
return &engine{}
}
func (e *engine) Handle(ctx context.Context, request EngineRequest, policies ...policy.CompiledPolicy) (EngineResponse, error) {
var response EngineResponse
for _, policy := range policies {
// TODO
_, err := policy.Evaluate(ctx, request.Resource, request.NamespaceLabels)
if err != nil {
return response, nil
}
}
return response, nil
}