mirror of
https://github.com/kyverno/kyverno.git
synced 2025-03-13 03:16:55 +00:00
* feat: add new report interface Signed-off-by: Vishal Choudhary <vishal.choudhary@nirmata.com> * chore: reports.kyverno.io/v1 apigroup Signed-off-by: Vishal Choudhary <vishal.choudhary@nirmata.com> * chore: codegen Signed-off-by: Vishal Choudhary <vishal.choudhary@nirmata.com> * feat: add report manager Signed-off-by: Vishal Choudhary <vishal.choudhary@nirmata.com> * feat: add reports manager to reports controller Signed-off-by: Vishal Choudhary <vishal.choudhary@nirmata.com> * feat: add alternateReportStorage to helm chart Signed-off-by: Vishal Choudhary <vishal.choudhary@nirmata.com> * fix: report utils deepcopy Signed-off-by: Vishal Choudhary <vishal.choudhary@nirmata.com> * init flag Signed-off-by: Vishal Choudhary <vishal.choudhary@nirmata.com> * fix: wrong return value Signed-off-by: Vishal Choudhary <vishal.choudhary@nirmata.com> --------- Signed-off-by: Vishal Choudhary <vishal.choudhary@nirmata.com> Co-authored-by: Charles-Edouard Brétéché <charles.edouard@nirmata.com>
45 lines
1.4 KiB
Go
45 lines
1.4 KiB
Go
package kube
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
|
|
"go.uber.org/multierr"
|
|
apiserver "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset"
|
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
)
|
|
|
|
// CRDsInstalled checks if the Kyverno CRDs are installed or not
|
|
func CRDsInstalled(apiserverClient apiserver.Interface) error {
|
|
kyvernoCRDs := []string{
|
|
"admissionreports.kyverno.io",
|
|
"admissionreports.reports.kyverno.io",
|
|
"backgroundscanreports.kyverno.io",
|
|
"backgroundscanreports.reports.kyverno.io",
|
|
"cleanuppolicies.kyverno.io",
|
|
"clusteradmissionreports.kyverno.io",
|
|
"clusteradmissionreports.reports.kyverno.io",
|
|
"clusterbackgroundscanreports.kyverno.io",
|
|
"clusterbackgroundscanreports.reports.kyverno.io",
|
|
"clustercleanuppolicies.kyverno.io",
|
|
"clusterpolicies.kyverno.io",
|
|
"clusterpolicyreports.wgpolicyk8s.io",
|
|
"policies.kyverno.io",
|
|
"policyexceptions.kyverno.io",
|
|
"policyreports.wgpolicyk8s.io",
|
|
"updaterequests.kyverno.io",
|
|
}
|
|
var errs []error
|
|
for _, crd := range kyvernoCRDs {
|
|
err := isCRDInstalled(apiserverClient, crd)
|
|
if err != nil {
|
|
errs = append(errs, fmt.Errorf("failed to check CRD %s is installed: %s", crd, err))
|
|
}
|
|
}
|
|
return multierr.Combine(errs...)
|
|
}
|
|
|
|
func isCRDInstalled(apiserverClient apiserver.Interface, kind string) error {
|
|
_, err := apiserverClient.ApiextensionsV1().CustomResourceDefinitions().Get(context.Background(), kind, metav1.GetOptions{})
|
|
return err
|
|
}
|