This is an automated email from the ASF dual-hosted git repository.

wmedvedeo pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-kie-tools.git


The following commit(s) were added to refs/heads/main by this push:
     new 2f55fa130d3 incubator-kie-tools-3389: SonataFlow operator generates 
wrong hibernate schema initialization option for the data-index-postgresql 
deployments (#3390)
2f55fa130d3 is described below

commit 2f55fa130d31653e2415659c3d7ccb0bf8e36ba4
Author: Walter Medvedeo <[email protected]>
AuthorDate: Sun Jan 11 14:37:23 2026 +0100

    incubator-kie-tools-3389: SonataFlow operator generates wrong hibernate 
schema initialization option for the data-index-postgresql deployments (#3390)
---
 .../src/main/resources/application.properties      |   3 +-
 .../controller/platform/db_migrator_job.go         | 154 ++++++++++++---------
 .../controller/platform/services/services.go       |  12 +-
 3 files changed, 96 insertions(+), 73 deletions(-)

diff --git 
a/packages/kogito-db-migrator-tool/src/main/resources/application.properties 
b/packages/kogito-db-migrator-tool/src/main/resources/application.properties
index 1f38fe58149..74904db779e 100644
--- a/packages/kogito-db-migrator-tool/src/main/resources/application.properties
+++ b/packages/kogito-db-migrator-tool/src/main/resources/application.properties
@@ -23,7 +23,8 @@ quarkus.datasource.dataindex.db-kind=postgresql
 quarkus.datasource.dataindex.username=postgres
 quarkus.datasource.dataindex.password=postgres
 quarkus.datasource.dataindex.jdbc.url=jdbc:postgresql://localhost:5432/postgres
-quarkus.flyway.dataindex.locations=classpath:postgresql/data-index,classpath:postgresql/persistence-commons
+quarkus.flyway.dataindex.ignore-migration-patterns=versioned:missing
+quarkus.flyway.dataindex.locations=classpath:postgresql/data-index
 quarkus.flyway.dataindex.schemas=data-index-service
 quarkus.flyway.dataindex.migrate-at-start=false
 quarkus.flyway.dataindex.clean-at-start=false
diff --git 
a/packages/sonataflow-operator/internal/controller/platform/db_migrator_job.go 
b/packages/sonataflow-operator/internal/controller/platform/db_migrator_job.go
index 5b26c1df59c..a045197cce5 100644
--- 
a/packages/sonataflow-operator/internal/controller/platform/db_migrator_job.go
+++ 
b/packages/sonataflow-operator/internal/controller/platform/db_migrator_job.go
@@ -80,6 +80,8 @@ const (
        quarkusDataSourceJobsServiceUserName = 
"QUARKUS_DATASOURCE_JOBSSERVICE_USERNAME"
        quarkusDataSourceJobsServicePassword = 
"QUARKUS_DATASOURCE_JOBSSERVICE_PASSWORD"
        quarkusFlywayJobsServiceSchemas      = 
"QUARKUS_FLYWAY_JOBSSERVICE_SCHEMAS"
+       defaultPostgreSqlUserKey             = "POSTGRESQL_USER"
+       defaultPostgreSqlPassworkdKey        = "POSTGRESQL_PASSWORD"
 )
 
 type DBMigrationJobCfg struct {
@@ -106,8 +108,14 @@ func getQuarkusDSFromServicePersistence(platform 
*operatorapi.SonataFlowPlatform
        env := 
persistence.ConfigurePostgreSQLEnv(persistenceOptionsSpec.PostgreSQL, 
defaultSchemaName, platform.Namespace, false)
        quarkusDataSource.JdbcUrl = getJdbcUrl(env)
        quarkusDataSource.SecretRefName = 
persistenceOptionsSpec.PostgreSQL.SecretRef.Name
-       quarkusDataSource.SecretUserKey = 
persistenceOptionsSpec.PostgreSQL.SecretRef.UserKey
-       quarkusDataSource.SecretPasswordKey = 
persistenceOptionsSpec.PostgreSQL.SecretRef.PasswordKey
+       quarkusDataSource.SecretUserKey = defaultPostgreSqlUserKey
+       if len(persistenceOptionsSpec.PostgreSQL.SecretRef.UserKey) > 0 {
+               quarkusDataSource.SecretUserKey = 
persistenceOptionsSpec.PostgreSQL.SecretRef.UserKey
+       }
+       quarkusDataSource.SecretPasswordKey = defaultPostgreSqlPassworkdKey
+       if len(persistenceOptionsSpec.PostgreSQL.SecretRef.PasswordKey) > 0 {
+               quarkusDataSource.SecretPasswordKey = 
persistenceOptionsSpec.PostgreSQL.SecretRef.PasswordKey
+       }
        quarkusDataSource.Schema = 
persistence.GetDBSchemaName(persistenceOptionsSpec.PostgreSQL, 
defaultSchemaName)
        return quarkusDataSource
 }
@@ -121,8 +129,14 @@ func getQuarkusDSFromPlatformPersistence(platform 
*operatorapi.SonataFlowPlatfor
        env := persistence.ConfigurePostgreSQLEnv(postgresql, 
defaultSchemaName, platform.Namespace, false)
        quarkusDataSource.JdbcUrl = getJdbcUrl(env)
        quarkusDataSource.SecretRefName = 
platform.Spec.Persistence.PostgreSQL.SecretRef.Name
-       quarkusDataSource.SecretUserKey = 
platform.Spec.Persistence.PostgreSQL.SecretRef.UserKey
-       quarkusDataSource.SecretPasswordKey = 
platform.Spec.Persistence.PostgreSQL.SecretRef.PasswordKey
+       quarkusDataSource.SecretUserKey = defaultPostgreSqlUserKey
+       if len(platform.Spec.Persistence.PostgreSQL.SecretRef.UserKey) > 0 {
+               quarkusDataSource.SecretUserKey = 
platform.Spec.Persistence.PostgreSQL.SecretRef.UserKey
+       }
+       quarkusDataSource.SecretPasswordKey = defaultPostgreSqlPassworkdKey
+       if len(platform.Spec.Persistence.PostgreSQL.SecretRef.PasswordKey) > 0 {
+               quarkusDataSource.SecretPasswordKey = 
platform.Spec.Persistence.PostgreSQL.SecretRef.PasswordKey
+       }
        quarkusDataSource.Schema = persistence.GetDBSchemaName(postgresql, 
defaultSchemaName)
        return quarkusDataSource
 }
@@ -280,6 +294,75 @@ func createJobDBMigration(platform 
*operatorapi.SonataFlowPlatform, dbmj *DBMigr
 
        lbl, _ := getServicesLabelsMap(platform.Name, platform.Namespace, 
fmt.Sprintf("%s-%s", "sonataflow-db-job", dbMigrationJobCfg.JobName), 
dbMigrationJobCfg.JobName, fmt.Sprintf("%s-%s", platform.Name, 
dbMigrationJobCfg.JobName), platform.Name, "sonataflow-operator")
 
+       envVars := make([]corev1.EnvVar, 0)
+       envVars = append(envVars, corev1.EnvVar{
+               Name:  migrateDBDataIndex,
+               Value: strconv.FormatBool(dbmj.MigrateDBDataIndex),
+       })
+       if dbmj.MigrateDBDataIndex {
+               envVars = append(envVars,
+                       corev1.EnvVar{
+                               Name:  quarkusDataSourceDataIndexJdbcURL,
+                               Value: diQuarkusDataSource.JdbcUrl,
+                       },
+                       corev1.EnvVar{
+                               Name: quarkusDataSourceDataIndexUserName,
+                               ValueFrom: &corev1.EnvVarSource{
+                                       SecretKeyRef: &corev1.SecretKeySelector{
+                                               Key:                  
diQuarkusDataSource.SecretUserKey,
+                                               LocalObjectReference: 
diDBSecretRef,
+                                       },
+                               },
+                       },
+                       corev1.EnvVar{
+                               Name: quarkusDataSourceDataIndexPassword,
+                               ValueFrom: &corev1.EnvVarSource{
+                                       SecretKeyRef: &corev1.SecretKeySelector{
+                                               Key:                  
diQuarkusDataSource.SecretPasswordKey,
+                                               LocalObjectReference: 
diDBSecretRef,
+                                       },
+                               },
+                       },
+                       corev1.EnvVar{
+                               Name:  quarkusFlywayDataIndexSchemas,
+                               Value: diQuarkusDataSource.Schema,
+                       })
+       }
+
+       envVars = append(envVars, corev1.EnvVar{
+               Name:  migrateDBJobsService,
+               Value: strconv.FormatBool(dbmj.MigrateDBJobsService),
+       })
+       if dbmj.MigrateDBJobsService {
+               envVars = append(envVars,
+                       corev1.EnvVar{
+                               Name:  quarkusDataSourceJobsServiceJdbcURL,
+                               Value: jsQuarkusDataSource.JdbcUrl,
+                       },
+                       corev1.EnvVar{
+                               Name: quarkusDataSourceJobsServiceUserName,
+                               ValueFrom: &corev1.EnvVarSource{
+                                       SecretKeyRef: &corev1.SecretKeySelector{
+                                               Key:                  
jsQuarkusDataSource.SecretUserKey,
+                                               LocalObjectReference: 
jsDBSecretRef,
+                                       },
+                               },
+                       },
+                       corev1.EnvVar{
+                               Name: quarkusDataSourceJobsServicePassword,
+                               ValueFrom: &corev1.EnvVarSource{
+                                       SecretKeyRef: &corev1.SecretKeySelector{
+                                               Key:                  
jsQuarkusDataSource.SecretPasswordKey,
+                                               LocalObjectReference: 
jsDBSecretRef,
+                                       },
+                               },
+                       },
+                       corev1.EnvVar{
+                               Name:  quarkusFlywayJobsServiceSchemas,
+                               Value: jsQuarkusDataSource.Schema,
+                       })
+       }
+
        job := &batchv1.Job{
                ObjectMeta: metav1.ObjectMeta{
                        Name:      dbMigrationJobCfg.JobName,
@@ -293,68 +376,7 @@ func createJobDBMigration(platform 
*operatorapi.SonataFlowPlatform, dbmj *DBMigr
                                                {
                                                        Name:  
dbMigrationJobCfg.ContainerName,
                                                        Image: 
dbMigrationJobCfg.ToolImageName,
-                                                       Env: []corev1.EnvVar{
-                                                               {
-                                                                       Name:  
migrateDBDataIndex,
-                                                                       Value: 
strconv.FormatBool(dbmj.MigrateDBDataIndex),
-                                                               },
-                                                               {
-                                                                       Name:  
quarkusDataSourceDataIndexJdbcURL,
-                                                                       Value: 
diQuarkusDataSource.JdbcUrl,
-                                                               },
-                                                               {
-                                                                       Name: 
quarkusDataSourceDataIndexUserName,
-                                                                       
ValueFrom: &corev1.EnvVarSource{
-                                                                               
SecretKeyRef: &corev1.SecretKeySelector{
-                                                                               
        Key:                  diQuarkusDataSource.SecretUserKey,
-                                                                               
        LocalObjectReference: diDBSecretRef,
-                                                                               
},
-                                                                       },
-                                                               },
-                                                               {
-                                                                       Name: 
quarkusDataSourceDataIndexPassword,
-                                                                       
ValueFrom: &corev1.EnvVarSource{
-                                                                               
SecretKeyRef: &corev1.SecretKeySelector{
-                                                                               
        Key:                  diQuarkusDataSource.SecretPasswordKey,
-                                                                               
        LocalObjectReference: diDBSecretRef,
-                                                                               
},
-                                                                       },
-                                                               },
-                                                               {
-                                                                       Name:  
quarkusFlywayDataIndexSchemas,
-                                                                       Value: 
diQuarkusDataSource.Schema,
-                                                               },
-                                                               {
-                                                                       Name:  
migrateDBJobsService,
-                                                                       Value: 
strconv.FormatBool(dbmj.MigrateDBJobsService),
-                                                               },
-                                                               {
-                                                                       Name:  
quarkusDataSourceJobsServiceJdbcURL,
-                                                                       Value: 
jsQuarkusDataSource.JdbcUrl,
-                                                               },
-                                                               {
-                                                                       Name: 
quarkusDataSourceJobsServiceUserName,
-                                                                       
ValueFrom: &corev1.EnvVarSource{
-                                                                               
SecretKeyRef: &corev1.SecretKeySelector{
-                                                                               
        Key:                  jsQuarkusDataSource.SecretUserKey,
-                                                                               
        LocalObjectReference: jsDBSecretRef,
-                                                                               
},
-                                                                       },
-                                                               },
-                                                               {
-                                                                       Name: 
quarkusDataSourceJobsServicePassword,
-                                                                       
ValueFrom: &corev1.EnvVarSource{
-                                                                               
SecretKeyRef: &corev1.SecretKeySelector{
-                                                                               
        Key:                  jsQuarkusDataSource.SecretPasswordKey,
-                                                                               
        LocalObjectReference: jsDBSecretRef,
-                                                                               
},
-                                                                       },
-                                                               },
-                                                               {
-                                                                       Name:  
quarkusFlywayJobsServiceSchemas,
-                                                                       Value: 
jsQuarkusDataSource.Schema,
-                                                               },
-                                                       },
+                                                       Env:   envVars,
                                                },
                                        },
                                        RestartPolicy: "Never",
diff --git 
a/packages/sonataflow-operator/internal/controller/platform/services/services.go
 
b/packages/sonataflow-operator/internal/controller/platform/services/services.go
index 00f077c803f..0c7507f7241 100644
--- 
a/packages/sonataflow-operator/internal/controller/platform/services/services.go
+++ 
b/packages/sonataflow-operator/internal/controller/platform/services/services.go
@@ -53,9 +53,9 @@ import (
 )
 
 const (
-       quarkusHibernateORMDatabaseGeneration string = 
"QUARKUS_HIBERNATE_ORM_DATABASE_GENERATION"
-       quarkusFlywayMigrateAtStart           string = 
"QUARKUS_FLYWAY_MIGRATE_AT_START"
-       WaitingKnativeEventing                       = "WaitingKnativeEventing"
+       quarkusFlywayMigrateAtStart            = 
"QUARKUS_FLYWAY_MIGRATE_AT_START"
+       kogitoJobsServiceLoadJobsErrorStrategy = 
"KOGITO_JOBS_SERVICE_LOADJOBERRORSTRATEGY"
+       WaitingKnativeEventing                 = "WaitingKnativeEventing"
 )
 
 type PlatformServiceHandler interface {
@@ -296,7 +296,7 @@ func (d *DataIndexHandler) 
ConfigurePersistence(containerSpec *corev1.Container)
                dbMigrationStrategyService := 
isDBMigrationStrategyService(d.platform.Spec.Services.DataIndex.Persistence)
 
                // specific to DataIndex
-               c.Env = append(c.Env, corev1.EnvVar{Name: 
quarkusHibernateORMDatabaseGeneration, Value: "update"}, corev1.EnvVar{Name: 
quarkusFlywayMigrateAtStart, Value: dbMigrationStrategyService})
+               c.Env = append(c.Env, corev1.EnvVar{Name: 
quarkusFlywayMigrateAtStart, Value: dbMigrationStrategyService})
                return c
        }
        return containerSpec
@@ -489,8 +489,8 @@ func (j *JobServiceHandler) 
ConfigurePersistence(containerSpec *corev1.Container
                dbMigrationStrategyService := 
isDBMigrationStrategyService(j.platform.Spec.Services.JobService.Persistence)
 
                // Specific to Job Service
-               c.Env = append(c.Env, corev1.EnvVar{Name: 
"QUARKUS_FLYWAY_MIGRATE_AT_START", Value: dbMigrationStrategyService})
-               c.Env = append(c.Env, corev1.EnvVar{Name: 
"KOGITO_JOBS_SERVICE_LOADJOBERRORSTRATEGY", Value: "FAIL_SERVICE"})
+               c.Env = append(c.Env, corev1.EnvVar{Name: 
quarkusFlywayMigrateAtStart, Value: dbMigrationStrategyService})
+               c.Env = append(c.Env, corev1.EnvVar{Name: 
kogitoJobsServiceLoadJobsErrorStrategy, Value: "FAIL_SERVICE"})
                return c
        }
        return containerSpec


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to