GOAL: Document a deployment plan for the maps internationalization feature that we can confidently execute **without causing any downtime** and that **supports rollback** if anything goes wrong.
Proposed plan:
# [x] Introduce 'kartotherian_storage_id' and 'tilerator_storage_id' hiera variables with the current value of 'storage_id' (v3) and use them for their respective services.
# Deploy tilerator@i18n (it should be using keyspace `vN+1`)
## create [[ https://github.com/kartotherian/cassandra/blob/master/CassandraStore.js#L88-L91 | keyspace vN+1 ]] and [[ https://github.com/kartotherian/cassandra/blob/master/CassandraStore.js#L98-L106 | tiles table ]] in cassandra
## Make sure pg has the [[ https://github.com/kartotherian/osm-bright.tm2source/blob/master/sql/names.sql | extract_names ]] function
## Stop tilerator, tileratorui, planet_sync-gis
## Set 'tilerator_storage_id' to vN+1 (maybe force a puppet run on all tilerator nodes)
## deploy tilerator@i18n
# Regenerate all tiles. In the meantime, kartotherian is serving tiles from keyspace `vN`, they may be getting a bit stale but that's ok
# Deploy kartotherian@i18n and start serving tiles from keyspace `vN+1`
# Invalidate varnish cache
# Eventually drop keyspace `vN` to save space
# Set a single 'storage_id' variable that contains `vN+1` and is used by both tilerator and kartotherian
Alternate ending (after: Deploy kartotherian@i18n):
# Redeploy kartotherian (non-i18n) and serve tiles from keyspace `vN`
# Redeploy tilerator (non-i18n) and find a way to re-process old osm updates
All questions/comment/simplifications/warnings/etc are welcome.