Update CMSO OOM to use HTTPS and AAF 72/86672/13
authorJerry Flood <jflood@att.com>
Tue, 30 Apr 2019 19:30:04 +0000 (15:30 -0400)
committerJerry Flood <jflood@att.com>
Fri, 10 May 2019 11:58:45 +0000 (07:58 -0400)
Fixes OPTFRA-484 and OPTFRA-390

Issue-ID: OPTFRA-391

Change-Id: I2b65743e38464aac8dbc8cf81419e9ce36769b7d
Signed-off-by: Jerry Flood <jflood@att.com>
31 files changed:
kubernetes/oof/charts/oof-cmso/charts/oof-cmso-optimizer/resources/config/cadi.properties
kubernetes/oof/charts/oof-cmso/charts/oof-cmso-optimizer/resources/config/optimizer.properties
kubernetes/oof/charts/oof-cmso/charts/oof-cmso-optimizer/templates/deployment.yaml
kubernetes/oof/charts/oof-cmso/charts/oof-cmso-service/resources/config/cadi.properties
kubernetes/oof/charts/oof-cmso/charts/oof-cmso-service/resources/config/cmso.properties
kubernetes/oof/charts/oof-cmso/charts/oof-cmso-service/resources/config/mock.py [new file with mode: 0644]
kubernetes/oof/charts/oof-cmso/charts/oof-cmso-service/resources/config/msosimulator.sh [new file with mode: 0644]
kubernetes/oof/charts/oof-cmso/charts/oof-cmso-service/resources/config/optimizer.properties
kubernetes/oof/charts/oof-cmso/charts/oof-cmso-service/resources/config/ticketmgt.properties
kubernetes/oof/charts/oof-cmso/charts/oof-cmso-service/templates/deployment.yaml
kubernetes/oof/charts/oof-cmso/charts/oof-cmso-service/values.yaml
kubernetes/oof/charts/oof-cmso/charts/oof-cmso-ticketmgt/resources/config/cadi.properties
kubernetes/oof/charts/oof-cmso/charts/oof-cmso-ticketmgt/resources/config/ticketmgt.properties
kubernetes/oof/charts/oof-cmso/charts/oof-cmso-ticketmgt/templates/deployment.yaml
kubernetes/oof/charts/oof-cmso/charts/oof-cmso-ticketmgt/values.yaml
kubernetes/oof/charts/oof-cmso/charts/oof-cmso-topology/resources/config/cadi.properties
kubernetes/oof/charts/oof-cmso/charts/oof-cmso-topology/resources/config/topology.properties
kubernetes/oof/charts/oof-cmso/charts/oof-cmso-topology/templates/deployment.yaml
kubernetes/oof/charts/oof-cmso/resources/certs/AAFUserRoles.properties [new file with mode: 0644]
kubernetes/oof/charts/oof-cmso/resources/certs/org.onap.oof.cred.props [new file with mode: 0644]
kubernetes/oof/charts/oof-cmso/resources/certs/org.onap.oof.jks [new file with mode: 0644]
kubernetes/oof/charts/oof-cmso/resources/certs/org.onap.oof.keyfile [new file with mode: 0644]
kubernetes/oof/charts/oof-cmso/resources/certs/org.onap.oof.location.props [new file with mode: 0644]
kubernetes/oof/charts/oof-cmso/resources/certs/org.onap.oof.props [new file with mode: 0644]
kubernetes/oof/charts/oof-cmso/resources/certs/truststoreONAPall.jks [new file with mode: 0644]
kubernetes/oof/charts/oof-cmso/resources/log/filebeat/filebeat.yml [new file with mode: 0644]
kubernetes/oof/charts/oof-cmso/templates/configmap.yaml [new file with mode: 0644]
kubernetes/oof/charts/oof-cmso/templates/secret.yaml [new file with mode: 0644]
kubernetes/oof/charts/oof-cmso/values.yaml
kubernetes/robot/resources/config/eteshare/config/integration_robot_properties.py
kubernetes/robot/values.yaml

index 9a6b91c..871341d 100644 (file)
@@ -17,5 +17,5 @@
 # 
 #-------------------------------------------------------------------------------
 cadi_loglevel=DEBUG
-cadi_prop_files=src/main/resources/aaf/org.onap.oof.props
+cadi_prop_files=/share/etc/certs/org.onap.oof.props
 
index 83ed89a..6b72dd4 100644 (file)
@@ -41,8 +41,8 @@ logging.level.org.hibernate=WARN
 #-------------------------------------------------------------------------------
 
 
-cmso.topology.create.request.url=http://${TOPOLOGY_HOST}:${TOPOLOGY_PORT}/topology/v1/current
-cmso.ticket.create.request.url=http://${TICKETMGT_HOST}:${TICKETMGT_PORT}/ticketmgt/v1/activetickets
+cmso.topology.create.request.url=https://oof-cmso-topology:7998/topology/v1/current
+cmso.ticket.create.request.url=https://oof-cmso-ticketmgt:7999/ticketmgt/v1/activetickets
 cmso.local.policy.folder=data/policies
 
 cmso.minizinc.command.exe=/mz-dist/bin/minizinc
