Merge "Added netbox.properties config file for SDNC"
authorJerome Doucerain <jerome.doucerain@bell.ca>
Wed, 29 Aug 2018 19:44:00 +0000 (19:44 +0000)
committerGerrit Code Review <gerrit@onap.org>
Wed, 29 Aug 2018 19:44:00 +0000 (19:44 +0000)
70 files changed:
kubernetes/clamp/resources/config/log/filebeat/filebeat.yml
kubernetes/clamp/resources/config/logback.xml
kubernetes/clamp/templates/service.yaml
kubernetes/clamp/values.yaml
kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-ves-inputs.yaml
kubernetes/dcaegen2/charts/dcae-bootstrap/values.yaml
kubernetes/oof/charts/oof-has/values.yaml
kubernetes/oof/values.yaml
kubernetes/pomba/charts/pomba-aaictxbuilder/resources/config/application.properties
kubernetes/pomba/charts/pomba-elasticsearch/resources/config/elasticsearch.yml
kubernetes/pomba/charts/pomba-networkdiscovery/Chart.yaml [new file with mode: 0644]
kubernetes/pomba/charts/pomba-networkdiscovery/requirements.yaml [new file with mode: 0644]
kubernetes/pomba/charts/pomba-networkdiscovery/resources/config/application.properties [new file with mode: 0644]
kubernetes/pomba/charts/pomba-networkdiscovery/resources/config/auth/enricher-client-cert.p12 [new file with mode: 0644]
kubernetes/pomba/charts/pomba-networkdiscovery/resources/config/log/logback.xml [new file with mode: 0644]
kubernetes/pomba/charts/pomba-networkdiscovery/templates/configmap.yaml [new file with mode: 0644]
kubernetes/pomba/charts/pomba-networkdiscovery/templates/deployment.yaml [new file with mode: 0644]
kubernetes/pomba/charts/pomba-networkdiscovery/templates/secrets.yaml [new file with mode: 0644]
kubernetes/pomba/charts/pomba-networkdiscovery/templates/service.yaml [new file with mode: 0644]
kubernetes/pomba/charts/pomba-networkdiscovery/values.yaml [new file with mode: 0644]
kubernetes/pomba/charts/pomba-networkdiscoveryctxbuilder/Chart.yaml [new file with mode: 0644]
kubernetes/pomba/charts/pomba-networkdiscoveryctxbuilder/requirements.yaml [new file with mode: 0644]
kubernetes/pomba/charts/pomba-networkdiscoveryctxbuilder/resources/config/application.properties [new file with mode: 0644]
kubernetes/pomba/charts/pomba-networkdiscoveryctxbuilder/resources/config/logback.xml [new file with mode: 0644]
kubernetes/pomba/charts/pomba-networkdiscoveryctxbuilder/templates/configmap.yaml [new file with mode: 0644]
kubernetes/pomba/charts/pomba-networkdiscoveryctxbuilder/templates/deployment.yaml [new file with mode: 0644]
kubernetes/pomba/charts/pomba-networkdiscoveryctxbuilder/templates/service.yaml [new file with mode: 0644]
kubernetes/pomba/charts/pomba-networkdiscoveryctxbuilder/values.yaml [new file with mode: 0644]
kubernetes/pomba/charts/pomba-search-data/.helmignore [new file with mode: 0644]
kubernetes/pomba/charts/pomba-search-data/Chart.yaml [new file with mode: 0644]
kubernetes/pomba/charts/pomba-search-data/resources/config/analysis-config.json [new file with mode: 0644]
kubernetes/pomba/charts/pomba-search-data/resources/config/auth/search_policy.json [new file with mode: 0644]
kubernetes/pomba/charts/pomba-search-data/resources/config/auth/tomcat_keystore [new file with mode: 0644]
kubernetes/pomba/charts/pomba-search-data/resources/config/dynamic-custom-template.json [new file with mode: 0644]
kubernetes/pomba/charts/pomba-search-data/resources/config/elastic-search.properties [new file with mode: 0644]
kubernetes/pomba/charts/pomba-search-data/resources/config/es-payload-translation.json [new file with mode: 0644]
kubernetes/pomba/charts/pomba-search-data/resources/config/filter-config.json [new file with mode: 0644]
kubernetes/pomba/charts/pomba-search-data/resources/config/log/logback.xml [new file with mode: 0644]
kubernetes/pomba/charts/pomba-search-data/templates/configmap.yaml [new file with mode: 0644]
kubernetes/pomba/charts/pomba-search-data/templates/deployment.yaml [new file with mode: 0644]
kubernetes/pomba/charts/pomba-search-data/templates/secret.yaml [new file with mode: 0644]
kubernetes/pomba/charts/pomba-search-data/templates/service.yaml [new file with mode: 0644]
kubernetes/pomba/charts/pomba-search-data/values.yaml [new file with mode: 0644]
kubernetes/pomba/charts/pomba-servicedecomposition/Chart.yaml [new file with mode: 0644]
kubernetes/pomba/charts/pomba-servicedecomposition/requirements.yaml [new file with mode: 0644]
kubernetes/pomba/charts/pomba-servicedecomposition/resources/config/application.properties [new file with mode: 0644]
kubernetes/pomba/charts/pomba-servicedecomposition/resources/config/log/logback.xml [new file with mode: 0644]
kubernetes/pomba/charts/pomba-servicedecomposition/templates/configmap.yaml [new file with mode: 0644]
kubernetes/pomba/charts/pomba-servicedecomposition/templates/deployment.yaml [new file with mode: 0644]
kubernetes/pomba/charts/pomba-servicedecomposition/templates/service.yaml [new file with mode: 0644]
kubernetes/pomba/charts/pomba-servicedecomposition/values.yaml [new file with mode: 0644]
kubernetes/pomba/charts/pomba-validation-service/Chart.yaml [new file with mode: 0644]
kubernetes/pomba/charts/pomba-validation-service/requirements.yaml [new file with mode: 0644]
kubernetes/pomba/charts/pomba-validation-service/resources/appconfig/README.txt [new file with mode: 0644]
kubernetes/pomba/charts/pomba-validation-service/resources/appconfig/aai-environment.properties [new file with mode: 0644]
kubernetes/pomba/charts/pomba-validation-service/resources/appconfig/auth/client-cert-onap.p12 [new file with mode: 0644]
kubernetes/pomba/charts/pomba-validation-service/resources/appconfig/auth/tomcat_keystore [new file with mode: 0644]
kubernetes/pomba/charts/pomba-validation-service/resources/appconfig/auth_policy.json [new file with mode: 0644]
kubernetes/pomba/charts/pomba-validation-service/resources/appconfig/rule-indexing.properties [new file with mode: 0644]
kubernetes/pomba/charts/pomba-validation-service/resources/appconfig/schemaIngest.properties [new file with mode: 0644]
kubernetes/pomba/charts/pomba-validation-service/resources/appconfig/topics/topic-poa-audit-result.properties [new file with mode: 0644]
kubernetes/pomba/charts/pomba-validation-service/resources/appconfig/topics/topic-poa-rule-validation.properties [new file with mode: 0644]
kubernetes/pomba/charts/pomba-validation-service/resources/appconfig/validation-service-auth.properties [new file with mode: 0644]
kubernetes/pomba/charts/pomba-validation-service/resources/appconfig/validation-service.properties [new file with mode: 0644]
kubernetes/pomba/charts/pomba-validation-service/resources/application.properties [new file with mode: 0644]
kubernetes/pomba/charts/pomba-validation-service/templates/configmap.yaml [new file with mode: 0644]
kubernetes/pomba/charts/pomba-validation-service/templates/deployment.yaml [new file with mode: 0644]
kubernetes/pomba/charts/pomba-validation-service/templates/secrets.yaml [new file with mode: 0644]
kubernetes/pomba/charts/pomba-validation-service/templates/service.yaml [new file with mode: 0644]
kubernetes/pomba/charts/pomba-validation-service/values.yaml [new file with mode: 0644]

index 44c0e6a..68c62db 100644 (file)
@@ -3,9 +3,9 @@ filebeat.prospectors:
 - input_type: log
   #This is the canolical path as mentioned in logback.xml, *.* means it will monitor all files in the directory.
   paths:
-    - /var/log/onap/*/*/*/*.log
-    - /var/log/onap/*/*/*.log
-    - /var/log/onap/*/*.log
+    - /var/log/ONAP/*/*/*/*.log
+    - /var/log/ONAP/*/*/*.log
+    - /var/log/ONAP/*/*.log
   #Files older than this should be ignored.In our case it will be 48 hours i.e. 2 days. It is a helping flag for clean_inactive
   ignore_older: 48h
   # Remove the registry entry for a file that is more than the specified time. In our case it will be 96 hours, i.e. 4 days. It will help to keep registry records with in limit
index 0a8f8d5..9008739 100644 (file)
@@ -1,18 +1,24 @@
-<configuration scan="true" scanPeriod="10 seconds" debug="false">
-               <jmxConfigurator />
-               <property resource="application.properties" />
-               <property name="logDirectory" value="/var/log/onap/clamp" />
+<included>
+       <jmxConfigurator />
+       <!-- Example evaluator filter applied against console appender -->
+<property name="p_tim" value="%d{&quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&quot;, UTC}"/>
+               <property name="p_lvl" value="%level"/>
+               <property name="p_log" value="%logger"/>
+               <property name="p_mdc" value="%replace(%replace(%mdc){'\t','\\\\t'}){'\n', '\\\\n'}"/>
+               <property name="p_msg" value="%replace(%replace(%msg){'\t', '\\\\t'}){'\n','\\\\n'}"/>
+               <property name="p_exc" value="%replace(%replace(%rootException){'\t', '\\\\t'}){'\n','\\\\n'}"/>
+               <property name="p_mak" value="%replace(%replace(%marker){'\t', '\\\\t'}){'\n','\\\\n'}"/>
+               <property name="p_thr" value="%thread"/>
+               <property name="defaultPattern" value="%nopexception${p_tim}\t${p_thr}\t${p_lvl}\t${p_log}\t${p_mdc}\t${p_msg}\t${p_exc}\t${p_mak}\t%n"/>
+               <property name="debugPattern" value="%nopexception${p_tim}|${p_lvl}|${p_mdc}|${p_exc}|%msg%n"/>
+
                <!-- Example evaluator filter applied against console appender -->
                <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
-                               <!-- filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>ERROR</level> 
-                                               <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter -->
-                               <!-- 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>
                                <encoder>
-                                               <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{1024} - %msg%n
-                                               </pattern>
+                                       <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{1024} - %msg%n</pattern>
                                </encoder>
                </appender>
 
                                <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
                                                <level>INFO</level>
                                </filter>
-                               <file>${logDirectory}/error.log</file>
+                               <file>${logDirectory}/error2.log</file>
                                <append>true</append>
                                <encoder>
-                                               <pattern>%date{"yyyy-MM-dd'T'HH:mm:ss,SSSXXX", UTC}|%X{RequestId}|%.20thread|%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%.-5level|%X{ErrorCode}|%X{ErrorDescription}|%msg%n</pattern>
+                                               <pattern>${defaultPattern}</pattern>
                                </encoder>
-                               <rollingPolicy
-                                               class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
-                                               <maxIndex>10</maxIndex>
-                                               <FileNamePattern>${logDirectory}/error.%i.log.zip
-                                               </FileNamePattern>
+                               <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
+                                       <fileNamePattern>${outputDirectory}/clamp/error.%d{yyyy-MM-dd}.%i.log.zip</fileNamePattern>
+                                       <maxFileSize>50MB</maxFileSize>
+                                       <maxHistory>30</maxHistory>
+                                       <totalSizeCap>10GB</totalSizeCap>
                                </rollingPolicy>
                                <triggeringPolicy
                                                class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
                                <file>${logDirectory}/debug.log</file>
                                <append>true</append>
                                <encoder>
-                                               <pattern>%date{"yyyy-MM-dd'T'HH:mm:ss,SSSXXX",UTC}|%X{RequestId}|%.20thread|%.-5level|%logger{36}|%msg%n</pattern>
+                                               <pattern>${debugPattern}</pattern>
                                </encoder>
-                               <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-                                       <fileNamePattern>${logDirectory}/debug.%d{yyyy-MM-dd}.%i.log.zip</fileNamePattern>
-                                       <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
-                                               <maxFileSize>10MB</maxFileSize>
-                                       </timeBasedFileNamingAndTriggeringPolicy>
-                                       <maxHistory>5</maxHistory>
+                               <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
+                                       <fileNamePattern>${outputDirectory}/clamp/debug.%d{yyyy-MM-dd}.%i.log.zip</fileNamePattern>
+                                       <maxFileSize>50MB</maxFileSize>
+                                       <maxHistory>30</maxHistory>
+                                       <totalSizeCap>10GB</totalSizeCap>
                                </rollingPolicy>
                </appender>
 
-               <appender name="AUDIT"
-                               class="ch.qos.logback.core.rolling.RollingFileAppender">
-                               <file>${logDirectory}/audit.log</file>
-                               <append>true</append>
-                               <encoder>
-                                               <pattern>%X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%.20thread|%X{VirtualServerName}|%X{ServiceName}|%X{PartnerName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDescription}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ElapsedTime}|%X{ServerFQDN}|%X{RemoteHost}|%X{ClassName}|%X{Unused}|%X{ProcessKey}|%X{CustomField1}|%X{CustomField2}|%X{CustomField3}|%X{CustomField4}|%msg%n
-                                               </pattern>
-                               </encoder>
-                               <rollingPolicy
-                                               class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
-                                               <maxIndex>10</maxIndex>
-                                               <FileNamePattern>${logDirectory}/audit.%i.log.zip
-                                               </FileNamePattern>
-                               </rollingPolicy>
-                               <triggeringPolicy
-                                               class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
-                                               <maxFileSize>10MB</maxFileSize>
-                               </triggeringPolicy>
-               </appender>
-               <appender name="asyncEELFAudit" class="ch.qos.logback.classic.AsyncAppender">
-                               <queueSize>256</queueSize>
-                               <appender-ref ref="AUDIT" />
-               </appender>
 
-               <appender name="METRIC"
-                               class="ch.qos.logback.core.rolling.RollingFileAppender">
-                               <file>${logDirectory}/metric.log</file>
-                               <append>true</append>
-                               <encoder>
-                                               <pattern>%X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%.20thread|%X{VirtualServerName}|%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDescription}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ElapsedTime}|%X{ServerFQDN}|%X{RemoteHost}|%X{ClassName}|%X{Unused}|%X{ProcessKey}|%X{TargetVirtualEntity}|%X{CustomField1}|%X{CustomField2}|%X{CustomField3}|%X{CustomField4}|
-                                                               %msg%n</pattern>
-                               </encoder>
-                               <rollingPolicy
-                                               class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
-                                               <maxIndex>10</maxIndex>
-                                               <FileNamePattern>${logDirectory}/metric.%i.log.zip
-                                               </FileNamePattern>
-                               </rollingPolicy>
-                               <triggeringPolicy
-                                               class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
-                                               <maxFileSize>10MB</maxFileSize>
-                               </triggeringPolicy>
-               </appender>
-               <appender name="asyncEELFMetrics" class="ch.qos.logback.classic.AsyncAppender">
-                               <queueSize>256</queueSize>
-                               <appender-ref ref="METRIC" />
-               </appender>
+       <appender name="AUDIT"
+               class="ch.qos.logback.core.rolling.RollingFileAppender">
+               <file>${logDirectory}/audit.log</file>
+               <append>true</append>
+               <encoder>
+                       <pattern>%X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%.20thread|%X{VirtualServerName}|%X{ServiceName}|%X{PartnerName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDescription}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ElapsedTime}|%X{ServerFQDN}|%X{RemoteHost}|%X{ClassName}|%X{Unused}|%X{ProcessKey}|%X{CustomField1}|%X{CustomField2}|%X{CustomField3}|%X{CustomField4}|%msg%n
+                       </pattern>
+               </encoder>
+               <rollingPolicy
+                       class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+                       <maxIndex>10</maxIndex>
+                       <FileNamePattern>${logDirectory}/audit.%i.log.zip
+                       </FileNamePattern>
+               </rollingPolicy>
+               <triggeringPolicy
+                       class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+                       <maxFileSize>10MB</maxFileSize>
+               </triggeringPolicy>
+       </appender>
+       <appender name="asyncEELFAudit"
+               class="ch.qos.logback.classic.AsyncAppender">
+               <queueSize>256</queueSize>
+               <appender-ref ref="AUDIT" />
+       </appender>
 
