Skip to content
This repository has been archived by the owner on Mar 21, 2024. It is now read-only.

Configuration and documentation to go to production with InvenioRDM

License

Notifications You must be signed in to change notification settings

ulbmuenster/inveniordm-2-production

Repository files navigation

Deploy InvenioRDM to Production

Disclaimer

This repository contains configuration files and documentation about getting InvenioRDM productive. This includes values.yaml files for helm based database setup, messaging setup, etc. and documentation of the decisions made.

Every component is documented in it's own subdirectory.

System components

The deployment of InvenioRDM consists of several products:

  • PostgreSQL
  • RabbitMQ
  • ElasticSearch
  • Redis

The documentations on how to setup the components are available for PostgreSQL, RabbitMQ, ElasticSearch and Redis.

Build the InvenioRDM image

For this task I've created a VirtualBox image from the latest CentOS 7 with the dependencies intalled. Don't forget to activate the network connection after startup of the VM. With pip installed call

sudo pip install -U invenio-cli

to upgrade to the latest available version of invenio-cli. Before using it to scaffold the new version of InvenioRDM make sure you are using the correct version of node/npm! Then call

invenio-cli init rdm -c vx.y

Make sure to choose the correct Python version available (actually 3.9). The InvenioRDM instance is mainly configured in the values.yaml of the InvenioRDM helm chart. However, make sure the main configuration file invenio.cfg contains the section

SQLALCHEMY_ENGINE_OPTIONS = {
    'pool_pre_ping': True,
    'max_overflow': 10,
    'pool_size': 5,
    'pool_recycle': 3600,
    'pool_timeout': 30,	
}

Next call

invenio-cli install --pre

Especially important for WWU:

  • produce a file names.yaml
  • produce a file subjects_gnd.yaml
  • produce a file subjects_ddc_german.yaml
  • produce a file resource_types.yaml and put them into the app_data/vocabularies directory. The latest three files must be added to app_data/vocabularies.yaml. The names.yaml will be imported another way.

Build the docker image with

docker build -t ulb.wwu.io/wwurdm/invenio:x.y.0 . --build-arg include_assets=true
docker push ulb.wwu.io/wwurdm/invenio:x.y.0

Deploy InvenioRDM

First, creat a certificate, run

kubectl apply -f certificate.yml -n invenio

About

Configuration and documentation to go to production with InvenioRDM

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published