Create a Kubernetes Operator able to orchestrate draining traffic, upgrading,
testing, traffic rollout…
The main lesson learned from this POC is the ability to use the helm rendering
to provide a unified way of delivering scripts onto a platform and at
runtime selectively decide which part of the chart to render according to the
state of the service which lifecycle may not match exactly the lifecycle of a
helm chart (i.e install, upgrade, rollback, delete).
The Argo team published since an new subproject to argoproj called argo-rollout which seems really promising.
Currently rely on replacing the standard StatefulSet by an Argo Rollout deployement object
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 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.