@@ -51,4 +51,8 @@ cmso.minizinc.command.timelimit=60000
 cmso.minizinc.command.mzn=scripts/minizinc/generic_attributes.mzn
 
 mechid.user=oof@oof.onap.org
-mechid.pass=changeit
+mechid.pass=enc:vfxQdJ1mgdcI7S6SPrzNaw==
+
+cadi_loglevel=DEBUG
+cadi_prop_files=/share/etc/certs/org.onap.oof.props
+aaf.user.roles=/share/etc/certs/AAFUserRoles.properties
\ No newline at end of file
index 4e418bf..e28dfca 100644 (file)
@@ -66,21 +66,13 @@ spec:
         volumeMounts:
         - name: {{ include "common.fullname" . }}-config
           mountPath: /share/etc/config
-        - name: {{ include "common.fullname" . }}-logs   
+        - name: {{ include "common.fullname" . }}-logs
           mountPath: /share/logs
       containers:
       - name: {{ include "common.name" . }}
         image: "{{ include "common.repository" . }}/{{ .Values.image }}"
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         env:
-        - name: TOPOLOGY_HOST
-          value: {{ .Values.config.topology_host }}.{{.Release.Namespace}}
-        - name: TOPOLOGY_PORT
-          value: {{ .Values.config.topology_port | quote}}
-        - name: TICKETMGT_HOST
-          value: {{ .Values.config.ticketmgt_host }}.{{.Release.Namespace}}
-        - name: TICKETMGT_PORT
-          value: {{ .Values.config.ticketmgt_port | quote}}
         - name: DB_HOST
           value: {{ .Values.config.db_host }}.{{.Release.Namespace}}
         - name: DB_PORT
@@ -94,6 +86,16 @@ spec:
             secretKeyRef:
               name: {{ .Release.Name}}-cmso-db
               key: db-root-password
+        - name: JAVA_TRUSTSTORE
+          value: /share/etc/certs/{{ .Values.global.truststoreFile }}
+        - name: SSL_KEYSTORE
+          value: /share/etc/certs/{{ .Values.global.keystoreFile }}
+        - name: JAVA_TRUSTSTORE_PASSWORD
+          value: {{ .Values.global.truststorePassword }}
+        - name: SSL_KEYSTORE_PASSWORD
+          value: {{ .Values.global.keystorePassword }}
+        - name: AUTHENTICATION
+          value: {{ .Values.global.authentication }}
         ports:
         - containerPort: {{ .Values.service.internalPort }}
         # disable liveness probe when breakpoints set in debugger
@@ -116,7 +118,11 @@ spec:
         - name: {{ include "common.fullname" . }}-logs
           mountPath: /share/debug-logs
         - name: {{ include "common.fullname" . }}-config
-          mountPath: /share/etc/config 
+          mountPath: /share/etc/config
+        - name: {{ include "common.fullname" . }}-certs
+          mountPath: /share/etc/certs
+        - name: {{ include "common.fullname" . }}-certs
+          mountPath: /opt/app/cmso/src/main/resources/aaf
         resources:
 {{ include "common.resources" . | indent 12 }}
         {{- if .Values.nodeSelector }}
@@ -142,5 +148,8 @@ spec:
               path: liquibase.properties
         - name:  {{ include "common.fullname" . }}-logs
           emptyDir: {}
+        - name: {{ include "common.fullname" . }}-certs
+          secret:
+            secretName: {{ .Release.Name }}-{{ .Values.global.commonConfigPrefix }}-certs
       imagePullSecrets:
       - name: "{{ include "common.namespace" . }}-docker-registry-key"
index 9a6b91c..871341d 100644 (file)
@@ -17,5 +17,5 @@
 # 
 #-------------------------------------------------------------------------------
 cadi_loglevel=DEBUG
-cadi_prop_files=src/main/resources/aaf/org.onap.oof.props
+cadi_prop_files=/share/etc/certs/org.onap.oof.props
 
index ce94f57..c6c93ed 100644 (file)
@@ -2,27 +2,27 @@
 #-------------------------------------------------------------------------------
 # Copyright (c) 2017-2018 AT&T Intellectual Property.
 # Modifications Copyright (c) 2018 IBM.
-# 
+#
 # 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.
-# 
-# 
+#
+#
 # Unless otherwise specified, all documentation contained herein is licensed
 # under the Creative Commons License, Attribution 4.0 Intl. (the ???License???);
 # you may not use this documentation except in compliance with the License.
 # You may obtain a copy of the License at
-# 
+#
 #         https://creativecommons.org/licenses/by/4.0/
-# 
+#
 # Unless required by applicable law or agreed to in writing, documentation
 # distributed under the License is distributed on an "AS IS" BASIS,
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -74,7 +74,7 @@ cmso.cm.polling.job.interval.ms=10000
 # How many management cmso polling intervals to look ahead to dispatch
 # (To account for possible latency of the polling job)
 cmso.cm.polling.job.lookahead.intervals=5
