ashrod98 ca3784609f Fix ingress deamon
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
2024-06-12 16:32:46 +00:00

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