1/ and 2/ are working well but are installing a lot of re-packaged software like nginx, postgresql, redis, prometheus, grafana.
It will force us to implement some login in our puppet code to manage the configuration as they are managed in the gitlab way.
Zero-downtime upgrades are not possible with a single-node deployment and must manually managed if a multi-node deployment is configured
3/ The deployed component are finely tunable and only the activated components will be deployed in the cluster.
The zero-downtime upgrade is not yet implemented with this kind of deployment [1]
The upgrades are completely managed through the helm chart and are resumed to a one liner upgrade
4/ The gitlab operator is not yet production ready but is under active development. The viable version[2] is scheduled for may so should be available before our final migration.
The gitlab operator is using the helm chart but manage all the life cycle of the deployed components.
The biggest advantage is the upgrade are fully managed by the operator and are performed with zero downtime.
According to the tests with an AKS cluster, a minimal configuration with enough dynamic redundancy to allow the upgrades should cost around ~300
/m without the storage (probably Roadmap 2021
/m)
The next step is to test a deployment though terraform, and what kind of monitoring we could implement.
A restoration of the azure instance on our infra was successfully performed [1].
Everything is well imported: users, repositories, issues, ...
The usage of a quick and dirty longhorn storage seems to make the instance slower than azure but the performance was not the goal of this POC.
I used this test to initialize a rancher instance allowing to manage our future internal kubernetes clusters [2].
#4144 (closed) will be used to test if it will be possible to manage the clusters and their nodes with terraform.