Skip to content

Commit 9dc9b36

Browse files
feat: use new resource repo bindings for oci (#1718)
Part of #1715 This PR updates the cli and controller module. #### What this PR does / why we need it In [ociArtifact PR](https://github.com/open-component-model/open-component-model/pull/1683/changes#diff-a3d391171fbdcde50e7d94ee010485559a0d10eb1149526e04bc46cc4546eadeR196) we need the oci.Repository or something comparable to get oci artifacts in the transformation. We had no real way to provide a credentials-based oci repository since now. This PR updates the `ResourceRepository` in `bindings/go/repository/interface.go` to make it credential-aware. Since we did not want to change the implementation of the `oci` repository, we opted for a wrapper comparable to the one in `cli/internal/plugin/builtin/oci` (now deleted). The wrapper was moved into `bindings/go/oci/repository/resource`. `cli` and `controllers` were updated as well to register the new `ResourceRepository`. #### Which issue(s) this PR fixes Contributes open-component-model/ocm-project#796 --------- Signed-off-by: Matthias Bruns <git@matthiasbruns.com>
1 parent 345bf4d commit 9dc9b36

16 files changed

Lines changed: 62 additions & 574 deletions

File tree

cli/go.mod

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,14 +24,13 @@ require (
2424
ocm.software/open-component-model/bindings/go/input/dir v0.0.2
2525
ocm.software/open-component-model/bindings/go/input/file v0.0.3
2626
ocm.software/open-component-model/bindings/go/input/utf8 v0.0.0-20260203092920-c2c570fef6e9
27-
ocm.software/open-component-model/bindings/go/oci v0.0.27
27+
ocm.software/open-component-model/bindings/go/oci v0.0.28
2828
ocm.software/open-component-model/bindings/go/plugin v0.0.12
29-
ocm.software/open-component-model/bindings/go/repository v0.0.6
29+
ocm.software/open-component-model/bindings/go/repository v0.0.7
3030
ocm.software/open-component-model/bindings/go/rsa v0.0.0-20260203092920-c2c570fef6e9
3131
ocm.software/open-component-model/bindings/go/runtime v0.0.5
3232
ocm.software/open-component-model/bindings/go/signing v0.0.0-20260203092920-c2c570fef6e9
3333
ocm.software/open-component-model/bindings/go/transform v0.0.0-20260203092920-c2c570fef6e9
34-
oras.land/oras-go/v2 v2.6.0
3534
sigs.k8s.io/yaml v1.6.0
3635
)
3736

@@ -69,4 +68,5 @@ require (
6968
google.golang.org/genproto/googleapis/rpc v0.0.0-20251124214823-79d6a2a48846 // indirect
7069
google.golang.org/protobuf v1.36.11 // indirect
7170
ocm.software/open-component-model/bindings/go/cel v0.0.0-20260203092920-c2c570fef6e9 // indirect
71+
oras.land/oras-go/v2 v2.6.0 // indirect
7272
)

cli/go.sum

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -133,12 +133,12 @@ ocm.software/open-component-model/bindings/go/input/file v0.0.3 h1:fOs+mpqEIwCtR
133133
ocm.software/open-component-model/bindings/go/input/file v0.0.3/go.mod h1:ugJx+Togjama3t2u30sfAyrd3/Td+IqcdDdHpoSwy/4=
134134
ocm.software/open-component-model/bindings/go/input/utf8 v0.0.0-20260203092920-c2c570fef6e9 h1:dPlSmI45qeF0d1LwgzfAgG8mO4/h6OxG52D+5GRODv0=
135135
ocm.software/open-component-model/bindings/go/input/utf8 v0.0.0-20260203092920-c2c570fef6e9/go.mod h1:0KSU6TNRnH51G5grvYICC6pQtCmtMPARs8TrSSueQvw=
136-
ocm.software/open-component-model/bindings/go/oci v0.0.27 h1:bMCAKs0KSSn2Qjm22LMTJGFC+aWdFKH84lByCEpWi80=
137-
ocm.software/open-component-model/bindings/go/oci v0.0.27/go.mod h1:e4/TJC69jtGnRhy8ATLfmnFozZbIta559uG3HKQhMJg=
136+
ocm.software/open-component-model/bindings/go/oci v0.0.28 h1:5nHqtF4qnvZJaXvERqhIzDYsB70mK/vn6TkTG/EsttU=
137+
ocm.software/open-component-model/bindings/go/oci v0.0.28/go.mod h1:U0e0z8ZCxchGHK2RPV4eDkBUDVLksaaxpkbnV6UMM7k=
138138
ocm.software/open-component-model/bindings/go/plugin v0.0.12 h1:nio+sgQlS/QGHQN0LyLZHagZvkdDEoKukMxR0rZItCk=
139139
ocm.software/open-component-model/bindings/go/plugin v0.0.12/go.mod h1:lqKv1KelirpYTm36XuUB1QNboMmyD7qb5qPBx0sfid8=
140-
ocm.software/open-component-model/bindings/go/repository v0.0.6 h1:+Eq+De7Q2HEpIOtA7FWLUnp2b8dPP+c8g77vB/ELqbc=
141-
ocm.software/open-component-model/bindings/go/repository v0.0.6/go.mod h1:yHMSLaA6LtSYUtUyoxx4xx623TpJmSniJKcZieaqR3A=
140+
ocm.software/open-component-model/bindings/go/repository v0.0.7 h1:YN8Sig6e89ZnxyH7QN87oimy8OnMOJLRTsMhvz2gLYM=
141+
ocm.software/open-component-model/bindings/go/repository v0.0.7/go.mod h1:bP4e24rYA+plmcVDOwbiMEZrVH5PB2WJnYjn1rlPq+s=
142142
ocm.software/open-component-model/bindings/go/rsa v0.0.0-20260203092920-c2c570fef6e9 h1:342ypZqCDpnUL59s5Y1jU/20VRGsgprx/4gfcV7Nj/c=
143143
ocm.software/open-component-model/bindings/go/rsa v0.0.0-20260203092920-c2c570fef6e9/go.mod h1:4X5s9exXZwjNr3lzU8yKwbNKMI5p3H6SRbOUm0WSjd4=
144144
ocm.software/open-component-model/bindings/go/runtime v0.0.5 h1:z/gU2EMKZc8nPziSReG/KHtRTZJBkoOlR+B+XsaAmZ4=

cli/integration/download_resource_integration_test.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -223,7 +223,6 @@ configurations:
223223
r.Equal("foobar", string(layerData))
224224
})
225225
})
226-
227226
}
228227

