in pkg/cmd/install.go [474:614]
func (o *installCmdOptions) setupIntegrationPlatform(c client.Client, namespace string, platformName string, registrySecretName string,
output *kubernetes.Collection,
) (*v1.IntegrationPlatform, error) {
platform, err := install.NewPlatform(o.Context, c, o.ClusterType, o.SkipRegistrySetup, o.registry, platformName)
if err != nil {
return nil, err
}
if registrySecretName != "" {
platform.Spec.Build.Registry.Secret = registrySecretName
}
if len(o.MavenProperties) > 0 {
platform.Spec.Build.Maven.Properties = make(map[string]string)
for _, property := range o.MavenProperties {
kv := strings.Split(property, "=")
if len(kv) == 2 {
platform.Spec.Build.Maven.Properties[kv[0]] = kv[1]
}
}
}
if size := len(o.MavenExtensions); size > 0 {
platform.Spec.Build.Maven.Extension = make([]v1.MavenArtifact, 0, size)
for _, extension := range o.MavenExtensions {
gav := strings.Split(extension, ":")
if len(gav) != 2 && len(gav) != 3 {
msg := fmt.Sprintf("Maven build extension GAV must match <groupId>:<artifactId>:<version>, found: %s", extension)
return nil, errors.New(msg)
}
ext := v1.MavenArtifact{
GroupID: gav[0],
ArtifactID: gav[1],
}
if len(gav) == 3 {
ext.Version = gav[2]
}
platform.Spec.Build.Maven.Extension = append(platform.Spec.Build.Maven.Extension, ext)
}
}
if o.MavenLocalRepository != "" {
platform.Spec.Build.Maven.LocalRepository = o.MavenLocalRepository
}
if len(o.MavenCLIOptions) > 0 {
platform.Spec.Build.Maven.CLIOptions = o.MavenCLIOptions
}
if o.RuntimeVersion != "" {
platform.Spec.Build.RuntimeVersion = o.RuntimeVersion
}
if o.BaseImage != "" {
platform.Spec.Build.BaseImage = o.BaseImage
}
if o.BuildStrategy != "" {
platform.Spec.Build.BuildConfiguration.Strategy = v1.BuildStrategy(o.BuildStrategy)
}
if o.BuildOrderStrategy != "" {
platform.Spec.Build.BuildConfiguration.OrderStrategy = v1.BuildOrderStrategy(o.BuildOrderStrategy)
}
if o.BuildPublishStrategy != "" {
platform.Spec.Build.PublishStrategy = v1.IntegrationPlatformBuildPublishStrategy(o.BuildPublishStrategy)
}
if o.BuildTimeout != "" {
d, err := time.ParseDuration(o.BuildTimeout)
if err != nil {
return nil, err
}
platform.Spec.Build.Timeout = &metav1.Duration{
Duration: d,
}
}
if o.MaxRunningBuilds > 0 {
platform.Spec.Build.MaxRunningBuilds = o.MaxRunningBuilds
}
if o.TraitProfile != "" {
platform.Spec.Profile = v1.TraitProfileByName(o.TraitProfile)
}
if len(o.MavenRepositories) > 0 {
settings, err := maven.NewSettings(maven.Repositories(o.MavenRepositories...), maven.DefaultRepositories)
if err != nil {
return nil, err
}
err = createDefaultMavenSettingsConfigMap(o.Context, c, namespace, platform.Name, settings)
if err != nil {
return nil, err
}
platform.Spec.Build.Maven.Settings.ConfigMapKeyRef = &corev1.ConfigMapKeySelector{
LocalObjectReference: corev1.LocalObjectReference{
Name: platform.Name + "-maven-settings",
},
Key: "settings.xml",
}
}
if o.MavenSettings != "" {
mavenSettings, err := v1.DecodeValueSource(o.MavenSettings, "settings.xml")
if err != nil {
return nil, err
}
platform.Spec.Build.Maven.Settings = mavenSettings
}
if o.MavenCASecret != "" {
secret, err := decodeSecretKeySelector(o.MavenCASecret)
if err != nil {
return nil, err
}
platform.Spec.Build.Maven.CASecrets = append(platform.Spec.Build.Maven.CASecrets, *secret)
}
if o.ClusterType != "" {
for _, c := range v1.AllIntegrationPlatformClusters {
if strings.EqualFold(string(c), o.ClusterType) {
platform.Spec.Cluster = c
}
}
}
// Always create a platform in the namespace where the operator is located
err = install.ObjectOrCollect(o.Context, c, namespace, output, o.Force, platform)
if err != nil {
return nil, err
}
if err := install.IntegrationPlatformViewerRole(o.Context, c, namespace); err != nil && !k8serrors.IsAlreadyExists(err) {
return nil, fmt.Errorf("error while installing global IntegrationPlatform viewer role: %w", err)
}
if o.ExampleSetup {
err = install.ExampleOrCollect(o.Context, c, namespace, output, o.Force)
if err != nil {
return nil, err
}
}
return platform, nil
}