:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: : Copyright (c) 2017 Enea AB and others. : : All rights reserved. This program and the accompanying materials : are made available under the terms of the Apache License, Version 2.0 : which accompanies this distribution, and is available at : http://www.apache.org/licenses/LICENSE-2.0 :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: From: Alexandru Avadanii Date: Wed, 15 Mar 2017 23:44:32 +0100 Subject: [PATCH] build_image.pp: Extract cluster_arch from "/" URI Since target image building was moved from nailgun to puppet, we need to determine the "target_arch" value differently. One way to go is to extract it from the root disk image URI, which is constructed based on static fixture data in nailgun. This change relies on the following: - image_data contains "/", with a properly arch-qualified URI; - image_data "/" URI arch uses the same format as "target_arch" (in this case "arm64" instead of "aarch64" or other variations); While at it, increase task timeout from 1800s to 3600s. NOTE: Unlike the previous approach, this method does not rely on any other nailgun changes (i.e. adding the "arch" field to the database model), but only on `fa_build_image --target_arch=...` support. JIRA: https://jira.opnfv.org/browse/ARMBAND-240 Signed-off-by: Alexandru Avadanii --- deployment/puppet/osnailyfacter/manifests/provision/build_image.pp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/deployment/puppet/osnailyfacter/manifests/provision/build_image.pp b/deployment/puppet/osnailyfacter/manifests/provision/build_image.pp index dbfc785..8525e33 100644 --- a/deployment/puppet/osnailyfacter/manifests/provision/build_image.pp +++ b/deployment/puppet/osnailyfacter/manifests/provision/build_image.pp @@ -8,6 +8,9 @@ class osnailyfacter::provision::build_image( $data = loadyaml($data_file) } $cluster_id = $data['cluster']['id'] + $root_img_uri_split = split($data['image_data']['/']['uri'], '_') + $root_img_suffix_split = split($root_img_uri_split[-1], '[.]') + $cluster_arch = $root_img_suffix_split[0] if $data['ironic']['enabled'] == true { # TODO(vsaienko): Use the same system packages for fuel image and ironic bootstrap, but exclude @@ -52,8 +55,8 @@ class osnailyfacter::provision::build_image( $extra_params = '--data_driver nailgun_build_image' exec { 'generate_image_with_fuel': - command => "fa_build_image ${build_dir} ${log_params} ${extra_params} --input_data_file ${data_file}", + command => "fa_build_image ${build_dir} ${log_params} ${extra_params} --target_arch=${cluster_arch} --input_data_file ${data_file}", path => ['/bin', '/usr/bin'], - timeout => 1800, + timeout => 3600, } }