Sandor Molnar created KNOX-2956:
-----------------------------------

             Summary: Refactor CM-specific advanced service discovery
                 Key: KNOX-2956
                 URL: https://issues.apache.org/jira/browse/KNOX-2956
             Project: Apache Knox
          Issue Type: Bug
    Affects Versions: 1.6.0, 2.0.0, 1.6.1
            Reporter: Sandor Molnar
            Assignee: Sandor Molnar
             Fix For: 2.1.0


Knox's Hadoop XML resource parser is tightly coupled with another feature 
called Advanced Service Discovery configuration in Cloudera Manager.
There are several issues with that extension:
 - makes the code much harder to read, understand, and maintain
 - occupies a separate thread to monitor other files (we already have many file 
watchers, it's always good if we can do some cleanup)
 - One should really oversee the correlation between them and make the right 
decision when touching one or the other (for instance, when changing the 
ordering of these services)
 - Since this is CM specific, lots of properties were added in the relevant 
Knox [CSD 
files|https://github.com/cloudera/cm_ext/wiki/Service-Descriptor-Language-Reference]
 to give the flexibility for our users to enable/disable services during CM 
service discovery. The management of those configurations is way too complex 
and has a really negative effect on user experience on Knox's configuration 
page within Cloudera Manager

Therefore, I came up with an idea that will still allow us to keep the original 
idea of excluding/including certain services to be discovered/included in the 
generated topology files. I plan to implement the following:
 - Remove the entire {{AdvancedServiceDiscoveryConfig*}} code
 - Former {{gateway.auto.discovery.address}} and 
{{gateway.auto.discovery.cluster}} parameters are already taken care of in HXR 
parser where descriptors are handled (they need to be set in upstream 
configuration locations such as the Knox CSD)
 - By default, all services are enabled, thus every available service found in 
the given discovery address/cluster will be added to the descriptor. I'll add a 
new parameter suffix for service called "{{{}exclude{}}}" which end-users can 
set to {{true}} if they want to exclude a particular service from the generated 
topology (this new service parameter suffix is similar to the existing 'url' or 
'version' suffixes)

As a result, the {{.hxr}} file(s) will be self-contained and can achieve the 
same functionality as we have now with the complementary 
{{auto-discovery-advanced-configuration-*}} files.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to