-# Lead time before event time to enable dispatcher to 
+# Lead time before event time to enable dispatcher to
 # test that it is safe to dispatch (i.e. meeting reminder lead time)
 cmso.cm.dispatcher.lead.time.ms=5000
 # Lead time to prepare and call VID to dispatch work to MSO
@@ -93,11 +93,15 @@ so.polling.interval.ms=10000
 #mso.pass=enc:bfodXf8qRfCqMvlxVBYNWQ==
 
 ## loopback settings
-so.url=http://localhost:8080/cmso/v1/loopbacktest/onap/so/infra/orchestrationRequests/v7
+so.url=http://127.0.0.1:5000/onap/so/infra/orchestrationRequests/v7
 so.user=oof@oof.onap.org
-so.pass=changeit
+so.pass=enc:vfxQdJ1mgdcI7S6SPrzNaw==
 
 mechid.user=oof@oof.onap.org
-mechid.pass=changeit
+mechid.pass=enc:vfxQdJ1mgdcI7S6SPrzNaw==
 
 cmso.dispatch.url=http://localhost:8089
+
+cadi_loglevel=DEBUG
+cadi_prop_files=/share/etc/certs/org.onap.oof.props
+aaf.user.roles=/share/etc/certs/AAFUserRoles.properties
diff --git a/kubernetes/oof/charts/oof-cmso/charts/oof-cmso-service/resources/config/mock.py b/kubernetes/oof/charts/oof-cmso/charts/oof-cmso-service/resources/config/mock.py
new file mode 100644 (file)
index 0000000..b678a4e
--- /dev/null
@@ -0,0 +1,83 @@
+ # -------------------------------------------------------------------------
+ #   Copyright (c) 2019 AT&T Intellectual Property
+ #
+ #   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.
+ #
+ # -------------------------------------------------------------------------
+ #
+
+from flask import Flask
+from flask import request
+from flask import Response
+from flask import json
+from flask import send_from_directory
+import requests
+from threading import Thread
+import time
+
+import os
+import fnmatch
+import re
+import time
+import datetime
+
+app = Flask(__name__)
+ROOT_MOCK_DIR = os.path.dirname(os.path.abspath(__file__))
+DATA_DIR =   os.path.join(ROOT_MOCK_DIR, "data")
+global requestNum
+requestNum = 1
+
+########################################################################
+########################################################################
+@app.route('/onap/so/infra/orchestrationRequests/v7/schedule/<VNFNAME>', methods=['GET', 'POST'])
+def soSchedule(VNFNAME):
+    if request.method == 'POST':
+        testid = request.headers.environ["HTTP_X_TRANSACTIONID"]
+        response = {
+            "status" : "202",
+            "entity" : {
+                "requestReferences" : {
+                    "requestId" : "000001"
+                    }
+                }
+            }
+        resp = Response(json.dumps(response), 200, mimetype='application/json')
+        return resp
+
+
+    else :
+        return "Helloooooo!!!!"
+
+########################################################################
+########################################################################
+@app.route('/onap/so/infra/orchestrationRequests/v7/<REQUESTID>', methods=['GET'])
+def soStatus(REQUESTID):
+    response = {"request" : { "requestStatus" : {
+        "requestState" : "COMPLETE",
+        "statusMessage" : "Done.",
+        "percentProgress" : 100,
+        "finishTime" : ""
+        }}}
+    now = datetime.datetime.utcnow()
+    #response["finishTime"] = now.strftime("%Y-%m-%dT%H:%M:%SZ")
+    response["request"]["requestStatus"]["finishTime"] = now.strftime("%a, %d %b %Y %H:%M:%S GMT")
+    resp = Response(json.dumps(response), 200, mimetype='application/json')
+
+    return resp
+
+########################################################################
+########################################################################
+if __name__ == "__main__":
+    app.run(host= '0.0.0.0',port=5000)
+    #app.run()
+
diff --git a/kubernetes/oof/charts/oof-cmso/charts/oof-cmso-service/resources/config/msosimulator.sh b/kubernetes/oof/charts/oof-cmso/charts/oof-cmso-service/resources/config/msosimulator.sh
new file mode 100644 (file)
index 0000000..c87a26b
--- /dev/null
@@ -0,0 +1,4 @@
+#!/bin/sh
+pip install flask
+pip install requests
+python /share/etc/config/mock.py
index 498a1e5..1e4a841 100644 (file)
@@ -29,6 +29,6 @@
 # limitations under the License.
 #-------------------------------------------------------------------------------
 
-cmso.optimizer.request.url=$http://${OPTIMIZER_HOST}:${OPTIMIZER_PORT}/optimizer/v1/optimize/schedule
-cmso.optimizer.status.url=http://${OPTIMIZER_HOST}:${OPTIMIZER_PORT}/optimizer/v1/optimize/schedule
-cmso.optimizer.health.url=http://${OPTIMIZER_HOST}:${OPTIMIZER_PORT}/optimizer/v1/health?checkInterfaces=true
\ No newline at end of file
+cmso.optimizer.request.url=https://oof-cmso-optimizer:7997/optimizer/v1/optimize/schedule
+cmso.optimizer.status.url=https://oof-cmso-optimizer:7997/optimizer/v1/optimize/schedule
+cmso.optimizer.health.url=https://oof-cmso-optimizer:7997/optimizer/v1/health?checkInterfaces=true
\ No newline at end of file
index bfdaec6..bdf483d 100644 (file)
@@ -30,9 +30,9 @@
 #-------------------------------------------------------------------------------
 
 tm.vnfs.per.ticket=1
