2023-02-10 18:22:11 +08:00
|
|
|
package generate
|
|
|
|
|
|
|
|
import (
|
2023-03-01 11:48:18 +08:00
|
|
|
"context"
|
2023-02-10 18:22:11 +08:00
|
|
|
|
2023-02-22 18:49:09 +08:00
|
|
|
kyvernov1 "github.com/kyverno/kyverno/api/kyverno/v1"
|
|
|
|
"github.com/kyverno/kyverno/pkg/background/common"
|
2023-03-01 11:48:18 +08:00
|
|
|
"github.com/kyverno/kyverno/pkg/clients/dclient"
|
|
|
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
|
|
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
|
2023-06-07 21:50:47 +08:00
|
|
|
"k8s.io/apimachinery/pkg/runtime/schema"
|
2023-02-10 18:22:11 +08:00
|
|
|
)
|
|
|
|
|
2023-06-06 18:07:07 +08:00
|
|
|
func newResourceSpec(genAPIVersion, genKind, genNamespace, genName string) kyvernov1.ResourceSpec {
|
|
|
|
return kyvernov1.ResourceSpec{
|
|
|
|
APIVersion: genAPIVersion,
|
|
|
|
Kind: genKind,
|
|
|
|
Namespace: genNamespace,
|
|
|
|
Name: genName,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2023-02-22 18:49:09 +08:00
|
|
|
func TriggerFromLabels(labels map[string]string) kyvernov1.ResourceSpec {
|
2023-06-07 21:50:47 +08:00
|
|
|
group := labels[common.GenerateTriggerGroupLabel]
|
|
|
|
version := labels[common.GenerateTriggerVersionLabel]
|
|
|
|
apiVersion := schema.GroupVersion{Group: group, Version: version}
|
|
|
|
|
2023-02-22 18:49:09 +08:00
|
|
|
return kyvernov1.ResourceSpec{
|
|
|
|
Kind: labels[common.GenerateTriggerKindLabel],
|
|
|
|
Namespace: labels[common.GenerateTriggerNSLabel],
|
|
|
|
Name: labels[common.GenerateTriggerNameLabel],
|
2023-06-07 21:50:47 +08:00
|
|
|
APIVersion: apiVersion.String(),
|
2023-02-22 18:49:09 +08:00
|
|
|
}
|
|
|
|
}
|
2023-03-01 11:48:18 +08:00
|
|
|
|
2023-06-07 21:50:47 +08:00
|
|
|
func FindDownstream(client dclient.Interface, apiVersion, kind string, labels map[string]string) (*unstructured.UnstructuredList, error) {
|
|
|
|
selector := &metav1.LabelSelector{MatchLabels: labels}
|
|
|
|
return client.ListResource(context.TODO(), apiVersion, kind, "", selector)
|
2023-03-01 11:48:18 +08:00
|
|
|
}
|