spotfiresoftware / spotfire-cloud-deployment-kit

Vanilla recipes to build container images and Helm charts for Spotfire®
Apache License 2.0
18 stars 15 forks source link

Documentation for Database Ownership and Setup is incomplete and potentially confusing #7

Closed davebleigh closed 2 years ago

davebleigh commented 2 years ago

The instructions for the Helm Charts indicate that the installer can choose whether they want to create a new database instance via the Helm Chart, or use an existing database instance.

What is missing is an explicit statement that if they choose to use an existing database instance, that database must be configured in advance by installing the schemas for the Spotfire configuration, either manually by running the install scripts supplied in the install files, or by using the config.sh create-db command.

So really, there are 4 options:

1) Create a database instance using Helm charts - everything is taken of by the Helm Charts 2) Use an existing Spotfire database instance - no action required 3) Use an existing Spotfire database Instance of an older version - requires the upgrade script to be run 4) Use an existing database instance that does not contain a Spotfire schema - requires the install steps to be performed

Trying to do either of the last two without performing the required steps on the database will result in an error. One example of this is as follows:

Successfully created the bootstrap configuration file /opt/tibco/tss/tomcat/webapps/spotfire/WEB-INF/bootstrap.xml

Error during server validation : Error reading server configuration from the database: No configuration found

In this case, most likely the user tried option 4) but did not setup the database instance with a valid Spotfire Configuration.

mblixter commented 2 years ago

Hi Dave,

If you set the values in for the helm charts "correctly" depending on your requirements, then the charts will take care of the all 4 our the scenarios you've listed. Of course errors can happen, but the charts are build to be able to cope with those 4 scenarios. In scenarios 1, 3 and 4 you should set "database.create-db.enabled" and "database.upgrade" to true(and also set the values for the the required "database." values like "database.create-db.databaseUrl" etc.) and the deployment will take care of creating needed schemas and updating the database during deployment. The error you mention could also happen in scenario #1 if you set "configuration.useExisting" to true, as the charts then expect a configuration to exist in the database.

davebleigh commented 2 years ago

Thanks Morten

I would propose that the documentation be updated to include the information you provided. Users may be able to work it out for themselves but it would be nice to have the options, and the appropriate settings, explained more clearly.

Until then, having this conversation available for reference will definitely help.

Another comment is that for scenarios 3 and 4, the name of the control variable being "database.create-db.enabled" and setting it to true seems to be confusing. Maybe having a separate variable for "database.create-tables.enabled" and "database.create-default-config.enabled" might be easier to understand.

davebleigh commented 2 years ago

I think we can close this issue.