Story #13996
closed[API] Migrate RailsAPI to new cluster config file
100%
Description
This will enable an operator to move their configs from their existing RailsAPI configuration file (/etc/arvados/api/application.yml
) to their cluster config file (/etc/arvados/config.yml
), then delete the RailsAPI-specific file.
Features needed:
- The old Rails-only configuration file has precedence (otherwise, merely upgrading to this version could cause unanticipated config changes).
- The operator can easily find out whether deleting their legacy config file would affect their runtime configuration.
- The operator can delete their legacy config file.
Suggested implementation:
At startup:- Load new cluster config defaults from static file included in package (this can be in the RailsAPI subtree for now, although in the future all arvados components will ship with a copy of it)
- Load new cluster config from
/etc/arvados/config.yml
- Load legacy config
/etc/arvados/api/application.yml
/config/application.yml
- Copy legacy config keys to equivalent cluster config keys
Update Rails.configuration
references to use the corresponding keys in the new config.
- "dump": load configuration (as above) and write the resulting config to stdout/file. This is the quickest way for the operator to make the legacy config file superfluous so it can be deleted.
- "diff": show the changes made by the "copy legacy config keys" step. This suits an operator who wants to update their new config incrementally and/or preserve comments in their new config.
NOT included here:
- mechanism to split config into multiple files/fragments ("include")
- mechanism to overlay multiple configs (like the legacy config does with "common" + "production" sections)
- mechanism to avoid storing secrets in the config file
- update other components to read RailsAPI configs from the cluster config file instead of the discovery document
Added by Peter Amstutz over 5 years ago
Added by Peter Amstutz over 5 years ago
Set secrets.secret_key_base refs #13996
Arvados-DCO-1.1-Signed-off-by: Peter Amstutz <pamstutz@veritasgenetics.com>
Added by Peter Amstutz over 5 years ago
Merge, don't replace RemoteClusters refs #13996
Arvados-DCO-1.1-Signed-off-by: Peter Amstutz <pamstutz@veritasgenetics.com>
Added by Peter Amstutz over 5 years ago
Merge branch '15119-api-config-fixes'
Arvados-DCO-1.1-Signed-off-by: Peter Amstutz <pamstutz@veritasgenetics.com>
refs #13996
refs #15119
Added by Peter Amstutz over 5 years ago
Handle unrecognized uuid_prefix of remote host refs #13996
Arvados-DCO-1.1-Signed-off-by: Peter Amstutz <pamstutz@veritasgenetics.com>
Added by Peter Amstutz over 5 years ago
Fix mistake setting container_count_max from wrong config parameter
refs #13996
Arvados-DCO-1.1-Signed-off-by: Peter Amstutz <pamstutz@veritasgenetics.com>
Added by Ward Vandewege over 5 years ago
Do not blow up when Rails.configuration.Users.UserProfileNotificationAddress is
set to the empty string, which is the default since #13996 (it defaulted to a
dummy e-mail adress before).
refs #15286
refs #13996
Arvados-DCO-1.1-Signed-off-by: Ward Vandewege <wvandewege@veritasgenetics.com>
Added by Ward Vandewege over 5 years ago
Do not blow up when Rails.configuration.Users.UserProfileNotificationAddress is
set to the empty string, which is the default since #13996 (it defaulted to a
dummy e-mail adress before).
refs #15286
refs #13996
Arvados-DCO-1.1-Signed-off-by: Ward Vandewege <wvandewege@veritasgenetics.com>
Merge branch '13996-new-api-config' refs #13996
Arvados-DCO-1.1-Signed-off-by: Peter Amstutz <pamstutz@veritasgenetics.com>