This reverts commit 863a01b032.
Partial revert only for the pin to focal, leaves the broken other jobs
commented out.
Update paste-deploy workaround to be used always.
Add qemu-block-extra and podman deps to the debs list.
Running on the newer ceph and distro causes some quite different
performance characteristics that cause tests that used to pass to fail
more often. This includes some performance optimizations to help
reduce the memory footprint, as well as depends on changes to
tempest tests to improve the reliability of those tests by enabling
validation via SSH.
This also moves the cephadm job to be the voting/gating job as that
seems to be the clear consensus about "the future" of how we deploy
ceph for testing.
Depends-On: https://review.opendev.org/c/openstack/cinder-tempest-plugin/+/881764
Co-Authored-By: Dan Smith <dms@danplanet.com>
Change-Id: I899822fec863f43cd6c58b25cf4688c6a3ac1e9b
177 lines
6.7 KiB
Bash
177 lines
6.7 KiB
Bash
# ceph.sh - DevStack extras script to install Ceph
|
|
|
|
if [[ "$1" == "source" ]]; then
|
|
# Initial source
|
|
if [[ "$CEPHADM_DEPLOY" = "True" ]]; then
|
|
source $TOP_DIR/lib/cephadm
|
|
else
|
|
source $TOP_DIR/lib/ceph
|
|
fi
|
|
elif [[ "$1" == "stack" && "$2" == "pre-install" ]]; then
|
|
if [[ "$ENABLE_CEPH_RGW" = "True" ]] && (is_service_enabled swift); then
|
|
die $LINENO \
|
|
"You cannot activate both Swift and Ceph Rados Gateway, \
|
|
please disable Swift or set ENABLE_CEPH_RGW=False"
|
|
fi
|
|
if [[ "$CEPHADM_DEPLOY" = "True" ]]; then
|
|
# Set up system services
|
|
echo_summary "[cephadm] Configuring system services ceph"
|
|
pre_install_ceph
|
|
else
|
|
echo_summary "Installing Ceph"
|
|
check_os_support_ceph
|
|
if [ "$REMOTE_CEPH" = "False" ]; then
|
|
if [ "$CEPH_CONTAINERIZED" = "True" ]; then
|
|
echo_summary "Configuring and initializing Ceph"
|
|
deploy_containerized_ceph
|
|
else
|
|
install_ceph
|
|
echo_summary "Configuring Ceph"
|
|
configure_ceph
|
|
# NOTE (leseb): we do everything here
|
|
# because we need to have Ceph started before the main
|
|
# OpenStack components.
|
|
# Ceph OSD must start here otherwise we can't upload any images.
|
|
echo_summary "Initializing Ceph"
|
|
start_ceph
|
|
fi
|
|
else
|
|
install_ceph_remote
|
|
fi
|
|
fi
|
|
elif [[ "$1" == "stack" && "$2" == "install" ]]; then
|
|
if [[ "$CEPHADM_DEPLOY" = "True" ]]; then
|
|
# Perform installation of service source
|
|
echo_summary "[cephadm] Installing ceph"
|
|
install_ceph
|
|
else
|
|
# FIXME(melwitt): This is a hack to get around a namespacing issue with
|
|
# Paste and PasteDeploy. For stable/queens, we use the Pike UCA packages
|
|
# and the Ceph packages in the Pike UCA are pulling in python-paste and
|
|
# python-pastedeploy packages. The python-pastedeploy package satisfies the
|
|
# upper-constraints but python-paste does not, so devstack pip installs a
|
|
# newer version of it, while python-pastedeploy remains. The mismatch
|
|
# between the install path of paste and paste.deploy causes Keystone to
|
|
# fail to start, with "ImportError: cannot import name deploy."
|
|
# TODO(frickler): This is needed for all branches currently.
|
|
pip_install -U --force PasteDeploy
|
|
install_package python-is-python3
|
|
fi
|
|
elif [[ "$1" == "stack" && "$2" == "post-config" ]]; then
|
|
if [[ "$CEPHADM_DEPLOY" = "True" ]]; then
|
|
# Configure after the other layer 1 and 2 services have been configured
|
|
echo_summary "[cephadm] Configuring additional Ceph services"
|
|
configure_ceph
|
|
else
|
|
if is_ceph_enabled_for_service glance; then
|
|
echo_summary "Configuring Glance for Ceph"
|
|
configure_ceph_glance
|
|
fi
|
|
if is_ceph_enabled_for_service nova; then
|
|
echo_summary "Configuring Nova for Ceph"
|
|
configure_ceph_nova
|
|
fi
|
|
if is_ceph_enabled_for_service cinder; then
|
|
echo_summary "Configuring Cinder for Ceph"
|
|
configure_ceph_cinder
|
|
fi
|
|
if is_ceph_enabled_for_service nova; then
|
|
# NOTE (leseb): the part below is a requirement
|
|
# to attach Ceph block devices
|
|
echo_summary "Configuring libvirt secret"
|
|
import_libvirt_secret_ceph
|
|
fi
|
|
if is_ceph_enabled_for_service manila; then
|
|
echo_summary "Configuring Manila for Ceph"
|
|
configure_ceph_manila
|
|
fi
|
|
|
|
if [ "$REMOTE_CEPH" = "False" ]; then
|
|
if is_ceph_enabled_for_service glance; then
|
|
echo_summary "Configuring Glance for Ceph"
|
|
configure_ceph_embedded_glance
|
|
fi
|
|
if is_ceph_enabled_for_service nova; then
|
|
echo_summary "Configuring Nova for Ceph"
|
|
configure_ceph_embedded_nova
|
|
fi
|
|
if is_ceph_enabled_for_service cinder; then
|
|
echo_summary "Configuring Cinder for Ceph"
|
|
configure_ceph_embedded_cinder
|
|
fi
|
|
if is_ceph_enabled_for_service manila; then
|
|
echo_summary "Configuring Manila for Ceph"
|
|
configure_ceph_embedded_manila
|
|
fi
|
|
if [ "$ENABLE_CEPH_RGW" = "True" ]; then
|
|
echo_summary "Configuring Rados Gateway with Keystone for Swift"
|
|
configure_ceph_embedded_rgw
|
|
if [ "$CEPH_CONTAINERIZED" = "False" ]; then
|
|
start_ceph_embedded_rgw
|
|
else
|
|
_configure_ceph_rgw_container
|
|
fi
|
|
fi
|
|
fi
|
|
fi
|
|
elif [[ "$1" == "stack" && "$2" == "test-config" ]]; then
|
|
if is_service_enabled tempest; then
|
|
iniset $TEMPEST_CONFIG compute-feature-enabled swap_volume False
|
|
|
|
# Only enable shelve testing for branches which have the fix for
|
|
# nova bug 1653953.
|
|
if [[ "$TARGET_BRANCH" =~ stable/(ocata|pike) ]]; then
|
|
iniset $TEMPEST_CONFIG compute-feature-enabled shelve False
|
|
else
|
|
iniset $TEMPEST_CONFIG compute-feature-enabled shelve True
|
|
fi
|
|
# Attached volume extend support for rbd was introduced in Stein by
|
|
# I5698e451861828a8b1240d046d1610d8d37ca5a2
|
|
if [[ "$TARGET_BRANCH" =~ stable/(ocata|pike|queens|rocky) ]]; then
|
|
iniset $TEMPEST_CONFIG volume-feature-enabled extend_attached_volume False
|
|
else
|
|
iniset $TEMPEST_CONFIG volume-feature-enabled extend_attached_volume True
|
|
fi
|
|
# Volume revert to snapshot support for rbd was introduced in Ussuri by
|
|
# If8a5eb3a03e18f9043ff29f7648234c9b46376a0
|
|
if [[ "$TARGET_BRANCH" =~ stable/(ocata|pike|queens|rocky|stein|train) ]]; then
|
|
iniset $TEMPEST_CONFIG volume-feature-enabled volume_revert False
|
|
else
|
|
iniset $TEMPEST_CONFIG volume-feature-enabled volume_revert True
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
|
|
|
|
if [[ "$1" == "unstack" ]]; then
|
|
if [[ "$CEPHADM_DEPLOY" = "True" ]]; then
|
|
cleanup_ceph
|
|
else
|
|
if [ "$CEPH_CONTAINERIZED" = "False" ]; then
|
|
if [ "$REMOTE_CEPH" = "True" ]; then
|
|
cleanup_ceph_remote
|
|
else
|
|
stop_ceph
|
|
cleanup_ceph_embedded
|
|
fi
|
|
else
|
|
cleanup_containerized_ceph
|
|
fi
|
|
cleanup_ceph_general
|
|
fi
|
|
fi
|
|
|
|
if [[ "$1" == "clean" ]]; then
|
|
if [[ "$CEPHADM_DEPLOY" = "True" ]]; then
|
|
cleanup_ceph
|
|
else
|
|
if [ "$REMOTE_CEPH" = "True" ]; then
|
|
cleanup_ceph_remote
|
|
else
|
|
cleanup_ceph_embedded
|
|
fi
|
|
cleanup_ceph_general
|
|
fi
|
|
fi
|