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 on amqps; this PR adds support for a custom protocol when using .Values.rabbitmqExternal; in any other case, amqp is used as a default.
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 way INVENIO_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 into Values.invenio.extra_config; this will however force Helm to have 2 INVENIO_SEARCH_HOSTS in the Configmap -- which won't work either.
In this PR, if INVENIO_SEARCH_HOSTS is set in extra_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.
service.type defaults to ClusterIP, however when using some cloud reverse proxies like Traefik, this should be set to NodePort and currently there is no way to change it.
I have added Values.web.service.type; if not specified, it defaults to ClusterIP -- which is the current default anyway.
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: