Allow install binaries from archive
Related story: PROD-24674
Change-Id: If0c3182534d321ae345eeeed10b6f924e3f5f9b9
diff --git a/etcd/server/service.sls b/etcd/server/service.sls
index e49f453..b7ade9e 100644
--- a/etcd/server/service.sls
+++ b/etcd/server/service.sls
@@ -13,8 +13,9 @@
- service: etcd
{%- endif %}
+{% else %}
-{% elif server.get('source', {}).get('engine') == 'docker_hybrid' %}
+{% if server.get('source', {}).get('engine') == 'docker_hybrid' %}
{%- if grains.os_family == 'RedHat' %}
etcd_enable_epel:
@@ -49,13 +50,6 @@
{%- endif %}
-user_etcd:
- user.present:
- - name: etcd
- - shell: /bin/false
- - home: /var/lib/etcd
- - gid_from_name: True
-
/tmp/etcd:
file.directory:
- user: root
@@ -88,6 +82,27 @@
{%- else %}
- docker_image: pull-etcd-image
{%- endif %}
+ - require_in:
+ - file: /usr/local/bin/etcd
+
+{% elif server.get('source', {}).get('engine') == 'archive' %}
+
+extract_etcd:
+ archive.extracted:
+ - name: /tmp/etcd/bin
+ - source: {{ server.etcd_source }}
+ - source_hash: {{ server.etcd_source_hash }}
+ - enforce_toplevel: false
+ - options: --strip=1
+ - archive_format: tar
+ - keep: true
+ {%- if grains.get('noservices') %}
+ - onlyif: /bin/false
+ {%- endif %}
+ - require_in:
+ - file: /usr/local/bin/etcd
+
+{% endif %}
{%- for filename in ['etcd', 'etcdctl'] %}
@@ -97,24 +112,24 @@
- mode: 755
- user: root
- group: root
- - require:
- {%- if grains['saltversioninfo'] < [2017, 7] %}
- - dockerng: copy-etcd-binaries
- {%- else %}
- - docker_container: copy-etcd-binaries
- {%- endif %}
- watch_in:
- service: etcd
{% endfor %}
+user_etcd:
+ user.present:
+ - name: etcd
+ - shell: /bin/false
+ - home: /var/lib/etcd
+ - gid_from_name: True
+
/etc/systemd/system/etcd.service:
file.managed:
- source: salt://etcd/files/systemd/etcd.service
- template: jinja
- user: root
- group: root
-
{% endif %}
{%- if server.get('engine', 'systemd') == 'kubernetes' %}