[
https://issues.apache.org/jira/browse/AMBARI-21325?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16137837#comment-16137837
]
Larry McCay commented on AMBARI-21325:
--------------------------------------
This patch is really interesting.
I am a bit concerned about a couple aspects of the implementation however and I
think we need to consider them carefully due to backward compatibility issues
if we decide that we need to evolve it.
One thing that stands out to me is that it seems to hardcode specific topology
names that it is generating for the deployment. While this may work in targeted
deployments, it may not suite others as well. I have also noticed that these
same topology names have bled into the service definitions that were recently
added to Knox itself. The rewrite rules are actually hardcoded for specific
names.
One of the things that makes that concerning to me is that it breaks the
namespace provided by topologies. In order for Knox to support multiple
clusters in the same gateway instance, we use topologies to represent each
cluster and the services, UIs that are to be proxied from the cluster. By
introducing a hbaseui.xml, an admin looking at that topology will not easily
know which cluster it belongs to. Moreover, you are limited to a single
hbaseui.xml for the gateway instance. Which means that our support for proxying
the HBase UI will be limited to one cluster even though Knox supports multiple
clusters.
I have been thinking about how this namespace can be preserved through a new
feature in Knox that will allow for simpler UI rewrite rules and a browser
redirect from a typical cluster topology like default.xml to a UI specific
topology for the default cluster.
Since I believe there is a good bit of work to get this provisioning work done
properly, fix the rewrite rules in the current service definitions and add the
new indirection for namespace preservation, I would suggest that we use what is
here as a source to inform what ends up being done and target it in a later
release.
In the meantime, I know folks do some similar things as part of a post
installation provisioning step.
Essentially, generate the needed topologies and update the quicklinks json file
to use Knox URLs instead of direct.
> Ability to switch Quick Links to use Service URL through Knox or given proxy
> ----------------------------------------------------------------------------
>
> Key: AMBARI-21325
> URL: https://issues.apache.org/jira/browse/AMBARI-21325
> Project: Ambari
> Issue Type: Improvement
> Affects Versions: trunk, 2.5.2, 2.5.3
> Reporter: Jeffrey E Rodriguez
> Assignee: Chandana Mirashi
> Attachments: 21325_test_results.zip, AMBARI-21325.patch
>
> Original Estimate: 336h
> Remaining Estimate: 336h
>
> Knox has the ability to proxy Hadoop user interfaces URL. Having the ability
> to setup Quicklinks through Knox so instead of for example going to "Hbase
> Master UI" directly we can proxy through Knox for example:
> http://hdpjeff1.fyre.ibm.com:16010/master-status
> can be instead go through:
> https://hdpjeff1.fyre.ibm.com:8443/gateway/default/hbase/hbaseui/master-status
> Here https://hdpjeff1.fyre.ibm.com:8443/gateway is the Knox gateway URL.
> This will bring authentication to the UI access and would secure the UI
> access.
> Ideally this behavior can be set as secure going through proxy by default or
> it can be turn off to go directly by Ambari Admin.
> Changes added:
> 1. Add new json properties knox_url, knox_path, supports_knox
> a. knox_url: template to be used for urls that are proxied through Knox
> b. knox_path: Knox gateway path that will be added to the proxy url.
> c. supports_knox: whether link will be redirected through Knox
> 2. Add above json properties to quicklinks.json
> 3. Add HDFSUI & DATANODE,YARNUI & NODEUI, JOBHISTORYUI, HBASEUI, OOZIEUI,
> SPARKUI services to Knox topology template.
> 4. Automate protocol and port added to Knox topology file. Based on whether
> SSL is enabled for the services listed above, the port and protocol in
> params_linux.py will be updated.
> 5. Update quick_view_link_view.js so that when Knox is installed and
> support_knox is true, quicklink url follows knox url template specified in
> the quicklinks.json for the service/component.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)