Skip to content
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

Connection configuration for external and subchart backend services (postgreqsl, opensearch, s3, etc) #118

Open
jaolwi opened this issue Mar 25, 2024 · 3 comments

Comments

@jaolwi
Copy link

jaolwi commented Mar 25, 2024

The configuration of connection for each backend service should be available under invenio. and not in the root of values.yaml. We can use functions to dynamically assemble the connection strings and also connect external databases, etc. With enable: false-like parameter we could then ignore individual backend services. Or if the subchart of the backend service is in use, the chart ignores this section completly.

Example:

invenio:
  rabbitmq:
      ## @param invenio.rabbitmq.host Rabbitmq hostname. Only used when `global.rabbitmqEnabled` is false.
      ##
      host: ""
      ## @param invenio.rabbitmq.port Rabbitmq port. Only used when `global.rabbitmqEnabled` is false.
      ##
      port: ""
      ## @param invenio.rabbitmq.username Rabbitmq username. Only used when `global.rabbitmqEnabled` is false.
      ##
      username: ""
      ## @param invenio.rabbitmq.password Rabbitmq password. Only used when `global.rabbitmqEnabled` is false.
      ##
      password: ""
      ## @param invenio.rabbitmq.existingSecret Existing secret name for rabbitmq password. Only used when `global.rabbitmqEnabled` is false.
      ##
      existingSecret: ""
      ## @param invenio.rabbitmq.secretKeys.passwordKey Name of key in existing secret to use for password. Only used when `invenio.rabbitmq.existingSecret` is set and `global.rabbitmqEnabled` is false.
      ##
      secretKeys:
        passwordKey: ""

TLS configuration params could also go there.

@egabancho
Copy link
Member

Coming from #136 and a question that @lindhe asked.

A global key might make sense but for a slightly different purpose. I'm not sure if we actually need one right now, though.
I don't think it should replace the invenio one. This is what I believe should be the structure that we should try to go to:

## @section Global parameters
## Global Docker image parameters (inspire by bitnami charts)
global:
   ...

## @section Invenio parameters

image:
  registry: 
  repository:
  ...

## Common invenio app parameters
invenio:
   ...

# One section for each kind
web:
worker:
workerBeat:

I am on the fence about the init/install job. I'd love for it to be configurable, i.e. change the commands it runs.
Probably, it requires its own section (more than just true/false). I'm not sure if it should be inside invenio or at the root level.

WDYT?

@lindhe
Copy link
Contributor

lindhe commented Dec 16, 2024

The configuration of connection for each backend service should be available under invenio. and not in the root of values.yaml.

I'm not sure I follow you. Since we use chart dependencies, I think we have to configure them via aliases at the root level. Do you know of another way of doing it?

TLS configuration params could also go there.

You mean config for TLS termination in application layer, right? Because TLS config for the Ingress is currently not in the values at all (which is probably less than ideal).

@egabancho
Copy link
Member

I'm not sure I follow you. Since we use chart dependencies, I think we have to configure them via aliases at the root level. Do you know of another way of doing it?

I was a bit puzzled by this one, too. I supposed the proposed change is to replace rabbitmqExternal with invenio.rabbitmq?
I looked around at some of the bitnami charts, and some of them use things like externalDatabase, which I believe would be equivalent to our postgresqlExternal. (I'm going to take a stab at the external service shortly)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants