package generation import ( kyvernov1 "github.com/kyverno/kyverno/api/kyverno/v1" kyvernov2 "github.com/kyverno/kyverno/api/kyverno/v2" "github.com/kyverno/kyverno/pkg/engine" admissionv1 "k8s.io/api/admission/v1" ) func buildURSpecNew(requestType kyvernov2.RequestType, policyKey string, rules []kyvernov1.Rule, trigger kyvernov1.ResourceSpec, deleteDownstream bool) kyvernov2.UpdateRequestSpec { ruleCtx := make([]kyvernov2.RuleContext, 0) for _, rule := range rules { ctx := buildRuleContext(rule, trigger, deleteDownstream) ruleCtx = append(ruleCtx, ctx) } return kyvernov2.UpdateRequestSpec{ Type: requestType, Policy: policyKey, RuleContext: ruleCtx, } } func buildRuleContext(rule kyvernov1.Rule, trigger kyvernov1.ResourceSpec, deleteDownstream bool) kyvernov2.RuleContext { return kyvernov2.RuleContext{ Rule: rule.Name, Trigger: trigger, DeleteDownstream: deleteDownstream, } } func buildURContext(request admissionv1.AdmissionRequest, policyContext *engine.PolicyContext) kyvernov2.UpdateRequestSpecContext { return kyvernov2.UpdateRequestSpecContext{ UserRequestInfo: policyContext.AdmissionInfo(), AdmissionRequestInfo: kyvernov2.AdmissionRequestInfoObject{ AdmissionRequest: &request, Operation: request.Operation, }, } }