-tm.getPath=http://localhost:8080/cmso/v1/tm/getChangeRecord
-tm.createPath=http://localhost:8080/cmso/v1/tm/createChangeRecord
-tm.closePath=http://localhost:8080/cmso/v1/tm/closeCancelChangeRecord
-tm.updatePath=http://localhost:8080/cmso/v1/tm/updateChangeRecord
+tm.getPath=http://localhost:8089/cmso/v1/tm/getChangeRecord
+tm.createPath=http://localhost:8089/cmso/v1/tm/createChangeRecord
+tm.closePath=http://localhost:8089/cmso/v1/tm/closeCancelChangeRecord
+tm.updatePath=http://localhost:8089/cmso/v1/tm/updateChangeRecord
 tm.approvalStatus=Approved|Scheduled,Approved|Assigned
 tm.template.folder=data/templates/tm
index 350708f..b26f6dd 100644 (file)
@@ -66,9 +66,38 @@ spec:
         volumeMounts:
         - name: {{ include "common.fullname" . }}-config
           mountPath: /share/etc/config
-        - name: {{ include "common.fullname" . }}-logs   
+        - name: {{ include "common.fullname" . }}-logs
           mountPath: /share/logs
       containers:
+      # 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" . }}-logs
+        - mountPath: /usr/share/filebeat/data
+          name: {{ include "common.fullname" . }}-filebeat
+        resources:
+{{ include "common.resources" . }}
+      - name: mso-simulator
+        image: "{{ .Values.global.pythonRepository }}/{{ .Values.global.pythonImage }}"
+        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+        volumeMounts:
+        - name: {{ include "common.fullname" . }}-config
+          mountPath: /share/etc/config
+        command:
+        - /bin/sh
+        args:
+        - -x
+        - /share/etc/config/msosimulator.sh
+        ports:
+        - containerPort: 5000        
+        resources:
+{{ include "common.resources" . }}
       - name: {{ include "common.name" . }}
         image: "{{ include "common.repository" . }}/{{ .Values.image }}"
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
@@ -86,10 +115,16 @@ spec:
             secretKeyRef:
               name: {{ .Release.Name}}-cmso-db
               key: user-password
-        - name: OPTIMIZER_HOST
-          value: {{ .Values.config.optimizer_host }}.{{.Release.Namespace}}
-        - name: OPTIMIZER_PORT
-          value: {{ .Values.config.optimizer_port | quote}}
+        - name: JAVA_TRUSTSTORE
+          value: /share/etc/certs/{{ .Values.global.truststoreFile }}
+        - name: SSL_KEYSTORE
+          value: /share/etc/certs/{{ .Values.global.keystoreFile }}
+        - name: JAVA_TRUSTSTORE_PASSWORD
+          value: {{ .Values.global.truststorePassword }}
+        - name: SSL_KEYSTORE_PASSWORD
+          value: {{ .Values.global.keystorePassword }}
+        - name: AUTHENTICATION
+          value: {{ .Values.global.authentication }}
         ports:
         - containerPort: {{ .Values.service.internalPort }}
         # disable liveness probe when breakpoints set in debugger
@@ -112,7 +147,11 @@ spec:
         - name: {{ include "common.fullname" . }}-logs
           mountPath: /share/debug-logs
         - name: {{ include "common.fullname" . }}-config
-          mountPath: /share/etc/config 
+          mountPath: /share/etc/config
+        - name: {{ include "common.fullname" . }}-certs
+          mountPath: /share/etc/certs
+        - name: {{ include "common.fullname" . }}-certs
+          mountPath: /opt/app/cmso/src/main/resources/aaf
         resources:
 {{ include "common.resources" . | indent 12 }}
         {{- if .Values.nodeSelector }}
@@ -140,7 +179,19 @@ spec:
               path: ticketmgt.properties
             - key: liquibase.properties
               path: liquibase.properties
+            - key: mock.py
+              path: mock.py
+            - key: msosimulator.sh
+              path: msosimulator.sh
         - name:  {{ include "common.fullname" . }}-logs
           emptyDir: {}
+        - name: {{ include "common.fullname" . }}-filebeat
+          emptyDir: {}
+        - name: filebeat-conf
+          configMap:
+            name: {{ .Release.Name }}-cmso-filebeat-configmap
+        - name: {{ include "common.fullname" . }}-certs
+          secret:
+            secretName: {{ .Release.Name }}-{{ .Values.global.commonConfigPrefix }}-certs
       imagePullSecrets:
       - name: "{{ include "common.namespace" . }}-docker-registry-key"
