Browse Source

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
changes/84/464184/1
Marcin Juszkiewicz 4 years ago
parent
commit
43de60caaf
  1. 10
      docker/kubetoolbox/Dockerfile.j2
  2. 14
      docker/macros.j2
  3. 12
      docker/magnum/magnum-conductor/Dockerfile.j2

10
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 %}

14
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 %}

12
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 %}

Loading…
Cancel
Save