Project

General

Profile

Actions

Feature #17696

closed

Exported config has default storage class(es), SDKs use the configured default storage class if not overridden

Added by Peter Amstutz almost 3 years ago. Updated over 2 years ago.

Status:
Resolved
Priority:
Normal
Assigned To:
Category:
Keep
Target version:
Story points:
3.0
Release relationship:
Auto

Description

Use case: the default storage classes should be configurable in the config file, and there can be more than one.

  • api/controller reads Collections/DefaultStorageClasses map[string]bool. The default value should be {"default":true} (aka one storage class named "default").
  • out of the box, if Collections/DefaultStorageClasses is empty, and Volumes/XXXX/StorageClasses is empty, the implied value for both of those is "default". This should be done as part of config load. Using config-dump will show these "default" values. The config on the website will just have this listed in the comments, not in the sample config file.
  • when new collections are stored (and no storage classes are requested) the default values should be added to the desired storage classes
  • update those clients that send "default" as the storage class to send nothing instead
  • need a migration? for existing collections with storage class "default". Add a python recipe to the cookbook to change a particular storage class (e.g. "default") to something else.
  • add some tests
  • validation on the config-check:
    - Make sure the default class(es) are implemented by a volume.
    - If the config mentions an explicit storage class on a volume, all volumes must have storage classes defined (warning or error?) and Collections/DefaultStorageClasses must be set explicitly.

This gives us a short configuration (nothing set) that implies "default" in the simple case, but as soon as someone adds an additional storage class, we protect them from mistakes by forcing them to be explicit about all the storage classes in use.


Subtasks 1 (0 open1 closed)

Task #17979: Review 17696-gosdk-default-storage-classResolvedPeter Amstutz08/19/2021Actions

Related issues

Related to Arvados Epics - Idea #16107: Storage classesResolved03/01/202109/30/2021Actions
Blocked by Arvados - Task #17978: Add storage class default/priority fields to config + exported configResolvedTom Clegg08/05/2021Actions
Blocked by Arvados - Feature #17967: Prioritize reads from different storage classesResolvedTom Clegg08/05/2021Actions
Actions

Also available in: Atom PDF