Date: 05/06/2018
✅ Accepted
As we are building our new platform on Kubernetes we have already found the need to build quite a few clusters. These have been for a range of purposes including users, testing new ideas ("sandbox"), testing new functionality ("test"), deploying apps to them ("non-production").
As we are still learning we are finding that:
- we need to continue building new clusters for different purposes and
- we often need to test the cluster creation process
- we want to differentiate between clusters that have users on them and those that are for internal testing purposes
- we do not want to differentiate cluster by function (e.g. "perf-test", "sandbox") or status ("non-production").
To make this easier we propose having a naming scheme that makes it easy to understand whether users are on that cluster but makes no other assumptions about what it is used for.
We will name all clusters with the following naming scheme:
live-{n}
for any cluster that have users on them, for instancelive-1
.test-{n}
for any cluster that do not have users on them and are used by the cloud platform team only, for instancetest-2
.
We will number the clusters sequentially.
- Any new clusters that are built use this naming scheme (the first one using it is
live-1
) - We delete the current clusters:
sandbox
,test
andnon-production
and transition users and functions to new clusters (non-production
tolive-0
,sandbox
andtest
to a new cluster calledtest-0
) - We keep a central record of:
- The names of all clusters that we run
- If it has a particular function, what each cluster is for