diff options
176 files changed, 3645 insertions, 1685 deletions
diff --git a/docs/oom_cloud_setup_guide.rst b/docs/oom_cloud_setup_guide.rst index 3de125b965..f967931234 100644 --- a/docs/oom_cloud_setup_guide.rst +++ b/docs/oom_cloud_setup_guide.rst @@ -47,7 +47,7 @@ The versions of Kubernetes that are supported by OOM are as follows: Release Kubernetes Helm kubectl Docker ============== ========== ===== ======= ======== amsterdam 1.7.x 2.3.x 1.7.x 1.12.x - beijing/master 1.8.5 2.7.x 1.8.5 1.12.x + beijing/master 1.8.10 2.7.x 1.8.10 17.03.x ============== ========== ===== ======= ======== Minimum Hardware Configuration diff --git a/kubernetes/Makefile b/kubernetes/Makefile index 4962c825d8..7b19e6e773 100644 --- a/kubernetes/Makefile +++ b/kubernetes/Makefile @@ -51,7 +51,7 @@ package-%: lint-% clean: @rm -f */requirements.lock - @rm -f *tgz */charts/*tgz + @find . -type f -name '*.tgz' -delete @rm -rf $(PACKAGE_DIR)/* # start up a local helm repo to serve up helm chart packages diff --git a/kubernetes/aaf/charts/sms/Chart.yaml b/kubernetes/aaf/charts/aaf-sms/Chart.yaml index 962ef38650..71418759fb 100644 --- a/kubernetes/aaf/charts/sms/Chart.yaml +++ b/kubernetes/aaf/charts/aaf-sms/Chart.yaml @@ -14,5 +14,5 @@ apiVersion: v1 description: ONAP Secret Management Service -name: sms +name: aaf-sms version: 2.0.0 diff --git a/kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-quorumclient/Chart.yaml b/kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-quorumclient/Chart.yaml new file mode 100644 index 0000000000..4e279e7ced --- /dev/null +++ b/kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-quorumclient/Chart.yaml @@ -0,0 +1,18 @@ +# Copyright 2018 Intel Corporation, Inc +# +# 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 Secret Management Service Quorum Client +name: aaf-sms-quorumclient +version: 2.0.0 diff --git a/kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-quorumclient/templates/configmap.yaml b/kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-quorumclient/templates/configmap.yaml new file mode 100644 index 0000000000..cacc368df1 --- /dev/null +++ b/kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-quorumclient/templates/configmap.yaml @@ -0,0 +1,27 @@ +# Copyright 2018 Intel Corporation, Inc +# +# 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" . }} + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +data: + config.json: | + {{ .Values.config | toJson }} diff --git a/kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-quorumclient/templates/pv.yaml b/kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-quorumclient/templates/pv.yaml new file mode 100644 index 0000000000..da0949816e --- /dev/null +++ b/kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-quorumclient/templates/pv.yaml @@ -0,0 +1,37 @@ +{{/* +# Copyright 2018 Intel Corporation, Inc +# +# 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. +*/}} + +{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}} +kind: PersistentVolume +apiVersion: v1 +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 }}" + name: {{ include "common.fullname" . }} +spec: + capacity: + storage: {{ .Values.persistence.size}} + accessModes: + - {{ .Values.persistence.accessMode }} + persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }} + hostPath: + path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }} +{{- end -}} diff --git a/kubernetes/aaf/charts/sms/charts/vault/templates/pvc.yaml b/kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-quorumclient/templates/pvc.yaml index e6aacd1b96..e6aacd1b96 100644 --- a/kubernetes/aaf/charts/sms/charts/vault/templates/pvc.yaml +++ b/kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-quorumclient/templates/pvc.yaml diff --git a/kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-quorumclient/templates/statefulset.yaml b/kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-quorumclient/templates/statefulset.yaml new file mode 100644 index 0000000000..483d6c5f17 --- /dev/null +++ b/kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-quorumclient/templates/statefulset.yaml @@ -0,0 +1,70 @@ +# Copyright 2018 Intel Corporation, Inc +# +# 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: apps/v1beta1 +kind: StatefulSet +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 }} + serviceName: + template: + metadata: + labels: + app: {{ include "common.name" . }} + release: {{ .Release.Name }} + spec: + containers: + - image: "{{ include "common.repository" . }}/{{ .Values.image }}" + name: {{ include "common.name" . }} + imagePullPolicy: {{ .Values.pullPolicy }} + command: ["/quorumclient/bin/quorumclient"] + workingDir: /quorumclient/ + volumeMounts: + - mountPath: /etc/localtime + name: localtime + readOnly: true + - mountPath: /quorumclient/config.json + name: {{ include "common.name" .}} + subPath: config.json + - mountPath: /quorumclient/auth + name: {{ include "common.fullname" . }}-auth + 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 : {{ include "common.name" . }} + configMap: + name: {{ include "common.fullname" . }} + - name: {{ include "common.fullname" . }}-auth + persistentVolumeClaim: + claimName: {{ include "common.fullname" . }} + imagePullSecrets: + - name: "{{ include "common.namespace" . }}-docker-registry-key" diff --git a/kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-quorumclient/values.yaml b/kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-quorumclient/values.yaml new file mode 100644 index 0000000000..d09d492137 --- /dev/null +++ b/kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-quorumclient/values.yaml @@ -0,0 +1,83 @@ +# Copyright 2018 Intel Corporation, Inc +# +# 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 + repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ== + readinessRepository: oomk8s + readinessImage: readiness-check:1.1.1 + loggingRepository: docker.elastic.co + loggingImage: beats/filebeat:5.5.0 + persistence: {} + +################################################################# +# Application configuration defaults. +################################################################# +# application image +repository: nexus3.onap.org:10001 +image: onap/aaf/smsquorumclient +pullPolicy: Always + +# flag to enable debugging - application support required +debugEnabled: false + +# application configuration +# Example: +config: + url: "http://aaf-sms:10443" + cafile: "selfsignedca.pem" + clientcert: "server.cert" + clientkey: "server.key" + timeout: "60s" + disable_tls: true + +# default number of instances +replicaCount: 3 + +nodeSelector: {} + +affinity: {} + +persistence: + enabled: true + volumeReclaimPolicy: Retain + accessMode: ReadWriteOnce + size: 10Mi + mountPath: /dockerdata-nfs + mountSubPath: sms/quorum/data + +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/aaf/charts/sms/charts/vault/Chart.yaml b/kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-vault/Chart.yaml index bf1af999d4..3f0b93ea0e 100644 --- a/kubernetes/aaf/charts/sms/charts/vault/Chart.yaml +++ b/kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-vault/Chart.yaml @@ -14,6 +14,6 @@ apiVersion: v1 description: Chart to launch Vault as SMS backend -name: vault +name: aaf-sms-vault appVersion: 0.9.5 version: 2.0.0 diff --git a/kubernetes/aaf/charts/sms/charts/vault/templates/configmap.yaml b/kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-vault/templates/configmap.yaml index daf8cadc46..daf8cadc46 100644 --- a/kubernetes/aaf/charts/sms/charts/vault/templates/configmap.yaml +++ b/kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-vault/templates/configmap.yaml diff --git a/kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-vault/templates/pv.yaml b/kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-vault/templates/pv.yaml new file mode 100644 index 0000000000..da0949816e --- /dev/null +++ b/kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-vault/templates/pv.yaml @@ -0,0 +1,37 @@ +{{/* +# Copyright 2018 Intel Corporation, Inc +# +# 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. +*/}} + +{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}} +kind: PersistentVolume +apiVersion: v1 +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 }}" + name: {{ include "common.fullname" . }} +spec: + capacity: + storage: {{ .Values.persistence.size}} + accessModes: + - {{ .Values.persistence.accessMode }} + persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }} + hostPath: + path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }} +{{- end -}} diff --git a/kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-vault/templates/pvc.yaml b/kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-vault/templates/pvc.yaml new file mode 100644 index 0000000000..e6aacd1b96 --- /dev/null +++ b/kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-vault/templates/pvc.yaml @@ -0,0 +1,48 @@ +{{/* +# Copyright 2018 Intel Corporation, Inc +# +# 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. +*/}} + +{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}} +kind: PersistentVolumeClaim +apiVersion: v1 +metadata: + name: {{ include "common.fullname" . }} + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" + release: "{{ .Release.Name }}" + heritage: "{{ .Release.Service }}" +{{- if .Values.persistence.annotations }} + annotations: +{{ toYaml .Values.persistence.annotations | indent 4 }} +{{- end }} +spec: + selector: + matchLabels: + name: {{ include "common.fullname" . }} + accessModes: + - {{ .Values.persistence.accessMode }} + resources: + requests: + storage: {{ .Values.persistence.size }} +{{- if .Values.persistence.storageClass }} +{{- if (eq "-" .Values.persistence.storageClass) }} + storageClassName: "" +{{- else }} + storageClassName: "{{ .Values.persistence.storageClass }}" +{{- end }} +{{- end }} +{{- end -}} diff --git a/kubernetes/aaf/charts/sms/templates/service.yaml b/kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-vault/templates/service.yaml index 04e9a5a92f..04e9a5a92f 100644 --- a/kubernetes/aaf/charts/sms/templates/service.yaml +++ b/kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-vault/templates/service.yaml diff --git a/kubernetes/aaf/charts/sms/charts/vault/templates/statefulset.yaml b/kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-vault/templates/statefulset.yaml index 26f03044ac..26f03044ac 100644 --- a/kubernetes/aaf/charts/sms/charts/vault/templates/statefulset.yaml +++ b/kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-vault/templates/statefulset.yaml diff --git a/kubernetes/aaf/charts/sms/charts/vault/values.yaml b/kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-vault/values.yaml index 2bce18106f..07b8c33226 100644 --- a/kubernetes/aaf/charts/sms/charts/vault/values.yaml +++ b/kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-vault/values.yaml @@ -24,7 +24,7 @@ global: repository: docker.io image: consul: consul:1.0.6 - vault: vault:0.9.6 + vault: vault:0.10.0 pullPolicy: Always # flag to enable debugging - application support required @@ -75,10 +75,8 @@ readiness: persistence: enabled: true - volumeReclaimPolicy: Retain - - accessMode: ReadWriteMany + accessMode: ReadWriteOnce size: 2Gi mountPath: /dockerdata-nfs mountSubPath: sms/consul/data diff --git a/kubernetes/aaf/charts/sms/templates/configmap.yaml b/kubernetes/aaf/charts/aaf-sms/templates/configmap.yaml index 72ce6fbadb..72ce6fbadb 100644 --- a/kubernetes/aaf/charts/sms/templates/configmap.yaml +++ b/kubernetes/aaf/charts/aaf-sms/templates/configmap.yaml diff --git a/kubernetes/aaf/charts/sms/templates/deployment.yaml b/kubernetes/aaf/charts/aaf-sms/templates/deployment.yaml index e5381a0f0c..4235ad01af 100644 --- a/kubernetes/aaf/charts/sms/templates/deployment.yaml +++ b/kubernetes/aaf/charts/aaf-sms/templates/deployment.yaml @@ -31,7 +31,7 @@ spec: release: {{ .Release.Name }} spec: containers: - - image: "{{ .Values.repository }}/{{ .Values.image }}" + - image: "{{ include "common.repository" . }}/{{ .Values.image }}" name: {{ include "common.name" . }} imagePullPolicy: {{ .Values.pullPolicy }} command: ["/sms/bin/sms"] @@ -57,6 +57,8 @@ spec: - mountPath: /sms/smsconfig.json name: {{ include "common.name" .}} subPath: smsconfig.json + - mountPath: /sms/auth + name: {{ include "common.fullname" . }}-auth resources: {{ toYaml .Values.resources | indent 12 }} {{- if .Values.nodeSelector }} @@ -74,5 +76,8 @@ spec: - name : {{ include "common.name" . }} configMap: name: {{ include "common.fullname" . }} + - name: {{ include "common.fullname" . }}-auth + persistentVolumeClaim: + claimName: {{ include "common.fullname" . }} imagePullSecrets: - name: "{{ include "common.namespace" . }}-docker-registry-key" diff --git a/kubernetes/aaf/charts/sms/charts/vault/templates/pv.yaml b/kubernetes/aaf/charts/aaf-sms/templates/pv.yaml index 37ed28ee9d..37ed28ee9d 100644 --- a/kubernetes/aaf/charts/sms/charts/vault/templates/pv.yaml +++ b/kubernetes/aaf/charts/aaf-sms/templates/pv.yaml diff --git a/kubernetes/aaf/charts/aaf-sms/templates/pvc.yaml b/kubernetes/aaf/charts/aaf-sms/templates/pvc.yaml new file mode 100644 index 0000000000..e6aacd1b96 --- /dev/null +++ b/kubernetes/aaf/charts/aaf-sms/templates/pvc.yaml @@ -0,0 +1,48 @@ +{{/* +# Copyright 2018 Intel Corporation, Inc +# +# 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. +*/}} + +{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}} +kind: PersistentVolumeClaim +apiVersion: v1 +metadata: + name: {{ include "common.fullname" . }} + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" + release: "{{ .Release.Name }}" + heritage: "{{ .Release.Service }}" +{{- if .Values.persistence.annotations }} + annotations: +{{ toYaml .Values.persistence.annotations | indent 4 }} +{{- end }} +spec: + selector: + matchLabels: + name: {{ include "common.fullname" . }} + accessModes: + - {{ .Values.persistence.accessMode }} + resources: + requests: + storage: {{ .Values.persistence.size }} +{{- if .Values.persistence.storageClass }} +{{- if (eq "-" .Values.persistence.storageClass) }} + storageClassName: "" +{{- else }} + storageClassName: "{{ .Values.persistence.storageClass }}" +{{- end }} +{{- end }} +{{- end -}} diff --git a/kubernetes/aaf/charts/sms/charts/vault/templates/service.yaml b/kubernetes/aaf/charts/aaf-sms/templates/service.yaml index 18334a301c..18334a301c 100644 --- a/kubernetes/aaf/charts/sms/charts/vault/templates/service.yaml +++ b/kubernetes/aaf/charts/aaf-sms/templates/service.yaml diff --git a/kubernetes/aaf/charts/sms/values.yaml b/kubernetes/aaf/charts/aaf-sms/values.yaml index 05d4e79e6b..cd3253941d 100644 --- a/kubernetes/aaf/charts/sms/values.yaml +++ b/kubernetes/aaf/charts/aaf-sms/values.yaml @@ -22,6 +22,7 @@ global: readinessImage: readiness-check:2.0.0 loggingRepository: docker.elastic.co loggingImage: beats/filebeat:5.5.0 + persistence: {} ################################################################# # Application configuration defaults. @@ -73,6 +74,14 @@ service: internalPort: 10443 nodePort: 43 +persistence: + enabled: true + volumeReclaimPolicy: Retain + accessMode: ReadWriteOnce + size: 1Gi + mountPath: /dockerdata-nfs + mountSubPath: sms/auth + ingress: enabled: false diff --git a/kubernetes/aai/charts/aai-babel/resources/config/auth/auth_policy.json b/kubernetes/aai/charts/aai-babel/resources/config/auth/auth_policy.json index 5340a6ac75..e7c6459f65 100644 --- a/kubernetes/aai/charts/aai-babel/resources/config/auth/auth_policy.json +++ b/kubernetes/aai/charts/aai-babel/resources/config/auth/auth_policy.json @@ -8,7 +8,7 @@ } ], "users": [ - {"username": "CN=someone.onap.org, OU=someone, O=\"ONAP ORG\", L=NA, ST=NA, C=NA"} + {"username": "CN=ONAP, OU=ONAP, O=ONAP, L=Ottawa, ST=Ontario, C=CA"} ] }, { @@ -18,7 +18,7 @@ "methods": [{"name": "POST"}] }], "users": [ - {"username": "CN=someone.onap.org, OU=someone, O=\"ONAP ORG\", L=NA, ST=NA, C=NA"} + {"username": "CN=ONAP, OU=ONAP, O=ONAP, L=Ottawa, ST=Ontario, C=CA"} ] }, { @@ -30,7 +30,7 @@ } ], "users": [ - {"username": "CN=someone.onap.org, OU=someone, O=\"ONAP ORG\", L=NA, ST=NA, C=NA"} + {"username": "CN=ONAP, OU=ONAP, O=ONAP, L=Ottawa, ST=Ontario, C=CA"} ] }, { diff --git a/kubernetes/aai/charts/aai-babel/resources/config/auth/tomcat_keystore b/kubernetes/aai/charts/aai-babel/resources/config/auth/tomcat_keystore Binary files differindex cbec390428..9eec841aa2 100644 --- a/kubernetes/aai/charts/aai-babel/resources/config/auth/tomcat_keystore +++ b/kubernetes/aai/charts/aai-babel/resources/config/auth/tomcat_keystore diff --git a/kubernetes/aai/charts/aai-babel/resources/config/babel-auth.properties b/kubernetes/aai/charts/aai-babel/resources/config/babel-auth.properties index 8bf21b0b95..e7dfda081f 100644 --- a/kubernetes/aai/charts/aai-babel/resources/config/babel-auth.properties +++ b/kubernetes/aai/charts/aai-babel/resources/config/babel-auth.properties @@ -1,2 +1,2 @@ auth.policy.file=/auth/auth_policy.json -auth.authentication.disable=false +auth.authentication.disable=true diff --git a/kubernetes/aai/charts/aai-babel/resources/config/logback.xml b/kubernetes/aai/charts/aai-babel/resources/config/logback.xml new file mode 100644 index 0000000000..63b8faf09a --- /dev/null +++ b/kubernetes/aai/charts/aai-babel/resources/config/logback.xml @@ -0,0 +1,179 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE xml> +<configuration scan="true" scanPeriod="30 seconds" debug="true"> + <include resource="org/springframework/boot/logging/logback/base.xml" /> + + <property name="componentName" value="AAI-BAS" /> + <property name="logDirectory" value="${APP_HOME}/logs/${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|%mdc{ServiceName}|%mdc{PartnerName}|%mdc{TargetEntity}|%mdc{TargetServiceName}|%.-5level|%logger|%mdc{ClassName}|%msg%n" /> + + <property name="auditLogPattern" + value="%d{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%mdc{BeginTimestamp}|%mdc{EndTimestamp}|%mdc{RequestId}|%mdc{ServiceInstanceId}|%thread|%mdc{ServerFQDN}|%mdc{ServiceName}|%mdc{PartnerName}|%mdc{StatusCode}|%mdc{ResponseCode}|%mdc{ResponseDescription}|%logger|%.-5level|||%mdc{ElapsedTime}|%mdc{RemoteHost}|%mdc{ClientAddress}|%mdc{ClassName}|||%msg%n" /> + + <property name="metricsLogPattern" + value="%d{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%mdc{BeginTimestamp}|%mdc{EndTimestamp}|%mdc{RequestId}|%mdc{ServiceInstanceId}|%thread|%mdc{ServerFQDN}|%mdc{ServiceName}|%mdc{PartnerName}|%mdc{TargetEntity}|%mdc{TargetServiceName}|%mdc{StatusCode}|%mdc{ResponseCode}|%mdc{ResponseDescription}|%logger|%.-5level|||%mdc{ElapsedTime}|%mdc{RemoteHost}|%mdc{ClientAddress}|%mdc{ClassName}|||%msg%n" /> + + <!-- ============================================================================ --> + <!-- 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> + + <!-- 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>${auditLogPattern}</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>${metricsLogPattern}</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"> + <!-- allow only events with a level below INFO, that is TRACE and DEBUG --> + <filter class="ch.qos.logback.core.filter.EvaluatorFilter"> + <evaluator class="ch.qos.logback.classic.boolex.GEventEvaluator"> + <expression> + e.level.toInt() < INFO.toInt() + </expression> + </evaluator> + <OnMismatch>DENY</OnMismatch> + <OnMatch>NEUTRAL</OnMatch> + </filter> + <queueSize>256</queueSize> + <appender-ref ref="EELFDebug" /> + <includeCallerData>false</includeCallerData> + </appender> + + <!-- ============================================================================ --> + <!-- Default / root appenders --> + <!-- This determines the logging level for 3rd party code --> + <!-- ============================================================================ --> + + <root level="INFO"> + <appender-ref ref="asyncEELF" /> + <appender-ref ref="asyncEELFDebug" /> +</root> + + <!-- ============================================================================ --> + <!-- EELF loggers --> + <!-- ============================================================================ --> + + <logger name="com.att.eelf" level="INFO" additivity="false"> + <appender-ref ref="asyncEELF" /> +</logger> + + <!-- The level of this logger determines the contents of the debug log --> + <logger name="com.att.eelf.debug" level="INFO" additivity="false"> + <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> + + <!-- ============================================================================ --> + <!-- Non-EELF loggers --> + <!-- ============================================================================ --> + + <!-- ATT packages including DMAAP message routing --> + <logger name="com.att" level="INFO" /> + + <!-- Spring related loggers --> + <logger name="org.springframework" level="WARN" /> + <logger name="org.springframework.beans" level="WARN" /> + <logger name="org.springframework.web" level="WARN" /> + + <!-- Other Loggers that may help troubleshoot --> + <logger name="org.apache" level="WARN" /> + <logger name="org.apache.commons" 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" /> + +</configuration> diff --git a/kubernetes/aai/charts/aai-babel/templates/deployment.yaml b/kubernetes/aai/charts/aai-babel/templates/deployment.yaml index 6b1312bbdc..15cd163edb 100644 --- a/kubernetes/aai/charts/aai-babel/templates/deployment.yaml +++ b/kubernetes/aai/charts/aai-babel/templates/deployment.yaml @@ -77,6 +77,9 @@ spec: name: {{ include "common.fullname" . }}-secrets - mountPath: /logs name: {{ include "common.fullname" . }}-logs + - mountPath: /opt/app/babel/config/logback.xml + name: {{ include "common.fullname" . }}-config + subPath: logback.xml resources: {{ toYaml .Values.resources | indent 12 }} {{- if .Values.nodeSelector }} @@ -99,6 +102,8 @@ spec: path: artifact-generator.properties - key: babel-auth.properties path: babel-auth.properties + - key: logback.xml + path: logback.xml - name: {{ include "common.fullname" . }}-secrets secret: secretName: {{ include "common.fullname" . }}-babel-secrets diff --git a/kubernetes/aai/charts/aai-babel/values.yaml b/kubernetes/aai/charts/aai-babel/values.yaml index 43f895267a..ef872a04a2 100644 --- a/kubernetes/aai/charts/aai-babel/values.yaml +++ b/kubernetes/aai/charts/aai-babel/values.yaml @@ -28,8 +28,8 @@ image: onap/babel:1.2-STAGING-latest # application configuration config: - keyStorePassword: OBF:1i9a1u2a1unz1lr61wn51wn11lss1unz1u301i6o - keyManagerPassword: OBF:1i9a1u2a1unz1lr61wn51wn11lss1unz1u301i6o + keyStorePassword: OBF:1y0q1uvc1uum1uvg1pil1pjl1uuq1uvk1uuu1y10 + keyManagerPassword: OBF:1y0q1uvc1uum1uvg1pil1pjl1uuq1uvk1uuu1y10 # default number of instances replicaCount: 1 diff --git a/kubernetes/aai/charts/aai-cassandra/templates/statefulset.yaml b/kubernetes/aai/charts/aai-cassandra/templates/statefulset.yaml index aa3482d293..92f05dda7e 100644 --- a/kubernetes/aai/charts/aai-cassandra/templates/statefulset.yaml +++ b/kubernetes/aai/charts/aai-cassandra/templates/statefulset.yaml @@ -77,7 +77,7 @@ spec: fieldPath: status.podIP volumeMounts: - name: cassandra-data - mountPath: /var/lib/cassandra/data + mountPath: /var/lib/cassandra resources: {{ toYaml .Values.resources | indent 10 }} {{- if .Values.nodeSelector }} diff --git a/kubernetes/aai/charts/aai-cassandra/values.yaml b/kubernetes/aai/charts/aai-cassandra/values.yaml index 884bc396a8..baa87c2a72 100644 --- a/kubernetes/aai/charts/aai-cassandra/values.yaml +++ b/kubernetes/aai/charts/aai-cassandra/values.yaml @@ -62,7 +62,7 @@ ingress: enabled: false persistence: - enabled: false + enabled: true ## A manually managed Persistent Volume and Claim ## Requires persistence.enabled: true diff --git a/kubernetes/aai/charts/aai-modelloader/resources/config/log/logback.xml b/kubernetes/aai/charts/aai-modelloader/resources/config/log/logback.xml index d512d3b91c..fcfac840b1 100644 --- a/kubernetes/aai/charts/aai-modelloader/resources/config/log/logback.xml +++ b/kubernetes/aai/charts/aai-modelloader/resources/config/log/logback.xml @@ -1,161 +1,152 @@ -<configuration debug="false" scan="true" scanPeriod="3 seconds"> - <!--<jmxConfigurator /> --> - <!-- directory path for all other type logs --> - <property name="logDir" value="/var/log/onap" /> - <property name="componentName" value="aai"></property> - <property name="subComponentName" value="aai-ml"></property> - <property name="logDirectory" value="${logDir}/${componentName}/${subComponentName}" /> - <!-- 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="queueSize" value="256" /> - <property name="maxFileSize" value="50MB" /> - <property name="maxHistory" value="30" /> - <property name="totalSizeCap" value="10GB" /> - <property name="pattern" value="%d{"yyyy-MM-dd'T'HH:mm:ss.SSSXXX", UTC}\t[%thread]\t%-5level\t%logger\t%replace(%replace(%replace(%mdc){'\t','\\\\t'}){', ','\t'}){'\n', '\\\\n'}\t%replace(%replace(%msg){'\n', '\\\\n'}){'\t','\\\\t'}%n" /> - <!-- Example evaluator filter applied against console appender --> - <appender class="ch.qos.logback.core.ConsoleAppender" name="STDOUT"> - <encoder> - <pattern>${pattern}</pattern> - </encoder> - </appender> - <!-- ============================================================================ --> - <!-- EELF Appenders --> - <!-- ============================================================================ --> - <!-- The EELFAppender is used to record events to the general application - log --> - <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="EELF"> - <file>${logDirectory}/${generalLogName}.log</file> - <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> - <fileNamePattern>${logDirectory}/${generalLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern> - <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> - <maxFileSize>${maxFileSize}</maxFileSize> - </timeBasedFileNamingAndTriggeringPolicy> - <maxHistory>${maxHistory}</maxHistory> - <totalSizeCap>${totalSizeCap}</totalSizeCap> - </rollingPolicy> - <encoder> - <pattern>${pattern}</pattern> - </encoder> - </appender> - <appender class="ch.qos.logback.classic.AsyncAppender" name="asyncEELF"> - <!-- 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>${queueSize}</queueSize> - <appender-ref ref="EELF" /> - </appender> - <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="EELFAudit"> - <file>${logDirectory}/${auditLogName}.log</file> - <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> - <fileNamePattern>${logDirectory}/${auditLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern> - <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> - <maxFileSize>${maxFileSize}</maxFileSize> - </timeBasedFileNamingAndTriggeringPolicy> - <maxHistory>${maxHistory}</maxHistory> - <totalSizeCap>${totalSizeCap}</totalSizeCap> - </rollingPolicy> - <encoder> - <pattern>${pattern}</pattern> - </encoder> - </appender> - <appender class="ch.qos.logback.classic.AsyncAppender" name="asyncEELFAudit"> - <queueSize>${queueSize}</queueSize> - <appender-ref ref="EELFAudit" /> - </appender> - <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="EELFMetrics"> - <file>${logDirectory}/${metricsLogName}.log</file> - <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> - <fileNamePattern>${logDirectory}/${metricsLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern> - <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> - <maxFileSize>${maxFileSize}</maxFileSize> - </timeBasedFileNamingAndTriggeringPolicy> - <maxHistory>${maxHistory}</maxHistory> - <totalSizeCap>${totalSizeCap}</totalSizeCap> - </rollingPolicy> - <encoder> - <pattern>${pattern}</pattern> - </encoder> - </appender> - <appender class="ch.qos.logback.classic.AsyncAppender" name="asyncEELFMetrics"> - <queueSize>${queueSize}</queueSize> - <appender-ref ref="EELFMetrics" /> - </appender> - <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="EELFDebug"> - <file>${logDirectory}/${debugLogName}.log</file> - <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> - <fileNamePattern>${logDirectory}/${debugLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern> - <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> - <maxFileSize>${maxFileSize}</maxFileSize> - </timeBasedFileNamingAndTriggeringPolicy> - <maxHistory>${maxHistory}</maxHistory> - <totalSizeCap>${totalSizeCap}</totalSizeCap> - </rollingPolicy> - <encoder> - <pattern>${pattern}</pattern> - </encoder> - </appender> - <appender class="ch.qos.logback.classic.AsyncAppender" name="asyncEELFDebug"> - <queueSize>${queueSize}</queueSize> - <appender-ref ref="EELFDebug" /> - <includeCallerData>true</includeCallerData> - </appender> - <!-- ============================================================================ --> - <!-- EELF loggers --> - <!-- ============================================================================ --> - <logger additivity="false" level="info" name="com.att.eelf"> - <appender-ref ref="asyncEELF" /> - <appender-ref ref="asyncEELFDebug" /> - </logger> - <logger additivity="false" level="info" name="com.att.eelf.security"> - <appender-ref ref="asyncEELFSecurity" /> - </logger> - <logger additivity="false" level="info" name="com.att.eelf.perf"> - <appender-ref ref="asyncEELFPerformance" /> - </logger> - <logger additivity="false" level="info" name="com.att.eelf.server"> - <appender-ref ref="asyncEELFServer" /> - </logger> - <logger additivity="false" level="info" name="com.att.eelf.policy"> - <appender-ref ref="asyncEELFPolicy" /> - </logger> - <logger additivity="false" level="info" name="com.att.eelf.audit"> - <appender-ref ref="asyncEELFAudit" /> - </logger> - <logger additivity="false" level="info" name="com.att.eelf.metrics"> - <appender-ref ref="asyncEELFMetrics" /> - </logger> - <!-- Spring related loggers --> - <logger level="WARN" name="org.springframework" /> - <logger level="WARN" name="org.springframework.beans" /> - <logger level="WARN" name="org.springframework.web" /> - <logger level="WARN" name="com.blog.spring.jms" /> - <logger level="INFO" name="com.att" /> - <!-- Model Loader loggers --> - <logger level="INFO" name="org.openecomp.modelloader" /> - <!-- Other Loggers that may help troubleshoot --> - <logger level="WARN" name="net.sf" /> - <logger level="WARN" name="org.apache.commons.httpclient" /> - <logger level="WARN" name="org.apache.commons" /> - <logger level="WARN" name="org.apache.coyote" /> - <logger level="WARN" name="org.apache.jasper" /> - <!-- Camel Related Loggers (including restlet/servlet/jaxrs/cxf logging. - May aid in troubleshooting) --> - <logger level="WARN" name="org.apache.camel" /> - <logger level="WARN" name="org.apache.cxf" /> - <logger level="WARN" name="org.apache.camel.processor.interceptor" /> - <logger level="WARN" name="org.apache.cxf.jaxrs.interceptor" /> - <logger level="WARN" name="org.apache.cxf.service" /> - <logger level="WARN" name="org.restlet" /> - <logger level="WARN" name="org.apache.camel.component.restlet" /> - <!-- logback internals logging --> - <logger level="WARN" name="ch.qos.logback.classic" /> - <logger level="WARN" name="ch.qos.logback.core" /> - <root> - <appender-ref ref="asyncEELF" /> - <!-- <appender-ref ref="asyncEELFDebug" /> --> - </root> +<configuration scan="true" scanPeriod="3 seconds" debug="false"> + <include resource="org/springframework/boot/logging/logback/base.xml" /> + <property name="logDir" value="${AJSC_HOME}/logs" /> + <property name="componentName" value="AAI-ML"></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|ModelLoader|%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>${defaultPattern}</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> + + <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>true</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" /> + + <logger name="com.att" level="INFO" /> + + <!-- Model Loader loggers --> + <logger name="org.openecomp.modelloader" 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/aai/charts/aai-modelloader/resources/config/model-loader.properties b/kubernetes/aai/charts/aai-modelloader/resources/config/model-loader.properties index e9b24b667c..38c25480c0 100644 --- a/kubernetes/aai/charts/aai-modelloader/resources/config/model-loader.properties +++ b/kubernetes/aai/charts/aai-modelloader/resources/config/model-loader.properties @@ -24,7 +24,7 @@ ml.aai.AUTH_USER=ModelLoader ml.aai.AUTH_PASSWORD=OBF:1qvu1v2h1sov1sar1wfw1j7j1wg21saj1sov1v1x1qxw # Model Loader Babel REST Client Configuration\r -ml.babel.BASE_URL=https://aai-babel.{{.Release.Namespace}}:9516 +ml.babel.BASE_URL=https://babel.{{.Release.Namespace}}:9516 ml.babel.GENERATE_ARTIFACTS_URL=/services/babel-service/v1/app/generateArtifacts ml.babel.KEYSTORE_FILE=babel-client-cert.p12 ml.babel.KEYSTORE_PASSWORD=OBF:1y0q1uvc1uum1uvg1pil1pjl1uuq1uvk1uuu1y10 diff --git a/kubernetes/aai/charts/aai-modelloader/templates/deployment.yaml b/kubernetes/aai/charts/aai-modelloader/templates/deployment.yaml index 38ebe7689f..4bfa67de41 100644 --- a/kubernetes/aai/charts/aai-modelloader/templates/deployment.yaml +++ b/kubernetes/aai/charts/aai-modelloader/templates/deployment.yaml @@ -50,9 +50,9 @@ spec: name: {{ include "common.fullname" . }}-prop-config - mountPath: /opt/app/model-loader/config/auth/ name: {{ include "common.fullname" . }}-auth-config - - mountPath: /var/log/onap + - mountPath: /logs name: {{ include "common.fullname" . }}-logs - - mountPath: /opt/app/model-loader/bundleconfig/etc/logback.xml + - mountPath: /opt/app/model-loader/logback.xml name: {{ include "common.fullname" . }}-log-conf subPath: logback.xml ports: @@ -67,11 +67,10 @@ spec: - mountPath: /usr/share/filebeat/filebeat.yml subPath: filebeat.yml name: filebeat-conf - - mountPath: /var/log/onap + - mountPath: /logs name: {{ include "common.fullname" . }}-logs - mountPath: /usr/share/filebeat/data name: aai-filebeat - volumes: - name: localtime hostPath: diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/aai.properties b/kubernetes/aai/charts/aai-sparky-be/resources/config/aai.properties deleted file mode 100644 index 813a263d90..0000000000 --- a/kubernetes/aai/charts/aai-sparky-be/resources/config/aai.properties +++ /dev/null @@ -1,87 +0,0 @@ -################################################################################################################ -############################## ActiveInventoryDataCollector TLS/SSL configuration ############################## -################################################################################################################ - -############################## Networking ############################## -# -# The ip address/hostname and port to the desired AAI instance -# -aai.rest.host=aai.{{.Release.Namespace}} -aai.rest.port=8443 - -############################## REST ############################## -# OXM version -aai.rest.resourceBasePath=/aai/v9 -aai.rest.connectTimeoutInMs=30000 -aai.rest.readTimeoutInMs=60000 -aai.rest.numRequestRetries=5 -# HTTP_NOAUTH - straight HTTP no user/pass -# SSL_BASIC - HTTP/S with user/pass -# SSL_CERT - HTTP/S with client cert -aai.rest.authenticationMode=SSL_BASIC - -############################## Cache ############################## -# Experimental caching feature that is NOT production ready. -# Enable at your own risk... it might not work. -aai.rest.cache.enabled=false -aai.rest.cache.numWorkers=10 -aai.rest.cache.cacheFailures=false -aai.rest.cache.useCacheOnly=false -aai.rest.cache.storageFolderOverride= -aai.rest.cache.maxTimeToLiveInMs=-1 - -# The shallowEntity filter will display the entity in a visualization -# but will not collect it's relationships or complex attributes. -aai.rest.shallowEntities=cloud-region,complex,vnf-image,att-aic,image - -############################## Certs, Auth, and SSL Settings ############################## -aai.ssl.keystore.filename=aai-os-cert.p12 -aai.ssl.keystore.pass=OBF:1i9a1u2a1unz1lr61wn51wn11lss1unz1u301i6o -aai.ssl.keystore.type=pkcs12 -# Enable debug on the SSL connections -aai.ssl.enableDebug=false -# Degree of strictness to SSL connection standards -aai.ssl.validateServerHostName=false; -aai.ssl.validateServerCertificateChain=false; -# If basic auth is implemented, username and password as required -aai.ssl.basicAuth.username=AaiUI -aai.ssl.basicAuth.password=OBF:1gfr1p571unz1p4j1gg7 - -############################## Statistics Report Formatting ############################## -# -# During synchronization, a formatted statisitics log is generated -# -# Response size in bytes histogram -aai.taskProcessor.bytesHistogramLabel="[Response Size In Bytes]" -aai.taskProcessor.bytesHistogramMaxYAxis=1000000 -aai.taskProcessor.bytesHistogramNumBins=20 -aai.taskProcessor.bytesHistogramNumDecimalPoints=2 -# "Work on Hand" statisitcs for external resource requests -aai.taskProcessor.queueLengthHistogramLabel="[Queue Item Length]" -aai.taskProcessor.queueLengthHistogramMaxYAxis=20000 -aai.taskProcessor.queueLengthHistogramNumBins=20 -aai.taskProcessor.queueLengthHistogramNumDecimalPoints=2 -# Time on queue (how long does a task stay on the work queue) -aai.taskProcessor.taskAgeHistogramLabel="[Task Age In Ms]" -aai.taskProcessor.taskAgeHistogramMaxYAxis=600000 -aai.taskProcessor.taskAgeHistogramNumBins=20 -aai.taskProcessor.taskAgeHistogramNumDecimalPoints=2 -# Per transaction response time for external resource requests -aai.taskProcessor.responseTimeHistogramLabel="[Response Time In Ms]" -aai.taskProcessor.responseTimeHistogramMaxYAxis=10000 -aai.taskProcessor.responseTimeHistogramNumBins=20 -aai.taskProcessor.responseTimeHistogramNumDecimalPoints=2 -# Transaction throughput velocity -aai.taskProcessor.tpsHistogramLabel="[Transactions Per Second]" -aai.taskProcessor.tpsHistogramMaxYAxis=100 -aai.taskProcessor.tpsHistogramNumBins=20 -aai.taskProcessor.tpsHistogramNumDecimalPoints=2 - -############################## Deprecated, to be removed or updated ############################## -aai.rest.numResolverWorkers=15 -aai.ssl.truststore.filename=asdc-client.jks -aai.ssl.truststore.type=jks -aai.taskProcessor.maxConcurrentWorkers=5 -aai.taskProcessor.transactionRateControllerEnabled=false -aai.taskProcessor.numSamplesPerThreadForRunningAverage=100 -aai.taskProcessor.targetTPS=100 diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/auth/csp-cookie-filter.properties b/kubernetes/aai/charts/aai-sparky-be/resources/config/auth/csp-cookie-filter.properties new file mode 100644 index 0000000000..2315b9f559 --- /dev/null +++ b/kubernetes/aai/charts/aai-sparky-be/resources/config/auth/csp-cookie-filter.properties @@ -0,0 +1,12 @@ +global.login.url=aaiportal.onap.org + +# MOTS ID of the application +application.id=12345 + +# valid domains for open redirect +redirect-domain=domain.com + +# Required by esGateKeeper. Valid values are: +# DEVL - used during development +# PROD - used in production +gatekeeper.environment=TEST
\ No newline at end of file diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/auth/inventory-ui-keystore b/kubernetes/aai/charts/aai-sparky-be/resources/config/auth/inventory-ui-keystore Binary files differdeleted file mode 100644 index efa01f8d79..0000000000 --- a/kubernetes/aai/charts/aai-sparky-be/resources/config/auth/inventory-ui-keystore +++ /dev/null diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/auth/tomcat_keystore b/kubernetes/aai/charts/aai-sparky-be/resources/config/auth/tomcat_keystore Binary files differnew file mode 100644 index 0000000000..9eec841aa2 --- /dev/null +++ b/kubernetes/aai/charts/aai-sparky-be/resources/config/auth/tomcat_keystore diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/camel-rests/sparky-core-filter-aggregation.xml b/kubernetes/aai/charts/aai-sparky-be/resources/config/camel-rests/sparky-core-filter-aggregation.xml new file mode 100644 index 0000000000..e4e02bae94 --- /dev/null +++ b/kubernetes/aai/charts/aai-sparky-be/resources/config/camel-rests/sparky-core-filter-aggregation.xml @@ -0,0 +1,7 @@ +<rests xmlns="http://camel.apache.org/schema/spring"> + <rest> + <post uri="/search/filterAggregation"> + <to uri="bean:aggregateSummaryProcessor?method=getFilteredAggregation"/> + </post> + </rest> +</rests>
\ No newline at end of file diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/camel-rests/sparky-core-prepareSchema.xml b/kubernetes/aai/charts/aai-sparky-be/resources/config/camel-rests/sparky-core-prepareSchema.xml new file mode 100644 index 0000000000..20dba6f13c --- /dev/null +++ b/kubernetes/aai/charts/aai-sparky-be/resources/config/camel-rests/sparky-core-prepareSchema.xml @@ -0,0 +1,11 @@ +<rests xmlns="http://camel.apache.org/schema/spring"> + <rest> + <post uri="/visualization/prepareVisualization"> + <route> + <to uri="bean:schemaVisualizationProcessor?method=processVisualizationRequest" /> + </route> + </post> + </rest> +</rests> + + diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/camel-rests/sparky-core-subscriptionService.xml b/kubernetes/aai/charts/aai-sparky-be/resources/config/camel-rests/sparky-core-subscriptionService.xml new file mode 100644 index 0000000000..f6a2953b3a --- /dev/null +++ b/kubernetes/aai/charts/aai-sparky-be/resources/config/camel-rests/sparky-core-subscriptionService.xml @@ -0,0 +1,7 @@ +<rests xmlns="http://camel.apache.org/schema/spring"> + <rest> + <get uri="/subscription/getsubscription"> + <to uri="bean:subscriptionServiceProcessor?method=getSubscription"/> + </get> + </rest> +</rests>
\ No newline at end of file diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/camel-rests/sparky-core-unified-search.xml b/kubernetes/aai/charts/aai-sparky-be/resources/config/camel-rests/sparky-core-unified-search.xml new file mode 100644 index 0000000000..61fd9ad155 --- /dev/null +++ b/kubernetes/aai/charts/aai-sparky-be/resources/config/camel-rests/sparky-core-unified-search.xml @@ -0,0 +1,7 @@ +<rests xmlns="http://camel.apache.org/schema/spring"> + <rest> + <post uri="/search/querysearch"> + <to uri="bean:unifiedSearchProcessor?method=search"/> + </post> + </rest> +</rests>
\ No newline at end of file diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/camel-rests/sparky-core-unifiedFilterRequest.xml b/kubernetes/aai/charts/aai-sparky-be/resources/config/camel-rests/sparky-core-unifiedFilterRequest.xml new file mode 100644 index 0000000000..1b975e9dd3 --- /dev/null +++ b/kubernetes/aai/charts/aai-sparky-be/resources/config/camel-rests/sparky-core-unifiedFilterRequest.xml @@ -0,0 +1,7 @@ +<rests xmlns="http://camel.apache.org/schema/spring"> + <rest> + <post uri="/search/unifiedFilterRequest"> + <to uri="bean:filterProcessor?method=getFiltersWithValues"/> + </post> + </rest> +</rests>
\ No newline at end of file diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/descriptors/aaiEntityNodeDescriptors.json b/kubernetes/aai/charts/aai-sparky-be/resources/config/descriptors/aaiEntityNodeDescriptors.json new file mode 100644 index 0000000000..e72bab0f28 --- /dev/null +++ b/kubernetes/aai/charts/aai-sparky-be/resources/config/descriptors/aaiEntityNodeDescriptors.json @@ -0,0 +1,218 @@ +{ + "generalNodeClass": { + "class": "aai-entity-node general-node", + "visualElements": [{ + "type": "circle", + "class": "outer", + "svgAttributes": { + "r": "16" + } + }, + { + "type": "circle", + "class": "inner", + "svgAttributes": { + "r": "10" + } + }, + { + "type": "text", + "class": "id-type-label", + "displayKey": "itemType", + "shapeAttributes": { + "offset": { + "x": "0", + "y": "33" + } + } + }, + { + "type": "text", + "class": "id-value-label", + "displayKey": "itemNameValue", + "shapeAttributes": { + "offset": { + "x": "0", + "y": "48" + } + } + }] + }, + "searchedNodeClass": { + "class": "aai-entity-node search-node", + "visualElements": [{ + "type": "circle", + "class": "outer", + "svgAttributes": { + "r": "16" + } + }, + { + "type": "circle", + "class": "inner", + "svgAttributes": { + "r": "10" + } + }, + { + "type": "text", + "class": "id-type-label", + "displayKey": "itemType", + "shapeAttributes": { + "offset": { + "x": "0", + "y": "33" + } + } + }, + { + "type": "text", + "class": "id-value-label", + "displayKey": "itemNameValue", + "shapeAttributes": { + "offset": { + "x": "0", + "y": "48" + } + } + }] + }, + "selectedSearchedNodeClass": { + "class": "aai-entity-node selected-search-node", + "visualElements": [{ + "type": "circle", + "class": "outer", + "svgAttributes": { + "r": "31" + } + }, + { + "type": "circle", + "class": "inner", + "svgAttributes": { + "r": "20" + } + }, + { + "type": "text", + "class": "id-type-label", + "displayKey": "itemType", + "shapeAttributes": { + "offset": { + "x": "0", + "y": "48" + } + } + }, + { + "type": "text", + "class": "id-value-label", + "displayKey": "itemNameValue", + "shapeAttributes": { + "offset": { + "x": "0", + "y": "63" + } + } + }, + { + "type": "button", + "name": "icon_ellipses", + "class": "node-button", + "shapeAttributes": { + "offset": { + "x": "33", + "y": "-35" + } + }, + "svgAttributes": { + "className": "node-button", + "r": "10" + } + }, + { + "type": "button", + "name": "icon_triangle_warning", + "class": "node-button", + "shapeAttributes": { + "offset": { + "x": "46", + "y": "-12" + } + }, + "svgAttributes": { + "className": "node-button", + "r": "10" + } + }] + }, + "selectedNodeClass": { + "class": "aai-entity-node selected-node", + "visualElements": [{ + "type": "circle", + "class": "outer", + "svgAttributes": { + "r": "31" + } + }, + { + "type": "circle", + "class": "inner", + "svgAttributes": { + "r": "20" + } + }, + { + "type": "text", + "class": "id-type-label", + "displayKey": "itemType", + "shapeAttributes": { + "offset": { + "x": "0", + "y": "48" + } + } + }, + { + "type": "text", + "class": "id-value-label", + "displayKey": "itemNameValue", + "shapeAttributes": { + "offset": { + "x": "0", + "y": "63" + } + } + }, + { + "type": "button", + "name": "icon_ellipses", + "class": "node-button", + "shapeAttributes": { + "offset": { + "x": "33", + "y": "-35" + } + }, + "svgAttributes": { + "className": "node-button", + "r": "10" + } + }, + { + "type": "button", + "name": "icon_triangle_warning", + "class": "node-button", + "shapeAttributes": { + "offset": { + "x": "46", + "y": "-12" + } + }, + "svgAttributes": { + "className": "node-button", + "r": "10" + } + }] + } +}
\ No newline at end of file diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/elasticsearch.properties b/kubernetes/aai/charts/aai-sparky-be/resources/config/elasticsearch.properties deleted file mode 100644 index 082744b94e..0000000000 --- a/kubernetes/aai/charts/aai-sparky-be/resources/config/elasticsearch.properties +++ /dev/null @@ -1,72 +0,0 @@ -####################################################################################### -############################## ElasticSearch Config ################################### -####################################################################################### - -############################## Networking ############################## -# -# The ip address/hostname and port to the desired AAI instance -# For development it's recommended to use a local instance of ES -# -elasticsearch.ipAddress=aai-elasticsearch.{{.Release.Namespace}} -elasticsearch.httpPort={{ .Values.config.elasticsearchHttpPort }} -elasticsearch.javaApiPort=8443 - -############################## Indexes ############################## -# -# Index names for various searches. -# -elasticsearch.indexName=entitysearchindex -elasticsearch.topographicalIndexName=topographicalsearchindex -elasticsearch.entityCountHistoryIndexName=entitycounthistoryindex -elasticsearch.autosuggestIndexname=entityautosuggestindex - -# Default document type -elasticsearch.type=default - -############################## Index Mappings and Settings ############################## -# -# JSON files for sparky elasticsearch indexes. -# -elasticsearch.mappingsFileName=/etc/es_mappings.json -elasticsearch.settingsFileName=/etc/es_settings.json -elasticsearch.autosuggestSettingsFileName=/etc/autoSuggestSettings.json -elasticsearch.autosuggestMappingsFileName=/etc/autoSuggestMappings.json -elasticsearch.dynamicMappingsFileName=/etc/dynamicMappings.json -elasticsearch.entityCountHistoryMappingsFileName=/etc/entityCountHistoryMappings.json - -############################## Statistics Report Formatting ############################## -# -# During synchronization, a formatted statisitics log is generated. -# -# Response size in bytes histogram -elasticsearch.taskProcessor.bytesHistogramLabel="[Response Size In Bytes]" -elasticsearch.taskProcessor.bytesHistogramMaxYAxis=1000000 -elasticsearch.taskProcessor.bytesHistogramNumBins=20 -elasticsearch.taskProcessor.bytesHistogramNumDecimalPoints=2 -# "Work on Hand" statisitcs for external resource requests -elasticsearch.taskProcessor.queueLengthHistogramLabel="[Queue Item Length]" -elasticsearch.taskProcessor.queueLengthHistogramMaxYAxis=20000 -elasticsearch.taskProcessor.queueLengthHistogramNumBins=20 -elasticsearch.taskProcessor.queueLengthHistogramNumDecimalPoints=2 -# Time on queue (how long does a task stay on the work queue) -elasticsearch.taskProcessor.taskAgeHistogramLabel="[Task Age In Ms]" -elasticsearch.taskProcessor.taskAgeHistogramMaxYAxis=600000 -elasticsearch.taskProcessor.taskAgeHistogramNumBins=20 -elasticsearch.taskProcessor.taskAgeHistogramNumDecimalPoints=2 -# Per transaction response time for external resource requests -elasticsearch.taskProcessor.responseTimeHistogramLabel="[Response Time In Ms]" -elasticsearch.taskProcessor.responseTimeHistogramMaxYAxis=1000 -elasticsearch.taskProcessor.responseTimeHistogramNumBins=20 -elasticsearch.taskProcessor.responseTimeHistogramNumDecimalPoints=2 -# Transaction throughput velocity -elasticsearch.taskProcessor.tpsHistogramLabel="[Transactions Per Second]" -elasticsearch.taskProcessor.tpsHistogramMaxYAxis=100 -elasticsearch.taskProcessor.tpsHistogramNumBins=20 -elasticsearch.taskProcessor.tpsHistogramNumDecimalPoints=2 - -############################## Deprecated, to be removed or updated ############################## -elasticsearch.taskProcessor.maxConcurrentWorkers=5 -elasticsearch.taskProcessor.transactionRateControllerEnabled=false -elasticsearch.taskProcessor.numSamplesPerThreadForRunningAverage=100 -elasticsearch.taskProcessor.targetTPS=100 -elasticsearch.clusterName=ES_AAI_LOCALHOST diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/filters/aaiui_filters.json b/kubernetes/aai/charts/aai-sparky-be/resources/config/filters/aaiui_filters.json new file mode 100644 index 0000000000..62b681139d --- /dev/null +++ b/kubernetes/aai/charts/aai-sparky-be/resources/config/filters/aaiui_filters.json @@ -0,0 +1,79 @@ +{ + "filters": [ + { + "filterId": "1", + "filterName": "Orchestration-Status", + "displayName": "Orchestration Status", + "dataType": "dropDown", + "multiSelect": "false", + "watermark": "Any Orchestration Status", + "optionsType": "options", + "dataSource": { + "indexName": "aggregate_generic-vnf_index", + "docType": "default", + "fieldName": "orchestration-status" + } + }, + { + "filterId": "2", + "filterName": "Prov-Status", + "displayName": "Provisioning Status", + "dataType": "dropDown", + "multiSelect": "false", + "watermark": "Any Provisioning Status", + "optionsType": "options", + "dataSource": { + "indexName": "aggregate_generic-vnf_index", + "docType": "default", + "fieldName": "prov-status" + } + }, + { + "filterId": "5", + "filterName": "Date", + "displayName": "Date", + "dataType": "date", + "multiSelect": "false", + "watermark": "Choose Date Range", + "defaultValue" : {"decode": "Today", "code": "last_0_hours"}, + "optionsType": "dynamicOptions", + "optionsValues": [ + {"decode": "Today", "code": "last_0_hours"}, + {"decode": "Since Yesterday", "code": "last_1_days"}, + {"decode": "Since Last Week", "code": "last_1_weeks"}, + {"decode": "Since Last Month", "code": "last_1_months"}, + {"decode": "Since Last Year", "code": "last_1_years"}, + {"decode": "Custom Range", "code": "custom_range"} + ] + }, + { + "filterId": "7", + "filterName": "NF-Type", + "displayName": "Network Function Type", + "dataType": "dropDown", + "multiSelect": "false", + "watermark": "Any Network Function Type", + "optionsType": "options", + "dataSource": { + "indexName": "aggregate_generic-vnf_index", + "docType": "default", + "fieldName": "nf-type" + } + }, + { + "filterId": "8", + "filterName": "NF-Role", + "displayName": "Network Function Role", + "dataType": "dropDown", + "multiSelect": "false", + "watermark": "Any Network Function Role", + "optionsType": "options", + "dataSource": { + "indexName": "aggregate_generic-vnf_index", + "docType": "default", + "fieldName": "nf-role" + } + } + + ] +}
\ No newline at end of file diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/filters/aaiui_views.json b/kubernetes/aai/charts/aai-sparky-be/resources/config/filters/aaiui_views.json new file mode 100644 index 0000000000..9ca0119dc0 --- /dev/null +++ b/kubernetes/aai/charts/aai-sparky-be/resources/config/filters/aaiui_views.json @@ -0,0 +1,21 @@ +{ + "views": [ + { + "viewName" : "vnfSearch", + "filters" : [ + { + "filterId": "1" + }, + { + "filterId": "2" + }, + { + "filterId": "7" + }, + { + "filterId": "8" + } + ] + } + ] +}
\ No newline at end of file diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/filters/subscription_object_inspector_mapping.json b/kubernetes/aai/charts/aai-sparky-be/resources/config/filters/subscription_object_inspector_mapping.json new file mode 100644 index 0000000000..ad2ab7aa5f --- /dev/null +++ b/kubernetes/aai/charts/aai-sparky-be/resources/config/filters/subscription_object_inspector_mapping.json @@ -0,0 +1,16 @@ +{ + "target": "", + "origin": "", + "messageType": "", + "topic": "", + "message": { + "applicationName": "", + "payload": { + "action": "", + "params": { + "objectName": "", + "externalClassId": "" + } + } + } +} diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/log/logback.xml b/kubernetes/aai/charts/aai-sparky-be/resources/config/log/logback.xml index c1b99c183f..3f96497c60 100644 --- a/kubernetes/aai/charts/aai-sparky-be/resources/config/log/logback.xml +++ b/kubernetes/aai/charts/aai-sparky-be/resources/config/log/logback.xml @@ -1,200 +1,172 @@ -<?xml version="1.0" encoding="UTF-8"?> <configuration scan="true" scanPeriod="3 seconds" debug="false"> - <!--<jmxConfigurator /> --> - <!-- directory path for all other type logs --> - <property name="logDir" value="/var/log/onap" /> - <property name="componentName" value="AAI-UI" /> - <property name="logDirectory" value="${logDir}/${componentName}" /> - <!-- default eelf log file names --> - <property name="generalLogName" value="application" /> - <property name="errorLogName" value="error" /> - <property name="metricsLogName" value="metrics" /> - <property name="auditLogName" value="audit" /> - <property name="debugLogName" value="debug" /> - <property name="queueSize" value="256" /> - <property name="maxFileSize" value="50MB" /> - <property name="maxHistory" value="30" /> - <property name="totalSizeCap" value="10GB" /> - <property name="pattern" value="%d{"yyyy-MM-dd'T'HH:mm:ss.SSSXXX", UTC}\t[%thread]\t%-5level\t%logger{36}\t%replace(%replace(%replace(%mdc){'\t','\\\\t'}){', ','\t'}){'\n', '\\\\n'}\t%replace(%replace(%msg){'\n', '\\\\n'}){'\t','\\\\t'}%n" /> - - <!-- Example evaluator filter applied against console appender --> - <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> - <encoder> - <pattern>${pattern}</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}.%i.log</fileNamePattern> - <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> - <maxFileSize>${maxFileSize}</maxFileSize> - </timeBasedFileNamingAndTriggeringPolicy> - <maxHistory>${maxHistory}</maxHistory> - <totalSizeCap>${totalSizeCap}</totalSizeCap> - </rollingPolicy> - <encoder> - <pattern>${pattern}</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>${queueSize}</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}.%i.log</fileNamePattern> - <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> - <maxFileSize>${maxFileSize}</maxFileSize> - </timeBasedFileNamingAndTriggeringPolicy> - <maxHistory>${maxHistory}</maxHistory> - <totalSizeCap>${totalSizeCap}</totalSizeCap> - </rollingPolicy> - <encoder> - <pattern>${pattern}</pattern> - </encoder> - </appender> - <appender name="asyncEELFAudit" class="ch.qos.logback.classic.AsyncAppender"> - <queueSize>${queueSize}</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}.%i.log</fileNamePattern> - <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> - <maxFileSize>${maxFileSize}</maxFileSize> - </timeBasedFileNamingAndTriggeringPolicy> - <maxHistory>${maxHistory}</maxHistory> - <totalSizeCap>${totalSizeCap}</totalSizeCap> - </rollingPolicy> - <encoder> - <pattern>${pattern}</pattern> - </encoder> - </appender> - <appender name="asyncEELFMetrics" class="ch.qos.logback.classic.AsyncAppender"> - <queueSize>${queueSize}</queueSize> - <appender-ref ref="EELFMetrics" /> - </appender> - - <appender name="EELFError" class="ch.qos.logback.core.rolling.RollingFileAppender"> - <file>${logDirectory}/${errorLogName}.log</file> - <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> - <fileNamePattern>${logDirectory}/${errorLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern> - <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> - <maxFileSize>${maxFileSize}</maxFileSize> - </timeBasedFileNamingAndTriggeringPolicy> - <maxHistory>${maxHistory}</maxHistory> - <totalSizeCap>${totalSizeCap}</totalSizeCap> - </rollingPolicy> - <encoder> - <pattern>${pattern}</pattern> - </encoder> - <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> - <level>INFO</level> - </filter> - </appender> - <appender name="asyncEELFError" class="ch.qos.logback.classic.AsyncAppender"> - <queueSize>${queueSize}</queueSize> - <appender-ref ref="EELFError" /> - </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}.%i.log</fileNamePattern> - <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> - <maxFileSize>${maxFileSize}</maxFileSize> - </timeBasedFileNamingAndTriggeringPolicy> - <maxHistory>${maxHistory}</maxHistory> - <totalSizeCap>${totalSizeCap}</totalSizeCap> - </rollingPolicy> - <encoder> - <pattern>${pattern}</pattern> - </encoder> - </appender> - <appender name="asyncEELFDebug" class="ch.qos.logback.classic.AsyncAppender"> - <queueSize>${queueSize}</queueSize> - <appender-ref ref="EELFDebug" /> - <includeCallerData>false</includeCallerData> - </appender> - <!-- ============================================================================ --> - <!-- EELF loggers --> - <!-- ============================================================================ --> - <logger name="com.att.eelf" level="INFO" additivity="false" /> - <logger name="org.elasticsearch.plugins" level="WARN" /> - <logger name="com.att.eelf.debug" level="debug" additivity="false"> - <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> - <logger name="com.att.eelf.error" level="info" additivity="false"> - <appender-ref ref="asyncEELFError" /> - </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" /> - <logger name="ajsc.ErrorMessageLookupService" level="WARN" /> - <!-- AJSC related loggers (DME2 Registration, csi logging, restlet, servlet - logging) --> - <logger name="ajsc.utils" level="WARN" /> - <logger name="ajsc.utils.DME2Helper" level="WARN" /> - <logger name="ajsc.filters" level="WARN" /> - <logger name="ajsc.beans.interceptors" level="WARN" /> - <logger name="ajsc.restlet" level="WARN" /> - <logger name="ajsc.servlet" level="WARN" /> - <logger name="com.att" level="WARN" /> - <logger name="com.att.ajsc.csi.logging" level="WARN" /> - <logger name="com.att.ajsc.filemonitor" 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="WARN" /> - <logger name="org.apache.camel.component.restlet" level="WARN" /> - <!-- logback internals logging --> - <logger name="ch.qos.logback.classic" level="INFO" /> - <logger name="ch.qos.logback.core" level="INFO" /> - <root level="INFO"> - <appender-ref ref="asyncEELFDebug" /> - </root> -</configuration>
\ No newline at end of file + <!--<jmxConfigurator /> --> + <!-- directory path for all other type logs --> + + <property name="logDir" value="/var/log/onap" /> + + <!-- <ECOMP-component-name>::= "MSO" | "DCAE" | "ASDC " | "AAI" |"Policy" + | "SDNC" | "AC" --> + <property name="componentName" value="AAI-UI"></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|AAIUI|%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" /> + + <!-- Sparky loggers --> + <logger name="org.onap" 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/aai/charts/aai-sparky-be/resources/config/portal/portal.properties b/kubernetes/aai/charts/aai-sparky-be/resources/config/portal/BOOT-INF/classes/portal.properties index 04a19555e2..3d4ec09887 100644 --- a/kubernetes/aai/charts/aai-sparky-be/resources/config/portal/portal.properties +++ b/kubernetes/aai/charts/aai-sparky-be/resources/config/portal/BOOT-INF/classes/portal.properties @@ -1,9 +1,9 @@ -###################################################################################### -############################## eCOMP Portal properties ############################### -###################################################################################### +################################################################################ +############################## Portal properties ############################### +################################################################################ # Java class that implements the ECOMP role and user mgt API -portal.api.impl.class = org.openecomp.sparky.security.portal.PortalRestAPIServiceImpl +portal.api.impl.class = org.onap.aai.sparky.security.portal.PortalRestAPIServiceImpl # Instance of ECOMP Portal where the app has been on-boarded # use insecure http for dev purposes to avoid self-signed certificate @@ -20,4 +20,4 @@ csp_gate_keeper_prod_key = PROD # Toggles use of UEB ueb_listeners_enable = false # IDs application withing UEB flow -ueb_app_key = qFKles9N8gDTV0Zc +ueb_app_key = qFKles9N8gDTV0Zc diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/portal/portal-authentication.properties b/kubernetes/aai/charts/aai-sparky-be/resources/config/portal/portal-authentication.properties index 0873fc1c61..a0e3308435 100644 --- a/kubernetes/aai/charts/aai-sparky-be/resources/config/portal/portal-authentication.properties +++ b/kubernetes/aai/charts/aai-sparky-be/resources/config/portal/portal-authentication.properties @@ -1,14 +1,14 @@ -########################################################################################## -############################## eCOMP Portal Auth Properties ############################## -########################################################################################## - -############################## Auth ############################## -username=aaiui -password=1t2v1vfv1unz1vgz1t3b - -############################## ############################## -# -# ONAP Cookie Processing - During initial development, this flag, if true, will -# prevent the portal interface's login processing from searching for a user -# specific cookie, and will instead allow passage if a valid session cookie is discovered. -onap_enabled=true
\ No newline at end of file +#####################################################################################
+############################## Portal Auth Properties ##############################
+#####################################################################################
+
+############################## Auth ##############################
+username={{.Values.config.portalUsername}}
+password={{.Values.config.portalPassword}}
+
+############################## ##############################
+#
+# ONAP Cookie Processing - During initial development, this flag, if true, will
+# prevent the portal interface's login processing from searching for a user
+# specific cookie, and will instead allow passage if a valid session cookie is discovered.
+onap_enabled={{.Values.config.portalOnapEnabled}}
diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/portal/roles.config b/kubernetes/aai/charts/aai-sparky-be/resources/config/portal/roles.config new file mode 100644 index 0000000000..b8313bd378 --- /dev/null +++ b/kubernetes/aai/charts/aai-sparky-be/resources/config/portal/roles.config @@ -0,0 +1,6 @@ +[ + { + "id":1, + "name":"View" + } +]
\ No newline at end of file diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/roles.config b/kubernetes/aai/charts/aai-sparky-be/resources/config/roles.config index b8313bd378..4d5d43e2ce 100644 --- a/kubernetes/aai/charts/aai-sparky-be/resources/config/roles.config +++ b/kubernetes/aai/charts/aai-sparky-be/resources/config/roles.config @@ -1,6 +1,6 @@ -[ - { - "id":1, - "name":"View" - } +[
+ {
+ "id":1,
+ "name":"View"
+ }
]
\ No newline at end of file diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/schemas/autoSuggestMappings.json b/kubernetes/aai/charts/aai-sparky-be/resources/config/schemas/autoSuggestMappings.json new file mode 100644 index 0000000000..78576172fb --- /dev/null +++ b/kubernetes/aai/charts/aai-sparky-be/resources/config/schemas/autoSuggestMappings.json @@ -0,0 +1,10 @@ +{ + "properties" : { + "entity_suggest" : { + "type" : "completion", + "payloads" : true, + "analyzer" : "custom_analyzer", + "preserve_position_increments": false + } + } +}
\ No newline at end of file diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/schemas/autoSuggestSettings.json b/kubernetes/aai/charts/aai-sparky-be/resources/config/schemas/autoSuggestSettings.json new file mode 100644 index 0000000000..4525be12fc --- /dev/null +++ b/kubernetes/aai/charts/aai-sparky-be/resources/config/schemas/autoSuggestSettings.json @@ -0,0 +1,21 @@ +{ + "analysis": { + "filter": { + "eng_stop": { + "type": "stop", + "stopwords": "_english_" + } + }, + "analyzer": { + "custom_analyzer": { + "type": "custom", + "tokenizer": "standard", + "filter": [ + "lowercase", + "asciifolding", + "eng_stop" + ] + } + } + } + }
\ No newline at end of file diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/schemas/dynamicMappings.json b/kubernetes/aai/charts/aai-sparky-be/resources/config/schemas/dynamicMappings.json new file mode 100644 index 0000000000..09a00acdf6 --- /dev/null +++ b/kubernetes/aai/charts/aai-sparky-be/resources/config/schemas/dynamicMappings.json @@ -0,0 +1,14 @@ +{ + "dynamic_templates": [ + { + "strings": { + "match_mapping_type": "string", + "match": "*", + "mapping": { + "type": "string", + "index": "not_analyzed" + } + } + } + ] +}
\ No newline at end of file diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/schemas/entityCountHistoryMappings.json b/kubernetes/aai/charts/aai-sparky-be/resources/config/schemas/entityCountHistoryMappings.json new file mode 100644 index 0000000000..84e3aec4c7 --- /dev/null +++ b/kubernetes/aai/charts/aai-sparky-be/resources/config/schemas/entityCountHistoryMappings.json @@ -0,0 +1,16 @@ +{ + "properties": { + "count": { + "type": "long" + }, + "entityType": { + "type": "string", + "index": "not_analyzed" + }, + "timestamp": { + "type": "date", + "format": "MMM d y HH:m:s||dd-MM-yyyy HH:mm:ss||yyyy-MM-dd'T'HH:mm:ss.SSSZZ||MM/dd/yyyy||yyyyMMdd'T'HHmmssZ" + } + } +} + diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/schemas/es_mappings.json b/kubernetes/aai/charts/aai-sparky-be/resources/config/schemas/es_mappings.json new file mode 100644 index 0000000000..216e3d96b6 --- /dev/null +++ b/kubernetes/aai/charts/aai-sparky-be/resources/config/schemas/es_mappings.json @@ -0,0 +1,32 @@ +{ + "properties": { + "entityType": { + "type": "string", + "analyzer": "ngram_analyzer", + "search_analyzer": "ngram_analyzer" + }, + "entityPrimaryKeyValue": { + "type": "string", + "index": "not_analyzed" + }, + "searchTagIDs": { + "type": "string" + }, + "searchTags": { + "type": "string", + "analyzer": "ngram_analyzer" + }, + "crossEntityReferenceValues": { + "type": "string", + "analyzer": "ngram_analyzer" + }, + "link": { + "type": "string", + "index": "not_analyzed" + }, + "lastmodTimestamp": { + "type": "date", + "format": "MMM d y HH:m:s||dd-MM-yyyy HH:mm:ss||yyyy-MM-dd'T'HH:mm:ss.SSSZZ||yyyy-MM-dd HH:mm:ss||MM/dd/yyyy||yyyyMMdd'T'HHmmssZ" + } + } +}
\ No newline at end of file diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/schemas/es_settings.json b/kubernetes/aai/charts/aai-sparky-be/resources/config/schemas/es_settings.json new file mode 100644 index 0000000000..21a357c615 --- /dev/null +++ b/kubernetes/aai/charts/aai-sparky-be/resources/config/schemas/es_settings.json @@ -0,0 +1,36 @@ +{ + "analysis": { + "filter": { + "ngram_filter": { + "type": "nGram", + "min_gram": 1, + "max_gram": 50, + "token_chars": [ + "letter", + "digit", + "punctuation", + "symbol" + ] + } + }, + "analyzer": { + "ngram_analyzer": { + "type": "custom", + "tokenizer": "whitespace", + "filter": [ + "lowercase", + "asciifolding", + "ngram_filter" + ] + }, + "whitespace_analyzer": { + "type": "custom", + "tokenizer": "whitespace", + "filter": [ + "lowercase", + "asciifolding" + ] + } + } + } +}
\ No newline at end of file diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/search-service.properties b/kubernetes/aai/charts/aai-sparky-be/resources/config/search-service.properties deleted file mode 100644 index f28047333a..0000000000 --- a/kubernetes/aai/charts/aai-sparky-be/resources/config/search-service.properties +++ /dev/null @@ -1,32 +0,0 @@ -######################################################################################## -############################## Search Data Service Config ############################## -######################################################################################## - -############################## Networking ############################## -# -# The ip address/hostname and port to the desired Search Data Service instance -# -search-service.ipAddress=aai-search-data.{{.Release.Namespace}} -search-service.httpPort=9509 - -############################## Indexes ############################## -# -# Index values that will be associated with searches -# -# Searchable entities -search-service.indexName=entitysearchindex -# Inventory searches -search-service.topographicalIndexName=topographicalsearchindex -search-service.entityCountHistoryIndexName=entitycounthistoryindex - -############################## Version ############################## -# -# Search Data Service version and type (see Search Data Service for more details) -# -search-service.version=v1 -search-service.type=default - -############################## Certs ############################## -search-service.ssl.cert-name=client-cert-onap.p12 -search-service.ssl.keystore-password=OBF:1y0q1uvc1uum1uvg1pil1pjl1uuq1uvk1uuu1y10 -search-service.ssl.keystore=tomcat_keystore diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/sparky-application.properties b/kubernetes/aai/charts/aai-sparky-be/resources/config/sparky-application.properties new file mode 100644 index 0000000000..b246676fa7 --- /dev/null +++ b/kubernetes/aai/charts/aai-sparky-be/resources/config/sparky-application.properties @@ -0,0 +1,11 @@ +camel.springboot.name = SparkyCamelContext +#camel.springboot.xmlRoutes = file:${CONFIG_HOME}/camel-routes/*.route +camel.springboot.xmlRests = file:${CONFIG_HOME}/camel-rests/*.xml + +camel.component.servlet.mapping.context-path=/rest/* +server.servlet.context-path=/services/aai/webapp/ + +# +# attempt to externalize ui JS classes + resources +# +spring.resources.static-locations=file:${APP_HOME}/static/ diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/sparky-http-config.properties b/kubernetes/aai/charts/aai-sparky-be/resources/config/sparky-http-config.properties new file mode 100644 index 0000000000..f81a5976ef --- /dev/null +++ b/kubernetes/aai/charts/aai-sparky-be/resources/config/sparky-http-config.properties @@ -0,0 +1 @@ +server.port = 9517
\ No newline at end of file diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/sparky-ssl-config.properties b/kubernetes/aai/charts/aai-sparky-be/resources/config/sparky-ssl-config.properties new file mode 100644 index 0000000000..b9e5d16aac --- /dev/null +++ b/kubernetes/aai/charts/aai-sparky-be/resources/config/sparky-ssl-config.properties @@ -0,0 +1,3 @@ +server.port = 8000 +server.ssl.key-store=file:${CONFIG_HOME}/auth/tomcat_keystore +server.ssl.key-alias=tomcat
\ No newline at end of file diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/spring-beans/sparky-core-aggregateVnfSearchProvider.xml b/kubernetes/aai/charts/aai-sparky-be/resources/config/spring-beans/sparky-core-aggregateVnfSearchProvider.xml new file mode 100644 index 0000000000..694ea1bf0f --- /dev/null +++ b/kubernetes/aai/charts/aai-sparky-be/resources/config/spring-beans/sparky-core-aggregateVnfSearchProvider.xml @@ -0,0 +1,33 @@ +<beans xmlns="http://www.springframework.org/schema/beans" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation=" + http://www.springframework.org/schema/beans + http://www.springframework.org/schema/beans/spring-beans.xsd"> + + <bean id="aggregateVnfSearchProvider" + class="org.onap.aai.sparky.aggregatevnf.search.AggregateVnfSearchProvider"> + <constructor-arg ref="searchServiceAdapter"/> + <constructor-arg name="autoSuggestIndexName" value="entityautosuggestindex"/> + <constructor-arg name="vnfSearchSuggestionRoute" value="vnfSearch"/> + </bean> + + <bean id="aggregateSummaryProcessor" + class="org.onap.aai.sparky.aggregatevnf.search.AggregateSummaryProcessor"> + <constructor-arg ref="elasticSearchAdapter"/> + <constructor-arg ref="filtersConfig"/> + <property name="vnfAggregationIndexName" value="aggregate_generic-vnf_index"/> + </bean> + + <bean id="registerAggregateVnfSearchProvider" + class="org.springframework.beans.factory.config.MethodInvokingFactoryBean"> + <property name="targetObject" ref="searchProviderRegistry"/> + <property name="targetMethod"> + <value>addSearchProviders</value> + </property> + <property name="arguments"> + <list value-type="org.onap.aai.sparky.search.api.SearchProvider"> + <ref bean="aggregateVnfSearchProvider"/> + </list> + </property> + </bean> +</beans> diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/spring-beans/sparky-core-apigw.xml b/kubernetes/aai/charts/aai-sparky-be/resources/config/spring-beans/sparky-core-apigw.xml new file mode 100644 index 0000000000..8b5f27727d --- /dev/null +++ b/kubernetes/aai/charts/aai-sparky-be/resources/config/spring-beans/sparky-core-apigw.xml @@ -0,0 +1,31 @@ +<beans xmlns="http://www.springframework.org/schema/beans" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation=" + http://www.springframework.org/schema/beans + http://www.springframework.org/schema/beans/spring-beans.xsd"> + + <bean id="synapseRestEndpointConfig" class="org.onap.aai.sparky.dal.rest.config.RestEndpointConfig"> + <property name="endpointIpAddress" value="aai.synapse.simpledemo.openecomp.org" /> + <property name="endpointServerPort" value="9502" /> + <property name="numRequestRetries" value="5" /> + <property name="restAuthenticationMode" value="SSL_CERT" /> + <property name="connectTimeoutInMs" value="60000" /> + <property name="readTimeoutInMs" value="30000" /> + <property name="certFileName" value="/auth/client-cert-onap.p12" /> + <property name="certPassword" value="OBF:1y0q1uvc1uum1uvg1pil1pjl1uuq1uvk1uuu1y10" /> + <property name="truststoreFileName" value="/auth/inventory-ui-keystore" /> + <property name="validateServerCertChain" value="false" /> + <property name="validateServerHostname" value="false" /> + <property name="resourceLoader" ref="sparkyResourceLoader" /> + + </bean> + + <bean id="aaiuiProxyProcessor" + class="org.onap.aai.sparky.dal.proxy.processor.AaiUiProxyProcessor"> + <constructor-arg ref="synapseRestEndpointConfig" /> + <constructor-arg name="apiGatewayEndpoint" value="ui-request" /> + </bean> + +</beans> + + diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/spring-beans/sparky-core-gizmo.xml b/kubernetes/aai/charts/aai-sparky-be/resources/config/spring-beans/sparky-core-gizmo.xml new file mode 100644 index 0000000000..dedd7e2d16 --- /dev/null +++ b/kubernetes/aai/charts/aai-sparky-be/resources/config/spring-beans/sparky-core-gizmo.xml @@ -0,0 +1,29 @@ +<beans xmlns="http://www.springframework.org/schema/beans" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation=" + http://www.springframework.org/schema/beans + http://www.springframework.org/schema/beans/spring-beans.xsd"> + + <bean id="gizmoRestEndpointConfig" class="org.onap.aai.sparky.dal.rest.config.RestEndpointConfig"> + <property name="endpointIpAddress" value="{{.Values.global.gizmo.serviceName}}.{{.Release.Namespace}}" /> + <property name="endpointServerPort" value="9520" /> + <property name="numRequestRetries" value="5" /> + <property name="restAuthenticationMode" value="SSL_CERT" /> + <property name="connectTimeoutInMs" value="60000" /> + <property name="readTimeoutInMs" value="30000" /> + <property name="certFileName" value="/auth/client-cert-onap.p12" /> + <property name="certPassword" value="OBF:1y0q1uvc1uum1uvg1pil1pjl1uuq1uvk1uuu1y10" /> + <property name="truststoreFileName" value="/auth/inventory-ui-keystore" /> + <property name="validateServerCertChain" value="false" /> + <property name="validateServerHostname" value="false" /> + <property name="resourceLoader" ref="sparkyResourceLoader" /> + </bean> + + <bean id="gizmoAdapter" class="org.onap.aai.sparky.dal.GizmoAdapter"> + <constructor-arg ref="oxmModelLoader" /> + <constructor-arg ref="gizmoRestEndpointConfig" /> + <property name="relationshipsBasePath" value="/services/inventory/relationships/v13/" /> + <property name="inventoryBasePath" value="/services/inventory/v13/" /> + </bean> + +</beans> diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/spring-beans/sparky-core-sync.xml b/kubernetes/aai/charts/aai-sparky-be/resources/config/spring-beans/sparky-core-sync.xml new file mode 100644 index 0000000000..0763f94cd1 --- /dev/null +++ b/kubernetes/aai/charts/aai-sparky-be/resources/config/spring-beans/sparky-core-sync.xml @@ -0,0 +1,373 @@ +<beans xmlns="http://www.springframework.org/schema/beans" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation=" + http://www.springframework.org/schema/beans + http://www.springframework.org/schema/beans/spring-beans.xsd"> + + <bean id="elasticSearchSchemaFactory" class="org.onap.aai.sparky.sync.ElasticSearchSchemaFactory"> + <property name="resourceLoader" ref="sparkyResourceLoader" /> + </bean> + + + <bean id="elasticSearchRestEndpointConfig" class="org.onap.aai.sparky.dal.rest.config.RestEndpointConfig"> + <property name="endpointIpAddress" value="{{.Values.global.aaiElasticsearch.serviceName}}.{{.Release.Namespace}}" /> + <property name="endpointServerPort" value="9200" /> + <property name="numRequestRetries" value="5" /> + <property name="restAuthenticationMode" value="HTTP_NOAUTH" /> + <property name="connectTimeoutInMs" value="60000" /> + <property name="readTimeoutInMs" value="30000" /> + </bean> + + <bean id="elasticSearchAdapter" class="org.onap.aai.sparky.dal.ElasticSearchAdapter"> + <constructor-arg ref="elasticSearchRestEndpointConfig" /> + </bean> + + <bean id="elasticSearchNetworkStatConfig" class="org.onap.aai.sparky.sync.config.NetworkStatisticsConfig"> + <property name="numSamplesPerThreadForRunningAverage" value="100" /> + <property name="bytesHistogramLabel" value="[Response Size In Bytes]" /> + <property name="bytesHistogramMaxYAxis" value="1000000" /> + <property name="bytesHistogramNumBins" value="20" /> + <property name="bytesHistogramNumDecimalPoints" value="2" /> + <property name="queueLengthHistogramLabel" value="[Queue Item Length]" /> + <property name="queueLengthHistogramMaxYAxis" value="20000" /> + <property name="queueLengthHistogramNumBins" value="20" /> + <property name="queueLengthHistogramNumDecimalPoints" value="2" /> + <property name="taskAgeHistogramLabel" value="[Task Age In Ms]" /> + <property name="taskAgeHistogramMaxYAxis" value="600000" /> + <property name="taskAgeHistogramNumBins" value="20" /> + <property name="taskAgeHistogramNumDecimalPoints" value="2" /> + <property name="responseTimeHistogramLabel" value="[Response Time In Ms]" /> + <property name="responseTimeHistogramMaxYAxis" value="1000" /> + <property name="responseTimeHistogramNumBins" value="20" /> + <property name="responseTimeHistogramNumDecimalPoints" value="2" /> + <property name="tpsHistogramLabel" value="[Transactions Per Second]" /> + <property name="tpsHistogramMaxYAxis" value="100" /> + <property name="tpsHistogramNumBins" value="20" /> + <property name="tpsHistogramNumDecimalPoints" value="2" /> + </bean> + + <bean id="aaiNetworkStatConfig" class="org.onap.aai.sparky.sync.config.NetworkStatisticsConfig"> + <property name="numSamplesPerThreadForRunningAverage" value="100" /> + <property name="bytesHistogramLabel" value="[Response Size In Bytes]" /> + <property name="bytesHistogramMaxYAxis" value="1000000" /> + <property name="bytesHistogramNumBins" value="20" /> + <property name="bytesHistogramNumDecimalPoints" value="2" /> + <property name="queueLengthHistogramLabel" value="[Queue Item Length]" /> + <property name="queueLengthHistogramMaxYAxis" value="20000" /> + <property name="queueLengthHistogramNumBins" value="20" /> + <property name="queueLengthHistogramNumDecimalPoints" value="2" /> + <property name="taskAgeHistogramLabel" value="[Task Age In Ms]" /> + <property name="taskAgeHistogramMaxYAxis" value="600000" /> + <property name="taskAgeHistogramNumBins" value="20" /> + <property name="taskAgeHistogramNumDecimalPoints" value="2" /> + <property name="responseTimeHistogramLabel" value="[Response Time In Ms]" /> + <property name="responseTimeHistogramMaxYAxis" value="10000" /> + <property name="responseTimeHistogramNumBins" value="20" /> + <property name="responseTimeHistogramNumDecimalPoints" value="2" /> + <property name="tpsHistogramLabel" value="[Transactions Per Second]" /> + <property name="tpsHistogramMaxYAxis" value="100" /> + <property name="tpsHistogramNumBins" value="20" /> + <property name="tpsHistogramNumDecimalPoints" value="2" /> + </bean> + + <bean id="aaiRestEndpointConfig" class="org.onap.aai.sparky.dal.rest.config.RestEndpointConfig"> + <property name="endpointIpAddress" value="{{.Values.global.aai.serviceName}}" /> + <property name="endpointServerPort" value="8443" /> + <property name="numRequestRetries" value="5" /> + <property name="restAuthenticationMode" value="SSL_BASIC" /> + <property name="connectTimeoutInMs" value="60000" /> + <property name="readTimeoutInMs" value="30000" /> + <property name="basicAuthUserName" value="AaiUI" /> + <property name="basicAuthPassword" value="OBF:1gfr1p571unz1p4j1gg7" /> + <property name="truststoreFileName" value="/auth/inventory-ui-keystore" /> + <property name="validateServerCertChain" value="false" /> + <property name="validateServerHostname" value="false" /> + <property name="resourceLoader" ref="sparkyResourceLoader" /> + </bean> + + <bean id="activeInventoryAdapter" class="org.onap.aai.sparky.dal.ActiveInventoryAdapter"> + <constructor-arg ref="oxmModelLoader" /> + <constructor-arg ref="oxmEntityLookup" /> + <constructor-arg ref="aaiRestEndpointConfig" /> + </bean> + + <bean id="syncControllerRegistry" class="org.onap.aai.sparky.sync.SyncControllerRegistry" /> + + <bean id="elasticSearchEndpointConfig" + class="org.onap.aai.sparky.sync.config.ElasticSearchEndpointConfig"> + <property name="esIpAddress" value="{{.Values.global.aaiElasticsearch.serviceName}}.{{.Release.Namespace}}" /> + <property name="esServerPort" value="9200" /> + <property name="scrollContextTimeToLiveInMinutes" value="5" /> + <property name="scrollContextBatchRequestSize" value="5000" /> + </bean> + + <bean id="aggregationSyncControllerConfig" class="org.onap.aai.sparky.sync.config.SyncControllerConfig"> + <property name="controllerName" value="Aggregation-Sync-Controller" /> + <property name="enabled" value="true" /> + <property name="syncTaskDelayInMs" value="5000" /> + <property name="syncTaskFrequencyInDays" value="1" /> + <property name="numSyncControllerWorkers" value="2" /> + <property name="runOnceSyncEnabled" value="true" /> + <property name="periodicSyncEnabled" value="false" /> + <property name="numInternalSyncWorkers" value="2" /> + <property name="numSyncElasticWorkers" value="5" /> + <property name="numSyncActiveInventoryWorkers" value="5" /> + <property name="targetSyncStartTimeStamp" value="05:00:00 UTC+00:00" /> + </bean> + + <bean id="aggregationSyncControllerFactory" + class="org.onap.aai.sparky.aggregation.sync.AggregationSyncControllerFactory" + init-method="registerController"> + + <constructor-arg ref="elasticSearchEndpointConfig" /> + <constructor-arg ref="aggregationSyncControllerConfig" /> + <constructor-arg ref="syncControllerRegistry" /> + <constructor-arg ref="suggestionEntityLookup" /> + <constructor-arg ref="oxmEntityLookup" /> + <constructor-arg ref="elasticSearchSchemaFactory" /> + + <property name="esAdapter" ref="elasticSearchAdapter" /> + <property name="esStatConfig" ref="elasticSearchNetworkStatConfig" /> + + <property name="aaiAdapter" ref="activeInventoryAdapter" /> + <property name="aaiStatConfig" ref="aaiNetworkStatConfig" /> + + <property name="aggregationEntityToIndexMap"> + <map> + <entry key="generic-vnf" value="aggregate_generic-vnf_index" /> + </map> + </property> + + <property name="indexNameToSchemaConfigMap"> + <map> + <entry key="aggregate_generic-vnf_index"> + <bean class="org.onap.aai.sparky.sync.config.ElasticSearchSchemaConfig"> + <property name="indexName" value="aggregate_generic-vnf_index" /> + <property name="indexDocType" value="default" /> + <property name="indexMappingsFileName" value="/schemas/dynamicMappings.json" /> + </bean> + </entry> + </map> + </property> + + </bean> + + + <bean id="historicalEntitySyncControllerConfig" class="org.onap.aai.sparky.sync.config.SyncControllerConfig"> + + <property name="controllerName" value="Historical-Entity-Sync-Controller" /> + <property name="enabled" value="true" /> + <property name="syncTaskDelayInMs" value="5000" /> + <property name="syncTaskFrequencyInDays" value="1" /> + <property name="numSyncControllerWorkers" value="2" /> + <property name="runOnceSyncEnabled" value="true" /> + <property name="periodicSyncEnabled" value="false" /> + <property name="numInternalSyncWorkers" value="2" /> + <property name="numSyncElasticWorkers" value="5" /> + <property name="numSyncActiveInventoryWorkers" value="5" /> + <property name="targetSyncStartTimeStamp" value="05:00:00 UTC+00:00" /> + </bean> + + <bean id="historicalEntitySchemaConfig" class="org.onap.aai.sparky.sync.config.ElasticSearchSchemaConfig"> + <property name="indexName" value="entitycounthistoryindex" /> + <property name="indexDocType" value="default" /> + <property name="indexMappingsFileName" value="/schemas/entityCountHistoryMappings.json" /> + <property name="indexSettingsFileName" value="/schemas/es_settings.json" /> + </bean> + + <bean id="historicalEntitySyncController" + class="org.onap.aai.sparky.aggregation.sync.HistoricalEntitySyncController" + init-method="registerController"> + + <constructor-arg ref="historicalEntitySyncControllerConfig" /> + <constructor-arg ref="activeInventoryAdapter" /> + <constructor-arg ref="elasticSearchAdapter" /> + <constructor-arg ref="historicalEntitySchemaConfig" /> + <constructor-arg ref="elasticSearchEndpointConfig" /> + <constructor-arg value="60" /> + <constructor-arg ref="aaiNetworkStatConfig" /> + <constructor-arg ref="elasticSearchNetworkStatConfig" /> + <constructor-arg ref="searchableEntityLookup" /> + <constructor-arg ref="elasticSearchSchemaFactory" /> + + <property name="syncControllerRegistry" ref="syncControllerRegistry" /> + + </bean> + + + + <bean id="autoSuggestionSyncControllerConfig" class="org.onap.aai.sparky.sync.config.SyncControllerConfig"> + + <property name="controllerName" value="Auto-Suggestion-Sync-Controller" /> + <property name="enabled" value="true" /> + <property name="syncTaskDelayInMs" value="5000" /> + <property name="syncTaskFrequencyInDays" value="1" /> + <property name="numSyncControllerWorkers" value="2" /> + <property name="runOnceSyncEnabled" value="true" /> + <property name="periodicSyncEnabled" value="false" /> + <property name="numInternalSyncWorkers" value="2" /> + <property name="numSyncElasticWorkers" value="5" /> + <property name="numSyncActiveInventoryWorkers" value="5" /> + <property name="targetSyncStartTimeStamp" value="05:00:00 UTC+00:00" /> + </bean> + + <bean id="autoSuggestionEntitySchemaConfig" class="org.onap.aai.sparky.sync.config.ElasticSearchSchemaConfig"> + <property name="indexName" value="entityautosuggestindex" /> + <property name="indexDocType" value="default" /> + <property name="indexMappingsFileName" value="/schemas/autoSuggestMappings.json" /> + <property name="indexSettingsFileName" value="/schemas/autoSuggestSettings.json" /> + </bean> + + <bean id="autoSuggestionEntitySyncController" + class="org.onap.aai.sparky.autosuggestion.sync.AutoSuggestionSyncController" + init-method="registerController"> + + <constructor-arg ref="autoSuggestionSyncControllerConfig" /> + <constructor-arg ref="activeInventoryAdapter" /> + <constructor-arg ref="elasticSearchAdapter" /> + <constructor-arg ref="autoSuggestionEntitySchemaConfig" /> + <constructor-arg ref="elasticSearchEndpointConfig" /> + <constructor-arg ref="aaiNetworkStatConfig" /> + <constructor-arg ref="elasticSearchNetworkStatConfig" /> + <constructor-arg ref="oxmEntityLookup" /> + <constructor-arg ref="suggestionEntityLookup" /> + <constructor-arg ref="filtersConfig" /> + <constructor-arg ref="elasticSearchSchemaFactory" /> + + <property name="syncControllerRegistry" ref="syncControllerRegistry" /> + + </bean> + + + + <bean id="vnfAliasSyncControllerConfig" class="org.onap.aai.sparky.sync.config.SyncControllerConfig"> + + <property name="controllerName" value="Vnf-Alias-Sync-Controller" /> + <property name="enabled" value="true" /> + <property name="syncTaskDelayInMs" value="5000" /> + <property name="syncTaskFrequencyInDays" value="1" /> + <property name="numSyncControllerWorkers" value="2" /> + <property name="runOnceSyncEnabled" value="true" /> + <property name="periodicSyncEnabled" value="false" /> + <property name="numInternalSyncWorkers" value="2" /> + <property name="numSyncElasticWorkers" value="5" /> + <property name="numSyncActiveInventoryWorkers" value="5" /> + <property name="targetSyncStartTimeStamp" value="05:00:00 UTC+00:00" /> + </bean> + + <bean id="vnfAliasEntitySchemaConfig" class="org.onap.aai.sparky.sync.config.ElasticSearchSchemaConfig"> + <property name="indexName" value="entityautosuggestindex" /> + <property name="indexDocType" value="default" /> + <property name="indexMappingsFileName" value="/schemas/autoSuggestMappings.json" /> + <property name="indexSettingsFileName" value="/schemas/autoSuggestSettings.json" /> + </bean> + + <bean id="vnfAliasSyncController" + class="org.onap.aai.sparky.autosuggestion.sync.VnfAliasSyncController" + init-method="registerController"> + + <constructor-arg ref="vnfAliasSyncControllerConfig" /> + <constructor-arg ref="activeInventoryAdapter" /> + <constructor-arg ref="elasticSearchAdapter" /> + <constructor-arg ref="vnfAliasEntitySchemaConfig" /> + <constructor-arg ref="elasticSearchEndpointConfig" /> + <constructor-arg ref="aaiNetworkStatConfig" /> + <constructor-arg ref="elasticSearchNetworkStatConfig" /> + <constructor-arg ref="filtersConfig" /> + <constructor-arg ref="elasticSearchSchemaFactory" /> + + <property name="syncControllerRegistry" ref="syncControllerRegistry" /> + + </bean> + + <bean id="geoSyncControllerConfig" class="org.onap.aai.sparky.sync.config.SyncControllerConfig"> + + <property name="controllerName" value="Geo-Sync-Controller" /> + <property name="enabled" value="true" /> + <property name="syncTaskDelayInMs" value="5000" /> + <property name="syncTaskFrequencyInDays" value="1" /> + <property name="numSyncControllerWorkers" value="2" /> + <property name="runOnceSyncEnabled" value="true" /> + <property name="periodicSyncEnabled" value="false" /> + <property name="numInternalSyncWorkers" value="2" /> + <property name="numSyncElasticWorkers" value="5" /> + <property name="numSyncActiveInventoryWorkers" value="5" /> + <property name="targetSyncStartTimeStamp" value="05:00:00 UTC+00:00" /> + </bean> + + <bean id="geoEntitySchemaConfig" class="org.onap.aai.sparky.sync.config.ElasticSearchSchemaConfig"> + <property name="indexName" value="topographicalsearchindex" /> + <property name="indexDocType" value="default" /> + <property name="indexMappingsFileName" value="/schemas/dynamicMappings.json" /> + </bean> + + <bean id="geoSyncController" + class="org.onap.aai.sparky.topology.sync.GeoSyncController" + init-method="registerController"> + + <constructor-arg ref="geoSyncControllerConfig" /> + <constructor-arg ref="activeInventoryAdapter" /> + <constructor-arg ref="elasticSearchAdapter" /> + <constructor-arg ref="geoEntitySchemaConfig" /> + <constructor-arg ref="elasticSearchEndpointConfig" /> + <constructor-arg ref="aaiNetworkStatConfig" /> + <constructor-arg ref="elasticSearchNetworkStatConfig" /> + <constructor-arg ref="geoEntityLookup" /> + <constructor-arg ref="oxmEntityLookup" /> + <constructor-arg ref="elasticSearchSchemaFactory" /> + + <property name="syncControllerRegistry" ref="syncControllerRegistry" /> + + </bean> + + <bean id="viewInspectControllerConfig" class="org.onap.aai.sparky.sync.config.SyncControllerConfig"> + + <property name="controllerName" value="View-Inspect-Sync-Controller" /> + <property name="enabled" value="true" /> + <property name="syncTaskDelayInMs" value="5000" /> + <property name="syncTaskFrequencyInDays" value="1" /> + <property name="numSyncControllerWorkers" value="2" /> + <property name="runOnceSyncEnabled" value="true" /> + <property name="periodicSyncEnabled" value="false" /> + <property name="numInternalSyncWorkers" value="2" /> + <property name="numSyncElasticWorkers" value="5" /> + <property name="numSyncActiveInventoryWorkers" value="5" /> + <property name="targetSyncStartTimeStamp" value="05:00:00 UTC+00:00" /> + </bean> + + <bean id="viewInspectySchemaConfig" class="org.onap.aai.sparky.sync.config.ElasticSearchSchemaConfig"> + <property name="indexName" value="entitysearchindex" /> + <property name="indexDocType" value="default" /> + <property name="indexMappingsFileName" value="/schemas/es_mappings.json" /> + <property name="indexSettingsFileName" value="/schemas/es_settings.json" /> + </bean> + + + <bean id="viewInspectSyncController" + class="org.onap.aai.sparky.viewinspect.sync.ViewInspectSyncController" + init-method="registerController"> + + <constructor-arg ref="viewInspectControllerConfig" /> + <constructor-arg ref="activeInventoryAdapter" /> + <constructor-arg ref="elasticSearchAdapter" /> + <constructor-arg ref="viewInspectySchemaConfig" /> + <constructor-arg ref="elasticSearchEndpointConfig" /> + <constructor-arg ref="aaiNetworkStatConfig" /> + <constructor-arg ref="elasticSearchNetworkStatConfig" /> + <constructor-arg ref="crossEntityReferenceLookup" /> + <constructor-arg ref="oxmEntityLookup" /> + <constructor-arg ref="searchableEntityLookup" /> + <constructor-arg ref="elasticSearchSchemaFactory" /> + + <property name="syncControllerRegistry" ref="syncControllerRegistry" /> + + </bean> + + <bean id="syncControllerService" class="org.onap.aai.sparky.sync.SyncControllerService" + destroy-method="shutdown"> + <constructor-arg ref="syncControllerRegistry" /> + <constructor-arg value="5" /> + <constructor-arg value="5" /> + </bean> + +</beans> diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/spring-beans/sparky-core-viewInspect.xml b/kubernetes/aai/charts/aai-sparky-be/resources/config/spring-beans/sparky-core-viewInspect.xml new file mode 100644 index 0000000000..c146e6ef2b --- /dev/null +++ b/kubernetes/aai/charts/aai-sparky-be/resources/config/spring-beans/sparky-core-viewInspect.xml @@ -0,0 +1,55 @@ +<beans xmlns="http://www.springframework.org/schema/beans" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation=" + http://www.springframework.org/schema/beans + http://www.springframework.org/schema/beans/spring-beans.xsd"> + + <bean id="visualizationConfigurations" + class="org.onap.aai.sparky.viewandinspect.config.VisualizationConfigs"> + <property name="maxSelfLinkTraversalDepth" value="2" /> + <property name="visualizationDebugEnabled" value="false" /> + <property name="aaiEntityNodeDescriptors" value="/descriptors/aaiEntityNodeDescriptors.json" /> + <property name="generalNodeClassName" value="generalNodeClass" /> + <property name="searchNodeClassName" value="searchedNodeClass" /> + <property name="selectedSearchedNodeClassName" value="selectedSearchedNodeClass" /> + <property name="numOfThreadsToFetchNodeIntegrity" value="20" /> + <property name="makeAllNeighborsBidirectional" value="false" /> + <property name="gizmoEnabled" value="false" /> + <property name="resourceLoader" ref="sparkyResourceLoader" /> + + <property name="shallowEntities"> + <list value-type="java.lang.String"> + <value>cloud-region</value> + <value>complex</value> + <value>vnf-image</value> + <value>image</value> + <value>flavor</value> + <value>availability-zone</value> + <value>tenant</value> + <value>network-profile</value> + <value>l-interface</value> + </list> + </property> + + </bean> + + <bean id="baseVisualizationService" + class="org.onap.aai.sparky.viewandinspect.services.BaseVisualizationService"> + <constructor-arg ref="oxmModelLoader"/> + <constructor-arg ref="visualizationConfigurations"/> + <constructor-arg ref="activeInventoryAdapter" /> + <constructor-arg ref="gizmoAdapter" /> + <constructor-arg ref="elasticSearchAdapter" /> + <constructor-arg ref="elasticSearchEndpointConfig" /> + <constructor-arg ref="viewInspectySchemaConfig" /> + <constructor-arg name="numActiveInventoryWorkers" value="50" /> + <constructor-arg ref="oxmEntityLookup" /> + <constructor-arg ref="subscriptionConfig" /> + </bean> + + <bean id="schemaVisualizationProcessor" + class="org.onap.aai.sparky.viewandinspect.SchemaVisualizationProcessor"> + <property name="visualizationService" ref="baseVisualizationService" /> + </bean> + +</beans> diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/spring-beans/sparky-core-viewInspectSearchProvider.xml b/kubernetes/aai/charts/aai-sparky-be/resources/config/spring-beans/sparky-core-viewInspectSearchProvider.xml new file mode 100644 index 0000000000..072c935574 --- /dev/null +++ b/kubernetes/aai/charts/aai-sparky-be/resources/config/spring-beans/sparky-core-viewInspectSearchProvider.xml @@ -0,0 +1,34 @@ +<beans xmlns="http://www.springframework.org/schema/beans" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation=" + http://www.springframework.org/schema/beans + http://www.springframework.org/schema/beans/spring-beans.xsd"> + + <bean id="viewInspectSearchProvider" + class="org.onap.aai.sparky.viewandinspect.search.ViewInspectSearchProvider"> + <constructor-arg ref="searchServiceAdapter" /> + <constructor-arg ref="suggestiveSearchConfigs" /> + <constructor-arg name="viewInspectIndexName" value="entitysearchindex" /> + <constructor-arg name="viewInspectSuggestionRoute" value="schema" /> + <constructor-arg ref="oxmEntityLookup" /> + + <property name="additionalSearchSuggestionText"> + <value>Schema</value> + </property> + + </bean> + + <bean id="registerViewInspectSearchProvider" + class="org.springframework.beans.factory.config.MethodInvokingFactoryBean"> + <property name="targetObject" ref="searchProviderRegistry" /> + <property name="targetMethod"> + <value>addSearchProviders</value> + </property> + <property name="arguments"> + <list value-type="org.onap.aai.sparky.search.api.SearchProvider"> + <ref bean="viewInspectSearchProvider" /> + </list> + </property> + </bean> + +</beans> diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/spring-beans/sparky-core.xml b/kubernetes/aai/charts/aai-sparky-be/resources/config/spring-beans/sparky-core.xml new file mode 100644 index 0000000000..8f5d42d25a --- /dev/null +++ b/kubernetes/aai/charts/aai-sparky-be/resources/config/spring-beans/sparky-core.xml @@ -0,0 +1,241 @@ +<beans xmlns="http://www.springframework.org/schema/beans" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation=" + http://www.springframework.org/schema/beans + http://www.springframework.org/schema/beans/spring-beans.xsd"> + + <bean id="searchServiceRestEndpointConfig" class="org.onap.aai.sparky.dal.rest.config.RestEndpointConfig"> + <property name="endpointIpAddress" value="{{.Values.global.searchData.serviceName}}.{{.Release.Namespace}}" /> + <property name="endpointServerPort" value="9509" /> + <property name="numRequestRetries" value="5" /> + <property name="restAuthenticationMode" value="SSL_CERT" /> + <property name="connectTimeoutInMs" value="60000" /> + <property name="readTimeoutInMs" value="30000" /> + <property name="certFileName" value="/auth/client-cert-onap.p12" /> + <property name="certPassword" value="OBF:1y0q1uvc1uum1uvg1pil1pjl1uuq1uvk1uuu1y10" /> + <property name="truststoreFileName" value="/auth/inventory-ui-keystore" /> + <property name="validateServerCertChain" value="false" /> + <property name="validateServerHostname" value="false" /> + <property name="resourceLoader" ref="sparkyResourceLoader" /> + </bean> + + <bean id="searchServiceAdapter" class="org.onap.aai.sparky.search.SearchServiceAdapter"> + <constructor-arg ref="searchServiceRestEndpointConfig" /> + <constructor-arg name="serviceApiVersion" value="v1" /> + </bean> + + <bean id="filtersConfig" class="org.onap.aai.sparky.search.filters.config.FiltersConfig"> + <constructor-arg name="filtersFileName" value="/filters/aaiui_filters.json" /> + <constructor-arg name="viewsFileName" value="/filters/aaiui_views.json" /> + <constructor-arg name="resourceLoader" ref="sparkyResourceLoader" /> + </bean> + + <bean id="crossEntityReferenceLookup" + class="org.onap.aai.sparky.config.oxm.CrossEntityReferenceLookup" /> + + <bean id="geoEntityLookup" class="org.onap.aai.sparky.config.oxm.GeoEntityLookup" /> + + <bean id="oxmEntityLookup" class="org.onap.aai.sparky.config.oxm.OxmEntityLookup" /> + + <bean id="searchableEntityLookup" class="org.onap.aai.sparky.config.oxm.SearchableEntityLookup" /> + + <bean id="suggestionEntityLookup" class="org.onap.aai.sparky.config.oxm.SuggestionEntityLookup"> + <constructor-arg ref="filtersConfig" /> + </bean> + + <bean id="oxmModelProcessorSet" class="org.springframework.beans.factory.config.SetFactoryBean"> + <property name="targetSetClass" value="java.util.HashSet" /> + <property name="sourceSet"> + <set> + <ref bean="crossEntityReferenceLookup" /> + <ref bean="geoEntityLookup" /> + <ref bean="oxmEntityLookup" /> + <ref bean="searchableEntityLookup" /> + <ref bean="suggestionEntityLookup" /> + </set> + </property> + </bean> + + <bean id="oxmModelLoader" class="org.onap.aai.sparky.config.oxm.OxmModelLoader" init-method="loadLatestOxmModel"> + <!-- the int argument is the latestVersionOverride. -1 disables the override --> + <constructor-arg type="int" value="-1" /> + <constructor-arg ref="oxmModelProcessorSet" /> + </bean> + + <bean id="searchProviderRegistry" + class="org.onap.aai.sparky.search.registry.SearchProviderRegistry" /> + + <bean id="sparkyResourceLoader" class="org.onap.aai.sparky.config.SparkyResourceLoader"> + <property name="configHomeEnvVar" value="CONFIG_HOME" /> + </bean> + + <bean id="filterElasticSearchAdapter" + class="org.onap.aai.sparky.search.filters.FilterElasticSearchAdapter"> + <constructor-arg ref="elasticSearchAdapter" /> + </bean> + + <bean id="filteredSearchHelper" class="org.onap.aai.sparky.search.filters.FilteredSearchHelper" > + <constructor-arg ref="filtersConfig" /> + <constructor-arg ref="filterElasticSearchAdapter" /> + </bean> + + <bean id="filterProcessor" class="org.onap.aai.sparky.search.filters.FilterProcessor" > + <property name="filteredSearchHelper" ref="filteredSearchHelper" /> + </bean> + + <bean id="unifiedSearchProcessor" class="org.onap.aai.sparky.search.UnifiedSearchProcessor"> + <property name="searchProviderRegistry" ref="searchProviderRegistry" /> + </bean> + + <bean id="entityCountHistoryProcessor" class="org.onap.aai.sparky.search.EntityCountHistoryProcessor"> + <constructor-arg ref="elasticSearchAdapter" /> + <constructor-arg name="entityTypesToSummarizeDelimitedList" + value="customer,service-instance,complex,pserver,vserver,vnf" /> + <constructor-arg name="vnfEntityTypesDelimitedList" + value="vnf,newvce,vce,vpe" /> + <constructor-arg name="entityCountHistoryIndexName" + value="entitycounthistoryindex" /> + </bean> + + <bean id="attributeUpdater" + class="org.onap.aai.sparky.editattributes.AttributeUpdater"> + <constructor-arg ref="oxmModelLoader" /> + <constructor-arg ref="oxmEntityLookup" /> + <constructor-arg ref="activeInventoryAdapter" /> + </bean> + + <bean id="attributeEditProcessor" + class="org.onap.aai.sparky.editattributes.AttributeEditProcessor"> + <constructor-arg ref="attributeUpdater" /> + </bean> + + <bean id="geoVisualizationProcessor" class="org.onap.aai.sparky.inventory.GeoVisualizationProcessor"> + <constructor-arg ref="elasticSearchAdapter" /> + <constructor-arg name="topographicalSearchIndexName" + value="topographicalsearchindex" /> + </bean> + + <bean id = "pairingHashMap" class="org.springframework.beans.factory.config.MapFactoryBean"> + <property name="targetMapClass"> + <value>java.util.HashMap</value> + </property> + <property name="sourceMap"> + <map key-type="java.lang.String" value-type="java.lang.String" > + <entry key="volume-group-id" value="called" /> + <entry key="volume-group-name" value="called" /> + <entry key="physical-location-id" value="called" /> + <entry key="data-center-code" value="called" /> + <entry key="complex-name" value="called" /> + <entry key="tenant-id" value="called" /> + <entry key="tenant-name" value="called" /> + <entry key="vserver-id" value="called" /> + <entry key="vserver-name" value="called" /> + <entry key="vserver-name2" value="called" /> + <entry key="hostname" value="called" /> + <entry key="pserver-name2" value="called" /> + <entry key="pserver-id" value="called" /> + <entry key="global-customer-id" value="called" /> + <entry key="subscriber-name" value="called" /> + <entry key="service-instance-id" value="called" /> + <entry key="service-instance-name" value="called" /> + <entry key="link-name" value="called" /> + <entry key="vpn-id" value="called" /> + <entry key="vpn-name" value="called" /> + <entry key="vpe-id" value="called" /> + <entry key="vnf-id" value="called" /> + <entry key="vnf-name" value="called" /> + <entry key="vnf-name2" value="called" /> + <entry key="vnfc-name" value="called" /> + <entry key="network-id" value="called" /> + <entry key="network-name" value="called" /> + <entry key="network-policy-id" value="called" /> + <entry key="vf-module-id" value="called" /> + <entry key="vf-module-name" value="called" /> + <entry key="vnf-id2" value="called" /> + <entry key="pnf-name" value="called" /> + <entry key="circuit-id" value="called" /> + <entry key="id" value="called" /> + <entry key="group-id" value="called" /> + <entry key="group-name" value="called" /> + <entry key="street1" value="at" /> + <entry key="street2" value="at" /> + <entry key="code" value="at" /> + <entry key="ipv4-oam-address" value="at" /> + <entry key="network-policy-fqdn" value="at" /> + </map> + </property> + </bean> + + <bean id="suggestiveSearchConfigs" class="org.onap.aai.sparky.search.config.SuggestionConfig"> + <property name="defaultPairingValue" value="with" /> + <property name="pairingList" ref="pairingHashMap"></property> + <property name="stopWords"> + <list value-type="java.lang.String"> + <value>a</value> + <value>an</value> + <value>and</value> + <value>are</value> + <value>as</value> + <value>at</value> + <value>be</value> + <value>but</value> + <value>by</value> + <value>called</value> + <value>for</value> + <value>if</value> + <value>in</value> + <value>into</value> + <value>is</value> + <value>it</value> + <value>no</value> + <value>not</value> + <value>of</value> + <value>on</value> + <value>or</value> + <value>such</value> + <value>that</value> + <value>the</value> + <value>their</value> + <value>then</value> + <value>there</value> + <value>these</value> + <value>they</value> + <value>this</value> + <value>to</value> + <value>was</value> + <value>will</value> + <value>with</value> + </list> + </property> + + </bean> + + <bean id="subscriptionConfig" + class="org.onap.aai.sparky.subscription.config.SubscriptionConfig"> + <property name="subscriptionTarget" value="" /> + <property name="subscriptionOrigin" value="" /> + <property name="subscriptionMessageType" value="" /> + <property name="subscriptionTopic" value="" /> + <property name="launchOITarget" value="" /> + <property name="launchOIOrigin" value="" /> + <property name="launchOIMessageType" value="" /> + <property name="launchOITopic" value="" /> + <property name="annEntitiyTypes"> + <list value-type="java.lang.String"> + <value>pserver</value> + <value>pnf</value> + </list> + </property> + <property name="isLaunchOIEnabled" value="false" /> + </bean> + + <bean id="subscriptionService" + class="org.onap.aai.sparky.subscription.services.SubscriptionService"> + <constructor-arg ref="subscriptionConfig" /> + </bean> + + <bean id="subscriptionServiceProcessor" + class="org.onap.aai.sparky.subscription.SubscriptionServiceProcessor"> + <constructor-arg ref="subscriptionService" /> + </bean> +</beans> diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/suggestive-search.properties b/kubernetes/aai/charts/aai-sparky-be/resources/config/suggestive-search.properties deleted file mode 100644 index b82baffc14..0000000000 --- a/kubernetes/aai/charts/aai-sparky-be/resources/config/suggestive-search.properties +++ /dev/null @@ -1,27 +0,0 @@ -###################################################################################### -############################## Suggestive Search Config ############################## -###################################################################################### - -# Indexes to be taken into account when generating suggestion entries -suggestion.indexes=elasticsearch.autosuggestIndexname,elasticsearch.indexName -# List of stop words to be used during suggestive search -suggestion.stopwords=a,an,and,are,as,at,be,but,by,called,for,if,in,into,is,it,no,not,of,on,or,such,that,the,their,then,there,these,they,this,to,was,will,with -# Assigns which class, within sparky, will process the searches related to an assosiated index -suggestion.routing=elasticsearch.autosuggestIndexname:SearchServiceWrapper,elasticsearch.indexName:VnfSearchService - -############################## Pairings ############################## -# -# "called" pairings, keys reference types within the OXM, and the value -# is the suggestion term used for matches with any of the "called" keys. -# e.g. "x called vserver-id" (but actual value of vserver-id) -suggestion.pairing.called.key=volume-group-id,volume-group-name,physical-location-id,data-center-code,complex-name,tenant-id,tenant-name,vserver-id,vserver-name,vserver-name2,hostname,pserver-name2,pserver-id,global-customer-id,subscriber-name,service-instance-id,service-instance-name,link-name,vpn-id,vpn-name,vpe-id,vnf-id,vnf-name,vnf-name2,vnfc-name,network-id,network-name,network-policy-id,vf-module-id,vf-module-name,vnf-id2,pnf-name,circuit-id -suggestion.pairing.called.value=called -# -# Exact same explanation as the "called" pairings above. -# e.g. "x at ipv4-oam-address" -suggestion.pairing.at.key=street1,street2,postal-code,ipv4-oam-address,network-policy-fqdn -suggestion.pairing.at.value=at -# -# Default pairing values for any OXM types that aren't part of the the other -# pairing lists. -suggestion.pairing.default.value=with
\ No newline at end of file diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/synchronizer.properties b/kubernetes/aai/charts/aai-sparky-be/resources/config/synchronizer.properties deleted file mode 100644 index 0b84f06abe..0000000000 --- a/kubernetes/aai/charts/aai-sparky-be/resources/config/synchronizer.properties +++ /dev/null @@ -1,33 +0,0 @@ -############################################################################################## -############################## ElasticSearchSynchronizer Config ############################## -############################################################################################## - -# Initial delay on startup before starting synchronization tasks -synchronizer.syncTask.initialDelayInMs=60000 -# The frequency at which the synchronizationtask will be run -synchronizer.syncTask.taskFrequencyInDay=2 - -# Time at which to run synchronization. Format = hh:mm:ss UTC(-/+)hh:mm -synchronizer.syncTask.startTimestamp=05:00:00 UTC+00:00 - -# Generates a count in elasticsearch related to inventory -synchronizer.historicalEntitySummarizerEnabled=true -# Toggles the suggestion synchronizer -synchronizer.autosuggestSynchronizationEnabled=true -# Frequency at which above count is generated -synchronizer.historicalEntitySummarizedFrequencyInMinutes=60 - -# Elasticsearch scroll api context keep alive value -synchronizer.scrollContextTimeToLiveInMinutes=5 -# Elasticsearch scroll api context max items per batch request -synchronizer.numScrollContextItemsToRetrievePerRequest=5000 - - -############################## Deprecated, to be removed or updated ############################## -synchronizer.resolver.progressLogFrequencyInMs=60000 -synchronizer.resolver.queueMonitorFrequencyInMs=1000 -synchronizer.resolver.displayVerboseQueueManagerStats=false -synchronizer.indexIntegrityValidator.enabled=false -synchronizer.indexIntegrityValidatorFrequencyInMs=3600000 -synchronizer.suppressResourceNotFoundErrors=true -synchronizer.applyNodesOnlyModifier=false
\ No newline at end of file diff --git a/kubernetes/aai/charts/aai-sparky-be/templates/configmap.yaml b/kubernetes/aai/charts/aai-sparky-be/templates/configmap.yaml index d827c4eb36..1f6ed74029 100644 --- a/kubernetes/aai/charts/aai-sparky-be/templates/configmap.yaml +++ b/kubernetes/aai/charts/aai-sparky-be/templates/configmap.yaml @@ -20,4 +20,53 @@ metadata: name: {{ include "common.fullname" . }}-log namespace: {{ include "common.namespace" . }} data: -{{ tpl (.Files.Glob "resources/config/log/logback.xml").AsConfig . | indent 2 }} +{{ tpl (.Files.Glob "resources/config/log/*").AsConfig . | indent 2 }} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "common.fullname" . }}-camel-rests + namespace: {{ include "common.namespace" . }} +data: +{{ tpl (.Files.Glob "resources/config/camel-rests/*").AsConfig . | indent 2 }} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "common.fullname" . }}-descriptors + namespace: {{ include "common.namespace" . }} +data: +{{ tpl (.Files.Glob "resources/config/descriptors/*").AsConfig . | indent 2 }} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "common.fullname" . }}-filters + namespace: {{ include "common.namespace" . }} +data: +{{ tpl (.Files.Glob "resources/config/filters/*").AsConfig . | indent 2 }} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "common.fullname" . }}-schemas + namespace: {{ include "common.namespace" . }} +data: +{{ tpl (.Files.Glob "resources/config/schemas/*").AsConfig . | indent 2 }} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "common.fullname" . }}-spring-beans + namespace: {{ include "common.namespace" . }} +data: +{{ tpl (.Files.Glob "resources/config/spring-beans/*").AsConfig . | indent 2 }} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "common.fullname" . }}-boot-inf + namespace: {{ include "common.namespace" . }} +data: +{{ tpl (.Files.Glob "resources/config/portal/BOOT-INF/classes/*").AsConfig . | indent 2 }} + diff --git a/kubernetes/aai/charts/aai-sparky-be/templates/deployment.yaml b/kubernetes/aai/charts/aai-sparky-be/templates/deployment.yaml index 05a808e805..424cf1155d 100644 --- a/kubernetes/aai/charts/aai-sparky-be/templates/deployment.yaml +++ b/kubernetes/aai/charts/aai-sparky-be/templates/deployment.yaml @@ -34,77 +34,62 @@ spec: release: {{ .Release.Name }} name: {{ include "common.name" . }} spec: - initContainers: - - name: {{ include "common.name" . }}-inject-models - command: - - /bin/bash - - "-c" - - | - git clone -b {{ .Values.config.gerritBranch }} --single-branch {{ .Values.config.gerritProject }} /tmp/gerrit - cp -rp /tmp/gerrit/data-router/appconfig/model/* /model-dir - image: "{{ .Values.global.repository | default .Values.dockerHubRepository }}/{{ .Values.ubuntuInitImage }}" - imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} - volumeMounts: - - name: modeldir - mountPath: "/model-dir" containers: - name: {{ include "common.name" . }} image: "{{ .Values.global.repository | default .Values.repository }}/{{ .Values.image }}" imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} env: - name: CONFIG_HOME - value: /opt/app/sparky/config/ - - name: KEY_MANAGER_PASSWORD - value: {{ .Values.config.keyManagerPassword }} - - name: KEY_STORE_PASSWORD + value: /opt/app/sparky/appconfig/ + - name: KEYSTORE_ALIAS_PASSWORD + value: {{ .Values.config.keystoreAliasPassword }} + - name: KEYSTORE_PASSWORD value: {{ .Values.config.keyStorePassword }} + - name: SPARKY_SSL_ENABLED + value: 'true' + - name: SPARKY_PORTAL_ENABLED + value: 'false' volumeMounts: - mountPath: /etc/localtime name: localtime readOnly: true - - mountPath: /opt/app/sparky/config/auth/ + - mountPath: /opt/app/sparky/appconfig/auth/ name: {{ include "common.fullname" . }}-auth-config - - mountPath: /opt/app/sparky/config/synchronizer.properties - subPath: synchronizer.properties - name: {{ include "common.fullname" . }}-config - - mountPath: /opt/app/sparky/config/suggestive-search.properties - subPath: suggestive-search.properties - name: {{ include "common.fullname" . }}-config - - mountPath: /opt/app/sparky/config/search-service.properties - subPath: search-service.properties - name: {{ include "common.fullname" . }}-config - - mountPath: /opt/app/sparky/config/roles.config - subPath: roles.config + - mountPath: /opt/app/sparky/appconfig/camel-rests/ + name: {{ include "common.fullname" . }}-camel-rests-config + - mountPath: /opt/app/sparky/appconfig/descriptors/ + name: {{ include "common.fullname" . }}-descriptors-config + - mountPath: /opt/app/sparky/appconfig/filters/ + name: {{ include "common.fullname" . }}-filters-config + - mountPath: /opt/app/sparky/appconfig/ name: {{ include "common.fullname" . }}-config - - mountPath: /opt/app/sparky/config/elasticsearch.properties - subPath: elasticsearch.properties - name: {{ include "common.fullname" . }}-config - - mountPath: /opt/app/sparky/config/aai.properties - subPath: aai.properties - name: {{ include "common.fullname" . }}-config - - mountPath: /opt/app/sparky/config/portal/ + - mountPath: /opt/app/sparky/appconfig/portal name: {{ include "common.fullname" . }}-portal-config + - mountPath: /opt/app/sparky/appconfig/portal/BOOT-INF/classes + name: {{ include "common.fullname" . }}-portal-boot-inf-config + - mountPath: /opt/app/sparky/appconfig/schemas + name: {{ include "common.fullname" . }}-schemas-config + - mountPath: /opt/app/sparky/appconfig/spring-beans/ + name: {{ include "common.fullname" . }}-spring-beans-config - mountPath: /var/log/onap name: {{ include "common.fullname" . }}-logs - - mountPath: /opt/app/sparky/bundleconfig/etc/logback.xml + - mountPath: /opt/app/sparky/appconfig/logging/ name: {{ include "common.fullname" . }}-log-conf - subPath: logback.xml - - name: modeldir - mountPath: /opt/app/sparky/config/model ports: - containerPort: {{ .Values.service.internalPort }} + - containerPort: {{ .Values.service.internalPort2 }} # 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 }} + port: {{ .Values.service.internalPort2 }} initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }} periodSeconds: {{ .Values.liveness.periodSeconds }} {{ end -}} readinessProbe: tcpSocket: - port: {{ .Values.service.internalPort }} + port: {{ .Values.service.internalPort2 }} initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }} periodSeconds: {{ .Values.readiness.periodSeconds }} resources: @@ -138,12 +123,30 @@ spec: - name: {{ include "common.fullname" . }}-config configMap: name: {{ include "common.fullname" . }} - - name: {{ include "common.fullname" . }}-portal-config - configMap: - name: {{ include "common.fullname" . }}-portal - name: {{ include "common.fullname" . }}-auth-config secret: secretName: {{ include "common.fullname" . }} + - name: {{ include "common.fullname" . }}-camel-rests-config + configMap: + name: {{ include "common.fullname" . }}-camel-rests + - name: {{ include "common.fullname" . }}-descriptors-config + configMap: + name: {{ include "common.fullname" . }}-descriptors + - name: {{ include "common.fullname" . }}-filters-config + configMap: + name: {{ include "common.fullname" . }}-filters + - name: {{ include "common.fullname" . }}-portal-config + configMap: + name: {{ include "common.fullname" . }}-portal + - name: {{ include "common.fullname" . }}-portal-boot-inf-config + configMap: + name: {{ include "common.fullname" . }}-boot-inf + - name: {{ include "common.fullname" . }}-schemas-config + configMap: + name: {{ include "common.fullname" . }}-schemas + - name: {{ include "common.fullname" . }}-spring-beans-config + configMap: + name: {{ include "common.fullname" . }}-spring-beans - name: filebeat-conf configMap: name: aai-filebeat @@ -153,9 +156,7 @@ spec: emptyDir: {} - name: {{ include "common.fullname" . }}-log-conf configMap: - name: {{ include "common.fullname" . }}-log - - name: modeldir - emptyDir: {} + name: {{ include "common.fullname" . }}-log restartPolicy: {{ .Values.global.restartPolicy | default .Values.restartPolicy }} imagePullSecrets: - name: "{{ include "common.namespace" . }}-docker-registry-key" diff --git a/kubernetes/aai/charts/aai-sparky-be/templates/service.yaml b/kubernetes/aai/charts/aai-sparky-be/templates/service.yaml index 41bc163696..e97935aedd 100644 --- a/kubernetes/aai/charts/aai-sparky-be/templates/service.yaml +++ b/kubernetes/aai/charts/aai-sparky-be/templates/service.yaml @@ -1,7 +1,7 @@ apiVersion: v1 kind: Service metadata: - name: {{ include "common.name" . }} + name: {{ include "common.servicename" . }} namespace: {{ include "common.namespace" . }} labels: app: {{ include "common.name" . }} diff --git a/kubernetes/aai/charts/aai-sparky-be/values.yaml b/kubernetes/aai/charts/aai-sparky-be/values.yaml index df058a4af2..5c97bdb6eb 100644 --- a/kubernetes/aai/charts/aai-sparky-be/values.yaml +++ b/kubernetes/aai/charts/aai-sparky-be/values.yaml @@ -4,11 +4,18 @@ global: # global defaults nodePortPrefix: 302 repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ== - + aai: + serviceName: aai-aai + aaiElasticsearch: + serviceName: aai-elasticsearch + gizmo: + serviceName: aai-gizmo + searchData: + serviceName: aai-search-data # application image repository: nexus3.onap.org:10001 -image: onap/sparky-be:v1.1.0 +image: onap/sparky-be:1.2-STAGING-latest pullPolicy: Always restartPolicy: Always @@ -18,10 +25,17 @@ ubuntuInitImage: oomk8s/ubuntu-init:2.0.0 config: elasticsearchHttpPort: 9200 keyStorePassword: OBF:1i9a1u2a1unz1lr61wn51wn11lss1unz1u301i6o - keyManagerPassword: OBF:1i9a1u2a1unz1lr61wn51wn11lss1unz1u301i6o + keystoreAliasPassword: OBF:1i9a1u2a1unz1lr61wn51wn11lss1unz1u301i6o gerritBranch: master gerritProject: http://gerrit.onap.org/r/aai/test-config + portalUsername: aaiui + portalPassword: 1t2v1vfv1unz1vgz1t3b +# ONAP Cookie Processing - During initial development, the following flag, if true, will +# prevent the portal interface's login processing from searching for a user +# specific cookie, and will instead allow passage if a valid session cookie is discovered. + portalOnapEnabled: true +# # override chart name (sparky-be) to share a common namespace # suffix with parent chart (aai) @@ -51,6 +65,7 @@ service: type: ClusterIP name: aai-sparky-be internalPort: 9517 + internalPort2: 8000 ingress: enabled: false diff --git a/kubernetes/aai/values.yaml b/kubernetes/aai/values.yaml index 5d08268e88..e8798186ed 100644 --- a/kubernetes/aai/values.yaml +++ b/kubernetes/aai/values.yaml @@ -27,7 +27,33 @@ global: # global defaults loggingImage: beats/filebeat:5.5.0 restartPolicy: Always cassandra: + serviceName: aai-cassandra replicas: 3 + aai: + serviceName: aai-aai + babel: + serviceName: aai-babel + champ: + serviceName: aai-champ + aaiElasticsearch: + serviceName: aai-elasticsearch + hbase: + serviceName: aai-hbase + resources: + serviceName: aai-resources + sparkyBe: + serviceName: aai-sparky-be + dataRouter: + serviceName: aai-data-router + gizmo: + serviceName: aai-gizmo + modelloader: + serviceName: aai-modelloader + searchData: + serviceName: aai-search-data + traversal: + serviceName: aai-traversal + # application image dockerhubRepository: registry.hub.docker.com diff --git a/kubernetes/appc/resources/config/appc/opt/onap/appc/bin/installAppcDb.sh b/kubernetes/appc/resources/config/appc/opt/onap/appc/bin/installAppcDb.sh index f260f3d84a..abc293572b 100755 --- a/kubernetes/appc/resources/config/appc/opt/onap/appc/bin/installAppcDb.sh +++ b/kubernetes/appc/resources/config/appc/opt/onap/appc/bin/installAppcDb.sh @@ -18,8 +18,8 @@ # ============LICENSE_END========================================================= ### -SDNC_HOME=${SDNC_HOME:-/opt/onap/sdnc} -APPC_HOME=${APPC_HOME:-/opt/openecomp/appc} +SDNC_HOME=${SDNC_HOME:-/opt/onap/ccsdk} +APPC_HOME=${APPC_HOME:-/opt/onap/appc} MYSQL_PASSWD=${MYSQL_PASSWD:-{{.Values.config.dbRootPassword}}} APPC_DB_USER=${APPC_DB_USER:-appcctl} diff --git a/kubernetes/appc/resources/config/appc/opt/onap/appc/bin/startODL.sh b/kubernetes/appc/resources/config/appc/opt/onap/appc/bin/startODL.sh index e5f04ca5e2..e13193f364 100755 --- a/kubernetes/appc/resources/config/appc/opt/onap/appc/bin/startODL.sh +++ b/kubernetes/appc/resources/config/appc/opt/onap/appc/bin/startODL.sh @@ -32,10 +32,6 @@ function enable_odl_cluster(){ exit fi - echo "Installing Opendaylight cluster features" - ${ODL_HOME}/bin/client feature:install odl-mdsal-clustering - ${ODL_HOME}/bin/client feature:install odl-jolokia - echo "Update cluster information statically" hm=$(hostname) echo "Get current Hostname ${hm}" @@ -99,6 +95,9 @@ then echo "Installing APPC database" ${APPC_HOME}/bin/installAppcDb.sh + echo "Installing ODL Host Key" + ${SDNC_HOME}/bin/installOdlHostKey.sh + echo "Starting OpenDaylight" ${ODL_HOME}/bin/start @@ -108,7 +107,7 @@ then echo "Copying a working version of the logging configuration into the opendaylight etc folder" cp ${APPC_HOME}/data/org.ops4j.pax.logging.cfg ${ODL_HOME}/etc/org.ops4j.pax.logging.cfg echo "Copying a new version of aaf cadi shiro into the opendaylight deploy folder" - cp ${APPC_HOME}/data/aaf-cadi-shiro.jar ${ODL_HOME}/deploy/aaf-cadi-shiro.jar + cp ${APPC_HOME}/data/aaf-shiro-aafrealm-osgi-bundle.jar ${ODL_HOME}/deploy/aaf-shiro-aafrealm-osgi-bundle.jar echo "Installing SDNC platform features" ${SDNC_HOME}/bin/installFeatures.sh @@ -119,6 +118,8 @@ then ${SDNC_HOME}/svclogic/bin/install.sh fi + if $ENABLE_ODL_CLUSTER ; then echo "Installing Opendaylight cluster features" ; ${ODL_HOME}/bin/client feature:install odl-mdsal-clustering ; ${ODL_HOME}/bin/client feature:install odl-jolokia ; fi + echo "Installing APPC platform features" ${APPC_HOME}/bin/installFeatures.sh @@ -141,13 +142,31 @@ then echo "cadi_prop_files=${APPC_HOME}/data/properties/cadi.properties" >> ${ODL_HOME}/etc/system.properties echo "" >> ${ODL_HOME}/etc/system.properties - echo "Copying a working version of the shiro configuration into the opendaylight etc folder" - cp ${APPC_HOME}/data/shiro.ini ${ODL_HOME}/etc/shiro.ini + echo "Copying the aaa shiro configuration into opendaylight" + cp ${APPC_HOME}/data/aaa-app-config.xml ${ODL_HOME}/etc/opendaylight/datastore/initial/config/aaa-app-config.xml + echo "Restarting OpenDaylight" ${ODL_HOME}/bin/stop - echo "Waiting 60 seconds for OpenDaylight stop to complete" - sleep 60 + checkRun () { + running=0 + while read a b c d e f g h + do + if [ "$h" == "/bin/sh /opt/opendaylight/current/bin/karaf server" ] + then + running=1 + fi + done < <(ps -eaf) + echo $running + } + + while [ $( checkRun ) == 1 ] + do + echo "Karaf is still running, waiting..." + sleep 5s + done + echo "Karaf process has stopped" + sleep 10s echo "Installed at `date`" > ${SDNC_HOME}/.installed fi diff --git a/kubernetes/appc/resources/config/appc/opt/onap/appc/data/properties/aaiclient.properties b/kubernetes/appc/resources/config/appc/opt/onap/appc/data/properties/aaiclient.properties index b2f7102d8c..a91c399933 100644 --- a/kubernetes/appc/resources/config/appc/opt/onap/appc/data/properties/aaiclient.properties +++ b/kubernetes/appc/resources/config/appc/opt/onap/appc/data/properties/aaiclient.properties @@ -25,8 +25,10 @@ # # Certificate keystore and truststore # -org.onap.ccsdk.sli.adaptors.aai.ssl.trust=/opt/openecomp/appc/data/stores/truststore.openecomp.client.jks -org.onap.ccsdk.sli.adaptors.aai.ssl.trust.psswd=adminadmin +org.onap.ccsdk.sli.adaptors.aai.ssl.trust=/opt/onap/appc/data/stores/ONAPall.p12 +org.onap.ccsdk.sli.adaptors.aai.ssl.trust.psswd=changeit +org.onap.ccsdk.sli.adaptors.aai.ssl.key=/opt/onap/appc/data/stores/ONAPall.p12 +org.onap.ccsdk.sli.adaptors.aai.ssl.key.psswd=changeit org.onap.ccsdk.sli.adaptors.aai.host.certificate.ignore=true org.onap.ccsdk.sli.adaptors.aai.client.name=AAI @@ -39,106 +41,105 @@ org.onap.ccsdk.sli.adaptors.aai.application=openECOMP # # Configuration file for A&AI Client # -org.onap.ccsdk.sli.adaptors.aai.uri=https://aai-service.{{.Release.Namespace}}:8443 - +org.onap.ccsdk.sli.adaptors.aai.uri=https://aai.{{.Release.Namespace}}:8443 # query -org.onap.ccsdk.sli.adaptors.aai.path.query=/aai/v11/search/sdn-zone-query -org.onap.ccsdk.sli.adaptors.aai.query.nodes=/aai/v11/search/nodes-query?search-node-type={node-type}&filter={entity-identifier}:EQUALS:{entity-name} -org.onap.ccsdk.sli.adaptors.aai.query.generic=/aai/v11/search/generic-query?key={identifier}:{value}&start-node-type={start-node-type}&include=complex&depth=3 +org.onap.ccsdk.sli.adaptors.aai.path.query=/aai/v13/search/sdn-zone-query +org.onap.ccsdk.sli.adaptors.aai.query.nodes=/aai/v13/search/nodes-query?search-node-type={node-type}&filter={entity-identifier}:EQUALS:{entity-name} +org.onap.ccsdk.sli.adaptors.aai.query.generic=/aai/v13/search/generic-query?key={identifier}:{value}&start-node-type={start-node-type}&include=complex&depth=3 # named query org.onap.ccsdk.sli.adaptors.aai.query.named=/aai/search/named-query #update -org.onap.ccsdk.sli.adaptors.aai.update=/aai/v11/actions/update +org.onap.ccsdk.sli.adaptors.aai.update=/aai/v13/actions/update # vce -org.onap.ccsdk.sli.adaptors.aai.path.vce =/aai/v11/network/vces/vce/ -org.onap.ccsdk.sli.adaptors.aai.path.vces=/aai/v11/network/vces/ +org.onap.ccsdk.sli.adaptors.aai.path.vce =/aai/v13/network/vces/vce/ +org.onap.ccsdk.sli.adaptors.aai.path.vces=/aai/v13/network/vces/ # vpe -org.onap.ccsdk.sli.adaptors.aai.path.vpe =/aai/v11/network/vpes/vpe/ -org.onap.ccsdk.sli.adaptors.aai.path.vpes=/aai/v11/network/vpes/ +org.onap.ccsdk.sli.adaptors.aai.path.vpe =/aai/v13/network/vpes/vpe/ +org.onap.ccsdk.sli.adaptors.aai.path.vpes=/aai/v13/network/vpes/ # customer -org.onap.ccsdk.sli.adaptors.aai.path.customer=/aai/v11/business/customers/customer/{customer-id} +org.onap.ccsdk.sli.adaptors.aai.path.customer=/aai/v13/business/customers/customer/{customer-id} # service subscription -org.onap.ccsdk.sli.adaptors.aai.path.service.subscription=/aai/v11/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type} +org.onap.ccsdk.sli.adaptors.aai.path.service.subscription=/aai/v13/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type} # service instance -org.onap.ccsdk.sli.adaptors.aai.path.svcinst=/aai/v11/business/customers/customer/{customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances -org.onap.ccsdk.sli.adaptors.aai.path.svcinst.query=/aai/v11/search/generic-query?key=service-instance.service-instance-id:{svc-instance-id}&start-node-type=service-instance&include=service-instance -org.onap.ccsdk.sli.adaptors.aai.path.service.instance=/aai/v11/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id} +org.onap.ccsdk.sli.adaptors.aai.path.svcinst=/aai/v13/business/customers/customer/{customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances +org.onap.ccsdk.sli.adaptors.aai.path.svcinst.query=/aai/v13/search/generic-query?key=service-instance.service-instance-id:{svc-instance-id}&start-node-type=service-instance&include=service-instance +org.onap.ccsdk.sli.adaptors.aai.path.service.instance=/aai/v13/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id} # complex -org.onap.ccsdk.sli.adaptors.aai.path.complexes=/aai/v11/cloud-infrastructure/complexes -org.onap.ccsdk.sli.adaptors.aai.path.complex=/aai/v11/cloud-infrastructure/complexes/complex/{physical-location-id} +org.onap.ccsdk.sli.adaptors.aai.path.complexes=/aai/v13/cloud-infrastructure/complexes +org.onap.ccsdk.sli.adaptors.aai.path.complex=/aai/v13/cloud-infrastructure/complexes/complex/{physical-location-id} # tenant -org.onap.ccsdk.sli.adaptors.aai.path.tenant=/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id} -org.onap.ccsdk.sli.adaptors.aai.path.tenant.query=/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant?tenant-name={tenant-name} +org.onap.ccsdk.sli.adaptors.aai.path.tenant=/aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id} +org.onap.ccsdk.sli.adaptors.aai.path.tenant.query=/aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant?tenant-name={tenant-name} # vservers -org.onap.ccsdk.sli.adaptors.aai.path.vservers=/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/ -org.onap.ccsdk.sli.adaptors.aai.path.vserver=/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id} +org.onap.ccsdk.sli.adaptors.aai.path.vservers=/aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/ +org.onap.ccsdk.sli.adaptors.aai.path.vserver=/aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id} # vpls-pe -org.onap.ccsdk.sli.adaptors.aai.path.vpls.pes=/aai/v11/network/vpls-pes/ -org.onap.ccsdk.sli.adaptors.aai.path.vpls.pe =/aai/v11/network/vpls-pes/vpls-pe/ +org.onap.ccsdk.sli.adaptors.aai.path.vpls.pes=/aai/v13/network/vpls-pes/ +org.onap.ccsdk.sli.adaptors.aai.path.vpls.pe =/aai/v13/network/vpls-pes/vpls-pe/ # ctag-pool -org.onap.ccsdk.sli.adaptors.aai.path.ctag.pools=/aai/v11/cloud-infrastructure/complexes/complex/{physical-location-id}/ctag-pools -org.onap.ccsdk.sli.adaptors.aai.path.ctag.pool=/aai/v11/cloud-infrastructure/complexes/complex/{physical-location-id}/ctag-pools/ctag-pool/{target-pe}/{availability-zone-name} +org.onap.ccsdk.sli.adaptors.aai.path.ctag.pools=/aai/v13/cloud-infrastructure/complexes/complex/{physical-location-id}/ctag-pools +org.onap.ccsdk.sli.adaptors.aai.path.ctag.pool=/aai/v13/cloud-infrastructure/complexes/complex/{physical-location-id}/ctag-pools/ctag-pool/{target-pe}/{availability-zone-name} # #-------------- 1510 ---------------------- # # pservers -org.onap.ccsdk.sli.adaptors.aai.path.pservers=/aai/v11/cloud-infrastructure/pservers -org.onap.ccsdk.sli.adaptors.aai.path.pserver=/aai/v11/cloud-infrastructure/pservers/pserver/{hostname} +org.onap.ccsdk.sli.adaptors.aai.path.pservers=/aai/v13/cloud-infrastructure/pservers +org.onap.ccsdk.sli.adaptors.aai.path.pserver=/aai/v13/cloud-infrastructure/pservers/pserver/{hostname} # generic-vnf -org.onap.ccsdk.sli.adaptors.aai.path.generic.vnfs=/aai/v11/network/generic-vnfs -org.onap.ccsdk.sli.adaptors.aai.path.generic.vnf=/aai/v11/network/generic-vnfs/generic-vnf/{vnf-id} +org.onap.ccsdk.sli.adaptors.aai.path.generic.vnfs=/aai/v13/network/generic-vnfs +org.onap.ccsdk.sli.adaptors.aai.path.generic.vnf=/aai/v13/network/generic-vnfs/generic-vnf/{vnf-id} # dvs-switch -org.onap.ccsdk.sli.adaptors.aai.path.dvsswitches=/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/dvs-switches -org.onap.ccsdk.sli.adaptors.aai.path.dvsswitch=/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/dvs-switches/dvs-switch/{switch-name} +org.onap.ccsdk.sli.adaptors.aai.path.dvsswitches=/aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/dvs-switches +org.onap.ccsdk.sli.adaptors.aai.path.dvsswitch=/aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/dvs-switches/dvs-switch/{switch-name} # L3 Networks -org.onap.ccsdk.sli.adaptors.aai.path.l3networks=/aai/v11/network/l3-networks -org.onap.ccsdk.sli.adaptors.aai.path.l3network=/aai/v11/network/l3-networks/l3-network/{network-id} -org.onap.ccsdk.sli.adaptors.aai.path.l3network.query.name=/aai/v11/network/l3-networks/l3-network?network-name={network-name} +org.onap.ccsdk.sli.adaptors.aai.path.l3networks=/aai/v13/network/l3-networks +org.onap.ccsdk.sli.adaptors.aai.path.l3network=/aai/v13/network/l3-networks/l3-network/{network-id} +org.onap.ccsdk.sli.adaptors.aai.path.l3network.query.name=/aai/v13/network/l3-networks/l3-network?network-name={network-name} # P-Interfaces -org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterfaces=/aai/v11/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces -org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface=/aai/v11/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name} +org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterfaces=/aai/v13/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces +org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface=/aai/v13/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name} # Physical Link -org.onap.ccsdk.sli.adaptors.aai.path.physical.links=/aai/v11/network/physical-links -org.onap.ccsdk.sli.adaptors.aai.path.physical.link=/aai/v11/network/physical-links/physical-link/{link-name} +org.onap.ccsdk.sli.adaptors.aai.path.physical.links=/aai/v13/network/physical-links +org.onap.ccsdk.sli.adaptors.aai.path.physical.link=/aai/v13/network/physical-links/physical-link/{link-name} # VPN Bindings -org.onap.ccsdk.sli.adaptors.aai.path.vpn.bindings=/aai/v11/network/vpn-bindings/ -org.onap.ccsdk.sli.adaptors.aai.path.vpn.binding=/aai/v11/network/vpn-bindings/vpn-binding/{vpn-id} +org.onap.ccsdk.sli.adaptors.aai.path.vpn.bindings=/aai/v13/network/vpn-bindings/ +org.onap.ccsdk.sli.adaptors.aai.path.vpn.binding=/aai/v13/network/vpn-bindings/vpn-binding/{vpn-id} # VNF IMAGES -org.onap.ccsdk.sli.adaptors.aai.path.vnf.images=/aai/v11/service-design-and-creation/vnf-images -org.onap.ccsdk.sli.adaptors.aai.path.vnf.image=/aai/v11/service-design-and-creation/vnf-images/vnf-image/{att-uuid} -org.onap.ccsdk.sli.adaptors.aai.path.vnf.image.query=/aai/v11/service-design-and-creation/vnf-images/vnf-image?application={application_model}&application-vendor={application_vendor} +org.onap.ccsdk.sli.adaptors.aai.path.vnf.images=/aai/v13/service-design-and-creation/vnf-images +org.onap.ccsdk.sli.adaptors.aai.path.vnf.image=/aai/v13/service-design-and-creation/vnf-images/vnf-image/{att-uuid} +org.onap.ccsdk.sli.adaptors.aai.path.vnf.image.query=/aai/v13/service-design-and-creation/vnf-images/vnf-image?application={application_model}&application-vendor={application_vendor} # UBB Notify -org.onap.ccsdk.sli.adaptors.aai.path.notify=/aai/v11/actions/notify +org.onap.ccsdk.sli.adaptors.aai.path.notify=/aai/v13/actions/notify org.onap.ccsdk.sli.adaptors.aai.notify.selflink.fqdn=https://aai-service.{{.Release.Namespace}}:8443/restconf/config/L3SDN-API:services/layer3-service-list/{service-instance-id} org.onap.ccsdk.sli.adaptors.aai.notify.selflink.avpn=https://aai-service.{{.Release.Namespace}}:8443/restconf/config/L3AVPN-EVC-API:services/service-list/{service-instance-id}/service-data/avpn-logicalchannel-information # Service -org.onap.ccsdk.sli.adaptors.aai.path.service=/aai/v11/service-design-and-creation/services/service/{service-id} -org.onap.ccsdk.sli.adaptors.aai.path.services=/aai/v11/service-design-and-creation/services +org.onap.ccsdk.sli.adaptors.aai.path.service=/aai/v13/service-design-and-creation/services/service/{service-id} +org.onap.ccsdk.sli.adaptors.aai.path.services=/aai/v13/service-design-and-creation/services # @@ -146,98 +147,98 @@ org.onap.ccsdk.sli.adaptors.aai.path.services=/aai/v11/service-design-and-creati # # VNFC -org.onap.ccsdk.sli.adaptors.aai.path.vnfc=/aai/v11/network/vnfcs/vnfc/{vnfc-name} +org.onap.ccsdk.sli.adaptors.aai.path.vnfc=/aai/v13/network/vnfcs/vnfc/{vnfc-name} # class-of-service -org.onap.ccsdk.sli.adaptors.aai.path.class.of.service=/aai/v11/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id}/site-pairs/site-pair/{site-pair-id}/classes-of-service/class-of-service/{cos-id} +org.onap.ccsdk.sli.adaptors.aai.path.class.of.service=/aai/v13/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id}/site-pairs/site-pair/{site-pair-id}/classes-of-service/class-of-service/{cos-id} # site-pair -org.onap.ccsdk.sli.adaptors.aai.path.site.pair=/aai/v11/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id}/site-pairs/site-pair/{site-pair-id} +org.onap.ccsdk.sli.adaptors.aai.path.site.pair=/aai/v13/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id}/site-pairs/site-pair/{site-pair-id} # routing-instance -org.onap.ccsdk.sli.adaptors.aai.path.routing.instance=/aai/v11/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id} +org.onap.ccsdk.sli.adaptors.aai.path.routing.instance=/aai/v13/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id} # site-pair-set -org.onap.ccsdk.sli.adaptors.aai.path.site.pair.set=/aai/v11/network/site-pair-sets/site-pair-set/{site-pair-set-id} +org.onap.ccsdk.sli.adaptors.aai.path.site.pair.set=/aai/v13/network/site-pair-sets/site-pair-set/{site-pair-set-id} # license key resource -org.onap.ccsdk.sli.adaptors.aai.path.license.acquire=/aai/v11/actions/assignment/license-management/assignment-group-uuid/{assignment-group-uuid} -org.onap.ccsdk.sli.adaptors.aai.path.license=/aai/v11/license-management/license-key-resources/license-key-resource/{att-uuid} +org.onap.ccsdk.sli.adaptors.aai.path.license.acquire=/aai/v13/actions/assignment/license-management/assignment-group-uuid/{assignment-group-uuid} +org.onap.ccsdk.sli.adaptors.aai.path.license=/aai/v13/license-management/license-key-resources/license-key-resource/{att-uuid} # logical-link -org.onap.ccsdk.sli.adaptors.aai.path.logical.link =/aai/v11/network/logical-links/logical-link/{link-name} +org.onap.ccsdk.sli.adaptors.aai.path.logical.link =/aai/v13/network/logical-links/logical-link/{link-name} # virtual-data-center -org.onap.ccsdk.sli.adaptors.aai.path.virtual.data.center=/aai/v11/cloud-infrastructure/virtual-data-centers/virtual-data-center/{vdc-id} +org.onap.ccsdk.sli.adaptors.aai.path.virtual.data.center=/aai/v13/cloud-infrastructure/virtual-data-centers/virtual-data-center/{vdc-id} # wan-connector -org.onap.ccsdk.sli.adaptors.aai.path.wan.connector=/aai/v11/business/connectors/connector/{resource-instance-id} +org.onap.ccsdk.sli.adaptors.aai.path.wan.connector=/aai/v13/business/connectors/connector/{resource-instance-id} # l-interface -org.onap.ccsdk.sli.adaptors.aai.path.lag.interface.l.interface=/aai/v11/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{lag-interface.interface-name}/l-interfaces/l-interface/{interface-name} -org.onap.ccsdk.sli.adaptors.aai.path.p.interface.l.interface=/aai/v11/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{p-interface.interface-name}/l-interfaces/l-interface/{interface-name} +org.onap.ccsdk.sli.adaptors.aai.path.lag.interface.l.interface=/aai/v13/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{lag-interface.interface-name}/l-interfaces/l-interface/{interface-name} +org.onap.ccsdk.sli.adaptors.aai.path.p.interface.l.interface=/aai/v13/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{p-interface.interface-name}/l-interfaces/l-interface/{interface-name} # l-interface pnf -org.onap.ccsdk.sli.adaptors.aai.path.lag.interface.l.interface.pnf=/aai/v11/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{lag-interface.interface-name}/l-interfaces/l-interface/{interface-name} -org.onap.ccsdk.sli.adaptors.aai.path.p.interface.l.interface.pnf=/aai/v11/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{p-interface.interface-name}/l-interfaces/l-interface/{interface-name} +org.onap.ccsdk.sli.adaptors.aai.path.lag.interface.l.interface.pnf=/aai/v13/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{lag-interface.interface-name}/l-interfaces/l-interface/{interface-name} +org.onap.ccsdk.sli.adaptors.aai.path.p.interface.l.interface.pnf=/aai/v13/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{p-interface.interface-name}/l-interfaces/l-interface/{interface-name} # subinterface -org.onap.ccsdk.sli.adaptors.aai.path.pnf.lag.interface.subinterface=/aai/v11/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{lag-interface.interface-name}/l-interfaces/l-interface/{interface-name} -org.onap.ccsdk.sli.adaptors.aai.path.pnf.p.interface.l.interface=/aai/v11/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{p-interface.interface-name}/l-interfaces/l-interface/{interface-name} +org.onap.ccsdk.sli.adaptors.aai.path.pnf.lag.interface.subinterface=/aai/v13/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{lag-interface.interface-name}/l-interfaces/l-interface/{interface-name} +org.onap.ccsdk.sli.adaptors.aai.path.pnf.p.interface.l.interface=/aai/v13/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{p-interface.interface-name}/l-interfaces/l-interface/{interface-name} # vlans -org.onap.ccsdk.sli.adaptors.aai.path.vlan=/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} -org.onap.ccsdk.sli.adaptors.aai.path.generic.vnf.vlan=/aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} +org.onap.ccsdk.sli.adaptors.aai.path.vlan=/aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} +org.onap.ccsdk.sli.adaptors.aai.path.generic.vnf.vlan=/aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} # l3-interface-ipv4-address-list -org.onap.ccsdk.sli.adaptors.aai.path.l3.interface.ipv4.address.list=/aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -org.onap.ccsdk.sli.adaptors.aai.path.vlan.l3.interface.ipv4.address.list=/aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +org.onap.ccsdk.sli.adaptors.aai.path.l3.interface.ipv4.address.list=/aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +org.onap.ccsdk.sli.adaptors.aai.path.vlan.l3.interface.ipv4.address.list=/aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} # l3-interface-ipv6-address-list -org.onap.ccsdk.sli.adaptors.aai.path.l3.interface.ipv6.address.list=/aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -org.onap.ccsdk.sli.adaptors.aai.path.vlan.l3.interface.ipv6.address.list=/aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +org.onap.ccsdk.sli.adaptors.aai.path.l3.interface.ipv6.address.list=/aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +org.onap.ccsdk.sli.adaptors.aai.path.vlan.l3.interface.ipv6.address.list=/aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} # ipsec-configuration -org.onap.ccsdk.sli.adaptors.aai.path.ipsec.configuration=/aai/v11/network/ipsec-configurations/ipsec-configuration/{ipsec-configuration-id} +org.onap.ccsdk.sli.adaptors.aai.path.ipsec.configuration=/aai/v13/network/ipsec-configurations/ipsec-configuration/{ipsec-configuration-id} # vig server -org.onap.ccsdk.sli.adaptors.aai.path.vig.server=/aai/v11/network/ipsec-configurations/ipsec-configuration/{ipsec-configuration-id}/vig-servers/vig-server/{vig-address-type} +org.onap.ccsdk.sli.adaptors.aai.path.vig.server=/aai/v13/network/ipsec-configurations/ipsec-configuration/{ipsec-configuration-id}/vig-servers/vig-server/{vig-address-type} # l3-network -org.onap.ccsdk.sli.adaptors.aai.path.l3.network=/aai/v11/network/l3-networks/l3-network/{network-id} +org.onap.ccsdk.sli.adaptors.aai.path.l3.network=/aai/v13/network/l3-networks/l3-network/{network-id} # subnet -org.onap.ccsdk.sli.adaptors.aai.path.subnet=/aai/v11/network/l3-networks/l3-network/{network-id}/subnets/subnet/{subnet-id} +org.onap.ccsdk.sli.adaptors.aai.path.subnet=/aai/v13/network/l3-networks/l3-network/{network-id}/subnets/subnet/{subnet-id} # multicast-configuration -org.onap.ccsdk.sli.adaptors.aai.path.multicast.configuration=/aai/v11/network/multicast-configurations/multicast-configuration/{multicast-configuration-id} +org.onap.ccsdk.sli.adaptors.aai.path.multicast.configuration=/aai/v13/network/multicast-configurations/multicast-configuration/{multicast-configuration-id} # org.onap.ccsdk.sli.adaptors.aai.path.l.interface.ipv4.address.list -org.onap.ccsdk.sli.adaptors.aai.path.l3-interface.ipv4.address.list=/aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +org.onap.ccsdk.sli.adaptors.aai.path.l3-interface.ipv4.address.list=/aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} # org.onap.ccsdk.sli.adaptors.aai.path.l.interface.vlan.ipv4.address.list -org.onap.ccsdk.sli.adaptors.aai.path.l3-interface.vlan.ipv4.address.list=/aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +org.onap.ccsdk.sli.adaptors.aai.path.l3-interface.vlan.ipv4.address.list=/aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} # org.onap.ccsdk.sli.adaptors.aai.path.l.interface.ipv6.address.list -org.onap.ccsdk.sli.adaptors.aai.path.l3-interface.ipv6.address.list=/aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +org.onap.ccsdk.sli.adaptors.aai.path.l3-interface.ipv6.address.list=/aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} # volume.group -org.onap.ccsdk.sli.adaptors.aai.path.volume.group=/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/volume-groups/volume-group/{volume-group-id} +org.onap.ccsdk.sli.adaptors.aai.path.volume.group=/aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/volume-groups/volume-group/{volume-group-id} #cloud region -org.onap.ccsdk.sli.adaptors.aai.path.cloud.region=/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id} +org.onap.ccsdk.sli.adaptors.aai.path.cloud.region=/aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id} # vf-module -org.onap.ccsdk.sli.adaptors.aai.path.vf.module=/aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/vf-modules/vf-module/{vf-module-id} +org.onap.ccsdk.sli.adaptors.aai.path.vf.module=/aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/vf-modules/vf-module/{vf-module-id} # l-interface through generic-vnf -org.onap.ccsdk.sli.adaptors.aai.path.generic.vnf.linterface=/aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name} +org.onap.ccsdk.sli.adaptors.aai.path.generic.vnf.linterface=/aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name} # network-policy -org.onap.ccsdk.sli.adaptors.aai.path.network.policy=/aai/v11/network/network-policies/network-policy/{network-policy-id} +org.onap.ccsdk.sli.adaptors.aai.path.network.policy=/aai/v13/network/network-policies/network-policy/{network-policy-id} # pnf -org.onap.ccsdk.sli.adaptors.aai.path.pnf=/aai/v11/network/pnfs/pnf/{pnf-name} +org.onap.ccsdk.sli.adaptors.aai.path.pnf=/aai/v13/network/pnfs/pnf/{pnf-name} # # Formatting diff --git a/kubernetes/appc/resources/config/appc/opt/onap/appc/data/properties/appc.properties b/kubernetes/appc/resources/config/appc/opt/onap/appc/data/properties/appc.properties index 7c73beb5bc..bf41d5b2ed 100644 --- a/kubernetes/appc/resources/config/appc/opt/onap/appc/data/properties/appc.properties +++ b/kubernetes/appc/resources/config/appc/opt/onap/appc/data/properties/appc.properties @@ -53,17 +53,13 @@ org.openecomp.appc.db.pass.sdnctl=gamma ### ### ### OpenStack credentials (these properties also are used in appc-rest-adapter-bundle, appc-chef-adapter-bundle, appc-iaas-adapter-bundle) ### ### ### -provider1.type=OpenStackProvider -provider1.name=OpenStack -provider1.identity=http://localhost:8181/apidoc/explorer/index.html -provider1.tenant1.name=default -provider1.tenant1.domain=default -provider1.tenant1.userid=admin -provider1.tenant1.password=admin - - - - +provider1.type={{.Values.config.openStackType}} +provider1.name={{.Values.config.openStackName}} +provider1.identity={{.Values.config.openStackKeyStoneUrl}} +provider1.tenant1.name={{.Values.config.openStackServiceTenantName}} +provider1.tenant1.domain={{.Values.config.openStackDomain}} +provider1.tenant1.userid={{.Values.config.openStackUserName}} +provider1.tenant1.password={{.Values.config.openStackEncryptedPassword}} ### ### ### Properties that are not covered or being replaced from default.properties files. Default value for DMaaP IP is 10.0.11.1:3904 ### diff --git a/kubernetes/appc/resources/config/appc/opt/onap/ccsdk/bin/installSdncDb.sh b/kubernetes/appc/resources/config/appc/opt/onap/ccsdk/bin/installSdncDb.sh index 25560fbef4..deca2ff382 100755 --- a/kubernetes/appc/resources/config/appc/opt/onap/ccsdk/bin/installSdncDb.sh +++ b/kubernetes/appc/resources/config/appc/opt/onap/ccsdk/bin/installSdncDb.sh @@ -21,7 +21,7 @@ # ============LICENSE_END========================================================= ### -SDNC_HOME=${SDNC_HOME:-/opt/onap/sdnc} +SDNC_HOME=${SDNC_HOME:-/opt/onap/ccsdk} MYSQL_PASSWD=${MYSQL_PASSWD:-{{.Values.config.dbRootPassword}}} SDNC_DB_USER=${SDNC_DB_USER:-sdnctl} diff --git a/kubernetes/appc/templates/pv.yaml b/kubernetes/appc/templates/pv.yaml new file mode 100644 index 0000000000..10214097e3 --- /dev/null +++ b/kubernetes/appc/templates/pv.yaml @@ -0,0 +1,130 @@ +{{/* +# Copyright © 2018 Amdocs, AT&T, 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. +*/}} +{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}} +{{ $pvNum := default 1 .Values.replicaCount | int }} +kind: PersistentVolume +apiVersion: v1 +metadata: + name: {{ include "common.fullname" . }}-data0 + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.fullname" . }} + chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}" + release: "{{ .Release.Name }}" + heritage: "{{ .Release.Service }}" + name: {{ include "common.fullname" . }} +spec: + capacity: + storage: {{ .Values.persistence.size}} + accessModes: + - {{ .Values.persistence.accessMode }} + storageClassName: "{{ include "common.fullname" . }}-data" + persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }} + hostPath: + path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }}0 +{{ if gt $pvNum 1 }} +--- +kind: PersistentVolume +apiVersion: v1 +metadata: + name: {{ include "common.fullname" . }}-data1 + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.fullname" . }} + chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}" + release: "{{ .Release.Name }}" + heritage: "{{ .Release.Service }}" + name: {{ include "common.fullname" . }} +spec: + capacity: + storage: {{ .Values.persistence.size}} + accessModes: + - {{ .Values.persistence.accessMode }} + storageClassName: "{{ include "common.fullname" . }}-data" + persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }} + hostPath: + path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }}1 +{{ end }} +{{ if gt $pvNum 2 }} +--- +kind: PersistentVolume +apiVersion: v1 +metadata: + name: {{ include "common.fullname" . }}-data2 + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.fullname" . }} + chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}" + release: "{{ .Release.Name }}" + heritage: "{{ .Release.Service }}" + name: {{ include "common.fullname" . }} +spec: + capacity: + storage: {{ .Values.persistence.size}} + accessModes: + - {{ .Values.persistence.accessMode }} + storageClassName: "{{ include "common.fullname" . }}-data" + persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }} + hostPath: + path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }}2 +{{ end }} +{{ if gt $pvNum 3 }} +--- +kind: PersistentVolume +apiVersion: v1 +metadata: + name: {{ include "common.fullname" . }}-data3 + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.fullname" . }} + chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}" + release: "{{ .Release.Name }}" + heritage: "{{ .Release.Service }}" + name: {{ include "common.fullname" . }} +spec: + capacity: + storage: {{ .Values.persistence.size}} + accessModes: + - {{ .Values.persistence.accessMode }} + storageClassName: "{{ include "common.fullname" . }}-data" + persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }} + hostPath: + path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }}3 +{{ end }} +{{ if gt $pvNum 4 }} +--- +kind: PersistentVolume +apiVersion: v1 +metadata: + name: {{ include "common.fullname" . }}-data4 + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.fullname" . }} + chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}" + release: "{{ .Release.Name }}" + heritage: "{{ .Release.Service }}" + name: {{ include "common.fullname" . }} +spec: + capacity: + storage: {{ .Values.persistence.size}} + accessModes: + - {{ .Values.persistence.accessMode }} + storageClassName: "{{ include "common.fullname" . }}-data" + persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }} + hostPath: + path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }}4 +{{ end }} +{{- end -}} diff --git a/kubernetes/appc/templates/statefulset.yaml b/kubernetes/appc/templates/statefulset.yaml index 5da50a5fdf..e81c50d27f 100644 --- a/kubernetes/appc/templates/statefulset.yaml +++ b/kubernetes/appc/templates/statefulset.yaml @@ -18,6 +18,8 @@ spec: app: {{ include "common.name" . }} release: {{ .Release.Name }} spec: + imagePullSecrets: + - name: "{{ include "common.namespace" . }}-docker-registry-key" initContainers: - command: - /root/ready.py @@ -112,6 +114,8 @@ spec: - mountPath: /opt/onap/ccsdk/bin/installSdncDb.sh name: onap-sdnc-bin subPath: installSdncDb.sh + - mountPath: {{ .Values.persistence.mdsalPath }} + name: {{ include "common.fullname" . }}-data - mountPath: /var/log/onap name: logs - mountPath: /opt/opendaylight/current/etc/org.ops4j.pax.logging.cfg @@ -182,5 +186,19 @@ spec: configMap: name: {{ include "common.fullname" . }}-onap-sdnc-bin defaultMode: 0755 - imagePullSecrets: - - name: "{{ include "common.namespace" . }}-docker-registry-key" +{{ if not .Values.persistence.enabled }} + - name: {{ include "common.fullname" . }}-data + emptyDir: {} +{{ else }} + volumeClaimTemplates: + - metadata: + name: {{ include "common.fullname" . }}-data + labels: + name: {{ include "common.fullname" . }} + spec: + accessModes: [ {{ .Values.persistence.accessMode }} ] + storageClassName: {{ include "common.fullname" . }}-data + resources: + requests: + storage: {{ .Values.persistence.size }} +{{ end }} diff --git a/kubernetes/appc/values.yaml b/kubernetes/appc/values.yaml index a9f67a9375..a0edf64e75 100644 --- a/kubernetes/appc/values.yaml +++ b/kubernetes/appc/values.yaml @@ -44,6 +44,13 @@ config: dmaapTopic: SUCCESS logstashServiceName: log-ls logstashPort: 5044 + openStackType: OpenStackProvider + openStackName: OpenStack + openStackKeyStoneUrl: http://localhost:8181/apidoc/explorer/index.html + openStackServiceTenantName: default + openStackDomain: default + openStackUserName: admin + openStackEncryptedPassword: admin mysql: nameOverride: appc-db @@ -97,6 +104,28 @@ service: nodePort2: 31 clusterPort: 2550 +## Persist data to a persitent volume +persistence: + enabled: true + + ## A manually managed Persistent Volume and Claim + ## Requires persistence.enabled: true + ## If defined, PVC must be created manually before volume will be bound + # existingClaim: + volumeReclaimPolicy: Retain + + ## database data Persistent Volume Storage Class + ## If defined, storageClassName: <storageClass> + ## If set to "-", storageClassName: "", which disables dynamic provisioning + ## If undefined (the default) or set to null, no storageClassName spec is + ## set, choosing the default provisioner. (gp2 on AWS, standard on + ## GKE, AWS & OpenStack) + accessMode: ReadWriteOnce + size: 1Gi + mountPath: /dockerdata-nfs + mountSubPath: appc/mdsal + mdsalPath: /opt/opendaylight/current/daexim + ingress: enabled: false diff --git a/kubernetes/clamp/templates/configmap.yaml b/kubernetes/clamp/templates/configmap.yaml index b680487fc0..bee8f132ea 100644 --- a/kubernetes/clamp/templates/configmap.yaml +++ b/kubernetes/clamp/templates/configmap.yaml @@ -23,4 +23,4 @@ metadata: release: {{ .Release.Name }} heritage: {{ .Release.Service }} data: - spring_application_json: {{ .Values.config.springApplicationJson | quote }} + spring_application_json: {{ tpl .Values.config.springApplicationJson . | quote }} diff --git a/kubernetes/clamp/values.yaml b/kubernetes/clamp/values.yaml index 827b5d99cc..8b782f9b05 100644 --- a/kubernetes/clamp/values.yaml +++ b/kubernetes/clamp/values.yaml @@ -42,7 +42,7 @@ config: dataRootDir: /dockerdata-nfs springApplicationJson: > { - "spring.datasource.cldsdb.url": "jdbc:mariadb:sequential://mariadb:3306/cldsdb4?autoReconnect=true&connectTimeout=10000&socketTimeout=10000&retriesAllDown=3", + "spring.datasource.cldsdb.url": "jdbc:mariadb:sequential://clampdb:3306/cldsdb4?autoReconnect=true&connectTimeout=10000&socketTimeout=10000&retriesAllDown=3", "clamp.config.sdc.catalog.url": "https://sdc-be:8443/sdc/v1/catalog/", "clamp.config.sdc.hostUrl": "https://sdc-be:8443/", "clamp.config.sdc.serviceUrl": "https://sdc-be:8443/sdc/v1/catalog/services", diff --git a/kubernetes/dcaegen2/Makefile b/kubernetes/dcaegen2/Makefile new file mode 100644 index 0000000000..c16f23be28 --- /dev/null +++ b/kubernetes/dcaegen2/Makefile @@ -0,0 +1,2 @@ +make-dmaap: + cd charts && helm dep up dcae-bootstrap diff --git a/kubernetes/dcaegen2/charts/dcae-bootstrap/requirements.yaml b/kubernetes/dcaegen2/charts/dcae-bootstrap/requirements.yaml index d031e2e890..9f53d90c06 100644 --- a/kubernetes/dcaegen2/charts/dcae-bootstrap/requirements.yaml +++ b/kubernetes/dcaegen2/charts/dcae-bootstrap/requirements.yaml @@ -20,3 +20,6 @@ dependencies: - name: common version: ~2.0.0 repository: '@local' + - name: postgres + version: ~2.0.0 + repository: '@local' diff --git a/kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-holmes_engine-inputs.yaml b/kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-holmes_engine-inputs.yaml index 6205f1ed38..dac0ffa207 100644 --- a/kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-holmes_engine-inputs.yaml +++ b/kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-holmes_engine-inputs.yaml @@ -23,6 +23,6 @@ "msb_hostname": "{{ .Values.config.address.msb_discovery }}.{{include "common.namespace" . }}", "dcae_CL_publish_url": "http://{{ .Values.config.address.message_router }}.{{include "common.namespace" . }}:3904/events/unauthenticated.DCAE_CL_OUTPUT", "ves_fault_publish_url": "http://{{ .Values.config.address.message_router }}.{{include "common.namespace" . }}:3904/events/unauthenticated.SEC_FAULT_OUTPUT", - "pgaas_cluster_name" : "pgvm", + "pgaas_cluster_name" : "{{ .Values.postgres.service.name2 }}.{{include "common.namespace" . }}", "database_name":"holmes" } diff --git a/kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-holmes_rules-input.yaml b/kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-holmes_rules-input.yaml index 75dbbf9805..1a808d4eb7 100644 --- a/kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-holmes_rules-input.yaml +++ b/kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-holmes_rules-input.yaml @@ -18,6 +18,6 @@ { "msb_hostname": "{{ .Values.config.address.msb_discovery }}.{{include "common.namespace" . }}", - "pgaas_cluster_name" : "pgvm", + "pgaas_cluster_name" : "{{ .Values.postgres.service.name2 }}.{{include "common.namespace" . }}", "database_name":"holmes" } diff --git a/kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-inventory-inputs.yaml b/kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-inventory-inputs.yaml index 4e42b11208..8b5da2efe6 100644 --- a/kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-inventory-inputs.yaml +++ b/kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-inventory-inputs.yaml @@ -16,12 +16,12 @@ # limitations under the License. # ============LICENSE_END========================================================= -sdc_config.address: '{{ .Values.config.address.sdc }}.{{include "common.namespace" . }}:8443' +sdc_address: '{{ .Values.config.address.sdc }}.{{include "common.namespace" . }}:8443' sdc_uri: 'https://{{ .Values.config.address.sdc }}.{{include "common.namespace" . }}:8443' sdc_user: "dcae" sdc_password: !!str Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U sdc_environment_name: "AUTO" -sdc_msg_bus_config.address: '{{ .Values.config.address.message_router }}.{{include "common.namespace" . }}' +sdc_msg_bus_address: '{{ .Values.config.address.message_router }}.{{include "common.namespace" . }}' postgres_user_inventory: "postgres" postgres_password_inventory: "onap123" service_change_handler_image: {{ .Values.componentImages.service_change_handler }} diff --git a/kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-pgaas-initdb-inputs.yaml b/kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-pgaas-initdb-inputs.yaml new file mode 100644 index 0000000000..b201247136 --- /dev/null +++ b/kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-pgaas-initdb-inputs.yaml @@ -0,0 +1,19 @@ +#================================================================================= +# Copyright (c) 2018 AT&T Intellectual Property. All rights reserved. +# 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. +# ============LICENSE_END========================================================= + +k8s_pgaas_instance_fqdn: {{ .Values.postgres.service.name2 }}.{{include "common.namespace" . }} +k8s_initial_password: {{ .Values.postgres.config.pgRootPassword }} diff --git a/kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-tca-inputs.yaml b/kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-tca-inputs.yaml index 7dc66f40c3..f3a6ccaad8 100644 --- a/kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-tca-inputs.yaml +++ b/kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-tca-inputs.yaml @@ -22,3 +22,7 @@ tca_image: {{ .Values.componentImages.tca }} dmaap_host: {{ .Values.config.address.message_router }}.{{include "common.namespace" . }} consul_host: {{ .Values.config.address.consul.host }}.{{include "common.namespace" . }} cbs_host: config-binding-service +enableRedisCaching: {{ .Values.config.redisCaching }} +{{ if .Values.config.redisHosts }} +redisHosts: {{ .Values.config.redisHosts }} +{{ end }} diff --git a/kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-ves-inputs.yaml b/kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-ves-inputs.yaml index 5385d07dde..2e41d1c4b3 100644 --- a/kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-ves-inputs.yaml +++ b/kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-ves-inputs.yaml @@ -19,7 +19,7 @@ {{ if .Values.componentImages.ves }} tag_version: {{ .Values.componentImages.ves }} {{ end }} -external_port : "30280" +external_port : "30235" ves_other_publish_url: "http://{{ .Values.config.address.message_router }}:3904/events/unauthenticated.SEC_OTHER_OUTPUT/" 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/" diff --git a/kubernetes/dcaegen2/charts/dcae-bootstrap/values.yaml b/kubernetes/dcaegen2/charts/dcae-bootstrap/values.yaml index fc89c6c459..6df05b1452 100644 --- a/kubernetes/dcaegen2/charts/dcae-bootstrap/values.yaml +++ b/kubernetes/dcaegen2/charts/dcae-bootstrap/values.yaml @@ -40,17 +40,34 @@ config: msb_discovery: msb-discovery policy_pdp: pdp sdc: sdc-be + # redisCaching is a string not a boolean! + redisCaching: "false" + +# postgres values--overriding defaults in the postgres subchart +postgres: + nameOverride: dcae-db + service: + name: dcae-postgres + name2: dcae-pg-primary + name3: dcae-pg-replica + container: + name: + primary: dcae-pg-primary + replica: dcae-pg-replica + config: + pgPrimaryPassword: onapdemodb + pgRootPassword: onapdemodb # application image repository: nexus3.onap.org:10001 -image: onap/org.onap.dcaegen2.deployments.k8s-bootstrap-container:1.1.5 +image: onap/org.onap.dcaegen2.deployments.k8s-bootstrap-container:1.1.8 # DCAE component images to be deployed via Cloudify Manager # Use to override default setting in blueprints componentImages: #TODO for further investigation: input template expansion issues if we comment this out - config_binding_service: nexus3.onap.org:10001/onap/org.onap.dcaegen2.platform.configbinding:2.1.4 + config_binding_service: nexus3.onap.org:10001/onap/org.onap.dcaegen2.platform.configbinding:2.1.5 # deployment_handler: nexus3.onap.org:10001/onap/org.onap.dcaegen2.platform.deployment-handler:2.1.1 # holmes_engine: nexus3.onap.org:10001//onap/holmes/engine-management:v1.0.0 # holmes_rules: nexus3.onap.org:10001/onap/holmes/rule-management:v1.0.0 diff --git a/kubernetes/dcaegen2/charts/dcae-cloudify-manager/templates/service.yaml b/kubernetes/dcaegen2/charts/dcae-cloudify-manager/templates/service.yaml index c6b24ee22f..4b76523c57 100644 --- a/kubernetes/dcaegen2/charts/dcae-cloudify-manager/templates/service.yaml +++ b/kubernetes/dcaegen2/charts/dcae-cloudify-manager/templates/service.yaml @@ -63,4 +63,13 @@ spec: type: ExternalName externalName: {{ .Values.service.name }}.{{ include "common.namespace" . }}.svc.cluster.local {{ end }} - +# Provide alternate name for consul in common namespace to support CM plugin discovery +apiVersion: v1 +kind: Service +metadata: + name: consul + namespace: {{ include "common.namespace" . }} +spec: + type: ExternalName + externalName: {{ .Values.config.address.consul.host }}.{{ include "common.namespace" . }}.svc.cluster.local +--- diff --git a/kubernetes/dcaegen2/charts/dcae-redis/resources/redis/scripts/redis-cluster-config.sh b/kubernetes/dcaegen2/charts/dcae-redis/resources/redis/scripts/redis-cluster-config.sh index 3431e7e6e7..f4547525c9 100755 --- a/kubernetes/dcaegen2/charts/dcae-redis/resources/redis/scripts/redis-cluster-config.sh +++ b/kubernetes/dcaegen2/charts/dcae-redis/resources/redis/scripts/redis-cluster-config.sh @@ -15,8 +15,9 @@ # limitations under the License. # ============LICENSE_END========================================================= - -if [[ "$HOSTNAME" == *{{.Chart.Name}}-0 ]]; then +(if [[ "$HOSTNAME" == *{{.Chart.Name}}-0 ]]; then + echo "delay by 10 seconds for redis server starting" + sleep 10 NODES="" echo "====> wait for all {{.Values.replicaCount}} redis pods up" @@ -24,11 +25,16 @@ if [[ "$HOSTNAME" == *{{.Chart.Name}}-0 ]]; then do echo "======> $(echo $NODES |wc -w) / {{.Values.replicaCount}} pods up" sleep 5 - RESP=$(wget -vO- --ca-certificate /var/run/secrets/kubernetes.io/serviceaccount/ca.crt --header "Authorization: Bearer $(</var/run/secrets/kubernetes.io/serviceaccount/token)" https://$KUBERNETES_SERVICE_HOST:$KUBERNETES_PORT_443_TCP_PORT/api/v1/namespaces/{{.Release.Namespace}}/pods?labelSelector=app={{.Chart.Name}}) + RESP=$(wget -vO- --ca-certificate /var/run/secrets/kubernetes.io/serviceaccount/ca.crt --header "Authorization +: Bearer $(</var/run/secrets/kubernetes.io/serviceaccount/token)" https://$KUBERNETES_SERVICE_HOST:$KUBERNETES_PORT +_443_TCP_PORT/api/v1/namespaces/{{.Release.Namespace}}/pods?labelSelector=app={{.Chart.Name}}) IPS=$(echo $RESP | jq -r '.items[].status.podIP') + IPS2=$(echo $IPS | sed -e 's/[a-zA-Z]*//g') + echo "======> IPs: ["$IPS2"]" NODES="" - for I in $IPS; do NODES="$NODES $I:{{.Values.service.externalPort}}"; done + for I in $IPS2; do NODES="$NODES $I:{{.Values.service.externalPort}}"; done + echo "======> nodes: ["$NODES"]" done echo "====> all {{.Values.replicaCount}} redis cluster pods are up. wait 10 seconds before the next step"; echo sleep 10 @@ -36,6 +42,9 @@ if [[ "$HOSTNAME" == *{{.Chart.Name}}-0 ]]; then echo "====> Configure the cluster" # $NODES w/o quotes + echo "======> nodes: [$(echo $NODES |paste -s)]" redis-trib create --replicas 1 $(echo $NODES |paste -s) +fi ) & + +redis-server /conf/redis.conf -fi diff --git a/kubernetes/dcaegen2/charts/dcae-redis/templates/statefulset.yaml b/kubernetes/dcaegen2/charts/dcae-redis/templates/statefulset.yaml index 472471416b..63d921aa8b 100644 --- a/kubernetes/dcaegen2/charts/dcae-redis/templates/statefulset.yaml +++ b/kubernetes/dcaegen2/charts/dcae-redis/templates/statefulset.yaml @@ -41,8 +41,7 @@ spec: - /bin/sh - -c - | - /opt/scripts/redis-cluster-config.sh & - /usr/local/bin/redis-server-config.sh + /opt/scripts/redis-cluster-config.sh ports: - containerPort: {{ .Values.service.internalPort }} name: {{ .Values.service.name }} diff --git a/kubernetes/dmaap/Makefile b/kubernetes/dmaap/Makefile new file mode 100644 index 0000000000..36ca4f5a9f --- /dev/null +++ b/kubernetes/dmaap/Makefile @@ -0,0 +1,16 @@ +# Copyright © 2018 AT&T Intellectual Property. All rights reserved. +# +# 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. + +make-dmaap: + cd charts && helm dep up dmaap-bus-controller diff --git a/kubernetes/dmaap/charts/dmaap-bus-controller/.helmignore b/kubernetes/dmaap/charts/dmaap-bus-controller/.helmignore new file mode 100644 index 0000000000..f0c1319444 --- /dev/null +++ b/kubernetes/dmaap/charts/dmaap-bus-controller/.helmignore @@ -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/dmaap/charts/dmaap-bus-controller/Chart.yaml b/kubernetes/dmaap/charts/dmaap-bus-controller/Chart.yaml new file mode 100644 index 0000000000..430b7d13c3 --- /dev/null +++ b/kubernetes/dmaap/charts/dmaap-bus-controller/Chart.yaml @@ -0,0 +1,18 @@ +# Copyright © 2018 AT&T Intellectual Property. All rights reserved. +# +# 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: a Helm chart to deploy ONAP DMaaP Bus Controller (aka dmaap-prov) in Kubernetes +name: dmaap-bus-controller +version: 2.0.0 diff --git a/kubernetes/dmaap/charts/dmaap-bus-controller/README.md b/kubernetes/dmaap/charts/dmaap-bus-controller/README.md new file mode 100644 index 0000000000..c696a2c361 --- /dev/null +++ b/kubernetes/dmaap/charts/dmaap-bus-controller/README.md @@ -0,0 +1,11 @@ +# Helm Chart for ONAP DMaaP Applications + +ONAP includes the following Kubernetes services available in ONAP Beijing Release (more expected in future): + +1) message-router - a message bus for applications +2) dmaap-prov - an API to provision DMaaP resources + +# Service Dependencies + +message-router depends on AAF +dmaap-prov depends on AAF and Postgresql. diff --git a/kubernetes/dmaap/charts/dmaap-bus-controller/requirements.yaml b/kubernetes/dmaap/charts/dmaap-bus-controller/requirements.yaml new file mode 100644 index 0000000000..b67ac02eca --- /dev/null +++ b/kubernetes/dmaap/charts/dmaap-bus-controller/requirements.yaml @@ -0,0 +1,21 @@ +# Copyright © 2018 AT&T Intellectual Property. All rights reserved. +# +# 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' + - name: postgres + version: ~2.0.0 + repository: '@local' diff --git a/kubernetes/dmaap/charts/dmaap-bus-controller/resources/config/buscontroller.env b/kubernetes/dmaap/charts/dmaap-bus-controller/resources/config/buscontroller.env new file mode 100644 index 0000000000..6b15db9ced --- /dev/null +++ b/kubernetes/dmaap/charts/dmaap-bus-controller/resources/config/buscontroller.env @@ -0,0 +1,14 @@ +DMAAPBC_WAIT_TO_EXIT=Y +DMAAPBC_PG_ENABLED=true +# Need to connect to PG primary service, designated by service.name2 +DMAAPBC_PGHOST={{ .Values.postgres.service.name2 }} +DMAAPBC_PGDBNAME={{ .Values.postgres.config.pgDatabase }} +DMAAPBC_PGCRED={{ .Values.postgres.config.pgUserPassword }} +DMAAPBC_PGUSER={{ .Values.postgres.config.pgUserName }} +DMAAPBC_MR_CNAME={{ .Values.dmaapMessageRouterService }} +DMAAPBC_AAF_URL={{ .Values.aafURL }} +DMAAPBC_TOPICMGR_USER={{ .Values.topicMgrUser }} +DMAAPBC_TOPICMGR_PWD={{ .Values.topicMgrPwd }} +DMAAPBC_ADMIN_USER={{ .Values.adminUser }} +DMAAPBC_ADMIN_PWD={{ .Values.adminPwd }} + diff --git a/kubernetes/dmaap/templates/NOTES.txt b/kubernetes/dmaap/charts/dmaap-bus-controller/templates/NOTES.txt index 33b47cfc02..fbab5a3758 100644 --- a/kubernetes/dmaap/templates/NOTES.txt +++ b/kubernetes/dmaap/charts/dmaap-bus-controller/templates/NOTES.txt @@ -4,16 +4,16 @@ http://{{ . }} {{- end }} {{- else if contains "NodePort" .Values.service.type }} - export NODE_PORT=$(kubectl get --namespace {{ .Values.global.nsPrefix }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "common.name" . }}-prov) - export NODE_IP=$(kubectl get nodes --namespace {{ .Values.global.nsPrefix }} -o jsonpath="{.items[0].status.addresses[0].address}") + export NODE_PORT=$(kubectl get --namespace {{ include "common.namespace" . }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "common.name" . }}-prov) + export NODE_IP=$(kubectl get nodes --namespace {{ include "common.namespace" . }} -o jsonpath="{.items[0].status.addresses[0].address}") echo http://$NODE_IP:$NODE_PORT {{- else if contains "LoadBalancer" .Values.service.type }} NOTE: It may take a few minutes for the LoadBalancer IP to be available. You can watch the status of by running 'kubectl get svc -w {{ include "common.fullname" . }}' - export SERVICE_IP=$(kubectl get svc --namespace {{ .Values.global.nsPrefix }} {{ include "common.fullname" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}') + export SERVICE_IP=$(kubectl get svc --namespace {{ include "common.namespace" . }} {{ include "common.fullname" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}') echo http://$SERVICE_IP:{{ .Values.service.externalPort }} {{- else if contains "ClusterIP" .Values.service.type }} - export POD_NAME=$(kubectl get pods --namespace {{ .Values.global.nsPrefix }} -l "app={{ template "so.name" . }},release={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}") + export POD_NAME=$(kubectl get pods --namespace {{ include "common.namespace" . }} -l "app={{ template "common.name" . }},release={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}") echo "Visit http://127.0.0.1:8080 to use your application" kubectl port-forward $POD_NAME 8080:{{ .Values.service.internalPort }} {{- end }} diff --git a/kubernetes/dmaap/templates/configmap.yaml b/kubernetes/dmaap/charts/dmaap-bus-controller/templates/configmap.yaml index 0d6a348249..1ed749593f 100644 --- a/kubernetes/dmaap/templates/configmap.yaml +++ b/kubernetes/dmaap/charts/dmaap-bus-controller/templates/configmap.yaml @@ -15,7 +15,7 @@ apiVersion: v1 kind: ConfigMap metadata: - name: {{ include "common.fullname" . }}-configmap - namespace: {{ .Values.global.nsPrefix }} + name: {{ include "common.fullname" . }}-config + namespace: {{ include "common.namespace" . }} data: -{{ tpl (.Files.Glob "resources/config/buscontroller.env").AsConfig . | indent 2 }} +{{ tpl (.Files.Glob "resources/config/*").AsConfig . | indent 2 }} diff --git a/kubernetes/dmaap/charts/dmaap-bus-controller/templates/deployment.yaml b/kubernetes/dmaap/charts/dmaap-bus-controller/templates/deployment.yaml new file mode 100644 index 0000000000..2c38792c87 --- /dev/null +++ b/kubernetes/dmaap/charts/dmaap-bus-controller/templates/deployment.yaml @@ -0,0 +1,94 @@ +# Copyright © 2018 AT&T Intellectual Property. All rights reserved. +# +# 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: + initContainers: + - command: + - /root/ready.py + args: + - --container-name + - {{ .Values.postgres.nameOverride }} + env: + - name: NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.namespace + image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}" + imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + name: {{ include "common.name" . }}-readiness + containers: + - name: {{ include "common.name" . }} + image: "{{ .Values.global.repository | default .Values.repository }}/{{ .Values.image.buscontrollerImage }}:{{ .Values.image.buscontrollerVersion }}" + imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + ports: + - containerPort: {{ .Values.service.internalPort }} + - containerPort: {{ .Values.service.internalPort2 }} + {{if eq .Values.liveness.enabled true }} + livenessProbe: + httpGet: + port: {{ .Values.service.internalPort }} + path: /webapi/info + initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }} + periodSeconds: {{ .Values.liveness.periodSeconds }} + readinessProbe: + httpGet: + port: {{ .Values.service.internalPort }} + path: /webapi/info + initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }} + periodSeconds: {{ .Values.readiness.periodSeconds }} + {{ end -}} + volumeMounts: + - mountPath: /etc/localtime + name: localtime + readOnly: true + - name: {{ include "common.name" . }}-config + mountPath: /opt/app/config/conf + subPath: buscontroller.env + 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: {{ include "common.name" . }}-config + configMap: + name: {{ include "common.fullname" . }}-config + imagePullSecrets: + - name: "{{ include "common.namespace" . }}-docker-registry-key" diff --git a/kubernetes/dmaap/charts/dmaap-bus-controller/templates/service.yaml b/kubernetes/dmaap/charts/dmaap-bus-controller/templates/service.yaml new file mode 100644 index 0000000000..2660052ffb --- /dev/null +++ b/kubernetes/dmaap/charts/dmaap-bus-controller/templates/service.yaml @@ -0,0 +1,47 @@ +# Copyright © 2018 AT&T Intellectual Property. All rights reserved. +# +# 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: {{ .Values.service.name }} + 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 }} + targetPort: {{ .Values.service.internalPort }} + nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }} + name: {{ .Values.service.name }} + - port: {{ .Values.service.externalPort2 }} + targetPort: {{ .Values.service.internalPort2 }} + nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort2 }} + name: {{ .Values.service.name }}2 + {{- else -}} + - port: {{ .Values.service.externalPort }} + targetPort: {{ .Values.service.internalPort }} + name: {{ .Values.service.name }} + - port: {{ .Values.service.externalPort2 }} + targetPort: {{ .Values.service.internalPort2 }} + name: {{ .Values.service.name }}2 + {{- end}} + selector: + app: {{ include "common.name" . }} + release: {{ .Release.Name }}
\ No newline at end of file diff --git a/kubernetes/dmaap/charts/dmaap-bus-controller/values.yaml b/kubernetes/dmaap/charts/dmaap-bus-controller/values.yaml new file mode 100644 index 0000000000..3acb490e57 --- /dev/null +++ b/kubernetes/dmaap/charts/dmaap-bus-controller/values.yaml @@ -0,0 +1,113 @@ +# Copyright © 2018 AT&T Intellectual Property. All rights reserved. +# +# 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 + repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ== + readinessRepository: oomk8s + readinessImage: readiness-check:1.1.1 + loggingRepository: docker.elastic.co + loggingImage: beats/filebeat:5.5.0 + +################################################################# +# Application configuration defaults. +################################################################# +#nsPrefix: onap +pullPolicy: Always + +# application images +repository: nexus3.onap.org:10001 + +image: + buscontrollerImage: onap/dmaap/buscontroller + buscontrollerVersion: 1.0.8 + + +# application configuration +dmaapMessageRouterService: dmaap +aafURL: https://onap-aaf:8905/proxy/ +topicMgrUser: m23456@dmaapbc.onap.org +topicMgrPwd: onapdemo +adminUser: m12345@dmaapbc.onap.org +adminPwd: onapdemo + +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 + + +service: + type: ClusterIP + name: dmaap-bc + externalPort: 8080 + internalPort: 8080 + externalPort2: 8443 + internalPort2: 8443 + + +# application configuration override for postgres +postgres: + nameOverride: dbcl-db + service: + name: dbcl-postgres + name2: dbcl-pg-primary + name3: dbcl-pg-replica + container: + name: + primary: dbcl-pg-primary + replica: dbcl-pg-replica + config: + pgUserName: dmaap_admin + pgDatabase: dmaap + pgPrimaryPassword: onapdemodb + pgUserPassword: onapdemodb + pgRootPassword: onapdemodb + + +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/dmaap/charts/postgresql/Chart.yaml b/kubernetes/dmaap/charts/postgresql/Chart.yaml deleted file mode 100644 index c64338735a..0000000000 --- a/kubernetes/dmaap/charts/postgresql/Chart.yaml +++ /dev/null @@ -1,16 +0,0 @@ -name: postgresql -version: 0.9.3 -description: Object-relational database management system (ORDBMS) with an emphasis on extensibility and on standards-compliance. -keywords: -- postgresql -- postgres -- database -- sql -home: https://www.postgresql.org/ -icon: https://www.postgresql.org/media/img/about/press/elephant.png -sources: -- https://github.com/kubernetes/charts -- https://github.com/docker-library/postgres -maintainers: -- name: databus23 -engine: gotpl diff --git a/kubernetes/dmaap/charts/postgresql/templates/Notes.txt b/kubernetes/dmaap/charts/postgresql/templates/Notes.txt deleted file mode 100644 index 9b49bb2982..0000000000 --- a/kubernetes/dmaap/charts/postgresql/templates/Notes.txt +++ /dev/null @@ -1,35 +0,0 @@ -# PostgreSQL can be accessed via port 5432 on the following DNS name from within your cluster: -# {{ template "postgresql.fullname" . }}.{{ .Release.Namespace }}.svc.cluster.local -# -# To get your user password run: -# -# PGPASSWORD=$(kubectl get secret --namespace {{ .Values.global.nsPrefix }} {{ template "postgresql.fullname" . }} -o jsonpath="{.data.postgres-password}" | base64 --decode; echo) -# -# To connect to your database run the following command (using the env variable from above): -# -# kubectl run --namespace {{ .Values.global.nsPrefix }} {{ template "postgresql.fullname" . }}-client --restart=Never --rm --tty -i --image postgres \ -# --env "PGPASSWORD=$PGPASSWORD" \{{- if and (.Values.networkPolicy.enabled) (not .Values.networkPolicy.allowExternal) }} -# --labels="{{ template "postgresql.fullname" . }}-client=true" \{{- end }} -# --command -- psql -U {{ default "postgres" .Values.postgresUser }} \ -# -h {{ template "postgresql.fullname" . }} {{ default "postgres" .Values.postgresDatabase }} -# -# {{ if and (.Values.networkPolicy.enabled) (not .Values.networkPolicy.allowExternal) }} -# Note: Since NetworkPolicy is enabled, only pods with label -# {{ template "postgresql.fullname" . }}-client=true" -# will be able to connect to this PostgreSQL cluster. -# {{- end }} -# -# To connect to your database directly from outside the K8s cluster: -# {{- if contains "NodePort" .Values.service.type }} -# PGHOST=$(kubectl get nodes --namespace {{ .Values.global.nsPrefix }} -o jsonpath='{.items[0].status.addresses[0].address}') -# PGPORT=$(kubectl get svc --namespace {{ .Values.global.nsPrefix }} {{ template "postgresql.fullname" . }} -o jsonpath='{.spec.ports[0].nodePort}') -# -# {{- else if contains "ClusterIP" .Values.service.type }} -# PGHOST=127.0.0.1 -# PGPORT={{ default "5432" .Values.service.port }} -# -# # Execute the following commands to route the connection: -# export POD_NAME=$(kubectl get pods --namespace {{ .Values.global.nsPrefix }} -l "app={{ template "postgresql.fullname" . }}" -o jsonpath="{.items[0].metadata.name}") -# kubectl port-forward --namespace {{ .Values.global.nsPrefix }} $POD_NAME {{ default "5432" .Values.service.port }}:{{ default "5432" .Values.service.port }} -# -# {{- end }} diff --git a/kubernetes/dmaap/charts/postgresql/templates/_helpers.tpl b/kubernetes/dmaap/charts/postgresql/templates/_helpers.tpl deleted file mode 100644 index b2d3d523a9..0000000000 --- a/kubernetes/dmaap/charts/postgresql/templates/_helpers.tpl +++ /dev/null @@ -1,36 +0,0 @@ -{{/* vim: set filetype=mustache: */}} -{{/* -Expand the name of the chart. -*/}} -{{- define "postgresql.name" -}} -{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} -{{- end -}} - -{{/* -Create a default fully qualified app name. -We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). -If release name contains chart name it will be used as a full name. -*/}} -{{- define "postgresql.fullname" -}} -{{- if .Values.fullnameOverride -}} -{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}} -{{- else -}} -{{- $name := default .Chart.Name .Values.nameOverride -}} -{{- if contains $name .Release.Name -}} -{{- .Release.Name | trunc 63 | trimSuffix "-" -}} -{{- else -}} -{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}} -{{- end -}} -{{- end -}} -{{- end -}} - -{{/* -Return the appropriate apiVersion for networkpolicy. -*/}} -{{- define "postgresql.networkPolicy.apiVersion" -}} -{{- if and (ge .Capabilities.KubeVersion.Minor "4") (le .Capabilities.KubeVersion.Minor "6") -}} -"extensions/v1beta1" -{{- else if ge .Capabilities.KubeVersion.Minor "7" -}} -"networking.k8s.io/v1" -{{- end -}} -{{- end -}} diff --git a/kubernetes/dmaap/charts/postgresql/templates/deployment.yaml b/kubernetes/dmaap/charts/postgresql/templates/deployment.yaml deleted file mode 100644 index 57acfbda9b..0000000000 --- a/kubernetes/dmaap/charts/postgresql/templates/deployment.yaml +++ /dev/null @@ -1,128 +0,0 @@ -apiVersion: extensions/v1beta1 -kind: Deployment -metadata: - name: {{ template "postgresql.fullname" . }} - namespace: {{ .Values.global.nsPrefix }} - labels: - app: {{ template "postgresql.fullname" . }} - chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" - release: "{{ .Release.Name }}" - heritage: "{{ .Release.Service }}" -spec: - template: - metadata: - labels: - app: {{ template "postgresql.fullname" . }} - spec: - {{- if .Values.affinity }} - affinity: -{{ toYaml .Values.affinity | indent 8 }} - {{- end }} - {{- if .Values.nodeSelector }} - nodeSelector: -{{ toYaml .Values.nodeSelector | indent 8 }} - {{- end }} - {{- if .Values.tolerations }} - tolerations: -{{ toYaml .Values.tolerations | indent 8 }} - {{- end }} - {{- if .Values.schedulerName }} - schedulerName: "{{ .Values.schedulerName }}" - {{- end }} - containers: - - name: {{ template "postgresql.fullname" . }} - image: "{{ .Values.image }}:{{ .Values.imageTag }}" - imagePullPolicy: {{ default "" .Values.imagePullPolicy | quote }} - args: - {{- range $key, $value := default dict .Values.postgresConfig }} - - -c - - '{{ $key | snakecase }}={{ $value }}' - {{- end }} - env: - - name: POSTGRES_USER - value: {{ default "postgres" .Values.global.postgresUser | quote }} - # Required for pg_isready in the health probes. - - name: PGUSER - value: {{ default "postgres" .Values.global.postgresUser | quote }} - - name: POSTGRES_DB - value: {{ default "" .Values.global.postgresDatabase | quote }} - - name: POSTGRES_INITDB_ARGS - value: {{ default "" .Values.postgresInitdbArgs | quote }} - - name: PGDATA - value: /var/lib/postgresql/data/pgdata - - name: POSTGRES_PASSWORD - value: {{ default "postgres" .Values.global.postgresPassword | quote }} -# original code: -# valueFrom: -# secretKeyRef: -# name: {{ template "postgresql.fullname" . }} -# key: postgres-password - - name: POD_IP - valueFrom: { fieldRef: { fieldPath: status.podIP } } - ports: - - name: postgresql - containerPort: 5432 - livenessProbe: - exec: - command: - - sh - - -c - - exec pg_isready --host $POD_IP - initialDelaySeconds: 120 - timeoutSeconds: 5 - failureThreshold: 6 - readinessProbe: - exec: - command: - - sh - - -c - - exec pg_isready --host $POD_IP - initialDelaySeconds: 5 - timeoutSeconds: 3 - periodSeconds: 5 - resources: -{{ toYaml .Values.resources | indent 10 }} - volumeMounts: - - name: data - mountPath: {{ .Values.persistence.mountPath }} - subPath: {{ .Values.persistence.subPath }} -{{- if .Values.metrics.enabled }} - - name: metrics - image: "{{ .Values.metrics.image }}:{{ .Values.metrics.imageTag }}" - imagePullPolicy: {{ default "" .Values.metrics.imagePullPolicy | quote }} - env: - - name: DATA_SOURCE_NAME - value: postgresql://postgres@127.0.0.1:5432?sslmode=disable - ports: - - name: metrics - containerPort: 9187 - {{- if .Values.metrics.customMetrics }} - args: ["-extend.query-path", "/conf/custom-metrics.yaml"] - volumeMounts: - - name: custom-metrics - mountPath: /conf - readOnly: true - {{- end }} - resources: -{{ toYaml .Values.metrics.resources | indent 10 }} -{{- end }} - volumes: - - name: data - {{- if .Values.persistence.enabled }} - persistentVolumeClaim: - claimName: {{ .Values.persistence.existingClaim | default (include "postgresql.fullname" .) }} - {{- else }} - emptyDir: {} - {{- end }} - {{- if and .Values.metrics.enabled .Values.metrics.customMetrics }} - - name: custom-metrics - secret: - secretName: {{ template "postgresql.fullname" . }} - items: - - key: custom-metrics.yaml - path: custom-metrics.yaml - {{- end }} - {{- if .Values.imagePullSecrets }} - imagePullSecrets: - - name: {{ .Values.imagePullSecrets }} - {{- end }} diff --git a/kubernetes/dmaap/charts/postgresql/templates/networkpolicy.yaml b/kubernetes/dmaap/charts/postgresql/templates/networkpolicy.yaml deleted file mode 100644 index 92f3b71b15..0000000000 --- a/kubernetes/dmaap/charts/postgresql/templates/networkpolicy.yaml +++ /dev/null @@ -1,28 +0,0 @@ -{{- if .Values.networkPolicy.enabled }} -kind: NetworkPolicy -apiVersion: {{ template "postgresql.networkPolicy.apiVersion" . }} -metadata: - name: "{{ template "postgresql.fullname" . }}" - labels: - app: {{ template "postgresql.fullname" . }} - chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" - release: "{{ .Release.Name }}" - heritage: "{{ .Release.Service }}" -spec: - podSelector: - matchLabels: - app: "{{ template "postgresql.fullname" . }}" - ingress: - # Allow inbound connections - - ports: - - port: 5432 - {{- if not .Values.networkPolicy.allowExternal }} - from: - - podSelector: - matchLabels: - {{ template "postgresql.fullname" . }}-client: "true" - {{- end }} - # Allow prometheus scrapes - - ports: - - port: 9187 -{{- end }} diff --git a/kubernetes/dmaap/charts/postgresql/templates/pvc.yaml b/kubernetes/dmaap/charts/postgresql/templates/pvc.yaml deleted file mode 100644 index f1d38dfb14..0000000000 --- a/kubernetes/dmaap/charts/postgresql/templates/pvc.yaml +++ /dev/null @@ -1,28 +0,0 @@ -{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}} -kind: PersistentVolumeClaim -apiVersion: v1 -metadata: - name: {{ template "postgresql.fullname" . }} - labels: - app: {{ template "postgresql.fullname" . }} - chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" - release: "{{ .Release.Name }}" - heritage: "{{ .Release.Service }}" -{{- if .Values.persistence.annotations }} - annotations: -{{ toYaml .Values.persistence.annotations | indent 4 }} -{{- end }} -spec: - accessModes: - - {{ .Values.persistence.accessMode | quote }} - resources: - requests: - storage: {{ .Values.persistence.size | quote }} -{{- if .Values.persistence.storageClass }} -{{- if (eq "-" .Values.persistence.storageClass) }} - storageClassName: "" -{{- else }} - storageClassName: "{{ .Values.persistence.storageClass }}" -{{- end }} -{{- end }} -{{- end -}} diff --git a/kubernetes/dmaap/charts/postgresql/templates/secrets.yaml b/kubernetes/dmaap/charts/postgresql/templates/secrets.yaml deleted file mode 100644 index 6dd4c7da55..0000000000 --- a/kubernetes/dmaap/charts/postgresql/templates/secrets.yaml +++ /dev/null @@ -1,19 +0,0 @@ -apiVersion: v1 -kind: Secret -metadata: - name: {{ template "postgresql.fullname" . }} - labels: - app: {{ template "postgresql.fullname" . }} - chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" - release: "{{ .Release.Name }}" - heritage: "{{ .Release.Service }}" -type: Opaque -data: - {{ if .Values.postgresPassword }} - postgres-password: {{ .Values.postgresPassword | b64enc | quote }} - {{ else }} - postgres-password: {{ randAlphaNum 10 | b64enc | quote }} - {{ end }} - {{- if .Values.metrics.customMetrics }} - custom-metrics.yaml: {{ toYaml .Values.metrics.customMetrics | b64enc | quote }} - {{- end }} diff --git a/kubernetes/dmaap/charts/postgresql/templates/svc.yaml b/kubernetes/dmaap/charts/postgresql/templates/svc.yaml deleted file mode 100644 index f6373c8368..0000000000 --- a/kubernetes/dmaap/charts/postgresql/templates/svc.yaml +++ /dev/null @@ -1,30 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: dmaap-prov-{{ template "postgresql.name" . }} - namespace: {{ .Values.global.nsPrefix }} - labels: - app: {{ template "postgresql.fullname" . }} - chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" - release: "{{ .Release.Name }}" - heritage: "{{ .Release.Service }}" -{{- if .Values.metrics.enabled }} - annotations: - prometheus.io/scrape: "true" - prometheus.io/port: "9187" -{{- end }} -spec: - type: {{ .Values.service.type }} - ports: - - name: postgresql - port: {{ .Values.service.port }} - targetPort: postgresql - {{- if (and (eq .Values.service.type "NodePort") (not (empty .Values.service.nodePort))) }} - nodePort: {{ .Values.service.nodePort }} - {{- end }} -{{- if .Values.service.externalIPs }} - externalIPs: -{{ toYaml .Values.service.externalIPs | indent 4 }} -{{- end }} - selector: - app: {{ template "postgresql.fullname" . }} diff --git a/kubernetes/dmaap/charts/postgresql/values.yaml b/kubernetes/dmaap/charts/postgresql/values.yaml deleted file mode 100644 index 37bbddaef9..0000000000 --- a/kubernetes/dmaap/charts/postgresql/values.yaml +++ /dev/null @@ -1,123 +0,0 @@ -## postgres image repository -image: "postgres" -## postgres image version -## ref: https://hub.docker.com/r/library/postgres/tags/ -## -imageTag: "9.6.2" - -## Specify a imagePullPolicy -## 'Always' if imageTag is 'latest', else set to 'IfNotPresent' -## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images -## -# imagePullPolicy: - -## Specify imagePullSecrets -## ref: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod -## -# imagePullSecrets: myregistrykey - -## Create a database user -## Default: postgres -#postgresUser: "dmaap" -## Default: random 10 character string -#postgresPassword: "onapdemodb" - -## Create a database -## Default: the postgres user -#postgresDatabase: "dmaap" - -## Specify initdb arguments, e.g. --data-checksums -## ref: https://github.com/docker-library/docs/blob/master/postgres/content.md#postgres_initdb_args -## ref: https://www.postgresql.org/docs/current/static/app-initdb.html -# postgresInitdbArgs: - -## Use an alternate scheduler, e.g. "stork". -## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/ -## -# schedulerName: - -## Specify runtime config parameters as a dict, using camelCase, e.g. -## {"sharedBuffers": "500MB"} -## ref: https://www.postgresql.org/docs/current/static/runtime-config.html -# postgresConfig: - -## Persist data to a persitent volume -persistence: - enabled: false - - ## A manually managed Persistent Volume and Claim - ## Requires persistence.enabled: true - ## If defined, PVC must be created manually before volume will be bound - # existingClaim: - - ## database data Persistent Volume Storage Class - ## If defined, storageClassName: <storageClass> - ## If set to "-", storageClassName: "", which disables dynamic provisioning - ## If undefined (the default) or set to null, no storageClassName spec is - ## set, choosing the default provisioner. (gp2 on AWS, standard on - ## GKE, AWS & OpenStack) - ## - # storageClass: "-" - accessMode: ReadWriteOnce - size: 8Gi - subPath: "postgresql-db" - mountPath: /var/lib/postgresql/data/pgdata - - # annotations: {} - -metrics: - enabled: false - image: wrouesnel/postgres_exporter - imageTag: v0.1.1 - imagePullPolicy: IfNotPresent - resources: - requests: - memory: 256Mi - cpu: 100m - ## Define additional custom metrics - ## ref: https://github.com/wrouesnel/postgres_exporter#adding-new-metrics-via-a-config-file - # customMetrics: - # pg_database: - # query: "SELECT d.datname AS name, CASE WHEN pg_catalog.has_database_privilege(d.datname, 'CONNECT') THEN pg_catalog.pg_database_size(d.datname) ELSE 0 END AS size FROM pg_catalog.pg_database d where datname not in ('template0', 'template1', 'postgres')" - # metrics: - # - name: - # usage: "LABEL" - # description: "Name of the database" - # - size_bytes: - # usage: "GAUGE" - # description: "Size of the database in bytes" - -## Configure resource requests and limits -## ref: http://kubernetes.io/docs/user-guide/compute-resources/ -## -resources: - requests: - memory: 256Mi - cpu: 100m - -service: - type: ClusterIP - port: 5432 - externalIPs: [] - ## Manually set NodePort value - ## Requires service.type: NodePort - # nodePort: - -networkPolicy: - ## Enable creation of NetworkPolicy resources. - ## - enabled: false - - ## The Policy model to apply. When set to false, only pods with the correct - ## client label will have network access to the port PostgreSQL is listening - ## on. When true, PostgreSQL will accept connections from any source - ## (with the correct destination port). - ## - allowExternal: true - -## Node labels and tolerations for pod assignment -## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector -## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#taints-and-tolerations-beta-feature -nodeSelector: {} -tolerations: [] -affinity: {} diff --git a/kubernetes/dmaap/resources/config/README.txt b/kubernetes/dmaap/resources/config/README.txt deleted file mode 100644 index 5cc01497f5..0000000000 --- a/kubernetes/dmaap/resources/config/README.txt +++ /dev/null @@ -1,10 +0,0 @@ -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/dmaap/resources/config/application.properties b/kubernetes/dmaap/resources/config/application.properties deleted file mode 100644 index 496a15a531..0000000000 --- a/kubernetes/dmaap/resources/config/application.properties +++ /dev/null @@ -1 +0,0 @@ -sampleConfigKey=sampleConfigValue
\ No newline at end of file diff --git a/kubernetes/dmaap/resources/config/buscontroller.env b/kubernetes/dmaap/resources/config/buscontroller.env deleted file mode 100644 index 74d7822faa..0000000000 --- a/kubernetes/dmaap/resources/config/buscontroller.env +++ /dev/null @@ -1,12 +0,0 @@ -DMAAPBC_PG_ENABLED=true -DMAAPBC_PGHOST=dmaap-prov-postgresql -DMAAPBC_PGDBNAME={{ .Values.global.postgresDatabase }} -DMAAPBC_PGCRED={{ .Values.global.postgresPassword }} -DMAAPBC_PGUSER={{ .Values.global.postgresUser }} -DMAAPBC_MR_CNAME={{ .Values.dmaapMessageRouterService }} -DMAAPBC_AAF_URL={{ .Values.aafURL }} -DMAAPBC_TOPICMGR_USER={{ .Values.topicMgrUser }} -DMAAPBC_TOPICMGR_PWD={{ .Values.topicMgrPwd }} -DMAAPBC_ADMIN_USER={{ .Values.adminUser }} -DMAAPBC_ADMIN_PWD={{ .Values.adminPwd }} - diff --git a/kubernetes/dmaap/templates/deployment.yaml b/kubernetes/dmaap/templates/deployment.yaml deleted file mode 100644 index cfc4db0327..0000000000 --- a/kubernetes/dmaap/templates/deployment.yaml +++ /dev/null @@ -1,112 +0,0 @@ -# Copyright © 2018 AT&T Intellectual Property. All rights reserved. -# -# 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.name" . }}-{{ .Values.buscontroller.service }} - namespace: {{ .Values.global.nsPrefix }} - labels: - app: {{ include "common.name" . }}-{{ .Values.buscontroller.service }} - chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} - release: {{ .Release.Name }} - heritage: {{ .Release.Service }} -spec: - replicas: {{ .Values.buscontroller.replicaCount }} - template: - metadata: - labels: - app: {{ include "common.name" . }}-{{ .Values.buscontroller.service }} - release: {{ .Release.Name }} - spec: - initContainers: -#Example init container for dependency checking -# - command: -# - /root/ready.py -# args: -# - --container-name -# - mariadb -# env: -# - name: NAMESPACE -# valueFrom: -# fieldRef: -# apiVersion: v1 -# fieldPath: metadata.namespace -# image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}" -# imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} -# name: {{ include "common.name" . }}-readiness - containers: - - name: {{ include "common.name" . }}-{{ .Values.buscontroller.service }} - image: "{{ .Values.global.repository | default .Values.repository }}/{{ .Values.image.buscontrollerImage }}:{{ .Values.image.buscontrollerVersion }}" - imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} - ports: - - containerPort: {{ .Values.buscontroller.httpExternalPort }} -# wait till we get SSL certs before enabling this port -# - containerPort: {{ .Values.buscontroller.httpsPort }} - # disable liveness probe when breakpoints set in debugger - # so K8s doesn't restart unresponsive container - {{- if eq .Values.liveness.enabled true }} - livenessProbe: - httpGet: - port: {{ .Values.buscontroller.httpExternalPort }} - path: /webapi/info - initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }} - periodSeconds: {{ .Values.liveness.periodSeconds }} - {{ end -}} - readinessProbe: - httpGet: - port: {{ .Values.buscontroller.httpExternalPort }} - path: /webapi/info - initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }} - periodSeconds: {{ .Values.readiness.periodSeconds }} - env: -#Example environment variable passed to container -# - name: DEBUG_FLAG -# value: {{ .Values.global.debugEnabled | default .Values.debugEnabled | quote }} - volumeMounts: - - mountPath: /etc/localtime - name: localtime - readOnly: true - - mountPath: /opt/app/config - name: {{ include "common.name" . }}-config - 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: {{ include "common.name" . }}-config - configMap: - name: {{ include "common.fullname" . }}-configmap - items: - - key: buscontroller.env - path: conf -#Example config file mount into container -# - name: {{ include "common.fullname" . }}-config -# configMap: -# name: {{ include "common.fullname" . }}-configmap -# items: -# - key: application.properties -# path: application.properties - imagePullSecrets: - - name: "{{ .Values.global.nsPrefix }}-docker-registry-key" diff --git a/kubernetes/dmaap/templates/service.yaml b/kubernetes/dmaap/templates/service.yaml deleted file mode 100644 index 9580e75590..0000000000 --- a/kubernetes/dmaap/templates/service.yaml +++ /dev/null @@ -1,60 +0,0 @@ -# Copyright © 2018 AT&T Intellectual Property. All rights reserved. -# -# 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. - -#{{ if not .Values.disableBuscontroller }} -apiVersion: v1 -kind: Service -metadata: - name: {{ include "common.name" . }}-{{ .Values.buscontroller.service }} - namespace: {{ .Values.global.nsPrefix }} - labels: - app: {{ .Values.buscontroller.service }} - chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} - release: {{ .Release.Name }} - heritage: {{ .Release.Service }} - annotations: -# Example MSB registration annotation -# msb.onap.org/service-info: '[ -# { -# "serviceName": "so", -# "version": "v1", -# "url": "/ecomp/mso/infra", -# "protocol": "REST" -# "port": "8080", -# "visualRange":"1" -# } -# ]' -spec: - type: {{ .Values.buscontroller.type }} - ports: - {{if eq .Values.buscontroller.type "NodePort" -}} - - port: {{ .Values.buscontroller.httpExternalPort }} - targetPort: {{ .Values.buscontroller.httpExternalPort }} - nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.buscontroller.httpPort }} - name: "{{ .Values.buscontroller.name }}-http-port" -# This will be needed when we get SSL certificates -# - port: {{ .Values.buscontroller.httpsExternalPort }} -# targetPort: {{ .Values.buscontroller.httpsExternalPort }} -# nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.buscontroller.httpsPort }} -# name: "{{ .Values.buscontroller.name }}-https-port" - {{- else -}} - - port: {{ .Values.buscontroller.externalPort }} - targetPort: {{ .Values.buscontroller.httpPort }} - name: {{ .Values.buscontroller.name }} - {{- end}} - selector: - app: {{ include "common.name" . }}-{{ .Values.buscontroller.service }} - release: {{ .Release.Name }} - -#{{ end }} diff --git a/kubernetes/dmaap/values.yaml b/kubernetes/dmaap/values.yaml index f6c49842a4..76f0383f2e 100644 --- a/kubernetes/dmaap/values.yaml +++ b/kubernetes/dmaap/values.yaml @@ -24,95 +24,4 @@ global: loggingImage: beats/filebeat:5.5.0 postgresDatabase: dmaap postgresUser: dmaap_admin - postgresPassword: onapdemodb - nsPrefix: onap - - -################################################################# -# Application configuration defaults. -################################################################# -#nsPrefix: onap -pullPolicy: Always - -# application images -repository: nexus3.onap.org:10001 - -image: - buscontrollerImage: onap/dmaap/buscontroller - buscontrollerVersion: 1.0.5 - - -# application configuration -# Example: -config: -# username: myusername -# password: mypassword -dmaapMessageRouterService: dmaap -aafURL: https://onap-aaf:8905/proxy/ -topicMgrUser: m23456@dmaapbc.onap.org -topicMgrPwd: onapdemo -adminUser: m12345@dmaapbc.onap.org -adminPwd: onapdemo - - - -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 - -buscontroller: - service: prov-api - type: NodePort - name: buscontroller - httpExternalPort: 8080 - httpsExternalPort: 8443 - httpPort: 42 - httpsPort: 43 -# default number of instances - replicas: 1 -# flag to enable debugging - application support required - debugEnabled: false - -service: - #Example service definition with external, internal and node ports. - #Services may use any combination of ports depending on the 'type' of - #service being defined. - type: NodePort - name: <onap-app> - externalPort: <8080> - internalPort: <80> - nodePort: <replace with unused node port suffix eg. 23> - -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 + postgresPassword: onapdemodb
\ No newline at end of file diff --git a/kubernetes/multicloud/charts/multicloud-ocata/templates/NOTES.txt b/kubernetes/multicloud/charts/multicloud-ocata/templates/NOTES.txt new file mode 100644 index 0000000000..befedf4578 --- /dev/null +++ b/kubernetes/multicloud/charts/multicloud-ocata/templates/NOTES.txt @@ -0,0 +1,34 @@ +# Copyright © 2018 Amdocs, AT&T, 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. + + +1. Get the application URL by running these commands: +{{- if .Values.ingress.enabled }} +{{- range .Values.ingress.hosts }} + http://{{ . }} +{{- end }} +{{- else if contains "NodePort" .Values.service.type }} + export NODE_PORT=$(kubectl get --namespace {{ include "common.namespace" . }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "common.name" . }}) + export NODE_IP=$(kubectl get nodes --namespace {{ include "common.namespace" . }} -o jsonpath="{.items[0].status.addresses[0].address}") + echo http://$NODE_IP:$NODE_PORT +{{- else if contains "LoadBalancer" .Values.service.type }} + NOTE: It may take a few minutes for the LoadBalancer IP to be available. + You can watch the status of by running 'kubectl get svc -w {{ include "common.name" . }}' + export SERVICE_IP=$(kubectl get svc --namespace {{ include "common.namespace" . }} {{ include "common.name" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}') + echo http://$SERVICE_IP:{{ .Values.service.externalPort }} +{{- else if contains "ClusterIP" .Values.service.type }} + export POD_NAME=$(kubectl get pods --namespace {{ include "common.namespace" . }} -l "app={{ include "common.name" . }},release={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}") + echo "Visit http://127.0.0.1:8080 to use your application" + kubectl port-forward $POD_NAME 8080:{{ .Values.service.internalPort }} +{{- end }} diff --git a/kubernetes/multicloud/charts/multicloud-ocata/values.yaml b/kubernetes/multicloud/charts/multicloud-ocata/values.yaml index db0397561a..a1f72eabcc 100644 --- a/kubernetes/multicloud/charts/multicloud-ocata/values.yaml +++ b/kubernetes/multicloud/charts/multicloud-ocata/values.yaml @@ -60,6 +60,9 @@ service: internalPort: 9006 nodePort: 93 +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 diff --git a/kubernetes/multicloud/charts/multicloud-vio/templates/NOTES.txt b/kubernetes/multicloud/charts/multicloud-vio/templates/NOTES.txt new file mode 100644 index 0000000000..befedf4578 --- /dev/null +++ b/kubernetes/multicloud/charts/multicloud-vio/templates/NOTES.txt @@ -0,0 +1,34 @@ +# Copyright © 2018 Amdocs, AT&T, 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. + + +1. Get the application URL by running these commands: +{{- if .Values.ingress.enabled }} +{{- range .Values.ingress.hosts }} + http://{{ . }} +{{- end }} +{{- else if contains "NodePort" .Values.service.type }} + export NODE_PORT=$(kubectl get --namespace {{ include "common.namespace" . }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "common.name" . }}) + export NODE_IP=$(kubectl get nodes --namespace {{ include "common.namespace" . }} -o jsonpath="{.items[0].status.addresses[0].address}") + echo http://$NODE_IP:$NODE_PORT +{{- else if contains "LoadBalancer" .Values.service.type }} + NOTE: It may take a few minutes for the LoadBalancer IP to be available. + You can watch the status of by running 'kubectl get svc -w {{ include "common.name" . }}' + export SERVICE_IP=$(kubectl get svc --namespace {{ include "common.namespace" . }} {{ include "common.name" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}') + echo http://$SERVICE_IP:{{ .Values.service.externalPort }} +{{- else if contains "ClusterIP" .Values.service.type }} + export POD_NAME=$(kubectl get pods --namespace {{ include "common.namespace" . }} -l "app={{ include "common.name" . }},release={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}") + echo "Visit http://127.0.0.1:8080 to use your application" + kubectl port-forward $POD_NAME 8080:{{ .Values.service.internalPort }} +{{- end }} diff --git a/kubernetes/multicloud/charts/multicloud-vio/values.yaml b/kubernetes/multicloud/charts/multicloud-vio/values.yaml index 187f2b9562..4fea235b5b 100644 --- a/kubernetes/multicloud/charts/multicloud-vio/values.yaml +++ b/kubernetes/multicloud/charts/multicloud-vio/values.yaml @@ -60,6 +60,9 @@ service: internalPort: 9004 nodePort: 92 +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 diff --git a/kubernetes/multicloud/charts/multicloud-windriver/templates/NOTES.txt b/kubernetes/multicloud/charts/multicloud-windriver/templates/NOTES.txt new file mode 100644 index 0000000000..befedf4578 --- /dev/null +++ b/kubernetes/multicloud/charts/multicloud-windriver/templates/NOTES.txt @@ -0,0 +1,34 @@ +# Copyright © 2018 Amdocs, AT&T, 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. + + +1. Get the application URL by running these commands: +{{- if .Values.ingress.enabled }} +{{- range .Values.ingress.hosts }} + http://{{ . }} +{{- end }} +{{- else if contains "NodePort" .Values.service.type }} + export NODE_PORT=$(kubectl get --namespace {{ include "common.namespace" . }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "common.name" . }}) + export NODE_IP=$(kubectl get nodes --namespace {{ include "common.namespace" . }} -o jsonpath="{.items[0].status.addresses[0].address}") + echo http://$NODE_IP:$NODE_PORT +{{- else if contains "LoadBalancer" .Values.service.type }} + NOTE: It may take a few minutes for the LoadBalancer IP to be available. + You can watch the status of by running 'kubectl get svc -w {{ include "common.name" . }}' + export SERVICE_IP=$(kubectl get svc --namespace {{ include "common.namespace" . }} {{ include "common.name" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}') + echo http://$SERVICE_IP:{{ .Values.service.externalPort }} +{{- else if contains "ClusterIP" .Values.service.type }} + export POD_NAME=$(kubectl get pods --namespace {{ include "common.namespace" . }} -l "app={{ include "common.name" . }},release={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}") + echo "Visit http://127.0.0.1:8080 to use your application" + kubectl port-forward $POD_NAME 8080:{{ .Values.service.internalPort }} +{{- end }} diff --git a/kubernetes/multicloud/charts/multicloud-windriver/values.yaml b/kubernetes/multicloud/charts/multicloud-windriver/values.yaml index 1126284f11..919289c65d 100644 --- a/kubernetes/multicloud/charts/multicloud-windriver/values.yaml +++ b/kubernetes/multicloud/charts/multicloud-windriver/values.yaml @@ -60,6 +60,9 @@ liveness: failureThreshold: 5 enabled: true +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 diff --git a/kubernetes/multicloud/resources/config/provider-plugin.json b/kubernetes/multicloud/resources/config/provider-plugin.json new file mode 100644 index 0000000000..0ac4701aa9 --- /dev/null +++ b/kubernetes/multicloud/resources/config/provider-plugin.json @@ -0,0 +1,29 @@ +{ + "openstack": { + "vim_type": "openstack", + "versions": { + "titanium_cloud": { + "version": "titanium_cloud", + "extra_info_hint": "", + "provider_plugin": "multicloud-titanium_cloud" + }, + "ocata": { + "version": "ocata", + "extra_info_hint": "", + "provider_plugin": "multicloud-ocata" + } + }, + "provider_plugin": "multicloud-ocata" + }, + "vmware": { + "vim_type": "vmware", + "versions": { + "4.0": { + "version": "4.0", + "extra_info_hint": "", + "provider_plugin": "multicloud-vio" + } + }, + "provider_plugin": "multicloud-vio" + } +}
\ No newline at end of file diff --git a/kubernetes/multicloud/templates/NOTES.txt b/kubernetes/multicloud/templates/NOTES.txt new file mode 100644 index 0000000000..befedf4578 --- /dev/null +++ b/kubernetes/multicloud/templates/NOTES.txt @@ -0,0 +1,34 @@ +# Copyright © 2018 Amdocs, AT&T, 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. + + +1. Get the application URL by running these commands: +{{- if .Values.ingress.enabled }} +{{- range .Values.ingress.hosts }} + http://{{ . }} +{{- end }} +{{- else if contains "NodePort" .Values.service.type }} + export NODE_PORT=$(kubectl get --namespace {{ include "common.namespace" . }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "common.name" . }}) + export NODE_IP=$(kubectl get nodes --namespace {{ include "common.namespace" . }} -o jsonpath="{.items[0].status.addresses[0].address}") + echo http://$NODE_IP:$NODE_PORT +{{- else if contains "LoadBalancer" .Values.service.type }} + NOTE: It may take a few minutes for the LoadBalancer IP to be available. + You can watch the status of by running 'kubectl get svc -w {{ include "common.name" . }}' + export SERVICE_IP=$(kubectl get svc --namespace {{ include "common.namespace" . }} {{ include "common.name" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}') + echo http://$SERVICE_IP:{{ .Values.service.externalPort }} +{{- else if contains "ClusterIP" .Values.service.type }} + export POD_NAME=$(kubectl get pods --namespace {{ include "common.namespace" . }} -l "app={{ include "common.name" . }},release={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}") + echo "Visit http://127.0.0.1:8080 to use your application" + kubectl port-forward $POD_NAME 8080:{{ .Values.service.internalPort }} +{{- end }} diff --git a/kubernetes/multicloud/templates/configmap.yaml b/kubernetes/multicloud/templates/configmap.yaml index e420fb99f7..dc356a3d9a 100644 --- a/kubernetes/multicloud/templates/configmap.yaml +++ b/kubernetes/multicloud/templates/configmap.yaml @@ -29,3 +29,11 @@ metadata: namespace: {{ include "common.namespace" . }} data: {{ tpl (.Files.Glob "resources/config/log/framework/*").AsConfig . | indent 2 }} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "common.fullname" . }}-provider-plugin-configmap + namespace: {{ include "common.namespace" . }} +data: +{{ tpl (.Files.Glob "resources/config/provider-plugin.json").AsConfig . | indent 2 }} diff --git a/kubernetes/multicloud/templates/deployment.yaml b/kubernetes/multicloud/templates/deployment.yaml index f42d5f3f8f..3a0671c911 100644 --- a/kubernetes/multicloud/templates/deployment.yaml +++ b/kubernetes/multicloud/templates/deployment.yaml @@ -61,6 +61,9 @@ spec: - mountPath: /opt/multivimbroker/multivimbroker/pub/config/log.yml name: framework-logconfig subPath: log.yml + - mountPath: /opt/multivimbroker/multivimbroker/pub/config/provider-plugin.json + name: provider-plugin + subPath: provider-plugin.json ports: - containerPort: {{ .Values.service.internalPort }} # disable liveness probe when breakpoints set in debugger @@ -104,6 +107,9 @@ spec: volumes: - name: framework-log emptyDir: {} + - name: provider-plugin + configMap: + name: {{ include "common.fullname" . }}-provider-plugin-configmap - name: framework-data-filebeat emptyDir: {} - name: filebeat-conf diff --git a/kubernetes/onap/requirements.yaml b/kubernetes/onap/requirements.yaml index d2cacb6562..8c9c12845b 100644 --- a/kubernetes/onap/requirements.yaml +++ b/kubernetes/onap/requirements.yaml @@ -48,6 +48,10 @@ dependencies: version: ~2.0.0 repository: '@local' condition: dcaegen2.enabled + - name: dmaap + version: ~2.0.0 + repository: '@local' + condition: dmaap.enabled - name: esr version: ~2.0.0 repository: '@local' diff --git a/kubernetes/onap/resources/environments/dev.yaml b/kubernetes/onap/resources/environments/dev.yaml index a8dd5243ff..651cb9160e 100644 --- a/kubernetes/onap/resources/environments/dev.yaml +++ b/kubernetes/onap/resources/environments/dev.yaml @@ -93,10 +93,6 @@ sdnc: config: enableClustering: false - dmaap-listener: - config: - dmaapPort: 3904 - mysql: disableNfsProvisioner: false replicaCount: 1 diff --git a/kubernetes/onap/values.yaml b/kubernetes/onap/values.yaml index a2427711cd..6107f3d44e 100644 --- a/kubernetes/onap/values.yaml +++ b/kubernetes/onap/values.yaml @@ -58,6 +58,14 @@ aai: enabled: true appc: enabled: true + config: + openStackType: OpenStackProvider + openStackName: OpenStack + openStackKeyStoneUrl: http://localhost:8181/apidoc/explorer/index.html + openStackServiceTenantName: default + openStackDomain: default + openStackUserName: admin + openStackEncryptedPassword: admin clamp: enabled: true cli: @@ -94,10 +102,6 @@ sdnc: config: enableClustering: false - dmaap-listener: - config: - dmaapPort: 3904 - mysql: disableNfsProvisioner: true replicaCount: 1 diff --git a/kubernetes/portal/charts/portal-app/resources/config/deliveries/properties/ONAPPORTAL/fusion.properties b/kubernetes/portal/charts/portal-app/resources/config/deliveries/properties/ONAPPORTAL/fusion.properties index 876c5c7b9a..9c6fc5104f 100755 --- a/kubernetes/portal/charts/portal-app/resources/config/deliveries/properties/ONAPPORTAL/fusion.properties +++ b/kubernetes/portal/charts/portal-app/resources/config/deliveries/properties/ONAPPORTAL/fusion.properties @@ -4,7 +4,7 @@ # validator settings #default_error_message = Default error message -login_url_no_ret_val = http://portal.api.simpledemo.onap.org:8989/ONAPPORTAL/login.htm +login_url_no_ret_val = http://{{.Values.global.portalHostName}}:{{.Values.global.portalPort}}/ONAPPORTAL/login.htm user_attribute_name = user diff --git a/kubernetes/portal/charts/portal-app/resources/config/deliveries/properties/ONAPPORTAL/music.properties b/kubernetes/portal/charts/portal-app/resources/config/deliveries/properties/ONAPPORTAL/music.properties index e375ac7cfe..10bfa47961 100644 --- a/kubernetes/portal/charts/portal-app/resources/config/deliveries/properties/ONAPPORTAL/music.properties +++ b/kubernetes/portal/charts/portal-app/resources/config/deliveries/properties/ONAPPORTAL/music.properties @@ -13,7 +13,7 @@ music.serialize.compress = true #By default it's eventual music.atomic.get = false music.atomic.put = true -cassandra.host={{.Values.cassandra.chart.name}}.{{.Release.Namespace}} -zookeeper.host={{.Values.zookeeper.chart.name}}.{{.Release.Namespace}} +cassandra.host={{.Values.cassandra.service.name}} +zookeeper.host={{.Values.zookeeper.service.name}} cassandra.user={{.Values.cassandra.config.cassandraUsername}} cassandra.password={{.Values.cassandra.config.cassandraPassword}} diff --git a/kubernetes/portal/charts/portal-app/resources/config/deliveries/properties/ONAPPORTAL/openid-connect.properties b/kubernetes/portal/charts/portal-app/resources/config/deliveries/properties/ONAPPORTAL/openid-connect.properties index 2a33551933..f99b2234ea 100755 --- a/kubernetes/portal/charts/portal-app/resources/config/deliveries/properties/ONAPPORTAL/openid-connect.properties +++ b/kubernetes/portal/charts/portal-app/resources/config/deliveries/properties/ONAPPORTAL/openid-connect.properties @@ -1,3 +1,3 @@ -authentication_server_url = http://portal.api.simpledemo.onap.org:8383/openid-connect-server-webapp/ -ecomp_openid_connect_client = http://portal.api.simpledemo.onap.org:8989/ONAPPORTAL/openid_connect_login -ecomp_redirect_uri = http://portal.api.simpledemo.onap.org:8989/ONAPPORTAL/welcome.htm +authentication_server_url = http://{{.Values.global.portalHostName}}:8383/openid-connect-server-webapp/ +ecomp_openid_connect_client = http://{{.Values.global.portalHostName}}:{{.Values.global.portalPort}}/ONAPPORTAL/openid_connect_login +ecomp_redirect_uri = http://{{.Values.global.portalHostName}}:{{.Values.global.portalPort}}/ONAPPORTAL/welcome.htm diff --git a/kubernetes/portal/charts/portal-app/resources/config/deliveries/properties/ONAPPORTAL/portal.properties b/kubernetes/portal/charts/portal-app/resources/config/deliveries/properties/ONAPPORTAL/portal.properties index 0e3381c61a..7561e3acf6 100755 --- a/kubernetes/portal/charts/portal-app/resources/config/deliveries/properties/ONAPPORTAL/portal.properties +++ b/kubernetes/portal/charts/portal-app/resources/config/deliveries/properties/ONAPPORTAL/portal.properties @@ -5,10 +5,10 @@ max.idle.time = 5 user.attribute.name = user_attribute # for single sign on -ecomp_redirect_url = http://portal.api.simpledemo.onap.org:8989/ONAPPORTAL/login.htm +ecomp_redirect_url = http://{{.Values.global.portalHostName}}:{{.Values.global.portalPort}}/ONAPPORTAL/login.htm # URL of the ECOMP Portal REST API -ecomp_rest_url = http://portal.api.simpledemo.onap.org:8989/ONAPPORTAL/auxapi +ecomp_rest_url = http://{{.Values.global.portalHostName}}:{{.Values.global.portalPort}}/ONAPPORTAL/auxapi ueb_listeners_enable = true @@ -16,7 +16,7 @@ ueb_app_key = 7GkVcrO6sIDb3ngW ueb_app_secret = uCYgKjWKK5IxPGNNZzYSSWo9 ueb_app_mailbox_name = ECOMP-PORTAL-INBOX -ueb_url_list = {{.Values.messageRouter.chart.name}}.{{.Release.Namespace}} +ueb_url_list = message-router ecomp_portal_inbox_name = ECOMP-PORTAL-INBOX # Consumer group name for UEB topic. diff --git a/kubernetes/portal/charts/portal-app/resources/config/deliveries/properties/ONAPPORTAL/system.properties b/kubernetes/portal/charts/portal-app/resources/config/deliveries/properties/ONAPPORTAL/system.properties index 29149bc56a..109d8d24d2 100755 --- a/kubernetes/portal/charts/portal-app/resources/config/deliveries/properties/ONAPPORTAL/system.properties +++ b/kubernetes/portal/charts/portal-app/resources/config/deliveries/properties/ONAPPORTAL/system.properties @@ -1,6 +1,6 @@ #mysql db.driver = org.mariadb.jdbc.Driver -db.connectionURL = jdbc:mariadb:failover://{{.Values.mariadb.chart.name}}.{{.Release.Namespace}}:3306/portal +db.connectionURL = jdbc:mariadb:failover://portal-db:3306/portal db.userName =root db.password =Aa123456 db.hib.dialect = org.hibernate.dialect.MySQLDialect @@ -44,7 +44,7 @@ log_cron = 0 * * * * ? * sessiontimeout_feed_cron = 0 0/5 * * * ? * #Front end URL -frontend_url = http://portal.api.simpledemo.onap.org:8989/ONAPPORTAL/applicationsHome +frontend_url = http://{{.Values.global.portalHostName}}:{{.Values.global.portalPort}}/ONAPPORTAL/applicationsHome # An Unqiue 128-bit value defined to indentify a specific version of @@ -70,7 +70,7 @@ online_user_update_rate = 30 online_user_update_duration = 300 #authenticate user server -authenticate_user_server=http://portal.api.simpledemo.onap.org:8383/openid-connect-server-webapp/allUsers +authenticate_user_server=http://{{.Values.global.portalHostName}}:8383/openid-connect-server-webapp/allUsers #window width threshold to collapse left/right menu when page onload window_width_threshold_left_menu = 1400 @@ -82,7 +82,7 @@ notification_update_duration = 900 #Microservices Related Properties for Portal microservices.widget.protocol = http -microservices.widget.hostname = {{.Values.widget.chart.name}}.{{.Release.Namespace}} +microservices.widget.hostname = portal-widget microservices.widget.username = widget_user microservices.widget.password = M+KcrCMVrR1rAxtiFE49n1uXC3FCkNBqFgeYsubEC/U= #This property won't be needed after consul is functional on VMs - diff --git a/kubernetes/portal/charts/portal-app/templates/service.yaml b/kubernetes/portal/charts/portal-app/templates/service.yaml index f9339e671a..4ccf2b02b8 100644 --- a/kubernetes/portal/charts/portal-app/templates/service.yaml +++ b/kubernetes/portal/charts/portal-app/templates/service.yaml @@ -29,14 +29,14 @@ metadata: "version": "v2", "url": "/", "protocol": "REST" - "port": "8989", + "port": "{{ .Values.service.externalPort }}", "visualRange":"1" } ]' spec: type: {{ .Values.service.type }} ports: - {{if eq .Values.service.type "NodePort" -}} + {{- if or (eq .Values.service.type "NodePort") (eq .Values.service.type "LoadBalancer") }} - port: {{ .Values.service.externalPort }} targetPort: {{ .Values.service.internalPort }} nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }} @@ -59,7 +59,7 @@ spec: - port: {{ .Values.service.externalPort3 }} targetPort: {{ .Values.service.internalPort3 }} name: {{ .Values.service.portName }}3 - {{- end}} + {{- end }} selector: app: {{ include "common.name" . }} release: {{ .Release.Name }} diff --git a/kubernetes/portal/charts/portal-app/values.yaml b/kubernetes/portal/charts/portal-app/values.yaml index 1663674a4e..657fa18039 100644 --- a/kubernetes/portal/charts/portal-app/values.yaml +++ b/kubernetes/portal/charts/portal-app/values.yaml @@ -31,9 +31,6 @@ repository: nexus3.onap.org:10001 image: onap/portal-app:2.1-STAGING-latest pullPolicy: Always -# flag to enable debugging - application support required -debugEnabled: false - # default number of instances replicaCount: 1 @@ -54,7 +51,7 @@ readiness: periodSeconds: 10 service: - type: NodePort + type: LoadBalancer name: portal-app portName: portal-app externalPort: 8989 @@ -68,22 +65,22 @@ service: nodePort3: 14 mariadb: - chart: + service: name: portal-db widget: - chart: + service: name: portal-widget cassandra: - chart: + service: name: portal-cassandra config: cassandraUsername: root cassandraPassword: Aa123456 zookeeper: - chart: + service: name: portal-zookeeper messageRouter: - chart: + service: name: message-router ingress: diff --git a/kubernetes/portal/charts/portal-mariadb/resources/config/mariadb/oom_updates.sql b/kubernetes/portal/charts/portal-mariadb/resources/config/mariadb/oom_updates.sql index 781b04626c..f6bd05f614 100644 --- a/kubernetes/portal/charts/portal-mariadb/resources/config/mariadb/oom_updates.sql +++ b/kubernetes/portal/charts/portal-mariadb/resources/config/mariadb/oom_updates.sql @@ -4,5 +4,21 @@ Any updates required by OOM to the portaldb are made here. 1. split up SDC-FE and SDC-BE. Originally both FE and BE point to the same IP while the OOM K8s version has these service split up. */ -UPDATE fn_app SET app_rest_endpoint = 'http://sdc.api.be.simpledemo.onap.org:8080/api/v2' where app_name = 'SDC'; -UPDATE fn_app SET app_url = 'http://cli.api.simpledemo.onap.org:8080', app_type = 1 where app_name='CLI'; +-- app_url is the FE, app_rest_endpoint is the BE +--portal-sdk => TODO: doesn't open a node port yet +update fn_app set app_url = 'http://{{.Values.config.portalSdkHostName}}:{{.Values.config.portalSdkPort}}/ONAPPORTALSDK/welcome.htm', app_rest_endpoint = 'http://portal-sdk:8990/ONAPPORTALSDK/api/v2' where app_name = 'xDemo App'; +--dmaap-bc => the dmaap-bc doesn't open a node port.. +update fn_app set app_url = 'http://{{.Values.config.dmaapBcHostName}}:{{.Values.config.dmaapBcPort}}/ECOMPDBCAPP/dbc#/dmaap', app_rest_endpoint = 'http://dmaap-bc:8989/ECOMPDBCAPP/api/v2' where app_name = 'DMaaP Bus Ctrl'; +--sdc-be => 8443:30204, 8080:30205 +--sdc-fe => 8181:30206, 9443:30207 +update fn_app set app_url = 'http://{{.Values.config.sdcFeHostName}}:{{.Values.config.sdcFePort}}/sdc1/portal', app_rest_endpoint = 'http://sdc-be:8080/api/v2' where app_name = 'SDC'; +--pap => 8443:30219 +update fn_app set app_url = 'http://{{.Values.config.papHostName}}:{{.Values.config.papPort}}/onap/policy', app_rest_endpoint = 'http://pap:8443/onap/api/v2' where app_name = 'Policy'; +--vid => 8080:30200 +update fn_app set app_url = 'http://{{.Values.config.vidHostName}}:{{.Values.config.vidPort}}/vid/welcome.htm', app_rest_endpoint = 'http://vid:8080/vid/api/v2' where app_name = 'Virtual Infrastructure Deployment'; +--sparky => TODO: sparky doesn't open a node port yet +update fn_app set app_url = 'http://{{.Values.config.aaiSparkyHostName}}:{{.Values.config.aaiSparkyPort}}/services/aai/webapp/index.html#/viewInspect', app_rest_endpoint = 'http://aai-sparky-be.{{.Release.Namespace}}:9517/api/v2' where app_name = 'A&AI UI'; +--cli => 8080:30260 +update fn_app set app_url = 'http://{{.Values.config.cliHostName}}:{{.Values.config.cliPort}}/', app_type = 1 where app_name = 'CLI'; +--msb-discovery => 10081:30281 this is clearly incorrect +update fn_app set app_url = 'http://{{.Values.config.msbDiscoveryHostName}}:{{.Values.config.msbDiscoveryPort}}/iui/microservices/default.html' where app_name = 'MSB';
\ No newline at end of file diff --git a/kubernetes/portal/charts/portal-mariadb/values.yaml b/kubernetes/portal/charts/portal-mariadb/values.yaml index 8118db330f..7d9b82a629 100644 --- a/kubernetes/portal/charts/portal-mariadb/values.yaml +++ b/kubernetes/portal/charts/portal-mariadb/values.yaml @@ -36,7 +36,38 @@ config: mariadbRootPassword: Aa123456 #The directory where sql files are found in the projects gerrit repo. sqlSourceDirectory: portal/deliveries - + # sdc frontend assignment for port 8181 + sdcFePort: "30206" + # application's front end hostname. Must be resolvable on the client side environment + sdcFeHostName: "sdc.api.fe.simpledemo.onap.org" + # policy pap ui assignment for port 8443 + papPort: "30219" + # application's front end hostname. Must be resolvable on the client side environment + papHostName: "policy.api.simpledemo.onap.org" + # vid ui assignment for port 8080 + vidPort: "30200" + # application's front end hostname. Must be resolvable on the client side environment + vidHostName: "vid.api.simpledemo.onap.org" + # aai sparky ui assignment for port 8080 + aaiSparkyPort: "" # TODO: populate with + # application's front end hostname. Must be resolvable on the client side environment + aaiSparkyHostName: "aai.api.sparky.simpledemo.onap.org" + # cli ui assignment for port 8080 + cliPort: "30260" + # application's front end hostname. Must be resolvable on the client side environment + cliHostName: "cli.api.simpledemo.onap.org" + # portal sdk (demo app) ui assignment for port 8990 + portalSdkPort: "" # TODO: populate with port + # application's front end hostname. Must be resolvable on the client side environment + portalSdkHostName: "portal-sdk.simpledemo.onap.org" + # dmaap bus controller ui assignment for port ? + dmaapBcPort: "" # TODO: populate with + # application's front end hostname. Must be resolvable on the client side environment + dmaapBcHostName: "dmaap-bc.simpledemo.onap.org" + # msb discovery ui assignment for port ? + msbDiscoveryPort: "30281" + # application's front end hostname. Must be resolvable on the client side environment + msbDiscoveryHostName: "msb.api.discovery.simpledemo.onap.org" # default number of instances replicaCount: 1 diff --git a/kubernetes/portal/charts/portal-sdk/resources/config/deliveries/properties/ONAPPORTALSDK/music.properties b/kubernetes/portal/charts/portal-sdk/resources/config/deliveries/properties/ONAPPORTALSDK/music.properties index 72e97006c7..b17797658a 100644 --- a/kubernetes/portal/charts/portal-sdk/resources/config/deliveries/properties/ONAPPORTALSDK/music.properties +++ b/kubernetes/portal/charts/portal-sdk/resources/config/deliveries/properties/ONAPPORTALSDK/music.properties @@ -14,7 +14,7 @@ music.serialize.compress = true music.atomic.get = false music.atomic.put = true -cassandra.host={{.Values.cassandra.chart.name}}.{{.Release.Namespace}} -zookeeper.host={{.Values.zookeeper.chart.name}}.{{.Release.Namespace}} +cassandra.host={{.Values.cassandra.service.name}} +zookeeper.host={{.Values.zookeeper.service.name}} cassandra.user={{.Values.cassandra.config.cassandraUsername}} cassandra.password={{.Values.cassandra.config.cassandraPassword}} diff --git a/kubernetes/portal/charts/portal-sdk/resources/config/deliveries/properties/ONAPPORTALSDK/portal.properties b/kubernetes/portal/charts/portal-sdk/resources/config/deliveries/properties/ONAPPORTALSDK/portal.properties index 4b6f251e8b..f161609087 100755 --- a/kubernetes/portal/charts/portal-sdk/resources/config/deliveries/properties/ONAPPORTALSDK/portal.properties +++ b/kubernetes/portal/charts/portal-sdk/resources/config/deliveries/properties/ONAPPORTALSDK/portal.properties @@ -20,17 +20,17 @@ use_rest_for_functional_menu=true portal.api.impl.class = org.onap.portalapp.service.OnBoardingApiServiceImpl # CSP Global Log On for single sign on -ecomp_redirect_url = http://portal.api.simpledemo.onap.org:8989/ONAPPORTAL/login.htm +ecomp_redirect_url = http://{{.Values.global.portalHostName}}:{{.Values.global.portalPort}}/ONAPPORTAL/login.htm # URL of the ECOMP Portal REST API -ecomp_rest_url = http://portal.api.simpledemo.onap.org:8989/ONAPPORTAL/auxapi +ecomp_rest_url = http://{{.Values.global.portalHostName}}:{{.Values.global.portalPort}}/ONAPPORTAL/auxapi # Applications do not need to run a UEB listener in 1610. ueb_listeners_enable = false # UEB Configuration -ueb_url_list = {{.Values.messageRouter.chart.name}}.{{.Release.Namespace}} +ueb_url_list = message-router # ECOMP Portal listens on this UEB topic ecomp_portal_inbox_name = ECOMP-PORTAL-INBOX # Replace these 3 default values with the ones for your specific App, diff --git a/kubernetes/portal/charts/portal-sdk/resources/config/deliveries/properties/ONAPPORTALSDK/system.properties b/kubernetes/portal/charts/portal-sdk/resources/config/deliveries/properties/ONAPPORTALSDK/system.properties index cec75f06ba..2d92cd3b66 100755 --- a/kubernetes/portal/charts/portal-sdk/resources/config/deliveries/properties/ONAPPORTALSDK/system.properties +++ b/kubernetes/portal/charts/portal-sdk/resources/config/deliveries/properties/ONAPPORTALSDK/system.properties @@ -24,7 +24,7 @@ decryption_key = AGLDdG4D04BKm2IxIWEr8o== ########################################################################## db.driver = org.mariadb.jdbc.Driver -db.connectionURL = jdbc:mariadb://{{.Values.mariadb.chart.name}}.{{.Release.Namespace}}:3306/ecomp_sdk +db.connectionURL = jdbc:mariadb://portal-db:3306/ecomp_sdk db.userName = root db.password = Aa123456 db.min_pool_size = 5 @@ -62,7 +62,7 @@ guard_notebook_url= #authenticate user server #TODO: what is this URL supposed to be pointing to? Nothing in portal opens 8383 -authenticate_user_server=http://portal.onap.org:8383/openid-connect-server-webapp/allUsers +authenticate_user_server=http://{{.Values.global.portalHostName}}:8383/openid-connect-server-webapp/allUsers #cookie domain cookie_domain = onap.org diff --git a/kubernetes/portal/charts/portal-sdk/templates/deployment.yaml b/kubernetes/portal/charts/portal-sdk/templates/deployment.yaml index 1c94c78bb4..3b1d1fd478 100644 --- a/kubernetes/portal/charts/portal-sdk/templates/deployment.yaml +++ b/kubernetes/portal/charts/portal-sdk/templates/deployment.yaml @@ -38,7 +38,7 @@ spec: - /root/ready.py args: - --container-name - - {{ .Values.mariadb.chart.name }} + - "portal-db" env: - name: NAMESPACE valueFrom: diff --git a/kubernetes/portal/charts/portal-sdk/values.yaml b/kubernetes/portal/charts/portal-sdk/values.yaml index 1bb7e5ab65..4974ea2755 100644 --- a/kubernetes/portal/charts/portal-sdk/values.yaml +++ b/kubernetes/portal/charts/portal-sdk/values.yaml @@ -61,22 +61,22 @@ service: internalPort: 8080 mariadb: - chart: + service: name: portal-db widget: - chart: + service: name: portal-widget cassandra: - chart: + service: name: portal-cassandra config: cassandraUsername: root cassandraPassword: Aa123456 zookeeper: - chart: + service: name: portal-zookeeper messageRouter: - chart: + service: name: message-router ingress: diff --git a/kubernetes/portal/charts/portal-widget/resources/config/deliveries/properties/ONAPWIDGETMS/application.properties b/kubernetes/portal/charts/portal-widget/resources/config/deliveries/properties/ONAPWIDGETMS/application.properties index e228e2b10d..738834902c 100644 --- a/kubernetes/portal/charts/portal-widget/resources/config/deliveries/properties/ONAPWIDGETMS/application.properties +++ b/kubernetes/portal/charts/portal-widget/resources/config/deliveries/properties/ONAPWIDGETMS/application.properties @@ -6,7 +6,7 @@ spring.http.multipart.max-request-size=128MB microservice.widget.location=/tmp ## App DB Properties -spring.datasource.url=jdbc:mysql://{{.Values.mariadb.chart.name}}.{{include "common.namespace" .}}:3306/portal +spring.datasource.url=jdbc:mysql://portal-db:3306/portal spring.datasource.username=root spring.datasource.password=Aa123456 spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQLDialect @@ -19,7 +19,7 @@ security.user.name=widget_user security.user.password=ENC(IjywcRnI9+nuVEh9+OFFiRWAjBT1n718) initialization.default.widgets=true -initialization.widgetData.url=http://portal.api.simpledemo.onap.org:8989/ONAPPORTAL/commonWidgets +initialization.widgetData.url=http://{{.Values.global.portalHostName}}:{{.Values.global.portalPort}}/ONAPPORTAL/commonWidgets ## Account Basic Authentication Properties account.user.name=portal diff --git a/kubernetes/portal/charts/portal-widget/templates/deployment.yaml b/kubernetes/portal/charts/portal-widget/templates/deployment.yaml index bff7924e29..6ce7d4eaee 100644 --- a/kubernetes/portal/charts/portal-widget/templates/deployment.yaml +++ b/kubernetes/portal/charts/portal-widget/templates/deployment.yaml @@ -38,7 +38,7 @@ spec: - /root/ready.py args: - --container-name - - {{ .Values.mariadb.chart.name }} + - "portal-db" env: - name: NAMESPACE valueFrom: diff --git a/kubernetes/portal/charts/portal-widget/values.yaml b/kubernetes/portal/charts/portal-widget/values.yaml index dc73446175..4f1a2a5a71 100644 --- a/kubernetes/portal/charts/portal-widget/values.yaml +++ b/kubernetes/portal/charts/portal-widget/values.yaml @@ -55,7 +55,7 @@ readiness: periodSeconds: 10 mariadb: - chart: + service: name: portal-db service: diff --git a/kubernetes/portal/charts/portal-zookeeper/values.yaml b/kubernetes/portal/charts/portal-zookeeper/values.yaml index 52408a83d7..951acf5b78 100644 --- a/kubernetes/portal/charts/portal-zookeeper/values.yaml +++ b/kubernetes/portal/charts/portal-zookeeper/values.yaml @@ -48,7 +48,7 @@ readiness: service: type: ClusterIP - name: portal-zk + name: portal-zookeeper portName: portal-zk externalPort: 2181 internalPort: 2181 diff --git a/kubernetes/portal/resources/config/log/filebeat/filebeat.yml b/kubernetes/portal/resources/config/log/filebeat/filebeat.yml index b0d4690754..0bc14ea908 100644 --- a/kubernetes/portal/resources/config/log/filebeat/filebeat.yml +++ b/kubernetes/portal/resources/config/log/filebeat/filebeat.yml @@ -21,7 +21,7 @@ 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.logstashServiceName}}.{{.Release.Namespace}}:{{.Values.config.logstashPort}}"] + hosts: ["{{.Values.config.logstashServiceName}}:{{.Values.config.logstashPort}}"] #If enable will do load balancing among availabe Logstash, automatically. loadbalance: true diff --git a/kubernetes/portal/values.yaml b/kubernetes/portal/values.yaml index e22b3f9669..ebbfbc38e1 100644 --- a/kubernetes/portal/values.yaml +++ b/kubernetes/portal/values.yaml @@ -15,6 +15,11 @@ global: env: tomcatDir: "/opt/apache-tomcat-8.0.37" + # portal frontend port + portalPort: "8989" + # application's front end hostname. Must be resolvable on the client side environment + portalHostName: "portal.api.simpledemo.onap.org" + config: logstashServiceName: log-ls logstashPort: 5044 @@ -23,21 +28,21 @@ portal-mariadb: nameOverride: portal-db mariadb: - chart: + service: name: portal-db widget: - chart: + service: name: portal-widget cassandra: - chart: + service: name: portal-cassandra config: cassandraUsername: root cassandraPassword: Aa123456 zookeeper: - chart: + service: name: portal-zookeeper messageRouter: - chart: + service: name: message-router
\ No newline at end of file diff --git a/kubernetes/sdc/charts/sdc-be/templates/deployment.yaml b/kubernetes/sdc/charts/sdc-be/templates/deployment.yaml index 6c491b773d..b08c74edad 100644 --- a/kubernetes/sdc/charts/sdc-be/templates/deployment.yaml +++ b/kubernetes/sdc/charts/sdc-be/templates/deployment.yaml @@ -36,12 +36,6 @@ spec: - /root/ready.py args: - --container-name - - "sdc-es" - - --container-name - - "sdc-cs" - - --container-name - - "sdc-kb" - - --container-name - "sdc-onboarding-be" env: - name: NAMESPACE @@ -58,7 +52,7 @@ spec: - /root/job_complete.py args: - --job-name - - {{ .Release.Name }}-sdc-cs-config-cassandra + - {{ .Release.Name }}-sdc-es-config-elasticsearch env: - name: NAMESPACE valueFrom: diff --git a/kubernetes/sdc/charts/sdc-be/templates/job.yaml b/kubernetes/sdc/charts/sdc-be/templates/job.yaml index 535d271bb0..c2203d5c20 100644 --- a/kubernetes/sdc/charts/sdc-be/templates/job.yaml +++ b/kubernetes/sdc/charts/sdc-be/templates/job.yaml @@ -23,6 +23,7 @@ metadata: release: {{ .Release.Name }} heritage: {{ .Release.Service }} spec: + backoffLimit: 20 template: metadata: labels: diff --git a/kubernetes/sdc/charts/sdc-cs/templates/job.yaml b/kubernetes/sdc/charts/sdc-cs/templates/job.yaml index 5318d9149d..cdccbf40a5 100644 --- a/kubernetes/sdc/charts/sdc-cs/templates/job.yaml +++ b/kubernetes/sdc/charts/sdc-cs/templates/job.yaml @@ -23,6 +23,7 @@ metadata: release: {{ .Release.Name }} heritage: {{ .Release.Service }} spec: + backoffLimit: 20 template: metadata: labels: diff --git a/kubernetes/sdc/charts/sdc-es/templates/job.yaml b/kubernetes/sdc/charts/sdc-es/templates/job.yaml index 6fa0015066..6fd3bc7a42 100644 --- a/kubernetes/sdc/charts/sdc-es/templates/job.yaml +++ b/kubernetes/sdc/charts/sdc-es/templates/job.yaml @@ -23,6 +23,7 @@ metadata: release: {{ .Release.Name }} heritage: {{ .Release.Service }} spec: + backoffLimit: 20 template: metadata: labels: diff --git a/kubernetes/sdc/charts/sdc-fe/templates/deployment.yaml b/kubernetes/sdc/charts/sdc-fe/templates/deployment.yaml index dc96fc77cd..bbc779044b 100644 --- a/kubernetes/sdc/charts/sdc-fe/templates/deployment.yaml +++ b/kubernetes/sdc/charts/sdc-fe/templates/deployment.yaml @@ -37,10 +37,6 @@ spec: args: - --container-name - "sdc-kb" - - --container-name - - "sdc-be" - - --container-name - - "sdc-onboarding-be" env: - name: NAMESPACE valueFrom: diff --git a/kubernetes/sdc/charts/sdc-kb/templates/deployment.yaml b/kubernetes/sdc/charts/sdc-kb/templates/deployment.yaml index f7467cb621..f33dbe6e38 100644 --- a/kubernetes/sdc/charts/sdc-kb/templates/deployment.yaml +++ b/kubernetes/sdc/charts/sdc-kb/templates/deployment.yaml @@ -31,20 +31,20 @@ spec: release: {{ .Release.Name }} spec: initContainers: - - name: {{ include "common.name" . }}-readiness + - name: {{ include "common.name" . }}-job-completion + image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}" + imagePullPolicy: "{{ .Values.global.pullPolicy | default .Values.pullPolicy }}" command: - - /root/ready.py + - /root/job_complete.py args: - - --container-name - - "sdc-es" + - --job-name + - {{ .Release.Name }}-sdc-es-config-elasticsearch env: - name: NAMESPACE valueFrom: fieldRef: apiVersion: v1 fieldPath: metadata.namespace - image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}" - imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} containers: - name: {{ include "common.name" . }} image: "{{ include "common.repository" . }}/{{ .Values.image }}" diff --git a/kubernetes/sdc/charts/sdc-onboarding-be/templates/deployment.yaml b/kubernetes/sdc/charts/sdc-onboarding-be/templates/deployment.yaml index 20e2ffa104..328a28dccb 100644 --- a/kubernetes/sdc/charts/sdc-onboarding-be/templates/deployment.yaml +++ b/kubernetes/sdc/charts/sdc-onboarding-be/templates/deployment.yaml @@ -31,20 +31,6 @@ spec: release: {{ .Release.Name }} spec: initContainers: - - name: {{ include "common.name" . }}-readiness - command: - - /root/ready.py - args: - - --container-name - - "sdc-cs" - env: - - name: NAMESPACE - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: metadata.namespace - image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}" - imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} - name: {{ include "common.name" . }}-job-completion image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}" imagePullPolicy: "{{ .Values.global.pullPolicy | default .Values.pullPolicy }}" @@ -52,7 +38,7 @@ spec: - /root/job_complete.py args: - --job-name - - {{ .Release.Name }}-sdc-cs-config-cassandra + - {{ .Release.Name }}-sdc-onboarding-be-cassandra-init env: - name: NAMESPACE valueFrom: diff --git a/kubernetes/sdc/charts/sdc-onboarding-be/templates/job.yaml b/kubernetes/sdc/charts/sdc-onboarding-be/templates/job.yaml index d089e9a5d7..35f2ef849c 100644 --- a/kubernetes/sdc/charts/sdc-onboarding-be/templates/job.yaml +++ b/kubernetes/sdc/charts/sdc-onboarding-be/templates/job.yaml @@ -23,6 +23,7 @@ metadata: release: {{ .Release.Name }} heritage: {{ .Release.Service }} spec: + backoffLimit: 20 template: metadata: labels: @@ -31,20 +32,6 @@ spec: spec: restartPolicy: Never initContainers: - - name: {{ include "common.name" . }}-init-readiness - image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}" - imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} - command: - - /root/ready.py - args: - - --container-name - - sdc-cs - env: - - name: NAMESPACE - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: metadata.namespace - name: {{ include "common.name" . }}-job-completion image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}" imagePullPolicy: "{{ .Values.global.pullPolicy | default .Values.pullPolicy }}" diff --git a/kubernetes/sdnc/charts/dmaap-listener/resources/config/dhcpalert.properties b/kubernetes/sdnc/charts/dmaap-listener/resources/config/dhcpalert.properties index dc0deb278e..de1346a461 100644 --- a/kubernetes/sdnc/charts/dmaap-listener/resources/config/dhcpalert.properties +++ b/kubernetes/sdnc/charts/dmaap-listener/resources/config/dhcpalert.properties @@ -14,7 +14,7 @@ password =admin contenttype =application/json authKey=fxoW4jZrO7mdLWWa:f4KxkoBtToyoEG7suMoV8KhnkwM= authDate=2016-02-18T13:57:37-0800 -host=dmaap.{{.Release.Namespace}}:3904 +host=message-router.{{.Release.Namespace}}:{{.Values.config.dmaapPort}} topic=VCPE-DHCP-EVENT group=jmsgrp id=sdnc1 diff --git a/kubernetes/sdnc/charts/dmaap-listener/templates/deployment.yaml b/kubernetes/sdnc/charts/dmaap-listener/templates/deployment.yaml index e712a410c8..733b21e7bc 100644 --- a/kubernetes/sdnc/charts/dmaap-listener/templates/deployment.yaml +++ b/kubernetes/sdnc/charts/dmaap-listener/templates/deployment.yaml @@ -38,6 +38,8 @@ spec: - {{ .Values.config.mysqlChartName }} - --container-name - {{ .Values.config.sdncChartName }} + - --container-name + - {{ .Values.config.msgRouterContainerName }} env: - name: NAMESPACE valueFrom: diff --git a/kubernetes/sdnc/charts/dmaap-listener/values.yaml b/kubernetes/sdnc/charts/dmaap-listener/values.yaml index 1a5ca2cdf7..189aa72b1f 100644 --- a/kubernetes/sdnc/charts/dmaap-listener/values.yaml +++ b/kubernetes/sdnc/charts/dmaap-listener/values.yaml @@ -39,6 +39,7 @@ config: dmaapPort: 3904 mysqlChartName: sdnc-dbhost sdncChartName: sdnc + msgRouterContainerName: dmaap configDir: /opt/onap/sdnc/data/properties # default number of instances @@ -64,7 +65,7 @@ ingress: enabled: false service: - name: dmaap-listener + name: sdnc-dmaap-listener resources: {} #resources: diff --git a/kubernetes/sdnc/charts/ueb-listener/resources/config/dblib.properties b/kubernetes/sdnc/charts/ueb-listener/resources/config/dblib.properties new file mode 100644 index 0000000000..15cb2182a2 --- /dev/null +++ b/kubernetes/sdnc/charts/ueb-listener/resources/config/dblib.properties @@ -0,0 +1,37 @@ +### +# ============LICENSE_START======================================================= +# openECOMP : SDN-C +# ================================================================================ +# Copyright (C) 2017 AT&T Intellectual Property. All rights +# reserved. +# ================================================================================ +# 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========================================================= +### + +# dblib.properties +org.onap.ccsdk.sli.dbtype=jdbc + +org.onap.ccsdk.sli.jdbc.hosts=sdnctldb01 +org.onap.ccsdk.sli.jdbc.url=jdbc:mysql://{{.Values.mysql.service.name}}.{{.Release.Namespace}}:{{.Values.mysql.service.internalPort}}/sdnctl +org.onap.ccsdk.sli.jdbc.driver=org.mariadb.jdbc.Driver +org.onap.ccsdk.sli.jdbc.database=sdnctl +org.onap.ccsdk.sli.jdbc.user=sdnctl +org.onap.ccsdk.sli.jdbc.password=gamma +org.onap.ccsdk.sli.jdbc.connection.name=sdnctldb01 +org.onap.ccsdk.sli.jdbc.connection.timeout=50 +org.onap.ccsdk.sli.jdbc.request.timeout=100 +org.onap.ccsdk.sli.jdbc.limit.init=10 +org.onap.ccsdk.sli.jdbc.limit.min=10 +org.onap.ccsdk.sli.jdbc.limit.max=20 +org.onap.dblib.connection.recovery=false diff --git a/kubernetes/sdnc/charts/ueb-listener/resources/config/ueb-listener.properties b/kubernetes/sdnc/charts/ueb-listener/resources/config/ueb-listener.properties index 72dee15938..cd184bfc32 100644 --- a/kubernetes/sdnc/charts/ueb-listener/resources/config/ueb-listener.properties +++ b/kubernetes/sdnc/charts/ueb-listener/resources/config/ueb-listener.properties @@ -19,3 +19,4 @@ org.onap.ccsdk.sli.northbound.uebclient.keystore-path= org.onap.ccsdk.sli.northbound.uebclient.keystore-password= org.onap.ccsdk.sli.northbound.uebclient.xslt-path-list= org.onap.ccsdk.sli.northbound.uebclient.artifact-map=/opt/onap/sdnc/data/properties/artifact.map +org.onap.ccsdk.sli.northbound.uebclient.msg-bus-address=message-router.{{.Release.Namespace}} diff --git a/kubernetes/sdnc/charts/ueb-listener/templates/deployment.yaml b/kubernetes/sdnc/charts/ueb-listener/templates/deployment.yaml index b11cf95277..e3f324e046 100644 --- a/kubernetes/sdnc/charts/ueb-listener/templates/deployment.yaml +++ b/kubernetes/sdnc/charts/ueb-listener/templates/deployment.yaml @@ -38,6 +38,10 @@ spec: - {{ .Values.config.mysqlChartName }} - --container-name - {{ .Values.config.sdncChartName }} + - --container-name + - {{ .Values.config.sdcbeChartName }} + - --container-name + - {{ .Values.config.msgRouterContainerName }} env: - name: NAMESPACE valueFrom: diff --git a/kubernetes/sdnc/charts/ueb-listener/values.yaml b/kubernetes/sdnc/charts/ueb-listener/values.yaml index d04ba099ff..a6722eb056 100644 --- a/kubernetes/sdnc/charts/ueb-listener/values.yaml +++ b/kubernetes/sdnc/charts/ueb-listener/values.yaml @@ -39,6 +39,8 @@ config: uebPort: 3904 mysqlChartName: sdnc-dbhost sdncChartName: sdnc + sdcbeChartName: sdc-be + msgRouterContainerName: dmaap configDir: /opt/onap/sdnc/data/properties @@ -62,7 +64,12 @@ readiness: periodSeconds: 10 service: - name: ueb-listener + name: sdnc-ueb-listener + +mysql: + service: + name: sdnc-dbhost + internalPort: 3306 ingress: enabled: false diff --git a/kubernetes/sdnc/resources/config/conf/dblib.properties b/kubernetes/sdnc/resources/config/conf/dblib.properties index 499834e0e2..15cb2182a2 100644 --- a/kubernetes/sdnc/resources/config/conf/dblib.properties +++ b/kubernetes/sdnc/resources/config/conf/dblib.properties @@ -19,7 +19,7 @@ # ============LICENSE_END========================================================= ### -# dblib.properrties +# dblib.properties org.onap.ccsdk.sli.dbtype=jdbc org.onap.ccsdk.sli.jdbc.hosts=sdnctldb01 diff --git a/kubernetes/sdnc/templates/pv.yaml b/kubernetes/sdnc/templates/pv.yaml new file mode 100644 index 0000000000..e20e2818a3 --- /dev/null +++ b/kubernetes/sdnc/templates/pv.yaml @@ -0,0 +1,84 @@ +{{/* +# Copyright © 2018 Amdocs, AT&T, 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. +*/}} +{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}} +{{ $pvNum := default 1 .Values.replicaCount | int }} +kind: PersistentVolume +apiVersion: v1 +metadata: + name: {{ include "common.fullname" . }}-data0 + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.fullname" . }} + chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}" + release: "{{ .Release.Name }}" + heritage: "{{ .Release.Service }}" + name: {{ include "common.fullname" . }} +spec: + capacity: + storage: {{ .Values.persistence.size}} + accessModes: + - {{ .Values.persistence.accessMode }} + storageClassName: "{{ include "common.fullname" . }}-data" + persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }} + hostPath: + path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }}0 +{{ if gt $pvNum 1 }} +--- +kind: PersistentVolume +apiVersion: v1 +metadata: + name: {{ include "common.fullname" . }}-data1 + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.fullname" . }} + chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}" + release: "{{ .Release.Name }}" + heritage: "{{ .Release.Service }}" + name: {{ include "common.fullname" . }} +spec: + capacity: + storage: {{ .Values.persistence.size}} + accessModes: + - {{ .Values.persistence.accessMode }} + storageClassName: "{{ include "common.fullname" . }}-data" + persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }} + hostPath: + path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }}1 +{{ end }} +{{ if gt $pvNum 2 }} +--- +kind: PersistentVolume +apiVersion: v1 +metadata: + name: {{ include "common.fullname" . }}-data2 + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.fullname" . }} + chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}" + release: "{{ .Release.Name }}" + heritage: "{{ .Release.Service }}" + name: {{ include "common.fullname" . }} +spec: + capacity: + storage: {{ .Values.persistence.size}} + accessModes: + - {{ .Values.persistence.accessMode }} + storageClassName: "{{ include "common.fullname" . }}-data" + persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }} + hostPath: + path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }}2 +{{ end }} +{{- end -}}
\ No newline at end of file diff --git a/kubernetes/sdnc/templates/statefulset.yaml b/kubernetes/sdnc/templates/statefulset.yaml index 55eaf2b4d0..ccf283ff4c 100644 --- a/kubernetes/sdnc/templates/statefulset.yaml +++ b/kubernetes/sdnc/templates/statefulset.yaml @@ -102,6 +102,8 @@ spec: - mountPath: /opt/onap/sdnc/svclogic/config/svclogic.properties name: onap-sdnc-svclogic-config subPath: svclogic.properties + - mountPath: {{ .Values.persistence.mdsalPath }} + name: {{ include "common.fullname" . }}-data - mountPath: /var/log/onap name: logs resources: @@ -127,6 +129,8 @@ spec: name: logs - mountPath: /usr/share/filebeat/data name: data-filebeat + imagePullSecrets: + - name: "{{ include "common.namespace" . }}-docker-registry-key" volumes: - name: localtime hostPath: @@ -183,6 +187,19 @@ spec: - key: svclogic.properties path: svclogic.properties mode: 0644 - - imagePullSecrets: - - name: "{{ include "common.namespace" . }}-docker-registry-key" + {{ if not .Values.persistence.enabled }} + - name: {{ include "common.fullname" . }}-data + emptyDir: {} + {{ else }} + volumeClaimTemplates: + - metadata: + name: {{ include "common.fullname" . }}-data + labels: + name: {{ include "common.fullname" . }} + spec: + accessModes: [ {{ .Values.persistence.accessMode }} ] + storageClassName: {{ include "common.fullname" . }}-data + resources: + requests: + storage: {{ .Values.persistence.size }} + {{ end }}
\ No newline at end of file diff --git a/kubernetes/sdnc/values.yaml b/kubernetes/sdnc/values.yaml index e3cd8ae4ed..2603cd9fca 100644 --- a/kubernetes/sdnc/values.yaml +++ b/kubernetes/sdnc/values.yaml @@ -142,6 +142,28 @@ service: geoNodePort5: 65 geoNodePort6: 66 +## Persist data to a persitent volume +persistence: + enabled: true + + ## A manually managed Persistent Volume and Claim + ## Requires persistence.enabled: true + ## If defined, PVC must be created manually before volume will be bound + # existingClaim: + volumeReclaimPolicy: Retain + + ## database data Persistent Volume Storage Class + ## If defined, storageClassName: <storageClass> + ## If set to "-", storageClassName: "", which disables dynamic provisioning + ## If undefined (the default) or set to null, no storageClassName spec is + ## set, choosing the default provisioner. (gp2 on AWS, standard on + ## GKE, AWS & OpenStack) + accessMode: ReadWriteOnce + size: 1Gi + mountPath: /dockerdata-nfs + mountSubPath: sdnc/mdsal + mdsalPath: /opt/opendaylight/current/daexim + ingress: enabled: false |