SLIDER-417, SLIDER-415 Enable local package building for accumulo, fix tests to work in secure mode
Project: http://git-wip-us.apache.org/repos/asf/incubator-slider/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-slider/commit/3c1d9dc2 Tree: http://git-wip-us.apache.org/repos/asf/incubator-slider/tree/3c1d9dc2 Diff: http://git-wip-us.apache.org/repos/asf/incubator-slider/diff/3c1d9dc2 Branch: refs/heads/feature/SLIDER-86-windows Commit: 3c1d9dc2fcec1a897a26388865194c99fc28e2f8 Parents: e24060b Author: Billie Rinaldi <billie.rina...@gmail.com> Authored: Tue Sep 9 22:14:36 2014 -0700 Committer: Billie Rinaldi <billie.rina...@gmail.com> Committed: Tue Sep 9 22:14:36 2014 -0700 ---------------------------------------------------------------------- app-packages/accumulo/README.txt | 17 ++-- app-packages/accumulo/pom.xml | 90 ++++++++++++++++++-- app-packages/accumulo/src/assembly/accumulo.xml | 2 +- .../funtest/accumulo/AccumuloBasicIT.groovy | 7 ++ .../accumulo/AccumuloMonitorSSLIT.groovy | 7 +- .../funtest/accumulo/AccumuloSSLTestBase.groovy | 7 +- .../accumulo/src/test/resources/appConfig.json | 55 ++++++++++++ .../src/test/resources/appConfig_kerberos.json | 8 +- .../test/resources/appConfig_monitor_ssl.json | 4 +- .../appConfig_monitor_ssl_kerberos.json | 57 +++++++++++++ .../src/test/resources/appConfig_ssl.json | 4 +- .../test/resources/appConfig_ssl_kerberos.json | 59 +++++++++++++ 12 files changed, 294 insertions(+), 23 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/3c1d9dc2/app-packages/accumulo/README.txt ---------------------------------------------------------------------- diff --git a/app-packages/accumulo/README.txt b/app-packages/accumulo/README.txt index 634296a..f75814c 100644 --- a/app-packages/accumulo/README.txt +++ b/app-packages/accumulo/README.txt @@ -17,21 +17,28 @@ # How to create a Slider package for Accumulo? - mvn clean package -DskipTests -Paccumulo-app-package + mvn clean package -DskipTests -Paccumulo-app-package-maven + OR + mvn clean package -DskipTests -Paccumulo-app-package -Dpkg.version=1.6.1 \ + -Dpkg.name=accumulo-1.6.1-bin.tar.gz -Dpkg.src=/local/path/to/tarball App package can be found in - app-packages/accumulo/target/apache-slider-accumulo-${accumulo.version}-app-package-${slider.version}.zip + app-packages/accumulo/target/slider-accumulo-app-package-*.zip + +In the first case, the version number of the app package will match the +slider version, and in the second case it will match the pkg.version +(intended to be the accumulo version). Verify the content using - zip -Tv apache-slider-accumulo-*.zip + zip -Tv slider-accumulo-app-package*.zip While appConfig.json and resources.json are not required for the package they work well as the default configuration for Slider apps. So it is advisable that when you create an application package for Slider, include sample/default resources.json and appConfig.json for a minimal Yarn cluster. -The version of Accumulo used for the app package can be adjusted by adding a -flag such as +In the maven packaging case, the version of Accumulo used for the app package +can be adjusted by adding a flag such as -Daccumulo.version=1.5.1 **Note that the LICENSE.txt and NOTICE.txt that are bundled with the app http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/3c1d9dc2/app-packages/accumulo/pom.xml ---------------------------------------------------------------------- diff --git a/app-packages/accumulo/pom.xml b/app-packages/accumulo/pom.xml index 548ced8..f074b01 100644 --- a/app-packages/accumulo/pom.xml +++ b/app-packages/accumulo/pom.xml @@ -30,17 +30,20 @@ <properties> <work.dir>package-tmp</work.dir> - <app.package.name>${project.artifactId}-${project.version}</app.package.name> + <app.package.name>${project.artifactId}-${pkg.version}</app.package.name> + <pkg.src>${project.build.directory}/${work.dir}</pkg.src> + <pkg.version>${project.version}</pkg.version> + <pkg.name>accumulo-${accumulo.version}-bin.tar.gz</pkg.name> + <!-- the following properties are used for testing --> + <app.user>yarn</app.user> + <app.user.group>hadoop</app.user.group> + <accumulo.keytab></accumulo.keytab> + <accumulo.principal></accumulo.principal> </properties> <profiles> <profile> <id>accumulo-app-package</id> - <activation> - <property> - <name>!skipAccumulo</name> - </property> - </activation> <build> <plugins> <plugin> @@ -64,6 +67,79 @@ <plugin> <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-antrun-plugin</artifactId> + <version>1.7</version> + <executions> + <execution> + <id>copy</id> + <phase>validate</phase> + <configuration> + <target name="copy and rename file"> + <copy file="${pkg.src}/${pkg.name}" tofile="${project.build.directory}/${work.dir}/${pkg.name}" /> + </target> + </configuration> + <goals> + <goal>run</goal> + </goals> + </execution> + </executions> + </plugin> + + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-failsafe-plugin</artifactId> + <version>${maven-failsafe-plugin.version}</version> + <executions> + <execution> + <id>run-integration-tests</id> + <goals> + <goal>integration-test</goal> + <goal>verify</goal> + </goals> + </execution> + </executions> + <configuration> + <systemPropertyVariables> + <java.net.preferIPv4Stack>true</java.net.preferIPv4Stack> + <java.awt.headless>true</java.awt.headless> + <!-- this property must be supplied--> + <slider.conf.dir>${slider.conf.dir}</slider.conf.dir> + <slider.bin.dir>../../slider-assembly/target/slider-${project.version}-all/slider-${project.version}</slider.bin.dir> + <test.app.pkg.dir>target</test.app.pkg.dir> + <test.app.pkg.file>${app.package.name}.zip</test.app.pkg.file> + <test.app.resource>target/test-config/resources.json</test.app.resource> + <test.app.template>target/test-config/appConfig.json</test.app.template> + </systemPropertyVariables> + </configuration> + </plugin> + </plugins> + </build> + </profile> + <profile> + <id>accumulo-app-package-maven</id> + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-assembly-plugin</artifactId> + <configuration> + <descriptor>src/assembly/accumulo.xml</descriptor> + <appendAssemblyId>false</appendAssemblyId> + <finalName>${project.artifactId}-${pkg.version}</finalName> + </configuration> + <executions> + <execution> + <id>build-app-package</id> + <phase>package</phase> + <goals> + <goal>single</goal> + </goals> + </execution> + </executions> + </plugin> + + <plugin> + <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>${maven-dependency-plugin.version}</version> <executions> @@ -106,7 +182,7 @@ <test.app.pkg.dir>target</test.app.pkg.dir> <test.app.pkg.file>${app.package.name}.zip</test.app.pkg.file> <test.app.resource>target/test-config/resources.json</test.app.resource> - <test.app.template>target/${app.package.name}/appConfig.json</test.app.template> + <test.app.template>target/test-config/appConfig.json</test.app.template> </systemPropertyVariables> </configuration> </plugin> http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/3c1d9dc2/app-packages/accumulo/src/assembly/accumulo.xml ---------------------------------------------------------------------- diff --git a/app-packages/accumulo/src/assembly/accumulo.xml b/app-packages/accumulo/src/assembly/accumulo.xml index ca39d53..c45cad7 100644 --- a/app-packages/accumulo/src/assembly/accumulo.xml +++ b/app-packages/accumulo/src/assembly/accumulo.xml @@ -42,7 +42,7 @@ <fileMode>0755</fileMode> </file> <file> - <source>${project.build.directory}/${work.dir}/accumulo-${accumulo.version}-bin.tar.gz</source> + <source>${project.build.directory}/${work.dir}/${pkg.name}</source> <outputDirectory>package/files</outputDirectory> <filtered>false</filtered> <fileMode>0755</fileMode> http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/3c1d9dc2/app-packages/accumulo/src/test/groovy/org/apache/slider/funtest/accumulo/AccumuloBasicIT.groovy ---------------------------------------------------------------------- diff --git a/app-packages/accumulo/src/test/groovy/org/apache/slider/funtest/accumulo/AccumuloBasicIT.groovy b/app-packages/accumulo/src/test/groovy/org/apache/slider/funtest/accumulo/AccumuloBasicIT.groovy index dc9b1aa..81f7b58 100644 --- a/app-packages/accumulo/src/test/groovy/org/apache/slider/funtest/accumulo/AccumuloBasicIT.groovy +++ b/app-packages/accumulo/src/test/groovy/org/apache/slider/funtest/accumulo/AccumuloBasicIT.groovy @@ -28,6 +28,7 @@ import org.apache.slider.accumulo.CustomAuthenticator import org.apache.slider.api.ClusterDescription import org.apache.slider.client.SliderClient import org.apache.slider.common.SliderKeys +import org.apache.slider.common.tools.SliderUtils import org.apache.slider.core.conf.ConfTree import org.apache.slider.core.persist.ConfTreeSerDeser import org.apache.slider.core.registry.docstore.PublishedConfiguration @@ -46,6 +47,12 @@ class AccumuloBasicIT extends AccumuloAgentCommandTestBase { protected static final String TRUST_PASS = "trustpass" protected ConfTree tree + AccumuloBasicIT() { + if (SliderUtils.isHadoopClusterSecure(SLIDER_CONFIG)) { + APP_TEMPLATE = "target/test-config/appConfig_kerberos.json" + } + } + @Before public void createKeyStore() { ConfTreeSerDeser c = new ConfTreeSerDeser() http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/3c1d9dc2/app-packages/accumulo/src/test/groovy/org/apache/slider/funtest/accumulo/AccumuloMonitorSSLIT.groovy ---------------------------------------------------------------------- diff --git a/app-packages/accumulo/src/test/groovy/org/apache/slider/funtest/accumulo/AccumuloMonitorSSLIT.groovy b/app-packages/accumulo/src/test/groovy/org/apache/slider/funtest/accumulo/AccumuloMonitorSSLIT.groovy index b5dd77e..3cabfd7 100644 --- a/app-packages/accumulo/src/test/groovy/org/apache/slider/funtest/accumulo/AccumuloMonitorSSLIT.groovy +++ b/app-packages/accumulo/src/test/groovy/org/apache/slider/funtest/accumulo/AccumuloMonitorSSLIT.groovy @@ -20,6 +20,7 @@ package org.apache.slider.funtest.accumulo import groovy.util.logging.Slf4j import org.apache.slider.api.ClusterDescription import org.apache.slider.client.SliderClient +import org.apache.slider.common.tools.SliderUtils import javax.net.ssl.KeyManager import javax.net.ssl.SSLContext @@ -32,7 +33,11 @@ import java.security.cert.X509Certificate @Slf4j class AccumuloMonitorSSLIT extends AccumuloSSLTestBase { AccumuloMonitorSSLIT() { - APP_TEMPLATE = "target/test-config/appConfig_monitor_ssl.json" + if (SliderUtils.isHadoopClusterSecure(SLIDER_CONFIG)) { + APP_TEMPLATE = "target/test-config/appConfig_monitor_ssl_kerberos.json" + } else { + APP_TEMPLATE = "target/test-config/appConfig_monitor_ssl.json" + } } @Override http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/3c1d9dc2/app-packages/accumulo/src/test/groovy/org/apache/slider/funtest/accumulo/AccumuloSSLTestBase.groovy ---------------------------------------------------------------------- diff --git a/app-packages/accumulo/src/test/groovy/org/apache/slider/funtest/accumulo/AccumuloSSLTestBase.groovy b/app-packages/accumulo/src/test/groovy/org/apache/slider/funtest/accumulo/AccumuloSSLTestBase.groovy index 8a1b0d2..eca7da3 100644 --- a/app-packages/accumulo/src/test/groovy/org/apache/slider/funtest/accumulo/AccumuloSSLTestBase.groovy +++ b/app-packages/accumulo/src/test/groovy/org/apache/slider/funtest/accumulo/AccumuloSSLTestBase.groovy @@ -22,6 +22,7 @@ import org.apache.accumulo.core.conf.Property import org.apache.hadoop.conf.Configuration import org.apache.hadoop.fs.Path import org.apache.hadoop.yarn.conf.YarnConfiguration +import org.apache.slider.common.tools.SliderUtils import org.apache.slider.funtest.framework.AgentUploads import org.junit.Before @@ -30,7 +31,11 @@ class AccumuloSSLTestBase extends AccumuloBasicIT { File clientKeyStoreFile = new File(TEST_APP_PKG_DIR, "keystore.jks") AccumuloSSLTestBase() { - APP_TEMPLATE = "target/test-config/appConfig_ssl.json" + if (SliderUtils.isHadoopClusterSecure(SLIDER_CONFIG)) { + APP_TEMPLATE = "target/test-config/appConfig_ssl_kerberos.json" + } else { + APP_TEMPLATE = "target/test-config/appConfig_ssl.json" + } } @Override http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/3c1d9dc2/app-packages/accumulo/src/test/resources/appConfig.json ---------------------------------------------------------------------- diff --git a/app-packages/accumulo/src/test/resources/appConfig.json b/app-packages/accumulo/src/test/resources/appConfig.json new file mode 100644 index 0000000..c113d4a --- /dev/null +++ b/app-packages/accumulo/src/test/resources/appConfig.json @@ -0,0 +1,55 @@ +{ + "schema": "http://example.org/specification/v2.0.0", + "metadata": { + }, + "global": { + "application.def": "${app.package.name}.zip", + "java_home": "/usr/lib/jvm/java", + "site.global.app_user": "${app.user}", + "site.global.app_log_dir": "${AGENT_LOG_ROOT}", + "site.global.app_pid_dir": "${AGENT_WORK_ROOT}/app/run", + "site.global.app_root": "${AGENT_WORK_ROOT}/app/install/accumulo-${accumulo.version}", + "site.global.tserver_heapsize": "256m", + "site.global.master_heapsize": "128m", + "site.global.monitor_heapsize": "64m", + "site.global.gc_heapsize": "64m", + "site.global.other_heapsize": "128m", + "site.global.hadoop_prefix": "/usr/lib/hadoop", + "site.global.hadoop_conf_dir": "/etc/hadoop/conf", + "site.global.zookeeper_home": "/usr/lib/zookeeper", + "site.global.accumulo_instance_name": "${USER}-${CLUSTER_NAME}", + "site.global.accumulo_root_password": "NOT_USED", + "site.global.user_group": "${app.user.group}", + "site.global.security_enabled": "false", + "site.global.ssl_cert_dir": "ssl", + "site.global.monitor_protocol": "http", + "site.accumulo-site.instance.volumes": "${DEFAULT_DATA_DIR}/data", + "site.accumulo-site.instance.zookeeper.host": "${ZK_HOST}", + "site.accumulo-site.instance.security.authenticator": "org.apache.slider.accumulo.CustomAuthenticator", + "site.accumulo-site.general.security.credential.provider.paths": "jceks://hdfs/user/${USER}/accumulo-${CLUSTER_NAME}.jceks", + "site.accumulo-site.tserver.memory.maps.native.enabled": "false", + "site.accumulo-site.tserver.memory.maps.max": "80M", + "site.accumulo-site.tserver.cache.data.size": "7M", + "site.accumulo-site.tserver.cache.index.size": "20M", + "site.accumulo-site.trace.user": "root", + "site.accumulo-site.tserver.sort.buffer.size": "50M", + "site.accumulo-site.tserver.walog.max.size": "40M", + "site.accumulo-site.master.port.client": "0", + "site.accumulo-site.trace.port.client": "0", + "site.accumulo-site.tserver.port.client": "0", + "site.accumulo-site.gc.port.client": "0", + "site.accumulo-site.monitor.port.client": "${ACCUMULO_MONITOR.ALLOCATED_PORT}", + "site.accumulo-site.monitor.port.log4j": "0", + "site.accumulo-site.master.replication.coordinator.port": "0", + "site.accumulo-site.replication.receipt.service.port": "0", + "site.accumulo-site.general.classpaths": "$ACCUMULO_HOME/lib/accumulo-server.jar,\n$ACCUMULO_HOME/lib/accumulo-core.jar,\n$ACCUMULO_HOME/lib/accumulo-start.jar,\n$ACCUMULO_HOME/lib/accumulo-fate.jar,\n$ACCUMULO_HOME/lib/accumulo-proxy.jar,\n$ACCUMULO_HOME/lib/[^.].*.jar,\n$ZOOKEEPER_HOME/zookeeper[^.].*.jar,\n$HADOOP_CONF_DIR,\n$HADOOP_PREFIX/[^.].*.jar,\n$HADOOP_PREFIX/lib/[^.].*.jar,\n$HADOOP_PREFIX/share/hadoop/common/.*.jar,\n$HADOOP_PREFIX/share/hadoop/common/lib/.*.jar,\n$HADOOP_PREFIX/share/hadoop/hdfs/.*.jar,\n$HADOOP_PREFIX/share/hadoop/mapreduce/.*.jar,\n$HADOOP_PREFIX/share/hadoop/yarn/.*.jar,\n/usr/lib/hadoop/.*.jar,\n/usr/lib/hadoop/lib/.*.jar,\n/usr/lib/hadoop-hdfs/.*.jar,\n/usr/lib/hadoop-mapreduce/.*.jar,\n/usr/lib/hadoop-yarn/.*.jar," + }, + "credentials": { + "jceks://hdfs/user/${USER}/accumulo-${CLUSTER_NAME}.jceks": ["root.initial.password", "instance.secret", "trace.token.property.password"] + }, + "components": { + "slider-appmaster": { + "jvm.heapsize": "256M" + } + } +} http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/3c1d9dc2/app-packages/accumulo/src/test/resources/appConfig_kerberos.json ---------------------------------------------------------------------- diff --git a/app-packages/accumulo/src/test/resources/appConfig_kerberos.json b/app-packages/accumulo/src/test/resources/appConfig_kerberos.json index b1bff37..d6f849c 100644 --- a/app-packages/accumulo/src/test/resources/appConfig_kerberos.json +++ b/app-packages/accumulo/src/test/resources/appConfig_kerberos.json @@ -5,7 +5,7 @@ "global": { "application.def": "${app.package.name}.zip", "java_home": "/usr/lib/jvm/java", - "site.global.app_user": "accumulo", + "site.global.app_user": "${app.user}", "site.global.app_log_dir": "${AGENT_LOG_ROOT}", "site.global.app_pid_dir": "${AGENT_WORK_ROOT}/app/run", "site.global.app_root": "${AGENT_WORK_ROOT}/app/install/accumulo-${accumulo.version}", @@ -19,7 +19,7 @@ "site.global.zookeeper_home": "/usr/lib/zookeeper", "site.global.accumulo_instance_name": "${USER}-${CLUSTER_NAME}", "site.global.accumulo_root_password": "NOT_USED", - "site.global.user_group": "accumulo", + "site.global.user_group": "${app.user.group}", "site.global.security_enabled": "false", "site.global.ssl_cert_dir": "ssl", "site.global.monitor_protocol": "http", @@ -27,8 +27,8 @@ "site.accumulo-site.instance.zookeeper.host": "${ZK_HOST}", "site.accumulo-site.instance.security.authenticator": "org.apache.slider.accumulo.CustomAuthenticator", "site.accumulo-site.general.security.credential.provider.paths": "jceks://hdfs/user/${USER}/accumulo-${CLUSTER_NAME}.jceks", - "site.accumulo-site.general.kerberos.keytab": "/etc/security/keytabs/accumulo.service.keytab", - "site.accumulo-site.general.kerberos.principal": "accumulo/_h...@example.com", + "site.accumulo-site.general.kerberos.keytab": "${accumulo.keytab}", + "site.accumulo-site.general.kerberos.principal": "${accumulo.principal}", "site.accumulo-site.tserver.memory.maps.native.enabled": "false", "site.accumulo-site.tserver.memory.maps.max": "80M", "site.accumulo-site.tserver.cache.data.size": "7M", http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/3c1d9dc2/app-packages/accumulo/src/test/resources/appConfig_monitor_ssl.json ---------------------------------------------------------------------- diff --git a/app-packages/accumulo/src/test/resources/appConfig_monitor_ssl.json b/app-packages/accumulo/src/test/resources/appConfig_monitor_ssl.json index 61a9bb1..d860e96 100644 --- a/app-packages/accumulo/src/test/resources/appConfig_monitor_ssl.json +++ b/app-packages/accumulo/src/test/resources/appConfig_monitor_ssl.json @@ -5,7 +5,7 @@ "global": { "application.def": "${app.package.name}.zip", "java_home": "/usr/lib/jvm/java", - "site.global.app_user": "yarn", + "site.global.app_user": "${app.user}", "site.global.app_log_dir": "${AGENT_LOG_ROOT}", "site.global.app_pid_dir": "${AGENT_WORK_ROOT}/app/run", "site.global.app_root": "${AGENT_WORK_ROOT}/app/install/accumulo-${accumulo.version}", @@ -19,7 +19,7 @@ "site.global.zookeeper_home": "/usr/lib/zookeeper", "site.global.accumulo_instance_name": "${USER}-${CLUSTER_NAME}", "site.global.accumulo_root_password": "NOT_USED", - "site.global.user_group": "hadoop", + "site.global.user_group": "${app.user.group}", "site.global.security_enabled": "false", "site.global.ssl_cert_dir": "ssl", "site.global.monitor_protocol": "https", http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/3c1d9dc2/app-packages/accumulo/src/test/resources/appConfig_monitor_ssl_kerberos.json ---------------------------------------------------------------------- diff --git a/app-packages/accumulo/src/test/resources/appConfig_monitor_ssl_kerberos.json b/app-packages/accumulo/src/test/resources/appConfig_monitor_ssl_kerberos.json new file mode 100644 index 0000000..1357c4e --- /dev/null +++ b/app-packages/accumulo/src/test/resources/appConfig_monitor_ssl_kerberos.json @@ -0,0 +1,57 @@ +{ + "schema": "http://example.org/specification/v2.0.0", + "metadata": { + }, + "global": { + "application.def": "${app.package.name}.zip", + "java_home": "/usr/lib/jvm/java", + "site.global.app_user": "${app.user}", + "site.global.app_log_dir": "${AGENT_LOG_ROOT}", + "site.global.app_pid_dir": "${AGENT_WORK_ROOT}/app/run", + "site.global.app_root": "${AGENT_WORK_ROOT}/app/install/accumulo-${accumulo.version}", + "site.global.tserver_heapsize": "256m", + "site.global.master_heapsize": "128m", + "site.global.monitor_heapsize": "64m", + "site.global.gc_heapsize": "64m", + "site.global.other_heapsize": "128m", + "site.global.hadoop_prefix": "/usr/lib/hadoop", + "site.global.hadoop_conf_dir": "/etc/hadoop/conf", + "site.global.zookeeper_home": "/usr/lib/zookeeper", + "site.global.accumulo_instance_name": "${USER}-${CLUSTER_NAME}", + "site.global.accumulo_root_password": "NOT_USED", + "site.global.user_group": "${app.user.group}", + "site.global.security_enabled": "false", + "site.global.ssl_cert_dir": "ssl", + "site.global.monitor_protocol": "https", + "site.accumulo-site.instance.volumes": "${DEFAULT_DATA_DIR}/data", + "site.accumulo-site.instance.zookeeper.host": "${ZK_HOST}", + "site.accumulo-site.instance.security.authenticator": "org.apache.slider.accumulo.CustomAuthenticator", + "site.accumulo-site.general.security.credential.provider.paths": "jceks://hdfs/user/${USER}/accumulo-${CLUSTER_NAME}.jceks", + "site.accumulo-site.general.kerberos.keytab": "${accumulo.keytab}", + "site.accumulo-site.general.kerberos.principal": "${accumulo.principal}", + "site.accumulo-site.tserver.memory.maps.native.enabled": "false", + "site.accumulo-site.tserver.memory.maps.max": "80M", + "site.accumulo-site.tserver.cache.data.size": "7M", + "site.accumulo-site.tserver.cache.index.size": "20M", + "site.accumulo-site.trace.user": "root", + "site.accumulo-site.tserver.sort.buffer.size": "50M", + "site.accumulo-site.tserver.walog.max.size": "40M", + "site.accumulo-site.master.port.client": "0", + "site.accumulo-site.trace.port.client": "0", + "site.accumulo-site.tserver.port.client": "0", + "site.accumulo-site.gc.port.client": "0", + "site.accumulo-site.monitor.port.client": "${ACCUMULO_MONITOR.ALLOCATED_PORT}", + "site.accumulo-site.monitor.port.log4j": "0", + "site.accumulo-site.master.replication.coordinator.port": "0", + "site.accumulo-site.replication.receipt.service.port": "0", + "site.accumulo-site.general.classpaths": "$ACCUMULO_HOME/lib/accumulo-server.jar,\n$ACCUMULO_HOME/lib/accumulo-core.jar,\n$ACCUMULO_HOME/lib/accumulo-start.jar,\n$ACCUMULO_HOME/lib/accumulo-fate.jar,\n$ACCUMULO_HOME/lib/accumulo-proxy.jar,\n$ACCUMULO_HOME/lib/[^.].*.jar,\n$ZOOKEEPER_HOME/zookeeper[^.].*.jar,\n$HADOOP_CONF_DIR,\n$HADOOP_PREFIX/[^.].*.jar,\n$HADOOP_PREFIX/lib/[^.].*.jar,\n$HADOOP_PREFIX/share/hadoop/common/.*.jar,\n$HADOOP_PREFIX/share/hadoop/common/lib/.*.jar,\n$HADOOP_PREFIX/share/hadoop/hdfs/.*.jar,\n$HADOOP_PREFIX/share/hadoop/mapreduce/.*.jar,\n$HADOOP_PREFIX/share/hadoop/yarn/.*.jar,\n/usr/lib/hadoop/.*.jar,\n/usr/lib/hadoop/lib/.*.jar,\n/usr/lib/hadoop-hdfs/.*.jar,\n/usr/lib/hadoop-mapreduce/.*.jar,\n/usr/lib/hadoop-yarn/.*.jar," + }, + "credentials": { + "jceks://hdfs/user/${USER}/accumulo-${CLUSTER_NAME}.jceks": ["root.initial.password", "instance.secret", "trace.token.property.password", "monitor.ssl.keyStorePassword", "monitor.ssl.trustStorePassword"] + }, + "components": { + "slider-appmaster": { + "jvm.heapsize": "256M" + } + } +} http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/3c1d9dc2/app-packages/accumulo/src/test/resources/appConfig_ssl.json ---------------------------------------------------------------------- diff --git a/app-packages/accumulo/src/test/resources/appConfig_ssl.json b/app-packages/accumulo/src/test/resources/appConfig_ssl.json index e46d40e..b0bc981 100644 --- a/app-packages/accumulo/src/test/resources/appConfig_ssl.json +++ b/app-packages/accumulo/src/test/resources/appConfig_ssl.json @@ -5,7 +5,7 @@ "global": { "application.def": "${app.package.name}.zip", "java_home": "/usr/lib/jvm/java", - "site.global.app_user": "yarn", + "site.global.app_user": "${app.user}", "site.global.app_log_dir": "${AGENT_LOG_ROOT}", "site.global.app_pid_dir": "${AGENT_WORK_ROOT}/app/run", "site.global.app_root": "${AGENT_WORK_ROOT}/app/install/accumulo-${accumulo.version}", @@ -19,7 +19,7 @@ "site.global.zookeeper_home": "/usr/lib/zookeeper", "site.global.accumulo_instance_name": "${USER}-${CLUSTER_NAME}", "site.global.accumulo_root_password": "NOT_USED", - "site.global.user_group": "hadoop", + "site.global.user_group": "${app.user.group}", "site.global.security_enabled": "false", "site.global.ssl_cert_dir": "ssl", "site.global.monitor_protocol": "http", http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/3c1d9dc2/app-packages/accumulo/src/test/resources/appConfig_ssl_kerberos.json ---------------------------------------------------------------------- diff --git a/app-packages/accumulo/src/test/resources/appConfig_ssl_kerberos.json b/app-packages/accumulo/src/test/resources/appConfig_ssl_kerberos.json new file mode 100644 index 0000000..8072446 --- /dev/null +++ b/app-packages/accumulo/src/test/resources/appConfig_ssl_kerberos.json @@ -0,0 +1,59 @@ +{ + "schema": "http://example.org/specification/v2.0.0", + "metadata": { + }, + "global": { + "application.def": "${app.package.name}.zip", + "java_home": "/usr/lib/jvm/java", + "site.global.app_user": "${app.user}", + "site.global.app_log_dir": "${AGENT_LOG_ROOT}", + "site.global.app_pid_dir": "${AGENT_WORK_ROOT}/app/run", + "site.global.app_root": "${AGENT_WORK_ROOT}/app/install/accumulo-${accumulo.version}", + "site.global.tserver_heapsize": "256m", + "site.global.master_heapsize": "128m", + "site.global.monitor_heapsize": "64m", + "site.global.gc_heapsize": "64m", + "site.global.other_heapsize": "128m", + "site.global.hadoop_prefix": "/usr/lib/hadoop", + "site.global.hadoop_conf_dir": "/etc/hadoop/conf", + "site.global.zookeeper_home": "/usr/lib/zookeeper", + "site.global.accumulo_instance_name": "${USER}-${CLUSTER_NAME}", + "site.global.accumulo_root_password": "NOT_USED", + "site.global.user_group": "${app.user.group}", + "site.global.security_enabled": "false", + "site.global.ssl_cert_dir": "ssl", + "site.global.monitor_protocol": "http", + "site.accumulo-site.instance.volumes": "${DEFAULT_DATA_DIR}/data", + "site.accumulo-site.instance.zookeeper.host": "${ZK_HOST}", + "site.accumulo-site.instance.security.authenticator": "org.apache.slider.accumulo.CustomAuthenticator", + "site.accumulo-site.instance.rpc.ssl.enabled": "true", + "site.accumulo-site.instance.rpc.ssl.clientAuth": "true", + "site.accumulo-site.general.security.credential.provider.paths": "jceks://hdfs/user/${USER}/accumulo-${CLUSTER_NAME}.jceks", + "site.accumulo-site.general.kerberos.keytab": "${accumulo.keytab}", + "site.accumulo-site.general.kerberos.principal": "${accumulo.principal}", + "site.accumulo-site.tserver.memory.maps.native.enabled": "false", + "site.accumulo-site.tserver.memory.maps.max": "80M", + "site.accumulo-site.tserver.cache.data.size": "7M", + "site.accumulo-site.tserver.cache.index.size": "20M", + "site.accumulo-site.trace.user": "root", + "site.accumulo-site.tserver.sort.buffer.size": "50M", + "site.accumulo-site.tserver.walog.max.size": "40M", + "site.accumulo-site.master.port.client": "0", + "site.accumulo-site.trace.port.client": "0", + "site.accumulo-site.tserver.port.client": "0", + "site.accumulo-site.gc.port.client": "0", + "site.accumulo-site.monitor.port.client": "${ACCUMULO_MONITOR.ALLOCATED_PORT}", + "site.accumulo-site.monitor.port.log4j": "0", + "site.accumulo-site.master.replication.coordinator.port": "0", + "site.accumulo-site.replication.receipt.service.port": "0", + "site.accumulo-site.general.classpaths": "$ACCUMULO_HOME/lib/accumulo-server.jar,\n$ACCUMULO_HOME/lib/accumulo-core.jar,\n$ACCUMULO_HOME/lib/accumulo-start.jar,\n$ACCUMULO_HOME/lib/accumulo-fate.jar,\n$ACCUMULO_HOME/lib/accumulo-proxy.jar,\n$ACCUMULO_HOME/lib/[^.].*.jar,\n$ZOOKEEPER_HOME/zookeeper[^.].*.jar,\n$HADOOP_CONF_DIR,\n$HADOOP_PREFIX/[^.].*.jar,\n$HADOOP_PREFIX/lib/[^.].*.jar,\n$HADOOP_PREFIX/share/hadoop/common/.*.jar,\n$HADOOP_PREFIX/share/hadoop/common/lib/.*.jar,\n$HADOOP_PREFIX/share/hadoop/hdfs/.*.jar,\n$HADOOP_PREFIX/share/hadoop/mapreduce/.*.jar,\n$HADOOP_PREFIX/share/hadoop/yarn/.*.jar,\n/usr/lib/hadoop/.*.jar,\n/usr/lib/hadoop/lib/.*.jar,\n/usr/lib/hadoop-hdfs/.*.jar,\n/usr/lib/hadoop-mapreduce/.*.jar,\n/usr/lib/hadoop-yarn/.*.jar," + }, + "credentials": { + "jceks://hdfs/user/${USER}/accumulo-${CLUSTER_NAME}.jceks": ["root.initial.password", "instance.secret", "trace.token.property.password", "rpc.javax.net.ssl.keyStorePassword", "rpc.javax.net.ssl.trustStorePassword"] + }, + "components": { + "slider-appmaster": { + "jvm.heapsize": "256M" + } + } +}