diff options
213 files changed, 4196 insertions, 1558 deletions
diff --git a/TOSCA/Helm/helmdelete.sh b/TOSCA/Helm/helmdelete.sh index e098fbbc13..201471ba73 100644 --- a/TOSCA/Helm/helmdelete.sh +++ b/TOSCA/Helm/helmdelete.sh @@ -16,8 +16,6 @@ # limitations under the License. #============LICENSE_END============================================ -helm delete $1-$2 --purge -kubectl delete namespace $1-$2 -kubectl delete clusterrolebinding $1-$2-admin-binding +helm delete $2 --purge diff --git a/TOSCA/Helm/helminstall.sh b/TOSCA/Helm/helminstall.sh index a6e09c8959..f108825621 100644 --- a/TOSCA/Helm/helminstall.sh +++ b/TOSCA/Helm/helminstall.sh @@ -19,12 +19,5 @@ printf "%s" "$*" printf `pwd` printf "%s" "---------------" -kubectl create namespace $1-$2 -kubectl create clusterrolebinding $1-$2-admin-binding --clusterrole=cluster-admin --serviceaccount=$1-$2:default -# assign default auth token -if [[ -z $ONAP_DEFAULT_AUTH_TOKEN ]]; then - DEFAULT_SECRET=`kubectl get secrets -n $1-$2 | grep default-token | awk '{ print $1}'` - ONAP_DEFAULT_AUTH_TOKEN=`kubectl get secrets $DEFAULT_SECRET -n $1-$2 -o yaml | grep 'token:' | awk '{ print $2}' | base64 -d` -fi -kubectl --namespace $1-$2 create secret docker-registry $1-docker-registry-key --docker-server=nexus3.onap.org:10001 --docker-username=docker --docker-password=docker --docker-email=@ -helm install ../$2/ --name $1-$2 --namespace $1 --set nsPrefix=$1,nodePortPrefix=302,kubeMasterAuthToken=$ONAP_DEFAULT_AUTH_TOKEN
\ No newline at end of file + +helm install local/$2 --name $2 --namespace $1
\ No newline at end of file diff --git a/TOSCA/Helm/k8s_delete_env.sh b/TOSCA/Helm/k8s_delete_env.sh new file mode 100644 index 0000000000..c715e22660 --- /dev/null +++ b/TOSCA/Helm/k8s_delete_env.sh @@ -0,0 +1,24 @@ +#!/bin/bash +# ============LICENSE_START========================================== +# =================================================================== +# Copyright (c) 2017 AT&T +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#============LICENSE_END============================================ + +kubectl delete secret $1-docker-registry-key +kubectl delete clusterrolebinding $1-admin-binding +kubectl delete namespace $1 + + + diff --git a/TOSCA/Helm/k8s_setup_env.sh b/TOSCA/Helm/k8s_setup_env.sh new file mode 100644 index 0000000000..1e226f2ae0 --- /dev/null +++ b/TOSCA/Helm/k8s_setup_env.sh @@ -0,0 +1,25 @@ +#!/bin/bash +# ============LICENSE_START========================================== +# =================================================================== +# Copyright (c) 2017 AT&T +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#============LICENSE_END============================================ + +printf "%s" "$*" +printf `pwd` +printf "%s" "---------------" + +kubectl create namespace $1 +kubectl create clusterrolebinding $1-admin-binding --clusterrole=cluster-admin --serviceaccount=$1:default +kubectl --namespace $1 create secret docker-registry $1-docker-registry-key --docker-server=nexus3.onap.org:10001 --docker-username=docker --docker-password=docker --docker-email=@
\ No newline at end of file diff --git a/TOSCA/Helm/onap-blueprint.yaml b/TOSCA/Helm/onap-blueprint.yaml index f86b590eda..d11597f3ab 100644 --- a/TOSCA/Helm/onap-blueprint.yaml +++ b/TOSCA/Helm/onap-blueprint.yaml @@ -28,7 +28,7 @@ inputs: ip: user: default: centos - namespace_perfix: + namespace: default: onap node_types: @@ -36,7 +36,7 @@ node_types: derived_from: cloudify.nodes.SoftwareComponent properties: cwd: - default: /home/centos/oom/kubernetes/oneclick + default: /home/centos/oom/kubernetes args: default: - onap @@ -79,203 +79,261 @@ node_templates: key: { get_secret: agent_key_private } user: { get_input: user } + k8s_env: + type: cloudify.nodes.SoftwareComponent + properties: + interfaces: + cloudify.interfaces.lifecycle: + start: + implementation: fabric.fabric_plugin.tasks.run_script + inputs: + script_path: k8s_setup_env.sh + process: + args: [{ get_input: namespace }] + fabric_env: + host_string: { get_input: ip } + user: { get_input: user } + key: { get_secret: agent_key_private } + stop: + implementation: fabric.fabric_plugin.tasks.run_script + inputs: + script_path: k8s_delete_env.sh + process: + args: [{ get_input: namespace }] + fabric_env: + host_string: { get_input: ip } + user: { get_input: user } + key: { get_secret: agent_key_private } + relationships: + - type: cloudify.relationships.connected_to + target: k8s_master + consul: type: cloudify.nodes.Helm properties: args: - - { get_input: namespace_perfix } + - { get_input: namespace } - consul relationships: - type: cloudify.relationships.connected_to - target: k8s_master + target: k8s_env msb: type: cloudify.nodes.Helm properties: args: - - { get_input: namespace_perfix } + - { get_input: namespace } - msb relationships: - type: cloudify.relationships.connected_to - target: k8s_master + target: k8s_env - - mso: + so: type: cloudify.nodes.Helm properties: args: - - { get_input: namespace_perfix } - - mso + - { get_input: namespace } + - so relationships: - type: cloudify.relationships.connected_to - target: k8s_master + target: k8s_env appc: type: cloudify.nodes.Helm properties: args: - - { get_input: namespace_perfix } + - { get_input: namespace } - appc relationships: - type: cloudify.relationships.connected_to - target: k8s_master + target: k8s_env message-router: type: cloudify.nodes.Helm properties: args: - - { get_input: namespace_perfix } + - { get_input: namespace } - message-router relationships: - type: cloudify.relationships.connected_to - target: k8s_master + target: k8s_env sdnc: type: cloudify.nodes.Helm properties: args: - - { get_input: namespace_perfix } + - { get_input: namespace } - sdnc relationships: - type: cloudify.relationships.connected_to - target: k8s_master + target: k8s_env vid: type: cloudify.nodes.Helm properties: args: - - { get_input: namespace_perfix } + - { get_input: namespace } - vid relationships: - type: cloudify.relationships.connected_to - target: k8s_master + target: k8s_env robot: type: cloudify.nodes.Helm properties: args: - - { get_input: namespace_perfix } + - { get_input: namespace } - robot relationships: - type: cloudify.relationships.connected_to - target: k8s_master + target: k8s_env policy: type: cloudify.nodes.Helm properties: args: - - { get_input: namespace_perfix } + - { get_input: namespace } - policy relationships: - type: cloudify.relationships.connected_to - target: k8s_master + target: k8s_env portal: type: cloudify.nodes.Helm properties: args: - - { get_input: namespace_perfix } + - { get_input: namespace } - portal relationships: - type: cloudify.relationships.connected_to - target: k8s_master + target: k8s_env aai: type: cloudify.nodes.Helm properties: args: - - { get_input: namespace_perfix } + - { get_input: namespace } - aai relationships: - type: cloudify.relationships.connected_to - target: k8s_master + target: k8s_env sdc: type: cloudify.nodes.Helm properties: args: - - { get_input: namespace_perfix } + - { get_input: namespace } - sdc relationships: - type: cloudify.relationships.connected_to - target: k8s_master + target: k8s_env log: type: cloudify.nodes.Helm properties: args: - - { get_input: namespace_perfix } + - { get_input: namespace } - log relationships: - type: cloudify.relationships.connected_to - target: k8s_master + target: k8s_env cli: type: cloudify.nodes.Helm properties: args: - - { get_input: namespace_perfix } + - { get_input: namespace } - cli relationships: - type: cloudify.relationships.connected_to - target: k8s_master + target: k8s_env multicloud: type: cloudify.nodes.Helm properties: args: - - { get_input: namespace_perfix } + - { get_input: namespace } - multicloud relationships: - type: cloudify.relationships.connected_to - target: k8s_master + target: k8s_env clamp: type: cloudify.nodes.Helm properties: args: - - { get_input: namespace_perfix } + - { get_input: namespace } - clamp relationships: - type: cloudify.relationships.connected_to - target: k8s_master + target: k8s_env vnfsdk: type: cloudify.nodes.Helm properties: args: - - { get_input: namespace_perfix } + - { get_input: namespace } - vnfsdk relationships: - type: cloudify.relationships.connected_to - target: k8s_master + target: k8s_env uui: type: cloudify.nodes.Helm properties: args: - - { get_input: namespace_perfix } + - { get_input: namespace } - uui relationships: - type: cloudify.relationships.connected_to - target: k8s_master + target: k8s_env aaf: type: cloudify.nodes.Helm properties: args: - - { get_input: namespace_perfix } + - { get_input: namespace } - aaf relationships: - type: cloudify.relationships.connected_to - target: k8s_master + target: k8s_env vfc: type: cloudify.nodes.Helm properties: args: - - { get_input: namespace_perfix } + - { get_input: namespace } - vfc relationships: - type: cloudify.relationships.connected_to - target: k8s_master + target: k8s_env + + dcaegen2: + type: cloudify.nodes.Helm + properties: + args: + - { get_input: namespace } + - dcaegen2 + relationships: + - type: cloudify.relationships.connected_to + target: k8s_env + + esr: + type: cloudify.nodes.Helm + properties: + args: + - { get_input: namespace } + - esr + relationships: + - type: cloudify.relationships.connected_to + target: k8s_env + + mock: + type: cloudify.nodes.Helm + properties: + args: + - { get_input: namespace } + - mock + relationships: + - type: cloudify.relationships.connected_to + target: k8s_env
\ No newline at end of file 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-champ/templates/deployment.yaml b/kubernetes/aai/charts/aai-champ/templates/deployment.yaml index 7176d09aeb..9a5d0ee2aa 100644 --- a/kubernetes/aai/charts/aai-champ/templates/deployment.yaml +++ b/kubernetes/aai/charts/aai-champ/templates/deployment.yaml @@ -36,6 +36,8 @@ spec: args: - --container-name - aai-resources + - --container-name + - global-kafka env: - name: NAMESPACE valueFrom: diff --git a/kubernetes/aai/charts/aai-modelloader/resources/config/auth/babel-client-cert.p12 b/kubernetes/aai/charts/aai-modelloader/resources/config/auth/babel-client-cert.p12 Binary files differnew file mode 100644 index 0000000000..dbf4fcacec --- /dev/null +++ b/kubernetes/aai/charts/aai-modelloader/resources/config/auth/babel-client-cert.p12 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 5604c1f877..e9b24b667c 100644 --- a/kubernetes/aai/charts/aai-modelloader/resources/config/model-loader.properties +++ b/kubernetes/aai/charts/aai-modelloader/resources/config/model-loader.properties @@ -10,14 +10,21 @@ ml.distribution.PASSWORD=OBF:1ks51l8d1o3i1pcc1r2r1e211r391kls1pyj1z7u1njf1lx51go ml.distribution.POLLING_INTERVAL=30 ml.distribution.POLLING_TIMEOUT=20 ml.distribution.USER=aai -ml.distribution.ARTIFACT_TYPES=MODEL_INVENTORY_PROFILE,MODEL_QUERY_SPEC,VNF_CATALOG +ml.distribution.ARTIFACT_TYPES=MODEL_QUERY_SPEC,TOSCA_CSAR +ml.distribution.MSG_BUS_ADDRESSES=message-router.{{.Release.Namespace}} # Model Loader AAI REST Client Configuration ml.aai.BASE_URL=https://aai.{{.Release.Namespace}}:8443 -ml.aai.MODEL_URL=/aai/v10/service-design-and-creation/models/model/ -ml.aai.NAMED_QUERY_URL=/aai/v10/service-design-and-creation/named-queries/named-query/ -ml.aai.VNF_IMAGE_URL=/aai/v8/service-design-and-creation/vnf-images +ml.aai.MODEL_URL=/aai/v*/service-design-and-creation/models/model/ +ml.aai.NAMED_QUERY_URL=/aai/v*/service-design-and-creation/named-queries/named-query/ +ml.aai.VNF_IMAGE_URL=/aai/v*/service-design-and-creation/vnf-images ml.aai.KEYSTORE_FILE=aai-os-cert.p12 ml.aai.KEYSTORE_PASSWORD=OBF:1i9a1u2a1unz1lr61wn51wn11lss1unz1u301i6o 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.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-resources/resources/config/janusgraph-cached.properties b/kubernetes/aai/charts/aai-resources/resources/config/janusgraph-cached.properties index 7e94ae4418..e3128b8fa5 100644 --- a/kubernetes/aai/charts/aai-resources/resources/config/janusgraph-cached.properties +++ b/kubernetes/aai/charts/aai-resources/resources/config/janusgraph-cached.properties @@ -24,10 +24,10 @@ query.fast-property=true query.smart-limit=false {{- $seed_size := default 1 .Values.global.cassandra.replicas | int -}} +{{- $global := . }} -# the following parameters are not reloaded automatically and require a manual bounce storage.backend=cassandra -storage.hostname={{- range $i, $e := until $seed_size }}aai-cassandra-{{ $i }},{{- end }} +storage.hostname={{- range $i, $e := until $seed_size }}{{ $global.Release.Name }}-aai-cassandra-{{ $i }},{{- end }} storage.cassandra.keyspace=aaigraph 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/charts/aai-traversal/resources/config/janusgraph-cached.properties b/kubernetes/aai/charts/aai-traversal/resources/config/janusgraph-cached.properties index 7e94ae4418..e3128b8fa5 100644 --- a/kubernetes/aai/charts/aai-traversal/resources/config/janusgraph-cached.properties +++ b/kubernetes/aai/charts/aai-traversal/resources/config/janusgraph-cached.properties @@ -24,10 +24,10 @@ query.fast-property=true query.smart-limit=false {{- $seed_size := default 1 .Values.global.cassandra.replicas | int -}} +{{- $global := . }} -# the following parameters are not reloaded automatically and require a manual bounce storage.backend=cassandra -storage.hostname={{- range $i, $e := until $seed_size }}aai-cassandra-{{ $i }},{{- end }} +storage.hostname={{- range $i, $e := until $seed_size }}{{ $global.Release.Name }}-aai-cassandra-{{ $i }},{{- end }} storage.cassandra.keyspace=aaigraph diff --git a/kubernetes/aai/charts/aai-traversal/templates/job.yaml b/kubernetes/aai/charts/aai-traversal/templates/job.yaml index c15c05398f..b9b2501304 100644 --- a/kubernetes/aai/charts/aai-traversal/templates/job.yaml +++ b/kubernetes/aai/charts/aai-traversal/templates/job.yaml @@ -90,14 +90,6 @@ spec: subPath: aai_keystore # disable liveness probe when breakpoints set in debugger # so K8s doesn't restart unresponsive container - volumeMounts: - - mountPath: /usr/share/filebeat/filebeat.yml - subPath: filebeat.yml - name: filebeat-conf - - mountPath: /opt/aai/logroot/AAI-GQ - name: {{ include "common.fullname" . }}-logs - - mountPath: /usr/share/filebeat/data - name: {{ include "common.fullname" . }}-filebeat volumes: - name: localtime hostPath: 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/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..962ecfdd27 100644 --- a/kubernetes/appc/values.yaml +++ b/kubernetes/appc/values.yaml @@ -97,6 +97,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 eef4dd7e65..8b782f9b05 100644 --- a/kubernetes/clamp/values.yaml +++ b/kubernetes/clamp/values.yaml @@ -42,17 +42,17 @@ config: dataRootDir: /dockerdata-nfs springApplicationJson: > { - "spring.datasource.cldsdb.url": "jdbc:mariadb:sequential://clamp-mariadb.{{include "common.namespace" .}}:3306/cldsdb4?autoReconnect=true&connectTimeout=10000&socketTimeout=10000&retriesAllDown=3", - "clamp.config.sdc.catalog.url": "https://sdc-be.{{include "common.namespace" .}}.svc.cluster.local:8443/sdc/v1/catalog/", - "clamp.config.sdc.hostUrl": "https://sdc-be.{{include "common.namespace" .}}.svc.cluster.local:8443/", - "clamp.config.sdc.serviceUrl": "https://sdc-be.{{include "common.namespace" .}}.svc.cluster.local:8443/sdc/v1/catalog/services", + "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", "clamp.config.sdc.serviceUsername": "clamp", "clamp.config.sdc.servicePassword": "b7acccda32b98c5bb7acccda32b98c5b05D511BD6D93626E90D18E9D24D9B78CD34C7EE8012F0A189A28763E82271E50A5D4EC10C7D93E06E0A2D27CAE66B981", - "clamp.config.dcae.inventory.url": "http://dcaegen2.{{include "common.namespace" .}}.svc.cluster.local:8080", - "clamp.config.dcae.dispatcher.url": "http://dcaegen2.{{include "common.namespace" .}}.svc.cluster.local:8080", - "clamp.config.policy.pdpUrl1": "https://policy-pdp.{{include "common.namespace" .}}.svc.cluster.local:9091/pdp/ , testpdp, alpha123", - "clamp.config.policy.pdpUrl2": "https://policy-pdp.{{include "common.namespace" .}}.svc.cluster.local:9091/pdp/ , testpdp, alpha123", - "clamp.config.policy.papUrl": "https://policy-pap.{{include "common.namespace" .}}.svc.cluster.local:8443/pap/ , testpap, alpha123", + "clamp.config.dcae.inventory.url": "http://dcaegen2:8080", + "clamp.config.dcae.dispatcher.url": "http://dcaegen2:8080", + "clamp.config.policy.pdpUrl1": "https://policy-pdp:9091/pdp/ , testpdp, alpha123", + "clamp.config.policy.pdpUrl2": "https://policy-pdp:9091/pdp/ , testpdp, alpha123", + "clamp.config.policy.papUrl": "https://policy-pap:8443/pap/ , testpap, alpha123", "clamp.config.policy.clientKey": "5CE79532B3A2CB4D132FC0C04BF916A7" } @@ -70,7 +70,7 @@ affinity: {} # probe configuration parameters liveness: - initialDelaySeconds: 10 + initialDelaySeconds: 30 periodSeconds: 10 # necessary to disable liveness probe when setting breakpoints # in debugger so K8s doesn't restart unresponsive container diff --git a/kubernetes/consul/charts/consul-server/templates/deployment.yaml b/kubernetes/consul/charts/consul-server/templates/deployment.yaml index d14c42bf19..12403e77c9 100644 --- a/kubernetes/consul/charts/consul-server/templates/deployment.yaml +++ b/kubernetes/consul/charts/consul-server/templates/deployment.yaml @@ -35,7 +35,7 @@ spec: name: {{ include "common.name" . }} spec: containers: - - image: "{{ .Values.repository | default .Values.global.repository }}/{{ .Values.image }}" + - image: "{{ include "common.repository" . }}/{{ .Values.image }}" command: ["/usr/local/bin/docker-entrypoint.sh"] - args: ["agent","-server","-client","0.0.0.0","-enable-script-checks","-bootstrap-expect=3","-ui","-join","{{ include "common.servicename" . }}.{{ include "common.namespace" . }}"] + args: ["agent","-server","-client","0.0.0.0","-enable-script-checks","-bootstrap-expect={{ .Values.replicaCount }}","-ui"] name: {{ include "common.name" . }} diff --git a/kubernetes/consul/charts/consul-server/values.yaml b/kubernetes/consul/charts/consul-server/values.yaml index 406f9b634e..081ba2a240 100644 --- a/kubernetes/consul/charts/consul-server/values.yaml +++ b/kubernetes/consul/charts/consul-server/values.yaml @@ -16,7 +16,6 @@ ################################################################# global: nodePortPrefix: 302 - repository: nexus3.onap.org:10001 repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ== readinessRepository: oomk8s readinessImage: readiness-check:2.0.0 @@ -34,7 +33,7 @@ pullPolicy: Always # flag to enable debugging - application support required debugEnabled: false -replicaCount: 3 +replicaCount: 1 nodeSelector: {} @@ -42,14 +41,14 @@ affinity: {} # probe configuration parameters liveness: - initialDelaySeconds: 10 + initialDelaySeconds: 90 periodSeconds: 10 # necessary to disable liveness probe when setting breakpoints # in debugger so K8s doesn't restart unresponsive container enabled: true readiness: - initialDelaySeconds: 10 + initialDelaySeconds: 90 periodSeconds: 10 service: diff --git a/kubernetes/consul/templates/deployment.yaml b/kubernetes/consul/templates/deployment.yaml index 504d54cc54..646922b30f 100644 --- a/kubernetes/consul/templates/deployment.yaml +++ b/kubernetes/consul/templates/deployment.yaml @@ -35,7 +35,7 @@ spec: name: {{ include "common.name" . }} spec: containers: - - image: "{{ .Values.repository | default .Values.global.repository }}/{{ .Values.image }}" + - image: "{{ include "common.repository" . }}/{{ .Values.image }}" command: - /bin/sh - "-c" diff --git a/kubernetes/consul/values.yaml b/kubernetes/consul/values.yaml index b35ec35cf4..6ff0390991 100644 --- a/kubernetes/consul/values.yaml +++ b/kubernetes/consul/values.yaml @@ -16,7 +16,6 @@ ################################################################# global: nodePortPrefix: 302 - repository: nexus3.onap.org:10001 repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ== readinessRepository: oomk8s readinessImage: readiness-check:2.0.0 @@ -47,14 +46,14 @@ affinity: {} # probe configuration parameters liveness: - initialDelaySeconds: 10 + initialDelaySeconds: 90 periodSeconds: 10 # necessary to disable liveness probe when setting breakpoints # in debugger so K8s doesn't restart unresponsive container enabled: true readiness: - initialDelaySeconds: 10 + initialDelaySeconds: 90 periodSeconds: 10 service: {} 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-healthcheck/Chart.yaml b/kubernetes/dcaegen2/charts/dcae-healthcheck/Chart.yaml index 770f82d2b3..4c01d4eca2 100644 --- a/kubernetes/dcaegen2/charts/dcae-healthcheck/Chart.yaml +++ b/kubernetes/dcaegen2/charts/dcae-healthcheck/Chart.yaml @@ -17,5 +17,5 @@ apiVersion: v1 description: ONAP DCAE Health Check -name: dcae-healtcheck +name: dcae-healthcheck version: 2.0.0 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/charts/dmaap-bus-controller/templates/NOTES.txt b/kubernetes/dmaap/charts/dmaap-bus-controller/templates/NOTES.txt new file mode 100644 index 0000000000..fbab5a3758 --- /dev/null +++ b/kubernetes/dmaap/charts/dmaap-bus-controller/templates/NOTES.txt @@ -0,0 +1,19 @@ +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" . }}-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 {{ 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 {{ 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..470fdfb031 100644 --- a/kubernetes/onap/values.yaml +++ b/kubernetes/onap/values.yaml @@ -94,10 +94,6 @@ sdnc: config: enableClustering: false - dmaap-listener: - config: - dmaapPort: 3904 - mysql: disableNfsProvisioner: true replicaCount: 1 diff --git a/kubernetes/policy/charts/drools/charts/nexus/templates/deployment.yaml b/kubernetes/policy/charts/drools/charts/nexus/templates/deployment.yaml index c4cc253b7f..c59ed08f3f 100644 --- a/kubernetes/policy/charts/drools/charts/nexus/templates/deployment.yaml +++ b/kubernetes/policy/charts/drools/charts/nexus/templates/deployment.yaml @@ -30,6 +30,14 @@ spec: app: {{ include "common.name" . }} release: {{ .Release.Name }} spec: + initContainers: + - command: ["sh", "-c", "chown -R 200:200 /share"] + image: "{{ .Values.global.ubuntuInitRepository }}/{{ .Values.global.ubuntuInitImage }}" + imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + name: {{ include "common.name" . }}-init + volumeMounts: + - mountPath: /share + name: nexus-data containers: - name: {{ include "common.name" . }} image: "{{ .Values.global.repository | default .Values.repository }}/{{ .Values.image }}" @@ -53,6 +61,8 @@ spec: - mountPath: /etc/localtime name: localtime readOnly: true + - mountPath: /sonatype-work + name: nexus-data resources: {{ toYaml .Values.resources | indent 12 }} {{- if .Values.nodeSelector }} @@ -67,5 +77,12 @@ spec: - name: localtime hostPath: path: /etc/localtime + - name: nexus-data + {{- if .Values.persistence.enabled }} + persistentVolumeClaim: + claimName: {{ include "common.fullname" . }} + {{- else }} + emptyDir: {} + {{- end }} imagePullSecrets: - name: "{{ include "common.namespace" . }}-docker-registry-key" diff --git a/kubernetes/policy/charts/drools/charts/nexus/templates/pv.yaml b/kubernetes/policy/charts/drools/charts/nexus/templates/pv.yaml new file mode 100644 index 0000000000..8be3d4c9cb --- /dev/null +++ b/kubernetes/policy/charts/drools/charts/nexus/templates/pv.yaml @@ -0,0 +1,37 @@ +{{/* +# Copyright © 2017 Amdocs, Bell Canada +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +*/}} + +{{- 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.Namespace }}/{{ .Values.persistence.mountSubPath }} +{{- end -}} diff --git a/kubernetes/policy/charts/drools/charts/nexus/templates/pvc.yaml b/kubernetes/policy/charts/drools/charts/nexus/templates/pvc.yaml new file mode 100644 index 0000000000..e27c3311e9 --- /dev/null +++ b/kubernetes/policy/charts/drools/charts/nexus/templates/pvc.yaml @@ -0,0 +1,48 @@ +{{/* +# Copyright © 2017 Amdocs, Bell Canada +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +*/}} + +{{- 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/policy/charts/drools/charts/nexus/values.yaml b/kubernetes/policy/charts/drools/charts/nexus/values.yaml index 250f0a70f8..667987640b 100644 --- a/kubernetes/policy/charts/drools/charts/nexus/values.yaml +++ b/kubernetes/policy/charts/drools/charts/nexus/values.yaml @@ -20,6 +20,9 @@ global: repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ== readinessRepository: oomk8s readinessImage: readiness-check:2.0.0 + ubuntuInitRepository: oomk8s + ubuntuInitImage: ubuntu-init:1.0.0 + persistence: {} ################################################################# # Application configuration defaults. @@ -64,6 +67,15 @@ service: ingress: enabled: false +## Persist data to a persitent volume +persistence: + enabled: true + volumeReclaimPolicy: Retain + accessMode: ReadWriteMany + size: 2Gi + mountPath: /dockerdata-nfs + mountSubPath: nexus/data + 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/policy/charts/drools/templates/statefulset.yaml b/kubernetes/policy/charts/drools/templates/statefulset.yaml index 7a616d71e6..5dd49edfec 100644 --- a/kubernetes/policy/charts/drools/templates/statefulset.yaml +++ b/kubernetes/policy/charts/drools/templates/statefulset.yaml @@ -23,7 +23,7 @@ metadata: release: {{ .Release.Name }} heritage: {{ .Release.Service }} spec: - serviceName: {{ include "common.fullname" . }} + serviceName: {{ include "common.servicename" . }} replicas: {{ .Values.replicaCount }} selector: matchLabels: diff --git a/kubernetes/policy/charts/pdp/resources/config/pe/pdp.conf b/kubernetes/policy/charts/pdp/resources/config/pe/pdp.conf index 48fafcb45f..7b13116e34 100644 --- a/kubernetes/policy/charts/pdp/resources/config/pe/pdp.conf +++ b/kubernetes/policy/charts/pdp/resources/config/pe/pdp.conf @@ -30,7 +30,7 @@ TOMCAT_X_MX_MB=1024 UEB_CLUSTER=message-router REST_PAP_URL=http://{{ .Values.global.pap.nameOverride }}:{{.Values.config.papPort}}/pap/ -REST_PDP_ID=http://{{ include "common.fullname" . }}:{{.Values.service.externalPort}}/pdp/ +REST_PDP_ID=http://{{ include "common.servicename" . }}:{{.Values.service.externalPort}}/pdp/ REST_PDP_CONFIG=/opt/app/policy/servers/pdp/bin/config REST_PDP_WEBAPPS=/opt/app/policy/servers/pdp/webapps REST_PDP_REGISTER=true diff --git a/kubernetes/policy/charts/pdp/resources/config/pe/pdplp.conf b/kubernetes/policy/charts/pdp/resources/config/pe/pdplp.conf index 2021c09439..f5f4060aad 100644 --- a/kubernetes/policy/charts/pdp/resources/config/pe/pdplp.conf +++ b/kubernetes/policy/charts/pdp/resources/config/pe/pdplp.conf @@ -17,7 +17,7 @@ LOGPARSER_JMX_PORT=9997 LOGPARSER_X_MS_MB=1024 LOGPARSER_X_MX_MB=1024 -SERVER=http://{{ include "common.fullname" . }}:{{.Values.service.externalPort}}/pdp/ +SERVER=http://{{ include "common.servicename" . }}:{{.Values.service.externalPort}}/pdp/ LOGPATH=/opt/app/policy/servers/pdp/logs/pdp-rest.log PARSERLOGPATH=IntegrityMonitor.log diff --git a/kubernetes/policy/charts/pdp/templates/service.yaml b/kubernetes/policy/charts/pdp/templates/service.yaml index fc608d5ab8..d44fbb9f28 100644 --- a/kubernetes/policy/charts/pdp/templates/service.yaml +++ b/kubernetes/policy/charts/pdp/templates/service.yaml @@ -49,3 +49,4 @@ spec: app: {{ include "common.name" . }} release: {{ .Release.Name }} sessionAffinity: None + clusterIP: None diff --git a/kubernetes/policy/charts/pdp/templates/statefulset.yaml b/kubernetes/policy/charts/pdp/templates/statefulset.yaml index d09c446381..29ded61ffa 100644 --- a/kubernetes/policy/charts/pdp/templates/statefulset.yaml +++ b/kubernetes/policy/charts/pdp/templates/statefulset.yaml @@ -23,7 +23,7 @@ metadata: release: {{ .Release.Name }} heritage: {{ .Release.Service }} spec: - serviceName: {{ include "common.fullname" . }} + serviceName: {{ include "common.servicename" . }} replicas: {{ .Values.replicaCount }} selector: matchLabels: diff --git a/kubernetes/policy/charts/pdp/values.yaml b/kubernetes/policy/charts/pdp/values.yaml index 4f63e3222f..3287c9f321 100644 --- a/kubernetes/policy/charts/pdp/values.yaml +++ b/kubernetes/policy/charts/pdp/values.yaml @@ -58,13 +58,11 @@ readiness: periodSeconds: 10 service: - type: NodePort + type: ClusterIP name: pdp portName: pdp + internalPort: 8081 externalPort: 8081 - #Example internal target port if required - #internalPort: <80> - nodePort: 20 ingress: enabled: false diff --git a/kubernetes/policy/resources/config/pe/pap.conf b/kubernetes/policy/resources/config/pe/pap.conf index 768ebc9d23..39199d7f1a 100644 --- a/kubernetes/policy/resources/config/pe/pap.conf +++ b/kubernetes/policy/resources/config/pe/pap.conf @@ -28,7 +28,7 @@ TOMCAT_X_MX_MB=1024 # pap properties PAP_PDPS=/opt/app/policy/servers/pap/bin/pdps -PAP_URL=http://{{ include "common.fullname" . }}:{{.Values.service.externalPort2}}/pap/ +PAP_URL=http://{{ include "common.servicename" . }}:{{.Values.service.externalPort2}}/pap/ PAP_INITIATE_PDP=true PAP_HEARTBEAT_INTERVAL=10000 @@ -39,7 +39,7 @@ REST_ADMIN_REPOSITORY=repository REST_ADMIN_WORKSPACE=workspace # PDP related properties -PAP_PDP_URL=http://{{ .Release.Name }}-{{ .Values.global.pdp.nameOverride }}-0.{{ .Release.Name }}-{{ .Values.global.pdp.nameOverride }}:{{ .Values.config.pdpPort }}/pdp/,http://{{ .Release.Name }}-{{ .Values.global.pdp.nameOverride }}-1.{{ .Release.Name }}-{{ .Values.global.pdp.nameOverride }}:{{ .Values.config.pdpPort }}/pdp/ +PAP_PDP_URL=http://{{ .Release.Name }}-{{ .Values.global.pdp.nameOverride }}-0.{{ .Values.global.pdp.nameOverride }}:{{ .Values.config.pdpPort }}/pdp/,http://{{ .Release.Name }}-{{ .Values.global.pdp.nameOverride }}-1.{{ .Values.global.pdp.nameOverride }}:{{ .Values.config.pdpPort }}/pdp/ PAP_PDP_HTTP_USER_ID=testpdp PAP_PDP_HTTP_PASSWORD=alpha123 diff --git a/kubernetes/policy/resources/config/pe/paplp.conf b/kubernetes/policy/resources/config/pe/paplp.conf index 430feb4064..205497c35d 100644 --- a/kubernetes/policy/resources/config/pe/paplp.conf +++ b/kubernetes/policy/resources/config/pe/paplp.conf @@ -17,7 +17,7 @@ LOGPARSER_JMX_PORT=9996 LOGPARSER_X_MS_MB=1024 LOGPARSER_X_MX_MB=1024 -SERVER=http://{{ include "common.fullname" . }}:{{.Values.service.externalPort2}}/pap/ +SERVER=http://{{ include "common.servicename" . }}:{{.Values.service.externalPort2}}/pap/ LOGPATH=/opt/app/policy/servers/pap/logs/pap-rest.log PARSERLOGPATH=IntegrityMonitor.log 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/robot/demo-k8s.sh b/kubernetes/robot/demo-k8s.sh index d5e7a0384d..de3362740e 100755 --- a/kubernetes/robot/demo-k8s.sh +++ b/kubernetes/robot/demo-k8s.sh @@ -36,7 +36,11 @@ function usage } # Set the defaults -if [ $# -le 2 ];then + +echo "Number of parameters:" +echo $# + +if [ $# -lt 2 ];then usage exit fi @@ -47,9 +51,11 @@ shift ## ## if more than 1 tag is supplied, the must be provided with -i or -e ## -while [ $# -gt 1 ] +while [ $# -gt 0 ] do - key="$2" + key="$1" + echo "KEY:" + echo $key case $key in init_robot) diff --git a/kubernetes/robot/ete-k8s.sh b/kubernetes/robot/ete-k8s.sh index 71e2027e4a..b1a7283d80 100755 --- a/kubernetes/robot/ete-k8s.sh +++ b/kubernetes/robot/ete-k8s.sh @@ -10,13 +10,21 @@ if [ "$1" == "" ] || [ "$2" == "" ]; then exit fi + export NAMESPACE="$1" + +POD=$(kubectl --namespace $NAMESPACE get pods | sed 's/ .*//'| grep robot) + + export TAGS="-i $2" export ETEHOME=/var/opt/OpenECOMP_ETE -export OUTPUT_FOLDER=ETE_$$ +export GLOBAL_BUILD_NUMBER=$(kubectl --namespace $NAMESPACE exec ${POD} -- bash -c "ls -1q /share/logs/ | wc -l") +export OUTPUT_FOLDER=ETE_$(printf %04d $GLOBAL_BUILD_NUMBER)_$2 + +#export OUTPUT_FOLDER=ETE_$$ VARIABLEFILES="-V /share/config/vm_properties.py -V /share/config/integration_robot_properties.py -V /share/config/integration_preload_parameters.py" VARIABLES="-v GLOBAL_BUILD_NUMBER:$$" -POD=$(kubectl --namespace $NAMESPACE get pods | sed 's/ .*//'| grep robot) kubectl --namespace $NAMESPACE exec ${POD} -- ${ETEHOME}/runTags.sh ${VARIABLEFILES} ${VARIABLES} -d /share/logs/${OUTPUT_FOLDER} ${TAGS} --display 88 + diff --git a/kubernetes/robot/resources/config/eteshare/config/integration_robot_properties.py b/kubernetes/robot/resources/config/eteshare/config/integration_robot_properties.py index b6305e588e..6e566c3354 100755 --- a/kubernetes/robot/resources/config/eteshare/config/integration_robot_properties.py +++ b/kubernetes/robot/resources/config/eteshare/config/integration_robot_properties.py @@ -30,7 +30,7 @@ GLOBAL_CLI_SERVER_PROTOCOL = "http" GLOBAL_CLI_SERVER_PORT = "8080" # dcae info - everything is from the private oam network (also called onap private network) GLOBAL_DCAE_SERVER_PROTOCOL = "http" -GLOBAL_DCAE_HEALTH_SERVER_PORT = "8000" +GLOBAL_DCAE_HEALTH_SERVER_PORT = "80" GLOBAL_DCAE_USERNAME = "console" GLOBAL_DCAE_PASSWORD = "ZjJkYjllMjljMTI2M2Iz" # microservice bus info - everything is from the private oam network (also called onap private network) diff --git a/kubernetes/robot/resources/config/eteshare/config/vm_properties.py b/kubernetes/robot/resources/config/eteshare/config/vm_properties.py index 7eb7314845..7bb8c1c13c 100755 --- a/kubernetes/robot/resources/config/eteshare/config/vm_properties.py +++ b/kubernetes/robot/resources/config/eteshare/config/vm_properties.py @@ -8,7 +8,7 @@ GLOBAL_INJECTED_ARTIFACTS_VERSION = "{{.Values.demoArtifactsVersion}}" GLOBAL_INJECTED_CLAMP_IP_ADDR = "clamp.{{include "common.namespace" .}}" GLOBAL_INJECTED_CLI_IP_ADDR = "cli.{{include "common.namespace" .}}" GLOBAL_INJECTED_CLOUD_ENV = "openstack" -GLOBAL_INJECTED_DCAE_IP_ADDR = "dcae-controller.{{include "common.namespace" .}}" +GLOBAL_INJECTED_DCAE_IP_ADDR = "dcae-healthcheck.{{include "common.namespace" .}}" GLOBAL_INJECTED_DNS_IP_ADDR = "N/A" GLOBAL_INJECTED_DOCKER_VERSION = "1.2-STAGING-latest" GLOBAL_INJECTED_EXTERNAL_DNS = "N/A" @@ -59,7 +59,7 @@ GLOBAL_INJECTED_PROPERTIES = { "GLOBAL_INJECTED_CLAMP_IP_ADDR" : "clamp.{{include "common.namespace" .}}", "GLOBAL_INJECTED_CLI_IP_ADDR" : "cli.{{include "common.namespace" .}}", "GLOBAL_INJECTED_CLOUD_ENV" : "openstack", - "GLOBAL_INJECTED_DCAE_IP_ADDR" : "dcae-controller.{{include "common.namespace" .}}", + "GLOBAL_INJECTED_DCAE_IP_ADDR" : "dcae-healthcheck.{{include "common.namespace" .}}", "GLOBAL_INJECTED_DNS_IP_ADDR" : "N/A", "GLOBAL_INJECTED_DOCKER_VERSION" : "1.2-STAGING-latest", "GLOBAL_INJECTED_EXTERNAL_DNS" : "N/A", diff --git a/kubernetes/sdc/charts/sdc-be/Chart.yaml b/kubernetes/sdc/charts/sdc-be/Chart.yaml index de59fd5f71..9f8bfd5777 100644 --- a/kubernetes/sdc/charts/sdc-be/Chart.yaml +++ b/kubernetes/sdc/charts/sdc-be/Chart.yaml @@ -13,6 +13,6 @@ # limitations under the License. apiVersion: v1 -description: Service Design and Creation Backend API +description: ONAP Service Design and Creation Backend API name: sdc-be version: 2.0.0
\ 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 d0b8eae768..b08c74edad 100644 --- a/kubernetes/sdc/charts/sdc-be/templates/deployment.yaml +++ b/kubernetes/sdc/charts/sdc-be/templates/deployment.yaml @@ -36,9 +36,7 @@ spec: - /root/ready.py args: - --container-name - - "sdc-es" - - --container-name - - "sdc-cs" + - "sdc-onboarding-be" env: - name: NAMESPACE valueFrom: @@ -54,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: @@ -63,23 +61,22 @@ spec: fieldPath: metadata.namespace containers: - name: {{ include "common.name" . }} - image: "{{ .Values.global.repository | default .Values.repository }}/{{ .Values.image }}" + image: "{{ include "common.repository" . }}/{{ .Values.image }}" imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} 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 }} + {{ if eq .Values.liveness.enabled true }} livenessProbe: tcpSocket: port: {{ .Values.service.internalPort }} initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }} periodSeconds: {{ .Values.liveness.periodSeconds }} - {{ end -}} + {{ end }} readinessProbe: - tcpSocket: - port: {{ .Values.service.internalPort }} + exec: + command: + - "/var/lib/ready-probe.sh" initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }} periodSeconds: {{ .Values.readiness.periodSeconds }} env: @@ -103,6 +100,7 @@ spec: mountPath: /var/log/onap - name: {{ include "common.fullname" . }}-logback mountPath: /tmp/logback.xml + subPath: logback.xml lifecycle: postStart: exec: diff --git a/kubernetes/sdc/charts/sdc-be/templates/job.yaml b/kubernetes/sdc/charts/sdc-be/templates/job.yaml index d40ef115b3..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: @@ -47,7 +48,7 @@ spec: fieldPath: metadata.namespace containers: - name: {{ include "common.name" . }}-job - image: "{{ .Values.global.repository | default .Values.repository }}/{{ .Values.backendInitImage }}" + image: "{{ include "common.repository" . }}/{{ .Values.backendInitImage }}" imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} volumeMounts: - name: {{ include "common.fullname" . }}-environments diff --git a/kubernetes/sdc/charts/sdc-be/values.yaml b/kubernetes/sdc/charts/sdc-be/values.yaml index 45b5425599..4e53e40c37 100644 --- a/kubernetes/sdc/charts/sdc-be/values.yaml +++ b/kubernetes/sdc/charts/sdc-be/values.yaml @@ -48,14 +48,14 @@ affinity: {} # probe configuration parameters liveness: - initialDelaySeconds: 10 + initialDelaySeconds: 60 periodSeconds: 10 # necessary to disable liveness probe when setting breakpoints # in debugger so K8s doesn't restart unresponsive container enabled: true readiness: - initialDelaySeconds: 10 + initialDelaySeconds: 60 periodSeconds: 10 service: diff --git a/kubernetes/sdc/charts/sdc-cs/Chart.yaml b/kubernetes/sdc/charts/sdc-cs/Chart.yaml index 0e99a9ae4b..81d4f2c952 100644 --- a/kubernetes/sdc/charts/sdc-cs/Chart.yaml +++ b/kubernetes/sdc/charts/sdc-cs/Chart.yaml @@ -13,6 +13,6 @@ # limitations under the License. apiVersion: v1 -description: Service Design and Creation Cassandra +description: ONAP Service Design and Creation Cassandra name: sdc-cs version: 2.0.0
\ No newline at end of file diff --git a/kubernetes/sdc/charts/sdc-cs/templates/deployment.yaml b/kubernetes/sdc/charts/sdc-cs/templates/deployment.yaml index 9cfa084600..0ea03f8edc 100644 --- a/kubernetes/sdc/charts/sdc-cs/templates/deployment.yaml +++ b/kubernetes/sdc/charts/sdc-cs/templates/deployment.yaml @@ -32,23 +32,22 @@ spec: spec: containers: - name: {{ include "common.name" . }} - image: "{{ .Values.global.repository | default .Values.repository }}/{{ .Values.image }}" + image: "{{ include "common.repository" . }}/{{ .Values.image }}" imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} 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 }} + {{ if eq .Values.liveness.enabled true }} livenessProbe: tcpSocket: port: {{ .Values.service.internalPort }} initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }} periodSeconds: {{ .Values.liveness.periodSeconds }} - {{ end -}} + {{ end }} readinessProbe: - tcpSocket: - port: {{ .Values.service.internalPort }} + exec: + command: + - "/var/lib/ready-probe.sh" initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }} periodSeconds: {{ .Values.readiness.periodSeconds }} env: @@ -66,7 +65,7 @@ spec: fieldPath: status.podIP - name: CS_PASSWORD valueFrom: - secretKeyRef: {name: {{ include "common.fullname" . }}, key: cs_password} + secretKeyRef: {name: {{ .Release.Name }}-sdc-cs-secrets, key: cs_password} volumeMounts: - name: {{ include "common.fullname" . }}-data mountPath: /var/lib/cassandra/ @@ -75,8 +74,6 @@ spec: - name: {{ include "common.fullname" . }}-localtime mountPath: /etc/localtime readOnly: true - - name: {{ include "common.fullname" . }}-logs - mountPath: /var/lib/jetty/logs resources: {{ toYaml .Values.resources | indent 12 }} {{- if .Values.nodeSelector }} @@ -91,8 +88,6 @@ spec: - name: {{ include "common.fullname" . }}-localtime hostPath: path: /etc/localtime - - name: {{ include "common.fullname" . }}-logs - emptyDir: {} - name: {{ include "common.fullname" . }}-data {{- if .Values.persistence.enabled }} persistentVolumeClaim: diff --git a/kubernetes/sdc/charts/sdc-cs/templates/job.yaml b/kubernetes/sdc/charts/sdc-cs/templates/job.yaml index 4d341ba8d3..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: @@ -47,7 +48,7 @@ spec: fieldPath: metadata.namespace containers: - name: {{ include "common.name" . }}-job - image: "{{ .Values.global.repository | default .Values.repository }}/{{ .Values.cassandraInitImage }}" + image: "{{ include "common.repository" . }}/{{ .Values.cassandraInitImage }}" imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} volumeMounts: - name: {{ include "common.fullname" . }}-environments @@ -63,13 +64,13 @@ spec: value: {{ .Values.config.release }} - name: SDC_USER valueFrom: - secretKeyRef: {name: {{ include "common.fullname" . }}, key: sdc_user} + secretKeyRef: {name: {{ .Release.Name }}-sdc-cs-secrets, key: sdc_user} - name: SDC_PASSWORD valueFrom: - secretKeyRef: {name: {{ include "common.fullname" . }}, key: sdc_password} + secretKeyRef: {name: {{ .Release.Name }}-sdc-cs-secrets, key: sdc_password} - name: CS_PASSWORD valueFrom: - secretKeyRef: {name: {{ include "common.fullname" . }}, key: cs_password} + secretKeyRef: {name: {{ .Release.Name }}-sdc-cs-secrets, key: cs_password} - name: HOST_IP valueFrom: fieldRef: diff --git a/kubernetes/sdc/charts/sdc-cs/values.yaml b/kubernetes/sdc/charts/sdc-cs/values.yaml index 75f77399ec..1e8c6da161 100644 --- a/kubernetes/sdc/charts/sdc-cs/values.yaml +++ b/kubernetes/sdc/charts/sdc-cs/values.yaml @@ -38,11 +38,6 @@ config: maxHeapSize: "1536M" heapNewSize: "512M" -secrets: - sdc_user: YXNkY191c2Vy - sdc_password: QWExMjM0JV4h - cs_password: b25hcDEyMyNAIQ== - # default number of instances replicaCount: 1 @@ -52,14 +47,14 @@ affinity: {} # probe configuration parameters liveness: - initialDelaySeconds: 10 + initialDelaySeconds: 60 periodSeconds: 10 # necessary to disable liveness probe when setting breakpoints # in debugger so K8s doesn't restart unresponsive container enabled: true readiness: - initialDelaySeconds: 10 + initialDelaySeconds: 60 periodSeconds: 10 service: diff --git a/kubernetes/sdc/charts/sdc-es/Chart.yaml b/kubernetes/sdc/charts/sdc-es/Chart.yaml index 2accff16b3..fa4d3417b3 100644 --- a/kubernetes/sdc/charts/sdc-es/Chart.yaml +++ b/kubernetes/sdc/charts/sdc-es/Chart.yaml @@ -13,6 +13,6 @@ # limitations under the License. apiVersion: v1 -description: Service Design and Creation Elasticsearch +description: ONAP Service Design and Creation Elasticsearch name: sdc-es version: 2.0.0
\ No newline at end of file diff --git a/kubernetes/sdc/charts/sdc-es/templates/deployment.yaml b/kubernetes/sdc/charts/sdc-es/templates/deployment.yaml index 3ec8c563c9..fe085969a1 100644 --- a/kubernetes/sdc/charts/sdc-es/templates/deployment.yaml +++ b/kubernetes/sdc/charts/sdc-es/templates/deployment.yaml @@ -30,35 +30,20 @@ spec: app: {{ include "common.name" . }} release: {{ .Release.Name }} spec: - initContainers: - - name: {{ include "common.name" . }}-logs-init - command: - - /bin/bash - - "-c" - - | - mkdir -p /ubuntu-init/ASDC/ASDC-ES/ - chmod -R 777 /ubuntu-init/ - image: "{{ .Values.global.ubuntuInitRepository }}/{{ .Values.global.ubuntuInitImage }}" - imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} - volumeMounts: - - name: {{ include "common.fullname" . }}-logs - mountPath: /ubuntu-init/ containers: - name: {{ include "common.name" . }} - image: "{{ .Values.global.repository | default .Values.repository }}/{{ .Values.image }}" + image: "{{ include "common.repository" . }}/{{ .Values.image }}" imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} 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 }} + {{ if eq .Values.liveness.enabled true }} livenessProbe: tcpSocket: port: {{ .Values.service.internalPort }} initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }} periodSeconds: {{ .Values.liveness.periodSeconds }} - {{ end -}} + {{ end }} readinessProbe: httpGet: path: "_cluster/health?wait_for_status=yellow&timeout=120s" @@ -83,8 +68,6 @@ spec: - name: {{ include "common.fullname" . }}-localtime mountPath: /etc/localtime readOnly: true - - name: {{ include "common.fullname" . }}-logs - mountPath: /var/lib/jetty/logs - name: {{ include "common.fullname" . }}-data mountPath: /usr/share/elasticsearch/data/ resources: @@ -112,7 +95,5 @@ spec: configMap: name: {{ .Release.Name }}-sdc-environments-configmap defaultMode: 0755 - - name: {{ include "common.fullname" . }}-logs - emptyDir: {} imagePullSecrets: - name: "{{ include "common.namespace" . }}-docker-registry-key" diff --git a/kubernetes/sdc/charts/sdc-es/templates/job.yaml b/kubernetes/sdc/charts/sdc-es/templates/job.yaml index 0d2512cf7a..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: @@ -47,7 +48,7 @@ spec: fieldPath: metadata.namespace containers: - name: {{ include "common.name" . }}-job - image: "{{ .Values.global.repository | default .Values.repository }}/{{ .Values.elasticInitImage }}" + image: "{{ include "common.repository" . }}/{{ .Values.elasticInitImage }}" imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} volumeMounts: - name: {{ include "common.fullname" . }}-environments diff --git a/kubernetes/sdc/charts/sdc-es/values.yaml b/kubernetes/sdc/charts/sdc-es/values.yaml index 32c54fe762..4b7440213c 100644 --- a/kubernetes/sdc/charts/sdc-es/values.yaml +++ b/kubernetes/sdc/charts/sdc-es/values.yaml @@ -59,7 +59,7 @@ liveness: enabled: true readiness: - initialDelaySeconds: 10 + initialDelaySeconds: 60 periodSeconds: 10 service: diff --git a/kubernetes/sdc/charts/sdc-fe/Chart.yaml b/kubernetes/sdc/charts/sdc-fe/Chart.yaml index 9cbffbac4e..6580e891da 100644 --- a/kubernetes/sdc/charts/sdc-fe/Chart.yaml +++ b/kubernetes/sdc/charts/sdc-fe/Chart.yaml @@ -13,6 +13,6 @@ # limitations under the License. apiVersion: v1 -description: Service Design and Creation Front End +description: ONAP Service Design and Creation Front End name: sdc-fe version: 2.0.0
\ No newline at end of file diff --git a/kubernetes/sdc/charts/sdc-fe/templates/deployment.yaml b/kubernetes/sdc/charts/sdc-fe/templates/deployment.yaml index 2d4e21360d..bbc779044b 100644 --- a/kubernetes/sdc/charts/sdc-fe/templates/deployment.yaml +++ b/kubernetes/sdc/charts/sdc-fe/templates/deployment.yaml @@ -36,7 +36,7 @@ spec: - /root/ready.py args: - --container-name - - "sdc-be" + - "sdc-kb" env: - name: NAMESPACE valueFrom: @@ -45,15 +45,27 @@ spec: 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 }}" + command: + - /root/job_complete.py + args: + - --job-name + - {{ .Release.Name }}-sdc-be-config-backend + env: + - name: NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.namespace containers: - name: {{ include "common.name" . }} - image: "{{ .Values.global.repository | default .Values.repository }}/{{ .Values.image }}" + image: "{{ include "common.repository" . }}/{{ .Values.image }}" imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} 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: @@ -85,6 +97,7 @@ spec: mountPath: /var/log/onap - name: {{ include "common.fullname" . }}-logback mountPath: /tmp/logback.xml + subPath: logback.xml lifecycle: postStart: exec: diff --git a/kubernetes/sdc/charts/sdc-kb/Chart.yaml b/kubernetes/sdc/charts/sdc-kb/Chart.yaml index f9bc14a097..e0f03e9200 100644 --- a/kubernetes/sdc/charts/sdc-kb/Chart.yaml +++ b/kubernetes/sdc/charts/sdc-kb/Chart.yaml @@ -13,6 +13,6 @@ # limitations under the License. apiVersion: v1 -description: Service Design and Creation Kibana +description: ONAP Service Design and Creation Kibana name: sdc-kb version: 2.0.0
\ No newline at end of file diff --git a/kubernetes/sdc/charts/sdc-kb/templates/deployment.yaml b/kubernetes/sdc/charts/sdc-kb/templates/deployment.yaml index de39333d30..f33dbe6e38 100644 --- a/kubernetes/sdc/charts/sdc-kb/templates/deployment.yaml +++ b/kubernetes/sdc/charts/sdc-kb/templates/deployment.yaml @@ -31,23 +31,23 @@ 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: "{{ .Values.global.repository | default .Values.repository }}/{{ .Values.image }}" + image: "{{ include "common.repository" . }}/{{ .Values.image }}" imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} ports: - containerPort: {{ .Values.service.internalPort }} diff --git a/kubernetes/sdc/charts/sdc-onboarding-be/.helmignore b/kubernetes/sdc/charts/sdc-onboarding-be/.helmignore new file mode 100644 index 0000000000..f0c1319444 --- /dev/null +++ b/kubernetes/sdc/charts/sdc-onboarding-be/.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/sdc/charts/sdc-onboarding-be/Chart.yaml b/kubernetes/sdc/charts/sdc-onboarding-be/Chart.yaml new file mode 100644 index 0000000000..66bf8899b0 --- /dev/null +++ b/kubernetes/sdc/charts/sdc-onboarding-be/Chart.yaml @@ -0,0 +1,18 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +apiVersion: v1 +description: ONAP Service Design and Creation Onboarding API +name: sdc-onboarding-be +version: 2.0.0
\ No newline at end of file diff --git a/kubernetes/sdc/charts/sdc-onboarding-be/resources/config/logging/logback.xml b/kubernetes/sdc/charts/sdc-onboarding-be/resources/config/logging/logback.xml new file mode 100644 index 0000000000..8a89373aad --- /dev/null +++ b/kubernetes/sdc/charts/sdc-onboarding-be/resources/config/logging/logback.xml @@ -0,0 +1,187 @@ +<?xml version="1.0" encoding="utf-8"?>
+<configuration scan="true" scanPeriod="3 seconds">
+ <property name="logDir" value="/var/log/onap" />
+ <property name="componentName" scope="system" value="sdc"></property>
+ <property name="subComponentName" scope="system" value="sdc-onboarding-be"></property>
+ <property name="logDirectory" value="${logDir}/${componentName}/${subComponentName}" />
+ <property file="${config.home}/catalog-be/configuration.yaml" />
+ <property name="enable-all-log" scope="context" value="false" />
+ <!-- log file names -->
+ <property name="errorLogName" value="error" />
+ <property name="metricsLogName" value="metrics" />
+ <property name="auditLogName" value="audit" />
+ <property name="debugLogName" value="debug" />
+ <property name="transactionLogName" value="transaction" />
+ <property name="allLogName" value="all" />
+ <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" />
+ <!-- All log -->
+ <if condition='property("enable-all-log").equalsIgnoreCase("true")'>
+ <then>
+ <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="ALL_ROLLING">
+ <file>${logDirectory}/${allLogName}.log</file>
+ <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${logDirectory}/${allLogName}.%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="ASYNC_ALL">
+ <appender-ref ref="ALL_ROLLING" />
+ </appender>
+ </then>
+ </if>
+ <!-- Error log -->
+ <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="ERROR_ROLLING">
+ <file>${logDirectory}/${errorLogName}.log</file>
+ <!-- Audit messages filter - deny audit messages -->
+ <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
+ <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
+ <marker>AUDIT_MARKER</marker>
+ </evaluator>
+ <onMismatch>NEUTRAL</onMismatch>
+ <onMatch>DENY</onMatch>
+ </filter>
+ <!-- Transaction messages filter - deny Transaction messages -->
+ <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
+ <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
+ <marker>TRANSACTION_MARKER</marker>
+ </evaluator>
+ <onMismatch>NEUTRAL</onMismatch>
+ <onMatch>DENY</onMatch>
+ </filter>
+ <!-- deny all events with a level below INFO, that is TRACE and DEBUG -->
+ <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+ <level>INFO</level>
+ </filter>
+ <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>
+ </appender>
+ <!-- Debug log -->
+ <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="DEBUG_ROLLING">
+ <file>${logDirectory}/${debugLogName}.log</file>
+ <!-- No need to deny audit messages - they are INFO only, will be denied
+ anyway -->
+ <!-- Transaction messages filter - deny Transaction messages, there are
+ some DEBUG level messages among them -->
+ <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
+ <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
+ <marker>TRANSACTION_MARKER</marker>
+ </evaluator>
+ <onMismatch>NEUTRAL</onMismatch>
+ <onMatch>DENY</onMatch>
+ </filter>
+ <!-- accept DEBUG and TRACE level -->
+ <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
+ <evaluator class="ch.qos.logback.classic.boolex.GEventEvaluator">
+ <expression>e.level.toInt() <= DEBUG.toInt()</expression>
+ </evaluator>
+ <OnMismatch>DENY</OnMismatch>
+ <OnMatch>NEUTRAL</OnMatch>
+ </filter>
+ <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>
+ <!-- Audit log -->
+ <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="AUDIT_ROLLING">
+ <file>${logDirectory}/${auditLogName}.log</file>
+ <!-- Audit messages filter - accept audit messages -->
+ <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
+ <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
+ <marker>AUDIT_MARKER</marker>
+ </evaluator>
+ <onMismatch>DENY</onMismatch>
+ <onMatch>ACCEPT</onMatch>
+ </filter>
+ <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>
+ <!-- SdncTransaction log -->
+ <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="TRANSACTION_ROLLING">
+ <file>${logDirectory}/${transactionLogName}.log</file>
+ <!-- Transaction messages filter - accept audit messages -->
+ <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
+ <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
+ <marker>TRANSACTION_MARKER</marker>
+ </evaluator>
+ <onMismatch>DENY</onMismatch>
+ <onMatch>ACCEPT</onMatch>
+ </filter>
+ <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${logDirectory}/${transactionLogName}.%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>
+ <!-- Asynchronicity Configurations -->
+ <appender class="ch.qos.logback.classic.AsyncAppender" name="ASYNC_DEBUG">
+ <queueSize>${queueSize}</queueSize>
+ <appender-ref ref="DEBUG_ROLLING" />
+ </appender>
+ <appender class="ch.qos.logback.classic.AsyncAppender" name="ASYNC_TRANSACTION">
+ <queueSize>${queueSize}</queueSize>
+ <appender-ref ref="TRANSACTION_ROLLING" />
+ </appender>
+ <appender class="ch.qos.logback.classic.AsyncAppender" name="ASYNC_ERROR">
+ <queueSize>${queueSize}</queueSize>
+ <appender-ref ref="ERROR_ROLLING" />
+ </appender>
+ <appender class="ch.qos.logback.classic.AsyncAppender" name="ASYNC_AUDIT">
+ <queueSize>${queueSize}</queueSize>
+ <appender-ref ref="AUDIT_ROLLING" />
+ </appender>
+ <root level="INFO">
+ <appender-ref ref="ASYNC_ERROR" />
+ <appender-ref ref="ASYNC_DEBUG" />
+ <appender-ref ref="ASYNC_AUDIT" />
+ <appender-ref ref="ASYNC_TRANSACTION" />
+ <if condition='property("enable-all-log").equalsIgnoreCase("true")'>
+ <then>
+ <appender-ref ref="ALL_ROLLING" />
+ </then>
+ </if>
+ </root>
+ <logger level="INFO" name="org.openecomp.sdc" />
+</configuration>
\ No newline at end of file diff --git a/kubernetes/dmaap/templates/NOTES.txt b/kubernetes/sdc/charts/sdc-onboarding-be/templates/NOTES.txt index 33b47cfc02..0878f5c080 100644 --- a/kubernetes/dmaap/templates/NOTES.txt +++ b/kubernetes/sdc/charts/sdc-onboarding-be/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.fullname" . }}) + 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={{ 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/sdc/charts/sdc-onboarding-be/templates/configmap.yaml b/kubernetes/sdc/charts/sdc-onboarding-be/templates/configmap.yaml new file mode 100644 index 0000000000..1d0751a01b --- /dev/null +++ b/kubernetes/sdc/charts/sdc-onboarding-be/templates/configmap.yaml @@ -0,0 +1,21 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "common.fullname" . }}-logging-configmap + namespace: {{ include "common.namespace" . }} +data: +{{ tpl (.Files.Glob "resources/config/logging/*").AsConfig . | indent 2 }}
\ No newline at end of file diff --git a/kubernetes/sdc/charts/sdc-onboarding-be/templates/deployment.yaml b/kubernetes/sdc/charts/sdc-onboarding-be/templates/deployment.yaml new file mode 100644 index 0000000000..328a28dccb --- /dev/null +++ b/kubernetes/sdc/charts/sdc-onboarding-be/templates/deployment.yaml @@ -0,0 +1,144 @@ +# Copyright © 2017 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. + +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: + - name: {{ include "common.name" . }}-job-completion + image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}" + imagePullPolicy: "{{ .Values.global.pullPolicy | default .Values.pullPolicy }}" + command: + - /root/job_complete.py + args: + - --job-name + - {{ .Release.Name }}-sdc-onboarding-be-cassandra-init + env: + - name: NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.namespace + containers: + - name: {{ include "common.name" . }} + image: "{{ include "common.repository" . }}/{{ .Values.image }}" + imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + ports: + - containerPort: {{ .Values.service.internalPort }} + - containerPort: {{ .Values.service.internalPort2 }} + {{ if eq .Values.liveness.enabled true }} + livenessProbe: + tcpSocket: + port: {{ .Values.service.internalPort }} + initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }} + periodSeconds: {{ .Values.liveness.periodSeconds }} + {{ end }} + readinessProbe: + exec: + command: + - "/var/lib/ready-probe.sh" + initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }} + periodSeconds: {{ .Values.readiness.periodSeconds }} + env: + - name: ENVNAME + value: {{ .Values.global.env.name }} + - name: JAVA_OPTIONS + value: {{ .Values.config.javaOptions }} + - name: SDC_CLUSTER_NAME + value: "SDC-CS-{{ .Values.global.env.name }}" + - name: cassandra_ssl_enabled + value: {{ .Values.config.cassandraSslEnabled | quote }} + - name: HOST_IP + valueFrom: + fieldRef: + fieldPath: status.podIP + - name: SDC_USER + valueFrom: + secretKeyRef: {name: {{ .Release.Name }}-sdc-cs-secrets, key: sdc_user} + - name: SDC_PASSWORD + valueFrom: + secretKeyRef: {name: {{ .Release.Name }}-sdc-cs-secrets, key: sdc_password} + volumeMounts: + - name: {{ include "common.fullname" . }}-environments + mountPath: /root/chef-solo/environments/ + - name: {{ include "common.fullname" . }}-localtime + mountPath: /etc/localtime + readOnly: true + - name: {{ include "common.fullname" . }}-logs + mountPath: /var/log/onap + - name: {{ include "common.fullname" . }}-logback + mountPath: /tmp/logback.xml + subPath: logback.xml + lifecycle: + postStart: + exec: + command: ["/bin/sh", "-c", "export LOG=wait_logback.log; touch $LOG; export SRC=/tmp/logback.xml; export DST=/var/lib/jetty/config/onboarding-be/; while [ ! -e $DST ]; do echo 'Waiting for $DST...' >> $LOG; sleep 5; done; sleep 2; /bin/cp -f $SRC $DST; echo 'Done' >> $LOG"] + 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 }} + + # side car containers + - name: {{ include "common.name" . }}-filebeat-onap + image: "{{ .Values.global.loggingRepository }}/{{ .Values.global.loggingImage }}" + imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + volumeMounts: + - name: {{ include "common.fullname" . }}-filebeat-conf + mountPath: /usr/share/filebeat/filebeat.yml + subPath: filebeat.yml + - name: {{ include "common.fullname" . }}-logs + mountPath: /var/log/onap + - name: {{ include "common.fullname" . }}-data-filebeat + mountPath: /usr/share/filebeat/data + volumes: + - name: {{ include "common.fullname" . }}-localtime + hostPath: + path: /etc/localtime + - name: {{ include "common.fullname" . }}-filebeat-conf + configMap: + name: {{ .Release.Name }}-sdc-filebeat-configmap + - name: {{ include "common.fullname" . }}-data-filebeat + emptyDir: {} + - name: {{ include "common.fullname" . }}-logback + configMap: + name : {{ include "common.fullname" . }}-logging-configmap + - name: {{ include "common.fullname" . }}-environments + configMap: + name: {{ .Release.Name }}-sdc-environments-configmap + defaultMode: 0755 + - name: {{ include "common.fullname" . }}-logs + emptyDir: {} + imagePullSecrets: + - name: "{{ include "common.namespace" . }}-docker-registry-key"
\ No newline at end of file diff --git a/kubernetes/sdc/charts/sdc-onboarding-be/templates/job.yaml b/kubernetes/sdc/charts/sdc-onboarding-be/templates/job.yaml new file mode 100644 index 0000000000..35f2ef849c --- /dev/null +++ b/kubernetes/sdc/charts/sdc-onboarding-be/templates/job.yaml @@ -0,0 +1,90 @@ +# Copyright © 2017 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. + +apiVersion: batch/v1 +kind: Job +metadata: + name: {{ include "common.fullname" . }}-cassandra-init + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }}-job + chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +spec: + backoffLimit: 20 + template: + metadata: + labels: + app: {{ include "common.name" . }}-job + release: {{ .Release.Name }} + spec: + restartPolicy: Never + initContainers: + - name: {{ include "common.name" . }}-job-completion + image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}" + imagePullPolicy: "{{ .Values.global.pullPolicy | default .Values.pullPolicy }}" + command: + - /root/job_complete.py + args: + - --job-name + - {{ .Release.Name }}-sdc-cs-config-cassandra + env: + - name: NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.namespace + containers: + - name: {{ include "common.name" . }}-job + image: "{{ include "common.repository" . }}/{{ .Values.onboardingInitImage }}" + imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + volumeMounts: + - name: {{ include "common.fullname" . }}-environments + mountPath: /root/chef-solo/environments/ + - name: {{ include "common.fullname" . }}-data + mountPath: /var/lib/cassandra/ + env: + - name: ENVNAME + value: {{ .Values.global.env.name }} + - name: HOST_IP + valueFrom: + fieldRef: + fieldPath: status.podIP + - name: SDC_USER + valueFrom: + secretKeyRef: {name: {{ .Release.Name }}-sdc-cs-secrets, key: sdc_user} + - name: SDC_PASSWORD + valueFrom: + secretKeyRef: {name: {{ .Release.Name }}-sdc-cs-secrets, key: sdc_password} + - name: CS_PASSWORD + valueFrom: + secretKeyRef: {name: {{ .Release.Name }}-sdc-cs-secrets, key: cs_password} + - name: CS_HOST_IP + value: "sdc-cs" + volumes: + - name: {{ include "common.fullname" . }}-environments + configMap: + name: {{ .Release.Name }}-sdc-environments-configmap + defaultMode: 0755 + - name: {{ include "common.fullname" . }}-data + {{- if .Values.persistence.enabled }} + persistentVolumeClaim: + claimName: {{ include "common.fullname" . }} + {{- else }} + emptyDir: {} + {{- end }} + imagePullSecrets: + - name: "{{ include "common.namespace" . }}-docker-registry-key" + restartPolicy: Never diff --git a/kubernetes/sdc/charts/sdc-onboarding-be/templates/pv.yaml b/kubernetes/sdc/charts/sdc-onboarding-be/templates/pv.yaml new file mode 100644 index 0000000000..184728f8ad --- /dev/null +++ b/kubernetes/sdc/charts/sdc-onboarding-be/templates/pv.yaml @@ -0,0 +1,37 @@ +{{/* +# Copyright © 2017 Amdocs, Bell Canada +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +*/}} + +{{- 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/sdc/charts/sdc-onboarding-be/templates/pvc.yaml b/kubernetes/sdc/charts/sdc-onboarding-be/templates/pvc.yaml new file mode 100644 index 0000000000..e27c3311e9 --- /dev/null +++ b/kubernetes/sdc/charts/sdc-onboarding-be/templates/pvc.yaml @@ -0,0 +1,48 @@ +{{/* +# Copyright © 2017 Amdocs, Bell Canada +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +*/}} + +{{- 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/sdc/charts/sdc-onboarding-be/templates/service.yaml b/kubernetes/sdc/charts/sdc-onboarding-be/templates/service.yaml new file mode 100644 index 0000000000..eec748886b --- /dev/null +++ b/kubernetes/sdc/charts/sdc-onboarding-be/templates/service.yaml @@ -0,0 +1,46 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +apiVersion: v1 +kind: Service +metadata: + name: {{ include "common.servicename" . }} + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +spec: + type: {{ .Values.service.type }} + ports: + {{if eq .Values.service.type "NodePort" -}} + - port: {{ .Values.service.externalPort }} + nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }} + name: {{ .Values.service.portName | default "http" }} + + - port: {{ .Values.service.externalPort2 }} + nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort2 }} + name: {{ .Values.service.portName | default "http" }}2 + {{- else -}} + - port: {{ .Values.service.externalPort }} + targetPort: {{ .Values.service.internalPort }} + name: {{ .Values.service.portName | default "http" }} + - port: {{ .Values.service.externalPort2 }} + targetPort: {{ .Values.service.internalPort2 }} + name: {{ .Values.service.portName | default "http" }}2 + {{- end}} + selector: + app: {{ include "common.name" . }} + release: {{ .Release.Name }} diff --git a/kubernetes/sdc/charts/sdc-onboarding-be/values.yaml b/kubernetes/sdc/charts/sdc-onboarding-be/values.yaml new file mode 100644 index 0000000000..3e22acc2eb --- /dev/null +++ b/kubernetes/sdc/charts/sdc-onboarding-be/values.yaml @@ -0,0 +1,113 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +################################################################# +# Global configuration defaults. +################################################################# +global: + nodePortPrefix: 302 + repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ== + readinessRepository: oomk8s + readinessImage: readiness-check:2.0.0 + loggingRepository: docker.elastic.co + loggingImage: beats/filebeat:5.5.0 + +################################################################# +# Application configuration defaults. +################################################################# +# application image +repository: nexus3.onap.org:10001 +image: onap/sdc-onboard-backend:1.2-STAGING-latest +onboardingInitImage: onap/sdc-onboard-cassandra-init:1.2-STAGING-latest +pullPolicy: Always + +# flag to enable debugging - application support required +debugEnabled: false + +config: + javaOptions: "-Xdebug -agentlib:jdwp=transport=dt_socket,address=4001,server=y,suspend=n -Xmx1g -Xms1g" + cassandraSslEnabled: "false" + +# default number of instances +replicaCount: 1 + +nodeSelector: {} + +affinity: {} + +# probe configuration parameters +liveness: + initialDelaySeconds: 60 + periodSeconds: 10 + # necessary to disable liveness probe when setting breakpoints + # in debugger so K8s doesn't restart unresponsive container + enabled: true + +readiness: + initialDelaySeconds: 60 + periodSeconds: 10 + +service: + type: ClusterIP + name: sdc-onboarding-be + portName: sdc-onboarding-be + internalPort: 8445 + externalPort: 8445 + internalPort2: 8081 + externalPort2: 8081 + +## 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) + ## + # storageClass: "-" + accessMode: ReadWriteMany + size: 2Gi + mountPath: /dockerdata-nfs + mountSubPath: /sdc/sdc-cs/CS + +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/sdc/charts/sdc-wfd/Chart.yaml b/kubernetes/sdc/charts/sdc-wfd/Chart.yaml index a04b2e5784..1db5bb2fdd 100644 --- a/kubernetes/sdc/charts/sdc-wfd/Chart.yaml +++ b/kubernetes/sdc/charts/sdc-wfd/Chart.yaml @@ -13,6 +13,6 @@ # limitations under the License. apiVersion: v1 -description: Common Workflow Design +description: ONAP Service Design and Creation Common Workflow Design name: sdc-wfd version: 2.0.0
\ No newline at end of file diff --git a/kubernetes/sdc/charts/sdc-wfd/templates/deployment.yaml b/kubernetes/sdc/charts/sdc-wfd/templates/deployment.yaml index eb1f47974c..f6ec2c7a0b 100644 --- a/kubernetes/sdc/charts/sdc-wfd/templates/deployment.yaml +++ b/kubernetes/sdc/charts/sdc-wfd/templates/deployment.yaml @@ -32,19 +32,17 @@ spec: spec: containers: - name: {{ include "common.name" . }} - image: "{{ .Values.global.repository | default .Values.repository }}/{{ .Values.image }}" + image: "{{ include "common.repository" . }}/{{ .Values.image }}" imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} ports: - containerPort: {{ .Values.service.internalPort }} - # disable liveness probe when breakpoints set in debugger - # so K8s doesn't restart unresponsive container - {{- if eq .Values.liveness.enabled true }} + {{ if eq .Values.liveness.enabled true }} livenessProbe: tcpSocket: port: {{ .Values.service.internalPort }} initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }} periodSeconds: {{ .Values.liveness.periodSeconds }} - {{ end -}} + {{ end }} readinessProbe: tcpSocket: port: {{ .Values.service.internalPort }} diff --git a/kubernetes/sdc/resources/config/environments/AUTO.json b/kubernetes/sdc/resources/config/environments/AUTO.json index 2732bea10e..85ca2f49d4 100755 --- a/kubernetes/sdc/resources/config/environments/AUTO.json +++ b/kubernetes/sdc/resources/config/environments/AUTO.json @@ -11,9 +11,11 @@ "disableHttp": false, "CS_VIP": "sdc-cs.{{include "common.namespace" .}}", "BE_VIP": "sdc-be.{{include "common.namespace" .}}", + "ONBOARDING_BE_VIP": "sdc-onboarding-be.{{include "common.namespace" .}}", "FE_VIP": "sdc-fe.{{include "common.namespace" .}}", "ES_VIP": "sdc-es.{{include "common.namespace" .}}", "KB_VIP": "sdc-kb.{{include "common.namespace" .}}", + "interfaces": { "application": "eth0", "private": "eth0" @@ -31,13 +33,21 @@ "UEB": { "PublicKey": "iPIxkpAMI8qTcQj8", "SecretKey": "Ehq3WyT4bkif4zwgEbvshGal", - "fqdn": ["message-router.{{include "common.namespace" .}}", "message-router.{{include "common.namespace" .}}"] + "fqdn": [ + "message-router.{{include "common.namespace" .}}", + "message-router.{{include "common.namespace" .}}" + ] }, "Nodes": { - "CS": "sdc-cs.{{include "common.namespace" .}}", + "CS": [ + "sdc-cs.{{include "common.namespace" .}}" + ], "BE": "sdc-be.{{include "common.namespace" .}}", + "ONBOARDING_BE": "sdc-onboarding-be.{{include "common.namespace" .}}", "FE": "sdc-fe.{{include "common.namespace" .}}", - "ES": "sdc-es.{{include "common.namespace" .}}", + "ES": [ + "sdc-es.{{include "common.namespace" .}}" + ], "KB": "sdc-kb.{{include "common.namespace" .}}" }, "Plugins": { @@ -64,6 +74,10 @@ "http_port": "8080", "https_port": "8443" }, + "ONBOARDING_BE": { + "http_port": "8081", + "https_port": "8445" + }, "elasticsearch": { "cluster_name": "SDC-ES-", "ES_path_home": "/usr/share/elasticsearch", diff --git a/kubernetes/sdc/charts/sdc-cs/templates/secrets.yaml b/kubernetes/sdc/templates/secrets.yaml index 0b6c838539..341e55aea8 100644 --- a/kubernetes/sdc/charts/sdc-cs/templates/secrets.yaml +++ b/kubernetes/sdc/templates/secrets.yaml @@ -15,7 +15,7 @@ apiVersion: v1 kind: Secret metadata: - name: {{ include "common.fullname" . }} + name: {{ .Release.Name }}-sdc-cs-secrets namespace: {{ include "common.namespace" . }} labels: app: {{ include "common.name" . }} @@ -25,7 +25,7 @@ metadata: type: Opaque data: #application user - sdc_user: "{{ .Values.secrets.sdc_user }}" - sdc_password: "{{ .Values.secrets.sdc_password }}" + sdc_user: "{{ .Values.global.secrets.sdc_user }}" + sdc_password: "{{ .Values.global.secrets.sdc_password }}" #default user: - cs_password: "{{ .Values.secrets.cs_password }}" + cs_password: "{{ .Values.global.secrets.cs_password }}" diff --git a/kubernetes/sdc/values.yaml b/kubernetes/sdc/values.yaml index d5664a765e..75e9d3e36f 100644 --- a/kubernetes/sdc/values.yaml +++ b/kubernetes/sdc/values.yaml @@ -16,6 +16,13 @@ global: persistence: {} env: name: AUTO + secrets: + sdc_user: YXNkY191c2Vy + sdc_password: QWExMjM0JV4h + cs_password: b25hcDEyMyNAIQ== + ubuntuInitRepository: oomk8s + ubuntuInitImage: ubuntu-init:1.0.0 + config: logstashServiceName: log-ls 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 |