Config: Granular env-based Solution for Connection Strings #57
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
❤️ Thank you for your contribution!
Description
Add logic to build connection URLs from env vars if available
needed for helm charts security best practices.
This PR includes:
Partially closes: inveniosoftware/helm-invenio#112
Depends on: inveniosoftware/invenio-app-rdm#2918
Note
I created a test version encapsulated in a cached class. Let me know if you prefer this over simple functions, and I’ll update accordingly see link
Findings
For the database URI, ensure that
SQLALCHEMY_DATABASE_URI=""
is set to an empty string to allow the granular variables to take effect.For the broker, I opted for the naming convention
INVENIO_RABBITMQ_*
instead ofINVENIO_BROKER_*
, as the latter conflicts with RabbitMQ's default naming variables. For more details, refer to the documentation here.For reviewers:
I set up a testing instance to test these changes, with the
.env
file anddocker-services
modified, see: https://github.com/Samk13/invenio-dev-latest/tree/granular-env-vars-changesinvenio-app-rdm
to set these variables.Checklist
Ticks in all boxes and 🟢 on all GitHub actions status checks are required to merge:
Frontend
Reminder
By using GitHub, you have already agreed to the GitHub’s Terms of Service including that: