From a42ee1269b6d33094156690836d4600c9b7705ee Mon Sep 17 00:00:00 2001 From: ashrod98 Date: Tue, 7 Nov 2023 18:06:51 +0000 Subject: [PATCH] Add ingress deamon Adds ingress deamon, for 18.0+ Ceph versions Change-Id: Ic345784873161df2326344c8993f5691fbadb40c Depends-On: Idf15ccf996eb6cdc05a960bdc6411f6fdb9e5fea Depends-On: I85ad659bf1ad36cb5340a53cd57603451fc77147 --- .zuul.yaml | 6 ++++++ devstack/lib/cephadm | 30 ++++++++++++++++++++++++++---- 2 files changed, 32 insertions(+), 4 deletions(-) diff --git a/.zuul.yaml b/.zuul.yaml index c360ad9..3aebd5d 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -94,6 +94,11 @@ back end (DHSS=False) parent: manila-tempest-plugin-cephfs-nfs +- job: + name: devstack-plugin-ceph-multinode-cephfs-nfs-cephadm + parent: manila-tempest-plugin-multinode-cephfs-nfs-cephadm + description: Test CephFS NFS (DHSS=False) in a Multinode devstack env + - job: name: devstack-plugin-ceph-multinode-tempest-py3 parent: tempest-multinode-full-py3 @@ -156,6 +161,7 @@ - devstack-plugin-ceph-tempest-ubuntu: voting: false - devstack-plugin-ceph-multinode-tempest-py3 + - devstack-plugin-ceph-multinode-cephfs-nfs-cephadm - devstack-plugin-ceph-cephfs-native: irrelevant-files: *irrelevant-files voting: false diff --git a/devstack/lib/cephadm b/devstack/lib/cephadm index 960d8c5..18dfe40 100755 --- a/devstack/lib/cephadm +++ b/devstack/lib/cephadm @@ -72,6 +72,7 @@ CEPHFS_CLIENT=0 CEPHFS_CLIENT_NAME="client.$MANILA_CEPH_USER" CEPHFS_CLIENT_LOG="/var/log/ceph-$CEPHFS_CLIENT_NAME.log" CEPHFS_MULTIPLE_FILESYSTEMS=${CEPHFS_MULTIPLE_FILESYSTEMS:-False} +VIP=$HOST_IP # GLANCE DEFAULTS @@ -313,13 +314,34 @@ function cephfs_config { --keyring $CEPH_KEYRING -- ceph fs volume create "$FSNAME" } +# Get Ceph version +function _get_ceph_version { + local ceph_version_str + + ceph_version_str=$(sudo podman run --rm --entrypoint ceph $CONTAINER_IMAGE \ + --version | awk '{ print $3 }') + + echo $ceph_version_str +} + # Install ceph: add NFS function ceph_nfs_config { - # (fpantano) TODO: Build an ingress daemon on top of this + local ceph_version + ceph_version=$(_get_ceph_version) + echo "[CEPHADM] Deploy nfs.$FSNAME backend" - $SUDO "$CEPHADM" shell --fsid $FSID --config $CEPH_CONFIG \ - --keyring $CEPH_KEYRING -- ceph orch apply nfs \ - "$FSNAME" --placement="$HOSTNAME" --port $NFS_PORT + if [ "${ceph_version%%\.*}" -ge 18 ]; then + $SUDO "$CEPHADM" shell --fsid $FSID --config $CEPH_CONFIG \ + --keyring $CEPH_KEYRING -- ceph nfs cluster create \ + "$FSNAME" "$HOSTNAME" --port $NFS_PORT --ingress \ + --ingress-mode haproxy-protocol --virtual_ip $HOST_IP + else + echo "[CEPHADM] Ingress service is not deployed \ + to preserve the ability to apply client restrictions." + $SUDO "$CEPHADM" shell --fsid $FSID --config $CEPH_CONFIG \ + --keyring $CEPH_KEYRING -- ceph nfs cluster create \ + "$FSNAME" "$HOSTNAME" --port $NFS_PORT + fi } function _create_swift_endpoint {