-
Notifications
You must be signed in to change notification settings - Fork 20
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support for custom AMQP protocol and external INVENIO_SEARCH_HOSTS #125
base: master
Are you sure you want to change the base?
Support for custom AMQP protocol and external INVENIO_SEARCH_HOSTS #125
Conversation
@@ -124,6 +124,8 @@ web: | |||
cpu: 1000m | |||
memory: 1Gi | |||
annotations: [] | |||
service: | |||
type: NodePort |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This would be a breaking change to the chart's default behavior. I think it would be better to let the default value be empty (type: ""
). You have already defined ClusterIP
as default using the default
function in the template, so having another default value here is a bit confusing.
{{- if hasKey .Values.invenio.extra_config "INVENIO_SEARCH_HOSTS" }} | ||
{{- else }} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Instead of having an empty if statement, it is preferable to negate the condition using not
.
This template renders the protocol for RabbitMQ. | ||
*/}} | ||
{{- define "invenio.rabbitmq.protocol" -}} | ||
{{- if .Values.rabbitmq.enabled }}amqp{{- else }} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please use the same style as elsewhere in the code. Example:
helm-invenio/charts/invenio/templates/_helpers.tpl
Lines 70 to 80 in 2e2b043
########################## RabbitMQ AMQP port ########################## | |
{{/* | |
This template renders the AMQP port number for RabbitMQ. | |
*/}} | |
{{- define "invenio.rabbitmq.amqpPort" -}} | |
{{- if .Values.rabbitmq.enabled }} | |
{{- required "Missing .Values.rabbitmq.service.ports.amqp" .Values.rabbitmq.service.ports.amqp -}} | |
{{- else }} | |
{{- required "Missing .Values.rabbitmqExternal.amqpPort" .Values.rabbitmqExternal.amqpPort -}} | |
{{- end }} | |
{{- end -}} |
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 added
Values.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: