Merge "Config for pomba services to enable integration"
authorMandeep Khinda <Mandeep.Khinda@amdocs.com>
Wed, 12 Sep 2018 13:50:14 +0000 (13:50 +0000)
committerGerrit Code Review <gerrit@onap.org>
Wed, 12 Sep 2018 13:50:14 +0000 (13:50 +0000)
12 files changed:
kubernetes/aai/charts/aai-champ/resources/config/log/logback.xml [new file with mode: 0644]
kubernetes/aai/charts/aai-champ/templates/configmap.yaml
kubernetes/aai/charts/aai-champ/templates/deployment.yaml
kubernetes/contrib/charts/netbox/charts/netbox-app/resources/config/provisioning/provision.sh
kubernetes/contrib/charts/netbox/charts/netbox-app/templates/pvc.yaml
kubernetes/contrib/charts/netbox/charts/netbox-app/values.yaml
kubernetes/contrib/charts/netbox/charts/netbox-postgres/templates/pvc.yaml
kubernetes/contrib/charts/netbox/charts/netbox-postgres/values.yaml
kubernetes/onap/values.yaml
kubernetes/pomba/charts/pomba-aaictxbuilder/resources/config/application.properties
kubernetes/robot/resources/config/eteshare/config/vm_properties.py
kubernetes/robot/values.yaml

