2
2
3
3
import io .apicurio .registry .operator .OperatorException ;
4
4
import io .apicurio .registry .operator .api .v1 .ApicurioRegistry3 ;
5
+ import io .apicurio .registry .operator .api .v1 .spec .Sql ;
5
6
import io .fabric8 .kubernetes .api .model .Container ;
6
7
import io .fabric8 .kubernetes .api .model .EnvVar ;
7
8
import io .fabric8 .kubernetes .api .model .EnvVarBuilder ;
@@ -33,6 +34,12 @@ public class AppDeploymentResource extends CRUDKubernetesDependentResource<Deplo
33
34
34
35
private static final Logger log = LoggerFactory .getLogger (AppDeploymentResource .class );
35
36
37
+ public static final String ENV_APICURIO_STORAGE_KIND = "APICURIO_STORAGE_KIND" ;
38
+ public static final String ENV_APICURIO_STORAGE_SQL_KIND = "APICURIO_STORAGE_SQL_KIND" ;
39
+ public static final String ENV_APICURIO_DATASOURCE_URL = "APICURIO_DATASOURCE_URL" ;
40
+ public static final String ENV_APICURIO_DATASOURCE_USERNAME = "APICURIO_DATASOURCE_USERNAME" ;
41
+ public static final String ENV_APICURIO_DATASOURCE_PASSWORD = "APICURIO_DATASOURCE_PASSWORD" ;
42
+
36
43
public AppDeploymentResource () {
37
44
super (Deployment .class );
38
45
}
@@ -58,13 +65,34 @@ protected Deployment desired(ApicurioRegistry3 primary, Context<ApicurioRegistry
58
65
addEnvVar (envVars , new EnvVarBuilder ().withName ("APICURIO_APIS_V2_DATE_FORMAT" ).withValue ("yyyy-MM-dd''T''HH:mm:ssZ" ).build ());
59
66
// spotless:on
60
67
68
+ configureSqlDatasource (envVars , primary .getSpec ().getApp ().getSql ());
69
+
61
70
var container = getContainer (d , APP_CONTAINER_NAME );
62
71
container .setEnv (envVars .values ().stream ().toList ());
63
72
64
73
log .debug ("Desired {} is {}" , APP_DEPLOYMENT_KEY .getId (), toYAML (d ));
65
74
return d ;
66
75
}
67
76
77
+ private static void configureSqlDatasource (Map <String , EnvVar > map , Sql sql ) {
78
+ if (sql != null && sql .getDatasource () != null ) {
79
+ var datasource = sql .getDatasource ();
80
+
81
+ addEnvVar (map , new EnvVarBuilder ().withName (ENV_APICURIO_STORAGE_KIND ).withValue ("sql" ).build ());
82
+ addEnvVar (map , new EnvVarBuilder ().withName (ENV_APICURIO_STORAGE_SQL_KIND ).withValue ("postgresql" )
83
+ .build ());
84
+
85
+ addEnvVar (map , new EnvVarBuilder ().withName (ENV_APICURIO_DATASOURCE_URL )
86
+ .withValue (datasource .getUrl ()).build ());
87
+ addEnvVar (map , new EnvVarBuilder ().withName (ENV_APICURIO_DATASOURCE_USERNAME )
88
+ .withValue (datasource .getUsername ()).build ());
89
+ addEnvVar (map , new EnvVarBuilder ().withName (ENV_APICURIO_DATASOURCE_PASSWORD )
90
+ .withValue (datasource .getPassword ()).build ());
91
+ } else {
92
+ log .info ("No SQL datasource configured" );
93
+ }
94
+ }
95
+
68
96
public static void addEnvVar (Map <String , EnvVar > map , EnvVar envVar ) {
69
97
if (!map .containsKey (envVar .getName ())) {
70
98
map .put (envVar .getName (), envVar );
0 commit comments