Add an option to install kubectl
Would be useful if we don't have Kubernetes locally installed.
Change-Id: Ia9621a738e44d9078251fb9f4b8761d73f011104
diff --git a/helm/client.sls b/helm/client.sls
index 6fc7ba7..d441da5 100644
--- a/helm/client.sls
+++ b/helm/client.sls
@@ -3,6 +3,7 @@
{%- set helm_tmp = "/tmp/helm-" + client.version %}
{%- set helm_bin = "/usr/bin/helm-" + client.version %}
+{%- set kubectl_bin = "/usr/bin/kubectl" %}
{%- set helm_home = "/srv/helm/home" %}
{%- if client.tiller.host %}
{%- set helm_run = "helm --host '{}'".format(client.tiller.host) %}
@@ -121,11 +122,41 @@
{%- endif %}{# release.enabled #}
{%- endfor %}{# release_id, release in client.releases #}
+{%- if client.kubectl.install %}
+extract_kubectl:
+ archive.extracted:
+ - name: {{ helm_tmp }}
+ - source: {{ client.kubectl.download_url }}
+ - source_hash: {{ client.kubectl.download_hash }}
+ - archive_format: tar
+ {%- if grains['saltversioninfo'] < [2016, 11] %}
+ - tar_options: v
+ {%- else %}
+ - options: v
+ {%- endif %}
+ - if_missing: {{ helm_tmp }}/{{ client.kubectl.tarball_path }}
+ - require:
+ - file: {{ helm_tmp }}
+
+{{ kubectl_bin }}:
+ file.managed:
+ - source: {{ helm_tmp }}/{{ client.kubectl.tarball_path }}
+ - mode: 555
+ - user: root
+ - group: root
+ - require:
+ - archive: extract_kubectl
+{%- endif %}{# client.kubectl.install #}
+
{%- for namespace in namespaces %}
ensure_{{ namespace }}_namespace:
cmd.run:
- name: kubectl create namespace {{ namespace }}
- unless: kubectl get namespace {{ namespace }}
+ {%- if client.kubectl.install %}
+ - require:
+ - file: {{ kubectl_bin }}
+ {%- endif %}
{%- endfor %}
{%- endif %}
diff --git a/metadata/service/client.yml b/metadata/service/client.yml
index 6349fc0..512e99a 100644
--- a/metadata/service/client.yml
+++ b/metadata/service/client.yml
@@ -13,5 +13,10 @@
install: true
namespace: kube-system
host:
+ kubectl:
+ install: false
+ download_url: https://dl.k8s.io/v1.6.7/kubernetes-client-linux-amd64.tar.gz
+ download_hash: sha256=54947ef84181e89f9dbacedd54717cbed5cc7f9c36cb37bc8afc9097648e2c91
+ tarball_path: kubernetes/client/bin/kubectl
repos: {}
releases: {}