index 6df3049..f4d3ffb 100644 (file)
@@ -19,6 +19,8 @@ global: # global defaults
   nodePortPrefix: 302
   readinessRepository: oomk8s
   readinessImage: readiness-check:2.0.0
+  pythonRepository: library
+  pythonImage: python:3.6-alpine
 
 subChartsOnly:
   enabled: true
index 9a6b91c..871341d 100644 (file)
@@ -17,5 +17,5 @@
 # 
 #-------------------------------------------------------------------------------
 cadi_loglevel=DEBUG
-cadi_prop_files=src/main/resources/aaf/org.onap.oof.props
+cadi_prop_files=/share/etc/certs/org.onap.oof.props
 
index 5ca252f..d687ab3 100644 (file)
@@ -28,3 +28,6 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 #-------------------------------------------------------------------------------
+cadi_loglevel=DEBUG
+cadi_prop_files=/share/etc/certs/org.onap.oof.props
+aaf.user.roles=/share/etc/certs/AAFUserRoles.properties
\ No newline at end of file
index e01034e..38a8c92 100644 (file)
@@ -34,6 +34,17 @@ spec:
       - name: {{ include "common.name" . }}
         image: "{{ include "common.repository" . }}/{{ .Values.image }}"
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+        env:
+        - name: JAVA_TRUSTSTORE
+          value: /share/etc/certs/{{ .Values.global.truststoreFile }}
+        - name: SSL_KEYSTORE
+          value: /share/etc/certs/{{ .Values.global.keystoreFile }}
+        - name: JAVA_TRUSTSTORE_PASSWORD
+          value: {{ .Values.global.truststorePassword }}
+        - name: SSL_KEYSTORE_PASSWORD
+          value: {{ .Values.global.keystorePassword }}
+        - name: AUTHENTICATION
+          value: proprietary-auth
         ports:
         - containerPort: {{ .Values.service.internalPort }}
         # disable liveness probe when breakpoints set in debugger
@@ -56,7 +67,11 @@ spec:
         - name: {{ include "common.fullname" . }}-logs
           mountPath: /share/debug-logs
         - name: {{ include "common.fullname" . }}-config
-          mountPath: /share/etc/config 
+          mountPath: /share/etc/config
+        - name: {{ include "common.fullname" . }}-certs
+          mountPath: /share/etc/certs
+        - name: {{ include "common.fullname" . }}-certs
+          mountPath: /opt/app/cmso/src/main/resources/aaf
         resources:
 {{ include "common.resources" . | indent 12 }}
         {{- if .Values.nodeSelector }}
@@ -80,5 +95,8 @@ spec:
               path: cadi.properties
         - name:  {{ include "common.fullname" . }}-logs
           emptyDir: {}
+        - name: {{ include "common.fullname" . }}-certs
+          secret:
+            secretName: {{ .Release.Name }}-{{ .Values.global.commonConfigPrefix }}-certs
       imagePullSecrets:
       - name: "{{ include "common.namespace" . }}-docker-registry-key"
index f19b8e2..7c687f5 100644 (file)
@@ -19,7 +19,8 @@ global: # global defaults
   nodePortPrefix: 302
   readinessRepository: oomk8s
   readinessImage: readiness-check:2.0.0
-
+  authentication: proprietary-auth
+  
 subChartsOnly:
   enabled: true
 
index 9a6b91c..871341d 100644 (file)
@@ -17,5 +17,5 @@
 # 
 #-------------------------------------------------------------------------------
 cadi_loglevel=DEBUG
-cadi_prop_files=src/main/resources/aaf/org.onap.oof.props
+cadi_prop_files=/share/etc/certs/org.onap.oof.props
 
index 5ca252f..d687ab3 100644 (file)
@@ -28,3 +28,6 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 #-------------------------------------------------------------------------------
+cadi_loglevel=DEBUG
+cadi_prop_files=/share/etc/certs/org.onap.oof.props
+aaf.user.roles=/share/etc/certs/AAFUserRoles.properties
\ No newline at end of file
index 02f3983..2b36b29 100644 (file)
@@ -34,6 +34,17 @@ spec:
       - name: {{ include "common.name" . }}
         image: "{{ include "common.repository" . }}/{{ .Values.image }}"
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+        env:
+        - name: JAVA_TRUSTSTORE
+          value: /share/etc/certs/{{ .Values.global.truststoreFile }}
+        - name: SSL_KEYSTORE
+          value: /share/etc/certs/{{ .Values.global.keystoreFile }}
+        - name: JAVA_TRUSTSTORE_PASSWORD
+          value: {{ .Values.global.truststorePassword }}
+        - name: SSL_KEYSTORE_PASSWORD
+          value: {{ .Values.global.keystorePassword }}
+        - name: AUTHENTICATION
+          value: {{ .Values.global.authentication }}
         ports:
         - containerPort: {{ .Values.service.internalPort }}
         # disable liveness probe when breakpoints set in debugger
@@ -56,7 +67,11 @@ spec:
         - name: {{ include "common.fullname" . }}-logs
           mountPath: /share/debug-logs
         - name: {{ include "common.fullname" . }}-config
