netgroup-polito/CrownLabs

Instance operator refactoring

giorio94 opened this issue · 1 comments

Overview

This issue summarizes the main tasks towards the instance operator refactoring, for increased robustness and modularity.

Task list

  • Rationalize the usage of the CreateOrUpdate function;
  • Replace the deprecated setInstanceStatus with a single update at the end of the reconcile;
  • Replace the custom VM readiness check with a proper readiness probe;
  • Move the DataVolume definition to the VM spec, instead of a separated object;
  • Move all resource definitions to the forge package, split in smaller units for easier reuse;
  • Migrate to structured logging;
  • Increment the test coverage;
  • Standardise file/dirs/package names;

Additional information

CreateOrUpdate guidelines

As for the CreateOrUpdate usage, it is necessary to balance between resource enforcement and user disruption. For this reason, it is suggested the following:

  • Do not modify those specs (e.g., deployment/VM templates) which would cause the restart of the user environment;
  • Do enforce the various metadata information (labels, annotations, references), while ensuring user values are conserved;
  • Vary the approach in the other cases depending on the specific situation, trying to reduce disruption in case the logic changed after a new release. Document whatever approach is selected for future information.

Closing, as fully addressed