How can we perform upgrades to Kubernetes components without humans committing code
Problem
In order to perform an upgrade of a component of GitLab running in Kubernetes, a human must take a version that they desire to upgrade too, place it inside of a file in [k8s-workloads/gitlab], commit, and wait for CI. How can we rid of the human step?
Solutions
Option 1 - CI Variables
Utilize CI variables during the helm template process to inject the correct desired version inside of the helm upgrade procedure
Rejected in favor of option 3: #552 (comment 245344573)
Option 2 - Set a config map or secret Kubernetes Object
Set a configuration object inside of Kubernetes that is read when the deployment is upgraded such that we always pull the desired version
Rejected in favor of option 3: #552 (comment 245344573)
Option 3 - Something else does the committing of code
Something else watches and monitors for upgrades to the mailroom version to be utilized. This something else will then be the responsible subject for creating the commit to upgrade which triggers a deploy.