229228
func Test_Integration_HelmTransformer(t *testing.T) {
@@ -331,7 +330,7 @@ func uploadComponentVersion(t *testing.T, repo repository.ComponentVersionReposi
331330
default:
332331
repo, ok := repo.(repository.ResourceRepository)
333332
r.True(ok, "repository must implement ResourceRepository to upload global accesses")
334-
resource.Resource, err = repo.UploadResource(ctx, resource.Resource, resource.ReadOnlyBlob)
333+
resource.Resource, err = repo.UploadResource(ctx, resource.Resource, resource.ReadOnlyBlob, nil)
335334
}
336335
r.NoError(err)
337336
desc.Component.Resources = append(desc.Component.Resources, *resource.Resource)

cli/integration/go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ require (
1515
ocm.software/open-component-model/bindings/go/blob v0.0.11
1616
ocm.software/open-component-model/bindings/go/descriptor/runtime v0.0.0-20260203092920-c2c570fef6e9
1717
ocm.software/open-component-model/bindings/go/descriptor/v2 v2.0.1-alpha9
18-
ocm.software/open-component-model/bindings/go/oci v0.0.27
19-
ocm.software/open-component-model/bindings/go/repository v0.0.6
18+
ocm.software/open-component-model/bindings/go/oci v0.0.28
19+
ocm.software/open-component-model/bindings/go/repository v0.0.7
2020
ocm.software/open-component-model/bindings/go/runtime v0.0.5
2121
ocm.software/open-component-model/cli v0.0.0-20260203092920-c2c570fef6e9
2222
oras.land/oras-go/v2 v2.6.0

cli/integration/go.sum

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -291,12 +291,12 @@ ocm.software/open-component-model/bindings/go/input/file v0.0.3 h1:fOs+mpqEIwCtR
291291
ocm.software/open-component-model/bindings/go/input/file v0.0.3/go.mod h1:ugJx+Togjama3t2u30sfAyrd3/Td+IqcdDdHpoSwy/4=
292292
ocm.software/open-component-model/bindings/go/input/utf8 v0.0.0-20260203092920-c2c570fef6e9 h1:dPlSmI45qeF0d1LwgzfAgG8mO4/h6OxG52D+5GRODv0=
293293
ocm.software/open-component-model/bindings/go/input/utf8 v0.0.0-20260203092920-c2c570fef6e9/go.mod h1:0KSU6TNRnH51G5grvYICC6pQtCmtMPARs8TrSSueQvw=
294-
ocm.software/open-component-model/bindings/go/oci v0.0.27 h1:bMCAKs0KSSn2Qjm22LMTJGFC+aWdFKH84lByCEpWi80=
295-
ocm.software/open-component-model/bindings/go/oci v0.0.27/go.mod h1:e4/TJC69jtGnRhy8ATLfmnFozZbIta559uG3HKQhMJg=
294+
ocm.software/open-component-model/bindings/go/oci v0.0.28 h1:5nHqtF4qnvZJaXvERqhIzDYsB70mK/vn6TkTG/EsttU=
295+
ocm.software/open-component-model/bindings/go/oci v0.0.28/go.mod h1:U0e0z8ZCxchGHK2RPV4eDkBUDVLksaaxpkbnV6UMM7k=
296296
ocm.software/open-component-model/bindings/go/plugin v0.0.12 h1:nio+sgQlS/QGHQN0LyLZHagZvkdDEoKukMxR0rZItCk=
297297
ocm.software/open-component-model/bindings/go/plugin v0.0.12/go.mod h1:lqKv1KelirpYTm36XuUB1QNboMmyD7qb5qPBx0sfid8=
298-
ocm.software/open-component-model/bindings/go/repository v0.0.6 h1:+Eq+De7Q2HEpIOtA7FWLUnp2b8dPP+c8g77vB/ELqbc=
299-
ocm.software/open-component-model/bindings/go/repository v0.0.6/go.mod h1:yHMSLaA6LtSYUtUyoxx4xx623TpJmSniJKcZieaqR3A=
298+
ocm.software/open-component-model/bindings/go/repository v0.0.7 h1:YN8Sig6e89ZnxyH7QN87oimy8OnMOJLRTsMhvz2gLYM=
299+
ocm.software/open-component-model/bindings/go/repository v0.0.7/go.mod h1:bP4e24rYA+plmcVDOwbiMEZrVH5PB2WJnYjn1rlPq+s=
300300
ocm.software/open-component-model/bindings/go/rsa v0.0.0-20260203092920-c2c570fef6e9 h1:342ypZqCDpnUL59s5Y1jU/20VRGsgprx/4gfcV7Nj/c=
301301
ocm.software/open-component-model/bindings/go/rsa v0.0.0-20260203092920-c2c570fef6e9/go.mod h1:4X5s9exXZwjNr3lzU8yKwbNKMI5p3H6SRbOUm0WSjd4=
302302
ocm.software/open-component-model/bindings/go/runtime v0.0.5 h1:z/gU2EMKZc8nPziSReG/KHtRTZJBkoOlR+B+XsaAmZ4=

cli/internal/plugin/builtin/oci/register.go

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import (
77
filesystemv1alpha1 "ocm.software/open-component-model/bindings/go/configuration/filesystem/v1alpha1/spec"
88
"ocm.software/open-component-model/bindings/go/oci/cache/inmemory"
99
"ocm.software/open-component-model/bindings/go/oci/repository/provider"
10+
ocires "ocm.software/open-component-model/bindings/go/oci/repository/resource"
1011
"ocm.software/open-component-model/bindings/go/oci/transformer"
1112
"ocm.software/open-component-model/bindings/go/plugin/manager/registries/blobtransformer"
1213
"ocm.software/open-component-model/bindings/go/plugin/manager/registries/componentlister"
@@ -15,6 +16,8 @@ import (
1516
"ocm.software/open-component-model/bindings/go/plugin/manager/registries/resource"
1617
)
1718

19+
const creator = "Builtin OCI Repository Plugin"
20+
1821
func Register(
1922
compverRegistry *componentversionrepository.RepositoryRegistry,
2023
resRegistry *resource.ResourceRegistry,
@@ -24,20 +27,20 @@ func Register(
2427
filesystemConfig *filesystemv1alpha1.Config,
2528
logger *slog.Logger,
2629
) error {
27-
CachingComponentVersionRepositoryProvider := provider.NewComponentVersionRepositoryProvider(provider.WithUserAgent(Creator), provider.WithTempDir(filesystemConfig.TempFolder))
30+
CachingComponentVersionRepositoryProvider := provider.NewComponentVersionRepositoryProvider(provider.WithUserAgent(creator), provider.WithTempDir(filesystemConfig.TempFolder))
2831

29-
resourceRepoPlugin := ResourceRepositoryPlugin{manifests: inmemory.New(), layers: inmemory.New(), filesystemConfig: filesystemConfig}
32+
resourceRepoPlugin := ocires.NewResourceRepository(inmemory.New(), inmemory.New(), filesystemConfig, ocires.WithUserAgent(creator))
3033
ociBlobTransformerPlugin := transformer.New(logger)
3134

3235
return errors.Join(
3336
compverRegistry.RegisterInternalComponentVersionRepositoryPlugin(
3437
CachingComponentVersionRepositoryProvider,
3538
),
3639
resRegistry.RegisterInternalResourcePlugin(
37-
&resourceRepoPlugin,
40+
resourceRepoPlugin,
3841
),
3942
digRegistry.RegisterInternalDigestProcessorPlugin(
40-
&resourceRepoPlugin,
43+
resourceRepoPlugin,
4144
),
4245
blobTransformerRegistry.RegisterInternalBlobTransformerPlugin(
4346
ociBlobTransformerPlugin,

cli/internal/plugin/builtin/oci/repository.go

Lines changed: 0 additions & 80 deletions
This file was deleted.

cli/internal/plugin/builtin/oci/repository_test.go

Lines changed: 0 additions & 54 deletions
This file was deleted.

0 commit comments

Comments
 (0)