Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.
This project is now read‑only. Starting Monday, February 2, please use https://ibm-ceph.atlassian.net/ for all bug tracking management.

Bug 1828060

Summary: [ceph-ansible][ceph] It is not possible to assign any other port than 8080 for beast front-end
Product: [Red Hat Storage] Red Hat Ceph Storage Reporter: Mustafa Aydın <maydin>
Component: Ceph-AnsibleAssignee: Guillaume Abrioux <gabrioux>
Status: CLOSED NOTABUG QA Contact: Vasishta <vashastr>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 4.0CC: aschoen, ceph-eng-bugs, gmeno, nthomas, ykaul
Target Milestone: rc   
Target Release: 5.*   
Hardware: All   
OS: All   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-04-27 09:39:20 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Mustafa Aydın 2020-04-26 14:58:23 UTC
Description of problem:

Because of the following code at ceph-ansible, it is not possible to assign any other port than 8080 for beast frontend;


roles/ceph-defaults/defaults/main.yml:radosgw_frontend_port: "{{ radosgw_civetweb_port if radosgw_frontend_type == 'civetweb' else '8080' }}"

Since beast is the default front-end as of RHCS4, the Customers may want to continue to use the custom port (ex: 80) that they had used for civetweb in RHCS3. I recommend to add an option to change the beast non-ssl port via all.yml (or rgws.yml)
Version-Release number of selected component (if applicable):
4.0

How reproducible:
Always

Steps to Reproduce:
1. Set the ceph_conf_overrides at all.yml for radosgw clients as;

(example only)

rgw frontends = beast endpoint=192.168.0.34:80

Check the ceph.conf file after running the site-docker.yml, confirm that the change is not reflected correctly to ceph.conf

Actual results:

cat /etc/ceph/ceph.conf 
[DEFAULT]
client.rgw.ceph3osd4.rgw0 = rgw frontends = beast endpoint=192.168.0.34:80
client.rgw.ceph3osd5.rgw0 = rgw frontends = beast endpoint=192.168.0.35:80
client.rgw.ceph3osd6.rgw0 = rgw frontends = beast endpoint=192.168.0.36:80

[client.rgw.ceph3osd4.rgw0]
host = ceph3osd4
keyring = /var/lib/ceph/radosgw/ceph-rgw.ceph3osd4.rgw0/keyring
log file = /var/log/ceph/ceph-rgw-ceph3osd4.rgw0.log
rgw frontends = beast endpoint=192.168.0.34:8080
rgw thread pool size = 512
...
...



Expected results:

cat /etc/ceph/ceph.conf 
[client.rgw.ceph3osd4.rgw0]
host = ceph3osd4
keyring = /var/lib/ceph/radosgw/ceph-rgw.ceph3osd4.rgw0/keyring
log file = /var/log/ceph/ceph-rgw-ceph3osd4.rgw0.log
rgw frontends = beast endpoint=192.168.0.34:80
rgw thread pool size = 512
...
...

Additional info:

The workaround is to set radosgw_frontend_port manually at the ceph-ansible roles file or change the ceph.conf files manually. But both of these methods are not recommended.

roles/ceph-defaults/defaults/main.yml:#radosgw_frontend_port: "{{ radosgw_civetweb_port if radosgw_frontend_type == 'civetweb' else '8080' }}"
roles/ceph-defaults/defaults/main.yml:radosgw_frontend_port: 80