in pkg/platform/defaults.go [51:130]
func ConfigureDefaults(ctx context.Context, c client.Client, p *v1.IntegrationPlatform, verbose bool) error {
// Reset the state to initial values
p.ResyncStatusFullConfig()
// Apply settings from global integration platform that is bound to this operator
if err := applyGlobalPlatformDefaults(ctx, c, p); err != nil {
return err
}
// update missing fields in the resource
if p.Status.Cluster == "" {
log.Debugf("Integration Platform %s [%s]: setting cluster status", p.Name, p.Namespace)
// determine the kind of cluster the platform is installed into
isOpenShift, err := openshift.IsOpenShift(c)
switch {
case err != nil:
return err
case isOpenShift:
p.Status.Cluster = v1.IntegrationPlatformClusterOpenShift
default:
p.Status.Cluster = v1.IntegrationPlatformClusterKubernetes
}
}
if p.Status.Build.PublishStrategy == "" {
if p.Status.Cluster == v1.IntegrationPlatformClusterOpenShift {
p.Status.Build.PublishStrategy = v1.IntegrationPlatformBuildPublishStrategyS2I
} else {
p.Status.Build.PublishStrategy = v1.IntegrationPlatformBuildPublishStrategySpectrum
}
log.Debugf("Integration Platform %s [%s]: setting publishing strategy %s", p.Name, p.Namespace, p.Status.Build.PublishStrategy)
}
if p.Status.Build.BuildConfiguration.Strategy == "" {
defaultStrategy := v1.BuildStrategyRoutine
if p.Status.Build.PublishStrategy == v1.IntegrationPlatformBuildPublishStrategyBuildah ||
p.Status.Build.PublishStrategy == v1.IntegrationPlatformBuildPublishStrategyKaniko {
defaultStrategy = v1.BuildStrategyPod
log.Infof("Integration Platform %s [%s]: setting fallback build strategy %s because PublishStrategy is configured as %s",
p.Name,
p.Namespace,
defaultStrategy,
p.Status.Build.PublishStrategy,
)
}
p.Status.Build.BuildConfiguration.Strategy = defaultStrategy
log.Debugf("Integration Platform %s [%s]: setting build strategy %s", p.Name, p.Namespace, p.Status.Build.BuildConfiguration.Strategy)
}
if p.Status.Build.BuildConfiguration.OrderStrategy == "" {
p.Status.Build.BuildConfiguration.OrderStrategy = v1.BuildOrderStrategySequential
log.Debugf("Integration Platform %s [%s]: setting build order strategy %s", p.Name, p.Namespace, p.Status.Build.BuildConfiguration.OrderStrategy)
}
err := setPlatformDefaults(p, verbose)
if err != nil {
return err
}
if p.Status.Build.BuildConfiguration.Strategy == v1.BuildStrategyPod {
if err := CreateBuilderServiceAccount(ctx, c, p); err != nil {
return fmt.Errorf("cannot ensure service account is present: %w", err)
}
}
err = configureRegistry(ctx, c, p, verbose)
if err != nil {
return err
}
if verbose && p.Status.Build.PublishStrategy != v1.IntegrationPlatformBuildPublishStrategyS2I && p.Status.Build.Registry.Address == "" {
log.Log.Info("No registry specified for publishing images")
}
if verbose && p.Status.Build.GetTimeout().Duration != 0 {
log.Log.Infof("Maven Timeout set to %s", p.Status.Build.GetTimeout().Duration)
}
return nil
}