1
0
Fork 0
mirror of https://github.com/kyverno/kyverno.git synced 2025-03-29 02:45:06 +00:00

feat: make image ref parsing a static function (#12374)

* feat: make image ref parsing a static function

Signed-off-by: Charles-Edouard Brétéché <charles.edouard@nirmata.com>

* typo

Signed-off-by: Charles-Edouard Brétéché <charles.edouard@nirmata.com>

---------

Signed-off-by: Charles-Edouard Brétéché <charles.edouard@nirmata.com>
This commit is contained in:
Charles-Edouard Brétéché 2025-03-11 15:19:36 +01:00 committed by GitHub
parent b5b1287282
commit 0d43a2d997
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 9 additions and 12 deletions

View file

@ -191,9 +191,7 @@ func Test_impl_parse_image_ref_string(t *testing.T) {
data := map[string]any{ data := map[string]any{
"context": Context{&MockCtx{ "context": Context{&MockCtx{
ParseImageReferenceFunc: func(image string) (imagedataloader.ImageReference, error) { ParseImageReferenceFunc: func(image string) (imagedataloader.ImageReference, error) {
idl, err := imagedataloader.New(nil) return imagedataloader.ParseImageReference(image)
assert.NoError(t, err)
return idl.ParseImageReference(image)
}, },
}, },
}, },
@ -225,7 +223,7 @@ func Test_impl_get_resource_string_string_string_string(t *testing.T) {
assert.NotNil(t, prog) assert.NotNil(t, prog)
data := map[string]any{ data := map[string]any{
"context": Context{&MockCtx{ "context": Context{&MockCtx{
GetResourcesFunc: func(apiVersion, resource, namespace, name string) (*unstructured.Unstructured, error) { GetResourceFunc: func(apiVersion, resource, namespace, name string) (*unstructured.Unstructured, error) {
return &unstructured.Unstructured{ return &unstructured.Unstructured{
Object: map[string]any{ Object: map[string]any{
"apiVersion": "apps/v1", "apiVersion": "apps/v1",

View file

@ -13,7 +13,7 @@ type MockCtx struct {
GetImageDataFunc func(string) (*imagedataloader.ImageData, error) GetImageDataFunc func(string) (*imagedataloader.ImageData, error)
ParseImageReferenceFunc func(string) (imagedataloader.ImageReference, error) ParseImageReferenceFunc func(string) (imagedataloader.ImageReference, error)
ListResourcesFunc func(string, string, string) (*unstructured.UnstructuredList, error) ListResourcesFunc func(string, string, string) (*unstructured.UnstructuredList, error)
GetResourcesFunc func(string, string, string, string) (*unstructured.Unstructured, error) GetResourceFunc func(string, string, string, string) (*unstructured.Unstructured, error)
} }
func (mock *MockCtx) GetConfigMap(ns string, n string) (*unstructured.Unstructured, error) { func (mock *MockCtx) GetConfigMap(ns string, n string) (*unstructured.Unstructured, error) {
@ -37,7 +37,7 @@ func (mock *MockCtx) ListResources(apiVersion, resource, namespace string) (*uns
} }
func (mock *MockCtx) GetResource(apiVersion, resource, namespace, name string) (*unstructured.Unstructured, error) { func (mock *MockCtx) GetResource(apiVersion, resource, namespace, name string) (*unstructured.Unstructured, error) {
return mock.GetResourcesFunc(apiVersion, resource, namespace, name) return mock.GetResourceFunc(apiVersion, resource, namespace, name)
} }
type mockGctxStore struct { type mockGctxStore struct {

View file

@ -151,5 +151,5 @@ func (cp *contextProvider) GetResource(apiVersion, resource, namespace, name str
} }
func (cp *contextProvider) ParseImageReference(image string) (imagedataloader.ImageReference, error) { func (cp *contextProvider) ParseImageReference(image string) (imagedataloader.ImageReference, error) {
return cp.imagedata.ParseImageReference(image) return imagedataloader.ParseImageReference(image)
} }

View file

@ -50,8 +50,8 @@ func (cp *FakeContextProvider) GetImageData(string) (*imagedataloader.ImageData,
panic("not implemented") panic("not implemented")
} }
func (cp *FakeContextProvider) ParseImageReference(string) (imagedataloader.ImageReference, error) { func (cp *FakeContextProvider) ParseImageReference(image string) (imagedataloader.ImageReference, error) {
panic("not implemented") return imagedataloader.ParseImageReference(image)
} }
func (cp *FakeContextProvider) ListResources(apiVersion, resource, namespace string) (*unstructured.UnstructuredList, error) { func (cp *FakeContextProvider) ListResources(apiVersion, resource, namespace string) (*unstructured.UnstructuredList, error) {

View file

@ -26,7 +26,6 @@ type imagedatafetcher struct {
type Fetcher interface { type Fetcher interface {
FetchImageData(ctx context.Context, image string, options ...Option) (*ImageData, error) FetchImageData(ctx context.Context, image string, options ...Option) (*ImageData, error)
ParseImageReference(image string, options ...Option) (ImageReference, error)
} }
func New(lister k8scorev1.SecretInterface, opts ...Option) (*imagedatafetcher, error) { func New(lister k8scorev1.SecretInterface, opts ...Option) (*imagedatafetcher, error) {
@ -41,7 +40,7 @@ func New(lister k8scorev1.SecretInterface, opts ...Option) (*imagedatafetcher, e
}, nil }, nil
} }
func (i *imagedatafetcher) ParseImageReference(image string, options ...Option) (ImageReference, error) { func ParseImageReference(image string, options ...Option) (ImageReference, error) {
var img ImageReference var img ImageReference
nameOpts := nameOptions(options...) nameOpts := nameOptions(options...)
ref, err := name.ParseReference(image, nameOpts...) ref, err := name.ParseReference(image, nameOpts...)
@ -74,7 +73,7 @@ func (i *imagedatafetcher) FetchImageData(ctx context.Context, image string, opt
return nil, err return nil, err
} }
img.ImageReference, err = i.ParseImageReference(image, options...) img.ImageReference, err = ParseImageReference(image, options...)
if err != nil { if err != nil {
return nil, err return nil, err
} }