-          mountPath: /share/etc/config 
+          mountPath: /share/etc/config
+        - name: {{ include "common.fullname" . }}-certs
+          mountPath: /share/etc/certs
+        - name: {{ include "common.fullname" . }}-certs
+          mountPath: /opt/app/cmso/src/main/resources/aaf
         resources:
 {{ include "common.resources" . | indent 12 }}
         {{- if .Values.nodeSelector }}
@@ -80,5 +95,8 @@ spec:
               path: topology.properties
         - name:  {{ include "common.fullname" . }}-logs
           emptyDir: {}
+        - name: {{ include "common.fullname" . }}-certs
+          secret:
+            secretName: {{ .Release.Name }}-{{ .Values.global.commonConfigPrefix }}-certs
       imagePullSecrets:
       - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/oof/charts/oof-cmso/resources/certs/AAFUserRoles.properties b/kubernetes/oof/charts/oof-cmso/resources/certs/AAFUserRoles.properties
new file mode 100644 (file)
index 0000000..e7fc221
--- /dev/null
@@ -0,0 +1 @@
+/**=org.onap.oof.access|*|get  ALL
\ No newline at end of file
diff --git a/kubernetes/oof/charts/oof-cmso/resources/certs/org.onap.oof.cred.props b/kubernetes/oof/charts/oof-cmso/resources/certs/org.onap.oof.cred.props
new file mode 100644 (file)
index 0000000..b56c500
--- /dev/null
@@ -0,0 +1,22 @@
+ # -------------------------------------------------------------------------
+ #   Copyright (c) 2019 AT&T Intellectual Property
+ #
+ #   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.
+ #
+ # -------------------------------------------------------------------------
+ #
+
+aaf_id=oof@oof.onap.org
+aaf_password=demo123456!
+cadi_keyfile=/share/etc/certs/org.onap.oof.keyfile
+cadi_truststore=/share/etc/certs//truststoreONAPall.jks
diff --git a/kubernetes/oof/charts/oof-cmso/resources/certs/org.onap.oof.jks b/kubernetes/oof/charts/oof-cmso/resources/certs/org.onap.oof.jks
new file mode 100644 (file)
index 0000000..535abaa
Binary files /dev/null and b/kubernetes/oof/charts/oof-cmso/resources/certs/org.onap.oof.jks differ
diff --git a/kubernetes/oof/charts/oof-cmso/resources/certs/org.onap.oof.keyfile b/kubernetes/oof/charts/oof-cmso/resources/certs/org.onap.oof.keyfile
new file mode 100644 (file)
index 0000000..f85a567
--- /dev/null
@@ -0,0 +1,27 @@
+liD-IR8Y1MHqPDTUqq3AaTtqnWn5jCpfIRBlyi6xY4A0fbQz8ZPlTZPHkshRt0dHdST3R7TIvTyQ
+JpTCeBNBu2df3vBbUzsN0rIpPG9TGjzmE7cRu4V4kfefSqsIj-S7OTAaWaWpwGWJYLLCB2sQALkS
+f68VWdupUEw3g9jqCU1QzjKOnLGvhlp6Qrc1xG4Z5Ar8WERw-C3DqTWUKANoEvjWkvH2rAywzj93
+pmspvd5fQfH1rp1ACNvnPrRb_oYNfwPrNpE7Sb4LvM1muoiKMDF64IDO0TkxhjHZ9wpJgVsnowby
+qmokqf39dMRRk3S1IEpOiBGyLS_885JDj_XJKYRQsjvkTzjpFJ7wE2-HDZEVWCITvtS9-Xorm5TI
+3iU4rjMDew5fkBnjoKuSOS7Lksva4ouZOCiUkDos1jAJ5XMDEQm4BcPHtcW6PpC602-qRcgnNjjP
+wOPdF7hCm27ZTai3lAtNGByR7oBr9r5Uma-soORFvg8drV8Rgh0lax-poFVhoEH7RhKPIzYpSco9
+jnpURzi_epTjAhjjup-erTv2GAIllKsSEHZLbfsFWlNUZTOx58PSB0jBN5m_8HxTyNm0zsm0Cb7U
+KsjPduQ5ZblsfRIJwqpOBXoof7WerKReMZSOdgjZUNueiuEImVH9_SYOdKZhkluSi4yfEtme7CCP
+kZ2JhdiT5km3SeonalhU2MUsx60krxyQ1mnjI4jS9QagUME4mujdvM_L7mtjcPZVSfXUn49whakE
+J-NQV6q2iZgN2IxsT_uCnlZYwnE5i-IbQkQAEu13m6ETsMmf0cwPnKaSwRhb8G48EkJhTL-GP9Z0
+-EsIKT7lQt7kfX-mmNoEirTg9gQAaN3uxLmdHvXpeJdlETnnaLYYJJ3h-SL0e_5Yz2SpdsEwZ3Bk
+PtR-QvlYKDhG1nhPOna65ctCzn81PZOUP3lsO6MSTOK6D6Taxfh1TYEBAvzCP0BfFBodw4lSglFP
+I5IfdiJmomTGARa36nC_O5YzH_jBWLQrgd2gxI5H5bB-5zqzu79SGX9o2_LRVY_LVV0BmI3xSYOI
+vziYYC1XyTY6blfdiOM5a5KjraErxSTEFZVFrsx4OQ_dLA0woVtixawrIy1rgfQr49U1oIRe8BgN
+j3eis_UQAbPbmdbEe1qtXnvi6T7trHskzt6K-vTgo5ITJkr-F2Sds_QgNdaFBGuES6X5RwRGlbHT
+Tl_M8Ja_1K-RMNKJRssoRTKstpwnrhk9IcoSwYcLykbDLgeC0mhSMHOOuWv1RGRaZdzObc5YA1eB
+idQmzy5xAHzNxPHHrB-fpjFJRYv_QZY9qZcGvP58d6bHO0upxbj-BBt9zfc7Qt0JLU6EAdYbW5TI
+2v4JImikrx6KvtoK8vcjJMTDAanTVB31J65tat0rq9wYKxUdjBJLzkT3psYs_DRtYQc0i02YTD7t
+dWya0-3p1Yrt0em3XGb8JAh2PA3BsQKmvKAOc054wf_B8n8saxSFw1WQL30vU5c4-Z_p53HfaUYd
+Qg7DZskzgwBRy48sLJNCrn81RtxXfQP1XtPEZs-AAlTUslHoUdoQ1cwrYEgkNT1cjk6sLI_oKSK-
+dDICBnlYLrZRBS3sH8K38WaIh1WRY6vbGVDs1tUectUpng_-Khavd0Crw7D_CE6T7Rnfcn0pnTV-
+HW1PIXejFsONQn-2c3a9HZ-v6Hg4JL6UWm-qgBPC5118ymO0LfmrviAFAC6Wt3WFiNzrvx9Jggus
+lE0qvLVfkQVZXAy-hSPHlYZmtxk5voVsf60qPoDN2-NdpWz62M9PrXd_A03YGxzt0G6J4VXExRES
+xqLeGNGB496AfX_vEub97sR8xcbbUXsyt12uVnygifGyND60coikaKrMktv2OLOLEl8AudLp0ZNA
+oOoYJZqfUnQqaLt0dNmNa5OtzYjf7f6bYX0V8XLTHlFqZ6QzqYGFMPNhDYjqtet6d--Q8t7_5S5C
+RfXP8Wh8CjbEh2_rsr9rvy1nhM_Cptxc0BFXcS5Dt_R4vjd2G4B_LEC4Hy1s_rZThzUVxRCl
\ No newline at end of file
diff --git a/kubernetes/oof/charts/oof-cmso/resources/certs/org.onap.oof.location.props b/kubernetes/oof/charts/oof-cmso/resources/certs/org.onap.oof.location.props
new file mode 100644 (file)
index 0000000..7e154c4
--- /dev/null
@@ -0,0 +1,20 @@
+ # -------------------------------------------------------------------------
+ #   Copyright (c) 2019 AT&T Intellectual Property
+ #
+ #   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.
+ #
+ # -------------------------------------------------------------------------
+ #
+
+cadi_latitude=0.00
+cadi_longitude=0.00
diff --git a/kubernetes/oof/charts/oof-cmso/resources/certs/org.onap.oof.props b/kubernetes/oof/charts/oof-cmso/resources/certs/org.onap.oof.props
new file mode 100644 (file)
index 0000000..c96e7f7
--- /dev/null
@@ -0,0 +1,26 @@
+ # -------------------------------------------------------------------------
+ #   Copyright (c) 2019 AT&T Intellectual Property
+ #
+ #   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.
+ #
+ # -------------------------------------------------------------------------
+ #
+
+aaf_id=oof@oof.onap.org
+aaf_locate_url=https://aaf-locate:8095
+aaf_url=https://AAF_LOCATE_URL/AAF_NS.service:2.1
+cadi_etc_dir=/share/etc/certs/
+cadi_latitude=0.00
+cadi_longitude=0.00
+cadi_prop_files=/share/etc/certs/org.onap.oof.location.props:/share/etc/certs/org.onap.oof.cred.props
+cm_url=https://AAF_LOCATE_URL/AAF_NS.cm:2.1
diff --git a/kubernetes/oof/charts/oof-cmso/resources/certs/truststoreONAPall.jks b/kubernetes/oof/charts/oof-cmso/resources/certs/truststoreONAPall.jks
new file mode 100644 (file)
index 0000000..ff844b1
Binary files /dev/null and b/kubernetes/oof/charts/oof-cmso/resources/certs/truststoreONAPall.jks differ
diff --git a/kubernetes/oof/charts/oof-cmso/resources/log/filebeat/filebeat.yml b/kubernetes/oof/charts/oof-cmso/resources/log/filebeat/filebeat.yml
new file mode 100644 (file)
index 0000000..5058678
--- /dev/null
@@ -0,0 +1,55 @@
+# Copyright © 2018 Amdocs, Bell Canada, 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.
+
+filebeat.prospectors:
+#it is mandatory, in our case it's log
+- 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
+  #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
+  clean_inactive: 96h
+
+
+# Name of the registry file. If a relative path is used, it is considered relative to the
+# data path. Else full qualified file name.
+#filebeat.registry_file: ${path.data}/registry
+
+
+output.logstash:
+  #List of logstash server ip addresses with port number.
+  #But, in our case, this will be the loadbalancer IP address.
+  #For the below property to work the loadbalancer or logstash should expose 5044 port to listen the filebeat events or port in the property should be changed appropriately.
+  hosts: ["{{.Values.config.log.logstashServiceName}}.{{.Release.Namespace}}:{{.Values.config.log.logstashPort}}"]
+  #If enable will do load balancing among availabe Logstash, automatically.
+  loadbalance: true
+
+  #The list of root certificates for server verifications.
+  #If certificate_authorities is empty or not set, the trusted
+  #certificate authorities of the host system are used.
+  #ssl.certificate_authorities: $ssl.certificate_authorities
+
+  #The path to the certificate for SSL client authentication. If the certificate is not specified,
+  #client authentication is not available.
+  #ssl.certificate: $ssl.certificate
+
+  #The client certificate key used for client authentication.
+  #ssl.key: $ssl.key
+
+  #The passphrase used to decrypt an encrypted key stored in the configured key file
+  #ssl.key_passphrase: $ssl.key_passphrase
diff --git a/kubernetes/oof/charts/oof-cmso/templates/configmap.yaml b/kubernetes/oof/charts/oof-cmso/templates/configmap.yaml
new file mode 100644 (file)
index 0000000..f906fac
--- /dev/null
@@ -0,0 +1,27 @@
+# Copyright © 2017 Amdocs, Bell Canada
+# Modifications Copyright © 2018 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.
+
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ .Release.Name }}-cmso-filebeat-configmap
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+data:
+{{ tpl (.Files.Glob "resources/log/filebeat/*").AsConfig . | indent 2 }}
diff --git a/kubernetes/oof/charts/oof-cmso/templates/secret.yaml b/kubernetes/oof/charts/oof-cmso/templates/secret.yaml
new file mode 100644 (file)
index 0000000..a742914
--- /dev/null
@@ -0,0 +1,27 @@
+# Copyright © 2018 Amdocs, Bell Canada, 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.
+
+apiVersion: v1
+kind: Secret
+metadata:
+  name: {{ include "common.fullname" . }}-certs
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+type: Opaque
+data:
+{{ tpl (.Files.Glob "resources/certs/*").AsSecrets . | indent 2 }}
index 3c5edb3..c4985df 100644 (file)
@@ -32,4 +32,19 @@ mariadb-galera:
     mysqlDatabase: cmso
   externalConfig: |
     [mysqld]
-    lower_case_table_names = 1
\ No newline at end of file
+    lower_case_table_names = 1
+
+global:
+  commonConfigPrefix: "oof-cmso"
+  truststoreFile: "truststoreONAPall.jks"
+  keystoreFile: "org.onap.oof.jks"
+  loggingRepository: docker.elastic.co
+  loggingImage: beats/filebeat:5.5.0
+  keystorePassword: N{$tSp*U)RQzjqE;)%4z;Pv[
+  truststorePassword:
+  authentication: aaf-auth 
+  
+config:
+  log:
+    logstashServiceName: log-ls
+    logstashPort: 5044
\ No newline at end of file
index b765db2..6ea4930 100644 (file)
@@ -115,10 +115,10 @@ GLOBAL_OOF_HOMING_SERVER_PORT = "8091"
 # oof-sniro info - everything is from the private oam network (also called onap private network)
 GLOBAL_OOF_SNIRO_SERVER_PORT = "8698"
 # oof cmso global info - everything is from the private oam network (also called onap private network)
-GLOBAL_OOF_CMSO_PROTOCOL = "http"
+GLOBAL_OOF_CMSO_PROTOCOL = "https"
 GLOBAL_OOF_CMSO_SERVER_PORT = "8080"
-GLOBAL_OOF_CMSO_USERNAME = "none"
-GLOBAL_OOF_CMSO_PASSWORD = "none"
+GLOBAL_OOF_CMSO_USERNAME = "{{ .Values.oofCmsoUsername }}"
+GLOBAL_OOF_CMSO_PASSWORD = "{{ .Values.oofCmsoPassword }}"
 # openstack info - info to select right info in environment
 # packet generate vnf info - everything is from the private oam network (also called onap private network)
 GLOBAL_PACKET_GENERATOR_PORT = "8183"
index 14f6064..b09a64a 100755 (executable)
@@ -118,6 +118,9 @@ dcaePassword: "ZjJkYjllMjljMTI2M2Iz"
 # DROOLS
 droolsUsername: "demo@people.osaaf.org"
 droolsPassword: "demo123456!"
+# OOF
+oofCmsoUsername: "oof@oof.onap.org"
+oofCmsoPassword: "demo123456!"
 # POLICY
 policyAuth: "dGVzdHBkcDphbHBoYTEyMw=="
 policyClientAuth: "cHl0aG9uOnRlc3Q="