This patch enables the plugin to setup ceph radosgw and configure it as a swift-compatible endpoint with keystone integration. ENABLE_CEPH_RGW is the new variable introduced, which is False by default, and can be set to True in localrc if radosgw needs to be setup. Fixed couple of other (related) things .... 1) Created rgw specific functions 2) Checking for radosgw & swift co-existence, erroring out early enough 3) Using `osd pool default size = 1` in ceph.conf, which set the replica size to 1 for all pools as the default NOTE: Tested on ubuntu trusty only TODOs ... 1) Not tested on Fedora (F22), radosgw startup has some issues there. Co-Authored-By: Deepak C Shetty <deepakcs@redhat.com> Change-Id: I21db4168eb69d107599f6b6ab1668b02b764b2c6
82 lines
2.5 KiB
Bash
82 lines
2.5 KiB
Bash
# ceph.sh - DevStack extras script to install Ceph
|
|
|
|
if [[ "$1" == "source" ]]; then
|
|
# Initial source
|
|
source $TOP_DIR/lib/ceph
|
|
elif [[ "$1" == "stack" && "$2" == "pre-install" ]]; then
|
|
echo_summary "Installing Ceph"
|
|
check_os_support_ceph
|
|
if [ "$REMOTE_CEPH" = "False" ]; then
|
|
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"
|
|
init_ceph
|
|
start_ceph
|
|
else
|
|
install_ceph_remote
|
|
fi
|
|
elif [[ "$1" == "stack" && "$2" == "post-config" ]]; then
|
|
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 cinder || \
|
|
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 [ "$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 [ "$ENABLE_CEPH_RGW" = "True" ]; then
|
|
echo_summary "Configuring Rados Gateway with Keystone for Swift"
|
|
configure_ceph_embedded_rgw
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
if [[ "$1" == "unstack" ]]; then
|
|
if [ "$REMOTE_CEPH" = "True" ]; then
|
|
cleanup_ceph_remote
|
|
else
|
|
cleanup_ceph_embedded
|
|
stop_ceph
|
|
fi
|
|
cleanup_ceph_general
|
|
fi
|
|
|
|
if [[ "$1" == "clean" ]]; then
|
|
if [ "$REMOTE_CEPH" = "True" ]; then
|
|
cleanup_ceph_remote
|
|
else
|
|
cleanup_ceph_embedded
|
|
fi
|
|
cleanup_ceph_general
|
|
fi
|