@@ -147,15 +147,23 @@ func (m *DeploymentRepoManager) Initialize(ctx context.Context) (*DeploymentRepo
147147
148148 logger .Infof ("Fetching openmcp-operator component version" )
149149
150- m . openMCPOperatorCV , err = m .compGetter .GetReferencedComponentVersionRecursive (ctx , m .compGetter .RootComponentVersion (), OpenMCPOperatorComponentName )
150+ openMCPOperatorCVs , err : = m .compGetter .GetReferencedComponentVersionsRecursive (ctx , m .compGetter .RootComponentVersion (), OpenMCPOperatorComponentName )
151151 if err != nil {
152152 return m , fmt .Errorf ("failed to get openmcp-operator component version: %w" , err )
153153 }
154+ if len (openMCPOperatorCVs ) != 1 {
155+ return m , fmt .Errorf ("expected exactly one openmcp-operator component version, got %d" , len (openMCPOperatorCVs ))
156+ }
157+ m .openMCPOperatorCV = & openMCPOperatorCVs [0 ]
154158
155- m . fluxcdCV , err = m .compGetter .GetComponentVersionForResourceRecursive (ctx , m .compGetter .RootComponentVersion (), FluxCDSourceControllerResourceName )
159+ fluxcdCVs , err : = m .compGetter .GetComponentVersionsForResourceRecursive (ctx , m .compGetter .RootComponentVersion (), FluxCDSourceControllerResourceName )
156160 if err != nil {
157161 return m , fmt .Errorf ("failed to get fluxcd source controller component version: %w" , err )
158162 }
163+ if len (fluxcdCVs ) != 1 {
164+ return m , fmt .Errorf ("expected exactly one fluxcd source controller component version, got %d" , len (fluxcdCVs ))
165+ }
166+ m .fluxcdCV = & fluxcdCVs [0 ]
159167
160168 m .gitConfig , err = gitconfig .ParseConfig (m .GitConfigPath )
161169 if err != nil {
@@ -339,34 +347,42 @@ func (m *DeploymentRepoManager) ApplyCustomResourceDefinitions(ctx context.Conte
339347 }
340348
341349 for _ , clusterProvider := range m .Config .Providers .ClusterProviders {
342- clusterProviderCV , err := m .compGetter .GetReferencedComponentVersionRecursive (ctx , m .compGetter .RootComponentVersion (), "cluster-provider-" + clusterProvider .Name )
350+ clusterProviderCVs , err := m .compGetter .GetReferencedComponentVersionsRecursive (ctx , m .compGetter .RootComponentVersion (), "cluster-provider-" + clusterProvider .Name )
343351 if err != nil {
344352 return fmt .Errorf ("failed to get component version for cluster provider %s: %w" , clusterProvider , err )
345353 }
346-
347- err = m .applyCRDsForComponentVersion (ctx , clusterProviderCV , crdDirectory )
354+ if len (clusterProviderCVs ) != 1 {
355+ return fmt .Errorf ("expected exactly one component version for cluster provider %s, got %d" , clusterProvider , len (clusterProviderCVs ))
356+ }
357+ err = m .applyCRDsForComponentVersion (ctx , & clusterProviderCVs [0 ], crdDirectory )
348358 if err != nil {
349359 logger .Warnf ("Failed to apply CRDs for cluster provider %s: %v" , clusterProvider , err )
350360 }
351361 }
352362
353363 for _ , serviceProvider := range m .Config .Providers .ServiceProviders {
354- serviceProviderCV , err := m .compGetter .GetReferencedComponentVersionRecursive (ctx , m .compGetter .RootComponentVersion (), "service-provider-" + serviceProvider .Name )
364+ serviceProviderCVs , err := m .compGetter .GetReferencedComponentVersionsRecursive (ctx , m .compGetter .RootComponentVersion (), "service-provider-" + serviceProvider .Name )
355365 if err != nil {
356366 return fmt .Errorf ("failed to get component version for service provider %s: %w" , serviceProvider , err )
357367 }
358- err = m .applyCRDsForComponentVersion (ctx , serviceProviderCV , crdDirectory )
368+ if len (serviceProviderCVs ) != 1 {
369+ return fmt .Errorf ("expected exactly one component version for service provider %s, got %d" , serviceProvider , len (serviceProviderCVs ))
370+ }
371+ err = m .applyCRDsForComponentVersion (ctx , & serviceProviderCVs [0 ], crdDirectory )
359372 if err != nil {
360373 logger .Warnf ("Failed to apply CRDs for service provider %s: %v" , serviceProvider , err )
361374 }
362375 }
363376
364377 for _ , platformService := range m .Config .Providers .PlatformServices {
365- platformServiceCV , err := m .compGetter .GetReferencedComponentVersionRecursive (ctx , m .compGetter .RootComponentVersion (), "platform-service-" + platformService .Name )
378+ platformServiceCVs , err := m .compGetter .GetReferencedComponentVersionsRecursive (ctx , m .compGetter .RootComponentVersion (), "platform-service-" + platformService .Name )
366379 if err != nil {
367380 return fmt .Errorf ("failed to get component version for platform service %s: %w" , platformService , err )
368381 }
369- err = m .applyCRDsForComponentVersion (ctx , platformServiceCV , crdDirectory )
382+ if len (platformServiceCVs ) != 1 {
383+ return fmt .Errorf ("expected exactly one component version for platform service %s, got %d" , platformService , len (platformServiceCVs ))
384+ }
385+ err = m .applyCRDsForComponentVersion (ctx , & platformServiceCVs [0 ], crdDirectory )
370386 if err != nil {
371387 logger .Warnf ("Failed to apply CRDs for platform service %s: %v" , platformService , err )
372388 }
0 commit comments