[
https://issues.apache.org/jira/browse/AMBARI-13431?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14977796#comment-14977796
]
Hadoop QA commented on AMBARI-13431:
------------------------------------
{color:red}-1 overall{color}. Here are the results of testing the latest
attachment
http://issues.apache.org/jira/secure/attachment/12769060/AMBARI-13431-v6.patch
against trunk revision .
{color:green}+1 @author{color}. The patch does not contain any @author
tags.
{color:green}+1 tests included{color}. The patch appears to include 13 new
or modified test files.
{color:green}+1 javac{color}. The applied patch does not increase the
total number of javac compiler warnings.
{color:green}+1 release audit{color}. The applied patch does not increase
the total number of release audit warnings.
{color:red}-1 core tests{color}. The patch failed these unit tests in
ambari-server:
org.apache.ambari.server.utils.StageUtilsTest
org.apache.ambari.server.controller.metrics.timeline.cache.TimelineMetricCacheSizingTest
Test results:
https://builds.apache.org/job/Ambari-trunk-test-patch/4061//testReport/
Console output:
https://builds.apache.org/job/Ambari-trunk-test-patch/4061//console
This message is automatically generated.
> Blueprints: Configuration to select Kerberos
> --------------------------------------------
>
> Key: AMBARI-13431
> URL: https://issues.apache.org/jira/browse/AMBARI-13431
> Project: Ambari
> Issue Type: Bug
> Components: ambari-server
> Reporter: Sandor Magyari
> Assignee: Sandor Magyari
> Fix For: 2.1.3
>
> Attachments: AMBARI-13431-v6.patch
>
>
> This task tracks the required changes in the handling code for the Blueprint
> .json and the Cluster Creation Template .json files in order to allow the
> user to request that a given cluster be Kerberized.
> The most natural place for this configuration will likely be in the Cluster
> Creation template, which would then allow a given Blueprint to be referenced
> via secure and non-secure cluster creation requests.
> Based on feedback from Product Management, a customer should be able to
> indicate that a cluster is to be Kerberized in either the Blueprint .json or
> the Cluster Creation template .json.
> This feature should support enabling Kerberos at the level of the Blueprint
> or the Cluster Creation template. In either JSON document, the user should
> be able to indicate a security tag that looks like:
> {code}
> "security" : {
> "type" : "KERBEROS",
> "kerberos_descriptor_reference" : "kd1",
> "kerberos_descriptor" : {
> ...
> }
> }
> {code}
> The "type" field in the new "security" map should be set to "KERBEROS" in
> order to indicate that Kerberos should be supported.
> The "kerberos_descriptor_reference" field in the "security" map could be used
> to refer to an existing Kerberos descriptor that has been POST-ed to the
> Ambari REST API.
> If the user wishes to embed the Kerberos descriptor in the Blueprint or
> Cluster Creation template, then the "kerberos_descriptor" field in the
> "security" map should be set to the contents of that descriptor.
> The "security" map could eventually also include other configuration items
> pertaining to the security of a given cluster. While Kerberos is the initial
> support being added, other security mechanisms may evolve over time, and we
> should be able to use the same configuration structures in order to
> eventually integrate with these technologies as well.
> *Note: The user should typically only specify a
> "kerberos_descriptor_reference" or a "kerberos_descriptor". If both are set,
> the Blueprint processor should treat this as an error condition.*
> This new JSON element should exist at the top-level of the Cluster Creation
> Template and Blueprint documents.
> The following example shows what a Cluster Creation template might look like
> in this scenario:
> {code}
> {
> "blueprint" : "blueprint-ha",
> "default_password" : "default",
> "security" : {
> "type" : "KERBEROS",
> "kerberos_descriptor_reference" : "kd1",
> "kerberos_descriptor" : {
> ...
> }
> },
> "host_groups" :[
> {
> "name" : "host_group_1",
> "hosts" : [
> {
> "fqdn" : "c6401.ambari.apache.org"
> }
> ]
> },
> ...
> ]
> }
> {code}
> The following example shows what a Blueprint that requires Kerberos support
> should look like:
> {code}
> {
> "host_groups": [
> {
> "name": "master",
> "configurations": [
> ...
> ],
> "components": [
> {
> "name": "NAMENODE"
> },
> {
> "name": "SECONDARY_NAMENODE"
> },
> {
> "name": "RESOURCEMANAGER"
> },
> {
> "name": "HISTORYSERVER"
> },
> {
> "name": "APP_TIMELINE_SERVER"
> },
> {
> "name": "ZOOKEEPER_SERVER"
> }
> ],
> "cardinality": "1"
> },
> ...
> ],
> "Blueprints": {
> "blueprint_name": "multi-simple-yarn",
> "stack_name": "HDP",
> "stack_version": "2.2",
> "security" : {
> "type" : "KERBEROS",
> "kerberos_descriptor_reference" : "kd1",
> "kerberos_descriptor" : {
> ...
> }
> }
> }
> }
> {code}
> In the example above, the "type" field is included in the "security" map
> section of the Blueprint document, embedded within the "Blueprints" map.
> This is the most natural place for the Blueprint itself, since it contains
> the metadata that should be associated with the Blueprint deployment, outside
> of the configuration and components.
> h2. Priority Ordering
> Since the Kerberos setting will be supported in either the Blueprint or the
> Cluster Creation template, this new support will need to handle the cases
> where the setting is chosen in both documents.
> # If a security type of "KERBEROS" is not selected in a Blueprint, then the
> Cluster Creation template used by override this setting by including "type" :
> "KERBEROS" in the template. This allows us to support deploying a Blueprint
> in both Kerberized and non-Kerberized environments. This implies that any
> Kerberos-specific configuration would need to be included in the Cluster
> Creation template, but this is already supported by the Blueprints
> configuration overrides.
> # If a security type of "KERBEROS" is selected, then the Cluster Creation
> template should not be able to override this setting to less-secure mode. If
> the Cluster Creation template is configured to use a different security
> mechanism, (For example: "type" : "OFF"), then the Blueprints processor
> should treat this as an error condition. If the Cluster creation template
> does not specify a "security" tag, then the "security" setting in the
> Blueprint should be honored. In general, we should allow overrides to a
> more-secure cluster, and forbid overrides for a less-secure cluster.
> h2. Blueprint Database Table Changes
> These additions to the Blueprint .json and Cluster Creation Template .json
> structure will likely require changes to the Blueprint entity database
> tables, already defined in ambari-server.
> This current task will encompass any Database table changes needed to make
> these additions, and will also likely require some ambari-server Upgrade
> handling. This will involve using the existing Ambari Upgrade utilities to
> support moving from older Ambari installs to Ambari 2.2. The main work here
> will be updating existing database tables to support the new structure.
> h2. Backwards compatibility
> Any Blueprints that worked in previous versions of Ambari (non-Kerberized)
> should work as-is in Ambari 2.2, in order to preserve backwards
> compatibility. This means that these new configuration tags must not be
> required in a non-Kerberized environment.
> h2. Blueprint Validation
> The Blueprint validator should be updated to check on the value of the
> security "type" field, when it is present. Once we determine the accepted
> set of possible values ("OFF" and "KERBEROS", for now), the validator should
> check this, and return a reasonable error to the REST client if an invalid
> value is set.
> The kerberos.json (either referenced or embedded) descriptor must be saved to
> the cluster’s artifacts resource prior to Kerberization.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)