[ https://issues.apache.org/jira/browse/APEXCORE-712?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16056454#comment-16056454 ]
Sanjay M Pujare commented on APEXCORE-712: ------------------------------------------ Based on the feedback in the PR https://github.com/apache/apex-core/pull/547 I am proposing the following implementation for this JIRA. This also impacts the implementation for APEXCORE-711 to a small extent. Pls let me know your feedback. - The attribute name STRAM_HTTP_CUSTOM_CONFIG (in DAGContext) will be renamed to SSL_CONFIG (or TLS_CONFIG if preferred). - there are no other settings or attributes used for this feature. SSL_CONFIG is used both in app-master (server) and the Stram client as follows. - The value of SSL_CONFIG is not a single string value but a set of key-value pairs in curly braces (similar to how a property map is supplied via a single attribute value elsewhere) - for the APEXCORE-711 use-case (i.e. where the SSL config and keystore are already deployed on the app-master node) the user specifies a single key-value pair in SSL_CONFIG value e.g. {ssl.server.conf=/opt/mydir/ssl-server.xml} . In this case the Apex CLI does not do anything but the attribute value is just passed on to the app master. On the App master side, the value of ssl.server.conf is used to add a resource to the config object similar to how it is currently done in StreamingAppMasterService.serviceStart(). So the only change to the APEXCORE-711 use case is how the value of SSL_CONFIG is supplied (instead of /opt/mydir/ssl-server.xml we need to use "{ssl.server.conf=/opt/mydir/ssl-server.xml}" ). - for the this new use-case of APEXCORE-712 Apex CLI user will supply the value of SSL_CONFIG as follows (an example): {ssl.server.keystore.location="apexkeystore.jks", ssl.server.keystore.keypassword="password1", ssl.server.keystore.password="password2"} - in this second use case when StreamingAppMasterService gets the SSL_CONFIG value it will determine this is the second use-case (absence of ssl.server.conf) and use the values supplied to construct a configuration object that will be used as a resource for the actual config object to be passed to Hadoop WebApps. So the only difference here is instead of using a local file system file as a resource it uses this constructed config object as a resource - there will be error checking to make sure the 2 use cases are not mixed up (i.e. ssl.server.conf and any of the other values are not defined together) > Support distribution of custom SSL material to the Stram node while launch > the app > ---------------------------------------------------------------------------------- > > Key: APEXCORE-712 > URL: https://issues.apache.org/jira/browse/APEXCORE-712 > Project: Apache Apex Core > Issue Type: Improvement > Reporter: Sanjay M Pujare > Assignee: devendra tagare > Original Estimate: 2h > Remaining Estimate: 2h > > This JIRA is dependent on APEXCORE-711. APEXCORE-711 talks about using a > custom SSL configuration but assumes the SSL files (ssl-server.xml and the > keystore) are already available on any cluster node so when the Stram starts > it is able to find them. There are cases where users don't want to do this > and they expect the Apex client to package these files so that they are > copied to the App master node so when Stram starts it will find them in the > expected location. > Enhance the Apex client/launcher to distribute the custom SSL files (XML and > the keystore) along with the application jars/resources so the user does not > need to pre-distribute the custom SSL files. -- This message was sent by Atlassian JIRA (v6.4.14#64029)