-               <!-- SECURITY related loggers -->
-               <appender name="SECURITY"
-                               class="ch.qos.logback.core.rolling.RollingFileAppender">
-                               <file>${logDirectory}/security.log</file>
-                               <append>true</append>
-                               <encoder>
-                                               <pattern>%X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%.20thread|%X{VirtualServerName}|%X{ServiceName}|%X{PartnerName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDescription}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ElapsedTime}|%X{ServerFQDN}|%X{RemoteHost}|%X{ClassName}|%X{Unused}|%X{ProcessKey}|%X{CustomField1}|%X{CustomField2}|%X{CustomField3}|%X{CustomField4}|%msg%n
-                                               </pattern>
-                               </encoder>
-                               <rollingPolicy
-                                               class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
-                                               <maxIndex>10</maxIndex>
-                                               <FileNamePattern>${logDirectory}/security.%i.log.zip
-                                               </FileNamePattern>
-                               </rollingPolicy>
-                               <triggeringPolicy
-                                               class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
-                                               <maxFileSize>10MB</maxFileSize>
-                               </triggeringPolicy>
-               </appender>
-               <appender name="asyncEELFSecurity" class="ch.qos.logback.classic.AsyncAppender">
-                               <queueSize>256</queueSize>
-                               <appender-ref ref="SECURITY" />
-               </appender>
-
-               <!-- CLDS related loggers -->
-               <logger name="org.onap.clamp.clds" level="INFO" additivity="true">
-                               <appender-ref ref="ERROR" />
-               </logger>
+       <appender name="METRIC"
+               class="ch.qos.logback.core.rolling.RollingFileAppender">
+               <file>${logDirectory}/metric.log</file>
+               <append>true</append>
+               <encoder>
+                       <pattern>%X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%.20thread|%X{VirtualServerName}|%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDescription}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ElapsedTime}|%X{ServerFQDN}|%X{RemoteHost}|%X{ClassName}|%X{Unused}|%X{ProcessKey}|%X{TargetVirtualEntity}|%X{CustomField1}|%X{CustomField2}|%X{CustomField3}|%X{CustomField4}|
+                               %msg%n</pattern>
+               </encoder>
+               <rollingPolicy
+                       class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+                       <maxIndex>10</maxIndex>
+                       <FileNamePattern>${logDirectory}/metric.%i.log.zip
+                       </FileNamePattern>
+               </rollingPolicy>
+               <triggeringPolicy
+                       class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+                       <maxFileSize>10MB</maxFileSize>
+               </triggeringPolicy>
+       </appender>
+       <appender name="asyncEELFMetrics"
+               class="ch.qos.logback.classic.AsyncAppender">
+               <queueSize>256</queueSize>
+               <appender-ref ref="METRIC" />
+       </appender>
 
-               <!-- CLDS related loggers -->
-               <logger name="com.att.eelf.error" level="OFF" additivity="true">
-                               <appender-ref ref="ERROR" />
-               </logger>
-               <!-- EELF related loggers -->
-               <logger name="com.att.eelf.audit" level="INFO" additivity="false">
-                               <appender-ref ref="asyncEELFAudit" />
-               </logger>
-               <logger name="com.att.eelf.metrics" level="DEBUG" additivity="false">
-                               <appender-ref ref="asyncEELFMetrics" />
-               </logger>
-               <logger name="com.att.eelf.security" level="DEBUG" additivity="false">
-                               <appender-ref ref="asyncEELFSecurity" />
-               </logger>
+       <!-- SECURITY related loggers -->
+       <appender name="SECURITY"
+               class="ch.qos.logback.core.rolling.RollingFileAppender">
+               <file>${logDirectory}/security.log</file>
+               <append>true</append>
+               <encoder>
+                       <pattern>%X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%.20thread|%X{VirtualServerName}|%X{ServiceName}|%X{PartnerName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDescription}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ElapsedTime}|%X{ServerFQDN}|%X{RemoteHost}|%X{ClassName}|%X{Unused}|%X{ProcessKey}|%X{CustomField1}|%X{CustomField2}|%X{CustomField3}|%X{CustomField4}|%msg%n
+                       </pattern>
+               </encoder>
+               <rollingPolicy
+                       class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+                       <maxIndex>10</maxIndex>
+                       <FileNamePattern>${logDirectory}/security.%i.log.zip
+                       </FileNamePattern>
+               </rollingPolicy>
+               <triggeringPolicy
+                       class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+                       <maxFileSize>10MB</maxFileSize>
+               </triggeringPolicy>
+       </appender>
+       <appender name="asyncEELFSecurity"
+               class="ch.qos.logback.classic.AsyncAppender">
+               <queueSize>256</queueSize>
+               <appender-ref ref="SECURITY" />
+       </appender>
+       <!-- AAF related loggers -->
+       <logger name="org.onap.aaf" level="INFO" additivity="true">
+               <appender-ref ref="DEBUG" />
+       </logger>
+       <logger name="org.apache.catalina.core" level="INFO"
+               additivity="true">
+               <appender-ref ref="DEBUG" />
+       </logger>
+       <!-- CLDS related loggers -->
+       <logger name="org.onap.clamp.clds" level="INFO"
+               additivity="true">
+               <appender-ref ref="ERROR" />
+       </logger>
 
+       <!-- CLDS related loggers -->
+       <logger name="com.att.eelf.error" level="OFF" additivity="true">
+               <appender-ref ref="ERROR" />
+       </logger>
+       <!-- EELF related loggers -->
+       <logger name="com.att.eelf.audit" level="INFO"
+               additivity="false">
+               <appender-ref ref="asyncEELFAudit" />
+       </logger>
+       <logger name="com.att.eelf.metrics" level="DEBUG"
+               additivity="false">
+               <appender-ref ref="asyncEELFMetrics" />
+       </logger>
+       <logger name="com.att.eelf.security" level="DEBUG"
+               additivity="false">
+               <appender-ref ref="asyncEELFSecurity" />
+       </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" />
+       <!-- Spring related loggers -->
+       <logger name="org.springframework" level="DEBUG" />
 
-               <!-- Other Loggers that may help troubleshoot -->
-               <logger name="net.sf" 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" />
+       <!-- Other Loggers that may help troubleshoot -->
+       <logger name="org.apache" level="DEBUG" />
 
-               <!-- 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="DEBUG" />
-               <logger name="org.apache.camel.component.restlet" level="DEBUG" />
+       <!-- logback internals logging -->
+       <logger name="ch.qos.logback.classic" level="INFO" />
+       <logger name="ch.qos.logback.core" level="INFO" />
 
-               <!-- logback internals logging -->
-               <logger name="ch.qos.logback.classic" level="INFO" />
-               <logger name="ch.qos.logback.core" level="INFO" />
-
-               <!-- logback jms appenders & loggers definition starts here -->
-               <!-- logback jms appenders & loggers definition starts here -->
-               <appender name="auditLogs"
-                               class="ch.qos.logback.core.rolling.RollingFileAppender">
-                               <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
-                               </filter>
-                               <file>${logDirectory}/Audit.log</file>
-                               <rollingPolicy
-                                               class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
-                                               <fileNamePattern>${logDirectory}/Audit.%i.log.zip
-                                               </fileNamePattern>
-                                               <minIndex>1</minIndex>
-                                               <maxIndex>9</maxIndex>
-                               </rollingPolicy>
-                               <triggeringPolicy
-                                               class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
-                                               <maxFileSize>5MB</maxFileSize>
-                               </triggeringPolicy>
-                               <encoder>
-                                               <pattern>"%d [%thread] %-5level %logger{1024} - %msg%n"</pattern>
-                               </encoder>
-               </appender>
-               <appender name="perfLogs"
-                               class="ch.qos.logback.core.rolling.RollingFileAppender">
-                               <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
-                               </filter>
-                               <file>${logDirectory}/Perform.log</file>
-                               <rollingPolicy
-                                               class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
-                                               <fileNamePattern>${logDirectory}/Perform.%i.log.zip
-                                               </fileNamePattern>
-                                               <minIndex>1</minIndex>
-                                               <maxIndex>9</maxIndex>
-                               </rollingPolicy>
-                               <triggeringPolicy
-                                               class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
-                                               <maxFileSize>5MB</maxFileSize>
-                               </triggeringPolicy>
-                               <encoder>
-                                               <pattern>"%d [%thread] %-5level %logger{1024} - %msg%n"</pattern>
-                               </encoder>
-               </appender>
-               <logger name="AuditRecord" level="INFO" additivity="FALSE">
-                               <appender-ref ref="auditLogs" />
-               </logger>
-               <logger name="AuditRecord_DirectCall" level="INFO" additivity="FALSE">
-                               <appender-ref ref="auditLogs" />
-               </logger>
-               <logger name="PerfTrackerRecord" level="INFO" additivity="FALSE">
-                               <appender-ref ref="perfLogs" />
-               </logger>
-               <!-- logback jms appenders & loggers definition ends here -->
+       <!-- logback jms appenders & loggers definition starts here -->
+       <appender name="auditLogs"
+               class="ch.qos.logback.core.rolling.RollingFileAppender">
+               <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+               </filter>
+               <file>${logDirectory}/Audit-${lrmRVer}-${lrmRO}-${Pid}.log</file>
+               <rollingPolicy
+                       class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+                       <fileNamePattern>${logDirectory}/Audit-${lrmRVer}-${lrmRO}-${Pid}.%i.log.zip
+                       </fileNamePattern>
+                       <minIndex>1</minIndex>
+                       <maxIndex>9</maxIndex>
+               </rollingPolicy>
+               <triggeringPolicy
+                       class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+                       <maxFileSize>5MB</maxFileSize>
+               </triggeringPolicy>
+               <encoder>
+                       <pattern>"%d [%thread] %-5level %logger{1024} - %msg%n"</pattern>
+               </encoder>
+       </appender>
+       <appender name="perfLogs"
+               class="ch.qos.logback.core.rolling.RollingFileAppender">
+               <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+               </filter>
+               <file>${logDirectory}/Perform-${lrmRVer}-${lrmRO}-${Pid}.log</file>
+               <rollingPolicy
+                       class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+                       <fileNamePattern>${logDirectory}/Perform-${lrmRVer}-${lrmRO}-${Pid}.%i.log.zip
+                       </fileNamePattern>
+                       <minIndex>1</minIndex>
+                       <maxIndex>9</maxIndex>
+               </rollingPolicy>
+               <triggeringPolicy
+                       class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+                       <maxFileSize>5MB</maxFileSize>
+               </triggeringPolicy>
+               <encoder>
+                       <pattern>"%d [%thread] %-5level %logger{1024} - %msg%n"</pattern>
+               </encoder>
+       </appender>
+       <logger name="AuditRecord" level="INFO" additivity="FALSE">
+               <appender-ref ref="auditLogs" />
+       </logger>
+       <logger name="AuditRecord_DirectCall" level="INFO"
+               additivity="FALSE">
+               <appender-ref ref="auditLogs" />
+       </logger>
+       <logger name="PerfTrackerRecord" level="INFO" additivity="FALSE">
+               <appender-ref ref="perfLogs" />
+       </logger>
+       <!-- logback jms appenders & loggers definition ends here -->
 
-               <root level="WARN">
-                               <appender-ref ref="DEBUG" />
-                               <appender-ref ref="STDOUT" />
-               </root>
+       <root level="DEBUG">
+               <appender-ref ref="DEBUG" />
+               <appender-ref ref="STDOUT" />
+       </root>
+</included>
 
-</configuration>
index ce29de9..805eaa3 100644 (file)
@@ -29,10 +29,16 @@ spec:
     - port: {{ .Values.service.internalPort }}
       nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
       name: {{ .Values.service.portName }}
+    - port: {{ .Values.service.internalPort2 }}
+      nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort2 }}
+      name: {{ .Values.service.portName }}2
     {{- else -}}
     - port: {{ .Values.service.externalPort }}
       targetPort: {{ .Values.service.internalPort }}
       name: {{ .Values.service.portName }}
+    - port: {{ .Values.service.externalPort2 }}
+      targetPort: {{ .Values.service.internalPort2 }}
+      name: {{ .Values.service.portName }}2
     {{- end}}
   selector:
     app: {{ include "common.name" . }}
index 2a321e7..88d2d53 100644 (file)
@@ -27,7 +27,7 @@ subChartsOnly:
 
 # application image
 repository: nexus3.onap.org:10001
-image: onap/clamp:2.0.2
+image: onap/clamp:3.0-STAGING-latest
 pullPolicy: Always
 
 # flag to enable debugging - application support required
@@ -56,7 +56,10 @@ config:
         "clamp.config.policy.pdpUrl1": "http://pdp.{{ include "common.namespace" . }}:8081/pdp/ , testpdp, alpha123",
         "clamp.config.policy.pdpUrl2": "http://pdp.{{ include "common.namespace" . }}:8081/pdp/ , testpdp, alpha123",
         "clamp.config.policy.papUrl": "http://pap.{{ include "common.namespace" . }}:9091/pap/ , testpap, alpha123",
-        "clamp.config.policy.clientKey": "dGVzdA=="
+        "clamp.config.policy.clientKey": "dGVzdA==",
+        "clamp.config.cadi.aafLocateUrl": "https://aaf-onap-test.osaaf.org:8095",
+        "com.att.eelf.logging.path": "/opt/clamp",
+        "com.att.eelf.logging.file": "logback.xml"
     }
 
 # subchart configuration
@@ -90,6 +93,10 @@ service:
   portName: clamp
   internalPort: 8080
   nodePort: 95
+  portName2: clamp-ssl
+  internalPort2: 8443
+  nodePort2: 34
 
 ingress:
   enabled: false
index a498dc7..07231fe 100644 (file)
@@ -24,3 +24,5 @@ ves_other_publish_url: "http://{{ .Values.config.address.message_router }}:3904/
 ves_heartbeat_publish_url: "http://{{ .Values.config.address.message_router }}:3904/events/unauthenticated.SEC_HEARTBEAT_OUTPUT/"
 ves_fault_publish_url: "http://{{ .Values.config.address.message_router }}:3904/events/unauthenticated.SEC_FAULT_OUTPUT/"
 ves_measurement_publish_url: "http://{{ .Values.config.address.message_router }}:3904/events/unauthenticated.VES_MEASUREMENT_OUTPUT/"
+ves_pnfRegistration_publish_url: "http://{{ .Values.config.address.message_router }}:3904/events/unauthenticated.VES_PNFREG_OUTPUT/"
+ves_notification_publish_url: "http://{{ .Values.config.address.message_router }}:3904/events/unauthenticated.VES_NOTIFICATION_OUTPUT/"
index 91291cf..76222bc 100644 (file)
@@ -76,7 +76,7 @@ componentImages:
   policy_handler: onap/org.onap.dcaegen2.platform.policy-handler:2.4.5
   service_change_handler: onap/org.onap.dcaegen2.platform.servicechange-handler:1.1.4
   tca: onap/org.onap.dcaegen2.deployments.tca-cdap-container:1.1.0
-  ves: onap/org.onap.dcaegen2.collectors.ves.vescollector:1.2.0
+  ves: onap/org.onap.dcaegen2.collectors.ves.vescollector:1.3.1
 
 # Kubernetes namespace for components deployed via Cloudify manager
 # If empty, use the common namespace
index 6ffb372..c8a9f03 100755 (executable)
@@ -24,7 +24,7 @@ global:
   commonConfigPrefix: onap-oof-has
   image:
     readiness: oomk8s/readiness-check:2.0.0
-    optf_has: onap/optf-has:1.1.1
+    optf_has: onap/optf-has:1.2.0
     filebeat: docker.elastic.co/beats/filebeat:5.5.0
 
 pullPolicy: Always
