Move jobs to operator
This MR is based on !516 (merged)
It basically moves the jobs (migrations, shared-secrets) to the operator. Meaning that helm will only be used for templating the yaml manifests used for this job but the creation and management of the job becomes a responsibility of the operator and not tiller.
How does that work?
The needed manifests are moved to files with names prefixed by _
to prohibit helm from attempting to install them. Thes files are included after being templated by helm into configmaps.
The operator reads the configmaps and attempts to apply every one of them using the kubeclient. Applying them goes in order that is known to the operator. For example we need to install rbac service account, rolebindings .. etc before actually attempting to run the shared-secrets.
Can this be disabled
Yes, disable the operator and helm will install the jobs like before
Any known limitations?
If you installed using this method and then decided to revert back to helm it will fail because we do not do cleanups properly. https://gitlab.com/gitlab-org/distribution/gitlab-operator/issues/30 has been logged for that and we agreed that it is not a blocker for this MR