Skip to content

Commit

Permalink
Merge pull request #49 from fabriziosestito/fix/field-selectors
Browse files Browse the repository at this point in the history
fix(storage): field selectors
  • Loading branch information
flavio authored Nov 28, 2024
2 parents 5a3c34d + 3ef10ec commit 9ce0cd9
Show file tree
Hide file tree
Showing 5 changed files with 24 additions and 57 deletions.
5 changes: 5 additions & 0 deletions api/storage/v1alpha1/register.go
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,11 @@ func AddKnownTypes(scheme *runtime.Scheme) error {
if err != nil {
return fmt.Errorf("unable to add field selector conversion function to SBOM: %w", err)
}

err = scheme.AddFieldLabelConversionFunc(SchemeGroupVersion.WithKind("VulnerabilityReport"), imageMetadataFieldSelectorConversion)
if err != nil {
return fmt.Errorf("unable to add field selector conversion function to VulnerabilityReport: %w", err)
}
return nil
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,12 @@ type VulnerabilityReportList struct {

// +genclient
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +kubebuilder:selectablefield:JSONPath=`.spec.imageMetadata.registry`
// +kubebuilder:selectablefield:JSONPath=`.spec.imageMetadata.registryURI`
// +kubebuilder:selectablefield:JSONPath=`.spec.imageMetadata.repository`
// +kubebuilder:selectablefield:JSONPath=`.spec.imageMetadata.tag`
// +kubebuilder:selectablefield:JSONPath=`.spec.imageMetadata.platform`
// +kubebuilder:selectablefield:JSONPath=`.spec.imageMetadata.digest`

// VulnerabilityReport is the Schema for the scanresults API
type VulnerabilityReport struct {
Expand Down
12 changes: 6 additions & 6 deletions internal/storage/matcher.go
Original file line number Diff line number Diff line change
Expand Up @@ -40,12 +40,12 @@ func getAttrs(obj runtime.Object) (labels.Set, fields.Set, error) {
}

selectableFields := fields.Set{
"spec.imageMetadata.Registry": imageMetadataAccessor.GetImageMetadata().Registry,
"spec.imageMetadata.RegistryURI": imageMetadataAccessor.GetImageMetadata().RegistryURI,
"spec.imageMetadata.Repository": imageMetadataAccessor.GetImageMetadata().Repository,
"spec.imageMetadata.Tag": imageMetadataAccessor.GetImageMetadata().Tag,
"spec.imageMetadata.Platform": imageMetadataAccessor.GetImageMetadata().Platform,
"spec.imageMetadata.Digest": imageMetadataAccessor.GetImageMetadata().Digest,
"spec.imageMetadata.registry": imageMetadataAccessor.GetImageMetadata().Registry,
"spec.imageMetadata.registryURI": imageMetadataAccessor.GetImageMetadata().RegistryURI,
"spec.imageMetadata.repository": imageMetadataAccessor.GetImageMetadata().Repository,
"spec.imageMetadata.tag": imageMetadataAccessor.GetImageMetadata().Tag,
"spec.imageMetadata.platform": imageMetadataAccessor.GetImageMetadata().Platform,
"spec.imageMetadata.digest": imageMetadataAccessor.GetImageMetadata().Digest,
}

return labels.Set(objMeta.GetLabels()), generic.MergeFieldsSets(selectableMetadata, selectableFields), nil
Expand Down
51 changes: 0 additions & 51 deletions test/crd/storage.sbombastic.rancher.io_scanresults.yaml

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -84,5 +84,12 @@ spec:
description: VulnerabilityReportStatus defines the observed state of ScanResult
type: object
type: object
selectableFields:
- jsonPath: .spec.imageMetadata.registry
- jsonPath: .spec.imageMetadata.registryURI
- jsonPath: .spec.imageMetadata.repository
- jsonPath: .spec.imageMetadata.tag
- jsonPath: .spec.imageMetadata.platform
- jsonPath: .spec.imageMetadata.digest
served: true
storage: true

0 comments on commit 9ce0cd9

Please sign in to comment.