Config migration key mapping

Clusters:
  xyzzy:                     # api-server/uuid_prefix
    RailsSessionSecretToken: # api-server/secret_token
    UnloggedAttributes:      # api-server/unlogged_attributes
    DisableAPIMethods:       # api-server/disable_api_methods
    SuperuserToken:          # arvados-git-sync.rb/arvados_api_token
    PermitCreateCollectionWithUnsignedManifest:  # api-server/permit_create_collection_with_unsigned_manifest
    SSO:
      AppSecret:    # api-server/sso_app_secret
      AppId:        # api-server/sso_app_id
      ProviderURL:  # api-server/sso_provider_url
      Insecure:     # api-server/sso_insecure
    ServiceEndpoints:
      Workbench:    # api-server/workbench_address
      Websocket:    # api-server/websocket_address
      API:          # api-server/protocol, host, port
      KeepWeb:      # api-server/keep_web_service_url
    GitServer:
      AdminRepoURL:       # arvados-git-sync.rb/gitolite_url
      SSHUserKey:         # arvados-git-sync.rb/gitolite_arvados_git_user_key
      TmpDir:             # arvados-git-sync.rb/gitolite_tmp
      GitCommand:         # arv-git-httpd/GitCommand
      GitoliteHomeDir:    # arv-git-httpd/GitoliteHome
      RepositoriesDir:    # api-server/git_repositories_dir
      SSHBase:            # api-server/git_repo_ssh_base
      RepoHTTPSBase:      # api-server/git_repo_https_base
    Users:
      AutoSetupNewUsers:                # api-server/auto_setup_new_users
      AutoSetupNewUsersWithVmUUID:      # api-server/auto_setup_new_users_with_vm_uuid
      AutoSetupNewUsersWithRepository:  # api-server/auto_setup_new_users_with_repository
      AutoSetupUsernameBlacklist:       # api-server/auto_setup_name_blacklist
      NewUsersAreActive:                # api-server/new_users_are_active
      AutoAdminUserWithEmail:           # api-server/auto_admin_user
      AutoAdminFirstUser:               # api-server/auto_admin_first_user
      UserProfileNotificationAddress:   # api-server/user_profile_notification_address
      AdminNotifierEmailFrom:           # api-server/admin_notifier_email_from
      EmailSubjectPrefix:               # api-server/email_subject_prefix
      UserNotifierEmailFrom:            # api-server/user_notifier_email_from
      NewUserNotificationRecipients:    # api-server/new_user_notification_recipients
      NewInactiveUserNotificationRecipients:  # api-server/new_inactive_user_notification_recipients
    RequestLimits:
      MaxRequestLogParamsSize:  # api-server/max_request_log_params_size
      MaxRequestSize:           # api-server/max_request_size
      MaxIndexDatabaseRead:     # api-server/max_index_database_read
      MaxItemsPerResponse:      # api-server/max_items_per_response
    Cleaning:
      TrashSweepInterval:          # api-server/trash_sweep_interval
      CleanJobLogRowsAfter:        # api-server/clean_job_log_rows_after
      CleanContainerLogRowsAfter:  # api-server/clean_container_log_rows_after
      MaxAuditLogAge:              # api-server/max_audit_log_age
      MaxAuditLogDeleteBatch:      # api-server/max_audit_log_delete_batch
    Collections:
      BlobSigningKey:                     # api-server/blob_signing_key
      BlobSignatureTTL:                   # api-server/blob_signature_ttl
      DefaultCollectionReplication:       # api-server/default_collection_replication
      DefaultTrashLifetime:               # api-server/default_trash_lifetime
      CollectionVersioning:               # api-server/collection_versioning
      PreserveVersionIfIdle:              # api-server/preserve_version_if_idle
    Crunch:
      MaxComputeNodes:               # api-server/max_compute_nodes
      LogBytesPerEvent:              # api-server/crunch_log_bytes_per_event
      LogSecondsBetweenEvents:       # api-server/crunch_log_seconds_between_events
      LogThrottlePeriod:             # api-server/crunch_log_throttle_period
      LogThrottleBytes:              # api-server/crunch_log_throttle_bytes
      LogThrottleLines:              # api-server/crunch_log_throttle_lines
      LimitLogBytesPerJob:           # api-server/crunch_limit_log_bytes_per_job
      LogPartialLineThrottlePeriod:  # api-server/crunch_log_partial_line_throttle_period
      LogUpdatePeriod:               # api-server/crunch_log_update_period
      LogUpdateSize:                 # api-server/crunch_log_update_size
      PreemptibleInstances:          # api-server/preemptible_instances
      DefaultDockerImageForJobs:     # api-server/default_docker_image_for_jobs
      SupportedDockerImageFormats:   # api-server/docker_image_formats
      DNSServerConfDir:              # api-server/dns_server_conf_dir
      DNSServerConfTemplate:         # api-server/dns_server_conf_template
      DNSServerReloadCommand:        # api-server/dns_server_reload_command
      DNSServerUpdateCommand:        # api-server/dns_server_update_command
      ComputeNodeDomain:             # api-server/compute_node_domain
      ComputeNodeNameservers:        # api-server/compute_node_nameservers
      AssignNodeHostname:            # api-server/assign_node_hostname
      LogReuseDecisions:             # api-server/log_reuse_decisions
      ReuseJobIfOutputsDiffer:       # api-server/reuse_job_if_outputs_differ
      ContainerCountMax:             # api-server/container_count_max
      ContainerDefaultKeepCacheRAM:  # api-server/container_default_keep_cache_ram

      v1:
        EnableLegacyJobsAPI:   # api-server/enable_legacy_jobs_api
        CrunchJobWrapper:      # api-server/crunch_job_wrapper
        CrunchJobUser:         # api-server/crunch_job_user
        CrunchRefreshTrigger:  # api-server/crunch_refresh_trigger
        GitInternalDir:        # api-server/git_internal_dir

Not sure if these keys belong in arvados config:

  • api-server/arvados_theme
  • api-server/source_version
  • api-server/package_version
  • api-server/encoding
  • api-server/assets.enabled
  • api-server/assets.version

There's also some more Rails-specific configuration items

Obsolete keys?

  • api-server/websocket_max_connections
  • api-server/websocket_max_notify_backlog
  • api-server/websocket_max_filters
  • api-server/async_permissions_update