[ 
https://issues.apache.org/jira/browse/KNOX-2956?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Work on KNOX-2956 started by Sandor Molnar.
-------------------------------------------
> 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: 2.0.0, 1.6.0, 1.6.1
>            Reporter: Sandor Molnar
>            Assignee: Sandor Molnar
>            Priority: Critical
>             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