Skip to content

Implement Tillerless install and uninstall

Thong Kuah requested to merge tillerless-gitlab-managed-apps into master

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

Availability and Testing

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 🤖

Merge request reports