
Fixes ingress deamon, for 18.0+ Ceph versions by setting correct VIP. Ingress daemon was added in Caracal, and when backported to Bobcat encountered CI failures. In this patch I've added verbose MDS logging capabilities, and fixed the failures that were present in Bobcat stable CI, cephfs-nfs-cephadm job. History is in patchset 908940. Resubmititng starting at master to backport to stable branches in the correct order. Depends-On: I5b7fd5b2b557203189c25fa2a988d790e7fda3eb Change-Id: Ia1671de5c770d1cf5a3cd58e05fe5204f5bbc3c6
185 lines
7.0 KiB
Bash
185 lines
7.0 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" && "$REMOTE_CEPH" = "False" ]]; then
|
|
# Perform installation of service source
|
|
echo_summary "[cephadm] Installing ceph"
|
|
install_ceph
|
|
set_min_client_version
|
|
elif [[ "$CEPHADM_DEPLOY" = "True" && "$REMOTE_CEPH" = "True" ]]; then
|
|
echo "[CEPHADM] Remote Ceph: Skipping install"
|
|
get_cephadm
|
|
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 || \
|
|
is_ceph_enabled_for_service cinder; 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
|
|
if [[ "$MDS_LOGS" == "True" ]]; then
|
|
enable_verbose_mds_logging
|
|
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
|