Configuration files

Configuration-as-Code

Configuration-as-Code is an industry best practice that promotes storing of application configuration as code within the source code repository. Configuration-as-Code is an important prerequisite to have reproducible and auditable configurations. It also makes configurations testable and easier to reuse.

This is especially important with distributed systems. Maintaining multiple services across a network of distributed systems, and keeping all their settings and configurations in sync is very hard to achieve when you have to manually configure everything by clicking through UI configuration screens.

It is therefore recommended to add the Deephaven configuration files to a version control system (VCS) such as Git. This allows updates to configuration files to be tested in a separate environment before deploying any configuration changes to your production Deephaven hosts.

Deephaven configuration files

The Deephaven configuration files are installed on the Deephaven server in several subdirectories under:

/etc/sysconfig/deephaven/

/etc/sysconfig/illumon -> /etc/sysconfig/illumon.confs/illumon.iris.hostconfig

/etc/sysconfig/illumon.confs -> /etc/sysconfig/deephaven/illumon.confs.latest

/etc/sysconfig/illumon.d -> /etc/sysconfig/deephaven/illumon.d.latest

M/Monit configurations

/etc/sysconfig/illumon.d/monit/*.conf

Cron configuration

/etc/cron.d/illumonRestart.cron

Deephaven process configurations

/etc/sysconfig/illumon.d/resources/*.prop

Authentication configurations

/etc/sysconfig/illumon.d/auth/*

/etc/sysconfig/illumon.d/trust/*

Schema configurations

/etc/sysconfig/illumon.d/schema/*/*.schema

Editing configuration / properties files

Deephaven can be customized by editing the configuration files. Property files (.prop) are plain text and can be edited with any local text editor such as vi or emacs. When a configuration file is changed, the affected Deephaven processes need to be restarted.

Property files are stored in etcd.

  1. Export the property file from etcd.
  2. Edit the text file locally.
  3. Import the edited file into etcd.

Edit iris-endpoints.prop

/usr/illumon/latest/bin/dhconfig properties export --directory /tmp iris-endpoints.prop

vi /tmp/iris-endpoints.prop

sudo -u irisadmin /usr/illumon/latest/bin/dhconfig properties import /tmp/iris-endpoints.prop

Edit iris-environment.prop

/usr/illumon/latest/bin/dhconfig properties export --directory /tmp iris-environment.prop

vi /tmp/iris-environment.prop

sudo -u irisadmin /usr/illumon/latest/bin/dhconfig properties import /tmp/iris-environment.prop

Truststore configuration file permissions

The truststore files are located in:

/etc/sysconfig/illumon.d/trust/

File owner and group should match the following table:

Auth File NameOwnerGroupPermissions
truststore-iris.p12irisadminirisadmin-r--r--r--
truststore-iris.pemirisadminirisadmin-r--r--r--

Keystore and authentication configuration file permissions

The authentication configuration files require more restrictive permissions.

These files are located in:

/etc/sysconfig/illumon.d/auth/

File owner and group should match the following table:

Auth File NameOwnerGroupPermissions
keystore.authserver.p12irisadminirisadmin-r--------
keystore.configuration_server.p12irisadminirisadmin-r--------
webServices-keystore.p12irisadminirisadmin-r--------
priv-iris.base64.txtirisadminirisadmin-r--------
priv-merge.base64.txtdbmergedbmerge-r--------
priv-superuser.base64.txtirisadminirisadmin-r--------