From d4675a60bfbce02a3e0a51ef683db1d0fe4abd53 Mon Sep 17 00:00:00 2001 From: Alexandru Avadanii Date: Mon, 30 Sep 2019 22:48:36 +0200 Subject: [PATCH] AArch64 support - kubernetespause: Use multiarch pause image instead of pause-amd64; - Dockerfile: Instead of pulling CentOS base images from dockerhub, create them from scratch from the official SIG-cloudinstance repo: http://artifacts.ci.centos.org/sig-cloudinstance/ - spec: Bump minor RPM version; Co-authored-by: Jimmy Lafontaine Rivera Signed-off-by: Alexandru Avadanii Change-Id: I28e0eeea013c0bd8a19ba3611c8583520cd409be --- caas-kubernetes.spec | 7 +++++-- docker-build/hyperkube/Dockerfile | 4 +++- docker-build/kubernetes-builder/Dockerfile | 9 ++++++--- docker-build/kubernetespause/Dockerfile | 2 +- 4 files changed, 15 insertions(+), 7 deletions(-) diff --git a/caas-kubernetes.spec b/caas-kubernetes.spec index 0a0dc7c..2bef22e 100644 --- a/caas-kubernetes.spec +++ b/caas-kubernetes.spec @@ -15,7 +15,7 @@ %define COMPONENT kubernetes %define RPM_NAME caas-%{COMPONENT} %define RPM_MAJOR_VERSION 1.16.2 -%define RPM_MINOR_VERSION 0 +%define RPM_MINOR_VERSION 1 %define IMAGE_TAG %{RPM_MAJOR_VERSION}-%{RPM_MINOR_VERSION} %define KUBERNETESPAUSE_VERSION 3.1 @@ -25,6 +25,7 @@ %define docker_build_dir %{_builddir}/%{RPM_NAME}-%{RPM_MAJOR_VERSION}/docker-build %define docker_save_dir %{_builddir}/%{RPM_NAME}-%{RPM_MAJOR_VERSION}/docker-save %define built_binaries_dir /binary-save +%define centos_build 191001 Name: %{RPM_NAME} Version: %{RPM_MAJOR_VERSION} @@ -36,7 +37,7 @@ Vendor: %{_platform_vendor} and kubernetes/kubernetes unmodified Source0: %{name}-%{version}.tar.gz Requires: docker-ce >= 18.09.2, rsync -BuildRequires: docker-ce-cli >= 18.09.2, xz +BuildRequires: docker-ce-cli >= 18.09.2, xz, wget # more info at: https://fedoraproject.org/wiki/Packaging:Debuginfo No build ID note in Flannel %global debug_package %{nil} @@ -50,6 +51,7 @@ This container contains the %{COMPONENT} service. # Build Kubernetes binaries %build +wget --progress=dot:giga http://artifacts.ci.centos.org/sig-cloudinstance/centos-7-%{centos_build}/%{_arch}/centos-7-%{_arch}-docker.tar.xz -O %{docker_build_dir}/kubernetes-builder/centos-7-docker.tar.xz set -x docker build \ --network=host \ @@ -81,6 +83,7 @@ docker rm -f ${builder_container} docker rmi kubernetes-builder:%{IMAGE_TAG} # Build hyperkube container image +wget --progress=dot:giga http://artifacts.ci.centos.org/sig-cloudinstance/centos-7-%{centos_build}/%{_arch}/centos-7-%{_arch}-docker.tar.xz -O %{docker_build_dir}/hyperkube/centos-7-docker.tar.xz rsync -av %{binary_build_dir}/kube-apiserver %{docker_build_dir}/hyperkube/ rsync -av %{binary_build_dir}/kube-controller-manager %{docker_build_dir}/hyperkube/ rsync -av %{binary_build_dir}/kube-proxy %{docker_build_dir}/hyperkube/ diff --git a/docker-build/hyperkube/Dockerfile b/docker-build/hyperkube/Dockerfile index 54bd0df..95d9675 100644 --- a/docker-build/hyperkube/Dockerfile +++ b/docker-build/hyperkube/Dockerfile @@ -12,7 +12,9 @@ # See the License for the specific language governing permissions and # limitations under the License. -FROM centos:7.6.1810 +FROM scratch +ADD centos-7-docker.tar.xz / +CMD ["/bin/bash"] MAINTAINER Krisztian Lengyel ARG ceph_version diff --git a/docker-build/kubernetes-builder/Dockerfile b/docker-build/kubernetes-builder/Dockerfile index e96f12e..cf0e654 100644 --- a/docker-build/kubernetes-builder/Dockerfile +++ b/docker-build/kubernetes-builder/Dockerfile @@ -12,7 +12,9 @@ # See the License for the specific language governing permissions and # limitations under the License. -FROM centos:7.6.1810 +FROM scratch +ADD centos-7-docker.tar.xz / +CMD ["/bin/bash"] MAINTAINER Krisztian Lengyel ARG KUBERNETES_VERSION @@ -41,7 +43,8 @@ RUN set -x \ grep \ util-linux \ && mkdir -p ${go_install_dir} \ -&& curl -fsSL -k https://dl.google.com/go/go${go_version}.linux-amd64.tar.gz | tar zx --strip-components=1 -C ${go_install_dir} \ +&& if [ $(uname -m) == 'aarch64' ]; then HOST_ARCH=arm64; else HOST_ARCH=amd64; fi \ +&& curl -fsSL -k https://dl.google.com/go/go${go_version}.linux-${HOST_ARCH}.tar.gz | tar zx --strip-components=1 -C ${go_install_dir} \ # # Build Kubernetes # @@ -55,4 +58,4 @@ RUN set -x \ && make WHAT="cmd/kube-proxy" \ && make WHAT="cmd/kube-scheduler" \ && mkdir -p ${binaries} \ -&& mv ./_output/local/bin/linux/amd64/{kubelet,kubectl,kube-apiserver,kube-controller-manager,kube-proxy,kube-scheduler} ${binaries}/ \ +&& mv ./_output/local/bin/linux/${HOST_ARCH}/{kubelet,kubectl,kube-apiserver,kube-controller-manager,kube-proxy,kube-scheduler} ${binaries}/ \ diff --git a/docker-build/kubernetespause/Dockerfile b/docker-build/kubernetespause/Dockerfile index ef18cf4..a0c3f3d 100644 --- a/docker-build/kubernetespause/Dockerfile +++ b/docker-build/kubernetespause/Dockerfile @@ -13,4 +13,4 @@ # limitations under the License. ARG KUBERNETESPAUSE_VERSION=3.1 -FROM gcr.io/google-containers/pause-amd64:${KUBERNETESPAUSE_VERSION} +FROM gcr.io/google-containers/pause:${KUBERNETESPAUSE_VERSION} -- 2.16.6