index baeed47..fae9d93 100644 (file)
@@ -26,7 +26,7 @@ global:
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/optf-osdf:1.1.1
+image: onap/optf-osdf:1.2.0
 pullPolicy: Always
 
 # flag to enable debugging - application support required
index 4799f09..f1493cd 100644 (file)
@@ -26,8 +26,8 @@ server.tomcat.max-threads=200
 server.tomcat.min-spare-threads=25
 
 # AAI REST Client Configuration
-aai.host={{ .Values.config.aaiServiceName }}.{{.Release.Namespace}}
-aai.port={{ .Values.config.aaiPort }}
+aai.serviceName={{ .Values.config.aaiServiceName }}.{{.Release.Namespace}}
+aai.servicePort={{ .Values.config.aaiPort }}
 aai.username={{ .Values.config.aaiUsername }}
 aai.password={{ .Values.config.aaiPassword }}
 aai.httpProtocol={{ .Values.config.aaiHttpProtocol }}
index 80b68b9..2e469d5 100644 (file)
@@ -17,7 +17,7 @@
 # The default name is elasticsearch, but you should change it to an appropriate name which describes the
 # purpose of the cluster.
 #
-cluster.name: "pomba-dashboard"
+cluster.name: POMBA_ES
 #
 # The port that other nodes in the cluster should use when communicating with this node.
 # Required for Elasticsearch's nodes running on different cluster nodes.
