mirror of
https://github.com/kyverno/kyverno.git
synced 2025-03-10 18:06:55 +00:00
* feat: add generator abstraction Signed-off-by: ShutingZhao <shuting@nirmata.com> * feat: replace urgenerator Signed-off-by: ShutingZhao <shuting@nirmata.com> * fix: ko build Signed-off-by: ShutingZhao <shuting@nirmata.com> * feat: load threshold from kyverno configmap Signed-off-by: ShutingZhao <shuting@nirmata.com> * feat: add metadata client to get ur count Signed-off-by: ShutingZhao <shuting@nirmata.com> * feat: add helm option to preserve configmap settings during upgrade Signed-off-by: ShutingZhao <shuting@nirmata.com> * feat: add helm option to preserve configmap settings during upgrade 2 Signed-off-by: ShutingZhao <shuting@nirmata.com> * chore: rename imports Signed-off-by: ShutingZhao <shuting@nirmata.com> * chore: update codegen manifests Signed-off-by: ShutingZhao <shuting@nirmata.com> * fix: handle nil value Signed-off-by: ShutingZhao <shuting@nirmata.com> * fix: linter issue Signed-off-by: ShutingZhao <shuting@nirmata.com> * chore: update threshold to 1000 Signed-off-by: ShutingZhao <shuting@nirmata.com> --------- Signed-off-by: ShutingZhao <shuting@nirmata.com>
34 lines
976 B
Go
34 lines
976 B
Go
package generator
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/go-logr/logr"
|
|
reportsv1 "github.com/kyverno/kyverno/api/reports/v1"
|
|
"github.com/kyverno/kyverno/pkg/client/clientset/versioned"
|
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
)
|
|
|
|
type ClusterEphemeralReportGenerator = Generator[*reportsv1.ClusterEphemeralReport]
|
|
|
|
type clusterephemeralreportsgenerator struct {
|
|
// threshold config.Configuration
|
|
threshold int
|
|
count int
|
|
}
|
|
|
|
func NewClusterEphemeralReportGenerator() ClusterEphemeralReportGenerator {
|
|
return &clusterephemeralreportsgenerator{
|
|
threshold: 10,
|
|
count: 0,
|
|
}
|
|
}
|
|
|
|
func (g *clusterephemeralreportsgenerator) Generate(ctx context.Context, client versioned.Interface, resource *reportsv1.ClusterEphemeralReport, _ logr.Logger) (*reportsv1.ClusterEphemeralReport, error) {
|
|
if g.count >= g.threshold {
|
|
return nil, nil
|
|
}
|
|
|
|
report, err := client.ReportsV1().ClusterEphemeralReports().Create(ctx, resource, metav1.CreateOptions{})
|
|
return report, err
|
|
}
|