Background
At the moment, Cloud Pipeline allows to tag compute resources in the target cloud provider using global configuration only (defined via cluster.networks.config).
It would be useful to add some of the user/toolset specific tags.
Approach
Introduce a new preference cluster.instances.tags (object, visible, default - see example below). Shall be json config, defining how an instance shall be tagged, according to a run information (if one of the fields is not specified - that tag shall not be set):
{
"owner": "CP_OWNER", # Username of a run owner
"run_id": "CP_RUN_ID", # Integer ID of a run
"tool": "CP_TOOL" # Docker image of a tool used for a run
# Tool's FQDN, verify if there are any restrictions from the Cloud Provide side for spec. symbols
# If not support by the Cloud - replace all non-alphanum chars with hyphens.
}
Tool's metadata shall be used to tag compute resources as well. An admin (ROLE_ADMIN only) shall be able to set which metadata entities shall be used to pass as a tag to an instance. I.e. if a tool as a metadata entry TOOL_ID: 123 and TOOL_ID is marked as Pass as a Cloud tag - respective instances and disks shall be tagged with a TOOL_ID.
Note: all the tags shall be reassigned when an instance is reused for a different run.
Background At the moment, Cloud Pipeline allows to tag compute resources in the target cloud provider using global configuration only (defined via
cluster.networks.config
). It would be useful to add some of the user/toolset specific tags.Approach
cluster.instances.tags
(object, visible, default - see example below). Shall be json config, defining how an instance shall be tagged, according to a run information (if one of the fields is not specified - that tag shall not be set):ROLE_ADMIN
only) shall be able to set which metadata entities shall be used to pass as a tag to an instance. I.e. if a tool as a metadata entryTOOL_ID: 123
andTOOL_ID
is marked asPass as a Cloud tag
- respective instances and disks shall be tagged with aTOOL_ID
.