1
0
Fork 0
mirror of https://github.com/kyverno/kyverno.git synced 2025-04-16 09:16:24 +00:00

fix: error reported when sanity check fails (#7439)

Signed-off-by: Charles-Edouard Brétéché <charles.edouard@nirmata.com>
This commit is contained in:
Charles-Edouard Brétéché 2023-06-06 17:47:28 +02:00 committed by GitHub
parent c92605b7a6
commit 248e6be073
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 11 additions and 11 deletions

View file

@ -5,7 +5,6 @@ import (
"context" "context"
"errors" "errors"
"flag" "flag"
"fmt"
"os" "os"
"strings" "strings"
"sync" "sync"
@ -62,10 +61,7 @@ func showWarnings(logger logr.Logger) {
} }
func sanityChecks(apiserverClient apiserver.Interface) error { func sanityChecks(apiserverClient apiserver.Interface) error {
if !kubeutils.CRDsInstalled(apiserverClient) { return kubeutils.CRDsInstalled(apiserverClient)
return fmt.Errorf("CRDs not installed")
}
return nil
} }
func createNonLeaderControllers( func createNonLeaderControllers(

View file

@ -2,13 +2,15 @@ package kube
import ( import (
"context" "context"
"fmt"
"go.uber.org/multierr"
apiserver "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset" apiserver "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
) )
// CRDsInstalled checks if the Kyverno CRDs are installed or not // CRDsInstalled checks if the Kyverno CRDs are installed or not
func CRDsInstalled(apiserverClient apiserver.Interface) bool { func CRDsInstalled(apiserverClient apiserver.Interface) error {
kyvernoCRDs := []string{ kyvernoCRDs := []string{
"admissionreports.kyverno.io", "admissionreports.kyverno.io",
"backgroundscanreports.kyverno.io", "backgroundscanreports.kyverno.io",
@ -23,15 +25,17 @@ func CRDsInstalled(apiserverClient apiserver.Interface) bool {
"policyreports.wgpolicyk8s.io", "policyreports.wgpolicyk8s.io",
"updaterequests.kyverno.io", "updaterequests.kyverno.io",
} }
var errs []error
for _, crd := range kyvernoCRDs { for _, crd := range kyvernoCRDs {
if !isCRDInstalled(apiserverClient, crd) { err := isCRDInstalled(apiserverClient, crd)
return false if err != nil {
errs = append(errs, fmt.Errorf("failed to check CRD %s is installed: %s", crd, err))
} }
} }
return true return multierr.Combine(errs...)
} }
func isCRDInstalled(apiserverClient apiserver.Interface, kind string) bool { func isCRDInstalled(apiserverClient apiserver.Interface, kind string) error {
_, err := apiserverClient.ApiextensionsV1().CustomResourceDefinitions().Get(context.Background(), kind, metav1.GetOptions{}) _, err := apiserverClient.ApiextensionsV1().CustomResourceDefinitions().Get(context.Background(), kind, metav1.GetOptions{})
return err == nil return err
} }