mirror of
https://github.com/kyverno/kyverno.git
synced 2024-12-14 11:57:48 +00:00
5203809b73
* chore: refactor Signed-off-by: ShutingZhao <shuting@nirmata.com> * feat: add foreach for generate.daya to api Signed-off-by: ShutingZhao <shuting@nirmata.com> * chore: refactor Signed-off-by: ShutingZhao <shuting@nirmata.com> --------- Signed-off-by: ShutingZhao <shuting@nirmata.com>
48 lines
1.4 KiB
Go
48 lines
1.4 KiB
Go
package generate
|
|
|
|
import (
|
|
kyvernov1 "github.com/kyverno/kyverno/api/kyverno/v1"
|
|
"github.com/kyverno/kyverno/pkg/background/common"
|
|
"k8s.io/apimachinery/pkg/runtime/schema"
|
|
"k8s.io/apimachinery/pkg/types"
|
|
)
|
|
|
|
func newResourceSpec(genAPIVersion, genKind, genNamespace, genName string) kyvernov1.ResourceSpec {
|
|
return kyvernov1.ResourceSpec{
|
|
APIVersion: genAPIVersion,
|
|
Kind: genKind,
|
|
Namespace: genNamespace,
|
|
Name: genName,
|
|
}
|
|
}
|
|
|
|
func TriggerFromLabels(labels map[string]string) kyvernov1.ResourceSpec {
|
|
group := labels[common.GenerateTriggerGroupLabel]
|
|
version := labels[common.GenerateTriggerVersionLabel]
|
|
apiVersion := schema.GroupVersion{Group: group, Version: version}
|
|
|
|
return kyvernov1.ResourceSpec{
|
|
Kind: labels[common.GenerateTriggerKindLabel],
|
|
Namespace: labels[common.GenerateTriggerNSLabel],
|
|
Name: labels[common.GenerateTriggerNameLabel],
|
|
UID: types.UID(labels[common.GenerateTriggerUIDLabel]),
|
|
APIVersion: apiVersion.String(),
|
|
}
|
|
}
|
|
|
|
func buildPolicyWithAppliedRules(policy kyvernov1.PolicyInterface, expect string) (kyvernov1.PolicyInterface, bool) {
|
|
var rule *kyvernov1.Rule
|
|
p := policy.CreateDeepCopy()
|
|
for j := range p.GetSpec().Rules {
|
|
if p.GetSpec().Rules[j].Name == expect {
|
|
rule = &p.GetSpec().Rules[j]
|
|
break
|
|
}
|
|
}
|
|
if rule == nil {
|
|
return nil, false
|
|
}
|
|
|
|
p.GetSpec().SetRules([]kyvernov1.Rule{*rule})
|
|
return p, true
|
|
}
|