Add Spike microservice chart
This is the Helm chart for the newly open-sourced Spike microservice.
Change-Id: I4bba11b87db0df22d7beedc528a4dea738af5378
Issue-ID: AAI-1524
Signed-off-by: Michael Arrastia <MArrasti@amdocs.com>
diff --git a/charts/aai-spike/resources/config/auth/tomcat_keystore b/charts/aai-spike/resources/config/auth/tomcat_keystore
new file mode 100644
index 0000000..9eec841
--- /dev/null
+++ b/charts/aai-spike/resources/config/auth/tomcat_keystore
Binary files differ
diff --git a/charts/aai-spike/resources/config/logback.xml b/charts/aai-spike/resources/config/logback.xml
new file mode 100644
index 0000000..e40ba13
--- /dev/null
+++ b/charts/aai-spike/resources/config/logback.xml
@@ -0,0 +1,194 @@
+<!--
+ ============LICENSE_START=======================================================
+ org.onap.aai
+ ================================================================================
+ Copyright © 2018 AT&T Intellectual Property. All rights reserved.
+ Copyright © 2018 Amdocs
+ ================================================================================
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ ============LICENSE_END=========================================================
+-->
+<configuration scan="true" scanPeriod="3 seconds" debug="false">
+ <!--<jmxConfigurator /> -->
+ <!-- directory path for all other type logs -->
+
+ <property name="logDir" value="/var/log/onap" />
+
+ <!-- specify the component name
+ <ECOMP-component-name>::= "MSO" | "DCAE" | "ASDC " | "AAI" |"Policy" | "SDNC" | "AC" -->
+ <property name="componentName" value="AAI-SPK" />
+
+ <!-- default eelf log file names -->
+ <property name="generalLogName" value="error" />
+ <property name="metricsLogName" value="metrics" />
+ <property name="auditLogName" value="audit" />
+ <property name="debugLogName" value="debug" />
+
+ <property name="errorLogPattern" value="%d{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%mdc{RequestId}|%thread|Spike|%mdc{PartnerName}|%logger||%.-5level|%msg%n" />
+ <property name="auditMetricPattern" value="%m%n" />
+
+ <property name="logDirectory" value="${logDir}/${componentName}" />
+
+ <!-- Example evaluator filter applied against console appender -->
+ <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+ <encoder>
+ <pattern>${errorLogPattern}</pattern>
+ </encoder>
+ </appender>
+
+ <!-- ============================================================================ -->
+ <!-- EELF Appenders -->
+ <!-- ============================================================================ -->
+
+ <!-- The EELFAppender is used to record events to the general application
+ log -->
+
+ <appender name="EELF"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/${generalLogName}.log</file>
+ <rollingPolicy
+ class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${logDirectory}/${generalLogName}.%d{yyyy-MM-dd}.log.zip
+ </fileNamePattern>
+ <maxHistory>60</maxHistory>
+ </rollingPolicy>
+ <encoder>
+ <pattern>${errorLogPattern}</pattern>
+ </encoder>
+ </appender>
+ <appender name="asyncEELF" class="ch.qos.logback.classic.AsyncAppender">
+ <!-- deny all events with a level below INFO, that is TRACE and DEBUG -->
+ <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+ <level>INFO</level>
+ </filter>
+ <queueSize>256</queueSize>
+ <appender-ref ref="EELF" />
+ </appender>
+
+ <!-- EELF Audit Appender. This appender is used to record audit engine
+ related logging events. The audit logger and appender are specializations
+ of the EELF application root logger and appender. This can be used to segregate
+ Policy engine events from other components, or it can be eliminated to record
+ these events as part of the application root log. -->
+
+ <appender name="EELFAudit"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/${auditLogName}.log</file>
+ <rollingPolicy
+ class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${logDirectory}/${auditLogName}.%d{yyyy-MM-dd}.log.zip
+ </fileNamePattern>
+ <maxHistory>60</maxHistory>
+ </rollingPolicy>
+ <encoder>
+ <pattern>${auditMetricPattern}</pattern>
+ </encoder>
+ </appender>
+ <appender name="asyncEELFAudit" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize>
+ <appender-ref ref="EELFAudit" />
+ </appender>
+
+ <appender name="EELFMetrics"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/${metricsLogName}.log</file>
+ <rollingPolicy
+ class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${logDirectory}/${metricsLogName}.%d{yyyy-MM-dd}.log.zip
+ </fileNamePattern>
+ <maxHistory>60</maxHistory>
+ </rollingPolicy>
+ <encoder>
+ <!-- <pattern>"%d{HH:mm:ss.SSS} [%thread] %-5level %logger{1024} -
+ %msg%n"</pattern> -->
+ <pattern>${auditMetricPattern}</pattern>
+ </encoder>
+ </appender>
+
+ <appender name="asyncEELFMetrics" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize>
+ <appender-ref ref="EELFMetrics"/>
+ </appender>
+
+ <appender name="EELFDebug"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/${debugLogName}.log</file>
+ <rollingPolicy
+ class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${logDirectory}/${debugLogName}.%d{yyyy-MM-dd}.log.zip
+ </fileNamePattern>
+ <maxHistory>60</maxHistory>
+ </rollingPolicy>
+ <encoder>
+ <pattern>${errorLogPattern}</pattern>
+ </encoder>
+ </appender>
+
+ <appender name="asyncEELFDebug" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize>
+ <appender-ref ref="EELFDebug" />
+ <includeCallerData>false</includeCallerData>
+ </appender>
+
+ <!-- ============================================================================ -->
+ <!-- EELF loggers -->
+ <!-- ============================================================================ -->
+ <logger name="com.att.eelf" level="info" additivity="false">
+ <appender-ref ref="asyncEELF" />
+ <appender-ref ref="asyncEELFDebug" />
+ </logger>
+
+ <logger name="com.att.eelf.audit" level="info" additivity="false">
+ <appender-ref ref="asyncEELFAudit" />
+ </logger>
+ <logger name="com.att.eelf.metrics" level="info" additivity="false">
+ <appender-ref ref="asyncEELFMetrics" />
+ </logger>
+
+ <!-- Spring related loggers -->
+ <logger name="org.springframework" level="WARN" />
+ <logger name="org.springframework.beans" level="WARN" />
+ <logger name="org.springframework.web" level="WARN" />
+ <logger name="com.blog.spring.jms" level="WARN" />
+
+ <!-- Spike service loggers -->
+ <logger name="org.onap.aai.spike" level="INFO" />
+
+ <!-- Other Loggers that may help troubleshoot -->
+ <logger name="net.sf" level="WARN" />
+ <logger name="org.apache" level="WARN" />
+ <logger name="org.apache.commons.httpclient" level="WARN" />
+ <logger name="org.apache.commons" level="WARN" />
+ <logger name="org.apache.coyote" level="WARN" />
+ <logger name="org.apache.jasper" level="WARN" />
+
+ <!-- Camel Related Loggers (including restlet/servlet/jaxrs/cxf logging.
+ May aid in troubleshooting) -->
+ <logger name="org.apache.camel" level="WARN" />
+ <logger name="org.apache.cxf" level="WARN" />
+ <logger name="org.apache.camel.processor.interceptor" level="WARN" />
+ <logger name="org.apache.cxf.jaxrs.interceptor" level="WARN" />
+ <logger name="org.apache.cxf.service" level="WARN" />
+ <logger name="org.restlet" level="WARN" />
+ <logger name="org.apache.camel.component.restlet" level="WARN" />
+
+ <!-- logback internals logging -->
+ <logger name="ch.qos.logback.classic" level="WARN" />
+ <logger name="ch.qos.logback.core" level="WARN" />
+
+ <root>
+ <appender-ref ref="asyncEELF" />
+ <!-- <appender-ref ref="asyncEELFDebug" /> -->
+ </root>
+
+</configuration>
diff --git a/charts/aai-spike/resources/config/model/edge_props/edge_properties_v10.json b/charts/aai-spike/resources/config/model/edge_props/edge_properties_v10.json
new file mode 100644
index 0000000..7cbddae
--- /dev/null
+++ b/charts/aai-spike/resources/config/model/edge_props/edge_properties_v10.json
@@ -0,0 +1,10 @@
+{
+ "isParent":"java.lang.Boolean",
+ "isParent-REV":"java.lang.Boolean",
+ "usesResource":"java.lang.Boolean",
+ "usesResource-REV":"java.lang.Boolean",
+ "SVC-INFRA":"java.lang.Boolean",
+ "SVC-INFRA-REV":"java.lang.Boolean",
+ "hasDelTarget":"java.lang.Boolean",
+ "hasDelTarget-REV":"java.lang.Boolean"
+}
diff --git a/charts/aai-spike/resources/config/model/edge_props/edge_properties_v11.json b/charts/aai-spike/resources/config/model/edge_props/edge_properties_v11.json
new file mode 100644
index 0000000..8d00636
--- /dev/null
+++ b/charts/aai-spike/resources/config/model/edge_props/edge_properties_v11.json
@@ -0,0 +1,6 @@
+{
+ "contains-other-v": "java.lang.String",
+ "delete-other-v": "java.lang.String",
+ "SVC-INFRA": "java.lang.String",
+ "prevent-delete": "java.lang.String"
+}
\ No newline at end of file
diff --git a/charts/aai-spike/resources/config/model/edge_props/edge_properties_v12.json b/charts/aai-spike/resources/config/model/edge_props/edge_properties_v12.json
new file mode 100644
index 0000000..8d00636
--- /dev/null
+++ b/charts/aai-spike/resources/config/model/edge_props/edge_properties_v12.json
@@ -0,0 +1,6 @@
+{
+ "contains-other-v": "java.lang.String",
+ "delete-other-v": "java.lang.String",
+ "SVC-INFRA": "java.lang.String",
+ "prevent-delete": "java.lang.String"
+}
\ No newline at end of file
diff --git a/charts/aai-spike/resources/config/model/edge_props/edge_properties_v13.json b/charts/aai-spike/resources/config/model/edge_props/edge_properties_v13.json
new file mode 100644
index 0000000..8d00636
--- /dev/null
+++ b/charts/aai-spike/resources/config/model/edge_props/edge_properties_v13.json
@@ -0,0 +1,6 @@
+{
+ "contains-other-v": "java.lang.String",
+ "delete-other-v": "java.lang.String",
+ "SVC-INFRA": "java.lang.String",
+ "prevent-delete": "java.lang.String"
+}
\ No newline at end of file
diff --git a/charts/aai-spike/resources/config/model/edge_props/edge_properties_v14.json b/charts/aai-spike/resources/config/model/edge_props/edge_properties_v14.json
new file mode 100644
index 0000000..8d00636
--- /dev/null
+++ b/charts/aai-spike/resources/config/model/edge_props/edge_properties_v14.json
@@ -0,0 +1,6 @@
+{
+ "contains-other-v": "java.lang.String",
+ "delete-other-v": "java.lang.String",
+ "SVC-INFRA": "java.lang.String",
+ "prevent-delete": "java.lang.String"
+}
\ No newline at end of file
diff --git a/charts/aai-spike/resources/config/model/edge_props/edge_properties_v7.json b/charts/aai-spike/resources/config/model/edge_props/edge_properties_v7.json
new file mode 100644
index 0000000..7cbddae
--- /dev/null
+++ b/charts/aai-spike/resources/config/model/edge_props/edge_properties_v7.json
@@ -0,0 +1,10 @@
+{
+ "isParent":"java.lang.Boolean",
+ "isParent-REV":"java.lang.Boolean",
+ "usesResource":"java.lang.Boolean",
+ "usesResource-REV":"java.lang.Boolean",
+ "SVC-INFRA":"java.lang.Boolean",
+ "SVC-INFRA-REV":"java.lang.Boolean",
+ "hasDelTarget":"java.lang.Boolean",
+ "hasDelTarget-REV":"java.lang.Boolean"
+}
diff --git a/charts/aai-spike/resources/config/model/edge_props/edge_properties_v8.json b/charts/aai-spike/resources/config/model/edge_props/edge_properties_v8.json
new file mode 100644
index 0000000..7cbddae
--- /dev/null
+++ b/charts/aai-spike/resources/config/model/edge_props/edge_properties_v8.json
@@ -0,0 +1,10 @@
+{
+ "isParent":"java.lang.Boolean",
+ "isParent-REV":"java.lang.Boolean",
+ "usesResource":"java.lang.Boolean",
+ "usesResource-REV":"java.lang.Boolean",
+ "SVC-INFRA":"java.lang.Boolean",
+ "SVC-INFRA-REV":"java.lang.Boolean",
+ "hasDelTarget":"java.lang.Boolean",
+ "hasDelTarget-REV":"java.lang.Boolean"
+}
diff --git a/charts/aai-spike/resources/config/model/edge_props/edge_properties_v9.json b/charts/aai-spike/resources/config/model/edge_props/edge_properties_v9.json
new file mode 100644
index 0000000..7cbddae
--- /dev/null
+++ b/charts/aai-spike/resources/config/model/edge_props/edge_properties_v9.json
@@ -0,0 +1,10 @@
+{
+ "isParent":"java.lang.Boolean",
+ "isParent-REV":"java.lang.Boolean",
+ "usesResource":"java.lang.Boolean",
+ "usesResource-REV":"java.lang.Boolean",
+ "SVC-INFRA":"java.lang.Boolean",
+ "SVC-INFRA-REV":"java.lang.Boolean",
+ "hasDelTarget":"java.lang.Boolean",
+ "hasDelTarget-REV":"java.lang.Boolean"
+}
diff --git a/charts/aai-spike/resources/config/schemaIngest.properties b/charts/aai-spike/resources/config/schemaIngest.properties
new file mode 100644
index 0000000..cc51f17
--- /dev/null
+++ b/charts/aai-spike/resources/config/schemaIngest.properties
@@ -0,0 +1,30 @@
+#
+# ============LICENSE_START=======================================================
+# org.onap.aai
+# ================================================================================
+# Copyright © 2018 AT&T Intellectual Property. All rights reserved.
+# Copyright © 2018 Amdocs
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ============LICENSE_END=========================================================
+#
+
+# Properties for the SchemaLocationsBean
+# The AAI Schema jar will be unpacked to bundleconfig/etc
+schemaConfig=NA
+# Files named aai_oxm_v*.xml are unpacked here:
+nodeDir=/opt/app/spike/bundleconfig/etc/oxm
+# DB Edge Rules are unpacked here:
+edgeDir=/opt/app/spike/bundleconfig/etc/dbedgerules
+# DB Edge Property files are copied here:
+edgePropsDir=/opt/app/spike/config/model/edge_props
\ No newline at end of file
diff --git a/charts/aai-spike/resources/config/spike-beans.xml b/charts/aai-spike/resources/config/spike-beans.xml
new file mode 100644
index 0000000..20dfbc5
--- /dev/null
+++ b/charts/aai-spike/resources/config/spike-beans.xml
@@ -0,0 +1,58 @@
+<!--
+ ============LICENSE_START=======================================================
+ org.onap.aai
+ ================================================================================
+ Copyright © 2018 AT&T Intellectual Property. All rights reserved.
+ Copyright © 2018 Amdocs
+ ================================================================================
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ ============LICENSE_END=========================================================
+-->
+<beans xmlns="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:util="http://www.springframework.org/schema/util"
+ xsi:schemaLocation="
+ http://www.springframework.org/schema/beans
+ http://www.springframework.org/schema/beans/spring-beans.xsd
+ http://www.springframework.org/schema/util
+ http://www.springframework.org/schema/util/spring-util.xsd">
+
+ <bean id="eventConsumer" class="org.onap.aai.event.client.DMaaPEventConsumer">
+ <constructor-arg name="host" value="message-router.{{.Release.Namespace}}:{{.Values.event.port.dmaap}}" />
+ <constructor-arg name="topic" value="{{.Values.event.consumer.topic}}" />
+ <constructor-arg name="username" value="" />
+ <constructor-arg name="password" value="" />
+ <constructor-arg name="consumerGroup" value="spike" />
+ <constructor-arg name="consumerId" value="spike" />
+ <constructor-arg name="timeoutMs" value="1000" />
+ <constructor-arg name="messageLimit" value="100" />
+ <constructor-arg name="transportType" value="HTTPAUTH" />
+ </bean>
+
+ <bean id="eventPublisher" class="org.onap.aai.event.client.DMaaPEventPublisher" >
+ <constructor-arg name="host" value="message-router.{{.Release.Namespace}}:{{.Values.event.port.dmaap}}" />
+ <constructor-arg name="topic" value="{{.Values.event.publisher.topic}}" />
+ <constructor-arg name="username" value="" />
+ <constructor-arg name="password" value="" />
+ <constructor-arg name="maxBatchSize" value="100" />
+ <constructor-arg name="maxAgeMs" value="250" />
+ <constructor-arg name="delayBetweenBatchesMs" value="50" />
+ <constructor-arg name="transportType" value="HTTPAUTH" />
+ </bean>
+
+ <bean id="spikeService" class="org.onap.aai.spike.service.SpikeService" init-method="startup">
+ <constructor-arg ref="eventConsumer" />
+ <constructor-arg ref="eventPublisher" />
+ </bean>
+
+</beans>
diff --git a/charts/aai-spike/resources/config/spike.properties b/charts/aai-spike/resources/config/spike.properties
new file mode 100644
index 0000000..c3ba4a3
--- /dev/null
+++ b/charts/aai-spike/resources/config/spike.properties
@@ -0,0 +1,28 @@
+#
+# ============LICENSE_START=======================================================
+# org.onap.aai
+# ================================================================================
+# Copyright © 2018 AT&T Intellectual Property. All rights reserved.
+# Copyright © 2018 Amdocs
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ============LICENSE_END=========================================================
+#
+
+# Spike configuration
+
+spike.event.poll.interval=30000
+spike.event.offset.period= 10000
+spike.event.queue.capacity=10000
+spike.event.queue.delay=10000
+spike.props.reserved=source-of-truth,last-mod-source-of-truth,aai-created-ts,aai-last-mod-ts