
The CRD Phase definition is available here:
The current POC created one CRD per phase. Most of the attributes of those CRDs are common. At one point we will have to weight the pros and cons of having only one PhaseCRD or one TestPhaseCRD, TrafficRolloutCRD.
The PhaseCRD is built using the following principles:
The current PhaseCRD are currently standalone CRDs. This provides control to the phase-controller on those objects. At one point we will have to weight if we need to keep those CRDs or simply consider the Phase as nodes of an Argo Workflow.
The PhaseCRD is currently loading a yaml file. This could be a helm chart. The PhaseCRD is then owner of the subresources described in the yaml file.
a. an argo Workflow b. another CRD such as an Helm3Release or an EtcdBackup c. a simple kubernetes job, pod (utility container, script…)
The key aspect here is to be able to monitor the end of those tasks as well as the success/failure.
The HelmV2 renderer is supported. HelmV3 POC support has been added