1
0
Fork 0
mirror of https://github.com/kyverno/kyverno.git synced 2025-03-06 16:06:56 +00:00
kyverno/pkg/webhooks/report.go

48 lines
1.2 KiB
Go
Raw Normal View History

2019-07-15 16:07:56 -07:00
package webhooks
import (
"strings"
2020-03-17 11:05:20 -07:00
"github.com/go-logr/logr"
"github.com/kyverno/kyverno/pkg/engine/response"
2019-08-26 13:34:42 -07:00
"github.com/kyverno/kyverno/pkg/event"
2019-07-15 16:07:56 -07:00
)
2019-08-26 13:34:42 -07:00
//generateEvents generates event info for the engine responses
2020-12-23 15:10:07 -08:00
func generateEvents(engineResponses []*response.EngineResponse, blocked, onUpdate bool, log logr.Logger) []event.Info {
2019-08-26 13:34:42 -07:00
var events []event.Info
2020-02-19 19:24:34 -08:00
// - Admission-Response is SUCCESS
// - Some/All policies failed (policy violations generated)
// - report event on resource that failed
2019-08-26 13:34:42 -07:00
2020-02-19 19:24:34 -08:00
for _, er := range engineResponses {
if er.IsSuccessful() {
2020-11-17 12:01:01 -08:00
// do not create event on rules that were successful
2020-02-19 19:24:34 -08:00
continue
}
// Rules that failed
failedRules := er.GetFailedRules()
filedRulesStr := strings.Join(failedRules, ";")
2020-02-19 19:24:34 -08:00
// Event on the resource
// event on resource
e := event.NewEvent(
2020-03-17 11:05:20 -07:00
log,
2020-02-19 19:24:34 -08:00
er.PolicyResponse.Resource.Kind,
er.PolicyResponse.Resource.APIVersion,
er.PolicyResponse.Resource.Namespace,
er.PolicyResponse.Resource.Name,
event.PolicyViolation.String(),
event.AdmissionController,
event.FResourcePolicyFailed,
filedRulesStr,
er.PolicyResponse.Policy,
)
events = append(events, e)
2019-07-15 16:07:56 -07:00
}
2020-02-19 19:24:34 -08:00
2019-08-26 13:34:42 -07:00
return events
}