add helm-tiller as addon

Change-Id: If55918227e84d128229bdaf83291e3688a633848
diff --git a/README.rst b/README.rst
index ddf734c..6ff7840 100644
--- a/README.rst
+++ b/README.rst
@@ -32,6 +32,18 @@
             cni:
               image: calico/cni
 
+Enable helm-tiller addons
+
+.. code-block:: yaml
+
+    parameters:
+      kubernetes:
+        master:
+          addons:
+            helm:
+              enabled: true
+
+
 Pass aditional parameters to daemons:
 
 .. code-block:: yaml
diff --git a/kubernetes/files/kube-addons/helm/helm-tiller-deploy.yml b/kubernetes/files/kube-addons/helm/helm-tiller-deploy.yml
new file mode 100644
index 0000000..8c452e0
--- /dev/null
+++ b/kubernetes/files/kube-addons/helm/helm-tiller-deploy.yml
@@ -0,0 +1,63 @@
+{%- from "kubernetes/map.jinja" import master with context %}
+apiVersion: extensions/v1beta1
+kind: Deployment
+metadata:
+  annotations:
+  labels:
+    app: helm
+    name: tiller
+  name: tiller-deploy
+  namespace: kube-system
+spec:
+  replicas: 1
+  selector:
+    matchLabels:
+      app: helm
+      name: tiller
+  template:
+    metadata:
+      labels:
+        app: helm
+        name: tiller
+    spec:
+      containers:
+      - image: {{ master.addons.helm.tiller_image }}
+        imagePullPolicy: IfNotPresent
+        resources:
+          requests:
+            memory: "128Mi"
+            cpu: "250m"
+          limits:
+            memory: "256Mi"
+            cpu: "500m"
+        livenessProbe:
+          failureThreshold: 3
+          httpGet:
+            path: /liveness
+            port: 44135
+            scheme: HTTP
+          initialDelaySeconds: 1
+          periodSeconds: 10
+          successThreshold: 1
+          timeoutSeconds: 1
+        name: tiller
+        ports:
+        - containerPort: 44134
+          name: tiller
+          protocol: TCP
+        readinessProbe:
+          failureThreshold: 3
+          httpGet:
+            path: /readiness
+            port: 44135
+            scheme: HTTP
+          initialDelaySeconds: 1
+          periodSeconds: 10
+          successThreshold: 1
+          timeoutSeconds: 1
+        resources: {}
+        terminationMessagePath: /dev/termination-log
+      dnsPolicy: ClusterFirst
+      restartPolicy: Always
+      securityContext: {}
+      terminationGracePeriodSeconds: 30
diff --git a/kubernetes/master/kube-addons.sls b/kubernetes/master/kube-addons.sls
index 99bbcef..af5bd98 100644
--- a/kubernetes/master/kube-addons.sls
+++ b/kubernetes/master/kube-addons.sls
@@ -8,6 +8,17 @@
     - group: root
     - mode: 0755
 
+{%- if master.addons.helm.enabled %}
+/etc/kubernetes/addons/helm/helm-tiller-deploy.yml:
+  file.managed:
+    - source: salt://kubernetes/files/kube-addons/helm/helm-tiller-deploy.yml
+    - template: jinja
+    - group: root
+    - dir_mode: 755
+    - makedirs: True
+
+{% endif %}
+
 {%- if master.addons.dns.enabled %}
 
 /etc/kubernetes/addons/dns/kubedns-svc.yaml:
diff --git a/metadata/service/master/cluster.yml b/metadata/service/master/cluster.yml
index 0f8abad..96b56e3 100644
--- a/metadata/service/master/cluster.yml
+++ b/metadata/service/master/cluster.yml
@@ -43,6 +43,9 @@
           enabled: True
         heapster_influxdb:
           enabled: False
+        helm:
+          enabled: False
+          tiller_image: gcr.io/kubernetes-helm/tiller:v2.2.3
       token:
         admin: ${_param:kubernetes_admin_token}
         kubelet: ${_param:kubernetes_kubelet_token}
diff --git a/metadata/service/master/single.yml b/metadata/service/master/single.yml
index beb7bd2..e500b66 100644
--- a/metadata/service/master/single.yml
+++ b/metadata/service/master/single.yml
@@ -39,6 +39,9 @@
           enabled: True
         heapster_influxdb:
           enabled: False
+        helm:
+          enabled: False
+          tiller_image: gcr.io/kubernetes-helm/tiller:v2.2.3.
       token:
         admin: ${_param:kubernetes_admin_token}
         kubelet: ${_param:kubernetes_kubelet_token}
diff --git a/tests/pillar/master_cluster.sls b/tests/pillar/master_cluster.sls
index abc18dd..83c8fd3 100644
--- a/tests/pillar/master_cluster.sls
+++ b/tests/pillar/master_cluster.sls
@@ -18,6 +18,9 @@
       dashboard:
         enabled: true
         public_ip: 185.22.97.131
+      helm:
+        enabled: False
+        tiller_image: gcr.io/kubernetes-helm/tiller:v2.2.3
     admin:
       password: password
       username: admin