Situation
Currently we are manually deploying by either running helm install/or updating image tags manually. We should move towards automatically deploying.
Current potentially problems
- we are using "latest" tags, this is generally seen as a bad idea as its difficult to determine what version of the code base you are currently running. This typically can cause stability issues and mismatched versions when running a service based architecture
- We are deploying everything from a single helm chart, but releasing everything separately. We should either deploy everything together and build everything together or build everything separate and deploy everything separate. I'm open to either way. The caveat on the second is that it would be preferable to move to kustomize bases than to use helm as we could have an inheritance model instead of a templated model (its also the age old conversation of declarative versus imperative configuration, helm is imperative, kustomize is declarative). There is also the issue that if we are to keep everything together in a single helm chart and deploy them together then we will need to pull all of their CI/CD into a single workflow. The reason being that Github actions does not have a very clean way of workflows depending on other workflows.
- Secrets are manually generated, while we can leave this as is for now we should look into something like External Secret Operator where we can use manifests to generate our secrets from a secret store
Proposal
- as a first pass we can just use a google service account in github CI/CD to deploy
- I really suggest deploying services independently, we can get to this quickly by helm templating out our current configurations into a kustomize bases (I highly recommend kustomize over helm as it will reduce templating and complexity of our deployment charts). This will allow us to set image tags in the CI/CD and commit them back to main branch as part of the release
Situation
Currently we are manually deploying by either running helm install/or updating image tags manually. We should move towards automatically deploying.
Current potentially problems
Proposal