aboutsummaryrefslogtreecommitdiffstats
path: root/ansible/roles/enable_iommu_on_boot
AgeCommit message (Collapse)AuthorFilesLines
2019-02-27Update grub in enable_iommu_on_boot when neededStepan Andrushko1-18/+19
Improve conditions when to update grub in enable_iommu_on_boot ansible role. JIRA: YARDSTICK-1603 Change-Id: Ic16b84beb55e45e4b75c120761397dc3207ef6f4 Signed-off-by: Stepan Andrushko <stepanx.andrushko@intel.com>
2018-12-12Don't add IOMMU to grub when it is not bare metalStepan Andrushko1-46/+48
Fix needed when running 'enable_iommu_on_boot' ansible role inside the VM where 'ansible_system_vendor' is neither 'AuthenticAMD' nor 'Intel Corporation'. JIRA: YARDSTICK-1469 Change-Id: I37e399fd892d1ec41239632948758284ccbe98ac Signed-off-by: Stepan Andrushko <stepanx.andrushko@intel.com>
2018-10-26Add IOMMU to grub to support OVS/SRIOV SA contextsStepan Andrushko3-33/+37
It is required to setup IOMMU in grub to run standalone context tests: OVS/DPDK and SRIOV. Updated existing "enable_iommu_on_boot" role and NSB setup scripts: "ansible/install.yaml" and "ansible/ubuntu_server_baremetal_deploy_samplevnfs.yml". JIRA: YARDSTICK-1469 Change-Id: I348e4ebbffe89c7356352f43b7a6c1fdc4d81479 Signed-off-by: Stepan Andrushko <stepanx.andrushko@intel.com>
2018-01-22Enable iommu support in grubJan Malanik3-0/+123
JIRA: YARDSTICK-895 It's required for sriov standalone yardstick tests. This part of commit message will be deleted: This code will be enabled when https://gerrit.opnfv.org/gerrit/#/c/47957/ will be merged, because it requires host reboot. Change-Id: I0ec9cbf90a9d83d54e545fcf421b8baf206601a4 Signed-off-by: Jan Malanik <janx.malanik@intel.com> Signed-off-by: Malanik Jan <janx.malanik@intel.com>
bold } /* Keyword.Declaration */ .highlight .kn { color: #008800; font-weight: bold } /* Keyword.Namespace */ .highlight .kp { color: #008800 } /* Keyword.Pseudo */ .highlight .kr { color: #008800; font-weight: bold } /* Keyword.Reserved */ .highlight .kt { color: #888888; font-weight: bold } /* Keyword.Type */ .highlight .m { color: #0000DD; font-weight: bold } /* Literal.Number */ .highlight .s { color: #dd2200; background-color: #fff0f0 } /* Literal.String */ .highlight .na { color: #336699 } /* Name.Attribute */ .highlight .nb { color: #003388 } /* Name.Builtin */ .highlight .nc { color: #bb0066; font-weight: bold } /* Name.Class */ .highlight .no { color: #003366; font-weight: bold } /* Name.Constant */ .highlight .nd { color: #555555 } /* Name.Decorator */ .highlight .ne { color: #bb0066; font-weight: bold } /* Name.Exception */ .highlight .nf { color: #0066bb; font-weight: bold } /* Name.Function */ .highlight .nl { color: #336699; font-style: italic } /* Name.Label */ .highlight .nn { color: #bb0066; font-weight: bold } /* Name.Namespace */ .highlight .py { color: #336699; font-weight: bold } /* Name.Property */ .highlight .nt { color: #bb0066; font-weight: bold } /* Name.Tag */ .highlight .nv { color: #336699 } /* Name.Variable */ .highlight .ow { color: #008800 } /* Operator.Word */ .highlight .w { color: #bbbbbb } /* Text.Whitespace */ .highlight .mb { color: #0000DD; font-weight: bold } /* Literal.Number.Bin */ .highlight .mf { color: #0000DD; font-weight: bold } /* Literal.Number.Float */ .highlight .mh { color: #0000DD; font-weight: bold } /* Literal.Number.Hex */ .highlight .mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */ .highlight .mo { color: #0000DD; font-weight: bold } /* Literal.Number.Oct */ .highlight .sa { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Affix */ .highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */ .highlight .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */ .highlight .dl { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */ .highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */ .highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */ .highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */ .highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */ .highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */ .highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */ .highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */ .highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */ .highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */ .highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */ .highlight .vc { color: #336699 } /* Name.Variable.Class */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */
#!/bin/bash
set -o errexit
set -o nounset
set -o pipefail

if [ -z "$ARTIFACT_TYPE" ]; then
  echo "ERROR: ARTIFACT_TYPE not provided...exiting"
  exit 1
fi

# log info to console
echo "Uploading the Apex ${ARTIFACT_TYPE} artifact. This could take some time..."
echo "--------------------------------------------------------"
echo

if [[ ! "$ARTIFACT_VERSION" =~ dev ]]; then
  source $BUILD_DIRECTORY/../opnfv.properties
fi

importkey () {
  # clone releng repository
  echo "Cloning releng repository..."
  [ -d releng ] && rm -rf releng
  git clone https://gerrit.opnfv.org/gerrit/releng $WORKSPACE/releng/ &> /dev/null
  #this is where we import the siging key
  if [ -f $WORKSPACE/releng/utils/gpg_import_key.sh ]; then
    source $WORKSPACE/releng/utils/gpg_import_key.sh
  fi
}

signrpm () {
  for artifact in $RPM_LIST $SRPM_LIST; do
    echo "Signing artifact: ${artifact}"
    gpg2 -vvv --batch --yes --no-tty \
      --default-key opnfv-helpdesk@rt.linuxfoundation.org \
      --passphrase besteffort \
      --detach-sig $artifact
      gsutil cp "$artifact".sig gs://$GS_URL/$(basename "$artifact".sig)
      echo "Upload complete for ${artifact} signature"
  done
}

signiso () {
  gpg2 -vvv --batch --yes --no-tty \
    --default-key opnfv-helpdesk@rt.linuxfoundation.org  \
    --passphrase besteffort \
    --detach-sig $BUILD_DIRECTORY/release/OPNFV-CentOS-7-x86_64-$OPNFV_ARTIFACT_VERSION.iso

  gsutil cp $BUILD_DIRECTORY/release/OPNFV-CentOS-7-x86_64-$OPNFV_ARTIFACT_VERSION.iso.sig gs://$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.iso.sig
  echo "ISO signature Upload Complete!"
}

uploadiso () {
  gsutil cp $BUILD_DIRECTORY/release/OPNFV-CentOS-7-x86_64-$OPNFV_ARTIFACT_VERSION.iso gs://$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.iso > gsutil.iso.log
  echo "ISO Upload Complete!"
}

uploadrpm () {
  for artifact in $RPM_LIST $SRPM_LIST; do
    echo "Uploading artifact: ${artifact}"
    gsutil cp $artifact gs://$GS_URL/$(basename $artifact) > gsutil.iso.log
    echo "Upload complete for ${artifact}"
  done
  gsutil cp $WORKSPACE/opnfv.properties gs://$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.properties > gsutil.properties.log
  gsutil cp $WORKSPACE/opnfv.properties gs://$GS_URL/latest.properties > gsutil.latest.log

  # Make the property files viewable on the artifact site
  gsutil -m setmeta \
    -h "Content-Type:text/html" \
    -h "Cache-Control:private, max-age=0, no-transform" \
    gs://$GS_URL/latest.properties \
    gs://$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.properties > /dev/null 2>&1
}

uploadsnap () {
  # Uploads snapshot artifact and updated properties file
  echo "Uploading snapshot artifacts"
  if [ -z "$SNAP_TYPE" ]; then
    echo "ERROR: SNAP_TYPE not provided...exiting"
    exit 1
  fi
  gsutil cp $WORKSPACE/apex-${SNAP_TYPE}-snap-`date +%Y-%m-%d`.tar.gz gs://$GS_URL/ > gsutil.iso.log
  if [ "$SNAP_TYPE" == 'csit' ]; then
    gsutil cp $WORKSPACE/snapshot.properties gs://$GS_URL/snapshot.properties > gsutil.latest.log
  fi
  echo "Upload complete for Snapshot"
}

uploadimages () {
  # Uploads dev tarball
  GERRIT_PATCHSET_NUMBER=$(echo $GERRIT_REFSPEC | grep -Eo '[0-9]+$')
  export OPNFV_ARTIFACT_VERSION="dev${GERRIT_CHANGE_NUMBER}_${GERRIT_PATCHSET_NUMBER}"
  echo "Uploading development build tarball"
  pushd $BUILD_DIRECTORY > /dev/null
  tar czf apex-${OPNFV_ARTIFACT_VERSION}.tar.gz *.qcow2 *.vmlinuz *.initrd
  gsutil cp apex-${OPNFV_ARTIFACT_VERSION}.tar.gz gs://$GS_URL/apex-${OPNFV_ARTIFACT_VERSION}.tar.gz > gsutil.latest.log
  popd > /dev/null
}

# Always import the signing key, if it's available the artifacts will be
# signed before being uploaded
importkey

if gpg2 --list-keys | grep "opnfv-helpdesk@rt.linuxfoundation.org"; then
  echo "Signing Key avaliable"
  SIGN_ARTIFACT="true"
fi

if [ "$ARTIFACT_TYPE" == 'snapshot' ]; then
  uploadsnap
elif [ "$ARTIFACT_TYPE" == 'iso' ]; then
  if [[ "$ARTIFACT_VERSION" =~ dev ]]; then
    echo "Skipping artifact upload for ${ARTIFACT_TYPE} due to dev build"
    exit 0
  fi
  if [[ -n "$SIGN_ARTIFACT" && "$SIGN_ARTIFACT" == "true" ]]; then
    signiso
  fi
  uploadiso
elif [ "$ARTIFACT_TYPE" == 'rpm' ]; then
  if [[ "$ARTIFACT_VERSION" =~ dev ]]; then
    echo "dev build detected, will upload image tarball"
    ARTIFACT_TYPE=tarball
    uploadimages
  else
    RPM_INSTALL_PATH=$BUILD_DIRECTORY/noarch
    RPM_LIST=$RPM_INSTALL_PATH/$(basename $OPNFV_RPM_URL)
    VERSION_EXTENSION=$(echo $(basename $OPNFV_RPM_URL) | sed 's/opnfv-apex-//')
    for pkg in common undercloud onos; do
      RPM_LIST+=" ${RPM_INSTALL_PATH}/opnfv-apex-${pkg}-${VERSION_EXTENSION}"
    done
    SRPM_INSTALL_PATH=$BUILD_DIRECTORY
    SRPM_LIST=$SRPM_INSTALL_PATH/$(basename $OPNFV_SRPM_URL)
    VERSION_EXTENSION=$(echo $(basename $OPNFV_SRPM_URL) | sed 's/opnfv-apex-//')
    for pkg in common undercloud onos; do
      SRPM_LIST+=" ${SRPM_INSTALL_PATH}/opnfv-apex-${pkg}-${VERSION_EXTENSION}"
    done

    if [[ -n "$SIGN_ARTIFACT" && "$SIGN_ARTIFACT" == "true" ]]; then
      signrpm
    fi
    uploadrpm
  fi
else
  echo "ERROR: Unknown artifact type ${ARTIFACT_TYPE} to upload...exiting"
  exit 1
fi

echo
echo "--------------------------------------------------------"
echo "Done!"
if [ "$ARTIFACT_TYPE" == 'iso' ]; then echo "ISO Artifact is available as http://$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.iso"; fi
if [ "$ARTIFACT_TYPE" == 'rpm' ]; then echo "RPM Artifact is available as http://$GS_URL/$(basename $OPNFV_RPM_URL)"; fi
if [ "$ARTIFACT_TYPE" == 'tarball' ]; then echo "Dev tarball Artifact is available as http://$GS_URL/apex-${OPNFV_ARTIFACT_VERSION}.tar.gz)"; fi