Merge "Allow skipping bootstrap steps in gate check"
This commit is contained in:
commit
6d0fa950f8
@ -116,43 +116,13 @@ UPPER_CONSTRAINTS_PROTO=$([ "$PYTHON_VERSION" == $(echo -e "$PYTHON_VERSION\n2.7
|
|||||||
# Set the location of the constraints to use for all pip installations
|
# Set the location of the constraints to use for all pip installations
|
||||||
export UPPER_CONSTRAINTS_FILE=${UPPER_CONSTRAINTS_FILE:-"$UPPER_CONSTRAINTS_PROTO://opendev.org/openstack/requirements/raw/$(awk '/requirements_git_install_branch:/ {print $2}' playbooks/defaults/repo_packages/openstack_services.yml)/upper-constraints.txt"}
|
export UPPER_CONSTRAINTS_FILE=${UPPER_CONSTRAINTS_FILE:-"$UPPER_CONSTRAINTS_PROTO://opendev.org/openstack/requirements/raw/$(awk '/requirements_git_install_branch:/ {print $2}' playbooks/defaults/repo_packages/openstack_services.yml)/upper-constraints.txt"}
|
||||||
|
|
||||||
# All distros have a python-virtualenv > 13.
|
if [[ -z "${SKIP_OSA_RUNTIME_VENV_BUILD+defined}" ]]; then
|
||||||
# - Centos 7 has 15.1, which holds pip 9.0.1, setuptools 28.8, wheel 0.29
|
build_ansible_runtime_venv
|
||||||
# See also: http://mirror.centos.org/centos/7/os/x86_64/Packages/
|
fi
|
||||||
# - openSUSE 42.3 has 13.1.2, which holds pip 7.1.2, setuptools 18.2, wheel 0.24.
|
|
||||||
# See also: https://build.opensuse.org/package/show/openSUSE%3ALeap%3A42.3/python-virtualenv
|
|
||||||
# - Ubuntu Xenial has 15.0.1, holding pip 8.1.1, setuptools 20.3, wheel 0.29
|
|
||||||
# See also: https://packages.ubuntu.com/xenial/python-virtualenv
|
|
||||||
|
|
||||||
virtualenv --python=${PYTHON_EXEC_PATH} --never-download --clear /opt/ansible-runtime
|
|
||||||
|
|
||||||
# The vars used to prepare the Ansible runtime venv
|
|
||||||
PIP_OPTS+=" --constraint global-requirement-pins.txt"
|
|
||||||
PIP_OPTS+=" --constraint ${UPPER_CONSTRAINTS_FILE}"
|
|
||||||
|
|
||||||
# When executing the installation, we want to specify all our options on the CLI,
|
|
||||||
# making sure to completely ignore any config already on the host. This is to
|
|
||||||
# prevent the repo server's extra constraints being applied, which include
|
|
||||||
# a different version of Ansible to the one we want to install. As such, we
|
|
||||||
# use --isolated so that the config file is ignored.
|
|
||||||
|
|
||||||
# Upgrade pip setuptools and wheel to the appropriate version
|
|
||||||
${PIP_COMMAND} install --isolated ${PIP_OPTS} --upgrade pip setuptools wheel
|
|
||||||
|
|
||||||
# Get current code version (this runs at the root of OSA clone)
|
# Get current code version (this runs at the root of OSA clone)
|
||||||
CURRENT_OSA_VERSION=$(cd ${OSA_CLONE_DIR}; /opt/ansible-runtime/bin/python setup.py --version)
|
CURRENT_OSA_VERSION=$(cd ${OSA_CLONE_DIR}; /opt/ansible-runtime/bin/python setup.py --version)
|
||||||
|
|
||||||
# Install ansible and the other required packages
|
|
||||||
${PIP_COMMAND} install --isolated ${PIP_OPTS} -r requirements.txt ${ANSIBLE_PACKAGE}
|
|
||||||
|
|
||||||
# Install our osa_toolkit code from the current checkout
|
|
||||||
$PIP_COMMAND install -e .
|
|
||||||
|
|
||||||
# Add SELinux support to the venv
|
|
||||||
if [ -d "/usr/lib64/python2.7/site-packages/selinux/" ]; then
|
|
||||||
rsync -avX /usr/lib64/python2.7/site-packages/selinux/ /opt/ansible-runtime/lib64/python2.7/selinux/
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Ensure that Ansible binaries run from the venv
|
# Ensure that Ansible binaries run from the venv
|
||||||
pushd /opt/ansible-runtime/bin
|
pushd /opt/ansible-runtime/bin
|
||||||
for ansible_bin in $(ls -1 ansible*); do
|
for ansible_bin in $(ls -1 ansible*); do
|
||||||
@ -190,7 +160,7 @@ echo "openstack-ansible wrapper created."
|
|||||||
[[ -d "/etc/ansible/plugins" ]] && rm -rf "/etc/ansible/plugins"
|
[[ -d "/etc/ansible/plugins" ]] && rm -rf "/etc/ansible/plugins"
|
||||||
|
|
||||||
# Update dependent roles
|
# Update dependent roles
|
||||||
if [ -f "${ANSIBLE_ROLE_FILE}" ]; then
|
if [ -f "${ANSIBLE_ROLE_FILE}" ] && [[ -z "${SKIP_OSA_ROLE_CLONE+defined}" ]]; then
|
||||||
# NOTE(cloudnull): When bootstrapping we don't want ansible to interact
|
# NOTE(cloudnull): When bootstrapping we don't want ansible to interact
|
||||||
# with our plugins by default. This change will force
|
# with our plugins by default. This change will force
|
||||||
# ansible to ignore our plugins during this process.
|
# ansible to ignore our plugins during this process.
|
||||||
|
@ -113,7 +113,9 @@ iptables -P FORWARD ACCEPT
|
|||||||
iptables -P OUTPUT ACCEPT
|
iptables -P OUTPUT ACCEPT
|
||||||
|
|
||||||
# Bootstrap an AIO
|
# Bootstrap an AIO
|
||||||
source "${OSA_CLONE_DIR}/scripts/bootstrap-aio.sh"
|
if [[ -z "${SKIP_OSA_BOOTSTRAP_AIO+defined}" ]]; then
|
||||||
|
source "${OSA_CLONE_DIR}/scripts/bootstrap-aio.sh"
|
||||||
|
fi
|
||||||
|
|
||||||
if [[ "${ACTION}" == "varstest" ]]; then
|
if [[ "${ACTION}" == "varstest" ]]; then
|
||||||
pushd "${OSA_CLONE_DIR}/tests"
|
pushd "${OSA_CLONE_DIR}/tests"
|
||||||
|
@ -55,6 +55,43 @@ fi
|
|||||||
|
|
||||||
|
|
||||||
## Functions -----------------------------------------------------------------
|
## Functions -----------------------------------------------------------------
|
||||||
|
# Build ansible-runtime venv
|
||||||
|
function build_ansible_runtime_venv {
|
||||||
|
# All distros have a python-virtualenv > 13.
|
||||||
|
# - Centos 7 has 15.1, which holds pip 9.0.1, setuptools 28.8, wheel 0.29
|
||||||
|
# See also: http://mirror.centos.org/centos/7/os/x86_64/Packages/
|
||||||
|
# - openSUSE 42.3 has 13.1.2, which holds pip 7.1.2, setuptools 18.2, wheel 0.24.
|
||||||
|
# See also: https://build.opensuse.org/package/show/openSUSE%3ALeap%3A42.3/python-virtualenv
|
||||||
|
# - Ubuntu Xenial has 15.0.1, holding pip 8.1.1, setuptools 20.3, wheel 0.29
|
||||||
|
# See also: https://packages.ubuntu.com/xenial/python-virtualenv
|
||||||
|
|
||||||
|
virtualenv --python=${PYTHON_EXEC_PATH} --never-download --clear /opt/ansible-runtime
|
||||||
|
|
||||||
|
# The vars used to prepare the Ansible runtime venv
|
||||||
|
PIP_OPTS+=" --constraint global-requirement-pins.txt"
|
||||||
|
PIP_OPTS+=" --constraint ${UPPER_CONSTRAINTS_FILE}"
|
||||||
|
|
||||||
|
# When executing the installation, we want to specify all our options on the CLI,
|
||||||
|
# making sure to completely ignore any config already on the host. This is to
|
||||||
|
# prevent the repo server's extra constraints being applied, which include
|
||||||
|
# a different version of Ansible to the one we want to install. As such, we
|
||||||
|
# use --isolated so that the config file is ignored.
|
||||||
|
|
||||||
|
# Upgrade pip setuptools and wheel to the appropriate version
|
||||||
|
${PIP_COMMAND} install --isolated ${PIP_OPTS} --upgrade pip setuptools wheel
|
||||||
|
|
||||||
|
# Install ansible and the other required packages
|
||||||
|
${PIP_COMMAND} install --isolated ${PIP_OPTS} -r requirements.txt ${ANSIBLE_PACKAGE}
|
||||||
|
|
||||||
|
# Install our osa_toolkit code from the current checkout
|
||||||
|
$PIP_COMMAND install -e .
|
||||||
|
|
||||||
|
# Add SELinux support to the venv
|
||||||
|
if [ -d "/usr/lib64/python2.7/site-packages/selinux/" ]; then
|
||||||
|
rsync -avX /usr/lib64/python2.7/site-packages/selinux/ /opt/ansible-runtime/lib64/python2.7/selinux/
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
# Determine the distribution we are running on, so that we can configure it
|
# Determine the distribution we are running on, so that we can configure it
|
||||||
# appropriately.
|
# appropriately.
|
||||||
function determine_distro {
|
function determine_distro {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user