diff --git a/pkg/config/schema.go b/pkg/config/schema.go index 21410226..60710e97 100644 --- a/pkg/config/schema.go +++ b/pkg/config/schema.go @@ -21,8 +21,8 @@ const ( TargetController TargetKind = "Controller" // TargetIngress points to the ingress spec TargetIngress TargetKind = "Ingress" - // TargetArbitrary points to the generic spec - TargetArbitrary TargetKind = "Arbitrary" + // TargetOther points to the generic spec + TargetOther TargetKind = "Other" ) // SchemaCheck is a Polaris check that runs using JSON Schema diff --git a/pkg/kube/resources.go b/pkg/kube/resources.go index 01787b1c..bdf6daed 100644 --- a/pkg/kube/resources.go +++ b/pkg/kube/resources.go @@ -40,7 +40,7 @@ type ResourceProvider struct { Namespaces []corev1.Namespace Controllers []GenericWorkload Ingresses []v1beta1.Ingress - ArbitraryKinds []*unstructured.Unstructured + ArbitraryKinds map[string]*unstructured.Unstructured } type k8sResource struct { @@ -232,13 +232,12 @@ func CreateResourceProviderFromAPI(ctx context.Context, kube kubernetes.Interfac } } - var arbitraryObjects []*unstructured.Unstructured + var arbitraryObjects map[string]*unstructured.Unstructured for _, kind := range additionalKinds { - apiVersion := "Not sure where to get this" - fqKind := schema.FromAPIVersionAndKind(apiVersion, string(kind)) - mapping, err := (restMapper).RESTMapping(fqKind.GroupKind(), fqKind.Version) + groupKind := schema.ParseGroupKind(string(kind)) + mapping, err := (restMapper).RESTMapping(groupKind) if err != nil { - logrus.Warnf("Error retrieving mapping of API %s and Kind %s because of error: %v", apiVersion, kind, err) + logrus.Warnf("Error retrieving mapping of Kind %s because of error: %v", kind, err) return nil, err } @@ -248,7 +247,7 @@ func CreateResourceProviderFromAPI(ctx context.Context, kube kubernetes.Interfac return nil, err } for _, obj := range objects.Items { - arbitraryObjects = append(arbitraryObjects, &obj) + arbitraryObjects[string(kind)] = &obj } } @@ -389,7 +388,7 @@ func addResourceFromString(contents string, resources *ResourceProvider) error { fmt.Println(resource.Kind) return err } - resources.ArbitraryKinds = append(resources.ArbitraryKinds, &unst) + resources.ArbitraryKinds[resource.Kind] = &unst } } return err diff --git a/pkg/validator/schema.go b/pkg/validator/schema.go index 5584e695..9efd3941 100644 --- a/pkg/validator/schema.go +++ b/pkg/validator/schema.go @@ -240,7 +240,7 @@ func applyArbitrarySchemaChecks(conf *config.Configuration, unst *unstructured.U } checkIDs := getSortedKeys(conf.Checks) for _, checkID := range checkIDs { - check, err := resolveCheck(conf, checkID, unst.GetKind(), config.TargetArbitrary, objMeta, "", false) + check, err := resolveCheck(conf, checkID, unst.GetKind(), config.TargetOther, objMeta, "", false) if err != nil { return nil, err