diff --git a/roles/kubernetes-apps/helm/defaults/main.yml b/roles/kubernetes-apps/helm/defaults/main.yml
index 1042b985c1285d8b006617ac2785962bc562e1b8..d4fc904d9f84130ec041378b73d2faa9d516ad1e 100644
--- a/roles/kubernetes-apps/helm/defaults/main.yml
+++ b/roles/kubernetes-apps/helm/defaults/main.yml
@@ -45,3 +45,9 @@ tiller_namespace: kube-system
 
 # Limit the maximum number of revisions saved per release. Use 0 for no limit.
 # tiller_max_history: 0
+
+# The name of the tiller service account
+tiller_service_account: tiller
+
+# The number of tiller pod replicas. If not defined, tiller defaults to a single replica
+# tiller_replicas: 1
diff --git a/roles/kubernetes-apps/helm/tasks/main.yml b/roles/kubernetes-apps/helm/tasks/main.yml
index 754ef74ebfc4b4b9404788d86a285d816439787c..83bedb38bd796a89be8361d21caab417958b2f2b 100644
--- a/roles/kubernetes-apps/helm/tasks/main.yml
+++ b/roles/kubernetes-apps/helm/tasks/main.yml
@@ -59,7 +59,7 @@
     {% if helm_skip_refresh %} --skip-refresh{% endif %}
     {% if helm_stable_repo_url is defined %} --stable-repo-url {{ helm_stable_repo_url }}{% endif %}
     --upgrade --tiller-image={{ tiller_image_repo }}:{{ tiller_image_tag }}
-    {% if rbac_enabled %} --service-account=tiller{% endif %}
+    {% if rbac_enabled %} --service-account={{ tiller_service_account }}{% endif %}
     {% if tiller_node_selectors is defined %} --node-selectors {{ tiller_node_selectors }}{% endif %}
     --override spec.template.spec.priorityClassName={% if tiller_namespace == 'kube-system' %}system-cluster-critical{% else %}k8s-cluster-critical{% endif %}
     {% if tiller_override is defined and tiller_override %} --override {{ tiller_override }}{% endif %}
@@ -68,6 +68,7 @@
     {% if tiller_secure_release_info %} --override 'spec.template.spec.containers[0].command'='{/tiller,--storage=secret}' {% endif %}
     --override spec.selector.matchLabels.'name'='tiller',spec.selector.matchLabels.'app'='helm'
     {% if tiller_wait %} --wait{% endif %}
+    {% if tiller_replicas is defined %} --replicas {{ tiller_replicas | int }}{% endif %}
     --output yaml
     | sed 's@apiVersion: extensions/v1beta1@apiVersion: apps/v1@'
     | {{ bin_dir }}/kubectl apply -f -
@@ -87,7 +88,7 @@
     {{ bin_dir }}/helm init --upgrade --tiller-image={{ tiller_image_repo }}:{{ tiller_image_tag }} --tiller-namespace={{ tiller_namespace }}
     {% if helm_skip_refresh %} --skip-refresh{% endif %}
     {% if helm_stable_repo_url is defined %} --stable-repo-url {{ helm_stable_repo_url }}{% endif %}
-    {% if rbac_enabled %} --service-account=tiller{% endif %}
+    {% if rbac_enabled %} --service-account={{ tiller_service_account }}{% endif %}
     {% if tiller_node_selectors is defined %} --node-selectors {{ tiller_node_selectors }}{% endif %}
     --override spec.template.spec.priorityClassName={% if tiller_namespace == 'kube-system' %}system-cluster-critical{% else %}k8s-cluster-critical{% endif %}
     {% if tiller_override is defined and tiller_override %} --override {{ tiller_override }}{% endif %}
@@ -96,6 +97,7 @@
     {% if tiller_secure_release_info %} --override 'spec.template.spec.containers[0].command'='{/tiller,--storage=secret}' {% endif %}
     --override spec.selector.matchLabels.'name'='tiller',spec.selector.matchLabels.'app'='helm'
     {% if tiller_wait %} --wait{% endif %}
+    {% if tiller_replicas is defined %} --replicas {{ tiller_replicas | int }}{% endif %}
     --output yaml
     | sed 's@apiVersion: extensions/v1beta1@apiVersion: apps/v1@'
     | {{ bin_dir }}/kubectl apply -f -
diff --git a/tests/files/packet_centos7-calico-ha.yml b/tests/files/packet_centos7-calico-ha.yml
index 526f128994c6a03efc41b481a6a7005a8e94227a..d0b488dc1860d808e1a2798b945ce2585dc992aa 100644
--- a/tests/files/packet_centos7-calico-ha.yml
+++ b/tests/files/packet_centos7-calico-ha.yml
@@ -12,3 +12,6 @@ dns_min_replicas: 1
 typha_enabled: true
 calico_backend: kdd
 typha_secure: true
+
+# Test helm 2 install
+helm_version: v2.16.7