Implement Tillerless install and uninstall
What does this MR do?
Implements Tillerless method of installing GitLab-managed apps. This obviates the need to install Helm Tiller!
Works even if Helm Tiller was previously installed!
Feature flagged (disabled) as FE support forthcoming
Motivation
- One less thing to remove when we transition to CI based installs
- One less thing to remove when we transition to Helm v3 (which no longer has a installed Helm Tiller Pod)
Does this MR meet the acceptance criteria?
Conformity
- [-] Changelog entry
- [-] Documentation (if required)
-
Code review guidelines -
Merge request performance guidelines -
Style guides - [-] Database guides
-
Separation of EE specific content
Availability and Testing
-
Review and add/update tests for this feature/bug. Consider all test levels. See the Test Planning Process. - [-] Tested in all supported browsers
Install of runner (even with Helm Tiller installed):
$ kc logs -f install-runner -n gitlab-managed-apps
+ export 'HELM_HOST=localhost:44134'
+ helm init --client-only
+ tiller -listen localhost:44134 -alsologtostderr
Creating /root/.helm
Creating /root/.helm/repository
Creating /root/.helm/repository/cache
Creating /root/.helm/repository/local
Creating /root/.helm/plugins
Creating /root/.helm/starters
Creating /root/.helm/cache/archive
Creating /root/.helm/repository/repositories.yaml
Adding stable repo with URL: https://kubernetes-charts.storage.googleapis.com
[main] 2019/11/28 03:09:00 Starting Tiller v2.16.1 (tls=false)
[main] 2019/11/28 03:09:00 GRPC listening on localhost:44134
[main] 2019/11/28 03:09:00 Probes listening on :44135
[main] 2019/11/28 03:09:00 Storage driver is ConfigMap
[main] 2019/11/28 03:09:00 Max history per release is 0
Adding local repo with URL: http://127.0.0.1:8879/charts
$HELM_HOME has been configured at /root/.helm.
Not installing Tiller due to 'client-only' flag having been set
+ helm repo add runner https://charts.gitlab.io
"runner" has been added to your repositories
+ helm repo update
Hang tight while we grab the latest from your chart repositories...
...Skip local chart repository
...Successfully got an update from the "runner" chart repository
...Successfully got an update from the "stable" chart repository
Update Complete.
+ helm upgrade runner runner/gitlab-runner --install --reset-values --version 0.11.0 --set 'rbac.create=true,rbac.enabled=true' --namespace gitlab-managed-apps -f /data/helm/runner/config/values.yaml
[tiller] 2019/11/28 03:09:06 getting history for release runner
[storage] 2019/11/28 03:09:06 getting release history for "runner"
Release "runner" does not exist. Installing it now.
[tiller] 2019/11/28 03:09:06 preparing install for runner
[storage] 2019/11/28 03:09:06 getting release history for "runner"
[tiller] 2019/11/28 03:09:06 rendering gitlab-runner chart using values
2019/11/28 03:09:06 info: manifest "gitlab-runner/templates/hpa.yaml" is empty. Skipping.
[tiller] 2019/11/28 03:09:06 performing install for runner
[tiller] 2019/11/28 03:09:06 executing 0 crd-install hooks for runner
[tiller] 2019/11/28 03:09:06 hooks complete for crd-install runner
[tiller] 2019/11/28 03:09:06 executing 0 pre-install hooks for runner
[tiller] 2019/11/28 03:09:06 hooks complete for pre-install runner
[storage] 2019/11/28 03:09:06 getting release history for "runner"
[storage] 2019/11/28 03:09:06 creating release "runner.v1"
[kube] 2019/11/28 03:09:06 building resources from manifest
[kube] 2019/11/28 03:09:06 creating 6 resource(s)
[tiller] 2019/11/28 03:09:06 executing 0 post-install hooks for runner
[tiller] 2019/11/28 03:09:06 hooks complete for post-install runner
[storage] 2019/11/28 03:09:06 updating release "runner.v1"
NAME: runner
[storage] 2019/11/28 03:09:06 getting last revision of "runner"
[storage] 2019/11/28 03:09:06 getting release history for "runner"
[kube] 2019/11/28 03:09:07 Doing get for Secret: "runner-gitlab-runner"
[kube] 2019/11/28 03:09:07 get relation pod of object: gitlab-managed-apps/Secret/runner-gitlab-runner
[kube] 2019/11/28 03:09:07 Doing get for ConfigMap: "runner-gitlab-runner"
[kube] 2019/11/28 03:09:07 get relation pod of object: gitlab-managed-apps/ConfigMap/runner-gitlab-runner
[kube] 2019/11/28 03:09:07 Doing get for ServiceAccount: "runner-gitlab-runner"
[kube] 2019/11/28 03:09:07 get relation pod of object: gitlab-managed-apps/ServiceAccount/runner-gitlab-runner
[kube] 2019/11/28 03:09:07 Doing get for Role: "runner-gitlab-runner"
[kube] 2019/11/28 03:09:07 get relation pod of object: gitlab-managed-apps/Role/runner-gitlab-runner
[kube] 2019/11/28 03:09:07 Doing get for RoleBinding: "runner-gitlab-runner"
[kube] 2019/11/28 03:09:07 get relation pod of object: gitlab-managed-apps/RoleBinding/runner-gitlab-runner
[kube] 2019/11/28 03:09:07 Doing get for Deployment: "runner-gitlab-runner"
[kube] 2019/11/28 03:09:07 get relation pod of object: gitlab-managed-apps/Deployment/runner-gitlab-runner
LAST DEPLOYED: Thu Nov 28 03:09:06 2019
NAMESPACE: gitlab-managed-apps
STATUS: DEPLOYED
RESOURCES:
==> v1/ConfigMap
NAME AGE
runner-gitlab-runner 1s
==> v1/Deployment
NAME AGE
runner-gitlab-runner 1s
==> v1/Role
NAME AGE
runner-gitlab-runner 1s
==> v1/RoleBinding
NAME AGE
runner-gitlab-runner 1s
==> v1/Secret
NAME AGE
runner-gitlab-runner 1s
==> v1/ServiceAccount
NAME AGE
runner-gitlab-runner 1s
Uninstall of runner (even with Helm Tiller installed):
+ export 'HELM_HOST=localhost:44134'
+ helm init --client-only
+ tiller -listen localhost:44134 -alsologtostderr
Creating /root/.helm
Creating /root/.helm/repository
Creating /root/.helm/repository/cache
Creating /root/.helm/repository/local
Creating /root/.helm/plugins
Creating /root/.helm/starters
Creating /root/.helm/cache/archive
Creating /root/.helm/repository/repositories.yaml
Adding stable repo with URL: https://kubernetes-charts.storage.googleapis.com
[main] 2019/11/28 04:26:50 Starting Tiller v2.16.1 (tls=false)
[main] 2019/11/28 04:26:50 GRPC listening on localhost:44134
[main] 2019/11/28 04:26:50 Probes listening on :44135
[main] 2019/11/28 04:26:50 Storage driver is ConfigMap
[main] 2019/11/28 04:26:50 Max history per release is 0
Adding local repo with URL: http://127.0.0.1:8879/charts
$HELM_HOME has been configured at /root/.helm.
Not installing Tiller due to 'client-only' flag having been set
+ helm delete --purge runner
[storage] 2019/11/28 04:26:52 getting release history for "runner"
[tiller] 2019/11/28 04:26:52 uninstall: Deleting runner
[tiller] 2019/11/28 04:26:52 executing 0 pre-delete hooks for runner
[tiller] 2019/11/28 04:26:52 hooks complete for pre-delete runner
[storage] 2019/11/28 04:26:52 updating release "runner.v1"
[kube] 2019/11/28 04:26:52 Starting delete for "runner-gitlab-runner" Deployment
[kube] 2019/11/28 04:26:52 Starting delete for "runner-gitlab-runner" RoleBinding
[kube] 2019/11/28 04:26:52 Starting delete for "runner-gitlab-runner" Role
[kube] 2019/11/28 04:26:52 Starting delete for "runner-gitlab-runner" ServiceAccount
[kube] 2019/11/28 04:26:52 Starting delete for "runner-gitlab-runner" ConfigMap
[kube] 2019/11/28 04:26:52 Starting delete for "runner-gitlab-runner" Secret
[tiller] 2019/11/28 04:26:52 executing 0 post-delete hooks for runner
[tiller] 2019/11/28 04:26:52 hooks complete for post-delete runner
[tiller] 2019/11/28 04:26:52 purge requested for runner
[storage] 2019/11/28 04:26:52 deleting release "runner.v1"
release "runner" deleted
Edited by 🤖 GitLab Bot 🤖