diff --git a/kubernetes/aai/charts/aai-champ/resources/config/log/logback.xml b/kubernetes/aai/charts/aai-champ/resources/config/log/logback.xml
new file mode 100644 (file)
index 0000000..1fbd913
--- /dev/null
@@ -0,0 +1,191 @@
+<!--
+Copyright © 2018 Amdocs, AT&T
+
+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.
+-->
+
+<configuration scan="true" scanPeriod="3 seconds" debug="true">
+  <!-- Service-specific properties -->
+  <property name="componentName" value="AAI-CHAMP" />
+
+  <!-- directory path for logs -->
+  <property name="logDir" value="/var/log/onap" />
+  <property name="logDirectory" value="${logDir}/${componentName}" />
+
+  <!--  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|Champ|%mdc{PartnerName}|%logger||%.-5level|%msg%n" />
+  <property name="auditMetricPattern" value="%m%n" />
+
+  <!-- Example evaluator filter applied against console appender -->
+  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+    <encoder>
+      <pattern>${errorLogPattern}</pattern>
+    </encoder>
+  </appender>
+
+  <!-- ============================================================================ -->
+  <!-- EELF Appenders -->
+  <!-- ============================================================================ -->
+
+  <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>
+
+  <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>${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" />
+
+  <!-- AJSC Services (bootstrap services) -->
+  <logger name="ajsc" level="WARN" />
+  <logger name="ajsc.RouteMgmtService" level="WARN" />
+  <logger name="ajsc.ComputeService" level="WARN" />
+  <logger name="ajsc.VandelayService" level="WARN" />
+  <logger name="ajsc.FilePersistenceService" level="WARN" />
+  <logger name="ajsc.UserDefinedJarService" level="WARN" />
+  <logger name="ajsc.UserDefinedBeansDefService" level="WARN" />
+  <logger name="ajsc.LoggingConfigurationService" level="WARN" />
+
+  <!-- AJSC related loggers -->
+  <logger name="ajsc.restlet" level="WARN" />
+  <logger name="ajsc.servlet" level="WARN" />
+
+  <!-- General loggers -->
+  <logger name="com.att" level="INFO" />
+  <logger name="org.onap" level="INFO" />
+  <logger name="org.openecomp" 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>
index baeb238..42733a7 100644 (file)
@@ -28,3 +28,11 @@ metadata:
   namespace: {{ include "common.namespace" . }}
 data:
 {{ tpl (.Files.Glob "resources/config/dynamic/conf/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-log-configmap
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/log/*").AsConfig . | indent 2 }}
\ No newline at end of file
index dc8cbb5..0e2bb90 100644 (file)
@@ -97,6 +97,9 @@ spec:
           - mountPath: /opt/app/champ-service/dynamic/conf/champ-beans.xml
             name: {{ include "common.fullname" . }}-dynamic-config
             subPath: champ-beans.xml
+          - mountPath: /opt/app/champ-service/bundleconfig/etc/logback.xml
+            name: {{ include "common.fullname" . }}-logback-config
+            subPath: logback.xml
           - mountPath: /logs
             name: {{ include "common.fullname" . }}-logs
           resources:
@@ -131,5 +134,11 @@ spec:
               path: champ-beans.xml
         - name: {{ include "common.fullname" . }}-logs
           emptyDir: {}
+        - name: {{ include "common.fullname" . }}-logback-config
+          configMap:
+            name: {{ include "common.fullname" . }}-log-configmap
+            items:
+            - key: logback.xml
+              path: logback.xml
       imagePullSecrets:
       - name: "{{ include "common.namespace" . }}-docker-registry-key"
index 25717ce..adf10a1 100755 (executable)
@@ -70,10 +70,10 @@ curl --silent -X POST \
   -H 'Authorization: Token onceuponatimeiplayedwithnetbox20180814' \
   -H 'Content-Type: application/json' \
   -d '{
-  "prefix": "192.168.20.0/24",
+  "prefix": "{{ .Values.service.vfw_protected_pool }}",
   "site": 1,
   "tenant": 1,
-  "is_pool": true,
+  "is_pool": false,
   "description": "IP Pool for protected network - vFW use case"
 }'
 
@@ -83,10 +83,10 @@ curl --silent -X POST \
   -H 'Authorization: Token onceuponatimeiplayedwithnetbox20180814' \
   -H 'Content-Type: application/json' \
   -d '{
-  "prefix": "192.168.10.0/24",
+  "prefix": "{{ .Values.service.vfw_unprotected_pool }}",
   "site": 1,
   "tenant": 1,
-  "is_pool": true,
+  "is_pool": false,
   "description": "IP Pool for unprotected network - vFW use case"
 }'
 
@@ -96,9 +96,10 @@ curl --silent -X POST \
   -H 'Authorization: Token onceuponatimeiplayedwithnetbox20180814' \
   -H 'Content-Type: application/json' \
   -d '{
-  "prefix": "10.0.0.0/8",
+  "prefix": "{{ .Values.service.vfw_mgmt_pool }}",
   "site": 1,
   "tenant": 1,
-  "is_pool": true,
+  "is_pool": false,
   "description": "IP Pool for ONAP - general purpose"
 }'
+
index 8fbd454..3489049 100755 (executable)
@@ -30,7 +30,7 @@ metadata:
 {{ .Values.persistence.annotations | indent 4 }}
   {{- end }}
 spec:
-{{- if not .Values.persistence.storageClass -}}
+{{- if not .Values.persistence.storageClass }}
   selector:
     matchLabels:
       name: {{ .Release.Name }}-{{ .Values.persistence.staticPvName }}
index 49a96eb..a1e330a 100755 (executable)
@@ -64,6 +64,12 @@ service:
   internalPort: 8001
   portName: netbox-app
 
+  # The following subnet pool will be
+  # configured in Netbox by provisioning script.
+  vfw_protected_pool: 192.168.20.0/24
+  vfw_unprotected_pool: 192.168.10.0/24
+  vfw_mgmt_pool: 10.0.101.0/24
+
 ingress:
   enabled: false
 
@@ -80,11 +86,21 @@ persistence:
   volumeReclaimPolicy: Retain
   accessMode: ReadWriteMany
   size: 100Mi
-  storageClass: "nfs-dev-sc"
 
-  # Names used for shared pv/pvcs across App & Nginx containers
+  # Uncomment the storageClass parameter to use an existing PV
+  # that will match the following class.
+  # When uncomment the storageClass, the PV is not created anymore.
+
+  # storageClass: "nfs-dev-sc"
+
   staticPvName: netbox-static
 
+  # When using storage class, mountPath and mountSubPath are
+  # simply ignored.
+
+  mountPath: /dockerdata-nfs
+  mountSubPath: netbox/app
+
 # probe configuration parameters
 liveness:
   initialDelaySeconds: 10
index 7760211..30bba6d 100755 (executable)
@@ -30,7 +30,7 @@ metadata:
 {{ .Values.persistence.annotations | indent 4 }}
 {{- end }}
 spec:
-{{- if not .Values.persistence.storageClass -}}
+{{- if not .Values.persistence.storageClass }}
   selector:
     matchLabels:
       name: {{ include "common.fullname" . }}
index c54c3a6..39ff3ed 100755 (executable)
@@ -57,10 +57,22 @@ readiness:
 persistence:
   enabled: true
   volumeReclaimPolicy: Retain
-  storageClass: "nfs-dev-sc"
+
+  # Uncomment the storageClass parameter to use an existing PV
+  # that will match the following class.
+  # When uncomment the storageClass, the PV is not created anymore.
+
+  # storageClass: "nfs-dev-sc"
+
   accessMode: ReadWriteMany
   size: 1Gi
 
+  # When using storage class, mountPath and mountSubPath are
+  # simply ignored.
+
+  mountPath: /dockerdata-nfs
+  mountSubPath: netbox/postgres/data
+
 service:
   type: ClusterIP
   name: netbox-postgres
index bc256a2..4d37070 100644 (file)
@@ -108,6 +108,9 @@ portal:
   enabled: true
 robot:
   enabled: true
+  config:
+# openStackEncryptedPasswordHere should match the encrypted string used in SO and APPC and overridden per environment
+    openStackEncryptedPasswordHere: "c124921a3a0efbe579782cde8227681e"
 sdc:
   enabled: true
 sdnc:
index f1493cd..194ab1d 100644 (file)
@@ -38,8 +38,7 @@ aai.readTimeout={{ .Values.config.aaiReadTimeout }}
 http.userId={{ .Values.config.httpUserId }}
 http.password={{ .Values.config.httpPassword }}
 
-# {0} = customerId {1} = serviceType {2} = serviceInstanceId
-aai.serviceInstancePath=/aai/v11/business/customers/customer/{0}/service-subscriptions/service-subscription/{1}/service-instances/service-instance/{2}
+aai.searchNodeQuery=/aai/v11/search/nodes-query?search-node-type=service-instance&filter=service-instance-id:EQUALS:
 
 #Servlet context parameters
 server.context_parameters.p-name=value #context parameter with p-name as key and value as value.
index 6a6ec3e..4ae8124 100644 (file)
@@ -45,6 +45,7 @@ GLOBAL_INJECTED_OOF_IP_ADDR = "N/A"
 GLOBAL_INJECTED_OOF_HOMING_IP_ADDR = "oof-has-api.{{include "common.namespace" .}}"
 GLOBAL_INJECTED_OOF_SNIRO_IP_ADDR = "oof-osdf.{{include "common.namespace" .}}"
 GLOBAL_INJECTED_MSB_IP_ADDR = "msb-iag.{{include "common.namespace" .}}"
+GLOBAL_INJECTED_OPENSTACK_API_KEY = "{{ .Values.config.openStackEncryptedPasswordHere}}"
 GLOBAL_INJECTED_OPENSTACK_PASSWORD = "{{ .Values.openStackPassword }}"
 GLOBAL_INJECTED_OPENSTACK_TENANT_ID = "{{ .Values.openStackTenantId }}"
 GLOBAL_INJECTED_OPENSTACK_USERNAME = "{{ .Values.openStackUserName }}"
@@ -108,6 +109,7 @@ GLOBAL_INJECTED_PROPERTIES = {
     "GLOBAL_INJECTED_OOF_HOMING_IP_ADDR" : "oof-has-api.{{include "common.namespace" .}}",
     "GLOBAL_INJECTED_OOF_SNIRO_IP_ADDR" : "oof-osdf.{{include "common.namespace" .}}",
     "GLOBAL_INJECTED_MSB_IP_ADDR" : "msb-iag.{{include "common.namespace" .}}",
+    "GLOBAL_INJECTED_OPENSTACK_API_KEY" : "{{ .Values.config.openStackEncryptedPasswordHere}}",
     "GLOBAL_INJECTED_OPENSTACK_PASSWORD" : "{{ .Values.openStackPassword }}",
     "GLOBAL_INJECTED_OPENSTACK_TENANT_ID" : "{{ .Values.openStackTenantId }}",
     "GLOBAL_INJECTED_OPENSTACK_USERNAME" : "{{ .Values.openStackUserName }}",
index 8a28e89..eccd684 100644 (file)
@@ -35,6 +35,9 @@ debugEnabled: false
 #################################################################
 config:
 
+# openStackEncryptedPasswordHere should match the encrypted string used in SO and APPC and overridden per environment
+  openStackEncryptedPasswordHere: "c124921a3a0efbe579782cde8227681e"
+
 # Demo configuration
 # Nexus demo artifact version.  Maps to GLOBAL_INJECTED_ARTIFACTS_VERSION
 demoArtifactsVersion: "1.2.0-SNAPSHOT"
@@ -147,4 +150,4 @@ persistence:
   accessMode: ReadWriteMany
   size: 2Gi
   mountPath: /dockerdata-nfs
-  mountSubPath: robot/logs
\ No newline at end of file
+  mountSubPath: robot/logs