1
0
Fork 0
mirror of https://github.com/kyverno/kyverno.git synced 2025-03-09 17:37:12 +00:00
kyverno/pkg/webhooks/report.go
Jim Bugwadia 6be50399bd
Cherry-pick #4138 to 1.7 (#4160)
* cherry-pick fix attestation checks https://github.com/kyverno/kyverno/pull/3999

Signed-off-by: Jim Bugwadia <jim@nirmata.com>

* remove TUF initialization from main (#4098)

Signed-off-by: Jim Bugwadia <jim@nirmata.com>

* fix imageVerify validation checks and conversion logic (#4038)

Signed-off-by: Jim Bugwadia <jim@nirmata.com>

Co-authored-by: Vyankatesh Kudtarkar <vyankateshkd@gmail.com>

* release event memory (#4138)

Signed-off-by: Jim Bugwadia <jim@nirmata.com>

Co-authored-by: Vyankatesh Kudtarkar <vyankateshkd@gmail.com>

Co-authored-by: Prateek Pandey <prateek.pandey@nirmata.com>
Co-authored-by: Vyankatesh Kudtarkar <vyankateshkd@gmail.com>
2022-06-28 11:56:45 +08:00

39 lines
1.2 KiB
Go

package webhooks
import (
"github.com/go-logr/logr"
"github.com/kyverno/kyverno/pkg/engine/response"
"github.com/kyverno/kyverno/pkg/event"
)
//generateEvents generates event info for the engine responses
func generateEvents(engineResponses []*response.EngineResponse, blocked bool, log logr.Logger) []event.Info {
var events []event.Info
// - Some/All policies fail or error
// - report failure events on policy
// - report failure events on resource
// - Some/All policies succeeded
// - report success event on resource
for _, er := range engineResponses {
if !er.IsSuccessful() {
for i, ruleResp := range er.PolicyResponse.Rules {
if ruleResp.Status == response.RuleStatusFail || ruleResp.Status == response.RuleStatusError {
e := event.NewPolicyFailEvent(event.AdmissionController, event.PolicyViolation, er, &er.PolicyResponse.Rules[i], blocked)
events = append(events, e)
}
if !blocked {
e := event.NewResourceViolationEvent(event.AdmissionController, event.PolicyViolation, er, &er.PolicyResponse.Rules[i])
events = append(events, e)
}
}
} else {
e := event.NewPolicyAppliedEvent(event.AdmissionController, er)
events = append(events, e)
}
}
return events
}