Skip to content

Orchestrator pod volume refactor

Related tasks

Context

Orchestrator Pods use volumes that can be mounted within containers in order to inject information and connect containers to external services. The current implementation is only limited to a single type of volume, which is proving problematic in an application that currently requires more than one type of volume in order to work properly.

Change

A complete overhaul of the Volume system has been implemented.

  • A Volume interface is defined. This interface only provides some generic information about the volume.
  • A BaseVolume Volume implementation is provided. This implementation is intended to be embedded in specific volume types.
  • Two specific volume types have been introduced: VolumeHostPath and VolumeConfiguration. The design philosophy behind specific volume types is that they act as information containers that can then be translated into a concrete volume type in a pods implementation (e.g. Kubernetes).
  • A Kubernetes parser for specific types has been implemented. This parser receives a generic volume and returns a concrete, specific volume instance that can be used inside a Kubernetes pod spec.

Future Pod component implementations will have to implement their own parsers that convert the generic volume types into implementation specific volumes.

Other information

Additional documentation

Edited by Alejo Carballude

Merge request reports