diff --git a/ansible/roles/setup/files/k8s-config/tiller-permissions.yml b/ansible/roles/setup/files/k8s-config/tiller-permissions.yml
new file mode 100644
index 0000000000000000000000000000000000000000..d3ed1ad46e59dc90dfa95857904d4b079777e09a
--- /dev/null
+++ b/ansible/roles/setup/files/k8s-config/tiller-permissions.yml
@@ -0,0 +1,18 @@
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+  name: tiller
+  namespace: kube-system
+---
+kind: ClusterRoleBinding
+apiVersion: rbac.authorization.k8s.io/v1beta1
+metadata:
+  name: tiller-clusterrolebinding
+subjects:
+- kind: ServiceAccount
+  name: tiller
+  namespace: kube-system
+roleRef:
+  kind: ClusterRole
+  name: cluster-admin
+  apiGroup: ""
diff --git a/ansible/roles/setup/tasks/main.yml b/ansible/roles/setup/tasks/main.yml
index 2342ccb1747b308e4735cb1d8af9f23f73cc6a04..347487bf222891f34d660fd9470d792236a3aa45 100644
--- a/ansible/roles/setup/tasks/main.yml
+++ b/ansible/roles/setup/tasks/main.yml
@@ -21,10 +21,32 @@
     src: /oas/control/local/rke/kube_config_cluster.yml
     dest: /root/.kube/config
 
+- name: Install python3-pip
+  package:
+    name: python3-pip
+
+- name: Install openshift python module via pip3
+  pip:
+    name: openshift
+    executable: /usr/bin/pip3
+
 - name: Install Tiller
-  command: 'oas_control /usr/local/bin/control installTiller'
-  register: installTiller
-- debug: var=installTiller.stdout
+  k8s:
+    state: present
+    definition: "{{ lookup('file', 'k8s-config/tiller-permissions.yml') }}"
+
+- name: Check if tiller is already instaled
+  shell: '/snap/bin/helm ls || /bin/true'
+  register: helm_ls
+  changed_when: false
+
+- name: Initialize helm
+  command: /snap/bin/helm init --upgrade --service-account=tiller
+  when: helm_ls.stderr.find('Error') != -1
+
+- name: Wait for tiller to become available
+  command: /snap/bin/kubectl rollout status -n kube-system deployment/tiller-deploy
+  changed_when: false
 
 - name: Create Storage
   command: 'oas_control /usr/local/bin/control createStorage'