Cinder Backup Swift Proxy Problem

We are trying to deploy cinder-backup-swift-proxy as a backup solution to allow users a way to import / export their block storage images easily using object storage. On that setup, block storage and object storage as actually same Ceph cluster however we thought to keep block storage available to download / upload for end user as well.

We are using ceph-radosgw, ceph-osd and ceph-mon charms for the Ceph deployment. And all related services are up and running independently.

Our swift configuration looks like below:

cinder-backup-swift-proxy:
charm: 'cs:cinder-backup-swift-proxy-1'
debug: true
options:
  auth-url: 'https://IDENTITY:5000/v3'
  auth-version: 3
  endpoint-url: 'https://SWIFT/swift/v1/AUTH_'
  swift-user: admin
  swift-key: openstack
  project-domain: admin_domain
  project-name: admin
  user-domain: admin_domain
  container-name: volumebackups

It reflects to ceph.conf as below:

backup_driver = cinder.backup.drivers.swift.SwiftBackupDriver
backup_swift_auth = single_user
backup_swift_auth_version = 3
backup_swift_url = https://STORAGE/swift/v1/AUTH_
backup_swift_auth_url = https://IDENTITY:5000/v3
backup_swift_user = admin
backup_swift_key = openstack
backup_swift_container = volumebackups
backup_swift_object_size = 52428800
backup_swift_block_size = 32768
backup_swift_user_domain = admin_domain
backup_swift_project_domain = admin_domain
backup_swift_project = admin

When cinder starts, it tries to connect swift to get it’s capabilities however we discovered that it discards path.

ERROR cinder.backup.drivers.swift [-] Can not get Swift capabilities during backup driver initialization.: swiftclient.exceptions.ClientException: Capabilities GET failed: https://SWIFT/info 404 Not Found

ERROR cinder.service [-] Manager for service cinder-backup juju-369d52-1-lxd-1 is reporting problems, not sending heartbeat. Service will appear “down”.

I have tried following paths for backup_swift_url but it’s always sending requests to root instead of given path:

https://SWIFT/swift
https://SWIFT/swift/
https://SWIFT/swift/v1
https://SWIFT/swift/v1/
https://SWIFT/swift/v1/AUTH_

The URL that cinder tries to send request returns a XML says NoSuchBucket. However, I have verified https://SWIFT/swift/info returns the following, I guess cinder tries to read the following response, however it fails because of the path issue.

I have seen a configuration parameter named rgw_swift_url_prefix on Ceph’s document to change/remove the path. However, it’s not supported by the charm.

Any suggestions to make it work?