diff --git a/kubernetes/pomba/charts/pomba-networkdiscovery/Chart.yaml b/kubernetes/pomba/charts/pomba-networkdiscovery/Chart.yaml
new file mode 100644 (file)
index 0000000..13c1a6b
--- /dev/null
@@ -0,0 +1,18 @@
+# Copyright © 2018 Amdocs\r
+#\r
+# Licensed under the Apache License, Version 2.0 (the "License");\r
+# you may not use this file except in compliance with the License.\r
+# You may obtain a copy of the License at\r
+#\r
+#       http://www.apache.org/licenses/LICENSE-2.0\r
+#\r
+# Unless required by applicable law or agreed to in writing, software\r
+# distributed under the License is distributed on an "AS IS" BASIS,\r
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+# See the License for the specific language governing permissions and\r
+# limitations under the License.\r
+\r
+apiVersion: v1\r
+description: ONAP POMBA Network Discovery\r
+name: pomba-networkdiscovery\r
+version: 2.0.0\r
diff --git a/kubernetes/pomba/charts/pomba-networkdiscovery/requirements.yaml b/kubernetes/pomba/charts/pomba-networkdiscovery/requirements.yaml
new file mode 100644 (file)
index 0000000..9bae031
--- /dev/null
@@ -0,0 +1,18 @@
+# Copyright © 2018 Amdocs\r
+#\r
+# Licensed under the Apache License, Version 2.0 (the "License");\r
+# you may not use this file except in compliance with the License.\r
+# You may obtain a copy of the License at\r
+#\r
+#       http://www.apache.org/licenses/LICENSE-2.0\r
+#\r
+# Unless required by applicable law or agreed to in writing, software\r
+# distributed under the License is distributed on an "AS IS" BASIS,\r
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+# See the License for the specific language governing permissions and\r
+# limitations under the License.\r
+\r
+dependencies:\r
+  - name: common\r
+    version: ~2.0.0\r
+    repository: '@local'\r
diff --git a/kubernetes/pomba/charts/pomba-networkdiscovery/resources/config/application.properties b/kubernetes/pomba/charts/pomba-networkdiscovery/resources/config/application.properties
new file mode 100644 (file)
index 0000000..9246aca
--- /dev/null
@@ -0,0 +1,48 @@
+# 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
+
+spring.jersey.type=filter
+spring.mvc.urls=swagger,docs,prometheus,auditevents,info,heapdump,autoconfig,beans,loggers,dump,env,trace,health,configprops,mappings,metrics,webjars
+
+
+server.contextPath=/network-discovery
+spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration,org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration
+
+#This property is used to set the Tomcat connector attributes.developers can define multiple attributes separated by comma
+#tomcat.connector.attributes=allowTrace-true
+#The max number of active threads in this pool
+server.tomcat.max-threads=200
+#The minimum number of threads always kept alive
+server.tomcat.min-Spare-Threads=25
+#The number of milliseconds before an idle thread shutsdown, unless the number of active threads are less or equal to minSpareThreads
+server.tomcat.max-idle-time=60000
+
+#Servlet context parameters
+server.context_parameters.p-name=value #context parameter with p-name as key and value as value.
+
+# Basic Authentication
+basicAuth.username={{ .Values.config.networkDiscoveryUserId }}
+basicAuth.password={{ .Values.config.networkDiscoveryPassword }}
+
+# A&AI Enircher REST Client Configuration
+enricher.url=https://<enricher_host_or_IP>:<port>
+enricher.connectionTimeout=5000
+enricher.readTimeout=60000
+enricher.keyStorePath=config/auth/enricher-client-cert.p12
+enricher.keyStorePassword=OBF:1i9a1u2a1unz1lr61wn51wn11lss1unz1u301i6o
+
+enricher.types = vserver, l3-network
+enricher.type.vserver.url    = /enricher/v11/cloud-infrastructure/vservers/vserver/{0}?sot=!aai
+enricher.type.l3-network.url = /enricher/v11/network/l3-networks/l3-network/{0}?sot=!aai
+
diff --git a/kubernetes/pomba/charts/pomba-networkdiscovery/resources/config/auth/enricher-client-cert.p12 b/kubernetes/pomba/charts/pomba-networkdiscovery/resources/config/auth/enricher-client-cert.p12
new file mode 100644 (file)
index 0000000..12e0ae9
Binary files /dev/null and b/kubernetes/pomba/charts/pomba-networkdiscovery/resources/config/auth/enricher-client-cert.p12 differ
diff --git a/kubernetes/pomba/charts/pomba-networkdiscovery/resources/config/log/logback.xml b/kubernetes/pomba/charts/pomba-networkdiscovery/resources/config/log/logback.xml
new file mode 100644 (file)
index 0000000..1f00cbd
--- /dev/null
@@ -0,0 +1,30 @@
+<configuration>\r
+    <property name="p_tim" value="%d{&quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&quot;, UTC}"/>\r
+    <property name="p_lvl" value="%level"/>\r
+    <property name="p_log" value="%logger"/>\r
+    <property name="p_mdc" value="%replace(%replace(%mdc){'\t','\\\\t'}){'\n', '\\\\n'}"/>\r
+    <property name="p_msg" value="%replace(%replace(%msg){'\t', '\\\\t'}){'\n','\\\\n'}"/>\r
+    <property name="p_exc" value="%replace(%replace(%rootException){'\t', '\\\\t'}){'\n','\\\\n'}"/>\r
+    <!-- tabs -->\r
+    <property name="p_mak" value="%replace(%replace(%marker){'\t', '\\\\t'}){'\n','\\\\n'}"/>\r
+    <property name="p_thr" value="%thread"/>\r
+    <property name="pattern" value="%nopexception${p_tim}\t${p_thr}\t${p_lvl}\t${p_log}\t${p_mdc}\t${p_msg}\t${p_exc}\t${p_mak}\t%n"/>\r
+    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">\r
+        <encoder>\r
+            <pattern>${pattern}</pattern>\r
+        </encoder>\r
+    </appender>\r
+    <appender name="FILE" class="ch.qos.logback.core.FileAppender">\r
+        <file>output.log</file>\r
+        <encoder>\r
+            <pattern>${pattern}</pattern>\r
+        </encoder>\r
+    </appender>\r
+    <logger level="INFO" name="org.onap.logging.ref.slf4j" additivity="false">\r
+        <appender-ref ref="STDOUT" />\r
+        <appender-ref ref="FILE" />\r
+    </logger>\r
+    <root level="INFO">\r
+        <appender-ref ref="STDOUT" />\r
+    </root>\r
+</configuration>\r
diff --git a/kubernetes/pomba/charts/pomba-networkdiscovery/templates/configmap.yaml b/kubernetes/pomba/charts/pomba-networkdiscovery/templates/configmap.yaml
new file mode 100644 (file)
index 0000000..1e377b9
--- /dev/null
@@ -0,0 +1,30 @@
+# Copyright © 2018 Amdocs\r
+#\r
+# Licensed under the Apache License, Version 2.0 (the "License");\r
+# you may not use this file except in compliance with the License.\r
+# You may obtain a copy of the License at\r
+#\r
+#       http://www.apache.org/licenses/LICENSE-2.0\r
+#\r
+# Unless required by applicable law or agreed to in writing, software\r
+# distributed under the License is distributed on an "AS IS" BASIS,\r
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+# See the License for the specific language governing permissions and\r
+# limitations under the License.\r
+#\r
+\r
+apiVersion: v1\r
+kind: ConfigMap\r
+metadata:\r
+  name: {{ include "common.fullname" . }}-log\r
+  namespace: {{ include "common.namespace" . }}\r
+data:\r
+{{ tpl (.Files.Glob "resources/config/log/logback.xml").AsConfig . | indent 2 }}\r
+---\r
+apiVersion: v1\r
+kind: ConfigMap\r
+metadata:\r
+  name: {{ include "common.fullname" . }}-configmap\r
+  namespace: {{ include "common.namespace" . }}\r
+data:\r
+{{ tpl (.Files.Glob "resources/config/application.properties").AsConfig . | indent 2 }}\r
diff --git a/kubernetes/pomba/charts/pomba-networkdiscovery/templates/deployment.yaml b/kubernetes/pomba/charts/pomba-networkdiscovery/templates/deployment.yaml
new file mode 100644 (file)
index 0000000..1bd0309
--- /dev/null
@@ -0,0 +1,118 @@
+# Copyright © 2018 Amdocs\r
+#\r
+# Licensed under the Apache License, Version 2.0 (the "License");\r
+# you may not use this file except in compliance with the License.\r
+# You may obtain a copy of the License at\r
+#\r
+#       http://www.apache.org/licenses/LICENSE-2.0\r
+#\r
+# Unless required by applicable law or agreed to in writing, software\r
+# distributed under the License is distributed on an "AS IS" BASIS,\r
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+# See the License for the specific language governing permissions and\r
+# limitations under the License.\r
+\r
+apiVersion: extensions/v1beta1\r
+kind: Deployment\r
+metadata:\r
+  name: {{ include "common.fullname" . }}\r
+  namespace: {{ include "common.namespace" . }}\r
+  labels:\r
+    app: {{ include "common.name" . }}\r
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}\r
+    release: {{ .Release.Name }}\r
+    heritage: {{ .Release.Service }}\r
+spec:\r
+  replicas: {{ .Values.replicaCount }}\r
+  template:\r
+    metadata:\r
+      labels:\r
+        app: {{ include "common.name" . }}\r
+        release: {{ .Release.Name }}\r
+    spec:\r
+      containers:\r
+        - name: {{ include "common.name" . }}\r
+          image: "{{ include "common.repository" . }}/{{ .Values.image }}"\r
+          imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}\r
+          ports:\r
+          - containerPort: {{ .Values.service.internalPort }}\r
+          # disable liveness probe when breakpoints set in debugger\r
+          # so K8s doesn't restart unresponsive container\r
+          {{ if .Values.liveness.enabled }}\r
+          livenessProbe:\r
+            tcpSocket:\r
+              port: {{ .Values.service.internalPort }}\r
+            initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}\r
+            periodSeconds: {{ .Values.liveness.periodSeconds }}\r
+          {{ end }}\r
+          readinessProbe:\r
+            tcpSocket:\r
+              port: {{ .Values.service.internalPort }}\r
+            initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}\r
+            periodSeconds: {{ .Values.readiness.periodSeconds }}\r
+          env:\r
+          volumeMounts:\r
+          - mountPath: /etc/localtime\r
+            name: localtime\r
+            readOnly: true\r
+          - name: {{ include "common.fullname" . }}-logs\r
+            mountPath: /var/log/onap\r
+          - mountPath: /opt/app/config/logback.xml\r
+            name: {{ include "common.fullname" . }}-log-conf\r
+            subPath: logback.xml\r
+          - mountPath: /opt/app/config/application.properties\r
+            name: {{ include "common.fullname" . }}-config\r
+            subPath: application.properties\r
+            readOnly: true\r
+          - mountPath: /opt/app/config/auth/enricher-client-cert.p12\r
+            name: {{ include "common.fullname" . }}-auth-secret\r
+            subPath: enricher-client-cert.p12\r
+            readOnly: true\r
+\r
+          resources:\r
+{{ toYaml .Values.resources | indent 12 }}\r
+        {{- if .Values.nodeSelector }}\r
+        nodeSelector:\r
+{{ toYaml .Values.nodeSelector | indent 10 }}\r
+        {{- end -}}\r
+        {{- if .Values.affinity }}\r
+        affinity:\r
+{{ toYaml .Values.affinity | indent 10 }}\r
+        {{- end }}\r
+\r
+        # Filebeat sidecar container\r
+        - name: {{ include "common.name" . }}-filebeat-onap\r
+          image: "{{ .Values.global.loggingRepository }}/{{ .Values.global.loggingImage }}"\r
+          imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}\r
+          volumeMounts:\r
+          - name: {{ include "common.fullname" . }}-filebeat-conf\r
+            mountPath: /usr/share/filebeat/filebeat.yml\r
+            subPath: filebeat.yml\r
+          - name: {{ include "common.fullname" . }}-data-filebeat\r
+            mountPath: /usr/share/filebeat/data\r
+          - name: {{ include "common.fullname" . }}-logs\r
+            mountPath: /var/log/onap\r
+\r
+      volumes:\r
+        - name: localtime\r
+          hostPath:\r
+            path: /etc/localtime\r
+        - name:  {{ include "common.fullname" . }}-logs\r
+          emptyDir: {}\r
+        - name: {{ include "common.fullname" . }}-log-conf\r
+          configMap:\r
+            name: {{ include "common.fullname" . }}-log\r
+        - name: {{ include "common.fullname" . }}-config\r
+          configMap:\r
+            name: {{ include "common.fullname" . }}-configmap\r
+        - name: {{ include "common.fullname" . }}-auth-secret\r
+          secret:\r
+            secretName: {{ include "common.fullname" . }}-auth\r
+        - name: {{ include "common.fullname" . }}-filebeat-conf\r
+          configMap:\r
+            name: {{ .Release.Name }}-pomba-filebeat-configmap\r
+        - name: {{ include "common.fullname" . }}-data-filebeat\r
+          emptyDir: {}\r
+\r
+      imagePullSecrets:\r
+      - name: "{{ include "common.namespace" . }}-docker-registry-key"\r
diff --git a/kubernetes/pomba/charts/pomba-networkdiscovery/templates/secrets.yaml b/kubernetes/pomba/charts/pomba-networkdiscovery/templates/secrets.yaml
new file mode 100644 (file)
index 0000000..3015811
--- /dev/null
@@ -0,0 +1,26 @@
+# Copyright © 2018 Amdocs, AT&T\r
+#\r
+# Licensed under the Apache License, Version 2.0 (the "License");\r
+# you may not use this file except in compliance with the License.\r
+# You may obtain a copy of the License at\r
+#\r
+#       http://www.apache.org/licenses/LICENSE-2.0\r
+#\r
+# Unless required by applicable law or agreed to in writing, software\r
+# distributed under the License is distributed on an "AS IS" BASIS,\r
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+# See the License for the specific language governing permissions and\r
+# limitations under the License.\r
+\r
+apiVersion: v1\r
+kind: Secret\r
+metadata:\r
+  name: {{ include "common.fullname" . }}-auth\r
+  namespace: {{ include "common.namespace" . }}\r
+  labels:\r
+    app: {{ include "common.name" . }}\r
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}\r
+    release: {{ .Release.Name }}\r
+    heritage: {{ .Release.Service }}\r
+data:\r
+{{ (.Files.Glob "resources/config/auth/*").AsSecrets | indent 2 }}\r
diff --git a/kubernetes/pomba/charts/pomba-networkdiscovery/templates/service.yaml b/kubernetes/pomba/charts/pomba-networkdiscovery/templates/service.yaml
new file mode 100644 (file)
index 0000000..2b54def
--- /dev/null
@@ -0,0 +1,41 @@
+# Copyright © 2018 Amdocs\r
+#\r
+# Licensed under the Apache License, Version 2.0 (the "License");\r
+# you may not use this file except in compliance with the License.\r
+# You may obtain a copy of the License at\r
+#\r
+#       http://www.apache.org/licenses/LICENSE-2.0\r
+#\r
+# Unless required by applicable law or agreed to in writing, software\r
+# distributed under the License is distributed on an "AS IS" BASIS,\r
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+# See the License for the specific language governing permissions and\r
+# limitations under the License.\r
+\r
+apiVersion: v1\r
+kind: Service\r
+metadata:\r
+  name: {{ include "common.servicename" . }}\r
+  namespace: {{ include "common.namespace" . }}\r
+  labels:\r
+    app: {{ include "common.name" . }}\r
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}\r
+    release: {{ .Release.Name }}\r
+    heritage: {{ .Release.Service }}\r
+spec:\r
+  type: {{ .Values.service.type }}\r
+  ports:\r
+    {{if eq .Values.service.type "NodePort" -}}\r
+    - port: {{ .Values.service.externalPort }}\r
+      #Example internal target port if required\r
+      #targetPort: {{ .Values.service.internalPort }}\r
+      nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}\r
+      name: {{ .Values.service.portName | default "http" }}\r
+    {{- else -}}\r
+    - port: {{ .Values.service.externalPort }}\r
+      targetPort: {{ .Values.service.internalPort }}\r
+      name: {{ .Values.service.portName | default "http" }}\r
+    {{- end}}\r
+  selector:\r
+    app: {{ include "common.name" . }}\r
+    release: {{ .Release.Name }}\r
diff --git a/kubernetes/pomba/charts/pomba-networkdiscovery/values.yaml b/kubernetes/pomba/charts/pomba-networkdiscovery/values.yaml
new file mode 100644 (file)
index 0000000..b65f3be
--- /dev/null
@@ -0,0 +1,96 @@
+# Copyright © 2018 Amdocs\r
+#\r
+# Licensed under the Apache License, Version 2.0 (the "License");\r
+# you may not use this file except in compliance with the License.\r
+# You may obtain a copy of the License at\r
+#\r
+#       http://www.apache.org/licenses/LICENSE-2.0\r
+#\r
+# Unless required by applicable law or agreed to in writing, software\r
+# distributed under the License is distributed on an "AS IS" BASIS,\r
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+# See the License for the specific language governing permissions and\r
+# limitations under the License.\r
+\r
+#################################################################\r
+# Global configuration defaults.\r
+#################################################################\r
+global:\r
+  nodePortPrefix: 302\r
+  repository: nexus3.onap.org:10001\r
+\r
+#################################################################\r
+# Application configuration defaults.\r
+#################################################################\r
+# application image\r
+repository: nexus3.onap.org:10001\r
+image:  onap/network-discovery:latest\r
+pullPolicy: Always\r
+\r
+# flag to enable debugging - application support required\r
+debugEnabled: false\r
+\r
+# application configuration\r
+# Example:\r
+config:\r
+  # Network Discovery Micro Service REST Client Configuration\r
+  # Basic Authorization credentials for Network Discovery Micro Service Rest Service\r
+  networkDiscoveryUserId: admin\r
+  networkDiscoveryPassword: OBF:1u2a1toa1w8v1tok1u30\r
+\r
+# default number of instances\r
+replicaCount: 1\r
+\r
+nodeSelector: {}\r
+\r
+affinity: {}\r
+\r
+# probe configuration parameters\r
+liveness:\r
+  initialDelaySeconds: 10\r
+  periodSeconds: 10\r
+  # necessary to disable liveness probe when setting breakpoints\r
+  # in debugger so K8s doesn't restart unresponsive container\r
+  enabled: true\r
+\r
+readiness:\r
+  initialDelaySeconds: 10\r
+  periodSeconds: 10\r
+\r
+#Example service definition with external, internal and node ports.\r
+service:\r
+  # The default service name (exposed in the service.yaml) will be the same\r
+  # name as the chart. If the service name needs to be overriden (such as\r
+  # when a subchart is shared), uncomment the value below.\r
+  #name: <service-name-override>\r
+\r
+  #Services may use any combination of ports depending on the 'type' of\r
+  #service being defined.\r
+  type: ClusterIP\r
+  externalPort: 9531\r
+  internalPort: 8080\r
+#  nodePort: <replace with unused node port suffix eg. 23>\r
+  # optional port name override - default can be defined in service.yaml\r
+  #portName: http\r
+\r
+ingress:\r
+  enabled: false\r
+\r
+resources: {}\r
+  # We usually recommend not to specify default resources and to leave this as a conscious\r
+  # choice for the user. This also increases chances charts run on environments with little\r
+  # resources, such as Minikube. If you do want to specify resources, uncomment the following\r
+  # lines, adjust them as necessary, and remove the curly braces after 'resources:'.\r
+  #\r
+  # Example:\r
+  # Configure resource requests and limits\r
+  # ref: http://kubernetes.io/docs/user-guide/compute-resources/\r
+  # Minimum memory for development is 2 CPU cores and 4GB memory\r
+  # Minimum memory for production is 4 CPU cores and 8GB memory\r
+#resources:\r
+#  limits:\r
+#    cpu: 2\r
+#    memory: 4Gi\r
+#  requests:\r
+#    cpu: 2\r
+#    memory: 4Gi\r
diff --git a/kubernetes/pomba/charts/pomba-networkdiscoveryctxbuilder/Chart.yaml b/kubernetes/pomba/charts/pomba-networkdiscoveryctxbuilder/Chart.yaml
new file mode 100644 (file)
index 0000000..12449e8
--- /dev/null
@@ -0,0 +1,18 @@
+# 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.
+
+apiVersion: v1
+description: ONAP POMBA Network Discovery Context Builder
+name: pomba-networkdiscoveryctxbuilder
+version: 2.0.0
diff --git a/kubernetes/pomba/charts/pomba-networkdiscoveryctxbuilder/requirements.yaml b/kubernetes/pomba/charts/pomba-networkdiscoveryctxbuilder/requirements.yaml
new file mode 100644 (file)
index 0000000..37545fe
--- /dev/null
@@ -0,0 +1,18 @@
+# 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.
+
+dependencies:
+  - name: common
+    version: ~2.0.0
+    repository: '@local'
diff --git a/kubernetes/pomba/charts/pomba-networkdiscoveryctxbuilder/resources/config/application.properties b/kubernetes/pomba/charts/pomba-networkdiscoveryctxbuilder/resources/config/application.properties
new file mode 100644 (file)
index 0000000..c41c487
--- /dev/null
@@ -0,0 +1,62 @@
+# 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
+
+spring.jersey.type=filter
+spring.mvc.urls=swagger,docs,prometheus,auditevents,info,heapdump,autoconfig,beans,loggers,dump,env,trace,health,configprops,mappings,metrics,webjars
+
+
+server.contextPath=/network-discovery
+spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration,org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration
+
+#This property is used to set the Tomcat connector attributes.developers can define multiple attributes separated by comma
+#tomcat.connector.attributes=allowTrace-true
+#The max number of active threads in this pool
+server.tomcat.max-threads=200
+#The minimum number of threads always kept alive
+server.tomcat.min-Spare-Threads=25
+#The number of milliseconds before an idle thread shutsdown, unless the number of active threads are less or equal to minSpareThreads
+server.tomcat.max-idle-time=60000
+
+
+# Network Discovery Context Builder REST Service
+networkDiscoveryCtxBuilder.httpProtocol={{ .Values.config.networkDiscoveryCtxBuilderHttpProtocol }}
+networkDiscoveryCtxBuilder.port={{ .Values.config.networkDiscoveryCtxBuilderPort }}
+# Basic Authorization credentials for Network Discovery Context Builder REST Service
+networkDiscoveryCtxBuilder.userId={{ .Values.config.networkDiscoveryCtxBuilderUserId }}
+networkDiscoveryCtxBuilder.password={{ .Values.config.networkDiscoveryCtxBuilderPassword }}
+networkDiscoveryCtxBuilder.resourceList={{ .Values.config.networkDiscoveryCtxBuilderResourceList }}
+
+# Service Decomposition REST Client Configuration
+serviceDecomposition.httpProtocol={{ .Values.config.serviceDecompositionHttpProtocol }}
+serviceDecomposition.host={{ .Values.config.serviceDecompositionServiceName }}.{{.Release.Namespace}}
+serviceDecomposition.port={{ .Values.config.serviceDecompositionPort }}
+serviceDecomposition.serviceInstancePath={{ .Values.config.serviceDecompositionInstancePath }}
+#Basic Authorization Client credentials for Service Decomposition REST service
+serviceDecomposition.userId={{ .Values.config.serviceDecompositionUserId }}
+serviceDecomposition.password={{ .Values.config.serviceDecompositionPassword }}
+
+# Network Discovery Micro Service REST Client Configuration
+
+networkDiscoveryMicroService.host={{ .Values.config.networkDiscoveryServiceName }}.{{.Release.Namespace}}
+networkDiscoveryMicroService.port={{ .Values.config.networkDiscoveryPort }}
+networkDiscoveryMicroService.httpProtocol={{ .Values.config.networkDiscoveryHttpProtocol }}
+networkDiscoveryMicroService.networkDiscoveryPath={{ .Values.config.networkDiscoveryPath }}
+# Wait for Network Discovery MicroService response in milliseconds
+networkDiscoveryMicroService.responseTimeOutInMilliseconds = {{ .Values.config.networkDiscoveryTimeOutInMilliseconds }}
+# Basic Authorization credentials for Network Discovery Micro Service Rest Service
+networkDiscoveryMicroService.userId={{ .Values.config.networkDiscoveryUserId }}
+networkDiscoveryMicroService.password={{ .Values.config.networkDiscoveryPassword }}
+
+#Servlet context parameters
+server.context_parameters.p-name=value
diff --git a/kubernetes/pomba/charts/pomba-networkdiscoveryctxbuilder/resources/config/logback.xml b/kubernetes/pomba/charts/pomba-networkdiscoveryctxbuilder/resources/config/logback.xml
new file mode 100644 (file)
index 0000000..b330930
--- /dev/null
@@ -0,0 +1,236 @@
+<configuration scan="true" scanPeriod="10 seconds" debug="false">
+               <jmxConfigurator />
+               <property resource="application.properties" />
+               <property name="logDirectory" value="/var/log/onap/pomba-networkdiscoveryctxbuilder" />
+               <!-- Example evaluator filter applied against console appender -->
+               <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+                               <!-- filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>ERROR</level> 
+                                               <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter -->
+                               <!-- 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>
+                               <encoder>
+                                               <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{1024} - %msg%n
+                                               </pattern>
+                               </encoder>
+               </appender>
+
+               <appender name="ERROR"
+                               class="ch.qos.logback.core.rolling.RollingFileAppender">
+                               <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+                                               <level>INFO</level>
+                               </filter>
+                               <file>${logDirectory}/error.log</file>
+                               <append>true</append>
+                               <encoder>
+                                               <pattern>%date{"yyyy-MM-dd'T'HH:mm:ss,SSSXXX", UTC}|%X{RequestId}|%.20thread|%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%.-5level|%X{ErrorCode}|%X{ErrorDescription}|%msg%n</pattern>
+                               </encoder>
+                               <rollingPolicy
+                                               class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+                                               <maxIndex>10</maxIndex>
+                                               <FileNamePattern>${logDirectory}/error.%i.log.zip
+                                               </FileNamePattern>
+                               </rollingPolicy>
+                               <triggeringPolicy
+                                               class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+                                               <maxFileSize>10MB</maxFileSize>
+                               </triggeringPolicy>
+               </appender>
+
+               <appender name="DEBUG"
+                               class="ch.qos.logback.core.rolling.RollingFileAppender">
+                               <file>${logDirectory}/debug.log</file>
+                               <append>true</append>
+                               <encoder>
+                                               <pattern>%date{"yyyy-MM-dd'T'HH:mm:ss,SSSXXX",UTC}|%X{RequestId}|%.20thread|%.-5level|%logger{36}|%msg%n</pattern>
+                               </encoder>
+                               <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+                                       <fileNamePattern>${logDirectory}/debug.%d{yyyy-MM-dd}.%i.log.zip</fileNamePattern>
+                                       <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                                               <maxFileSize>10MB</maxFileSize>
+                                       </timeBasedFileNamingAndTriggeringPolicy>
+                                       <maxHistory>5</maxHistory>
+                               </rollingPolicy>
+               </appender>
+
+               <appender name="AUDIT"
+                               class="ch.qos.logback.core.rolling.RollingFileAppender">
+                               <file>${logDirectory}/audit.log</file>
+                               <append>true</append>
+                               <encoder>
+                                               <pattern>%X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%.20thread|%X{VirtualServerName}|%X{ServiceName}|%X{PartnerName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDescription}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ElapsedTime}|%X{ServerFQDN}|%X{RemoteHost}|%X{ClassName}|%X{Unused}|%X{ProcessKey}|%X{CustomField1}|%X{CustomField2}|%X{CustomField3}|%X{CustomField4}|%msg%n
+                                               </pattern>
+                               </encoder>
+                               <rollingPolicy
+                                               class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+                                               <maxIndex>10</maxIndex>
+                                               <FileNamePattern>${logDirectory}/audit.%i.log.zip
+                                               </FileNamePattern>
+                               </rollingPolicy>
+                               <triggeringPolicy
+                                               class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+                                               <maxFileSize>10MB</maxFileSize>
+                               </triggeringPolicy>
+               </appender>
+               <appender name="asyncEELFAudit" class="ch.qos.logback.classic.AsyncAppender">
+                               <queueSize>256</queueSize>
+                               <appender-ref ref="AUDIT" />
+               </appender>
+
+               <appender name="METRIC"
+                               class="ch.qos.logback.core.rolling.RollingFileAppender">
+                               <file>${logDirectory}/metric.log</file>
+                               <append>true</append>
+                               <encoder>
+                                               <pattern>%X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%.20thread|%X{VirtualServerName}|%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDescription}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ElapsedTime}|%X{ServerFQDN}|%X{RemoteHost}|%X{ClassName}|%X{Unused}|%X{ProcessKey}|%X{TargetVirtualEntity}|%X{CustomField1}|%X{CustomField2}|%X{CustomField3}|%X{CustomField4}|
+                                                               %msg%n</pattern>
+                               </encoder>
+                               <rollingPolicy
+                                               class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+                                               <maxIndex>10</maxIndex>
+                                               <FileNamePattern>${logDirectory}/metric.%i.log.zip
+                                               </FileNamePattern>
+                               </rollingPolicy>
+                               <triggeringPolicy
+                                               class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+                                               <maxFileSize>10MB</maxFileSize>
+                               </triggeringPolicy>
+               </appender>
+               <appender name="asyncEELFMetrics" class="ch.qos.logback.classic.AsyncAppender">
+                               <queueSize>256</queueSize>
+                               <appender-ref ref="METRIC" />
+               </appender>
+
+               <!-- SECURITY related loggers -->
+               <appender name="SECURITY"
+                               class="ch.qos.logback.core.rolling.RollingFileAppender">
+                               <file>${logDirectory}/security.log</file>
+                               <append>true</append>
+                               <encoder>
+                                               <pattern>%X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%.20thread|%X{VirtualServerName}|%X{ServiceName}|%X{PartnerName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDescription}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ElapsedTime}|%X{ServerFQDN}|%X{RemoteHost}|%X{ClassName}|%X{Unused}|%X{ProcessKey}|%X{CustomField1}|%X{CustomField2}|%X{CustomField3}|%X{CustomField4}|%msg%n
+                                               </pattern>
+                               </encoder>
+                               <rollingPolicy
+                                               class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+                                               <maxIndex>10</maxIndex>
+                                               <FileNamePattern>${logDirectory}/security.%i.log.zip
+                                               </FileNamePattern>
+                               </rollingPolicy>
+                               <triggeringPolicy
+                                               class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+                                               <maxFileSize>10MB</maxFileSize>
+                               </triggeringPolicy>
+               </appender>
+               <appender name="asyncEELFSecurity" class="ch.qos.logback.classic.AsyncAppender">
+                               <queueSize>256</queueSize>
+                               <appender-ref ref="SECURITY" />
+               </appender>
+
+               <!-- CLDS related loggers -->
+               <logger name="org.onap.pomba.clds" level="INFO" additivity="true">
+                               <appender-ref ref="ERROR" />
+               </logger>
+
+               <!-- CLDS related loggers -->
+               <logger name="com.att.eelf.error" level="OFF" additivity="true">
+                               <appender-ref ref="ERROR" />
+               </logger>
+               <!-- EELF related loggers -->
+               <logger name="com.att.eelf.audit" level="INFO" additivity="false">
+                               <appender-ref ref="asyncEELFAudit" />
+               </logger>
+               <logger name="com.att.eelf.metrics" level="DEBUG" additivity="false">
+                               <appender-ref ref="asyncEELFMetrics" />
+               </logger>
+               <logger name="com.att.eelf.security" level="DEBUG" additivity="false">
+                               <appender-ref ref="asyncEELFSecurity" />
+               </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" />
+
+               <!-- Other Loggers that may help troubleshoot -->
+               <logger name="net.sf" 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="DEBUG" />
+               <logger name="org.apache.camel.component.restlet" level="DEBUG" />
+
+               <!-- logback internals logging -->
+               <logger name="ch.qos.logback.classic" level="INFO" />
+               <logger name="ch.qos.logback.core" level="INFO" />
+
+               <!-- logback jms appenders & loggers definition starts here -->
+               <!-- logback jms appenders & loggers definition starts here -->
+               <appender name="auditLogs"
+                               class="ch.qos.logback.core.rolling.RollingFileAppender">
+                               <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+                               </filter>
+                               <file>${logDirectory}/Audit.log</file>
+                               <rollingPolicy
+                                               class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+                                               <fileNamePattern>${logDirectory}/Audit.%i.log.zip
+                                               </fileNamePattern>
+                                               <minIndex>1</minIndex>
+                                               <maxIndex>9</maxIndex>
+                               </rollingPolicy>
+                               <triggeringPolicy
+                                               class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+                                               <maxFileSize>5MB</maxFileSize>
+                               </triggeringPolicy>
+                               <encoder>
+                                               <pattern>"%d [%thread] %-5level %logger{1024} - %msg%n"</pattern>
+                               </encoder>
+               </appender>
+               <appender name="perfLogs"
+                               class="ch.qos.logback.core.rolling.RollingFileAppender">
+                               <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+                               </filter>
+                               <file>${logDirectory}/Perform.log</file>
+                               <rollingPolicy
+                                               class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+                                               <fileNamePattern>${logDirectory}/Perform.%i.log.zip
+                                               </fileNamePattern>
+                                               <minIndex>1</minIndex>
+                                               <maxIndex>9</maxIndex>
+                               </rollingPolicy>
+                               <triggeringPolicy
+                                               class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+                                               <maxFileSize>5MB</maxFileSize>
+                               </triggeringPolicy>
+                               <encoder>
+                                               <pattern>"%d [%thread] %-5level %logger{1024} - %msg%n"</pattern>
+                               </encoder>
+               </appender>
+               <logger name="AuditRecord" level="INFO" additivity="FALSE">
+                               <appender-ref ref="auditLogs" />
+               </logger>
+               <logger name="AuditRecord_DirectCall" level="INFO" additivity="FALSE">
+                               <appender-ref ref="auditLogs" />
+               </logger>
+               <logger name="PerfTrackerRecord" level="INFO" additivity="FALSE">
+                               <appender-ref ref="perfLogs" />
+               </logger>
+               <!-- logback jms appenders & loggers definition ends here -->
+
+               <root level="WARN">
+                               <appender-ref ref="DEBUG" />
+                               <appender-ref ref="STDOUT" />
+               </root>
+
+</configuration>
diff --git a/kubernetes/pomba/charts/pomba-networkdiscoveryctxbuilder/templates/configmap.yaml b/kubernetes/pomba/charts/pomba-networkdiscoveryctxbuilder/templates/configmap.yaml
new file mode 100644 (file)
index 0000000..7c47fea
--- /dev/null
@@ -0,0 +1,30 @@
+# 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.
+#
+
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-log
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/logback.xml").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-configmap
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/application.properties").AsConfig . | indent 2 }}
diff --git a/kubernetes/pomba/charts/pomba-networkdiscoveryctxbuilder/templates/deployment.yaml b/kubernetes/pomba/charts/pomba-networkdiscoveryctxbuilder/templates/deployment.yaml
new file mode 100644 (file)
index 0000000..2b53154
--- /dev/null
@@ -0,0 +1,112 @@
+# 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.
+
+apiVersion: extensions/v1beta1
+kind: Deployment
+metadata:
+  name: {{ include "common.fullname" . }}
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+spec:
+  replicas: {{ .Values.replicaCount }}
+  template:
+    metadata:
+      labels:
+        app: {{ include "common.name" . }}
+        release: {{ .Release.Name }}
+    spec:
+      containers:
+        - name: {{ include "common.name" . }}
+          image: "{{ include "common.repository" . }}/{{ .Values.image }}"
+          imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+          ports:
+          - containerPort: {{ .Values.service.internalPort }}
+          # disable liveness probe when breakpoints set in debugger
+          # so K8s doesn't restart unresponsive container
+          {{ if .Values.liveness.enabled }}
+          livenessProbe:
+            tcpSocket:
+              port: {{ .Values.service.internalPort }}
+            initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
+            periodSeconds: {{ .Values.liveness.periodSeconds }}
+          {{ end }}
+          readinessProbe:
+            tcpSocket:
+              port: {{ .Values.service.internalPort }}
+            initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
+            periodSeconds: {{ .Values.readiness.periodSeconds }}
+          env:
+          volumeMounts:
+          - mountPath: /etc/localtime
+            name: localtime
+            readOnly: true
+          - name: {{ include "common.fullname" . }}-logs
+            mountPath: /var/log/onap
+          - mountPath: /opt/app/config/logback.xml
+            name: {{ include "common.fullname" . }}-log-conf
+            subPath: logback.xml
+          - mountPath: /opt/app/config/application.properties
+            name: {{ include "common.fullname" . }}-config
+            readOnly: true
+            subPath: application.properties
+
+          resources:
+{{ toYaml .Values.resources | indent 12 }}
+        {{- if .Values.nodeSelector }}
+        nodeSelector:
+{{ toYaml .Values.nodeSelector | indent 10 }}
+        {{- end -}}
+        {{- if .Values.affinity }}
+        affinity:
+{{ toYaml .Values.affinity | indent 10 }}
+        {{- end }}
+
+        # Filebeat sidecar container
+        - name: {{ include "common.name" . }}-filebeat-onap
+          image: "{{ .Values.global.loggingRepository }}/{{ .Values.global.loggingImage }}"
+          imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+          volumeMounts:
+          - name: {{ include "common.fullname" . }}-filebeat-conf
+            mountPath: /usr/share/filebeat/filebeat.yml
+            subPath: filebeat.yml
+          - name: {{ include "common.fullname" . }}-data-filebeat
+            mountPath: /usr/share/filebeat/data
+          - name: {{ include "common.fullname" . }}-logs
+            mountPath: /var/log/onap
+
+      volumes:
+        - name: localtime
+          hostPath:
+            path: /etc/localtime
+        - name: {{ include "common.fullname" . }}-config
+          configMap:
+            name: {{ include "common.fullname" . }}-configmap
+        - name: {{ include "common.fullname" . }}-log-conf
+          configMap:
+            name: {{ include "common.fullname" . }}-log
+        - name: {{ include "common.fullname" . }}-filebeat-conf
+          configMap:
+            name: {{ .Release.Name }}-pomba-filebeat-configmap
+        - name: {{ include "common.fullname" . }}-data-filebeat
+          emptyDir: {}
+        - name:  {{ include "common.fullname" . }}-logs
+          emptyDir: {}
+        
+
+      imagePullSecrets:
+      - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/pomba/charts/pomba-networkdiscoveryctxbuilder/templates/service.yaml b/kubernetes/pomba/charts/pomba-networkdiscoveryctxbuilder/templates/service.yaml
new file mode 100644 (file)
index 0000000..defd063
--- /dev/null
@@ -0,0 +1,41 @@
+# 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.
+
+apiVersion: v1
+kind: Service
+metadata:
+  name: {{ include "common.servicename" . }}
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+spec:
+  type: {{ .Values.service.type }}
+  ports:
+    {{if eq .Values.service.type "NodePort" -}}
+    - port: {{ .Values.service.externalPort }}
+      #Example internal target port if required
+      #targetPort: {{ .Values.service.internalPort }}
+      nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
+      name: {{ .Values.service.portName | default "http" }}
+    {{- else -}}
+    - port: {{ .Values.service.externalPort }}
+      targetPort: {{ .Values.service.internalPort }}
+      name: {{ .Values.service.portName | default "http" }}
+    {{- end}}
+  selector:
+    app: {{ include "common.name" . }}
+    release: {{ .Release.Name }}
diff --git a/kubernetes/pomba/charts/pomba-networkdiscoveryctxbuilder/values.yaml b/kubernetes/pomba/charts/pomba-networkdiscoveryctxbuilder/values.yaml
new file mode 100644 (file)
index 0000000..2b9d290
--- /dev/null
@@ -0,0 +1,118 @@
+# 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.
+
+#################################################################
+# Global configuration defaults.
+#################################################################
+global:
+  nodePortPrefix: 302
+  repository: nexus3.onap.org:10001
+
+#################################################################
+# Application configuration defaults.
+#################################################################
+# application image
+repository: nexus3.onap.org:10001
+image:  onap/pomba-network-discovery-context-builder:latest
+pullPolicy: Always
+
+# flag to enable debugging - application support required
+debugEnabled: false
+
+# application configuration
+# Example:
+config:
+  # Network Discovery Context Builder REST Service
+  networkDiscoveryCtxBuilderHttpProtocol: http
+  networkDiscoveryCtxBuilderPort: 8080
+  networkDiscoveryCtxBuilderUserId: admin
+  networkDiscoveryCtxBuilderPassword: OBF:1u2a1toa1w8v1tok1u30
+  networkDiscoveryCtxBuilderResourceList: vnfcs,vservers,l3-networks
+
+  # Service Decomposition REST Client Configuration
+  serviceDecompositionHttpProtocol: http
+  serviceDecompositionServiceName: pomba-servicedecomposition
+  serviceDecompositionPort: 8080
+  serviceDecompositionInstancePath: /service-decomposition/service/context
+  #Basic Authorization Client credentials for Service Decomposition REST service
+  serviceDecompositionUserId: admin
+  serviceDecompositionPassword: OBF:1u2a1toa1w8v1tok1u30
+
+  # Network Discovery Micro Service REST Client Configuration
+  networkDiscoveryServiceName: pomba-networkdiscovery
+  networkDiscoveryPort: 8080
+  networkDiscoveryHttpProtocol: http
+  networkDiscoveryPath: /network-discovery/v1/network/resource
+  # Wait for Network Discovery MicroService response in milliseconds
+  networkDiscoveryTimeOutInMilliseconds: 60000
+  # Basic Authorization credentials for Network Discovery Micro Service Rest Service
+  networkDiscoveryUserId: admin
+  networkDiscoveryPassword: OBF:1u2a1toa1w8v1tok1u30
+
+# default number of instances
+replicaCount: 1
+
+nodeSelector: {}
+
+affinity: {}
+
+# probe configuration parameters
+liveness:
+  initialDelaySeconds: 10
+  periodSeconds: 10
+  # necessary to disable liveness probe when setting breakpoints
+  # in debugger so K8s doesn't restart unresponsive container
+  enabled: true
+
+readiness:
+  initialDelaySeconds: 10
+  periodSeconds: 10
+
+#Example service definition with external, internal and node ports.
+service:
+  # The default service name (exposed in the service.yaml) will be the same
+  # name as the chart. If the service name needs to be overriden (such as
+  # when a subchart is shared), uncomment the value below.
+  #name: <service-name-override>
+
+  #Services may use any combination of ports depending on the 'type' of
+  #service being defined.
+  type: ClusterIP
+  externalPort: 9530
+  internalPort: 8080
+#  nodePort: <replace with unused node port suffix eg. 23>
+  # optional port name override - default can be defined in service.yaml
+  #portName: http
+
+ingress:
+  enabled: false
+
+resources: {}
+  # We usually recommend not to specify default resources and to leave this as a conscious
+  # choice for the user. This also increases chances charts run on environments with little
+  # resources, such as Minikube. If you do want to specify resources, uncomment the following
+  # lines, adjust them as necessary, and remove the curly braces after 'resources:'.
+  #
+  # Example:
+  # Configure resource requests and limits
+  # ref: http://kubernetes.io/docs/user-guide/compute-resources/
+  # Minimum memory for development is 2 CPU cores and 4GB memory
+  # Minimum memory for production is 4 CPU cores and 8GB memory
+#resources:
+#  limits:
+#    cpu: 2
+#    memory: 4Gi
+#  requests:
+#    cpu: 2
+#    memory: 4Gi
diff --git a/kubernetes/pomba/charts/pomba-search-data/.helmignore b/kubernetes/pomba/charts/pomba-search-data/.helmignore
new file mode 100644 (file)
index 0000000..f0c1319
--- /dev/null
@@ -0,0 +1,21 @@
+# Patterns to ignore when building packages.
+# This supports shell glob matching, relative path matching, and
+# negation (prefixed with !). Only one pattern per line.
+.DS_Store
+# Common VCS dirs
+.git/
+.gitignore
+.bzr/
+.bzrignore
+.hg/
+.hgignore
+.svn/
+# Common backup files
+*.swp
+*.bak
+*.tmp
+*~
+# Various IDEs
+.project
+.idea/
+*.tmproj
diff --git a/kubernetes/pomba/charts/pomba-search-data/Chart.yaml b/kubernetes/pomba/charts/pomba-search-data/Chart.yaml
new file mode 100644 (file)
index 0000000..89e7917
--- /dev/null
@@ -0,0 +1,18 @@
+# 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
+
+apiVersion: v1
+description: ONAP POMBA search-data
+name: pomba-search-data
+version: 2.0.0
diff --git a/kubernetes/pomba/charts/pomba-search-data/resources/config/analysis-config.json b/kubernetes/pomba/charts/pomba-search-data/resources/config/analysis-config.json
new file mode 100644 (file)
index 0000000..dce0e40
--- /dev/null
@@ -0,0 +1,32 @@
+[
+       {
+               "name": "whitespace_analyzer",
+               "description": "A standard whitespace analyzer.",
+               "behaviours": [
+                       "Tokenize the text using white space characters as delimeters.",
+                       "Convert all characters to lower case.",
+                       "Convert all alphanumeric and symbolic Unicode characters above the first 127 ASCII characters into their ASCII equivalents."
+               ],
+               "tokenizer": "whitespace",
+               "filters": [
+                       "lowercase",
+                       "asciifolding"
+               ]
+       },
+       {
+               "name": "ngram_analyzer",
+               "description": "An analyzer which performs ngram filtering on the data stream.",
+               "behaviours": [
+                       "Tokenize the text using white space characters as delimeters.",
+                       "Convert all characters to lower case.",
+                       "Convert all alphanumeric and symbolic Unicode characters above the first 127 ASCII characters into their ASCII equivalents.",
+                       "Apply ngram filtering using the following values for minimum and maximum size in codepoints of a single n-gram: minimum = 1, maximum = 2."
+               ],
+               "tokenizer": "whitespace",
+               "filters": [
+                       "lowercase",
+                       "asciifolding",
+                       "ngram_filter"
+               ]
+       }
+]
\ No newline at end of file
diff --git a/kubernetes/pomba/charts/pomba-search-data/resources/config/auth/search_policy.json b/kubernetes/pomba/charts/pomba-search-data/resources/config/auth/search_policy.json
new file mode 100644 (file)
index 0000000..a834227
--- /dev/null
@@ -0,0 +1,31 @@
+{
+  "roles": [
+    {
+      "name": "admin",
+      "functions": [
+        {
+          "name": "search",
+          "methods": [
+            {
+              "name": "GET"
+            },
+            {
+              "name": "DELETE"
+            },
+            {
+              "name": "PUT"
+            },
+            {
+              "name": "POST"
+            }
+          ]
+        }
+      ],
+      "users": [
+        {
+          "username": "CN=ONAP, OU=ONAP, O=ONAP, L=Ottawa, ST=Ontario, C=CA"
+        }
+      ]
+    }
+  ]
+}
\ No newline at end of file
diff --git a/kubernetes/pomba/charts/pomba-search-data/resources/config/auth/tomcat_keystore b/kubernetes/pomba/charts/pomba-search-data/resources/config/auth/tomcat_keystore
new file mode 100644 (file)
index 0000000..9eec841
Binary files /dev/null and b/kubernetes/pomba/charts/pomba-search-data/resources/config/auth/tomcat_keystore differ
diff --git a/kubernetes/pomba/charts/pomba-search-data/resources/config/dynamic-custom-template.json b/kubernetes/pomba/charts/pomba-search-data/resources/config/dynamic-custom-template.json
new file mode 100644 (file)
index 0000000..b0eb539
--- /dev/null
@@ -0,0 +1,12 @@
+"dynamic_templates":[
+   {
+      "strings":{
+         "match_mapping_type":"string",
+         "match": "*",
+         "mapping":{
+            "type":"text",
+            "fielddata":true
+         }
+      }
+   }
+],
diff --git a/kubernetes/pomba/charts/pomba-search-data/resources/config/elastic-search.properties b/kubernetes/pomba/charts/pomba-search-data/resources/config/elastic-search.properties
new file mode 100644 (file)
index 0000000..b5c7fee
--- /dev/null
@@ -0,0 +1,5 @@
+# ElasticSearch Configuration
+
+es.cluster-name=POMBA_ES
+es.ip-address=pomba-es.{{.Release.Namespace}}
+es.http-port={{ .Values.config.elasticsearchHttpPort }}
diff --git a/kubernetes/pomba/charts/pomba-search-data/resources/config/es-payload-translation.json b/kubernetes/pomba/charts/pomba-search-data/resources/config/es-payload-translation.json
new file mode 100644 (file)
index 0000000..93888be
--- /dev/null
@@ -0,0 +1,20 @@
+{
+  "attr-translations": [
+    {
+      "from": "\"type\":\"string\",\"index\":\"analyzed\"",
+      "to": "\"type\":\"text\",\"index\":\"true\""
+    },
+    {
+      "from": "\"type\":\"string\",\"index\":\"not_analyzed\"",
+      "to": "\"type\":\"keyword\",\"index\":\"true\""
+    },
+    {
+      "from": "\"type\":\"string\"",
+      "to": "\"type\":\"text\""
+    },
+    {
+      "from": "searchable",
+      "to": "index"
+    }
+  ]
+}
\ No newline at end of file
diff --git a/kubernetes/pomba/charts/pomba-search-data/resources/config/filter-config.json b/kubernetes/pomba/charts/pomba-search-data/resources/config/filter-config.json
new file mode 100644 (file)
index 0000000..e2d5285
--- /dev/null
@@ -0,0 +1,7 @@
+[
+       {
+               "name": "ngram_filter",
+               "description": "Custom NGram Filter.",
+               "configuration": " \"type\": \"nGram\", \"min_gram\": 1, \"max_gram\": 50, \"token_chars\": [ \"letter\", \"digit\", \"punctuation\", \"symbol\" ]"
+       }
+]
\ No newline at end of file
diff --git a/kubernetes/pomba/charts/pomba-search-data/resources/config/log/logback.xml b/kubernetes/pomba/charts/pomba-search-data/resources/config/log/logback.xml
new file mode 100644 (file)
index 0000000..3fbbbab
--- /dev/null
@@ -0,0 +1,177 @@
+<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-SDB"></property>
+
+        <!--  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|SearchDataService|%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" />
+
+        <!-- SearchDB loggers -->
+        <logger name="org.openecomp.sa" level="INFO" />
+
+        <!-- Other Loggers that may help troubleshoot -->
+        <logger name="net.sf" 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/kubernetes/pomba/charts/pomba-search-data/templates/configmap.yaml b/kubernetes/pomba/charts/pomba-search-data/templates/configmap.yaml
new file mode 100644 (file)
index 0000000..0715f0d
--- /dev/null
@@ -0,0 +1,15 @@
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-service-log
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/log/logback.xml").AsConfig . | indent 2 }}
diff --git a/kubernetes/pomba/charts/pomba-search-data/templates/deployment.yaml b/kubernetes/pomba/charts/pomba-search-data/templates/deployment.yaml
new file mode 100644 (file)
index 0000000..c0e2568
--- /dev/null
@@ -0,0 +1,143 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# 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.
+
+apiVersion: extensions/v1beta1
+kind: Deployment
+metadata:
+  name: {{ include "common.fullname" . }}
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+spec:
+  replicas: {{ .Values.replicaCount }}
+  selector:
+    matchLabels:
+      app: {{ include "common.name" . }}
+  template:
+    metadata:
+      labels:
+        app: {{ include "common.name" . }}
+        release: {{ .Release.Name }}
+      name: {{ include "common.name" . }}
+    spec:
+      containers:
+      - name: {{ include "common.name" . }}
+        image: "{{ include "common.repository" . }}/{{ .Values.image }}"
+        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+        env:
+        - name: CONFIG_HOME
+          value: /opt/app/search-data-service/config/
+        - name: KEY_STORE_PASSWORD
+          value: {{ .Values.config.keyStorePassword }}
+        - name: KEY_MANAGER_PASSWORD
+          value: {{ .Values.config.keyManagerPassword }}
+        volumeMounts:
+        - mountPath: /etc/localtime
+          name: localtime
+          readOnly: true
+        - mountPath: /opt/app/search-data-service/config/filter-config.json
+          subPath: filter-config.json
+          name: {{ include "common.fullname" . }}-service-config
+        - mountPath: /opt/app/search-data-service/config/elastic-search.properties
+          subPath: elastic-search.properties
+          name: {{ include "common.fullname" . }}-service-config
+        - mountPath: /opt/app/search-data-service/config/analysis-config.json
+          subPath: analysis-config.json
+          name: {{ include "common.fullname" . }}-service-config
+        - mountPath: /opt/app/search-data-service/config/es-payload-translation.json
+          subPath: es-payload-translation.json
+          name: {{ include "common.fullname" . }}-service-config
+        - mountPath: /opt/app/search-data-service/config/dynamic-custom-template.json
+          subPath: dynamic-custom-template.json
+          name: {{ include "common.fullname" . }}-service-config
+        - mountPath: /opt/app/search-data-service/config/auth/tomcat_keystore
+          subPath: tomcat_keystore
+          name: {{ include "common.fullname" . }}-service-auth-config
+        - mountPath: /opt/app/search-data-service/config/auth/search_policy.json
+          subPath: search_policy.json
+          name: {{ include "common.fullname" . }}-search-policy-config
+        - mountPath: /var/log/onap
+          name: {{ include "common.fullname" . }}-service-logs
+        - mountPath: /opt/app/search-data-service/bundleconfig/etc/logback.xml
+          name: {{ include "common.fullname" . }}-service-log-conf
+          subPath: logback.xml
+        ports:
+        - containerPort: {{ .Values.service.internalPort }}
+        # disable liveness probe when breakpoints set in debugger
+        # so K8s doesn't restart unresponsive container
+        {{- if eq .Values.liveness.enabled true }}
+        livenessProbe:
+          tcpSocket:
+            port: {{ .Values.service.internalPort }}
+          initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
+          periodSeconds: {{ .Values.liveness.periodSeconds }}
+        {{ end -}}
+        readinessProbe:
+          tcpSocket:
+            port: {{ .Values.service.internalPort }}
+          initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
+          periodSeconds: {{ .Values.readiness.periodSeconds }}
+        resources:
+{{ toYaml .Values.resources | indent 10 }}
+      {{- if .Values.nodeSelector }}
+      nodeSelector:
+{{ toYaml .Values.nodeSelector | indent 8 }}
+      {{- end -}}
+      {{- if .Values.affinity }}
+      affinity:
+{{ toYaml .Values.affinity | indent 8 }}
+      {{- end }}
+
+      # side car containers
+      - name: filebeat-onap
+        image: "{{ .Values.global.loggingRepository }}/{{ .Values.global.loggingImage }}"
+        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+        volumeMounts:
+        - mountPath: /usr/share/filebeat/filebeat.yml
+          subPath: filebeat.yml
+          name: filebeat-conf
+        - mountPath: /var/log/onap
+          name: {{ include "common.fullname" . }}-service-logs
+        - mountPath: /usr/share/filebeat/data
+          name: {{ include "common.fullname" . }}-service-filebeat
+
+      volumes:
+      - name: localtime
+        hostPath:
+          path: /etc/localtime
+      - name: {{ include "common.fullname" . }}-service-config
+        configMap:
+          name: {{ include "common.fullname" . }}
+      - name: {{ include "common.fullname" . }}-service-auth-config
+        secret:
+          secretName: {{ include "common.fullname" . }}-keystone
+      - name: {{ include "common.fullname" . }}-search-policy-config
+        secret:
+          secretName: {{ include "common.fullname" . }}-policy
+      - name: filebeat-conf
+        configMap:
+          name: {{ .Release.Name }}-pomba-filebeat-configmap
+      - name: {{ include "common.fullname" . }}-service-logs
+        emptyDir: {}
+      - name: {{ include "common.fullname" . }}-service-filebeat
+        emptyDir: {}
+      - name: {{ include "common.fullname" . }}-service-log-conf
+        configMap:
+         name: {{ include "common.fullname" . }}-service-log
+      restartPolicy: {{ .Values.global.restartPolicy | default .Values.restartPolicy }}
+      imagePullSecrets:
+      - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/pomba/charts/pomba-search-data/templates/secret.yaml b/kubernetes/pomba/charts/pomba-search-data/templates/secret.yaml
new file mode 100644 (file)
index 0000000..33b058f
--- /dev/null
@@ -0,0 +1,16 @@
+apiVersion: v1
+kind: Secret
+metadata:
+  name: {{ include "common.fullname" . }}-keystone
+  namespace: {{ include "common.namespace" . }}
+type: Opaque
+data:
+{{ tpl (.Files.Glob "resources/config/auth/tomcat_keystore").AsSecrets . | indent 2 }}
+---
+apiVersion: v1
+kind: Secret
+metadata:
+  name: {{ include "common.fullname" . }}-policy
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/auth/search_policy.json").AsSecrets . | indent 2 }}
diff --git a/kubernetes/pomba/charts/pomba-search-data/templates/service.yaml b/kubernetes/pomba/charts/pomba-search-data/templates/service.yaml
new file mode 100644 (file)
index 0000000..a30bac1
--- /dev/null
@@ -0,0 +1,24 @@
+apiVersion: v1
+kind: Service
+metadata:
+  name: {{ include "common.servicename" . }}
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+spec:
+  type: {{ .Values.service.type }}
+  ports:
+  {{if eq .Values.service.type "NodePort" -}}
+  - port: {{ .Values.service.internalPort }}
+    nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
+    name: {{ .Values.service.portName }}
+  {{- else -}}
+  - port: {{ .Values.service.internalPort }}
+    name: {{ .Values.service.portName }}
+  {{- end}}
+  selector:
+    app: {{ include "common.name" . }}
+    release: {{ .Release.Name }}
diff --git a/kubernetes/pomba/charts/pomba-search-data/values.yaml b/kubernetes/pomba/charts/pomba-search-data/values.yaml
new file mode 100644 (file)
index 0000000..c9eb6f9
--- /dev/null
@@ -0,0 +1,67 @@
+# Default values for search-data.
+# This is a YAML-formatted file.
+# Declare variables to be passed into your templates.
+global: # global defaults
+  nodePortPrefix: 302
+  readinessRepository: oomk8s
+  readinessImage: readiness-check:2.0.0
+
+
+# application image
+repository: nexus3.onap.org:10001
+image: onap/search-data-service:1.3-STAGING-latest
+pullPolicy: Always
+restartPolicy: Always
+
+# application configuration
+config:
+  elasticsearchHttpPort: 9200
+  keyStorePassword: OBF:1y0q1uvc1uum1uvg1pil1pjl1uuq1uvk1uuu1y10
+  keyManagerPassword: OBF:1y0q1uvc1uum1uvg1pil1pjl1uuq1uvk1uuu1y10
+
+
+# default number of instances
+replicaCount: 1
+
+nodeSelector: {}
+
+affinity: {}
+
+# probe configuration parameters
+liveness:
+  initialDelaySeconds: 10
+  periodSeconds: 10
+  # necessary to disable liveness probe when setting breakpoints
+  # in debugger so K8s doesn't restart unresponsive container
+  enabled: true
+
+readiness:
+  initialDelaySeconds: 10
+  periodSeconds: 10
+
+service:
+  type: ClusterIP
+  portName: pomba-search-data
+  internalPort: 9509
+
+ingress:
+  enabled: false
+
+resources: {}
+  # We usually recommend not to specify default resources and to leave this as a conscious
+  # choice for the user. This also increases chances charts run on environments with little
+  # resources, such as Minikube. If you do want to specify resources, uncomment the following
+  # lines, adjust them as necessary, and remove the curly braces after 'resources:'.
+  #
+  # Example:
+  # Configure resource requests and limits
+  # ref: http://kubernetes.io/docs/user-guide/compute-resources/
+  # Minimum memory for development is 2 CPU cores and 4GB memory
+  # Minimum memory for production is 4 CPU cores and 8GB memory
+#resources:
+#  limits:
+#    cpu: 2
+#    memory: 4Gi
+#  requests:
+#    cpu: 2
+#    memory: 4Gi
diff --git a/kubernetes/pomba/charts/pomba-servicedecomposition/Chart.yaml b/kubernetes/pomba/charts/pomba-servicedecomposition/Chart.yaml
new file mode 100644 (file)
index 0000000..4b89acf
--- /dev/null
@@ -0,0 +1,18 @@
+# Copyright © 2018 Amdocs\r
+#\r
+# Licensed under the Apache License, Version 2.0 (the "License");\r
+# you may not use this file except in compliance with the License.\r
+# You may obtain a copy of the License at\r
+#\r
+#       http://www.apache.org/licenses/LICENSE-2.0\r
+#\r
+# Unless required by applicable law or agreed to in writing, software\r
+# distributed under the License is distributed on an "AS IS" BASIS,\r
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+# See the License for the specific language governing permissions and\r
+# limitations under the License.\r
+\r
+apiVersion: v1\r
+description: ONAP POMBA Network Discovery Service Decomposition\r
+name: pomba-servicedecomposition\r
+version: 2.0.0\r
diff --git a/kubernetes/pomba/charts/pomba-servicedecomposition/requirements.yaml b/kubernetes/pomba/charts/pomba-servicedecomposition/requirements.yaml
new file mode 100644 (file)
index 0000000..8ba6926
--- /dev/null
@@ -0,0 +1,18 @@
+# Copyright � 2018 Amdocs\r
+#\r
+# Licensed under the Apache License, Version 2.0 (the "License");\r
+# you may not use this file except in compliance with the License.\r
+# You may obtain a copy of the License at\r
+#\r
+#       http://www.apache.org/licenses/LICENSE-2.0\r
+#\r
+# Unless required by applicable law or agreed to in writing, software\r
+# distributed under the License is distributed on an "AS IS" BASIS,\r
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+# See the License for the specific language governing permissions and\r
+# limitations under the License.\r
+\r
+dependencies:\r
+  - name: common\r
+    version: ~2.0.0\r
+    repository: '@local'\r
diff --git a/kubernetes/pomba/charts/pomba-servicedecomposition/resources/config/application.properties b/kubernetes/pomba/charts/pomba-servicedecomposition/resources/config/application.properties
new file mode 100644 (file)
index 0000000..26737f5
--- /dev/null
@@ -0,0 +1,51 @@
+# 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
+
+spring.jersey.type=filter
+spring.mvc.urls=swagger,docs,prometheus,auditevents,info,heapdump,autoconfig,beans,loggers,dump,env,trace,health,configprops,mappings,metrics,webjars
+
+
+server.contextPath=/service-decomposition
+spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration,org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration
+
+#This property is used to set the Tomcat connector attributes.developers can define multiple attributes separated by comma
+#tomcat.connector.attributes=allowTrace-true
+#The max number of active threads in this pool
+server.tomcat.max-threads=200
+#The minimum number of threads always kept alive
+server.tomcat.min-Spare-Threads=25
+#The number of milliseconds before an idle thread shutsdown, unless the number of active threads are less or equal to minSpareThreads
+server.tomcat.max-idle-time=60000
+
+basicAuth.username={{ .Values.config.serviceDecompositionUserId }}
+basicAuth.password={{ .Values.config.serviceDecompositionPassword }}
+
+# AAI REST Client Configuration
+aai.host=127.0.0.1
+aai.port=8443
+aai.httpProtocol=http
+aai.trustStorePath=tomcat_keystore
+aai.keyStorePath=aai-client-cert.p12
+aai.keyStorePassword=OBF:1i9a1u2a1unz1lr61wn51wn11lss1unz1u301i6o
+aai.keyManagerFactoryAlgorithm=SunX509
+aai.keyStoreType=PKCS12
+aai.securityProtocol=TLS
+aai.connectionTimeout=5000
+aai.readTimeout=1000
+aai.resourceList=vnfc,vserver,l3-network
+aai.serviceInstancePath=/aai/v13/nodes/service-instance/{0}
+
+#Servlet context parameters
+server.context_parameters.p-name=value #context parameter with p-name as key and value as value.
+
diff --git a/kubernetes/pomba/charts/pomba-servicedecomposition/resources/config/log/logback.xml b/kubernetes/pomba/charts/pomba-servicedecomposition/resources/config/log/logback.xml
new file mode 100644 (file)
index 0000000..1f00cbd
--- /dev/null
@@ -0,0 +1,30 @@
+<configuration>\r
+    <property name="p_tim" value="%d{&quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&quot;, UTC}"/>\r
+    <property name="p_lvl" value="%level"/>\r
+    <property name="p_log" value="%logger"/>\r
+    <property name="p_mdc" value="%replace(%replace(%mdc){'\t','\\\\t'}){'\n', '\\\\n'}"/>\r
+    <property name="p_msg" value="%replace(%replace(%msg){'\t', '\\\\t'}){'\n','\\\\n'}"/>\r
+    <property name="p_exc" value="%replace(%replace(%rootException){'\t', '\\\\t'}){'\n','\\\\n'}"/>\r
+    <!-- tabs -->\r
+    <property name="p_mak" value="%replace(%replace(%marker){'\t', '\\\\t'}){'\n','\\\\n'}"/>\r
+    <property name="p_thr" value="%thread"/>\r
+    <property name="pattern" value="%nopexception${p_tim}\t${p_thr}\t${p_lvl}\t${p_log}\t${p_mdc}\t${p_msg}\t${p_exc}\t${p_mak}\t%n"/>\r
+    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">\r
+        <encoder>\r
+            <pattern>${pattern}</pattern>\r
+        </encoder>\r
+    </appender>\r
+    <appender name="FILE" class="ch.qos.logback.core.FileAppender">\r
+        <file>output.log</file>\r
+        <encoder>\r
+            <pattern>${pattern}</pattern>\r
+        </encoder>\r
+    </appender>\r
+    <logger level="INFO" name="org.onap.logging.ref.slf4j" additivity="false">\r
+        <appender-ref ref="STDOUT" />\r
+        <appender-ref ref="FILE" />\r
+    </logger>\r
+    <root level="INFO">\r
+        <appender-ref ref="STDOUT" />\r
+    </root>\r
+</configuration>\r
diff --git a/kubernetes/pomba/charts/pomba-servicedecomposition/templates/configmap.yaml b/kubernetes/pomba/charts/pomba-servicedecomposition/templates/configmap.yaml
new file mode 100644 (file)
index 0000000..6982316
--- /dev/null
@@ -0,0 +1,30 @@
+# 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.
+#
+
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-log
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/log/logback.xml").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-configmap
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/application.properties").AsConfig . | indent 2 }}
diff --git a/kubernetes/pomba/charts/pomba-servicedecomposition/templates/deployment.yaml b/kubernetes/pomba/charts/pomba-servicedecomposition/templates/deployment.yaml
new file mode 100644 (file)
index 0000000..14513f3
--- /dev/null
@@ -0,0 +1,111 @@
+# 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.
+
+apiVersion: extensions/v1beta1
+kind: Deployment
+metadata:
+  name: {{ include "common.fullname" . }}
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+spec:
+  replicas: {{ .Values.replicaCount }}
+  template:
+    metadata:
+      labels:
+        app: {{ include "common.name" . }}
+        release: {{ .Release.Name }}
+    spec:
+      containers:
+        - name: {{ include "common.name" . }}
+          image: "{{ include "common.repository" . }}/{{ .Values.image }}"
+          imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+          ports:
+          - containerPort: {{ .Values.service.internalPort }}
+          # disable liveness probe when breakpoints set in debugger
+          # so K8s doesn't restart unresponsive container
+          {{ if .Values.liveness.enabled }}
+          livenessProbe:
+            tcpSocket:
+              port: {{ .Values.service.internalPort }}
+            initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
+            periodSeconds: {{ .Values.liveness.periodSeconds }}
+          {{ end }}
+          readinessProbe:
+            tcpSocket:
+              port: {{ .Values.service.internalPort }}
+            initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
+            periodSeconds: {{ .Values.readiness.periodSeconds }}
+          env:
+          volumeMounts:
+          - mountPath: /etc/localtime
+            name: localtime
+            readOnly: true
+          - name: {{ include "common.fullname" . }}-logs
+            mountPath: /var/log/onap
+          - mountPath: /opt/app/config/logback.xml
+            name: {{ include "common.fullname" . }}-log-conf
+            subPath: logback.xml
+          - mountPath: /opt/app/config/application.properties
+            name: {{ include "common.fullname" . }}-config
+            subPath: application.properties
+            readOnly: true
+
+          resources:
+{{ toYaml .Values.resources | indent 12 }}
+        {{- if .Values.nodeSelector }}
+        nodeSelector:
+{{ toYaml .Values.nodeSelector | indent 10 }}
+        {{- end -}}
+        {{- if .Values.affinity }}
+        affinity:
+{{ toYaml .Values.affinity | indent 10 }}
+        {{- end }}
+
+        # Filebeat sidecar container
+        - name: {{ include "common.name" . }}-filebeat-onap
+          image: "{{ .Values.global.loggingRepository }}/{{ .Values.global.loggingImage }}"
+          imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+          volumeMounts:
+          - name: {{ include "common.fullname" . }}-filebeat-conf
+            mountPath: /usr/share/filebeat/filebeat.yml
+            subPath: filebeat.yml
+          - name: {{ include "common.fullname" . }}-data-filebeat
+            mountPath: /usr/share/filebeat/data
+          - name: {{ include "common.fullname" . }}-logs
+            mountPath: /var/log/onap
+
+      volumes:
+        - name: localtime
+          hostPath:
+            path: /etc/localtime
+        - name:  {{ include "common.fullname" . }}-logs
+          emptyDir: {}
+        - name: {{ include "common.fullname" . }}-log-conf
+          configMap:
+            name: {{ include "common.fullname" . }}-log
+        - name: {{ include "common.fullname" . }}-config
+          configMap:
+            name: {{ include "common.fullname" . }}-configmap
+        - name: {{ include "common.fullname" . }}-filebeat-conf
+          configMap:
+            name: {{ .Release.Name }}-pomba-filebeat-configmap
+        - name: {{ include "common.fullname" . }}-data-filebeat
+          emptyDir: {}
+
+      imagePullSecrets:
+      - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/pomba/charts/pomba-servicedecomposition/templates/service.yaml b/kubernetes/pomba/charts/pomba-servicedecomposition/templates/service.yaml
new file mode 100644 (file)
index 0000000..defd063
--- /dev/null
@@ -0,0 +1,41 @@
+# 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.
+
+apiVersion: v1
+kind: Service
+metadata:
+  name: {{ include "common.servicename" . }}
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+spec:
+  type: {{ .Values.service.type }}
+  ports:
+    {{if eq .Values.service.type "NodePort" -}}
+    - port: {{ .Values.service.externalPort }}
+      #Example internal target port if required
+      #targetPort: {{ .Values.service.internalPort }}
+      nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
+      name: {{ .Values.service.portName | default "http" }}
+    {{- else -}}
+    - port: {{ .Values.service.externalPort }}
+      targetPort: {{ .Values.service.internalPort }}
+      name: {{ .Values.service.portName | default "http" }}
+    {{- end}}
+  selector:
+    app: {{ include "common.name" . }}
+    release: {{ .Release.Name }}
diff --git a/kubernetes/pomba/charts/pomba-servicedecomposition/values.yaml b/kubernetes/pomba/charts/pomba-servicedecomposition/values.yaml
new file mode 100644 (file)
index 0000000..3de087e
--- /dev/null
@@ -0,0 +1,96 @@
+# Copyright © 2018 Amdocs\r
+#\r
+# Licensed under the Apache License, Version 2.0 (the "License");\r
+# you may not use this file except in compliance with the License.\r
+# You may obtain a copy of the License at\r
+#\r
+#       http://www.apache.org/licenses/LICENSE-2.0\r
+#\r
+# Unless required by applicable law or agreed to in writing, software\r
+# distributed under the License is distributed on an "AS IS" BASIS,\r
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+# See the License for the specific language governing permissions and\r
+# limitations under the License.\r
+\r
+#################################################################\r
+# Global configuration defaults.\r
+#################################################################\r
+global:\r
+  nodePortPrefix: 302\r
+  repository: nexus3.onap.org:10001\r
+\r
+#################################################################\r
+# Application configuration defaults.\r
+#################################################################\r
+# application image\r
+repository: nexus3.onap.org:10001\r
+image:  onap/service-decomposition:latest\r
+pullPolicy: Always\r
+\r
+# flag to enable debugging - application support required\r
+debugEnabled: false\r
+\r
+# application configuration\r
+# Example:\r
+config:\r
+  # Service Decomposition REST Client Configuration\r
+  # Basic Authorization Client credentials for Service Decomposition REST service\r
+  serviceDecompositionUserId: admin\r
+  serviceDecompositionPassword: OBF:1u2a1toa1w8v1tok1u30\r
+\r
+# default number of instances\r
+replicaCount: 1\r
+\r
+nodeSelector: {}\r
+\r
+affinity: {}\r
+\r
+# probe configuration parameters\r
+liveness:\r
+  initialDelaySeconds: 10\r
+  periodSeconds: 10\r
+  # necessary to disable liveness probe when setting breakpoints\r
+  # in debugger so K8s doesn't restart unresponsive container\r
+  enabled: true\r
+\r
+readiness:\r
+  initialDelaySeconds: 10\r
+  periodSeconds: 10\r
+\r
+#Example service definition with external, internal and node ports.\r
+service:\r
+  # The default service name (exposed in the service.yaml) will be the same\r
+  # name as the chart. If the service name needs to be overriden (such as\r
+  # when a subchart is shared), uncomment the value below.\r
+  #name: <service-name-override>\r
+\r
+  #Services may use any combination of ports depending on the 'type' of\r
+  #service being defined.\r
+  type: ClusterIP\r
+  externalPort: 9532\r
+  internalPort: 8080\r
+#  nodePort: <replace with unused node port suffix eg. 23>\r
+  # optional port name override - default can be defined in service.yaml\r
+  #portName: http\r
+\r
+ingress:\r
+  enabled: false\r
+\r
+resources: {}\r
+  # We usually recommend not to specify default resources and to leave this as a conscious\r
+  # choice for the user. This also increases chances charts run on environments with little\r
+  # resources, such as Minikube. If you do want to specify resources, uncomment the following\r
+  # lines, adjust them as necessary, and remove the curly braces after 'resources:'.\r
+  #\r
+  # Example:\r
+  # Configure resource requests and limits\r
+  # ref: http://kubernetes.io/docs/user-guide/compute-resources/\r
+  # Minimum memory for development is 2 CPU cores and 4GB memory\r
+  # Minimum memory for production is 4 CPU cores and 8GB memory\r
+#resources:\r
+#  limits:\r
+#    cpu: 2\r
+#    memory: 4Gi\r
+#  requests:\r
+#    cpu: 2\r
+#    memory: 4Gi\r
diff --git a/kubernetes/pomba/charts/pomba-validation-service/Chart.yaml b/kubernetes/pomba/charts/pomba-validation-service/Chart.yaml
new file mode 100644 (file)
index 0000000..0f6a3a6
--- /dev/null
@@ -0,0 +1,18 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# 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.
+
+apiVersion: v1
+description: POMBA Validaton-Service
+name: pomba-validation-service
+version: 2.0.0
diff --git a/kubernetes/pomba/charts/pomba-validation-service/requirements.yaml b/kubernetes/pomba/charts/pomba-validation-service/requirements.yaml
new file mode 100644 (file)
index 0000000..ce82a2f
--- /dev/null
@@ -0,0 +1,18 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# 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.
+
+dependencies:
+  - name: common
+    version: ~2.0.0
+    repository: '@local'
diff --git a/kubernetes/pomba/charts/pomba-validation-service/resources/appconfig/README.txt b/kubernetes/pomba/charts/pomba-validation-service/resources/appconfig/README.txt
new file mode 100644 (file)
index 0000000..5cc0149
--- /dev/null
@@ -0,0 +1,10 @@
+This directory contains all external configuration files that
+need to be mounted into an application container.
+
+See the configmap.yaml in the templates directory for an example
+of how to load (ie map) config files from this directory, into
+Kubernetes, for distribution within the k8s cluster.
+
+See deployment.yaml in the templates directory for an example
+of how the 'config mapped' files are then mounted into the
+containers.
diff --git a/kubernetes/pomba/charts/pomba-validation-service/resources/appconfig/aai-environment.properties b/kubernetes/pomba/charts/pomba-validation-service/resources/appconfig/aai-environment.properties
new file mode 100644 (file)
index 0000000..2d600ce
--- /dev/null
@@ -0,0 +1,15 @@
+host=dummy-host.onap.org
+port=8443
+httpProtocol=https
+trustStorePath=/auth/tomcat_keystore
+#trustStorePassword intentionally left blank
+trustStorePassword.x=
+keyStorePath=/auth/client-cert-onap.p12
+keyStorePassword.x=dfcfd1003bdde18de8efea3c8661510e
+keyManagerFactoryAlgorithm=SunX509
+keyStoreType=PKCS12
+securityProtocol=TLS
+connectionTimeout=5000
+readTimeout=1000
+
+baseModelURI=/aai/v8/service-design-and-creation/models/model
diff --git a/kubernetes/pomba/charts/pomba-validation-service/resources/appconfig/auth/client-cert-onap.p12 b/kubernetes/pomba/charts/pomba-validation-service/resources/appconfig/auth/client-cert-onap.p12
new file mode 100644 (file)
index 0000000..dbf4fca
Binary files /dev/null and b/kubernetes/pomba/charts/pomba-validation-service/resources/appconfig/auth/client-cert-onap.p12 differ
diff --git a/kubernetes/pomba/charts/pomba-validation-service/resources/appconfig/auth/tomcat_keystore b/kubernetes/pomba/charts/pomba-validation-service/resources/appconfig/auth/tomcat_keystore
new file mode 100644 (file)
index 0000000..9eec841
Binary files /dev/null and b/kubernetes/pomba/charts/pomba-validation-service/resources/appconfig/auth/tomcat_keystore differ
diff --git a/kubernetes/pomba/charts/pomba-validation-service/resources/appconfig/auth_policy.json b/kubernetes/pomba/charts/pomba-validation-service/resources/appconfig/auth_policy.json
new file mode 100644 (file)
index 0000000..ea5565a
--- /dev/null
@@ -0,0 +1,46 @@
+{"roles": [
+    {
+        "name": "admin",
+        "functions": [
+            {
+                "name": "actions",
+                "methods": [
+                    {"name": "GET"},
+                    {"name": "DELETE"},
+                    {"name": "PUT"}
+                ]
+            },
+            {
+                "name": "validate",
+                "methods": [{"name": "POST"}]
+            }
+        ],
+        "users": [
+            {"username": "CN=common-name, OU=org-unit, O=org, L=location, ST=state, C=US"},
+            {"username": "CN=test, OU=qa, O=Test Ltd, L=London, ST=London, C=GB"},
+            {"username": "CN=aai-client.dev.att.com, OU=aai digicert client dev, O=\"AT&T Services, Inc.\", L=Dallas, ST=Texas, C=US"}
+        ]
+    },
+    {
+        "name": "ops",
+        "functions": [{
+            "name": "actions",
+            "methods": [{"name": "POST"}]
+        }],
+        "users": [
+            {"username": "CN=common-name, OU=org-unit, O=org, L=location, ST=state, C=US"},
+            {"username": "CN=test, OU=qa, O=Test Ltd, L=London, ST=London, C=GB"}
+        ]
+    },
+    {
+        "name": "basicauth",
+        "functions": [{
+            "name": "util",
+            "methods": [{"name": "GET"}]
+        }],
+        "users": [{
+            "user": "aai",
+            "pass": "OBF:1u2a1t2v1vgb1s3g1s3m1vgj1t3b1u30"
+        }]
+    }
+]}
diff --git a/kubernetes/pomba/charts/pomba-validation-service/resources/appconfig/rule-indexing.properties b/kubernetes/pomba/charts/pomba-validation-service/resources/appconfig/rule-indexing.properties
new file mode 100644 (file)
index 0000000..06f4626
--- /dev/null
@@ -0,0 +1,4 @@
+rule.indexing.events=POA-EVENT
+rule.indexing.exclude.oxm.validation=POA-EVENT
+rule.indexing.key.attributes=$.poa-event.modelVersionId,$.poa-event.modelInvariantId
+rule.indexing.default.key=default-rules
diff --git a/kubernetes/pomba/charts/pomba-validation-service/resources/appconfig/schemaIngest.properties b/kubernetes/pomba/charts/pomba-validation-service/resources/appconfig/schemaIngest.properties
new file mode 100644 (file)
index 0000000..41e83bb
--- /dev/null
@@ -0,0 +1,7 @@
+# Properties for the SchemaLocationsBean
+# The AAI Schema jar will be unpacked to bundleconfig/etc
+schemaConfig=bundleconfig
+# Files named aai_oxm_v*.xml are unpacked here:
+nodeDir=${APP_HOME}/bundleconfig/etc/oxm
+# Dummy folder/directory:
+edgeDir=${APP_HOME}/bundleconfig/etc/oxm
diff --git a/kubernetes/pomba/charts/pomba-validation-service/resources/appconfig/topics/topic-poa-audit-result.properties b/kubernetes/pomba/charts/pomba-validation-service/resources/appconfig/topics/topic-poa-audit-result.properties
new file mode 100644 (file)
index 0000000..f15f46d
--- /dev/null
@@ -0,0 +1,22 @@
+# ============LICENSE_START===================================================
+# Copyright (c) 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=====================================================
+
+poa-audit-result.name=POA-AUDIT-RESULT
+poa-audit-result.host=message-router:3904
+poa-audit-result.publisher.partition=1
+poa-audit-result.username=
+poa-audit-result.password=
+poa-audit-result.transport.type=HTTPAUTH
diff --git a/kubernetes/pomba/charts/pomba-validation-service/resources/appconfig/topics/topic-poa-rule-validation.properties b/kubernetes/pomba/charts/pomba-validation-service/resources/appconfig/topics/topic-poa-rule-validation.properties
new file mode 100644 (file)
index 0000000..79aa539
--- /dev/null
@@ -0,0 +1,23 @@
+# ============LICENSE_START===================================================
+# Copyright (c) 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=====================================================
+
+poa-rule-validation.name=POA-RULE-VALIDATION
+poa-rule-validation.host=message-router:3904
+poa-rule-validation.username=
+poa-rule-validation.password=
+poa-rule-validation.consumer.group=poa-validator-test
+poa-rule-validation.consumer.id=test
+poa-rule-validation.transport.type=HTTPAUTH
diff --git a/kubernetes/pomba/charts/pomba-validation-service/resources/appconfig/validation-service-auth.properties b/kubernetes/pomba/charts/pomba-validation-service/resources/appconfig/validation-service-auth.properties
new file mode 100644 (file)
index 0000000..8bbd423
--- /dev/null
@@ -0,0 +1,2 @@
+auth.policy.file=${CONFIG_HOME}/auth_policy.json
+auth.authentication.disable=false
diff --git a/kubernetes/pomba/charts/pomba-validation-service/resources/appconfig/validation-service.properties b/kubernetes/pomba/charts/pomba-validation-service/resources/appconfig/validation-service.properties
new file mode 100644 (file)
index 0000000..9b2e862
--- /dev/null
@@ -0,0 +1,13 @@
+topic.publish.enable=true
+topic.publish.retries=3
+topic.consume.enable=true
+topic.consume.polling.interval.seconds=3
+
+event.domain=onap
+event.action.exclude=DELETE
+event.type.rule=POA-EVENT
+event.type.model=NOT-APPLICABLE-IN-POMBA
+event.type.end=END-EVENT
+
+model.cache.expirySeconds=3
+aai.oxm.version=10
diff --git a/kubernetes/pomba/charts/pomba-validation-service/resources/application.properties b/kubernetes/pomba/charts/pomba-validation-service/resources/application.properties
new file mode 100644 (file)
index 0000000..a71bb9b
--- /dev/null
@@ -0,0 +1,43 @@
+# ============LICENSE_START===================================================
+# Copyright (c) 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=====================================================
+
+# Note that the start.sh script sets the following System Properties
+# We provide default values here for testing purposes
+APP_HOME=.
+CONFIG_HOME=appconfig
+com.att.eelf.logging.path=src/main/resources
+com.att.eelf.logging.file=logback.xml
+logback.configurationFile=${com.att.eelf.logging.path}/${com.att.eelf.logging.file}
+
+schemaIngestPropLoc=${CONFIG_HOME}/schemaIngest.properties
+
+server.port=9501
+server.ssl.client-auth=want
+server.ssl.key-store=${CONFIG_HOME}/auth/tomcat_keystore
+# Work-around for missing Java certificates file "cacerts". This default value should be overridden.
+server.ssl.trust-store=${CONFIG_HOME}/auth/tomcat_keystore
+
+server.tomcat.max-threads=200
+# The minimum number of threads always kept alive
+server.tomcat.min-spare-threads=25
+
+# Spring Boot logging
+logging.config=${logback.configurationFile}
+
+consumer.topic.names=poa-rule-validation
+publisher.topic.names=poa-audit-result
+
+topics.properties.location=${CONFIG_HOME}/topics/
diff --git a/kubernetes/pomba/charts/pomba-validation-service/templates/configmap.yaml b/kubernetes/pomba/charts/pomba-validation-service/templates/configmap.yaml
new file mode 100644 (file)
index 0000000..e66afdc
--- /dev/null
@@ -0,0 +1,37 @@
+# Copyright © 2018 Amdocs, Bell Canada
+#
+# 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.
+
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-root-config
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/*.*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-config-properties
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/appconfig/*.*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-config-topics
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/appconfig/topics/*.properties").AsConfig . | indent 2 }}
diff --git a/kubernetes/pomba/charts/pomba-validation-service/templates/deployment.yaml b/kubernetes/pomba/charts/pomba-validation-service/templates/deployment.yaml
new file mode 100644 (file)
index 0000000..550223b
--- /dev/null
@@ -0,0 +1,129 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# 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.
+
+apiVersion: extensions/v1beta1
+kind: Deployment
+metadata:
+  name: {{ include "common.fullname" . }}
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+spec:
+  replicas: {{ .Values.replicaCount }}
+  template:
+    metadata:
+      labels:
+        app: {{ include "common.name" . }}
+        release: {{ .Release.Name }}
+    spec:
+      containers:
+        - name: {{ include "common.name" . }}
+          image: "{{ include "common.repository" . }}/{{ .Values.image }}"
+          imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+          ports:
+          - containerPort: {{ .Values.service.internalPort }}
+          # disable liveness probe when breakpoints set in debugger
+          # so K8s doesn't restart unresponsive container
+          {{ if .Values.liveness.enabled }}
+          livenessProbe:
+            tcpSocket:
+              port: {{ .Values.service.internalPort }}
+            initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
+            periodSeconds: {{ .Values.liveness.periodSeconds }}
+          {{ end }}
+          {{ if .Values.readiness.enabled }}
+          readinessProbe:
+            tcpSocket:
+              port: {{ .Values.service.internalPort }}
+            initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
+            periodSeconds: {{ .Values.readiness.periodSeconds }}
+          {{ end }}
+          env:
+            - name: APP_HOME
+              value: "{{ .Values.config.appDir }}"
+            - name: CONFIG_HOME
+              value: "{{ .Values.config.configDir }}"
+            - name: MAX_HEAP
+              value: "{{ .Values.config.maxHeap }}"
+          volumeMounts:
+          - mountPath: /etc/localtime
+            name: localtime
+            readOnly: true
+          - mountPath: {{ .Values.config.appDir }}/application.properties
+            name: root-config-app-prop
+            subPath: application.properties
+          - mountPath: {{ .Values.config.configDir }}/
+            name: properties
+          - mountPath: {{ .Values.config.configAuthDir }}/
+            name: config-auth
+          - mountPath: {{ .Values.config.configTopicsDir }}/
+            name: config-topics
+          resources:
+{{ toYaml .Values.resources | indent 12 }}
+        {{- if .Values.nodeSelector }}
+        nodeSelector:
+{{ toYaml .Values.nodeSelector | indent 10 }}
+        {{- end -}}
+        {{- if .Values.affinity }}
+        affinity:
+{{ toYaml .Values.affinity | indent 10 }}
+        {{- end }}
+
+      volumes:
+        - name: localtime
+          hostPath:
+            path: /etc/localtime
+        - name: root-config-app-prop
+          configMap:
+            name: {{ include "common.fullname" . }}-root-config
+            defaultMode: 0644
+        - name: properties
+          configMap:
+            name: {{ include "common.fullname" . }}-config-properties
+            defaultMode: 0644
+            items:
+            - key: validation-service.properties
+              path: validation-service.properties
+            - key: validation-service-auth.properties
+              path: validation-service-auth.properties
+            - key: rule-indexing.properties
+              path: rule-indexing.properties
+            - key: aai-environment.properties
+              path: aai-environment.properties
+            - key: schemaIngest.properties
+              path: schemaIngest.properties
+            - key: auth_policy.json
+              path: auth_policy.json
+        - name: config-auth
+          secret:
+            secretName: {{ include "common.fullname" . }}-config-auth-secret
+            items:
+            - key: tomcat_keystore
+              path: tomcat_keystore
+            - key: client-cert-onap.p12
+              path: client-cert-onap.p12
+        - name: config-topics
+          configMap:
+            name: {{ include "common.fullname" . }}-config-topics
+            defaultMode: 0644
+            items:
+            - key: topic-poa-audit-result.properties
+              path: topic-poa-audit-result.properties
+            - key: topic-poa-rule-validation.properties
+              path: topic-poa-rule-validation.properties
+      imagePullSecrets:
+      - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/pomba/charts/pomba-validation-service/templates/secrets.yaml b/kubernetes/pomba/charts/pomba-validation-service/templates/secrets.yaml
new file mode 100644 (file)
index 0000000..3235967
--- /dev/null
@@ -0,0 +1,22 @@
+# Copyright © 2018 Amdocs, Bell Canada
+#
+# 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.
+
+apiVersion: v1
+kind: Secret
+metadata:
+  name: {{ include "common.fullname" . }}-config-auth-secret
+  namespace: {{ include "common.namespace" . }}
+type: Opaque
+data:
+{{ (.Files.Glob "resources/appconfig/auth/*").AsSecrets | indent 2 }}
diff --git a/kubernetes/pomba/charts/pomba-validation-service/templates/service.yaml b/kubernetes/pomba/charts/pomba-validation-service/templates/service.yaml
new file mode 100644 (file)
index 0000000..11195da
--- /dev/null
@@ -0,0 +1,41 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# 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.
+
+apiVersion: v1
+kind: Service
+metadata:
+  name: {{ include "common.servicename" . }}
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+spec:
+  type: {{ .Values.service.type }}
+  ports:
+    {{if eq .Values.service.type "NodePort" -}}
+    - port: {{ .Values.service.externalPort }}
+      #Example internal target port if required
+      #targetPort: {{ .Values.service.internalPort }}
+      nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
+      name: {{ .Values.service.portName | default "http" }}
+    {{- else -}}
+    - port: {{ .Values.service.externalPort }}
+      targetPort: {{ .Values.service.internalPort }}
+      name: {{ .Values.service.portName | default "http" }}
+    {{- end}}
+  selector:
+    app: {{ include "common.name" . }}
+    release: {{ .Release.Name }}
diff --git a/kubernetes/pomba/charts/pomba-validation-service/values.yaml b/kubernetes/pomba/charts/pomba-validation-service/values.yaml
new file mode 100644 (file)
index 0000000..775527f
--- /dev/null
@@ -0,0 +1,106 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# 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.
+
+#################################################################
+# Global configuration defaults.
+#################################################################
+global:
+  nodePortPrefix: 302
+  repository: nexus3.onap.org:10001
+#  readinessRepository: oomk8s
+#  readinessImage: readiness-check:2.0.0
+#  loggingRepository: docker.elastic.co
+#  loggingImage: beats/filebeat:5.5.0
+
+#################################################################
+# Application configuration defaults.
+#################################################################
+# application image
+#repository: nexus3.onap.org:10001
+repository: nexus3.onap.org:10001
+image:  onap/validation:1.3-STAGING-latest
+#pullPolicy: Always
+pullPolicy: IfNotPresent
+
+# flag to enable debugging - application support required
+debugEnabled: false
+
+# application configuration
+# Example:
+config:
+  appDir: /opt/app/validation-service
+  configDir: /opt/app/validation-service/appconfig
+  configAuthDir: /opt/app/validation-service/appconfig/auth
+  configTopicsDir: /opt/app/validation-service/appconfig/topics
+  maxHeap: 1024
+#  username: myusername
+#  password: mypassword
+
+# default number of instances
+replicaCount: 1
+
+nodeSelector: {}
+
+affinity: {}
+
+# probe configuration parameters
+liveness:
+  initialDelaySeconds: 10
+  periodSeconds: 10
+  # necessary to disable liveness probe when setting breakpoints
+  # in debugger so K8s doesn't restart unresponsive container
+  enabled: false
+
+readiness:
+  initialDelaySeconds: 10
+  periodSeconds: 10
+  enabled: false
+
+#Example service definition with external, internal and node ports.
+service:
+  # The default service name (exposed in the service.yaml) will be the same
+  # name as the chart. If the service name needs to be overriden (such as
+  # when a subchart is shared), uncomment the value below.
+  #name: validation-service
+
+  #Services may use any combination of ports depending on the 'type' of
+  #service being defined.
+  type: ClusterIP
+  externalPort: 9529
+  internalPort: 8080
+#  nodePort: <replace with unused node port suffix eg. 23>
+  # optional port name override - default can be defined in service.yaml
+  #portName: http
+
+ingress:
+  enabled: false
+
+resources: {}
+  # We usually recommend not to specify default resources and to leave this as a conscious
+  # choice for the user. This also increases chances charts run on environments with little
+  # resources, such as Minikube. If you do want to specify resources, uncomment the following
+  # lines, adjust them as necessary, and remove the curly braces after 'resources:'.
+  #
+  # Example:
+  # Configure resource requests and limits
+  # ref: http://kubernetes.io/docs/user-guide/compute-resources/
+  # Minimum memory for development is 2 CPU cores and 4GB memory
+  # Minimum memory for production is 4 CPU cores and 8GB memory
+#resources:
+#  limits:
+#    cpu: 2
+#    memory: 4Gi
+#  requests:
+#    cpu: 2
+#    memory: 4Gi