summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docker/etcd/Dockerfile.j216
-rw-r--r--releasenotes/notes/etcd-binary-install-fc88930f4bf6ce2c.yaml6
2 files changed, 16 insertions, 6 deletions
diff --git a/docker/etcd/Dockerfile.j2 b/docker/etcd/Dockerfile.j2
index dc39acbe2..6f55b0b15 100644
--- a/docker/etcd/Dockerfile.j2
+++ b/docker/etcd/Dockerfile.j2
@@ -9,12 +9,16 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
{{ macros.configure_user(name='etcd') }}
-{% if base_package_type == 'rpm' %}
- {% set etcd_packages = ['etcd'] %}
-{% elif base_package_type == 'deb' %}
- {% set etcd_packages = ['etcd'] %}
-{% endif %}
-{{ macros.install_packages(etcd_packages | customizable("packages")) }}
+{% block etcd_repository_version %}
+# NOTE(wszumski): It is suggested to upgrade one minor version at a time:
+# https://github.com/etcd-io/website/blob/3e04053d1cb15b2ddc2904ba4121ca5aa73bea66/content/en/docs/v3.3/upgrades/upgrade_3_3.md#upgrade-requirements
+ARG etcd_version=v3.3.27
+ARG etcd_url=https://github.com/etcd-io/etcd/releases/download/${etcd_version}/etcd-${etcd_version}-linux-{{debian_arch}}.tar.gz
+{% endblock %}
+
+RUN curl ${etcd_url} -o /tmp/etcd.tar.gz \
+ && tar -C /usr/bin -xvz --strip-components=1 --wildcards '*/etcd' --wildcards '*/etcdctl' -f /tmp/etcd.tar.gz \
+ && rm -f /tmp/etcd.tar.gz
COPY etcd_sudoers /etc/sudoers.d/kolla_etcd_sudoers
COPY extend_start.sh /usr/local/bin/kolla_extend_start
diff --git a/releasenotes/notes/etcd-binary-install-fc88930f4bf6ce2c.yaml b/releasenotes/notes/etcd-binary-install-fc88930f4bf6ce2c.yaml
new file mode 100644
index 000000000..d76ee06a1
--- /dev/null
+++ b/releasenotes/notes/etcd-binary-install-fc88930f4bf6ce2c.yaml
@@ -0,0 +1,6 @@
+---
+upgrade:
+ - |
+ ``etcd`` is now installed from the upstream binaries published to github
+ rather than via the OS package manager. This aligns the etcd version across
+ all distributions for compatibility.