Configuration

This section explains the current configuration options that are available for the different components deployed by this Helm chart.

Global

There is only one mandatory configuration: the host name.

host: your-rdm-instance.com

Moreover, the services can be deployed along. Note that it is recommended to deploy Elasticsearch and PostgreSQL separately for a production deployment. Therefore, by default only redis and rabbitmq are enabled. Example configuration:

postgresql:
  inside_cluster: false

elasticsearch:
  inside_cluster: false

!!! info "inside_cluster availability Note that the inside_cluster variable is supported for redis, rabbitmq, elasticsearch, postgresql and haproxy. The rest of the components are mandatory.

HAProxy

You can change the number of connections allowed by haproxy with the maxconn variable:

haproxy:
  maxconn: 100

Nginx

This chart allows you to configure the amount of connections per nginx node (replica) and the amount of nodes:

nginx:
  max_conns: 100
  replicas: 2

Web nodes

The web nodes host the WSGI application. In order to be scalable you can configure the number of "nodes", called replicas, with how many processes each node runs and with how many threads per process. The only mandatory parameter is the docker image (image) that should get as value the url where to pull the image from.

In addition, you can add automatic scaling by setting minimum (min_web_replicas) and maximum (max_web_replicas) replicas, and the cpu usage threshold in percentage (scaler_cpu_utilization) that spawns a new node. For example, with a scaler_cpu_utilization value of 65, it means that when the average CPU utilization of the nodes reaches 65%, a new node will be spawned. This process will repeat itself until the maximum number of replicas has been reached:

web:
  image: your/invenio-image
  replicas: 6
  uwsgi:
    processes: 6
    threads: 4
  autoscaler:
    enabled: false
    # Scale when CPU usage gets to
    scaler_cpu_utilization: 65
    max_web_replicas: 10
    min_web_replicas: 2

Worker nodes

Finally, the worker nodes. By default they are enabled, but you can cancel their deployment by setting enabled to false. If enabled, they require an image like the web nodes.

In addition, you can configure the number of worker nodes (replicas) to be deployed, the application they will run, their concurrency level and their logging level.

yaml worker: enabled: true image: your/invenio-image # Invenio Celery worker application app: invenio_app.celery # Number of concurrent Celery workers per pod concurrency: 2 log_level: INFO replicas: 2