production: Assess pros/cons of migrating static services to kubernetes
This only deals with the production environment.
Goals
Keep up with upstream upgrades. We currently cannot (for example netbox is late 1)
Upgrade should be transparent (without downtime). There is currently no rolling upgrade on most of our services (that comes defacto with kubernetes).
Impacts
- Charts development
- Data migration from previous backends to the ones managed in kubernetes
Assessment plan
- make a list of the tools/services deployed as VMs (next chapter 2)
- for each tool/service
- look into whether container images, helm chart, etc... exist;
- sketch what the kube deployment would look like;
- make a plan for migrating the data into the kube deployment (manual restore of the db, I don't know what);
- then compare that work with current puppet-based maintenance is ok
Services
List of tools/services deployed per vm in the admin realm.
|----------------+-------------------------------------------+-------------------------------+----------------+------------------------------------|
| Service | Purpose | Current running on vms | Clients | Note |
|----------------+-------------------------------------------+-------------------------------+----------------+------------------------------------|
| rabbitmq | swh workers messages | saatchi.production | swh services | |
| redis | swh counters | counters1.production | swh services | |
| reverse-proxy | // | moma | swh services | |
| add-forge-now | add-forge-now workers | runner0.staging | swh services | same as staging |
| maven-exporter | maven index and exposition worker | maven-exporter.production | sysop services | stale |
| elasticsearch | elasticsearch backend for swh-search | search-esnode[4-6].production | swh services | |
| ancillary dbs | postgresql databases for various backends | albertina.production | swh services | |
| swh replica db | postgresql db for the archive storage | massmoca.production | swh services | probably outside the scope of this |
|----------------+-------------------------------------------+-------------------------------+----------------+------------------------------------|
Existing
- Postgresql db can be managed in kube (but it's not completely assessed either).