mirror of
https://github.com/kyverno/kyverno.git
synced 2025-03-06 16:06:56 +00:00
25 lines
704 B
Go
25 lines
704 B
Go
package engine
|
|
|
|
import (
|
|
"encoding/json"
|
|
"strings"
|
|
|
|
"github.com/golang/glog"
|
|
kyverno "github.com/nirmata/kyverno/pkg/api/kyverno/v1alpha1"
|
|
)
|
|
|
|
func patchOverlay(rule kyverno.Rule, rawResource []byte) ([][]byte, error) {
|
|
var resource interface{}
|
|
if err := json.Unmarshal(rawResource, &resource); err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
resourceInfo := ParseResourceInfoFromObject(rawResource)
|
|
patches, err := processOverlayPatches(resource, rule.Mutation.Overlay)
|
|
if err != nil && strings.Contains(err.Error(), "Conditions are not met") {
|
|
glog.Infof("Resource does not meet conditions in overlay pattern, resource=%s, rule=%s\n", resourceInfo, rule.Name)
|
|
return nil, nil
|
|
}
|
|
|
|
return patches, err
|
|
}
|