diff --git a/pkg/oras/push.go b/pkg/oras/push.go index c8be4c7d0..73f826db6 100644 --- a/pkg/oras/push.go +++ b/pkg/oras/push.go @@ -68,6 +68,9 @@ func pack(provider content.Provider, descriptors []ocispec.Descriptor, opts *pus if opts.configAnnotations != nil { config.Annotations = opts.configAnnotations } + if opts.configMediaType != "" { + config.MediaType = opts.configMediaType + } // Manifest manifest := ocispec.Manifest{ diff --git a/pkg/oras/push_opts.go b/pkg/oras/push_opts.go index 6a54f7509..c8aa7a8e9 100644 --- a/pkg/oras/push_opts.go +++ b/pkg/oras/push_opts.go @@ -13,6 +13,7 @@ import ( type pushOpts struct { config *ocispec.Descriptor + configMediaType string configAnnotations map[string]string manifestAnnotations map[string]string validateName func(desc ocispec.Descriptor) error @@ -36,6 +37,14 @@ func WithConfig(config ocispec.Descriptor) PushOpt { } } +// WithConfigMediaType overrides the config media type +func WithConfigMediaType(mediaType string) PushOpt { + return func(o *pushOpts) error { + o.configMediaType = mediaType + return nil + } +} + // WithConfigAnnotations overrides the config annotations func WithConfigAnnotations(annotations map[string]string) PushOpt { return func(o *pushOpts) error {