55 "encoding/json"
66 "errors"
77 "fmt"
8+ "strings"
89
910 machineryruntime "k8s.io/apimachinery/pkg/runtime"
1011 "ocm.software/ocm/api/ocm"
@@ -20,7 +21,6 @@ import (
2021 "github.com/kyma-project/lifecycle-manager/pkg/log"
2122 modulecommon "github.com/kyma-project/lifecycle-manager/pkg/module/common"
2223 "github.com/kyma-project/lifecycle-manager/pkg/templatelookup"
23- "strings"
2424)
2525
2626var ErrConvertingToOCIAccessSpec = errors .New ("failed converting resource.AccessSpec to *ociartifact.AccessSpec" )
@@ -29,11 +29,13 @@ type Parser struct {
2929 client.Client
3030 descriptorProvider * provider.CachedDescriptorProvider
3131 remoteSyncNamespace string
32+ ociRepo string //"http://k3d-kcp-registry.localhost:5000/component-descriptors"
3233}
3334
3435func NewParser (clnt client.Client ,
3536 descriptorProvider * provider.CachedDescriptorProvider ,
3637 remoteSyncNamespace string ,
38+ ociRepo string ,
3739) * Parser {
3840 return & Parser {
3941 Client : clnt ,
@@ -110,7 +112,7 @@ func (p *Parser) appendModuleWithInformation(module templatelookup.ModuleInfo, k
110112 setNameAndNamespaceIfEmpty (template , name , p .remoteSyncNamespace )
111113 var manifest * v1beta2.Manifest
112114 if manifest , err = newManifestFromTemplate (module .Module ,
113- template .ModuleTemplate , descriptor ); err != nil {
115+ template .ModuleTemplate , descriptor , p . ociRepo ); err != nil {
114116 template .Err = err
115117 modules = append (modules , & modulecommon.Module {
116118 ModuleName : module .Name ,
@@ -153,6 +155,7 @@ func newManifestFromTemplate(
153155 module v1beta2.Module ,
154156 template * v1beta2.ModuleTemplate ,
155157 descriptor * types.Descriptor ,
158+ repo string ,
156159) (* v1beta2.Manifest , error ) {
157160 manifest := & v1beta2.Manifest {}
158161 if manifest .Annotations == nil {
@@ -171,7 +174,8 @@ func newManifestFromTemplate(
171174 return nil , fmt .Errorf ("could not parse descriptor: %w" , err )
172175 }
173176
174- if err := translateLayersAndMergeIntoManifest (manifest , layers ); err != nil {
177+ //repo := "http://k3d-kcp-registry.localhost:5000/component-descriptors" //TODO: Get from configuration
178+ if err := translateLayersAndMergeIntoManifest (manifest , layers , repo ); err != nil {
175179 return nil , fmt .Errorf ("could not translate layers and merge them: %w" , err )
176180 }
177181
@@ -228,21 +232,21 @@ func appendOptionalCustomStateCheck(manifest *v1beta2.Manifest, stateCheck []*v1
228232 return nil
229233}
230234
231- func translateLayersAndMergeIntoManifest (manifest * v1beta2.Manifest , layers img.Layers ) error {
235+ func translateLayersAndMergeIntoManifest (manifest * v1beta2.Manifest , layers img.Layers , repo string ) error {
232236 for _ , layer := range layers {
233- if err := insertLayerIntoManifest (manifest , layer ); err != nil {
237+ if err := insertLayerIntoManifest (manifest , layer , repo ); err != nil {
234238 return fmt .Errorf ("error in layer %s: %w" , layer .LayerName , err )
235239 }
236240 }
237241 return nil
238242}
239243
240- func insertLayerIntoManifest (manifest * v1beta2.Manifest , layer img.Layer ) error {
244+ func insertLayerIntoManifest (manifest * v1beta2.Manifest , layer img.Layer , repo string ) error {
241245 switch layer .LayerName {
242246 case v1beta2 .DefaultCRLayer :
243247 // default CR layer is not relevant for the manifest
244248 case v1beta2 .ConfigLayer :
245- imageSpec , err := layer .ConvertToImageSpec ()
249+ imageSpec , err := layer .ConvertToImageSpec (repo )
246250 if err != nil {
247251 return fmt .Errorf ("error while parsing config layer: %w" , err )
248252 }
0 commit comments