Closed fradeve closed 5 days ago
Thank you for your contribution. However, there's a PR introducing changes where the application constructs connection strings from environment variables. If merged, this might make the modifications in this PR redundant or require adjustments to align with the new approach. @lindhe could you please take a look at this?
You are right that our planned changes to connection strings would change things relating to this PR. But I don't think it's worth waiting for that.
If we merge this first, it's just a little more work for our future improvement. But if we wait for that first, than it risks delaying these improvements unnecessarily.
So I think we should not block this PR, but it's worth a heads-up that related changes are coming. And that may or may not be breaking changes in the Helm chart, depending on how easy it is for me to be backwards compatible with the change.
🤔 We are running these changes already in our test instance with no issues. I'll take a look and see if I can reproduce it locally.
I think I found the issues, I posted suggestions. Currently untested, I'll get back later.
I finally got around to testing my changes. Having bare strings will break things if rabbitmq.enabled=true
. But if we wrap them in template strings according to my suggestions, it works. If you fix that, I'll approve. :)
Description
This PR solves 3 issues with the Helm chart
RabbitMQ protocol can't be customized
The default protocol for RabbitMQ is
amqp
and can't be edited -- this is probably fine when running RabbitMQ locally, but most hosted RMQ instances will only accept connections onamqps
; this PR adds support for a custom protocol when using.Values.rabbitmqExternal
; in any other case,amqp
is used as a default.Files affected:
Impossible to define custom Search username, password or port
The easiest way to use an external {Open/Elastic}Search instance is to pass
INVENIO_SEARCH_HOSTS
in the environment; however, the wayINVENIO_SEARCH_HOSTS
is set in the Configmap:means that only the
hostname
can be configured, without port, user or password; this is of course unworkable when using an hosted {Elastic/Open}Search that needs proper authentication to be passed to the application.A possible way around this is to add the
INVENIO_SEARCH_HOSTS
string intoValues.invenio.extra_config
; this will however force Helm to have 2INVENIO_SEARCH_HOSTS
in the Configmap -- which won't work either.In this PR, if
INVENIO_SEARCH_HOSTS
is set inextra_config
, it is removed from the Configmap so we don't get this defined twice, avoiding clashes and allowing the app to connect to an externally hosted search engine.Files affected:
Web service type cannot be changed
service.type
defaults toClusterIP
, however when using some cloud reverse proxies like Traefik, this should be set toNodePort
and currently there is no way to change it. I have addedValues.web.service.type
; if not specified, it defaults toClusterIP
-- which is the current default anyway.Files affected
Checklist
Ticks in all boxes and 🟢 on all GitHub actions status checks are required to merge:
I've marked translation strings.Frontend
I've followed the CSS/JS and React guidelines.I've followed the web accessibility guidelines.I've followed the user interface guidelines.Reminder
By using GitHub, you have already agreed to the GitHub’s Terms of Service including that: