- Easy to implement.
- Tags are not used to express internal properties. A customer could set the
smartdc_role=nfsvolumestorage
tag at in stance creation time. So we'd have to special case this tag to not allow customers to set. This feels inconsistent with other tags.
- Is actually internal, so cannot be set by customers.
- Not sure if the semantics would be clear with regards to
internal_metadata
properties that are arrays and objects. What would it mean to search on e.g thedocker:cmd
,docker:env
orsdc:volumes
internal_metadata
properties?
Would a request like:
sdc-vmapi /vms?internal_metadata.docker:cmd=ls
match a docker:cmd
internal_metadata of "[\"ls\",\"/data\"]"
?
What about wanting to match the whole ls /data
command? How would that work?
- Implement searchable
internal_metadata
in VMAPI. That would require storing a copy of internal metadata in Moray that is searchable. Similar to what ZAPI-737 would be for tags.
This was the original design for RFD 26, but we moved to using the
smartdc_role
tag due to a misunderstanding. See
https://github.com/joyent/rfd/commit/933cef2bdcd2fb1a13cd7cb70e3b6cdb3c691c58
for the commits that changed that.
- Is actually internal, so cannot be set by customers.
- Simple to implement, without potential issues that
tags
andinternal_metadata
would have.
-
Not clear whether all the semantics are well defined and whether this should be applied to other VMs: would NAT and core services zone use that field?
If so, would we need to move existing NAT and core services' VMs from using tags to using the new
internal_role
field? If yes, we'd need to have a data migration mechanism for this, which IIUC is not currently done by any service of Triton and would require a significant amount of work given all usage ofsmartdc_role
: https://github.com/search?p=10&q=org%3Ajoyent+smartdc_role&type=Code.Would that need to be designed at the same time this feature is added, or could these use cases be implemented later?
- Internal, cannot be set by customers.
- Simple to implement.
- Seems too specific.