--- layout: default navsection: admin title: Migrating Configuration ... {% comment %} Copyright (C) The Arvados Authors. All rights reserved. SPDX-License-Identifier: CC-BY-SA-3.0 {% endcomment %} Arvados is migrating to a centralized configuration file for all components. The centralized Arvados configuration is @/etc/arvados/config.yml@. Components that support the new centralized configuration are listed below. Components not listed here do not yet support centralized configuration. During the migration period, legacy configuration files will continue to be loaded and take precedence over the centralized configuration file. h2. API server The legacy API server configuration is stored in @config/application.yml@ and @config/database.yml@. After migration to @/etc/arvados/config.yml@, both of these files should be moved out of the way and/or deleted. Change to the API server directory and use the following commands:
$ RAILS_ENV=production bundle exec rake config:migrate > config.yml
$ cp config.yml /etc/arvados/config.yml
This will print the contents of @config.yml@ after merging the legacy @application.yml@ and @database.yml@ into the existing systemwide @config.yml@. It may be redirected to a file and copied to @/etc/arvados/config.yml@ (it is safe to copy over, all configuration items from the existing @/etc/arvados/config.yml@ will be included in the migrated output). If you wish to update @config.yml@ configuration by hand, or check that everything has been migrated, use @config:diff@ to print configuration items that differ between @application.yml@ and the system @config.yml@.
$ RAILS_ENV=production bundle exec rake config:diff
This command will also report if no migrations are required. h2. Workbench The legacy workbench configuration is stored in @config/application.yml@. After migration to @/etc/arvados/config.yml@, this file should be moved out of the way and/or deleted. Change to the workbench server directory and use the following commands:
$ RAILS_ENV=production bundle exec rake config:migrate > config.yml
$ cp config.yml /etc/arvados/config.yml
This will print the contents of @config.yml@ after merging the legacy @application.yml@ into the existing systemwide @config.yml@. It may be redirected to a file and copied to @/etc/arvados/config.yml@ (it is safe to copy over, all configuration items from the existing @/etc/arvados/config.yml@ will be included in the migrated output). If you wish to update @config.yml@ configuration by hand, or check that everything has been migrated, use @config:diff@ to print configuration items that differ between @application.yml@ and the system @config.yml@.
$ RAILS_ENV=production bundle exec rake config:diff
This command will also report if no migrations are required. h2. crunch-dispatch-slurm Currently only reads @InstanceTypes@ from centralized configuration. Still requires component-specific configuration file. h2. keepstore Currently only reads @RemoteClusters@ from centralized configuration. Still requires component-specific configuration file. h2(#keepproxy). keepproxy The legacy keepproxy config is stored at @/etc/arvados/keepproxy/keepproxy.yml@ by default and will continue to take precedence over the cluster config, unless removed. Also, a legacy keepproxy config in a different path can still be used with the @-legacy-keepproxy-config=path/to/legacy/config@ keepproxy command line argument. If the @-legacy-keepproxy-config@ command line argument is provided, this will take precedence over @/etc/arvados/keepproxy/keepproxy.yml@ and the cluster config. If migrating to the centralized config, @keepproxy.yml@ should be moved out of the way and/or deleted and the @-legacy-keepproxy-config@ command line argument should not be used. Configuration via individual command line arguments is no longer available. The following table maps former keepproxy command line arguments and legacy config values to their equivalent representation in the centralized config, which may need to be set manually. table(table table-bordered table-condensed). |*Command Line*|*Legacy keepproxy.yml*|*Centralized config.yml*| |-listen|Listen|Services.Keepproxy.InternalURLs| |-no-get|DisableGet|N/A| |-no-put|DisablePut|N/A| |-default-replicas|DefaultReplicas|Collections.DefaultReplication| |-pid|PIDFile|N/A| |N/A|Debug|SystemLogs.LogLevel| |-timeout|Timeout|API.KeepServiceRequestTimeout| |-management-token|ManagementToken|ManagementToken| Note that some options are no longer supported. If you are still using the legacy config at @/etc/arvados/keepproxy/keepproxy.yml@ and @DisableGet@ or @DisablePut@ are set to true or @PIDFile@ has a value, keepproxy will produce an error and fail to start. h2. arvados-controller Already uses centralized config exclusively. No migration needed. h2. arvados-dispatch-cloud Already uses centralized config exclusively. No migration needed.