aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcin Juszkiewicz <marcin.juszkiewicz@linaro.org>2017-05-12 14:22:29 +0200
committerMarcin Juszkiewicz <marcin.juszkiewicz@linaro.org>2017-05-12 14:22:29 +0200
commit43de60caaf7cc592b6397c844ef35b2f66e8dd4b (patch)
tree54ec31c6d3be35c7ba02c405c1d42dc2ee3ac9d2
parent2e438918384447d52c958d61b9a377c375ec932b (diff)
downloadkolla-43de60caaf7cc592b6397c844ef35b2f66e8dd4b.tar.gz
kolla-43de60caaf7cc592b6397c844ef35b2f66e8dd4b.zip
introduce 'install_kubectl' macro
Both kubetoolbox and magnum-conductor install 'kubectl'. In different versions. And only for x86-64. New macro knows how to handle other architectures. AArch64 binary is fetched properly, other architectures (ppc64le for now) gets info that there is no binary upstream. Also updated to v1.5.4 as this one is used by kube/* images. Change-Id: Ia491d6ec7156201742f28b5d1018f2794529b5b4 Partially-Implements: blueprint multiarch-and-arm64-containers
-rw-r--r--docker/kubetoolbox/Dockerfile.j210
-rw-r--r--docker/macros.j214
-rw-r--r--docker/magnum/magnum-conductor/Dockerfile.j212
3 files changed, 16 insertions, 20 deletions
diff --git a/docker/kubetoolbox/Dockerfile.j2 b/docker/kubetoolbox/Dockerfile.j2
index 6cd8f6dc3..34f7695a9 100644
--- a/docker/kubetoolbox/Dockerfile.j2
+++ b/docker/kubetoolbox/Dockerfile.j2
@@ -3,13 +3,6 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
{% block kubetoolbox_header %}{% endblock %}
-{% if base_arch != 'x86_64' %}
-
-RUN echo 'There is no "kubectl" binary for {{ base_arch }}' \
- && /bin/false
-
-{% endif %}
-
{% import "macros.j2" as macros with context %}
{% set kubetoolbox_packages = [
@@ -21,8 +14,7 @@ RUN echo 'There is no "kubectl" binary for {{ base_arch }}' \
{{ macros.install_packages(kubetoolbox_packages | customizable("packages")) }}
{% block kubetoolbox_install_kube_binary %}
-RUN curl -o /usr/bin/kubectl http://storage.googleapis.com/kubernetes-release/release/v1.4.0/bin/linux/amd64/kubectl \
- && chmod 755 /usr/bin/kubectl
+ {{ macros.install_kubectl() }}
{% endblock %}
{% block kubetoolbox_footer %}{% endblock %}
diff --git a/docker/macros.j2 b/docker/macros.j2
index e40206071..479d33ff8 100644
--- a/docker/macros.j2
+++ b/docker/macros.j2
@@ -48,3 +48,17 @@ RUN apt-get -y install --no-install-recommends haproxy \
&& apt-get -y install -f \
&& apt-get clean
{% endmacro %}
+
+{% macro install_kubectl() %}
+ {% if base_arch == 'x86_64' %}
+ ENV KUBE_ARCH=amd64
+ {% elif base_arch == 'aarch64' %}
+ ENV KUBE_ARCH=arm64
+ {% else %}
+ RUN echo 'There is no "kubectl" binary for {{ base_arch }}' \
+ && /bin/false
+ {% endif %}
+
+ RUN curl -o /usr/bin/kubectl http://storage.googleapis.com/kubernetes-release/release/v1.5.4/bin/linux/${KUBE_ARCH}/kubectl \
+ && chmod 755 /usr/bin/kubectl
+{% endmacro %}
diff --git a/docker/magnum/magnum-conductor/Dockerfile.j2 b/docker/magnum/magnum-conductor/Dockerfile.j2
index 518881fad..e080e3b86 100644
--- a/docker/magnum/magnum-conductor/Dockerfile.j2
+++ b/docker/magnum/magnum-conductor/Dockerfile.j2
@@ -3,13 +3,6 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
{% block magnum_conductor_header %}{% endblock %}
-{% if base_arch != 'x86_64' %}
-
-RUN echo 'There is no "kubectl" binary for {{ base_arch }}' \
- && /bin/false
-
-{% endif %}
-
{% import "macros.j2" as macros with context %}
{% if install_type == 'binary' %}
@@ -26,10 +19,7 @@ RUN echo 'There is no "kubectl" binary for {{ base_arch }}' \
{% endif %}
{{ macros.install_packages(magnum_conductor_packages | customizable("packages")) }}
-# Install kubectl binary
-RUN curl -Lo /usr/local/bin/kubectl https://storage.googleapis.com/kubernetes-release/release/v1.2.0/bin/linux/amd64/kubectl \
- && chmod +x /usr/local/bin/kubectl
-
+{{ macros.install_kubectl() }}
{% endif %}
{% block magnum_conductor_footer %}{% endblock %}