Bug 1599554

Summary: [RFE] Gluster StorageClasses: Use heketi internal service address instead of external route
Product: OpenShift Container Platform Reporter: Kenjiro Nakayama <knakayam>
Component: InstallerAssignee: Jose A. Rivera <jarrpa>
Status: CLOSED ERRATA QA Contact: RamaKasturi <knarra>
Severity: high Docs Contact:
Priority: unspecified    
Version: 3.9.0CC: anli, aos-bugs, dmoessne, jarrpa, jialiu, jokerman, knakayam, mmccomas, pprakash, xtian
Target Milestone: ---   
Target Release: 3.10.z   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: openshift-ansible-3.11.0-0.20.0 Doc Type: No Doc Update
Doc Text:
undefined
Story Points: ---
Clone Of:
: 1621970 (view as bug list) Environment:
Last Closed: 2019-07-24 13:47:18 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:
Bug Depends On:    
Bug Blocks: 1621970    

Description Kenjiro Nakayama 2018-07-10 04:43:46 UTC
Description of problem:

- When we deploy CNS, the storage class(glusterfs-storage) points to external URL. Due to this, OpenShift users need to deploy router pod which is fully functioning. Some customers, who do not want to use router pods or they plan to deploy router pods after installation finished, cannot deploy CNS during installation.

Version-Release number of the following components:

  [root@knakayam-ose39-c ~]# rpm -q openshift-ansible
  openshift-ansible-3.9.30-1.git.7.46f8678.el7.noarch
  [root@knakayam-ose39-c ~]# rpm -q ansible
  ansible-2.4.4.0-1.el7ae.noarch
  [root@knakayam-ose39-c ~]# ansible --version
  ansible 2.4.4.0
    config file = /etc/ansible/ansible.cfg
    configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
    ansible python module location = /usr/lib/python2.7/site-packages/ansible
    executable location = /usr/bin/ansible
    python version = 2.7.5 (default, Feb 20 2018, 09:19:12) [GCC 4.8.5 20150623 (Red Hat 4.8.5-28)]

How reproducible: 100%

Steps to Reproduce:
1. In stall CNS with openshift_storage_glusterfs_heketi_is_native=true (default).

  e.g)
  [glusterfs]
  knakayam-ose39-c-node1.example.com glusterfs_devices='[ "/dev/vdb" ]'
  knakayam-ose39-c-node2.example.com glusterfs_devices='[ "/dev/vdb" ]'
  knakayam-ose39-c-node3.example.com glusterfs_devices='[ "/dev/vdb" ]'

2. Install successful

3. Check storage class

Actual results:
- resulturl in storage uses external route as:

  [root@knakayam-ose39-c ~]# oc get sc -o yaml |grep resturl
      resturl: http://heketi-storage-glusterfs.10.64.222.1.xip.io

Expected results:

- We would like to request to use internal service:

   resturl: http://heketi-storage.glusterfs.svc.cluster.local:8080

Additional info:
Proposal patch - https://github.com/openshift/openshift-ansible/pull/9122

Comment 1 Kenjiro Nakayama 2018-08-16 00:22:17 UTC
@Jose, I think that this BZ could be ON_QA status since https://github.com/openshift/openshift-ansible/pull/9122 was merged. Is there anything we are waiting for?

Comment 2 Jose A. Rivera 2018-08-16 13:47:20 UTC
We were also waiting for this one: https://github.com/openshift/openshift-ansible/pull/9326 :)

LGTM

Comment 4 Kenjiro Nakayama 2018-08-24 00:14:25 UTC
@Jose, one another customer requested the backport of this fix to OCP 3.9 as their VM cannot resolve route DNS. Is it possible?

Comment 5 Jose A. Rivera 2018-08-24 01:56:41 UTC
Sure, here's the PR:

https://github.com/openshift/openshift-ansible/pull/9741

Comment 6 Jose A. Rivera 2018-08-24 02:01:38 UTC
Actually, I would say, please either create a new BZ or clone this BZ for 3.9 and we'll track the PR there.

Comment 8 Kenjiro Nakayama 2018-08-24 04:42:50 UTC
Thank you. I cloned bz#1621970 for 3.9.

Comment 9 Wenkai Shi 2018-08-27 03:36:01 UTC
Failed to verify with version openshift-ansible-3.10.34-1.git.0.48df172None.noarch, 

Code doesn't merged in this version. 

$ git checkout openshift-ansible-3.10.34-1
$ grep resturl roles/openshift_storage_glusterfs/templates/glusterfs-storageclass.yml.j2
  resturl: "http://{% if glusterfs_heketi_is_native %}{{ glusterfs_heketi_route }}{% else %}{{ glusterfs_heketi_url }}:{{ glusterfs_heketi_port }}{% endif %}"


resulturl in storage is still use external route.

# oc get sc -o yaml |grep resturl
    resturl: http://heketi-storage-glusterfs.apps.0827-ywl.qe.rhcloud.com

Comment 19 errata-xmlrpc 2019-07-24 13:47:18 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2019:1755