in pkg/platform/defaults.go [191:278]
func applyPlatformSpec(source *v1.IntegrationPlatform, target *v1.IntegrationPlatform) {
if target.Status.Cluster == "" {
target.Status.Cluster = source.Status.Cluster
}
if target.Status.Profile == "" {
log.Debugf("Integration Platform %s [%s]: setting profile", target.Name, target.Namespace)
target.Status.Profile = source.Status.Profile
}
if target.Status.Build.PublishStrategy == "" {
target.Status.Build.PublishStrategy = source.Status.Build.PublishStrategy
}
if target.Status.Build.BuildConfiguration.Strategy == "" {
target.Status.Build.BuildConfiguration.Strategy = source.Status.Build.BuildConfiguration.Strategy
}
if target.Status.Build.BuildConfiguration.OrderStrategy == "" {
target.Status.Build.BuildConfiguration.OrderStrategy = source.Status.Build.BuildConfiguration.OrderStrategy
}
if target.Status.Build.RuntimeVersion == "" {
log.Debugf("Integration Platform %s [%s]: setting runtime version", target.Name, target.Namespace)
target.Status.Build.RuntimeVersion = source.Status.Build.RuntimeVersion
}
if target.Status.Build.BaseImage == "" {
log.Debugf("Integration Platform %s [%s]: setting base image", target.Name, target.Namespace)
target.Status.Build.BaseImage = source.Status.Build.BaseImage
}
if target.Status.Build.Maven.LocalRepository == "" {
log.Debugf("Integration Platform %s [%s]: setting local repository", target.Name, target.Namespace)
target.Status.Build.Maven.LocalRepository = source.Status.Build.Maven.LocalRepository
}
if len(source.Status.Build.Maven.CLIOptions) > 0 && len(target.Status.Build.Maven.CLIOptions) == 0 {
log.Debugf("Integration Platform %s [%s]: setting CLI options", target.Name, target.Namespace)
target.Status.Build.Maven.CLIOptions = make([]string, len(source.Status.Build.Maven.CLIOptions))
copy(target.Status.Build.Maven.CLIOptions, source.Status.Build.Maven.CLIOptions)
}
if len(source.Status.Build.Maven.Properties) > 0 {
log.Debugf("Integration Platform %s [%s]: setting Maven properties", target.Name, target.Namespace)
if len(target.Status.Build.Maven.Properties) == 0 {
target.Status.Build.Maven.Properties = make(map[string]string, len(source.Status.Build.Maven.Properties))
}
for key, val := range source.Status.Build.Maven.Properties {
// only set unknown properties on target
if _, ok := target.Status.Build.Maven.Properties[key]; !ok {
target.Status.Build.Maven.Properties[key] = val
}
}
}
if len(source.Status.Build.Maven.Extension) > 0 && len(target.Status.Build.Maven.Extension) == 0 {
log.Debugf("Integration Platform %s [%s]: setting Maven extensions", target.Name, target.Namespace)
target.Status.Build.Maven.Extension = make([]v1.MavenArtifact, len(source.Status.Build.Maven.Extension))
copy(target.Status.Build.Maven.Extension, source.Status.Build.Maven.Extension)
}
if target.Status.Build.Registry.Address == "" && source.Status.Build.Registry.Address != "" {
log.Debugf("Integration Platform %s [%s]: setting registry", target.Name, target.Namespace)
source.Status.Build.Registry.DeepCopyInto(&target.Status.Build.Registry)
}
if err := target.Status.Traits.Merge(source.Status.Traits); err != nil {
log.Errorf(err, "Integration Platform %s [%s]: failed to merge traits", target.Name, target.Namespace)
} else if err := target.Status.Traits.Merge(target.Spec.Traits); err != nil {
log.Errorf(err, "Integration Platform %s [%s]: failed to merge traits", target.Name, target.Namespace)
}
// Build timeout
if target.Status.Build.Timeout == nil {
log.Debugf("Integration Platform %s [%s]: setting build timeout", target.Name, target.Namespace)
target.Status.Build.Timeout = source.Status.Build.Timeout
}
if target.Status.Build.MaxRunningBuilds <= 0 {
log.Debugf("Integration Platform %s [%s]: setting max running builds", target.Name, target.Namespace)
target.Status.Build.MaxRunningBuilds = source.Status.Build.MaxRunningBuilds
}
if len(target.Status.Kamelet.Repositories) == 0 {
log.Debugf("Integration Platform %s [%s]: setting kamelet repositories", target.Name, target.Namespace)
target.Status.Kamelet.Repositories = source.Status.Kamelet.Repositories
}
}