From: juraj.linkes Date: Wed, 17 Jul 2019 12:28:30 +0000 (+0200) Subject: Add support for aarch64 container images X-Git-Url: https://gerrit.fd.io/r/gitweb?p=csit.git;a=commitdiff_plain;h=c79c748013ec53ff59e9260034822a5b26afa441 Add support for aarch64 container images Change-Id: I84f13d7139a6e5f7004426018c2d27425c5fa97e Signed-off-by: juraj.linkes --- diff --git a/VPP_DEVICE_IMAGE_UBUNTU_ARM b/VPP_DEVICE_IMAGE_UBUNTU_ARM new file mode 100644 index 0000000000..c35e84ddfc --- /dev/null +++ b/VPP_DEVICE_IMAGE_UBUNTU_ARM @@ -0,0 +1 @@ +snergster/csit-sut-arm-ubuntu18:latest diff --git a/resources/libraries/bash/entry/bootstrap_verify_perf.sh b/resources/libraries/bash/entry/bootstrap_verify_perf.sh index b9299b1422..bf7fa3519c 100644 --- a/resources/libraries/bash/entry/bootstrap_verify_perf.sh +++ b/resources/libraries/bash/entry/bootstrap_verify_perf.sh @@ -36,7 +36,7 @@ common_dirs || die get_test_code "${1-}" || die get_test_tag_string || die select_topology || die -select_os || die +select_arch_os || die gather_build || die check_download_dir || die activate_virtualenv || die diff --git a/resources/libraries/bash/entry/bootstrap_vpp_device.sh b/resources/libraries/bash/entry/bootstrap_vpp_device.sh index 209943fb89..4ac73e777f 100755 --- a/resources/libraries/bash/entry/bootstrap_vpp_device.sh +++ b/resources/libraries/bash/entry/bootstrap_vpp_device.sh @@ -35,7 +35,7 @@ common_dirs || die get_test_code "${1-}" || die get_test_tag_string || die select_topology || die -select_os || die +select_arch_os || die gather_build || die check_download_dir || die activate_virtualenv || die diff --git a/resources/libraries/bash/entry/per_patch_device.sh b/resources/libraries/bash/entry/per_patch_device.sh index ac2c4a4ac5..6624047862 100644 --- a/resources/libraries/bash/entry/per_patch_device.sh +++ b/resources/libraries/bash/entry/per_patch_device.sh @@ -45,7 +45,7 @@ get_test_code "${1-}" || die get_test_tag_string || die set_perpatch_dut || die select_topology || die -select_os || die +select_arch_os || die select_build "build_current" || die check_download_dir || die activate_virtualenv "${VPP_DIR}" || die diff --git a/resources/libraries/bash/entry/per_patch_perf.sh b/resources/libraries/bash/entry/per_patch_perf.sh index 195d1a70e0..ef75ea90ce 100644 --- a/resources/libraries/bash/entry/per_patch_perf.sh +++ b/resources/libraries/bash/entry/per_patch_perf.sh @@ -52,7 +52,7 @@ get_test_code "${1-}" || die get_test_tag_string || die set_perpatch_dut || die select_topology || die -select_os || die +select_arch_os || die activate_virtualenv "${VPP_DIR}" || die generate_tests || die archive_tests || die diff --git a/resources/libraries/bash/function/common.sh b/resources/libraries/bash/function/common.sh index 696fc71189..e576f99d8d 100644 --- a/resources/libraries/bash/function/common.sh +++ b/resources/libraries/bash/function/common.sh @@ -648,7 +648,7 @@ function run_pybot () { } -function select_os () { +function select_arch_os () { # Populate variables related to local operating system. # @@ -678,7 +678,19 @@ function select_os () { PKG_SUFFIX="rpm" ;; *) - die "Unable to identify distro or os from ${OS}" + die "Unable to identify distro or os from ${os_id}" + ;; + esac + + arch=$(uname -m) || { + die "Get CPU architecture failed." + } + + case "${arch}" in + "aarch64") + IMAGE_VER_FILE="${IMAGE_VER_FILE}_ARM" + ;; + *) ;; esac } diff --git a/resources/libraries/python/Constants.py b/resources/libraries/python/Constants.py index ddff2b161c..0a252687a7 100644 --- a/resources/libraries/python/Constants.py +++ b/resources/libraries/python/Constants.py @@ -73,6 +73,9 @@ class Constants(object): # Docker container SUT image DOCKER_SUT_IMAGE_UBUNTU = 'snergster/csit-sut:latest' + # Docker container arm SUT image + DOCKER_SUT_IMAGE_UBUNTU_ARM = 'snergster/csit-sut-arm-ubuntu18:latest' + # TRex install version TREX_INSTALL_VERSION = '2.54' diff --git a/resources/libraries/python/ContainerUtils.py b/resources/libraries/python/ContainerUtils.py index a324465eaf..363411c070 100644 --- a/resources/libraries/python/ContainerUtils.py +++ b/resources/libraries/python/ContainerUtils.py @@ -593,8 +593,12 @@ class LXC(ContainerEngine): else: return + target_arch = 'arm64' \ + if Topology.get_node_arch(self.container.node) == 'aarch64' \ + else 'amd64' + image = self.container.image if self.container.image else\ - "-d ubuntu -r bionic -a amd64" + "-d ubuntu -r bionic -a {arch}".format(arch=target_arch) cmd = 'lxc-create -t download --name {c.name} -- {image} '\ '--no-validate'.format(c=self.container, image=image) @@ -786,8 +790,10 @@ class Docker(ContainerEngine): return if not self.container.image: - setattr(self.container, 'image', - Constants.DOCKER_SUT_IMAGE_UBUNTU) + img = Constants.DOCKER_SUT_IMAGE_UBUNTU_ARM \ + if Topology.get_node_arch(self.container.node) == 'aarch64' \ + else Constants.DOCKER_SUT_IMAGE_UBUNTU + setattr(self.container, 'image', img) cmd = 'docker pull {image}'.format(image=self.container.image) @@ -795,6 +801,7 @@ class Docker(ContainerEngine): if int(ret) != 0: raise RuntimeError('Failed to create container {c.name}.' .format(c=self.container)) + if self.container.cpuset_cpus: self._configure_cgroup('docker')