# 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
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
--- /dev/null
+#!/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
+
+
+
--- /dev/null
+#!/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
ip:
user:
default: centos
- namespace_perfix:
+ namespace:
default: onap
node_types:
derived_from: cloudify.nodes.SoftwareComponent
properties:
cwd:
- default: /home/centos/oom/kubernetes/oneclick
+ default: /home/centos/oom/kubernetes
args:
default:
- onap
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
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
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
apiVersion: v1
kind: Service
metadata:
- name: {{ include "common.fullname" . }}
+ name: {{ include "common.servicename" . }}
namespace: {{ include "common.namespace" . }}
labels:
app: {{ include "common.name" . }}
apiVersion: v1
description: ONAP Secret Management Service
-name: sms
+name: aaf-sms
version: 2.0.0
--- /dev/null
+# 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
-# Copyright © 2017 Amdocs, Bell Canada
+# 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.
# limitations under the License.
apiVersion: v1
-kind: Secret
+kind: ConfigMap
metadata:
name: {{ include "common.fullname" . }}
namespace: {{ include "common.namespace" . }}
chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
-type: Opaque
data:
- db-root-password: {{ .Values.config.cassandraPassword | b64enc | quote }}
+ config.json: |
+ {{ .Values.config | toJson }}
--- /dev/null
+{{/*
+# 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 -}}
--- /dev/null
+# 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"
--- /dev/null
+# 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
apiVersion: v1
description: Chart to launch Vault as SMS backend
-name: vault
+name: aaf-sms-vault
appVersion: 0.9.5
version: 2.0.0
--- /dev/null
+{{/*
+# 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 -}}
--- /dev/null
+{{/*
+# 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 -}}
apiVersion: v1
kind: Service
metadata:
- name: {{ .Values.service.name }}
+ name: {{ include "common.servicename" . }}
namespace: {{ include "common.namespace" . }}
labels:
app: {{ include "common.fullname" . }}
spec:
type: {{ .Values.service.type }}
ports:
- - name: {{ .Values.service.name }}
+ - name: {{ .Values.service.portName }}
{{if eq .Values.service.type "NodePort" -}}
port: {{ .Values.service.internalPort }}
nodePort: {{ .Values.global.nodePortPrefix | default "302" }}{{ .Values.service.nodePort }}
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
persistence:
enabled: true
-
volumeReclaimPolicy: Retain
-
- accessMode: ReadWriteMany
+ accessMode: ReadWriteOnce
size: 2Gi
mountPath: /dockerdata-nfs
mountSubPath: sms/consul/data
service:
type: NodePort
name: aaf-sms-db
+ portName: aaf-sms-db
internalPort: 8200
nodePort: 44
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"]
- 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 }}
- 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"
--- /dev/null
+{{/*
+# 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 -}}
apiVersion: v1
kind: Service
metadata:
- name: {{ .Values.service.name }}
+ name: {{ include "common.servicename" . }}
namespace: {{ include "common.namespace" . }}
labels:
app: {{ include "common.fullname" . }}
spec:
type: {{ .Values.service.type }}
ports:
- - name: {{ .Values.service.name }}
+ - name: {{ .Values.service.PortName }}
{{if eq .Values.service.type "NodePort" -}}
port: {{ .Values.service.internalPort }}
nodePort: {{ .Values.global.nodePortPrefix | default "302" }}{{ .Values.service.nodePort }}
readinessImage: readiness-check:2.0.0
loggingRepository: docker.elastic.co
loggingImage: beats/filebeat:5.5.0
+ persistence: {}
#################################################################
# Application configuration defaults.
service:
type: NodePort
name: aaf-sms
+ portName: aaf-sms
internalPort: 10443
nodePort: 43
+persistence:
+ enabled: true
+ volumeReclaimPolicy: Retain
+ accessMode: ReadWriteOnce
+ size: 1Gi
+ mountPath: /dockerdata-nfs
+ mountSubPath: sms/auth
+
ingress:
enabled: false
apiVersion: v1
kind: Service
metadata:
- name: {{ include "common.fullname" . }}
+ name: {{ include "common.servicename" . }}
namespace: {{ include "common.namespace" . }}
labels:
app: {{ include "common.name" . }}
}
],
"users": [
- {"username": "CN=someone.onap.org, OU=someone, O=\"ONAP ORG\", L=NA, ST=NA, C=NA"}
+ {"username": "CN=ONAP, OU=ONAP, O=ONAP, L=Ottawa, ST=Ontario, C=CA"}
]
},
{
"methods": [{"name": "POST"}]
}],
"users": [
- {"username": "CN=someone.onap.org, OU=someone, O=\"ONAP ORG\", L=NA, ST=NA, C=NA"}
+ {"username": "CN=ONAP, OU=ONAP, O=ONAP, L=Ottawa, ST=Ontario, C=CA"}
]
},
{
}
],
"users": [
- {"username": "CN=someone.onap.org, OU=someone, O=\"ONAP ORG\", L=NA, ST=NA, C=NA"}
+ {"username": "CN=ONAP, OU=ONAP, O=ONAP, L=Ottawa, ST=Ontario, C=CA"}
]
},
{
auth.policy.file=/auth/auth_policy.json
-auth.authentication.disable=false
+auth.authentication.disable=true
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE xml>
+<configuration scan="true" scanPeriod="30 seconds" debug="true">
+ <include resource="org/springframework/boot/logging/logback/base.xml" />
+
+ <property name="componentName" value="AAI-BAS" />
+ <property name="logDirectory" value="${APP_HOME}/logs/${componentName}" />
+
+ <!-- default EELF log file names -->
+ <property name="generalLogName" value="error" />
+ <property name="metricsLogName" value="metrics" />
+ <property name="auditLogName" value="audit" />
+ <property name="debugLogName" value="debug" />
+
+ <property name="errorLogPattern"
+ value="%d{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%mdc{RequestId}|%thread|%mdc{ServiceName}|%mdc{PartnerName}|%mdc{TargetEntity}|%mdc{TargetServiceName}|%.-5level|%logger|%mdc{ClassName}|%msg%n" />
+
+ <property name="auditLogPattern"
+ value="%d{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%mdc{BeginTimestamp}|%mdc{EndTimestamp}|%mdc{RequestId}|%mdc{ServiceInstanceId}|%thread|%mdc{ServerFQDN}|%mdc{ServiceName}|%mdc{PartnerName}|%mdc{StatusCode}|%mdc{ResponseCode}|%mdc{ResponseDescription}|%logger|%.-5level|||%mdc{ElapsedTime}|%mdc{RemoteHost}|%mdc{ClientAddress}|%mdc{ClassName}|||%msg%n" />
+
+ <property name="metricsLogPattern"
+ value="%d{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%mdc{BeginTimestamp}|%mdc{EndTimestamp}|%mdc{RequestId}|%mdc{ServiceInstanceId}|%thread|%mdc{ServerFQDN}|%mdc{ServiceName}|%mdc{PartnerName}|%mdc{TargetEntity}|%mdc{TargetServiceName}|%mdc{StatusCode}|%mdc{ResponseCode}|%mdc{ResponseDescription}|%logger|%.-5level|||%mdc{ElapsedTime}|%mdc{RemoteHost}|%mdc{ClientAddress}|%mdc{ClassName}|||%msg%n" />
+
+ <!-- ============================================================================ -->
+ <!-- EELF Appenders -->
+ <!-- ============================================================================ -->
+
+ <appender name="EELF"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/${generalLogName}.log</file>
+ <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${logDirectory}/${generalLogName}.%d{yyyy-MM-dd}.log.zip
+ </fileNamePattern>
+ <maxHistory>60</maxHistory>
+ </rollingPolicy>
+ <encoder>
+ <pattern>${errorLogPattern}</pattern>
+ </encoder>
+ </appender>
+ <appender name="asyncEELF" class="ch.qos.logback.classic.AsyncAppender">
+ <!-- deny all events with a level below INFO, that is TRACE and DEBUG -->
+ <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+ <level>INFO</level>
+ </filter>
+ <queueSize>256</queueSize>
+ <appender-ref ref="EELF" />
+ </appender>
+
+ <!-- EELF Audit Appender. This appender is used to record audit engine related logging events. The audit logger and appender
+ are specializations of the EELF application root logger and appender. This can be used to segregate Policy engine events
+ from other components, or it can be eliminated to record these events as part of the application root log. -->
+
+ <appender name="EELFAudit"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/${auditLogName}.log</file>
+ <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${logDirectory}/${auditLogName}.%d{yyyy-MM-dd}.log.zip
+ </fileNamePattern>
+ <maxHistory>60</maxHistory>
+ </rollingPolicy>
+ <encoder>
+ <pattern>${auditLogPattern}</pattern>
+ </encoder>
+ </appender>
+ <appender name="asyncEELFAudit" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize>
+ <appender-ref ref="EELFAudit" />
+ </appender>
+
+ <appender name="EELFMetrics"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/${metricsLogName}.log</file>
+ <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${logDirectory}/${metricsLogName}.%d{yyyy-MM-dd}.log.zip
+ </fileNamePattern>
+ <maxHistory>60</maxHistory>
+ </rollingPolicy>
+ <encoder>
+ <pattern>${metricsLogPattern}</pattern>
+ </encoder>
+ </appender>
+
+ <appender name="asyncEELFMetrics" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize>
+ <appender-ref ref="EELFMetrics" />
+ </appender>
+
+ <appender name="EELFDebug"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>
+ ${logDirectory}/${debugLogName}.log
+ </file>
+ <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${logDirectory}/${debugLogName}.%d{yyyy-MM-dd}.log.zip
+ </fileNamePattern>
+ <maxHistory>60</maxHistory>
+ </rollingPolicy>
+ <encoder>
+ <pattern>${errorLogPattern}</pattern>
+ </encoder>
+ </appender>
+
+ <appender name="asyncEELFDebug" class="ch.qos.logback.classic.AsyncAppender">
+ <!-- allow only events with a level below INFO, that is TRACE and DEBUG -->
+ <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
+ <evaluator class="ch.qos.logback.classic.boolex.GEventEvaluator">
+ <expression>
+ e.level.toInt() < INFO.toInt()
+ </expression>
+ </evaluator>
+ <OnMismatch>DENY</OnMismatch>
+ <OnMatch>NEUTRAL</OnMatch>
+ </filter>
+ <queueSize>256</queueSize>
+ <appender-ref ref="EELFDebug" />
+ <includeCallerData>false</includeCallerData>
+ </appender>
+
+ <!-- ============================================================================ -->
+ <!-- Default / root appenders -->
+ <!-- This determines the logging level for 3rd party code -->
+ <!-- ============================================================================ -->
+
+ <root level="INFO">
+ <appender-ref ref="asyncEELF" />
+ <appender-ref ref="asyncEELFDebug" />
+</root>
+
+ <!-- ============================================================================ -->
+ <!-- EELF loggers -->
+ <!-- ============================================================================ -->
+
+ <logger name="com.att.eelf" level="INFO" additivity="false">
+ <appender-ref ref="asyncEELF" />
+</logger>
+
+ <!-- The level of this logger determines the contents of the debug log -->
+ <logger name="com.att.eelf.debug" level="INFO" additivity="false">
+ <appender-ref ref="asyncEELFDebug" />
+</logger>
+
+ <logger name="com.att.eelf.audit" level="INFO" additivity="false">
+ <appender-ref ref="asyncEELFAudit" />
+</logger>
+
+ <logger name="com.att.eelf.metrics" level="INFO" additivity="false">
+ <appender-ref ref="asyncEELFMetrics" />
+</logger>
+
+ <!-- ============================================================================ -->
+ <!-- Non-EELF loggers -->
+ <!-- ============================================================================ -->
+
+ <!-- ATT packages including DMAAP message routing -->
+ <logger name="com.att" level="INFO" />
+
+ <!-- Spring related loggers -->
+ <logger name="org.springframework" level="WARN" />
+ <logger name="org.springframework.beans" level="WARN" />
+ <logger name="org.springframework.web" level="WARN" />
+
+ <!-- Other Loggers that may help troubleshoot -->
+ <logger name="org.apache" level="WARN" />
+ <logger name="org.apache.commons" level="WARN" />
+
+ <!-- Camel Related Loggers (including restlet/servlet/jaxrs/cxf logging. May aid in troubleshooting) -->
+ <logger name="org.apache.camel" level="WARN" />
+ <logger name="org.apache.cxf" level="WARN" />
+ <logger name="org.apache.camel.processor.interceptor" level="WARN" />
+ <logger name="org.apache.cxf.jaxrs.interceptor" level="WARN" />
+ <logger name="org.apache.cxf.service" level="WARN" />
+ <logger name="org.restlet" level="WARN" />
+ <logger name="org.apache.camel.component.restlet" level="WARN" />
+
+ <!-- logback internals logging -->
+ <logger name="ch.qos.logback.classic" level="WARN" />
+ <logger name="ch.qos.logback.core" level="WARN" />
+
+</configuration>
name: {{ include "common.fullname" . }}-secrets
- mountPath: /logs
name: {{ include "common.fullname" . }}-logs
+ - mountPath: /opt/app/babel/config/logback.xml
+ name: {{ include "common.fullname" . }}-config
+ subPath: logback.xml
resources:
{{ toYaml .Values.resources | indent 12 }}
{{- if .Values.nodeSelector }}
path: artifact-generator.properties
- key: babel-auth.properties
path: babel-auth.properties
+ - key: logback.xml
+ path: logback.xml
- name: {{ include "common.fullname" . }}-secrets
secret:
secretName: {{ include "common.fullname" . }}-babel-secrets
apiVersion: v1
kind: Service
metadata:
- name: {{ include "common.fullname" . }}
+ name: {{ include "common.servicename" . }}
namespace: {{ include "common.namespace" . }}
labels:
app: {{ include "common.name" . }}
{{if eq .Values.service.type "NodePort" -}}
- port: {{ .Values.service.internalPort}}
nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort}}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
{{- else -}}
- port: {{ .Values.service.externalPort }}
targetPort: {{ .Values.service.internalPort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
{{- end}}
selector:
app: {{ include "common.name" . }}
# application configuration
config:
- keyStorePassword: OBF:1i9a1u2a1unz1lr61wn51wn11lss1unz1u301i6o
- keyManagerPassword: OBF:1i9a1u2a1unz1lr61wn51wn11lss1unz1u301i6o
+ keyStorePassword: OBF:1y0q1uvc1uum1uvg1pil1pjl1uuq1uvk1uuu1y10
+ keyManagerPassword: OBF:1y0q1uvc1uum1uvg1pil1pjl1uuq1uvk1uuu1y10
# default number of instances
replicaCount: 1
service:
type: NodePort
name: babel
+ portName: babel
externalPort: 79
internalPort: 9516
nodePort: 79
apiVersion: v1
kind: Service
metadata:
- name: {{ template "common.fullname" . }}
+ name: {{ template "common.servicename" . }}
namespace: {{ include "common.namespace" . }}
labels:
app: {{ template "common.fullname" . }}
fieldPath: status.podIP
volumeMounts:
- name: cassandra-data
- mountPath: /var/lib/cassandra/data
+ mountPath: /var/lib/cassandra
resources:
{{ toYaml .Values.resources | indent 10 }}
{{- if .Values.nodeSelector }}
enabled: false
persistence:
- enabled: false
+ enabled: true
## A manually managed Persistent Volume and Claim
## Requires persistence.enabled: true
<entry key="champcore.event.stream.publisher-pool-size" value="10" value-type="java.lang.Integer"/>
<entry key="champcore.event.stream.publisher" value-ref="champEventPublisher"/>
- <entry key="graph.name" value="aaigraph.dev"/>
+ <entry key="graph.name" value="aaigraph"/>
<entry key="storage.backend" value="cassandra"/>
- <entry key="storage.cassandra.keyspace" value="aaigraph"/>
<entry key="storage.cassandra.read-consistency-level" value="LOCAL_QUORUM"/>
<entry key="storage.cassandra.write-consistency-level" value="LOCAL_QUORUM"/>
<entry key="storage.cassandra.replication-factor" value="3"/>
<!-- Janus Implementation -->
<bean id="graphBuilder" class="org.onap.aai.champjanus.graph.impl.JanusChampGraphImpl$Builder">
- <constructor-arg value="aaigraph.dev"/>
+ <constructor-arg value="aaigraph"/>
<constructor-arg ref="props" />
</bean>
args:
- --container-name
- aai-resources
+ - --container-name
+ - global-kafka
env:
- name: NAMESPACE
valueFrom:
apiVersion: v1
kind: Service
metadata:
- name: {{ include "common.fullname" . }}
+ name: {{ include "common.servicename" . }}
namespace: {{ include "common.namespace" . }}
labels:
app: {{ include "common.name" . }}
{{if eq .Values.service.type "NodePort" -}}
- port: {{ .Values.service.internalPort}}
nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort}}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
{{- else -}}
- port: {{ .Values.service.externalPort }}
targetPort: {{ .Values.service.internalPort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
{{- end}}
selector:
app: {{ include "common.name" . }}
service:
type: NodePort
name: champ
+ portName: champ
internalPort: 9522
nodePort: 78
<route xmlns="http://camel.apache.org/schema/spring" trace="true">
- <from uri="event-bus:mybus/?eventTopic=AAI-EVENT&groupName=datarouter&groupId=datarouter&url=http://dmaap.{{.Release.Namespace}}:3904"/>
+ <from uri="event-bus:mybus/?eventTopic=AAI-EVENT&groupName=datarouter&groupId=datarouter&url=http://message-router.{{.Release.Namespace}}:3904"/>
<to uri="bean:entityEventPolicy?method=process"/>
</route>
apiVersion: v1
kind: Service
metadata:
- name: {{ include "common.name" . }}
+ name: {{ include "common.servicename" . }}
namespace: {{ include "common.namespace" . }}
labels:
app: {{ include "common.name" . }}
{{if eq .Values.service.type "NodePort" -}}
- port: {{ .Values.service.internalPort }}
nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
{{- else -}}
- port: {{ .Values.service.internalPort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
{{- end}}
selector:
app: {{ include "common.fullname" . }}
service:
type: ClusterIP
name: aai-elasticsearch
+ portName: aai-elasticsearch
internalPort: 9200
ingress:
">
<bean id="champDao" class="org.onap.crud.dao.champ.ChampDao">
- <constructor-arg name="champUrl" value="https://{{.Release.Name}}-aai-champ.{{.Release.Namespace}}:9522/services/champ-service/v1/"/>
+ <constructor-arg name="champUrl" value="https://aai-champ.{{.Release.Namespace}}:9522/services/champ-service/v1/"/>
<constructor-arg name="certPassword" value="OBF:1y0q1uvc1uum1uvg1pil1pjl1uuq1uvk1uuu1y10"/>
</bean>
apiVersion: v1
kind: Service
metadata:
- name: {{ include "common.fullname" . }}
+ name: {{ include "common.servicename" . }}
namespace: {{ include "common.namespace" . }}
labels:
app: {{ include "common.name" . }}
{{if eq .Values.service.type "NodePort" -}}
- port: {{ .Values.service.internalPort }}
nodePort: {{ .Values.global.nodePortPrefix | default "302" }}{{ .Values.service.nodePort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
{{- else -}}
- port: {{ .Values.service.externalPort }}
targetPort: {{ .Values.service.internalPort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
{{- end}}
selector:
app: {{ include "common.name" . }}
- release: {{ .Release.Name }}
\ No newline at end of file
+ release: {{ .Release.Name }}
service:
type: NodePort
name: crud-service
+ portName: crud-service
internalPort: 9520
nodePort: 66
ingress:
enabled: false
-resources: {}
\ No newline at end of file
+resources: {}
-<configuration debug="false" scan="true" scanPeriod="3 seconds">
- <!--<jmxConfigurator /> -->
- <!-- directory path for all other type logs -->
- <property name="logDir" value="/var/log/onap" />
- <property name="componentName" value="aai"></property>
- <property name="subComponentName" value="aai-ml"></property>
- <property name="logDirectory" value="${logDir}/${componentName}/${subComponentName}" />
- <!-- default eelf log file names -->
- <property name="generalLogName" value="error" />
- <property name="metricsLogName" value="metrics" />
- <property name="auditLogName" value="audit" />
- <property name="debugLogName" value="debug" />
- <property name="queueSize" value="256" />
- <property name="maxFileSize" value="50MB" />
- <property name="maxHistory" value="30" />
- <property name="totalSizeCap" value="10GB" />
- <property name="pattern" value="%d{"yyyy-MM-dd'T'HH:mm:ss.SSSXXX", UTC}\t[%thread]\t%-5level\t%logger\t%replace(%replace(%replace(%mdc){'\t','\\\\t'}){', ','\t'}){'\n', '\\\\n'}\t%replace(%replace(%msg){'\n', '\\\\n'}){'\t','\\\\t'}%n" />
- <!-- Example evaluator filter applied against console appender -->
- <appender class="ch.qos.logback.core.ConsoleAppender" name="STDOUT">
- <encoder>
- <pattern>${pattern}</pattern>
- </encoder>
- </appender>
- <!-- ============================================================================ -->
- <!-- EELF Appenders -->
- <!-- ============================================================================ -->
- <!-- The EELFAppender is used to record events to the general application
- log -->
- <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="EELF">
- <file>${logDirectory}/${generalLogName}.log</file>
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <fileNamePattern>${logDirectory}/${generalLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
- <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
- <maxFileSize>${maxFileSize}</maxFileSize>
- </timeBasedFileNamingAndTriggeringPolicy>
- <maxHistory>${maxHistory}</maxHistory>
- <totalSizeCap>${totalSizeCap}</totalSizeCap>
- </rollingPolicy>
- <encoder>
- <pattern>${pattern}</pattern>
- </encoder>
- </appender>
- <appender class="ch.qos.logback.classic.AsyncAppender" name="asyncEELF">
- <!-- deny all events with a level below INFO, that is TRACE and DEBUG -->
- <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
- <level>INFO</level>
- </filter>
- <queueSize>${queueSize}</queueSize>
- <appender-ref ref="EELF" />
- </appender>
- <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="EELFAudit">
- <file>${logDirectory}/${auditLogName}.log</file>
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <fileNamePattern>${logDirectory}/${auditLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
- <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
- <maxFileSize>${maxFileSize}</maxFileSize>
- </timeBasedFileNamingAndTriggeringPolicy>
- <maxHistory>${maxHistory}</maxHistory>
- <totalSizeCap>${totalSizeCap}</totalSizeCap>
- </rollingPolicy>
- <encoder>
- <pattern>${pattern}</pattern>
- </encoder>
- </appender>
- <appender class="ch.qos.logback.classic.AsyncAppender" name="asyncEELFAudit">
- <queueSize>${queueSize}</queueSize>
- <appender-ref ref="EELFAudit" />
- </appender>
- <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="EELFMetrics">
- <file>${logDirectory}/${metricsLogName}.log</file>
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <fileNamePattern>${logDirectory}/${metricsLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
- <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
- <maxFileSize>${maxFileSize}</maxFileSize>
- </timeBasedFileNamingAndTriggeringPolicy>
- <maxHistory>${maxHistory}</maxHistory>
- <totalSizeCap>${totalSizeCap}</totalSizeCap>
- </rollingPolicy>
- <encoder>
- <pattern>${pattern}</pattern>
- </encoder>
- </appender>
- <appender class="ch.qos.logback.classic.AsyncAppender" name="asyncEELFMetrics">
- <queueSize>${queueSize}</queueSize>
- <appender-ref ref="EELFMetrics" />
- </appender>
- <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="EELFDebug">
- <file>${logDirectory}/${debugLogName}.log</file>
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <fileNamePattern>${logDirectory}/${debugLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
- <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
- <maxFileSize>${maxFileSize}</maxFileSize>
- </timeBasedFileNamingAndTriggeringPolicy>
- <maxHistory>${maxHistory}</maxHistory>
- <totalSizeCap>${totalSizeCap}</totalSizeCap>
- </rollingPolicy>
- <encoder>
- <pattern>${pattern}</pattern>
- </encoder>
- </appender>
- <appender class="ch.qos.logback.classic.AsyncAppender" name="asyncEELFDebug">
- <queueSize>${queueSize}</queueSize>
- <appender-ref ref="EELFDebug" />
- <includeCallerData>true</includeCallerData>
- </appender>
- <!-- ============================================================================ -->
- <!-- EELF loggers -->
- <!-- ============================================================================ -->
- <logger additivity="false" level="info" name="com.att.eelf">
- <appender-ref ref="asyncEELF" />
- <appender-ref ref="asyncEELFDebug" />
- </logger>
- <logger additivity="false" level="info" name="com.att.eelf.security">
- <appender-ref ref="asyncEELFSecurity" />
- </logger>
- <logger additivity="false" level="info" name="com.att.eelf.perf">
- <appender-ref ref="asyncEELFPerformance" />
- </logger>
- <logger additivity="false" level="info" name="com.att.eelf.server">
- <appender-ref ref="asyncEELFServer" />
- </logger>
- <logger additivity="false" level="info" name="com.att.eelf.policy">
- <appender-ref ref="asyncEELFPolicy" />
- </logger>
- <logger additivity="false" level="info" name="com.att.eelf.audit">
- <appender-ref ref="asyncEELFAudit" />
- </logger>
- <logger additivity="false" level="info" name="com.att.eelf.metrics">
- <appender-ref ref="asyncEELFMetrics" />
- </logger>
- <!-- Spring related loggers -->
- <logger level="WARN" name="org.springframework" />
- <logger level="WARN" name="org.springframework.beans" />
- <logger level="WARN" name="org.springframework.web" />
- <logger level="WARN" name="com.blog.spring.jms" />
- <logger level="INFO" name="com.att" />
- <!-- Model Loader loggers -->
- <logger level="INFO" name="org.openecomp.modelloader" />
- <!-- Other Loggers that may help troubleshoot -->
- <logger level="WARN" name="net.sf" />
- <logger level="WARN" name="org.apache.commons.httpclient" />
- <logger level="WARN" name="org.apache.commons" />
- <logger level="WARN" name="org.apache.coyote" />
- <logger level="WARN" name="org.apache.jasper" />
- <!-- Camel Related Loggers (including restlet/servlet/jaxrs/cxf logging.
- May aid in troubleshooting) -->
- <logger level="WARN" name="org.apache.camel" />
- <logger level="WARN" name="org.apache.cxf" />
- <logger level="WARN" name="org.apache.camel.processor.interceptor" />
- <logger level="WARN" name="org.apache.cxf.jaxrs.interceptor" />
- <logger level="WARN" name="org.apache.cxf.service" />
- <logger level="WARN" name="org.restlet" />
- <logger level="WARN" name="org.apache.camel.component.restlet" />
- <!-- logback internals logging -->
- <logger level="WARN" name="ch.qos.logback.classic" />
- <logger level="WARN" name="ch.qos.logback.core" />
- <root>
- <appender-ref ref="asyncEELF" />
- <!-- <appender-ref ref="asyncEELFDebug" /> -->
- </root>
+<configuration scan="true" scanPeriod="3 seconds" debug="false">
+ <include resource="org/springframework/boot/logging/logback/base.xml" />
+ <property name="logDir" value="${AJSC_HOME}/logs" />
+ <property name="componentName" value="AAI-ML"></property>
+
+ <!-- default eelf log file names -->
+ <property name="generalLogName" value="error" />
+ <property name="metricsLogName" value="metrics" />
+ <property name="auditLogName" value="audit" />
+ <property name="debugLogName" value="debug" />
+
+ <property name="errorLogPattern"
+ value="%d{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%mdc{RequestId}|%thread|ModelLoader|%mdc{PartnerName}|%logger||%.-5level|%msg%n" />
+ <property name="auditMetricPattern" value="%m%n" />
+
+ <property name="logDirectory" value="${logDir}/${componentName}" />
+
+ <!-- Example evaluator filter applied against console appender -->
+ <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+ <encoder>
+ <pattern>${defaultPattern}</pattern>
+ </encoder>
+ </appender>
+
+ <!-- ============================================================================ -->
+ <!-- EELF Appenders -->
+ <!-- ============================================================================ -->
+
+ <!-- The EELFAppender is used to record events to the general application
+ log -->
+
+ <appender name="EELF"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/${generalLogName}.log</file>
+ <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${logDirectory}/${generalLogName}.%d{yyyy-MM-dd}.log.zip</fileNamePattern>
+ <maxHistory>60</maxHistory>
+ </rollingPolicy>
+ <encoder>
+ <pattern>${errorLogPattern}</pattern>
+ </encoder>
+ </appender>
+ <appender name="asyncEELF" class="ch.qos.logback.classic.AsyncAppender">
+ <!-- deny all events with a level below INFO, that is TRACE and DEBUG -->
+ <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+ <level>INFO</level>
+ </filter>
+ <queueSize>256</queueSize>
+ <appender-ref ref="EELF" />
+ </appender>
+
+ <appender name="EELFAudit"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/${auditLogName}.log</file>
+ <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${logDirectory}/${auditLogName}.%d{yyyy-MM-dd}.log.zip</fileNamePattern>
+ <maxHistory>60</maxHistory>
+ </rollingPolicy>
+ <encoder>
+ <pattern>${auditMetricPattern}</pattern>
+ </encoder>
+ </appender>
+ <appender name="asyncEELFAudit" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize>
+ <appender-ref ref="EELFAudit" />
+ </appender>
+
+ <appender name="EELFMetrics"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/${metricsLogName}.log</file>
+ <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${logDirectory}/${metricsLogName}.%d{yyyy-MM-dd}.log.zip</fileNamePattern>
+ <maxHistory>60</maxHistory>
+ </rollingPolicy>
+ <encoder>
+ <pattern>${auditMetricPattern}</pattern>
+ </encoder>
+ </appender>
+ <appender name="asyncEELFMetrics" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize>
+ <appender-ref ref="EELFMetrics" />
+ </appender>
+
+ <appender name="EELFDebug"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/${debugLogName}.log</file>
+ <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${logDirectory}/${debugLogName}.%d{yyyy-MM-dd}.log.zip</fileNamePattern>
+ <maxHistory>60</maxHistory>
+ </rollingPolicy>
+ <encoder>
+ <pattern>${errorLogPattern}</pattern>
+ </encoder>
+ </appender>
+ <appender name="asyncEELFDebug" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize>
+ <appender-ref ref="EELFDebug" />
+ <includeCallerData>true</includeCallerData>
+ </appender>
+
+ <!-- ============================================================================ -->
+ <!-- EELF loggers -->
+ <!-- ============================================================================ -->
+ <logger name="com.att.eelf" level="info" additivity="false">
+ <appender-ref ref="asyncEELF" />
+ <appender-ref ref="asyncEELFDebug" />
+ </logger>
+ <logger name="com.att.eelf.audit" level="info" additivity="false">
+ <appender-ref ref="asyncEELFAudit" />
+ </logger>
+ <logger name="com.att.eelf.metrics" level="info" additivity="false">
+ <appender-ref ref="asyncEELFMetrics" />
+ </logger>
+
+ <!-- Spring related loggers -->
+ <logger name="org.springframework" level="WARN" />
+ <logger name="org.springframework.beans" level="WARN" />
+ <logger name="org.springframework.web" level="WARN" />
+ <logger name="com.blog.spring.jms" level="WARN" />
+
+ <logger name="com.att" level="INFO" />
+
+ <!-- Model Loader loggers -->
+ <logger name="org.openecomp.modelloader" level="INFO" />
+
+ <!-- Other Loggers that may help troubleshoot -->
+ <logger name="net.sf" level="WARN" />
+ <logger name="org.apache.commons.httpclient" level="WARN" />
+ <logger name="org.apache.commons" level="WARN" />
+ <logger name="org.apache.coyote" level="WARN" />
+ <logger name="org.apache.jasper" level="WARN" />
+
+ <!-- Camel Related Loggers (including restlet/servlet/jaxrs/cxf logging.
+ May aid in troubleshooting) -->
+ <logger name="org.apache.camel" level="WARN" />
+ <logger name="org.apache.cxf" level="WARN" />
+ <logger name="org.apache.camel.processor.interceptor" level="WARN" />
+ <logger name="org.apache.cxf.jaxrs.interceptor" level="WARN" />
+ <logger name="org.apache.cxf.service" level="WARN" />
+ <logger name="org.restlet" level="WARN" />
+ <logger name="org.apache.camel.component.restlet" level="WARN" />
+
+ <!-- logback internals logging -->
+ <logger name="ch.qos.logback.classic" level="WARN" />
+ <logger name="ch.qos.logback.core" level="WARN" />
+
+ <root>
+ <appender-ref ref="asyncEELF" />
+ <!-- <appender-ref ref="asyncEELFDebug" /> -->
+</root>
+
</configuration>
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://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
name: {{ include "common.fullname" . }}-prop-config
- mountPath: /opt/app/model-loader/config/auth/
name: {{ include "common.fullname" . }}-auth-config
- - mountPath: /var/log/onap
+ - mountPath: /logs
name: {{ include "common.fullname" . }}-logs
- - mountPath: /opt/app/model-loader/bundleconfig/etc/logback.xml
+ - mountPath: /opt/app/model-loader/logback.xml
name: {{ include "common.fullname" . }}-log-conf
subPath: logback.xml
ports:
- mountPath: /usr/share/filebeat/filebeat.yml
subPath: filebeat.yml
name: filebeat-conf
- - mountPath: /var/log/onap
+ - mountPath: /logs
name: {{ include "common.fullname" . }}-logs
- mountPath: /usr/share/filebeat/data
name: aai-filebeat
-
volumes:
- name: localtime
hostPath:
{{- $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 }}{{ $global.Release.Name }}-aai-cassandra-{{ $i }},{{- end }}
+++ /dev/null
-################################################################################################################
-############################## 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
--- /dev/null
+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
--- /dev/null
+<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
--- /dev/null
+<rests xmlns="http://camel.apache.org/schema/spring">
+ <rest>
+ <post uri="/visualization/prepareVisualization">
+ <route>
+ <to uri="bean:schemaVisualizationProcessor?method=processVisualizationRequest" />
+ </route>
+ </post>
+ </rest>
+</rests>
+
+
--- /dev/null
+<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
--- /dev/null
+<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
--- /dev/null
+<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
--- /dev/null
+{
+ "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
+++ /dev/null
-#######################################################################################
-############################## 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
--- /dev/null
+{
+ "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
--- /dev/null
+{
+ "views": [
+ {
+ "viewName" : "vnfSearch",
+ "filters" : [
+ {
+ "filterId": "1"
+ },
+ {
+ "filterId": "2"
+ },
+ {
+ "filterId": "7"
+ },
+ {
+ "filterId": "8"
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
--- /dev/null
+{
+ "target": "",
+ "origin": "",
+ "messageType": "",
+ "topic": "",
+ "message": {
+ "applicationName": "",
+ "payload": {
+ "action": "",
+ "params": {
+ "objectName": "",
+ "externalClassId": ""
+ }
+ }
+ }
+}
-<?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>
-######################################################################################
-############################## 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
-ecomp_rest_url = http://portalapps.{{.Release.Namespace}}:8989/ONAPPORTAL/auxapi
+ecomp_rest_url = http://portal-app.{{.Release.Namespace}}:8989/ONAPPORTAL/auxapi
# Standard global logon page
-ecomp_redirect_url = http://portalapps.{{.Release.Namespace}}:8989/ONAPPORTAL/login.htm
+ecomp_redirect_url = http://portal-app.{{.Release.Namespace}}:8989/ONAPPORTAL/login.htm
# Name of cookie to extract on login request
csp_cookie_name = EPService
# Toggles use of UEB
ueb_listeners_enable = false
# IDs application withing UEB flow
-ueb_app_key = qFKles9N8gDTV0Zc
+ueb_app_key = qFKles9N8gDTV0Zc
-##########################################################################################
-############################## 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
+#####################################################################################\r
+############################## Portal Auth Properties ##############################\r
+#####################################################################################\r
+\r
+############################## Auth ##############################\r
+username={{.Values.config.portalUsername}}\r
+password={{.Values.config.portalPassword}}\r
+\r
+############################## ##############################\r
+#\r
+# ONAP Cookie Processing - During initial development, this flag, if true, will\r
+# prevent the portal interface's login processing from searching for a user\r
+# specific cookie, and will instead allow passage if a valid session cookie is discovered.\r
+onap_enabled={{.Values.config.portalOnapEnabled}}\r
--- /dev/null
+[
+ {
+ "id":1,
+ "name":"View"
+ }
+]
\ No newline at end of file
-[
- {
- "id":1,
- "name":"View"
- }
+[\r
+ {\r
+ "id":1,\r
+ "name":"View"\r
+ }\r
]
\ No newline at end of file
--- /dev/null
+{
+ "properties" : {
+ "entity_suggest" : {
+ "type" : "completion",
+ "payloads" : true,
+ "analyzer" : "custom_analyzer",
+ "preserve_position_increments": false
+ }
+ }
+}
\ No newline at end of file
--- /dev/null
+{
+ "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
--- /dev/null
+{
+ "dynamic_templates": [
+ {
+ "strings": {
+ "match_mapping_type": "string",
+ "match": "*",
+ "mapping": {
+ "type": "string",
+ "index": "not_analyzed"
+ }
+ }
+ }
+ ]
+}
\ No newline at end of file
--- /dev/null
+{
+ "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"
+ }
+ }
+}
+
--- /dev/null
+{
+ "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
--- /dev/null
+{
+ "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
+++ /dev/null
-########################################################################################
-############################## 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
--- /dev/null
+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/
--- /dev/null
+server.port = 9517
\ No newline at end of file
--- /dev/null
+server.port = 8000
+server.ssl.key-store=file:${CONFIG_HOME}/auth/tomcat_keystore
+server.ssl.key-alias=tomcat
\ No newline at end of file
--- /dev/null
+<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>
--- /dev/null
+<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>
+
+
--- /dev/null
+<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>
--- /dev/null
+<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>
--- /dev/null
+<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>
--- /dev/null
+<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>
--- /dev/null
+<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>
+++ /dev/null
-######################################################################################
-############################## 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
+++ /dev/null
-##############################################################################################
-############################## 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
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 }}
+
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:
- 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
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"
apiVersion: v1
kind: Service
metadata:
- name: {{ include "common.name" . }}
+ name: {{ include "common.servicename" . }}
namespace: {{ include "common.namespace" . }}
labels:
app: {{ include "common.name" . }}
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
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)
type: ClusterIP
name: aai-sparky-be
internalPort: 9517
+ internalPort2: 8000
ingress:
enabled: false
# JMS bind address host port
jms.bind.address=tcp://localhost:61647
dmaap.ribbon.eureka.enabled=false
-dmaap.ribbon.listOfServers=dmaap.{{ include "common.namespace" . }}:3904
+dmaap.ribbon.listOfServers=message-router.{{ include "common.namespace" . }}:3904
# Number of milliseconds to wait before making ping requests again
dmaap.ribbon.ServerListRefreshInterval=75000
dmaap.ribbon.NFLoadBalancerPingInterval=75000
{{- $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 }}{{ $global.Release.Name }}-aai-cassandra-{{ $i }},{{- end }}
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:
"AAI_KEYSTORE_PASSWD_X": "OBF:1vn21ugu1saj1v9i1v941sar1ugw1vo0",
"APPLICATION_SERVERS": "aai.{{.Release.Namespace}}",
"AAI_DMAAP_PROTOCOL": "http",
- "AAI_DMAAP_HOST_PORT": "dmaap.{{.Release.Namespace}}:3904",
+ "AAI_DMAAP_HOST_PORT": "message-router.{{.Release.Namespace}}:3904",
"AAI_DMAAP_TOPIC_NAME": "AAI-EVENT",
"AAI_NOTIFICATION_EVENT_DEFAULT_EVENT_STATUS": "UNPROCESSED",
"AAI_NOTIFICATION_EVENT_DEFAULT_EVENT_TYPE": "AAI-EVENT",
"AAI_KEYSTORE_PASSWD_X": "OBF:1vn21ugu1saj1v9i1v941sar1ugw1vo0",
"APPLICATION_SERVERS": "aai.{{.Release.Namespace}}",
"AAI_DMAAP_PROTOCOL": "http",
- "AAI_DMAAP_HOST_PORT": "dmaap.{{.Release.Namespace}}:3904",
+ "AAI_DMAAP_HOST_PORT": "message-router.{{.Release.Namespace}}:3904",
"AAI_DMAAP_TOPIC_NAME": "AAI-EVENT",
"AAI_NOTIFICATION_EVENT_DEFAULT_EVENT_STATUS": "UNPROCESSED",
"AAI_NOTIFICATION_EVENT_DEFAULT_EVENT_TYPE": "AAI-EVENT",
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
# ============LICENSE_END=========================================================
###
-SDNC_HOME=${SDNC_HOME:-/opt/onap/sdnc}
-APPC_HOME=${APPC_HOME:-/opt/openecomp/appc}
+SDNC_HOME=${SDNC_HOME:-/opt/onap/ccsdk}
+APPC_HOME=${APPC_HOME:-/opt/onap/appc}
MYSQL_PASSWD=${MYSQL_PASSWD:-{{.Values.config.dbRootPassword}}}
APPC_DB_USER=${APPC_DB_USER:-appcctl}
exit
fi
- echo "Installing Opendaylight cluster features"
- ${ODL_HOME}/bin/client feature:install odl-mdsal-clustering
- ${ODL_HOME}/bin/client feature:install odl-jolokia
-
echo "Update cluster information statically"
hm=$(hostname)
echo "Get current Hostname ${hm}"
echo "Installing APPC database"
${APPC_HOME}/bin/installAppcDb.sh
+ echo "Installing ODL Host Key"
+ ${SDNC_HOME}/bin/installOdlHostKey.sh
+
echo "Starting OpenDaylight"
${ODL_HOME}/bin/start
echo "Copying a working version of the logging configuration into the opendaylight etc folder"
cp ${APPC_HOME}/data/org.ops4j.pax.logging.cfg ${ODL_HOME}/etc/org.ops4j.pax.logging.cfg
echo "Copying a new version of aaf cadi shiro into the opendaylight deploy folder"
- cp ${APPC_HOME}/data/aaf-cadi-shiro.jar ${ODL_HOME}/deploy/aaf-cadi-shiro.jar
+ cp ${APPC_HOME}/data/aaf-shiro-aafrealm-osgi-bundle.jar ${ODL_HOME}/deploy/aaf-shiro-aafrealm-osgi-bundle.jar
echo "Installing SDNC platform features"
${SDNC_HOME}/bin/installFeatures.sh
${SDNC_HOME}/svclogic/bin/install.sh
fi
+ if $ENABLE_ODL_CLUSTER ; then echo "Installing Opendaylight cluster features" ; ${ODL_HOME}/bin/client feature:install odl-mdsal-clustering ; ${ODL_HOME}/bin/client feature:install odl-jolokia ; fi
+
echo "Installing APPC platform features"
${APPC_HOME}/bin/installFeatures.sh
echo "cadi_prop_files=${APPC_HOME}/data/properties/cadi.properties" >> ${ODL_HOME}/etc/system.properties
echo "" >> ${ODL_HOME}/etc/system.properties
- echo "Copying a working version of the shiro configuration into the opendaylight etc folder"
- cp ${APPC_HOME}/data/shiro.ini ${ODL_HOME}/etc/shiro.ini
+ echo "Copying the aaa shiro configuration into opendaylight"
+ cp ${APPC_HOME}/data/aaa-app-config.xml ${ODL_HOME}/etc/opendaylight/datastore/initial/config/aaa-app-config.xml
+
echo "Restarting OpenDaylight"
${ODL_HOME}/bin/stop
- echo "Waiting 60 seconds for OpenDaylight stop to complete"
- sleep 60
+ checkRun () {
+ running=0
+ while read a b c d e f g h
+ do
+ if [ "$h" == "/bin/sh /opt/opendaylight/current/bin/karaf server" ]
+ then
+ running=1
+ fi
+ done < <(ps -eaf)
+ echo $running
+ }
+
+ while [ $( checkRun ) == 1 ]
+ do
+ echo "Karaf is still running, waiting..."
+ sleep 5s
+ done
+ echo "Karaf process has stopped"
+ sleep 10s
echo "Installed at `date`" > ${SDNC_HOME}/.installed
fi
#
# Certificate keystore and truststore
#
-org.onap.ccsdk.sli.adaptors.aai.ssl.trust=/opt/openecomp/appc/data/stores/truststore.openecomp.client.jks
-org.onap.ccsdk.sli.adaptors.aai.ssl.trust.psswd=adminadmin
+org.onap.ccsdk.sli.adaptors.aai.ssl.trust=/opt/onap/appc/data/stores/ONAPall.p12
+org.onap.ccsdk.sli.adaptors.aai.ssl.trust.psswd=changeit
+org.onap.ccsdk.sli.adaptors.aai.ssl.key=/opt/onap/appc/data/stores/ONAPall.p12
+org.onap.ccsdk.sli.adaptors.aai.ssl.key.psswd=changeit
org.onap.ccsdk.sli.adaptors.aai.host.certificate.ignore=true
org.onap.ccsdk.sli.adaptors.aai.client.name=AAI
#
# Configuration file for A&AI Client
#
-org.onap.ccsdk.sli.adaptors.aai.uri=https://aai-service.{{.Release.Namespace}}:8443
-
+org.onap.ccsdk.sli.adaptors.aai.uri=https://aai.{{.Release.Namespace}}:8443
# query
-org.onap.ccsdk.sli.adaptors.aai.path.query=/aai/v11/search/sdn-zone-query
-org.onap.ccsdk.sli.adaptors.aai.query.nodes=/aai/v11/search/nodes-query?search-node-type={node-type}&filter={entity-identifier}:EQUALS:{entity-name}
-org.onap.ccsdk.sli.adaptors.aai.query.generic=/aai/v11/search/generic-query?key={identifier}:{value}&start-node-type={start-node-type}&include=complex&depth=3
+org.onap.ccsdk.sli.adaptors.aai.path.query=/aai/v13/search/sdn-zone-query
+org.onap.ccsdk.sli.adaptors.aai.query.nodes=/aai/v13/search/nodes-query?search-node-type={node-type}&filter={entity-identifier}:EQUALS:{entity-name}
+org.onap.ccsdk.sli.adaptors.aai.query.generic=/aai/v13/search/generic-query?key={identifier}:{value}&start-node-type={start-node-type}&include=complex&depth=3
# named query
org.onap.ccsdk.sli.adaptors.aai.query.named=/aai/search/named-query
#update
-org.onap.ccsdk.sli.adaptors.aai.update=/aai/v11/actions/update
+org.onap.ccsdk.sli.adaptors.aai.update=/aai/v13/actions/update
# vce
-org.onap.ccsdk.sli.adaptors.aai.path.vce =/aai/v11/network/vces/vce/
-org.onap.ccsdk.sli.adaptors.aai.path.vces=/aai/v11/network/vces/
+org.onap.ccsdk.sli.adaptors.aai.path.vce =/aai/v13/network/vces/vce/
+org.onap.ccsdk.sli.adaptors.aai.path.vces=/aai/v13/network/vces/
# vpe
-org.onap.ccsdk.sli.adaptors.aai.path.vpe =/aai/v11/network/vpes/vpe/
-org.onap.ccsdk.sli.adaptors.aai.path.vpes=/aai/v11/network/vpes/
+org.onap.ccsdk.sli.adaptors.aai.path.vpe =/aai/v13/network/vpes/vpe/
+org.onap.ccsdk.sli.adaptors.aai.path.vpes=/aai/v13/network/vpes/
# customer
-org.onap.ccsdk.sli.adaptors.aai.path.customer=/aai/v11/business/customers/customer/{customer-id}
+org.onap.ccsdk.sli.adaptors.aai.path.customer=/aai/v13/business/customers/customer/{customer-id}
# service subscription
-org.onap.ccsdk.sli.adaptors.aai.path.service.subscription=/aai/v11/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}
+org.onap.ccsdk.sli.adaptors.aai.path.service.subscription=/aai/v13/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}
# service instance
-org.onap.ccsdk.sli.adaptors.aai.path.svcinst=/aai/v11/business/customers/customer/{customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances
-org.onap.ccsdk.sli.adaptors.aai.path.svcinst.query=/aai/v11/search/generic-query?key=service-instance.service-instance-id:{svc-instance-id}&start-node-type=service-instance&include=service-instance
-org.onap.ccsdk.sli.adaptors.aai.path.service.instance=/aai/v11/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id}
+org.onap.ccsdk.sli.adaptors.aai.path.svcinst=/aai/v13/business/customers/customer/{customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances
+org.onap.ccsdk.sli.adaptors.aai.path.svcinst.query=/aai/v13/search/generic-query?key=service-instance.service-instance-id:{svc-instance-id}&start-node-type=service-instance&include=service-instance
+org.onap.ccsdk.sli.adaptors.aai.path.service.instance=/aai/v13/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id}
# complex
-org.onap.ccsdk.sli.adaptors.aai.path.complexes=/aai/v11/cloud-infrastructure/complexes
-org.onap.ccsdk.sli.adaptors.aai.path.complex=/aai/v11/cloud-infrastructure/complexes/complex/{physical-location-id}
+org.onap.ccsdk.sli.adaptors.aai.path.complexes=/aai/v13/cloud-infrastructure/complexes
+org.onap.ccsdk.sli.adaptors.aai.path.complex=/aai/v13/cloud-infrastructure/complexes/complex/{physical-location-id}
# tenant
-org.onap.ccsdk.sli.adaptors.aai.path.tenant=/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}
-org.onap.ccsdk.sli.adaptors.aai.path.tenant.query=/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant?tenant-name={tenant-name}
+org.onap.ccsdk.sli.adaptors.aai.path.tenant=/aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}
+org.onap.ccsdk.sli.adaptors.aai.path.tenant.query=/aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant?tenant-name={tenant-name}
# vservers
-org.onap.ccsdk.sli.adaptors.aai.path.vservers=/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/
-org.onap.ccsdk.sli.adaptors.aai.path.vserver=/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}
+org.onap.ccsdk.sli.adaptors.aai.path.vservers=/aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/
+org.onap.ccsdk.sli.adaptors.aai.path.vserver=/aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}
# vpls-pe
-org.onap.ccsdk.sli.adaptors.aai.path.vpls.pes=/aai/v11/network/vpls-pes/
-org.onap.ccsdk.sli.adaptors.aai.path.vpls.pe =/aai/v11/network/vpls-pes/vpls-pe/
+org.onap.ccsdk.sli.adaptors.aai.path.vpls.pes=/aai/v13/network/vpls-pes/
+org.onap.ccsdk.sli.adaptors.aai.path.vpls.pe =/aai/v13/network/vpls-pes/vpls-pe/
# ctag-pool
-org.onap.ccsdk.sli.adaptors.aai.path.ctag.pools=/aai/v11/cloud-infrastructure/complexes/complex/{physical-location-id}/ctag-pools
-org.onap.ccsdk.sli.adaptors.aai.path.ctag.pool=/aai/v11/cloud-infrastructure/complexes/complex/{physical-location-id}/ctag-pools/ctag-pool/{target-pe}/{availability-zone-name}
+org.onap.ccsdk.sli.adaptors.aai.path.ctag.pools=/aai/v13/cloud-infrastructure/complexes/complex/{physical-location-id}/ctag-pools
+org.onap.ccsdk.sli.adaptors.aai.path.ctag.pool=/aai/v13/cloud-infrastructure/complexes/complex/{physical-location-id}/ctag-pools/ctag-pool/{target-pe}/{availability-zone-name}
#
#-------------- 1510 ----------------------
#
# pservers
-org.onap.ccsdk.sli.adaptors.aai.path.pservers=/aai/v11/cloud-infrastructure/pservers
-org.onap.ccsdk.sli.adaptors.aai.path.pserver=/aai/v11/cloud-infrastructure/pservers/pserver/{hostname}
+org.onap.ccsdk.sli.adaptors.aai.path.pservers=/aai/v13/cloud-infrastructure/pservers
+org.onap.ccsdk.sli.adaptors.aai.path.pserver=/aai/v13/cloud-infrastructure/pservers/pserver/{hostname}
# generic-vnf
-org.onap.ccsdk.sli.adaptors.aai.path.generic.vnfs=/aai/v11/network/generic-vnfs
-org.onap.ccsdk.sli.adaptors.aai.path.generic.vnf=/aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}
+org.onap.ccsdk.sli.adaptors.aai.path.generic.vnfs=/aai/v13/network/generic-vnfs
+org.onap.ccsdk.sli.adaptors.aai.path.generic.vnf=/aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}
# dvs-switch
-org.onap.ccsdk.sli.adaptors.aai.path.dvsswitches=/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/dvs-switches
-org.onap.ccsdk.sli.adaptors.aai.path.dvsswitch=/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/dvs-switches/dvs-switch/{switch-name}
+org.onap.ccsdk.sli.adaptors.aai.path.dvsswitches=/aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/dvs-switches
+org.onap.ccsdk.sli.adaptors.aai.path.dvsswitch=/aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/dvs-switches/dvs-switch/{switch-name}
# L3 Networks
-org.onap.ccsdk.sli.adaptors.aai.path.l3networks=/aai/v11/network/l3-networks
-org.onap.ccsdk.sli.adaptors.aai.path.l3network=/aai/v11/network/l3-networks/l3-network/{network-id}
-org.onap.ccsdk.sli.adaptors.aai.path.l3network.query.name=/aai/v11/network/l3-networks/l3-network?network-name={network-name}
+org.onap.ccsdk.sli.adaptors.aai.path.l3networks=/aai/v13/network/l3-networks
+org.onap.ccsdk.sli.adaptors.aai.path.l3network=/aai/v13/network/l3-networks/l3-network/{network-id}
+org.onap.ccsdk.sli.adaptors.aai.path.l3network.query.name=/aai/v13/network/l3-networks/l3-network?network-name={network-name}
# P-Interfaces
-org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterfaces=/aai/v11/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces
-org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface=/aai/v11/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}
+org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterfaces=/aai/v13/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces
+org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface=/aai/v13/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}
# Physical Link
-org.onap.ccsdk.sli.adaptors.aai.path.physical.links=/aai/v11/network/physical-links
-org.onap.ccsdk.sli.adaptors.aai.path.physical.link=/aai/v11/network/physical-links/physical-link/{link-name}
+org.onap.ccsdk.sli.adaptors.aai.path.physical.links=/aai/v13/network/physical-links
+org.onap.ccsdk.sli.adaptors.aai.path.physical.link=/aai/v13/network/physical-links/physical-link/{link-name}
# VPN Bindings
-org.onap.ccsdk.sli.adaptors.aai.path.vpn.bindings=/aai/v11/network/vpn-bindings/
-org.onap.ccsdk.sli.adaptors.aai.path.vpn.binding=/aai/v11/network/vpn-bindings/vpn-binding/{vpn-id}
+org.onap.ccsdk.sli.adaptors.aai.path.vpn.bindings=/aai/v13/network/vpn-bindings/
+org.onap.ccsdk.sli.adaptors.aai.path.vpn.binding=/aai/v13/network/vpn-bindings/vpn-binding/{vpn-id}
# VNF IMAGES
-org.onap.ccsdk.sli.adaptors.aai.path.vnf.images=/aai/v11/service-design-and-creation/vnf-images
-org.onap.ccsdk.sli.adaptors.aai.path.vnf.image=/aai/v11/service-design-and-creation/vnf-images/vnf-image/{att-uuid}
-org.onap.ccsdk.sli.adaptors.aai.path.vnf.image.query=/aai/v11/service-design-and-creation/vnf-images/vnf-image?application={application_model}&application-vendor={application_vendor}
+org.onap.ccsdk.sli.adaptors.aai.path.vnf.images=/aai/v13/service-design-and-creation/vnf-images
+org.onap.ccsdk.sli.adaptors.aai.path.vnf.image=/aai/v13/service-design-and-creation/vnf-images/vnf-image/{att-uuid}
+org.onap.ccsdk.sli.adaptors.aai.path.vnf.image.query=/aai/v13/service-design-and-creation/vnf-images/vnf-image?application={application_model}&application-vendor={application_vendor}
# UBB Notify
-org.onap.ccsdk.sli.adaptors.aai.path.notify=/aai/v11/actions/notify
+org.onap.ccsdk.sli.adaptors.aai.path.notify=/aai/v13/actions/notify
org.onap.ccsdk.sli.adaptors.aai.notify.selflink.fqdn=https://aai-service.{{.Release.Namespace}}:8443/restconf/config/L3SDN-API:services/layer3-service-list/{service-instance-id}
org.onap.ccsdk.sli.adaptors.aai.notify.selflink.avpn=https://aai-service.{{.Release.Namespace}}:8443/restconf/config/L3AVPN-EVC-API:services/service-list/{service-instance-id}/service-data/avpn-logicalchannel-information
# Service
-org.onap.ccsdk.sli.adaptors.aai.path.service=/aai/v11/service-design-and-creation/services/service/{service-id}
-org.onap.ccsdk.sli.adaptors.aai.path.services=/aai/v11/service-design-and-creation/services
+org.onap.ccsdk.sli.adaptors.aai.path.service=/aai/v13/service-design-and-creation/services/service/{service-id}
+org.onap.ccsdk.sli.adaptors.aai.path.services=/aai/v13/service-design-and-creation/services
#
#
# VNFC
-org.onap.ccsdk.sli.adaptors.aai.path.vnfc=/aai/v11/network/vnfcs/vnfc/{vnfc-name}
+org.onap.ccsdk.sli.adaptors.aai.path.vnfc=/aai/v13/network/vnfcs/vnfc/{vnfc-name}
# class-of-service
-org.onap.ccsdk.sli.adaptors.aai.path.class.of.service=/aai/v11/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id}/site-pairs/site-pair/{site-pair-id}/classes-of-service/class-of-service/{cos-id}
+org.onap.ccsdk.sli.adaptors.aai.path.class.of.service=/aai/v13/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id}/site-pairs/site-pair/{site-pair-id}/classes-of-service/class-of-service/{cos-id}
# site-pair
-org.onap.ccsdk.sli.adaptors.aai.path.site.pair=/aai/v11/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id}/site-pairs/site-pair/{site-pair-id}
+org.onap.ccsdk.sli.adaptors.aai.path.site.pair=/aai/v13/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id}/site-pairs/site-pair/{site-pair-id}
# routing-instance
-org.onap.ccsdk.sli.adaptors.aai.path.routing.instance=/aai/v11/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id}
+org.onap.ccsdk.sli.adaptors.aai.path.routing.instance=/aai/v13/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id}
# site-pair-set
-org.onap.ccsdk.sli.adaptors.aai.path.site.pair.set=/aai/v11/network/site-pair-sets/site-pair-set/{site-pair-set-id}
+org.onap.ccsdk.sli.adaptors.aai.path.site.pair.set=/aai/v13/network/site-pair-sets/site-pair-set/{site-pair-set-id}
# license key resource
-org.onap.ccsdk.sli.adaptors.aai.path.license.acquire=/aai/v11/actions/assignment/license-management/assignment-group-uuid/{assignment-group-uuid}
-org.onap.ccsdk.sli.adaptors.aai.path.license=/aai/v11/license-management/license-key-resources/license-key-resource/{att-uuid}
+org.onap.ccsdk.sli.adaptors.aai.path.license.acquire=/aai/v13/actions/assignment/license-management/assignment-group-uuid/{assignment-group-uuid}
+org.onap.ccsdk.sli.adaptors.aai.path.license=/aai/v13/license-management/license-key-resources/license-key-resource/{att-uuid}
# logical-link
-org.onap.ccsdk.sli.adaptors.aai.path.logical.link =/aai/v11/network/logical-links/logical-link/{link-name}
+org.onap.ccsdk.sli.adaptors.aai.path.logical.link =/aai/v13/network/logical-links/logical-link/{link-name}
# virtual-data-center
-org.onap.ccsdk.sli.adaptors.aai.path.virtual.data.center=/aai/v11/cloud-infrastructure/virtual-data-centers/virtual-data-center/{vdc-id}
+org.onap.ccsdk.sli.adaptors.aai.path.virtual.data.center=/aai/v13/cloud-infrastructure/virtual-data-centers/virtual-data-center/{vdc-id}
# wan-connector
-org.onap.ccsdk.sli.adaptors.aai.path.wan.connector=/aai/v11/business/connectors/connector/{resource-instance-id}
+org.onap.ccsdk.sli.adaptors.aai.path.wan.connector=/aai/v13/business/connectors/connector/{resource-instance-id}
# l-interface
-org.onap.ccsdk.sli.adaptors.aai.path.lag.interface.l.interface=/aai/v11/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{lag-interface.interface-name}/l-interfaces/l-interface/{interface-name}
-org.onap.ccsdk.sli.adaptors.aai.path.p.interface.l.interface=/aai/v11/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{p-interface.interface-name}/l-interfaces/l-interface/{interface-name}
+org.onap.ccsdk.sli.adaptors.aai.path.lag.interface.l.interface=/aai/v13/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{lag-interface.interface-name}/l-interfaces/l-interface/{interface-name}
+org.onap.ccsdk.sli.adaptors.aai.path.p.interface.l.interface=/aai/v13/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{p-interface.interface-name}/l-interfaces/l-interface/{interface-name}
# l-interface pnf
-org.onap.ccsdk.sli.adaptors.aai.path.lag.interface.l.interface.pnf=/aai/v11/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{lag-interface.interface-name}/l-interfaces/l-interface/{interface-name}
-org.onap.ccsdk.sli.adaptors.aai.path.p.interface.l.interface.pnf=/aai/v11/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{p-interface.interface-name}/l-interfaces/l-interface/{interface-name}
+org.onap.ccsdk.sli.adaptors.aai.path.lag.interface.l.interface.pnf=/aai/v13/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{lag-interface.interface-name}/l-interfaces/l-interface/{interface-name}
+org.onap.ccsdk.sli.adaptors.aai.path.p.interface.l.interface.pnf=/aai/v13/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{p-interface.interface-name}/l-interfaces/l-interface/{interface-name}
# subinterface
-org.onap.ccsdk.sli.adaptors.aai.path.pnf.lag.interface.subinterface=/aai/v11/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{lag-interface.interface-name}/l-interfaces/l-interface/{interface-name}
-org.onap.ccsdk.sli.adaptors.aai.path.pnf.p.interface.l.interface=/aai/v11/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{p-interface.interface-name}/l-interfaces/l-interface/{interface-name}
+org.onap.ccsdk.sli.adaptors.aai.path.pnf.lag.interface.subinterface=/aai/v13/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{lag-interface.interface-name}/l-interfaces/l-interface/{interface-name}
+org.onap.ccsdk.sli.adaptors.aai.path.pnf.p.interface.l.interface=/aai/v13/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{p-interface.interface-name}/l-interfaces/l-interface/{interface-name}
# vlans
-org.onap.ccsdk.sli.adaptors.aai.path.vlan=/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}
-org.onap.ccsdk.sli.adaptors.aai.path.generic.vnf.vlan=/aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}
+org.onap.ccsdk.sli.adaptors.aai.path.vlan=/aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}
+org.onap.ccsdk.sli.adaptors.aai.path.generic.vnf.vlan=/aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}
# l3-interface-ipv4-address-list
-org.onap.ccsdk.sli.adaptors.aai.path.l3.interface.ipv4.address.list=/aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address}
-org.onap.ccsdk.sli.adaptors.aai.path.vlan.l3.interface.ipv4.address.list=/aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address}
+org.onap.ccsdk.sli.adaptors.aai.path.l3.interface.ipv4.address.list=/aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address}
+org.onap.ccsdk.sli.adaptors.aai.path.vlan.l3.interface.ipv4.address.list=/aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address}
# l3-interface-ipv6-address-list
-org.onap.ccsdk.sli.adaptors.aai.path.l3.interface.ipv6.address.list=/aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address}
-org.onap.ccsdk.sli.adaptors.aai.path.vlan.l3.interface.ipv6.address.list=/aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address}
+org.onap.ccsdk.sli.adaptors.aai.path.l3.interface.ipv6.address.list=/aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address}
+org.onap.ccsdk.sli.adaptors.aai.path.vlan.l3.interface.ipv6.address.list=/aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address}
# ipsec-configuration
-org.onap.ccsdk.sli.adaptors.aai.path.ipsec.configuration=/aai/v11/network/ipsec-configurations/ipsec-configuration/{ipsec-configuration-id}
+org.onap.ccsdk.sli.adaptors.aai.path.ipsec.configuration=/aai/v13/network/ipsec-configurations/ipsec-configuration/{ipsec-configuration-id}
# vig server
-org.onap.ccsdk.sli.adaptors.aai.path.vig.server=/aai/v11/network/ipsec-configurations/ipsec-configuration/{ipsec-configuration-id}/vig-servers/vig-server/{vig-address-type}
+org.onap.ccsdk.sli.adaptors.aai.path.vig.server=/aai/v13/network/ipsec-configurations/ipsec-configuration/{ipsec-configuration-id}/vig-servers/vig-server/{vig-address-type}
# l3-network
-org.onap.ccsdk.sli.adaptors.aai.path.l3.network=/aai/v11/network/l3-networks/l3-network/{network-id}
+org.onap.ccsdk.sli.adaptors.aai.path.l3.network=/aai/v13/network/l3-networks/l3-network/{network-id}
# subnet
-org.onap.ccsdk.sli.adaptors.aai.path.subnet=/aai/v11/network/l3-networks/l3-network/{network-id}/subnets/subnet/{subnet-id}
+org.onap.ccsdk.sli.adaptors.aai.path.subnet=/aai/v13/network/l3-networks/l3-network/{network-id}/subnets/subnet/{subnet-id}
# multicast-configuration
-org.onap.ccsdk.sli.adaptors.aai.path.multicast.configuration=/aai/v11/network/multicast-configurations/multicast-configuration/{multicast-configuration-id}
+org.onap.ccsdk.sli.adaptors.aai.path.multicast.configuration=/aai/v13/network/multicast-configurations/multicast-configuration/{multicast-configuration-id}
# org.onap.ccsdk.sli.adaptors.aai.path.l.interface.ipv4.address.list
-org.onap.ccsdk.sli.adaptors.aai.path.l3-interface.ipv4.address.list=/aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address}
+org.onap.ccsdk.sli.adaptors.aai.path.l3-interface.ipv4.address.list=/aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address}
# org.onap.ccsdk.sli.adaptors.aai.path.l.interface.vlan.ipv4.address.list
-org.onap.ccsdk.sli.adaptors.aai.path.l3-interface.vlan.ipv4.address.list=/aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address}
+org.onap.ccsdk.sli.adaptors.aai.path.l3-interface.vlan.ipv4.address.list=/aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address}
# org.onap.ccsdk.sli.adaptors.aai.path.l.interface.ipv6.address.list
-org.onap.ccsdk.sli.adaptors.aai.path.l3-interface.ipv6.address.list=/aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address}
+org.onap.ccsdk.sli.adaptors.aai.path.l3-interface.ipv6.address.list=/aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address}
# volume.group
-org.onap.ccsdk.sli.adaptors.aai.path.volume.group=/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/volume-groups/volume-group/{volume-group-id}
+org.onap.ccsdk.sli.adaptors.aai.path.volume.group=/aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/volume-groups/volume-group/{volume-group-id}
#cloud region
-org.onap.ccsdk.sli.adaptors.aai.path.cloud.region=/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}
+org.onap.ccsdk.sli.adaptors.aai.path.cloud.region=/aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}
# vf-module
-org.onap.ccsdk.sli.adaptors.aai.path.vf.module=/aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/vf-modules/vf-module/{vf-module-id}
+org.onap.ccsdk.sli.adaptors.aai.path.vf.module=/aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/vf-modules/vf-module/{vf-module-id}
# l-interface through generic-vnf
-org.onap.ccsdk.sli.adaptors.aai.path.generic.vnf.linterface=/aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}
+org.onap.ccsdk.sli.adaptors.aai.path.generic.vnf.linterface=/aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}
# network-policy
-org.onap.ccsdk.sli.adaptors.aai.path.network.policy=/aai/v11/network/network-policies/network-policy/{network-policy-id}
+org.onap.ccsdk.sli.adaptors.aai.path.network.policy=/aai/v13/network/network-policies/network-policy/{network-policy-id}
# pnf
-org.onap.ccsdk.sli.adaptors.aai.path.pnf=/aai/v11/network/pnfs/pnf/{pnf-name}
+org.onap.ccsdk.sli.adaptors.aai.path.pnf=/aai/v13/network/pnfs/pnf/{pnf-name}
#
# Formatting
### ###
### Properties for demo ###
### ###
-appc.demo.poolMembers=dmaap.{{.Release.Namespace}}:3904
+appc.demo.poolMembers=message-router.{{.Release.Namespace}}:3904
appc.demo.topic.read=APPC-CL
appc.demo.topic.write=APPC-CL
appc.demo.client.name=appcDemoEventListener
### ###
### OpenStack credentials (these properties also are used in appc-rest-adapter-bundle, appc-chef-adapter-bundle, appc-iaas-adapter-bundle) ###
### ###
-provider1.type=OpenStackProvider
-provider1.name=OpenStack
-provider1.identity=http://localhost:8181/apidoc/explorer/index.html
-provider1.tenant1.name=default
-provider1.tenant1.domain=default
-provider1.tenant1.userid=admin
-provider1.tenant1.password=admin
-
-
-
-
+provider1.type={{.Values.config.openStackType}}
+provider1.name={{.Values.config.openStackName}}
+provider1.identity={{.Values.config.openStackKeyStoneUrl}}
+provider1.tenant1.name={{.Values.config.openStackServiceTenantName}}
+provider1.tenant1.domain={{.Values.config.openStackDomain}}
+provider1.tenant1.userid={{.Values.config.openStackUserName}}
+provider1.tenant1.password={{.Values.config.openStackEncryptedPassword}}
### ###
### Properties that are not covered or being replaced from default.properties files. Default value for DMaaP IP is 10.0.11.1:3904 ###
# Property below is valid in appc-command-executor-core, appc-license-manager-core, appc-lifecycle-management-core,
# appc-request-handler-core, appc-workflow-management-core (all from the appc-dispatcher package).
-dmaap.poolMembers=dmaap.{{.Release.Namespace}}:3904
+dmaap.poolMembers=message-router.{{.Release.Namespace}}:3904
# appc-event-listener-bundle properties (only defined in src/test of default.properties)
-appc.LCM.poolMembers=dmaap.{{.Release.Namespace}}:3904
+appc.LCM.poolMembers=message-router.{{.Release.Namespace}}:3904
appc.LCM.topic.read=APPC-LCM-READ
appc.LCM.topic.write=APPC-LCM-WRITE
appc.LCM.client.name=APPC-EVENT-LISTENER-TEST
appc.LCM.provider.url=http://localhost:8181/restconf/operations/appc-provider-lcm
# properties from appc-netconf-adapter-bundle, appc-dg-common, appc-dmaap-adapter-bundle
-poolMembers=dmaap.{{.Release.Namespace}}:3904
-event.pool.members=dmaap.{{.Release.Namespace}}:3904
+poolMembers=message-router.{{.Release.Namespace}}:3904
+event.pool.members=message-router.{{.Release.Namespace}}:3904
restconf.user=admin
restconf.pass=admin
DCAE.dmaap.event.topic.write=EventSenderTest
DCAE.dmaap.appc.username=test
DCAE.dmaap.appc.password=test
-DCAE.dmaap.event.pool.members=dmaap.{{.Release.Namespace}}:3904
+DCAE.dmaap.event.pool.members=message-router.{{.Release.Namespace}}:3904
#OAM Listener
appc.OAM.disabled=true
appc.OAM.provider.url=http://localhost:8181/restconf/operations/appc-oam
-appc.OAM.poolMembers=dmaap.{{.Release.Namespace}}:3904
+appc.OAM.poolMembers=message-router.{{.Release.Namespace}}:3904
appc.OAM.service=ueb
appc.OAM.topic.read=testOAM
appc.OAM.topic.write=testOAM
# ============LICENSE_END=========================================================
###
-SDNC_HOME=${SDNC_HOME:-/opt/onap/sdnc}
+SDNC_HOME=${SDNC_HOME:-/opt/onap/ccsdk}
MYSQL_PASSWD=${MYSQL_PASSWD:-{{.Values.config.dbRootPassword}}}
SDNC_DB_USER=${SDNC_DB_USER:-sdnctl}
#
# Configuration file for A&AI Client
#
-org.onap.ccsdk.sli.adaptors.aai.uri=https://aai-service.{{.Release.Namespace}}:8443
+org.onap.ccsdk.sli.adaptors.aai.uri=https://aai.{{.Release.Namespace}}:8443
# query
# UBB Notify
org.onap.ccsdk.sli.adaptors.aai.path.notify=/aai/v11/actions/notify
-org.onap.ccsdk.sli.adaptors.aai.notify.selflink.fqdn=https://aai-service.{{.Release.Namespace}}:8443/restconf/config/L3SDN-API:services/layer3-service-list/{service-instance-id}
-org.onap.ccsdk.sli.adaptors.aai.notify.selflink.avpn=https://aai-service.{{.Release.Namespace}}:8443/restconf/config/L3AVPN-EVC-API:services/service-list/{service-instance-id}/service-data/avpn-logicalchannel-information
+org.onap.ccsdk.sli.adaptors.aai.notify.selflink.fqdn=https://aai.{{.Release.Namespace}}:8443/restconf/config/L3SDN-API:services/layer3-service-list/{service-instance-id}
+org.onap.ccsdk.sli.adaptors.aai.notify.selflink.avpn=https://aai.{{.Release.Namespace}}:8443/restconf/config/L3AVPN-EVC-API:services/service-list/{service-instance-id}/service-data/avpn-logicalchannel-information
# Service
org.onap.ccsdk.sli.adaptors.aai.path.service=/aai/v11/service-design-and-creation/services/service/{service-id}
--- /dev/null
+{{/*
+# 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 -}}
apiVersion: v1
kind: Service
metadata:
- name: {{ include "common.fullname" . }}
+ name: {{ include "common.servicename" . }}
namespace: {{ include "common.namespace" . }}
labels:
app: {{ include "common.name" . }}
- port: {{ .Values.service.externalPort }}
targetPort: {{ .Values.service.internalPort }}
nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
- name: "{{ .Values.service.name }}-8282"
+ name: "{{ .Values.service.portName }}-8282"
- port: {{ .Values.service.externalPort2 }}
nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort2 }}
- name: "{{ .Values.service.name }}-1830"
+ name: "{{ .Values.service.portName }}-1830"
{{- else -}}
- port: {{ .Values.service.externalPort }}
targetPort: {{ .Values.service.internalPort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}-8282
+ - port: {{ .Values.service.externalPort2 }}
+ targetPort: {{ .Values.service.internalPort2 }}
+ name: {{ .Values.service.portName }}-1830
{{- end}}
selector:
app: {{ include "common.name" . }}
apiVersion: v1
kind: Service
metadata:
- name: {{ .Values.service.name }}-cluster
+ name: {{ include "common.servicename" . }}-cluster
namespace: {{ include "common.namespace" . }}
labels:
app: {{ include "common.name" . }}
service.alpha.kubernetes.io/tolerate-unready-endpoints: "true"
spec:
ports:
- - name: "{{ .Values.service.name }}-cluster-port"
+ - name: "{{ .Values.service.portName }}-cluster-port"
port: {{ .Values.service.clusterPort }}
clusterIP: None
selector:
app: {{ include "common.name" . }}
release: {{ .Release.Name }}
spec:
+ imagePullSecrets:
+ - name: "{{ include "common.namespace" . }}-docker-registry-key"
initContainers:
- command:
- /root/ready.py
- 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
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 }}
dmaapTopic: SUCCESS
logstashServiceName: log-ls
logstashPort: 5044
+ openStackType: OpenStackProvider
+ openStackName: OpenStack
+ openStackKeyStoneUrl: http://localhost:8181/apidoc/explorer/index.html
+ openStackServiceTenantName: default
+ openStackDomain: default
+ openStackUserName: admin
+ openStackEncryptedPassword: admin
mysql:
nameOverride: appc-db
config:
dbPodName: appc-db
dbServiceName: appc-dbhost
+ service:
+ name: appc-dgbuilder
# default number of instances
replicaCount: 3
service:
type: NodePort
name: appc
+ portName: appc
#targetPort
internalPort: 8181
#port
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
apiVersion: v1
kind: Service
metadata:
- name: {{ include "common.fullname" . }}
+ name: {{ include "common.servicename" . }}
namespace: {{ include "common.namespace" . }}
labels:
app: {{ include "common.name" . }}
- port: {{ .Values.service.externalPort }}
targetPort: {{ .Values.service.internalPort }}
{{- end}}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
selector:
app: {{ include "common.name" . }}
- release: {{ .Release.Name }}
\ No newline at end of file
+ release: {{ .Release.Name }}
service:
type: ClusterIP
- name: mariadb
+ name: clampdb
+ portName: clampdb
internalPort: 3306
externalPort: 3306
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
data:
- spring_application_json: {{ .Values.config.springApplicationJson | quote }}
+ spring_application_json: {{ tpl .Values.config.springApplicationJson . | quote }}
apiVersion: v1
kind: Service
metadata:
- name: {{ include "common.fullname" . }}
+ name: {{ include "common.servicename" . }}
namespace: {{ include "common.namespace" . }}
labels:
app: {{ include "common.name" . }}
{{if eq .Values.service.type "NodePort" -}}
- port: {{ .Values.service.internalPort }}
nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
{{- else -}}
- port: {{ .Values.service.externalPort }}
targetPort: {{ .Values.service.internalPort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
{{- end}}
selector:
app: {{ include "common.name" . }}
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"
}
# 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
service:
type: NodePort
name: clamp
+ portName: clamp
internalPort: 8080
nodePort: 95
apiVersion: v1
kind: Service
metadata:
- name: {{ include "common.fullname" . }}
+ name: {{ include "common.servicename" . }}
namespace: {{ include "common.namespace" . }}
labels:
app: {{ include "common.name" . }}
- port: {{ .Values.service.externalPort }}
targetPort: {{ .Values.service.internalPort }}
nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
{{- else -}}
- port: {{ .Values.service.externalPort }}
targetPort: {{ .Values.service.internalPort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
{{- end}}
selector:
app: {{ include "common.name" . }}
- release: {{ .Release.Name }}
\ No newline at end of file
+ release: {{ .Release.Name }}
service:
type: NodePort
name: dgbuilder
+ portName: dgbuilder
externalPort: 3000
internalPort: 3100
nodePort: 28
metadata:
annotations:
service.alpha.kubernetes.io/tolerate-unready-endpoints: "true"
- name: {{ include "common.fullname" . }}
+ name: {{ include "common.servicename" . }}
namespace: {{ include "common.namespace" . }}
labels:
app: {{ include "common.fullname" . }}
heritage: "{{ .Release.Service }}"
spec:
ports:
- - name: {{ .Values.service.name }}
+ - name: {{ .Values.service.portName }}
port: {{ .Values.service.internalPort }}
clusterIP: None
selector:
- app: {{ include "common.fullname" . }}
\ No newline at end of file
+ app: {{ include "common.fullname" . }}
service:
internalPort: 3306
name: mariadb-galera
+ portName: mariadb-galera
sstPort: 4444
sstName: sst
replicationPort: 4567
nameOverride: mariadb-galera
# DNS name for mariadb-galera cluster - should be unique accross all projects other clusters
-#dnsnameOverride: mariadb-galera
\ No newline at end of file
+#dnsnameOverride: mariadb-galera
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
- name: {{ .Release.Name }}-{{ .Values.nfsprovisionerPrefix }}-nfs-provisioner
+ name: {{ .Values.nfsprovisionerPrefix }}-nfs-provisioner
namespace: {{ include "common.namespace" . }}
labels:
app: {{ include "common.name" . }}
fieldRef:
fieldPath: status.podIP
- name: SERVICE_NAME
- value: {{ .Release.Name }}-{{ .Values.nfsprovisionerPrefix }}-nfs-provisioner
+ value: {{ .Values.nfsprovisionerPrefix }}-nfs-provisioner
- name: POD_NAMESPACE
valueFrom:
fieldRef:
apiVersion: v1
kind: Service
metadata:
- name: {{ .Values.service.name }}
+ name: {{ include "common.servicename" . }}
namespace: {{ include "common.namespace" . }}
labels:
app: {{ include "common.name" . }}
spec:
ports:
- port: {{ .Values.service.internalPort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
selector:
app: {{ include "common.name" . }}
release: {{ .Release.Name }}
kind: Service
apiVersion: v1
metadata:
- name: {{ .Release.Name }}-{{ .Values.nfsprovisionerPrefix }}-nfs-provisioner
+ name: {{ .Values.nfsprovisionerPrefix }}-nfs-provisioner
namespace: {{ include "common.namespace" . }}
labels:
app: {{ .Values.nfsprovisionerPrefix }}-nfs-provisioner
apiVersion: v1
kind: Service
metadata:
- name: {{ .Values.service.name }}-read
+ name: {{ include "common.servicename" . }}-read
namespace: {{ include "common.namespace" . }}
labels:
app: {{ include "common.name" . }}
spec:
ports:
- port: {{ .Values.service.internalPort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
selector:
app: {{ include "common.name" . }}
release: {{ .Release.Name }}
spec:
ports:
- port: {{ .Values.service.internalPort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
selector:
app: {{ include "common.name" . }}
release: {{ .Release.Name }}
spec:
ports:
- port: {{ .Values.service.internalPort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
selector:
app: {{ include "common.name" . }}
release: {{ .Release.Name }}
apiVersion: v1
kind: Service
metadata:
- name: {{ .Values.service.name }}-nodeport
+ name: {{ include "common.servicename" . }}-nodeport
namespace: {{ include "common.namespace" . }}
labels:
statefulset.kubernetes.io/pod-name: {{ include "common.fullname" . }}-0
service:
name: mysql
+ portName: mysql
internalPort: 3306
# nfs provisioner ports
nfsPort: 2049
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.fullname" . }}.{{ include "common.namespace" . }}"]
+ args: ["agent","-server","-client","0.0.0.0","-enable-script-checks","-bootstrap-expect={{ .Values.replicaCount }}","-ui"]
name: {{ include "common.name" . }}
apiVersion: v1
kind: Service
metadata:
- name: {{ include "common.fullname" . }}
+ name: {{ include "common.servicename" . }}
namespace: {{ include "common.namespace" . }}
labels:
app: {{ include "common.name" . }}
- port: {{ .Values.service.internalPort }}
targetPort: {{ .Values.service.internalPort }}
nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
- port: {{ .Values.service.internalPort2 }}
targetPort: {{ .Values.service.internalPort2 }}
nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort2 }}
- name: {{ .Values.service.name2 }}
+ name: {{ .Values.service.portName2 }}
selector:
app: {{ template "common.name" . }}
release: {{ .Release.Name }}
#################################################################
global:
nodePortPrefix: 302
- repository: nexus3.onap.org:10001
repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ==
readinessRepository: oomk8s
readinessImage: readiness-check:2.0.0
# flag to enable debugging - application support required
debugEnabled: false
-replicaCount: 3
+replicaCount: 1
nodeSelector: {}
# 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:
type: NodePort
- name: consul-ui
+ name: consul-server
+ portName: consul-ui
nodePort: 70
internalPort: 8500
- name2: consul-join
+ portName2: consul-join
nodePort2: 71
internalPort2: 8301
{
"id": "hbase-aai",
"name": "HBase Health Check",
- "http": "http://hbase.{{ .Values.nsPrefix }}:8080/status/cluster",
+ "http": "http://hbase:8080/status/cluster",
"method": "GET",
"header": {
"Cache-Control": ["no-cache"],
{
"id": "elasticsearch",
"name": "Search Data Service Document Store",
- "http": "http://aai-elasticsearch.{{ .Values.nsPrefix }}:9200/_cat/indices?v",
+ "http": "http://aai-elasticsearch:9200/_cat/indices?v",
"interval": "15s",
"timeout": "1s"
},
{
"id": "search-data-service-availability",
"name": "Search Data Service Availability",
- "script": "curl -k --cert /consul/certs/client-cert-onap.crt.pem --cert-type PEM --key /consul/certs/client-cert-onap.key.pem --key-type PEM https://search-data-service.{{ .Values.nsPrefix }}:9509/services/search-data-service/v1/jaxrsExample/jaxrs-services/echo/up 2>&1 | grep 'Up'",
+ "script": "curl -k --cert /consul/certs/client-cert-onap.crt.pem --cert-type PEM --key /consul/certs/client-cert-onap.key.pem --key-type PEM https://search-data-service:9509/services/search-data-service/v1/jaxrsExample/jaxrs-services/echo/up 2>&1 | grep 'Up'",
"interval": "15s"
},
{
{
"id": "aai-service",
"name": "Core A&AI",
- "http": "https://aai-service.{{ .Values.nsPrefix }}:8443/aai/util/echo",
+ "http": "https://aai-service:8443/aai/util/echo",
"header": {
"Authorization": ["Basic QUFJOkFBSQ=="],
"X-TransactionId": ["ConsulHealthCheck"],
{
"id": "aai-resources",
"name": "Resources Microservice",
- "http": "https://aai-resources.{{ .Values.nsPrefix }}:8447/aai/util/echo",
+ "http": "https://aai-resources:8447/aai/util/echo",
"header": {
"Authorization": ["Basic QUFJOkFBSQ=="],
"X-TransactionId": ["ConsulHealthCheck"],
{
"id": "aai-traversal",
"name": "Traversal Microservice",
- "http": "https://aai-traversal.{{ .Values.nsPrefix }}:8446/aai/util/echo",
+ "http": "https://aai-traversal:8446/aai/util/echo",
"header": {
"Authorization": ["Basic QUFJOkFBSQ=="],
"X-TransactionId": ["ConsulHealthCheck"],
{
"id": "appc-dgbuilder",
"name": "APPC-Dgbuilder Server Health Check",
- "http": "http://appc-dgbuilder.{{ .Values.nsPrefix }}:3000/",
+ "http": "http://appc-dgbuilder:3000/",
"method": "HEAD",
"header": {
"Authorization": ["Basic ZGd1c2VyOnRlc3QxMjM="],
"name": "Health Check: APPC-SDN-CTL-DB-01",
"checks": [
{
- "id": "appc-sdnctldb01.{{ .Values.nsPrefix }}",
+ "id": "appc-sdnctldb01",
"name": "APPC SDNCTLDB01 Health Check",
- "tcp": "appc-sdnctldb01.{{ .Values.nsPrefix }}:3306",
+ "tcp": "appc-sdnctldb01:3306",
"interval": "10s",
"timeout": "1s"
}
"name": "Health Check: APPC-SDN-CTL-DB-02",
"checks": [
{
- "id": "appc-sdnctldb02.{{ .Values.nsPrefix }}",
+ "id": "appc-sdnctldb02",
"name": "APPC SDNCTLDB02 Health Check",
- "tcp": "appc-sdnctldb02.{{ .Values.nsPrefix }}:3306",
+ "tcp": "appc-sdnctldb02:3306",
"interval": "10s",
"timeout": "1s"
}
{
"id": "appc-sdnhost",
"name": "APPC SDN Host Health Check",
- "http": "http://appc-sdnhost.{{ .Values.nsPrefix }}:8282/apidoc/explorer/index.html",
+ "http": "http://appc-sdnhost:8282/apidoc/explorer/index.html",
"method": "HEAD",
"header": {
"Authorization": ["Basic YWRtaW46S3A4Yko0U1hzek0wV1hsaGFrM2VIbGNzZTJnQXc4NHZhb0dHbUp2VXkyVQ=="],
{
"id": "log-elasticsearch-server",
"name": "Log Elastic Search Health Check",
- "http": "http://elasticsearch.{{ .Values.nsPrefix }}:9200/_cluster/health?pretty",
+ "http": "http://elasticsearch:9200/_cluster/health?pretty",
"method": "GET",
"tls_skip_verify": true,
"interval": "15s",
{
"id": "log-elasticsearch-tcp",
"name": "Log Elastic Search TCP Health Check",
- "tcp": "elasticsearchtcp.{{ .Values.nsPrefix }}:9300",
+ "tcp": "elasticsearchtcp:9300",
"interval": "15s",
"timeout": "1s"
}
{
"id": "log-kibana-server",
"name": "Log kibana Health Check",
- "http": "http://kibana.{{ .Values.nsPrefix }}:5601/status",
+ "http": "http://kibana:5601/status",
"method": "HEAD",
"tls_skip_verify": true,
"interval": "15s",
{
"id": "log-logstash-internal-server-gi",
"name": "Log Stash Health Check - General Information",
- "http": "http://logstashinternal.{{ .Values.nsPrefix }}:9600/?pretty",
+ "http": "http://logstashinternal:9600/?pretty",
"method": "GET",
"tls_skip_verify": true,
"interval": "15s",
{
"id": "log-logstash-internal-server-node-info",
"name": "Log Stash Health Check - Node Information",
- "http": "http://logstashinternal.{{ .Values.nsPrefix }}:9600/_node/?pretty",
+ "http": "http://logstashinternal:9600/_node/?pretty",
"method": "GET",
"tls_skip_verify": true,
"interval": "15s",
{
"id": "log-logstash-internal-server-os-info",
"name": "Log Stash Health Check - OS Information",
- "http": "http://logstashinternal.{{ .Values.nsPrefix }}:9600/_node/os?pretty",
+ "http": "http://logstashinternal:9600/_node/os?pretty",
"method": "GET",
"tls_skip_verify": true,
"interval": "15s",
{
"id": "log-logstash-internal-server-jvm-info",
"name": "Log Stash Health Check - JVM Information",
- "http": "http://logstashinternal.{{ .Values.nsPrefix }}:9600/_node/jvm?pretty",
+ "http": "http://logstashinternal:9600/_node/jvm?pretty",
"method": "GET",
"tls_skip_verify": true,
"interval": "15s",
{
"id": "log-logstash-internal-server-plugin-info",
"name": "Log Stash Health Check - Plugin Information",
- "http": "http://logstashinternal.{{ .Values.nsPrefix }}:9600/_node/plugins?pretty",
+ "http": "http://logstashinternal:9600/_node/plugins?pretty",
"method": "GET",
"tls_skip_verify": true,
"interval": "15s",
{
"id": "log-logstash-internal-server-node-stat",
"name": "Log Stash Health Check - Node Stats",
- "http": "http://logstashinternal.{{ .Values.nsPrefix }}:9600/_node/stats?pretty",
+ "http": "http://logstashinternal:9600/_node/stats?pretty",
"method": "GET",
"tls_skip_verify": true,
"interval": "15s",
{
"id": "log-logstash-internal-server-jvm-stat",
"name": "Log Stash Health Check - JVM Stats",
- "http": "http://logstashinternal.{{ .Values.nsPrefix }}:9600/_node/stats/jvm?pretty",
+ "http": "http://logstashinternal:9600/_node/stats/jvm?pretty",
"method": "GET",
"tls_skip_verify": true,
"interval": "15s",
{
"id": "log-logstash-internal-server-process-stat",
"name": "Log Stash Health Check - Process Stats",
- "http": "http://logstashinternal.{{ .Values.nsPrefix }}:9600/_node/stats/process?pretty",
+ "http": "http://logstashinternal:9600/_node/stats/process?pretty",
"method": "GET",
"tls_skip_verify": true,
"interval": "15s",
{
"id": "log-logstash-internal-server-os-stat",
"name": "Log Stash Health Check - OS Stats",
- "http": "http://logstashinternal.{{ .Values.nsPrefix }}:9600/_node/stats/os?pretty",
+ "http": "http://logstashinternal:9600/_node/stats/os?pretty",
"method": "GET",
"tls_skip_verify": true,
"interval": "15s",
{
"id": "log-logstash-tcp",
"name": "Log Stash File Beat TCP Health Check",
- "tcp": "logstash.{{ .Values.nsPrefix }}:5044",
+ "tcp": "logstash:5044",
"interval": "15s",
"timeout": "1s"
}
"service": {
"name": "Health Check: Message Router - DMaaP",
"check": {
- "http": "http://dmaap.{{ .Values.nsPrefix }}:3904/topics",
+ "http": "http://message-router:3904/topics",
"interval": "30s",
"timeout": "1s"
}
"name": "Health Check: MSB",
"checks": [
{
- "id": "msb-eag.{{ .Values.nsPrefix }}",
+ "id": "msb-eag",
"name": "MSB eag Health Check",
- "http": "http://msb-eag.{{ .Values.nsPrefix }}:80/iui/microservices/default.html",
+ "http": "http://msb-eag:80/iui/microservices/default.html",
"method": "HEAD",
"tls_skip_verify": true,
"interval": "15s",
"timeout": "1s"
},
{
- "id": "msb-iag.{{ .Values.nsPrefix }}",
+ "id": "msb-iag",
"name": "MSB iag Health Check",
- "http": "http://msb-iag.{{ .Values.nsPrefix }}:80/iui/microservices/default.html",
+ "http": "http://msb-iag:80/iui/microservices/default.html",
"method": "HEAD",
"tls_skip_verify": true,
"interval": "15s",
"timeout": "1s"
},
{
- "id": "msb-consul.{{ .Values.nsPrefix }}",
+ "id": "msb-consul",
"name": "MSB consul Health Check",
- "tcp": "msb-consul.{{ .Values.nsPrefix }}:8500",
+ "tcp": "msb-consul:8500",
"interval": "15s",
"timeout": "1s"
},
{
- "id": "msb-discovery.{{ .Values.nsPrefix }}",
+ "id": "msb-discovery",
"name": "MSB discovery Health Check",
- "tcp": "msb-discovery.{{ .Values.nsPrefix }}:10081",
+ "tcp": "msb-discovery:10081",
"interval": "15s",
"timeout": "1s"
}
+++ /dev/null
-{
- "service": {
- "name": "Health Check: MSO",
- "checks": [
- {
- "id": "mso-api-healthcheck",
- "name": "MSO API Health Check",
- "script": "/consul/scripts/mso-api-script.sh",
- "interval": "10s",
- "timeout": "1s"
- },
- {
- "id": "mso-camunda-healthcheck",
- "name": "MSO Camunda Health Check",
- "script": "/consul/scripts/mso-camunda-script.sh",
- "interval": "10s",
- "timeout": "1s"
- },
- {
- "id": "mso-jra-healthcheck",
- "name": "MSO JRA Health Check",
- "script": "/consul/scripts/mso-jra-script.sh",
- "interval": "10s",
- "timeout": "1s"
- }
- ]
- }
-}
+++ /dev/null
-{
- "service": {
- "name": "Health Check: MSO - MariaDb",
- "checks": [
- {
- "id": "mso-mariadb",
- "name": "MSO Mariadb Health Check",
- "script": "/consul/scripts/mso-mariadb-script.sh",
- "interval": "10s",
- "timeout": "1s"
- }
- ]
-
- }
-}
{
"id": "framework",
"name": "Framework Health Check",
- "http": "http://framework.{{ .Values.nsPrefix }}:9001/api/multicloud/v0/swagger.json",
+ "http": "http://framework:9001/api/multicloud/v0/swagger.json",
"method": "HEAD",
"header": {
"Cache-Control": ["no-cache"],
{
"id": "multicloud-ocata",
"name": "Multicloud Ocata Health Check",
- "http": "http://multicloud-ocata.{{ .Values.nsPrefix }}:9006/api/multicloud-ocata/v0/swagger.json",
+ "http": "http://multicloud-ocata:9006/api/multicloud-ocata/v0/swagger.json",
"method": "HEAD",
"header": {
"Cache-Control": ["no-cache"],
{
"id": "multicloud-vio",
"name": "Multicloud Vio Health Check",
- "http": "http://multicloud-vio.{{ .Values.nsPrefix }}:9004/api/multicloud-vio/v0/swagger.json",
+ "http": "http://multicloud-vio:9004/api/multicloud-vio/v0/swagger.json",
"method": "HEAD",
"header": {
"Cache-Control": ["no-cache"],
{
"id": "multicloud-windriver",
"name": "Multicloud Windriver Health Check",
- "http": "http://multicloud-windriver.{{ .Values.nsPrefix }}:9005/api/multicloud-titanium_cloud/v0/swagger.json",
+ "http": "http://multicloud-windriver:9005/api/multicloud-titanium_cloud/v0/swagger.json",
"method": "HEAD",
"header": {
"Cache-Control": ["no-cache"],
-if curl -s -X PUT http://aai-elasticsearch.{{ .Values.nsPrefix }}:9200/searchhealth/stats/testwrite -d @/consul/scripts/aai-search-storage-write-doc.txt | grep '\"created\":true'; then
- if curl -s -X DELETE http://aai-elasticsearch.{{ .Values.nsPrefix }}:9200/searchhealth/stats/testwrite | grep '\"failed\":0'; then
- if curl -s -X GET http://aai-elasticsearch.{{ .Values.nsPrefix }}:9200/searchhealth/stats/testwrite | grep '\"found\":false'; then
+if curl -s -X PUT http://aai-elasticsearch:9200/searchhealth/stats/testwrite -d @/consul/scripts/aai-search-storage-write-doc.txt | grep '\"created\":true'; then
+ if curl -s -X DELETE http://aai-elasticsearch:9200/searchhealth/stats/testwrite | grep '\"failed\":0'; then
+ if curl -s -X GET http://aai-elasticsearch:9200/searchhealth/stats/testwrite | grep '\"found\":false'; then
echo Successful PUT, DELETE, GET from Search Document Storage 2>&1
exit 0
else
-APPC_DBHOST_POD=$(/consul/bin/kubectl -n {{ .Values.nsPrefix }} get pod | grep -o "appc-dbhost-[^[:space:]]*")
+APPC_DBHOST_POD=$(/consul/bin/kubectl -n {{ include "common.namespace" . }} get pod | grep -o "appc-dbhost-[^[:space:]]*")
if [ -n "$APPC_DBHOST_POD" ]; then
- if /consul/bin/kubectl -n {{ .Values.nsPrefix }} exec -it $APPC_DBHOST_POD -- ./healthcheck.sh |grep -i "mysqld is alive"; then
+ if /consul/bin/kubectl -n {{ include "common.namespace" . }} exec -it $APPC_DBHOST_POD -- ./healthcheck.sh |grep -i "mysqld is alive"; then
echo Success. APPC DBHost is running. 2>&1
exit 0
else
-NAME=$(/consul/bin/kubectl -n {{ .Values.nsPrefix }} get pod | grep -o "aai-data-router[^[:space:]]*")
+NAME=$(/consul/bin/kubectl -n {{ include "common.namespace" . }} get pod | grep -o "aai-data-router[^[:space:]]*")
if [ -n "$NAME" ]; then
- if /consul/bin/kubectl -n {{ .Values.nsPrefix }} exec -it $NAME -- ps -efww | grep 'java' | grep 'data-router' > /dev/null; then
+ if /consul/bin/kubectl -n {{ include "common.namespace" . }} exec -it $NAME -- ps -efww | grep 'java' | grep 'data-router' > /dev/null; then
echo Success. Synapse process is running. 2>&1
exit 0
-NAME=$(/consul/bin/kubectl -n {{ .Values.nsPrefix }} get pod | grep -o "aai-model-loader[^[:space:]]*")
+NAME=$(/consul/bin/kubectl -n {{ include "common.namespace" . }} get pod | grep -o "aai-model-loader[^[:space:]]*")
if [ -n "$NAME" ]; then
- if /consul/bin/kubectl -n {{ .Values.nsPrefix }} exec -it $NAME -- ps -efww | grep 'java' | grep 'model-loader' > /dev/null; then
+ if /consul/bin/kubectl -n {{ include "common.namespace" . }} exec -it $NAME -- ps -efww | grep 'java' | grep 'model-loader' > /dev/null; then
echo Success. Model Loader process is running. 2>&1
exit 0
-kafkapod=$(/consul/bin/kubectl -n {{ .Values.nsPrefix }} get pod | grep -o "message-router-global-kafka-[^[:space:]]*")
+kafkapod=$(/consul/bin/kubectl -n {{ include "common.namespace" . }} get pod | grep -o "message-router-global-kafka-[^[:space:]]*")
if [ -n "$kafkapod" ]; then
- if /consul/bin/kubectl -n {{ .Values.nsPrefix }} exec -it $kafkapod -- ps ef | grep -i kafka; then
+ if /consul/bin/kubectl -n {{ include "common.namespace" . }} exec -it $kafkapod -- ps ef | grep -i kafka; then
echo Success. Kafka process is running. 2>&1
exit 0
else
-zkpod=$(/consul/bin/kubectl -n {{ .Values.nsPrefix }} get pod | grep -o "message-router-zookeeper-[^[:space:]]*")
+zkpod=$(/consul/bin/kubectl -n {{ include "common.namespace" . }} get pod | grep -o "message-router-zookeeper-[^[:space:]]*")
if [ -n "$zkpod" ]; then
- if /consul/bin/kubectl -n {{ .Values.nsPrefix }} exec -it $zkpod -- ps ef | grep -i zookeeper; then
+ if /consul/bin/kubectl -n {{ include "common.namespace" . }} exec -it $zkpod -- ps ef | grep -i zookeeper; then
echo Success. Zookeeper process is running. 2>&1
exit 0
else
## Query the health check API.
-HEALTH_CHECK_ENDPOINT="http://sdc-fe.{{ .Values.nsPrefix }}:8181/sdc1/rest/healthCheck"
+HEALTH_CHECK_ENDPOINT="http://sdc-fe:8181/sdc1/rest/healthCheck"
HEALTH_CHECK_RESPONSE=$(curl -s $HEALTH_CHECK_ENDPOINT)
## Strip out the ON_BOARDING section from the response XML (otherwise we will
## Query the health check API.
-HEALTH_CHECK_ENDPOINT="http://sdc-fe.{{ .Values.nsPrefix }}:8181/sdc1/rest/healthCheck"
+HEALTH_CHECK_ENDPOINT="http://sdc-fe:8181/sdc1/rest/healthCheck"
HEALTH_CHECK_RESPONSE=$(curl -s $HEALTH_CHECK_ENDPOINT)
## Strip out the ON_BOARDING section from the response XML (otherwise we will
## Query the health check API.
-HEALTH_CHECK_ENDPOINT="http://sdc-fe.{{ .Values.nsPrefix }}:8181/sdc1/rest/healthCheck"
+HEALTH_CHECK_ENDPOINT="http://sdc-fe:8181/sdc1/rest/healthCheck"
HEALTH_CHECK_RESPONSE=$(curl -s $HEALTH_CHECK_ENDPOINT)
## Strip out the ON_BOARDING section from the response XML (otherwise we will
## Query the health check API.
-HEALTH_CHECK_ENDPOINT="http://sdc-fe.{{ .Values.nsPrefix }}:8181/sdc1/rest/healthCheck"
+HEALTH_CHECK_ENDPOINT="http://sdc-fe:8181/sdc1/rest/healthCheck"
HEALTH_CHECK_RESPONSE=$(curl -s $HEALTH_CHECK_ENDPOINT)
## Strip out the ON_BOARDING section from the response XML (otherwise we will
-SDNC_DBHOST_POD=$(/consul/bin/kubectl -n {{ .Values.nsPrefix }} get pod | grep -o "sdnc-dbhost-[^[:space:]]*")
+SDNC_DBHOST_POD=$(/consul/bin/kubectl -n {{ include "common.namespace" . }} get pod | grep -o "sdnc-dbhost-[^[:space:]]*")
if [ -n "$SDNC_DBHOST_POD" ]; then
- if /consul/bin/kubectl -n {{ .Values.nsPrefix }} exec -it $SDNC_DBHOST_POD -- ./healthcheck.sh |grep -i "mysqld is alive"; then
+ if /consul/bin/kubectl -n {{ include "common.namespace" . }} exec -it $SDNC_DBHOST_POD -- ./healthcheck.sh |grep -i "mysqld is alive"; then
echo Success. SDNC DBHost is running. 2>&1
exit 0
else
#!/bin/sh
-SEARCH_SERVICE_NAME="search-data-service.{{ .Values.nsPrefix }}"
+SEARCH_SERVICE_NAME="search-data-service.{{ include "common.namespace" . }}"
SEARCH_SERVICE_PORT=9509
HEALTH_CHECK_INDEX="healthcheck"
## Query the health check API.
-HEALTH_CHECK_ENDPOINT="http://mso.{{ .Values.nsPrefix }}:8080/mso/healthcheck"
+HEALTH_CHECK_ENDPOINT="http://so:8080/ecomp/mso/infra/healthcheck"
HEALTH_CHECK_RESPONSE=$(curl -s $HEALTH_CHECK_ENDPOINT)
READY=$(echo $HEALTH_CHECK_RESPONSE | grep "Application ready")
## Query the health check API.
-HEALTH_CHECK_ENDPOINT="http://mso.{{ .Values.nsPrefix }}:8080/networks/rest/healthcheck"
+HEALTH_CHECK_ENDPOINT="http://so:8080/mso/healthcheck"
HEALTH_CHECK_RESPONSE=$(curl -s $HEALTH_CHECK_ENDPOINT)
READY=$(echo $HEALTH_CHECK_RESPONSE | grep "Application ready")
## Query the health check API.
-HEALTH_CHECK_ENDPOINT="http://mso.{{ .Values.nsPrefix }}:8080/ecomp/mso/infra/healthcheck"
+HEALTH_CHECK_ENDPOINT="http://so:8080/networks/rest/healthcheck"
HEALTH_CHECK_RESPONSE=$(curl -s $HEALTH_CHECK_ENDPOINT)
READY=$(echo $HEALTH_CHECK_RESPONSE | grep "Application ready")
-NAME=$(/consul/bin/kubectl -n {{ .Values.nsPrefix }} get pod | grep -o "mso-mariadb[^[:space:]]*")
+NAME=$(/consul/bin/kubectl -n {{ include "common.namespace" . }} get pod | grep -o "so-db[^[:space:]]*")
if [ -n "$NAME" ]; then
- if /consul/bin/kubectl -n {{ .Values.nsPrefix }} exec -it $NAME -- bash -c 'mysqladmin status -u root -p$MYSQL_ROOT_PASSWORD' > /dev/null; then
+ if /consul/bin/kubectl -n {{ include "common.namespace" . }} exec -it $NAME -- bash -c 'mysqladmin status -u root -p$MYSQL_ROOT_PASSWORD' > /dev/null; then
echo Success. mariadb process is running. 2>&1
exit 0
else
-NAME=$(/consul/bin/kubectl -n {{ .Values.nsPrefix }} get pod | grep -o "aai-sparky-be[^[:space:]]*")
+NAME=$(/consul/bin/kubectl -n {{ include "common.namespace" . }} get pod | grep -o "aai-sparky-be[^[:space:]]*")
if [ -n "$NAME" ]; then
- if /consul/bin/kubectl -n {{ .Values.nsPrefix }} exec -it $NAME -- ps -efww | grep 'java' | grep 'sparky' > /dev/null; then
+ if /consul/bin/kubectl -n {{ include "common.namespace" . }} exec -it $NAME -- ps -efww | grep 'java' | grep 'sparky' > /dev/null; then
echo Success. UI Backend Service process is running. 2>&1
exit 0
# Query the Hbase service for the cluster status.
-GET_CLUSTER_STATUS_RESPONSE=$(curl -si -X GET -H "Accept: text/xml" http://hbase.{{ .Values.nsPrefix }}:8080/status/cluster)
+GET_CLUSTER_STATUS_RESPONSE=$(curl -si -X GET -H "Accept: text/xml" http://hbase:8080/status/cluster)
if [ -z "$GET_CLUSTER_STATUS_RESPONSE" ]; then
echo "Tabular store is unreachable."
-NAME=$(/consul/bin/kubectl -n {{ .Values.nsPrefix }} get pod | grep -o "vid-mariadb[^[:space:]]*")
+NAME=$(/consul/bin/kubectl -n {{ include "common.namespace" . }} get pod | grep -o "vid-mariadb[^[:space:]]*")
if [ -n "$NAME" ]; then
- if /consul/bin/kubectl -n {{ .Values.nsPrefix }} exec -it $NAME -- bash -c 'mysqladmin status -u root -p$MYSQL_ROOT_PASSWORD' > /dev/null; then
+ if /consul/bin/kubectl -n {{ include "common.namespace" . }} exec -it $NAME -- bash -c 'mysqladmin status -u root -p$MYSQL_ROOT_PASSWORD' > /dev/null; then
echo Success. mariadb process is running. 2>&1
exit 0
else
{
"id": "sdc-catalog-healthcheck",
"name": "SDC Catalog Health Check",
- "http": "https://sdc-be.{{ .Values.nsPrefix }}:8443/asdc/v1/catalog/services",
+ "http": "https://sdc-be:8443/asdc/v1/catalog/services",
"header": {
"Authorization": ["Basic dmlkOktwOGJKNFNYc3pNMFdYbGhhazNlSGxjc2UyZ0F3ODR2YW9HR21KdlV5MlU="],
"X-ECOMP-InstanceID": ["VID"],
{
"id": "sdnc-dgbuilder",
"name": "SDNC-DGbuilder Health Check",
- "http": "http://sdnc-dgbuilder.{{ .Values.nsPrefix }}:3000/",
+ "http": "http://sdnc-dgbuilder:3000/",
"method": "HEAD",
"header": {
"Authorization": ["Basic ZGd1c2VyOnRlc3QxMjM="],
{
"id": "odl-api-healthcheck",
"name": "SDNC API Health Check",
- "http": "http://sdnhost.{{ .Values.nsPrefix }}:8282/restconf/operations/SLI-API:healthcheck",
+ "http": "http://sdnc:8282/restconf/operations/SLI-API:healthcheck",
"method": "POST",
"header": {
"Authorization": ["Basic YWRtaW46S3A4Yko0U1hzek0wV1hsaGFrM2VIbGNzZTJnQXc4NHZhb0dHbUp2VXkyVQ=="],
{
"id": "sdnc-portal",
"name": "SDNC Portal Health Check",
- "http": "http://sdnc-portal.{{ .Values.nsPrefix }}:8843/login",
+ "http": "http://sdnc-portal:8843/login",
"method": "HEAD",
"header": {
"Cache-Control": ["no-cache"],
"name": "Health Check: SDNC-SDN-CTL-DB-01",
"checks": [
{
- "id": "sdnctldb01.{{ .Values.nsPrefix }}",
+ "id": "sdnctldb01",
"name": "SDNC SDNCTLDB01 Health Check",
- "tcp": "sdnctldb01.{{ .Values.nsPrefix }}:3306",
+ "tcp": "sdnc-dbhost:3306",
"interval": "10s",
"timeout": "1s"
}
"name": "Health Check: SDNC-SDN-CTL-DB-02",
"checks": [
{
- "id": "sdnctldb02.{{ .Values.nsPrefix }}",
+ "id": "sdnctldb02",
"name": "SDNC SDNCTLDB02 Health Check",
- "tcp": "sdnctldb02.{{ .Values.nsPrefix }}:3306",
+ "tcp": "sdnc-dbhost:3306",
"interval": "10s",
"timeout": "1s"
}
{
"id": "sdnc-sdnhost",
"name": "SDNC SDN Host Health Check",
- "http": "http://sdnhost.{{ .Values.nsPrefix }}:8282/apidoc/explorer/index.html",
+ "http": "http://sdnhost:8282/apidoc/explorer/index.html",
"method": "HEAD",
"header": {
"Authorization": ["Basic YWRtaW46S3A4Yko0U1hzek0wV1hsaGFrM2VIbGNzZTJnQXc4NHZhb0dHbUp2VXkyVQ=="],
--- /dev/null
+{
+ "service": {
+ "name": "Health Check: SO",
+ "checks": [
+ {
+ "id": "so-api-healthcheck",
+ "name": "SO API Health Check",
+ "script": "/consul/scripts/so-api-script.sh",
+ "interval": "10s",
+ "timeout": "1s"
+ },
+ {
+ "id": "so-camunda-healthcheck",
+ "name": "SO Camunda Health Check",
+ "script": "/consul/scripts/so-camunda-script.sh",
+ "interval": "10s",
+ "timeout": "1s"
+ },
+ {
+ "id": "so-jra-healthcheck",
+ "name": "SO JRA Health Check",
+ "script": "/consul/scripts/so-jra-script.sh",
+ "interval": "10s",
+ "timeout": "1s"
+ }
+ ]
+ }
+}
--- /dev/null
+{
+ "service": {
+ "name": "Health Check: SO - MariaDb",
+ "checks": [
+ {
+ "id": "so-mariadb",
+ "name": "SO Mariadb Health Check",
+ "script": "/consul/scripts/so-mariadb-script.sh",
+ "interval": "10s",
+ "timeout": "1s"
+ }
+ ]
+
+ }
+}
"name": "Health Check: VFC",
"checks": [
{
- "id": "vfc-catalog.{{ .Values.nsPrefix }}",
+ "id": "vfc-catalog",
"name": "VFC catalog Health Check",
- "tcp": "vfc-catalog.{{ .Values.nsPrefix }}:8806",
+ "tcp": "vfc-catalog:8806",
"interval": "15s",
"timeout": "1s"
},
{
- "id": "vfc-emsdriver.{{ .Values.nsPrefix }}",
+ "id": "vfc-emsdriver",
"name": "VFC emsdriver Health Check",
- "tcp": "vfc-emsdriver.{{ .Values.nsPrefix }}:8206",
+ "tcp": "vfc-ems-driver:8206",
"interval": "15s",
"timeout": "1s"
},
{
- "id": "vfc-gvnfmdriver.{{ .Values.nsPrefix }}",
+ "id": "vfc-gvnfmdriver",
"name": "VFC gvnfmdriver Health Check",
- "tcp": "vfc-gvnfmdriver.{{ .Values.nsPrefix }}:8484",
+ "tcp": "vfc-generic-vnfm-driver:8484",
"interval": "15s",
"timeout": "1s"
},
{
- "id": "vfc-hwvnfmdriver.{{ .Values.nsPrefix }}",
+ "id": "vfc-hwvnfmdriver",
"name": "VFC hwvnfmdriver Health Check",
- "tcp": "vfc-hwvnfmdriver.{{ .Values.nsPrefix }}:8482",
+ "tcp": "vfc-huawei-vnfm-driver:8482",
"interval": "15s",
"timeout": "1s"
},
{
- "id": "vfc-jujudriver.{{ .Values.nsPrefix }}",
+ "id": "vfc-jujudriver",
"name": "VFC jujudriver Health Check",
- "tcp": "vfc-jujudriver.{{ .Values.nsPrefix }}:8483",
+ "tcp": "vfc-juju-vnfm-driver:8483",
"interval": "15s",
"timeout": "1s"
},
{
- "id": "vfc-nokiavnfmdriver.{{ .Values.nsPrefix }}",
+ "id": "vfc-nokiavnfmdriver",
"name": "VFC nokiavnfmdriver Health Check",
- "tcp": "vfc-nokiavnfmdriver.{{ .Values.nsPrefix }}:8486",
+ "tcp": "vfc-nokia-vnfm-driver:8486",
"interval": "15s",
"timeout": "1s"
},
{
- "id": "vfc-nokiav2vnfmdriver.{{ .Values.nsPrefix }}",
+ "id": "vfc-nokiav2vnfmdriver",
"name": "VFC nokiav2vnfmdriver Health Check",
- "tcp": "vfc-nokiav2vnfmdriver.{{ .Values.nsPrefix }}:8089",
+ "tcp": "vfc-nokia-v2vnfm-driver:8089",
"interval": "15s",
"timeout": "1s"
},
{
- "id": "vfc-nslcm.{{ .Values.nsPrefix }}",
+ "id": "vfc-nslcm",
"name": "VFC nslcm Health Check",
- "tcp": "vfc-nslcm.{{ .Values.nsPrefix }}:8403",
+ "tcp": "vfc-nslcm:8403",
"interval": "15s",
"timeout": "1s"
},
{
- "id": "vfc-resmgr.{{ .Values.nsPrefix }}",
+ "id": "vfc-resmgr",
"name": "VFC resmgr Health Check",
- "tcp": "vfc-resmgr.{{ .Values.nsPrefix }}:8480",
+ "tcp": "vfc-resmgr:8480",
"interval": "15s",
"timeout": "1s"
},
{
- "id": "vfc-vnflcm.{{ .Values.nsPrefix }}",
+ "id": "vfc-vnflcm",
"name": "VFC vnflcm Health Check",
- "tcp": "vfc-vnflcm.{{ .Values.nsPrefix }}:8801",
+ "tcp": "vfc-vnflcm:8801",
"interval": "15s",
"timeout": "1s"
},
{
- "id": "vfc-vnfmgr.{{ .Values.nsPrefix }}",
+ "id": "vfc-vnfmgr",
"name": "VFC vnfmgr Health Check",
- "tcp": "vfc-vnfmgr.{{ .Values.nsPrefix }}:8803",
+ "tcp": "vfc-vnfmgr:8803",
"interval": "15s",
"timeout": "1s"
},
{
- "id": "vfc-vnfres.{{ .Values.nsPrefix }}",
+ "id": "vfc-vnfres",
"name": "VFC vnfres Health Check",
- "tcp": "vfc-vnfres.{{ .Values.nsPrefix }}:8802",
+ "tcp": "vfc-vnfres:8802",
"interval": "15s",
"timeout": "1s"
},
{
- "id": "vfc-workflow.{{ .Values.nsPrefix }}",
+ "id": "vfc-workflow",
"name": "VFC workflow Health Check",
- "tcp": "vfc-workflow.{{ .Values.nsPrefix }}:10550",
+ "tcp": "vfc-workflow:10550",
"interval": "15s",
"timeout": "1s"
},
{
- "id": "vfc-workflowengineactiviti.{{ .Values.nsPrefix }}",
+ "id": "vfc-workflowengineactiviti",
"name": "VFC workflow-engine Health Check",
- "tcp": "vfc-workflowengineactiviti.{{ .Values.nsPrefix }}:8080",
+ "tcp": "vfc-workflow-engine:8080",
"interval": "15s",
"timeout": "1s"
},
{
- "id": "vfc-ztesdncdriver.{{ .Values.nsPrefix }}",
+ "id": "vfc-ztesdncdriver",
"name": "VFC ztesdncdriver Health Check",
- "tcp": "vfc-ztesdncdriver.{{ .Values.nsPrefix }}:8411",
+ "tcp": "vfc-zte-sdnc-driver:8411",
"interval": "15s",
"timeout": "1s"
},
{
- "id": "vfc-ztevnfmdriver.{{ .Values.nsPrefix }}",
+ "id": "vfc-ztevnfmdriver",
"name": "VFC ztevnfmdriver Health Check",
- "tcp": "vfc-ztevnfmdriver.{{ .Values.nsPrefix }}:8410",
+ "tcp": "vfc-zte-vnfm-driver:8410",
"interval": "15s",
"timeout": "1s"
}
{
"id": "vid-server",
"name": "VID Server Health Check",
- "http": "http://vid-server.{{ .Values.nsPrefix }}:8080/vid/healthCheck",
+ "http": "http://vid:8080/vid/healthCheck",
"method": "GET",
"header": {
"Authorization": ["Basic YWRtaW46S3A4Yko0U1hzek0wV1hsaGFrM2VIbGNzZTJnQXc4NHZhb0dHbUp2VXkyVQ=="],
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"
- |
cp /tmp/consul/config/* /consul/config
- /usr/local/bin/docker-entrypoint.sh agent -client 0.0.0.0 -enable-script-checks -join {{ .Release.Name }}-{{ .Values.consulServer.nameOverride }}.{{ include "common.namespace" .}}
+ /usr/local/bin/docker-entrypoint.sh agent -client 0.0.0.0 -enable-script-checks -join {{ .Values.consulServer.nameOverride }}.{{ include "common.namespace" .}}
name: {{ include "common.name" . }}
volumeMounts:
- mountPath: /tmp/consul/config
#################################################################
global:
nodePortPrefix: 302
- repository: nexus3.onap.org:10001
repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ==
readinessRepository: oomk8s
readinessImage: readiness-check:2.0.0
# 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: {}
.project
.idea/
*.tmproj
-dcae-parameters-sample.yaml
\ No newline at end of file
-# Copyright © 2017 Amdocs, Bell Canada
+# 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.
# limitations under the License.
apiVersion: v1
-description: DCAE Generation 2 bootstrap container
+description: ONAP DCAE Gen2
name: dcaegen2
-version: 1.1.0
+version: 2.0.0
--- /dev/null
+make-dmaap:
+ cd charts && helm dep up dcae-bootstrap
--- /dev/null
+#============LICENSE_START========================================================
+#=================================================================================
+# 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=========================================================
+
+apiVersion: v1
+description: ONAP DCAE Bootstrap
+name: dcae-bootstrap
+version: 2.0.0
--- /dev/null
+#============LICENSE_START========================================================
+#=================================================================================
+# 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=========================================================
+
+dependencies:
+ - name: common
+ version: ~2.0.0
+ repository: '@local'
+ - name: postgres
+ version: ~2.0.0
+ repository: '@local'
--- /dev/null
+#============LICENSE_START========================================================
+#=================================================================================
+# 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=========================================================
+
+{
+ "namespace" : "{{ if .Values.dcae_ns }}{{ .Values.dcae_ns}}{{ else }}{{include "common.namespace" . }}{{ end}}",
+ "consul_dns_name" : "{{ .Values.config.address.consul.host }}.{{ include "common.namespace" . }}",
+ "image_pull_secrets" : ["{{ include "common.namespace" . }}-docker-registry-key"],
+ "filebeat":
+ {
+ "log_path": "/var/log/onap",
+ "data_path": "/usr/share/filebeat/data",
+ "config_path": "/usr/share/filebeat/filebeat.yml",
+ "config_subpath": "filebeat.yml",
+ "image" : "{{ .Values.global.loggingRepository }}/{{ .Values.global.loggingImage }}",
+ "config_map" : "dcae-filebeat-configmap"
+ }
+}
--- /dev/null
+#============LICENSE_START========================================================
+#=================================================================================
+# 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=========================================================
+
+#TODO would like to make this conditional, as with the other input templates
+# but having template expansion issues trying to do that
+cbs_image: {{ .Values.componentImages.config_binding_service }}
--- /dev/null
+#============LICENSE_START========================================================
+#=================================================================================
+# Copyright (c) 2017-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=========================================================
+#
+# ECOMP is a trademark and service mark of AT&T Intellectual Property.
+{{ if .Values.componentImages.deployment_handler }}
+deployment_handler_image: {{ .Values.componentImages.deployment_handler }}
+{{ end }}
+application_config:
+ cloudify:
+ protocol: "http"
+ inventory:
+ protocol: "http"
--- /dev/null
+#============LICENSE_START========================================================
+#=================================================================================
+# Copyright (c) 2017-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=========================================================
+
+{
+{{ if .Values.componentImages.holmes_engine }}
+ "he_image" : "{{ .Values.componentImages.holmes_engine }}",
+{{ end }}
+ "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" : "{{ .Values.postgres.service.name2 }}.{{include "common.namespace" . }}",
+ "database_name":"holmes"
+}
--- /dev/null
+#============LICENSE_START========================================================
+#=================================================================================
+# Copyright (c) 2017-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=========================================================
+
+{
+ "msb_hostname": "{{ .Values.config.address.msb_discovery }}.{{include "common.namespace" . }}",
+ "pgaas_cluster_name" : "{{ .Values.postgres.service.name2 }}.{{include "common.namespace" . }}",
+ "database_name":"holmes"
+}
--- /dev/null
+#============LICENSE_START========================================================
+#=================================================================================
+# Copyright (c) 2017-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=========================================================
+
+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_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 }}
+{{ if .Values.componentImages.inventory }}
+inventory_image: "{{ .Values.componentImages.inventory }}"
+{{ end }}
--- /dev/null
+#=================================================================================
+# 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 }}
--- /dev/null
+#============LICENSE_START========================================================
+#=================================================================================
+# Copyright (c) 2017-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=========================================================
+
+{{ if .Values.componentImages.policy_handler }}
+policy_handler_image: {{ .Values.componentImages.policy_handler }}
+{{ end }}
+application_config:
+ policy_handler :
+ # parallelize the getConfig queries to policy-engine on each policy-update notification
+ thread_pool_size : 4
+
+ # parallelize requests to policy-engine and keep them alive
+ pool_connections : 20
+
+ # list of policyName prefixes (filters) that DCAE-Controller handles (=ignores any other policyName values)
+ scope_prefixes : ["DCAE.Config_"]
+
+ # retry to getConfig from policy-engine on policy-update notification
+ policy_retry_count : 5
+ policy_retry_sleep : 5
+
+ # policy-engine config
+ # These are the url of and the auth for the external system, namely the policy-engine (PDP).
+ # We obtain that info manually from PDP folks at the moment.
+ # In long run we should figure out a way of bringing that info into consul record
+ # related to policy-engine itself.
+ policy_engine :
+ url : "http://{{ .Values.config.address.policy_pdp }}.{{include "common.namespace" . }}:8081"
+ path_pdp : "/pdp/"
+ path_api : "/pdp/api/"
+ headers :
+ Accept : "application/json"
+ "Content-Type" : "application/json"
+ ClientAuth : "cHl0aG9uOnRlc3Q="
+ Authorization : "Basic dGVzdHBkcDphbHBoYTEyMw=="
+ Environment : "TEST"
+ target_entity : "policy_engine"
+ # name of deployment-handler service in consul for policy-handler to direct the policy-updates to
+ deploy_handler : "deployment_handler"
--- /dev/null
+#============LICENSE_START========================================================
+#=================================================================================
+# 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=========================================================
+
+{{ if .Values.componentImages.tca }}
+tca_image: {{ .Values.componentImages.tca }}
+{{ end }}
+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 }}
--- /dev/null
+#============LICENSE_START========================================================
+#=================================================================================
+# Copyright (c) 2017-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=========================================================
+
+{{ if .Values.componentImages.ves }}
+tag_version: {{ .Values.componentImages.ves }}
+{{ end }}
+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/"
+ves_measurement_publish_url: "http://{{ .Values.config.address.message_router }}:3904/events/unauthenticated.SEC_MEASUREMENT_OUTPUT/"
--- /dev/null
+#============LICENSE_START========================================================
+# ================================================================================
+# Copyright (c) 2017-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=========================================================
+
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: {{ include "common.fullname" . }}-dcae-config
+ namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: {{ include "common.fullname" . }}-dcae-inputs
+ namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/inputs/*").AsConfig . | indent 2 }}
+
--- /dev/null
+#============LICENSE_START========================================================
+# ================================================================================
+# Copyright (c) 2017-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=========================================================
+
+apiVersion: batch/v1
+kind: Job
+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:
+ completions: 1
+{{/* backoffLimit: 0*/}}
+ template:
+ metadata:
+ labels:
+ app: {{ include "common.name" . }}
+ release: {{ .Release.Name }}
+ spec:
+ restartPolicy: Never
+ initContainers:
+ - name: {{ include "common.name" . }}-readiness
+ image: {{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}
+ imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+ command:
+ - /root/ready.py
+ args:
+ - --container-name
+ - dcae-cloudify-manager
+ - --container-name
+ - consul-server
+ - --container-name
+ - msb-discovery
+ - --container-name
+ - kube2msb
+ - "-t"
+ - "15"
+ env:
+ - name: NAMESPACE
+ valueFrom:
+ fieldRef:
+ apiVersion: v1
+ fieldPath: metadata.namespace
+ containers:
+ - name: {{ include "common.name" . }}
+ image: "{{ .Values.global.repository | default .Values.repository }}/{{ .Values.image }}"
+ imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+ volumeMounts:
+ - mountPath: /inputs
+ name: {{ include "common.fullname" . }}-dcae-inputs
+ - mountPath: /dcae-configs
+ name: {{ include "common.fullname" . }}-dcae-config
+ - mountPath: /etc/localtime
+ name: localtime
+ readOnly: true
+ env:
+ - name: CMADDR
+ value: {{ .Values.config.address.cm }}
+ - name: CMPASS
+ valueFrom:
+ secretKeyRef:
+ name: {{ include "common.name" . }}-cmpass
+ key: password
+ - name: CONSUL
+ value: {{ .Values.config.address.consul.host }}:{{ .Values.config.address.consul.port }}
+ volumes:
+ - name: {{ include "common.fullname" . }}-dcae-inputs
+ configMap:
+ name: {{ include "common.fullname" . }}-dcae-inputs
+ - name: {{ include "common.fullname" . }}-dcae-config
+ configMap:
+ name: {{ include "common.fullname" . }}-dcae-config
+ - name: localtime
+ hostPath:
+ path: /etc/localtime
+ imagePullSecrets:
+ - name: "{{ include "common.namespace" . }}-docker-registry-key"
--- /dev/null
+#============LICENSE_START========================================================
+# ================================================================================
+# Copyright (c) 2017-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=========================================================
+
+apiVersion: v1
+kind: Secret
+metadata:
+ name: {{ include "common.name" . }}-cmpass
+ namespace: {{ include "common.namespace" . }}
+ labels:
+ app: {{ include "common.name" . }}
+ chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+ release: {{ .Release.Name }}
+ heritage: {{ .Release.Service }}
+type: Opaque
+data:
+ password: YWRtaW4=
--- /dev/null
+#============LICENSE_START========================================================
+#=================================================================================
+# 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=========================================================
+
+#################################################################
+# Global configuration defaults.
+#################################################################
+global:
+ nodePortPrefix: 302
+ repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiZGNhZUBkY2FlLm9uYXAub3JnIiwiYXV0aCI6IlpHOWphMlZ5T21SdlkydGxjZz09In19
+ readinessRepository: oomk8s
+ readinessImage: readiness-check:1.1.0
+ loggingRepository: docker.elastic.co
+ loggingImage: beats/filebeat:5.5.0
+
+config:
+ logstashServiceName: log-ls
+ logstashPort: 5044
+ # Addresses of ONAP components
+ address:
+ consul:
+ host: consul-server
+ port: 8500
+ cm: dcae-cloudify-manager
+ message_router: message-router
+ 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.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.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
+ inventory: nexus3.onap.org:10001/onap/org.onap.dcaegen2.platform.inventory-api:3.0.1
+ policy_handler: nexus3.onap.org:10001/onap/org.onap.dcaegen2.platform.policy-handler:2.4.1
+ service_change_handler: nexus3.onap.org:10001/onap/org.onap.dcaegen2.platform.servicechange-handler:1.1.3
+# tca: nexus3.onap.org:10001/onap/org.onap.dcaegen2.deployments.tca-cdap-container.tca-cdap-container:1.0.0
+# ves: nexus3.onap.org:10001/onap/org.onap.dcaegen2.collectors.ves.vescollector:1.1-latest
+
+# Kubernetes namespace for components deployed via Cloudify manager
+# If empty, use the common namespace
+dcae_ns: "dcae"
+
--- /dev/null
+# 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
--- /dev/null
+#============LICENSE_START========================================================
+# ================================================================================
+# 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=========================================================
+
+apiVersion: v1
+description: ONAP DCAE Cloudify Manager
+name: dcae-cloudify-manager
+version: 2.0.0
--- /dev/null
+#============LICENSE_START========================================================
+# ================================================================================
+# 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=========================================================
+
+# DCAE Cloudify Manager Chart
+
+This chart is used to deploy a containerized version of
+[Cloudify Manager](http://docs.getcloudify.org/4.3.0/intro/cloudify-manager/),
+the orchestration tool used by DCAE. DCAE uses Cloudify Manager ("CM") to
+deploy the rest of the DCAE platform as well to deploy DCAE monitoring and
+analytics services dynamically, in response to network events such as VNF startups.
+
+Deployment of CM is the first of two steps in deploying DCAE into ONAP. After this chart
+brings up CM, a second chart (the "bootstrap" chart) installs some plugin extensions onto CM
+and uses CM to deploy some DCAE components.
+
+## Prerequisites
+The chart requires one Kubernetes secret to be available in the namespace where it is
+being deployed:
+ - `<namespace_name>-docker-registry-key`, the docker registry secret needed to pull images
+ from the Docker repository. This is the same secret used by other OOM charts.
+
+## DCAE Namespace
+DCAE will use CM deploy a number of containers into the ONAP Kubernetes cluster. In a production
+environment, DCAE's dynamic deployment of monitoring and analytics services could result in dozens
+of containers being launched. This chart allows the configuration, through the `dcae_ns` property
+in the `values.yaml` of a separate namespace used by CM when it needs to deploy containers into
+Kubernetes. If `dcae_ns` is set, this chart will:
+ - create the namespace.
+ - create the Docker registry key secret in the namespace.
+ - create some Kubernetes `Services` (of the `ExternalName` type) to map some addresses from the common namespace into the DCAE namespace.
+
+## Use of Consul
+DCAE uses [Consul](http://consul.io) to store configuration data for DCAE components. In R1, DCAE
+deployed its own Consul cluster. In R2, DCAE will use the Consul server deployed by OOM.
--- /dev/null
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+dependencies:
+ - name: common
+ version: ~2.0.0
+ repository: '@local'
\ No newline at end of file
--- /dev/null
+#============LICENSE_START========================================================
+# ================================================================================
+# 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=========================================================
+[consul]
+address={{ .Values.config.address.consul.host }}:{{ .Values.config.address.consul.port }}
--- /dev/null
+#============LICENSE_START========================================================
+# ================================================================================
+# 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=========================================================
+filebeat.prospectors:
+#it is mandatory, in our case it's log
+- input_type: log
+ #This is the canolical path as mentioned in logback.xml, *.* means it will monitor all files in the directory.
+ paths:
+ - /var/log/onap/*/*/*/*.log
+ - /var/log/onap/*/*/*.log
+ - /var/log/onap/*/*.log
+ #Files older than this should be ignored.In our case it will be 48 hours i.e. 2 days. It is a helping flag for clean_inactive
+ ignore_older: 48h
+ # Remove the registry entry for a file that is more than the specified time. In our case it will be 96 hours, i.e. 4 days. It will help to keep registry records with in limit
+ clean_inactive: 96h
+
+
+# Name of the registry file. If a relative path is used, it is considered relative to the
+# data path. Else full qualified file name.
+#filebeat.registry_file: ${path.data}/registry
+
+
+output.logstash:
+ #List of logstash server ip addresses with port number.
+ #But, in our case, this will be the loadbalancer IP address.
+ #For the below property to work the loadbalancer or logstash should expose 5044 port to listen the filebeat events or port in the property should be changed appropriately.
+ hosts: ["{{.Values.config.logstashServiceName}}.{{.Release.Namespace}}:{{.Values.config.logstashPort}}"]
+ #If enable will do load balancing among availabe Logstash, automatically.
+ loadbalance: true
+
+ #The list of root certificates for server verifications.
+ #If certificate_authorities is empty or not set, the trusted
+ #certificate authorities of the host system are used.
+ #ssl.certificate_authorities: $ssl.certificate_authorities
+
+ #The path to the certificate for SSL client authentication. If the certificate is not specified,
+ #client authentication is not available.
+ #ssl.certificate: $ssl.certificate
+
+ #The client certificate key used for client authentication.
+ #ssl.key: $ssl.key
+
+ #The passphrase used to decrypt an encrypted key stored in the configured key file
+ #ssl.key_passphrase: $ssl.key_passphrase
+
+logging:
+ level: debug
+
+ # enable file rotation with default configuration
+ to_files: true
+
+ # do not log to syslog
+ to_syslog: false
+
+ files:
+ path: /usr/share/filebeat/logs
+ name: mybeat.log
+ keepfiles: 7
--- /dev/null
+#============LICENSE_START========================================================
+# ================================================================================
+# 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=========================================================
+
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: {{ include "common.fullname" . }}-configmap
+ namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: dcae-filebeat-configmap
+ namespace: {{include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/log/*").AsConfig . | indent 2 }}
+{{ if .Values.dcae_ns }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: dcae-filebeat-configmap
+ namespace: {{ .Values.dcae_ns }}
+data:
+{{ tpl (.Files.Glob "resources/config/log/*").AsConfig . | indent 2 }}
+{{ end }}
+
--- /dev/null
+#============LICENSE_START========================================================
+# ================================================================================
+# 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=========================================================
+
+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: 1
+ template:
+ metadata:
+ labels:
+ app: {{ include "common.name" . }}
+ release: {{ .Release.Name }}
+ spec:
+ containers:
+ - name: {{ include "common.name" . }}
+ image: "{{ .Values.global.repository | default .Values.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 }}
+ livenessProbe:
+ tcpSocket:
+ port: {{ .Values.service.internalPort }}
+ initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
+ periodSeconds: {{ .Values.liveness.periodSeconds }}
+ {{ end -}}
+ readinessProbe:
+ tcpSocket:
+ port: {{ .Values.service.internalPort }}
+ initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
+ periodSeconds: {{ .Values.readiness.periodSeconds }}
+ volumeMounts:
+ - mountPath: /opt/onap/config.txt
+ subPath: config.txt
+ name: {{ include "common.fullname" .}}-config
+ readOnly: true
+ - mountPath: /secret
+ name: dcae-token
+ readOnly: true
+ - mountPath: /sys/fs/cgroup
+ name: {{ include "common.fullname" . }}-cgroup
+ readOnly: true
+ - mountPath: /etc/localtime
+ name: localtime
+ readOnly: true
+ securityContext:
+ privileged: True
+ lifecycle:
+ postStart:
+ exec:
+ command:
+ - bash
+ - "-c"
+ - |
+ set -ex
+ mkdir -p /var/run/secrets/kubernetes.io/
+ ln -s /secret /var/run/secrets/kubernetes.io/serviceaccount
+ volumes:
+ - name: {{ include "common.fullname" . }}-config
+ configMap:
+ name: {{ include "common.fullname" . }}-configmap
+ - name: dcae-token
+ secret:
+ secretName: dcae-token
+ - name: {{ include "common.fullname" . }}-cgroup
+ hostPath:
+ path: /sys/fs/cgroup
+ - name: localtime
+ hostPath:
+ path: /etc/localtime
+ imagePullSecrets:
+ - name: "{{ include "common.namespace" . }}-docker-registry-key"
--- /dev/null
+#============LICENSE_START========================================================
+# ================================================================================
+# 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=========================================================
+
+{{ if .Values.dcae_ns}}
+# Create the namespace
+apiVersion: v1
+kind: Namespace
+metadata:
+ name: {{ .Values.dcae_ns }}
+spec:
+ finalizers:
+ - kubernetes
+{{ end }}
--- /dev/null
+#============LICENSE_START========================================================
+# ================================================================================
+# 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=========================================================
+
+{{ if .Values.dcae_ns}}
+# Create the registry key secret in dcae namespace
+apiVersion: v1
+kind: Secret
+metadata:
+ name: {{ include "common.namespace" . }}-docker-registry-key
+ namespace: {{ .Values.dcae_ns }}
+ labels:
+ app: {{ include "common.name" . }}
+ chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+ release: {{ .Release.Name }}
+ heritage: {{ .Release.Service }}
+data:
+ .dockercfg: {{ .Values.global.repositorySecret | default .Values.repositorySecret }}
+type: kubernetes.io/dockercfg
+{{ end }}
+---
+# Copy of the API token secret, needed to work around /var/run/secrets mount problem
+apiVersion: v1
+kind: Secret
+metadata:
+ name: dcae-token
+ namespace: {{ include "common.namespace" . }}
+ annotations:
+ kubernetes.io/service-account.name: default
+type: kubernetes.io/service-account-token
--- /dev/null
+#============LICENSE_START========================================================
+# ================================================================================
+# 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=========================================================
+
+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.name }}
+ {{- else -}}
+ - port: {{ .Values.service.externalPort }}
+ targetPort: {{ .Values.service.internalPort }}
+ name: {{ .Values.service.name }}
+ {{- end}}
+ selector:
+ app: {{ include "common.name" . }}
+ release: {{ .Release.Name }}
+{{ if .Values.dcae_ns}}
+---
+# Make consul visible inside DCAE component namespace under a well-known name
+apiVersion: v1
+kind: Service
+metadata:
+ name: consul
+ namespace: {{ .Values.dcae_ns }}
+spec:
+ type: ExternalName
+ externalName: {{ .Values.config.address.consul.host }}.{{ include "common.namespace" . }}.svc.cluster.local
+---
+# Make Cloudify Manager visible inside DCAE component namespace under a well-known name
+apiVersion: v1
+kind: Service
+metadata:
+ name: {{ include "common.servicename" . }}
+ namespace: {{ .Values.dcae_ns }}
+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
+---
--- /dev/null
+#============LICENSE_START========================================================
+# ================================================================================
+# 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=========================================================
+
+#################################################################
+# Global configuration defaults.
+#################################################################
+global:
+ nodePortPrefix: 302
+ repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiZGNhZUBkY2FlLm9uYXAub3JnIiwiYXV0aCI6IlpHOWphMlZ5T21SdlkydGxjZz09In19
+ readinessRepository: oomk8s
+ readinessImage: readiness-check:1.1.0
+ loggingRepository: docker.elastic.co
+ loggingImage: beats/filebeat:5.5.0
+
+config:
+ logstashServiceName: log-ls
+ logstashPort: 5044
+ # Addresses of other ONAP entities
+ address:
+ consul:
+ host: consul-server
+ port: 8500
+
+#################################################################
+# Application configuration defaults.
+#################################################################
+# application image
+repository: nexus3.onap.org:10001
+image: onap/org.onap.dcaegen2.deployments.cm-container:1.3.0
+pullPolicy: Always
+
+# probe configuration parameters
+liveness:
+ initialDelaySeconds: 10
+ periodSeconds: 10
+ # necessary to disable liveness probe when setting breakpoints
+ # in debugger so K8s doesn't restart unresponsive container
+ enabled: true
+
+readiness:
+ initialDelaySeconds: 10
+ periodSeconds: 10
+
+service:
+ type: ClusterIP
+ name: dcae-cloudify-manager
+ externalPort: 80
+ internalPort: 80
+
+# Kubernetes namespace for components deployed via Cloudify manager
+# If empty, use the common namespace
+dcae_ns: "dcae"
--- /dev/null
+#============LICENSE_START========================================================
+# ================================================================================
+# Copyright (c) 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.
+# ============LICENSE_END=========================================================
+
+apiVersion: v1
+description: ONAP DCAE Health Check
+name: dcae-healthcheck
+version: 2.0.0
--- /dev/null
+#============LICENSE_START========================================================
+#=================================================================================
+# 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=========================================================
+
+dependencies:
+ - name: common
+ version: ~2.0.0
+ repository: '@local'
--- /dev/null
+#============LICENSE_START========================================================
+# ================================================================================
+# 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=========================================================
+
+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: 1
+ template:
+ metadata:
+ labels:
+ app: {{ include "common.name" . }}
+ release: {{ .Release.Name }}
+ spec:
+ containers:
+ - name: {{ include "common.name" . }}
+ image: "{{ .Values.global.repository | default .Values.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 }}
+ livenessProbe:
+ tcpSocket:
+ port: {{ .Values.service.internalPort }}
+ initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
+ periodSeconds: {{ .Values.liveness.periodSeconds }}
+ {{ end -}}
+ readinessProbe:
+ tcpSocket:
+ port: {{ .Values.service.internalPort }}
+ initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
+ periodSeconds: {{ .Values.readiness.periodSeconds }}
+ env:
+ - name: DCAE_NAMESPACE
+ value: {{ .Values.dcae_ns }}
+ - name: ONAP_NAMESPACE
+ value: {{ include "common.namespace" . }}
+ - name: HELM_RELEASE
+ value: {{ .Release.Name }}
+ imagePullSecrets:
+ - name: "{{ include "common.namespace" . }}-docker-registry-key"
--- /dev/null
+#============LICENSE_START========================================================
+# ================================================================================
+# 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=========================================================
+
+apiVersion: v1
+kind: Service
+metadata:
+ name: {{ include "common.servicename" . }}
+ namespace: {{ include "common.namespace" . }}
+ labels:
+ app: {{ include "common.name" . }}
+ chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+ release: {{ .Release.Name }}
+ heritage: {{ .Release.Service }}
+spec:
+ type: {{ .Values.service.type }}
+ ports:
+ {{if eq .Values.service.type "NodePort" -}}
+ - port: {{ .Values.service.externalPort }}
+ #Example internal target port if required
+ #targetPort: {{ .Values.service.internalPort }}
+ nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
+ name: {{ .Values.service.name }}
+ {{- else -}}
+ - port: {{ .Values.service.externalPort }}
+ targetPort: {{ .Values.service.internalPort }}
+ name: {{ .Values.service.name }}
+ {{- end}}
+ selector:
+ app: {{ include "common.name" . }}
+ release: {{ .Release.Name }}
--- /dev/null
+#============LICENSE_START========================================================
+#=================================================================================
+# 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=========================================================
+
+#################################################################
+# Global configuration defaults.
+#################################################################
+global:
+ nodePortPrefix: 302
+ repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiZGNhZUBkY2FlLm9uYXAub3JnIiwiYXV0aCI6IlpHOWphMlZ5T21SdlkydGxjZz09In19
+ readinessRepository: oomk8s
+ readinessImage: readiness-check:1.1.0
+ loggingRepository: docker.elastic.co
+ loggingImage: beats/filebeat:5.5.0
+
+service:
+ name: dcae-healthcheck
+ internalPort: 80
+ externalPort: 80
+ type: ClusterIP
+
+# 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
+# application image
+repository: nexus3.onap.org:10001
+image: onap/org.onap.dcaegen2.deployments.healthcheck-container:1.0.0
+
+# Kubernetes namespace for components deployed via Cloudify manager
+# If empty, use the common namespace
+dcae_ns: "dcae"
+
--- /dev/null
+# 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
apiVersion: v1
description: ONAP DCAE Redis
-name: redis
+name: dcae-redis
version: 2.0.0
# 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"
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
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
apiVersion: v1
kind: Service
metadata:
- name: {{ include "common.fullname" . }}
+ name: {{ include "common.servicename" . }}
namespace: {{ include "common.namespace" . }}
labels:
app: {{ include "common.name" . }}
#Example internal target port if required
#targetPort: {{ .Values.service.internalPort }}
nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
- port: {{ .Values.service.externalPort2 }}
nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort2 }}
- name: {{ .Values.service.name2 }}
+ name: {{ .Values.service.portName2 }}
{{- else -}}
- port: {{ .Values.service.externalPort }}
targetPort: {{ .Values.service.internalPort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
- port: {{ .Values.service.externalPort2 }}
targetPort: {{ .Values.service.internalPort2 }}
- name: {{ .Values.service.name2 }}
+ name: {{ .Values.service.portName2 }}
{{- end}}
selector:
app: {{ include "common.name" . }}
- /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 }}
#################################################################
# application image
repository: nexus3.onap.org:10001
-image: onap/org.onap.dcaegen2.deployments.redis-cluster-container.redis-cluster-container:1.0.0
+image: onap/org.onap.dcaegen2.deployments.redis-cluster-container:1.0.0
pullPolicy: Always
# application configuration
#Services may use any combination of ports depending on the 'type' of
#service being defined.
type: NodePort
- name: client
+ name: dcae-redis
+ portName: client
externalPort: 6379
internalPort: 6379
nodePort: 86
- name2: gossip
+ portName2: gossip
externalPort2: 16379
internalPort2: 16379
nodePort2: 87
+++ /dev/null
-# 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.
-
-# UUID of the OpenStack"s CentOS 7 cloud VM image
-# If your Openstack does not have a CentOS 7 cloud image, you will have to add one.
-centos7image_id: '52d4ea09-cc69-4a9a-9961-938a3282d209'
-# UUID of the OpenStack"s Ubuntu 16.04 VM image
-# If your Openstack does not have a buntu 16.04 cloud image, you will have to add one.
-ubuntu1604image_id: '97bbe637-5d42-419a-a2c7-beff33ffa23c'
-# ID of the OpenStack"s VM flavor to be used by DCAEGEN2 VMs (m1.medium/m1.large)
-flavor_id: '4'
-# UUID of the OpenStack"s security group to be used for DCAEGEN2 VMs
-security_group: 'abc0687d-34ab-4d37-8fe8-4b544d94ba71'
-# The name of the OpenStack network where public IP addresses and floating IPs are allocated from
-# This must use the name and not the UUID. The name must be unique otherwise the installer fails
-public_net: 'public'
-# The name of the OpenStack network where private IP addresses are allocated from
-private_net: 'onap_oam'
-# Group header for OpenStack Keystone parameters
-openstack:
- # User name
- username: 'dev'
- # Password
- password: 'dev'
- # Name of the OpenStack tenant/project where DCAEGEN2 VMs are deployed
- tenant_name: 'dev'
- # Openstack authentication API URL, for example 'https://horizon.playground.onap.org:5000/v2.0'
- auth_url: 'http://1.2.3.4:5000/v2.0'
- # Name of the OpenStack region where DCAEGEN2 VMs are deployed, for example 'RegionOne'
- region: 'RegionOne'
-# Name of the public key uploaded to OpenStack in the Prepration step
-keypair: 'dcae-g2'
-# Path to the private key within the conatiner (!! Do not change!!)
-key_filename: '/opt/dcae/key'
-# Prefix (location code) of all DCAEGEN2 VMs
-location_prefix: 'onapr1'
-# Domain name of the OpenStack tenant 'onapr1.playground.onap.org'
-location_domain: 'onap-dcaegen2'
-# Location of the raw artifact repo hosting additional boot scripts called by DCAEGEN2 VMs" cloud-init, for example: 'https://nexus.onap.org/service/local/repositories/raw/content'
-codesource_url: 'https://nexus.onap.org/content/sites/raw'
-# Path to the boot scripts within the raw artifact repo, for example: 'org.onap.dcaegen2.deployments.scripts/releases/'
-codesource_version: 'org.onap.dcaegen2.deployments/releases/scripts/'
-
-
+++ /dev/null
-# 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 not .Values.disableDcaegen2 }}
-apiVersion: v1
-kind: Pod
-metadata:
- name: {{ .Chart.Name }}
- namespace: "{{ .Values.nsPrefix }}"
-spec:
- containers:
- - name: {{ .Chart.Name }}
- image: "{{ .Values.image.repository }}"
- imagePullPolicy: {{ .Values.image.pullPolicy }}
- volumeMounts:
- - name: installer-config-mount
- mountPath: /opt/app/installer/config
- readOnly: true
- env:
- - name: LOCATION
- value: "{{ .Values.location }}"
- volumes:
- - name: installer-config-mount
- projected:
- sources:
- - secret:
- name: "{{ .Chart.Name }}-openstack-ssh-private-key"
- - configMap:
- name: "{{ .Chart.Name }}-config-inputs"
- imagePullSecrets:
- - name: "{{ .Values.nsPrefix }}-docker-registry-key"
- restartPolicy: Never
-#{{ end }}
-# Copyright © 2017 Amdocs, Bell Canada
+# 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.
# See the License for the specific language governing permissions and
# limitations under the License.
-nsPrefix: onap
-location: dg2
-image:
- repository: nexus3.onap.org:10001/onap/org.onap.dcaegen2.deployments.bootstrap:v1.1.0
- pullPolicy: Always
+#################################################################
+# Global configuration defaults.
+#################################################################
+global:
+ nodePortPrefix: 302
+ repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ==
+
redis:
replicaCount: 6
--- /dev/null
+# 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
--- /dev/null
+# 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
--- /dev/null
+# 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
--- /dev/null
+# 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.
--- /dev/null
+# 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'
--- /dev/null
+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 }}
+
--- /dev/null
+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 }}
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 }}
--- /dev/null
+# 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"
--- /dev/null
+# 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
--- /dev/null
+# 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
+++ /dev/null
-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
+++ /dev/null
-# 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 }}
+++ /dev/null
-{{/* 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 -}}
+++ /dev/null
-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 }}
+++ /dev/null
-{{- 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 }}
+++ /dev/null
-{{- 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 -}}
+++ /dev/null
-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 }}
+++ /dev/null
-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" . }}
+++ /dev/null
-## 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: {}
+++ /dev/null
-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.
+++ /dev/null
-sampleConfigKey=sampleConfigValue
\ No newline at end of file
+++ /dev/null
-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 }}
-
+++ /dev/null
-# 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: {{ .Release.Name }}-{{ include "common.name" . }}-buscontroller
- 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"
+++ /dev/null
-# 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 }}
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
- name: KAFKA_ZOOKEEPER_CONNECT
value: "{{.Values.zookeeper.nameOverride}}:{{.Values.config.zookeeperPort}}"
- name: KAFKA_ADVERTISED_HOST_NAME
- value: "{{ include "common.fullname" . }}"
+ value: "{{ include "common.servicename" . }}"
- name: KAFKA_BROKER_ID
value: "0"
- name: KAFKA_ADVERTISED_LISTENERS
apiVersion: v1
kind: Service
metadata:
- name: {{ .Values.service.name }}
+ name: {{ include "common.servicename" . }}
namespace: {{ include "common.namespace" . }}
labels:
app: {{ include "common.name" . }}
annotations:
msb.onap.org/service-info: '[
{
- "serviceName": "{{ include "common.fullname" . }}",
+ "serviceName": "{{ include "common.servicename" . }}",
"version": "v1",
"url": "/",
"protocol": "REST",
{{if eq .Values.service.type "NodePort" -}}
- port: {{ .Values.service.externalPort }}
nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
- name: {{ .Values.service.name }}-{{ .Values.service.externalPort }}
+ name: {{ .Values.service.portName }}-{{ .Values.service.externalPort }}
- port: {{ .Values.service.externalPort2 }}
nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort2 }}
- name: {{ .Values.service.name }}-{{ .Values.service.externalPort2 }}
+ name: {{ .Values.service.portName }}-{{ .Values.service.externalPort2 }}
{{- else -}}
- port: {{ .Values.service.externalPort }}
targetPort: {{ .Values.service.internalPort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
{{- end}}
selector:
app: {{ include "common.name" . }}
#################################################################
# application image
repository: nexus3.onap.org:10001
-image: onap/dmaap/dmaap-mr:1.1.3
+image: onap/dmaap/dmaap-mr:1.1.4
pullPolicy: Always
nameOverride: dmaap
service:
type: NodePort
name: message-router
+ portName: message-router
externalPort: 3904
nodePort: 27
externalPort2: 3905
#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: ["logstash.{{.Values.nsPrefix}}:5044"]
+ hosts: ["{{.Values.config.logstashServiceName}}:{{.Values.config.logstashPort}}"]
#If enable will do load balancing among availabe Logstash, automatically.
loadbalance: true
repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ==
loggingRepository: docker.elastic.co
loggingImage: beats/filebeat:5.5.0
+
+# application configuration
+config:
+ logstashServiceName: log-ls
+ logstashPort: 5044
+
--- /dev/null
+# 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 }}
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
--- /dev/null
+# 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 }}
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
--- /dev/null
+# 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 }}
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
--- /dev/null
+{
+ "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
--- /dev/null
+# 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 }}
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 }}
- 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
volumes:
- name: framework-log
emptyDir: {}
+ - name: provider-plugin
+ configMap:
+ name: {{ include "common.fullname" . }}-provider-plugin-configmap
- name: framework-data-filebeat
emptyDir: {}
- name: filebeat-conf
"version": "v0",
"url": "/api/multicloud/v0",
"protocol": "REST",
- "port": {{ .Values.service.externalPort }},
+ "port": "{{ .Values.service.externalPort }}",
"visualRange": "1"
}
]'
repository: '@local'
condition: consul.enabled
- name: dcaegen2
- version: ~1.1.0
+ 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'
config:
enableClustering: false
- dmaap-listener:
- config:
- dmaapPort: 3904
-
mysql:
disableNfsProvisioner: false
replicaCount: 1
enabled: true
appc:
enabled: true
+ config:
+ openStackType: OpenStackProvider
+ openStackName: OpenStack
+ openStackKeyStoneUrl: http://localhost:8181/apidoc/explorer/index.html
+ openStackServiceTenantName: default
+ openStackDomain: default
+ openStackUserName: admin
+ openStackEncryptedPassword: admin
clamp:
enabled: true
cli:
config:
enableClustering: false
- dmaap-listener:
- config:
- dmaapPort: 3904
-
mysql:
disableNfsProvisioner: true
replicaCount: 1
COMPONENT_X_MX_MB=1024
COMPONENT_X_MS_MB=1024
-REST_PAP_URL=http://{{ .Release.Name }}-{{ .Values.global.pap.nameOverride }}:{{.Values.config.papPort}}/pap/
-REST_PDP_ID=http://{{ .Release.Name }}-{{ .Values.global.pdp.nameOverride }}:{{.Values.config.pdpPort}}/pdp/
+REST_PAP_URL=http://{{ .Values.global.pap.nameOverride }}:{{.Values.config.papPort}}/pap/
+REST_PDP_ID=http://{{ .Values.global.pdp.nameOverride }}:{{.Values.config.pdpPort}}/pdp/
PDP_HTTP_USER_ID=testpdp
PDP_HTTP_PASSWORD=alpha123
M2_HOME=/usr/share/maven
snapshotRepositoryID=policy-nexus-snapshots
snapshotRepositoryName=Snapshots
-snapshotRepositoryURL=http://{{ .Release.Name }}-{{ .Values.global.nexus.nameOverride }}:{{.Values.config.nexusPort}}/nexus/content/repositories/snapshots
+snapshotRepositoryURL=http://{{ .Values.global.nexus.nameOverride }}:{{.Values.config.nexusPort}}/nexus/content/repositories/snapshots
releaseRepositoryID=policy-nexus-releases
releaseRepositoryName=Releases
-releaseRepositoryURL=http://{{ .Release.Name }}-{{ .Values.global.nexus.nameOverride }}:{{.Values.config.nexusPort}}/nexus/content/repositories/releases
+releaseRepositoryURL=http://{{ .Values.global.nexus.nameOverride }}:{{.Values.config.nexusPort}}/nexus/content/repositories/releases
repositoryUsername=admin
repositoryPassword=admin123
-UEB_URL=dmaap
+UEB_URL=message-router
UEB_TOPIC=PDPD-CONFIGURATION
UEB_API_KEY=
UEB_API_SECRET=
#Notification Properties... type can be either websocket, ueb, or dmaap
BRMS_NOTIFICATION_TYPE=websocket
-BRMS_UEB_URL=dmaap
+BRMS_UEB_URL=message-router
BRMS_UEB_TOPIC=PDPD-CONFIGURATION
BRMS_UEB_DELAY=
BRMS_CLIENT_ID=python
apiVersion: v1
kind: Service
metadata:
- name: {{ include "common.fullname" . }}
+ name: {{ include "common.servicename" . }}
namespace: {{ include "common.namespace" . }}
labels:
app: {{ include "common.name" . }}
{{if eq .Values.service.type "NodePort" -}}
- port: {{ .Values.service.externalPort }}
nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
{{- else -}}
- port: {{ .Values.service.externalPort }}
targetPort: {{ .Values.service.internalPort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
{{- end}}
selector:
app: {{ include "common.name" . }}
service:
type: NodePort
name: brmsgw
+ portName: brmsgw
externalPort: 9989
nodePort: 16
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 }}"
- mountPath: /etc/localtime
name: localtime
readOnly: true
+ - mountPath: /sonatype-work
+ name: nexus-data
resources:
{{ toYaml .Values.resources | indent 12 }}
{{- if .Values.nodeSelector }}
- 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"
--- /dev/null
+{{/*
+# 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 -}}
--- /dev/null
+{{/*
+# 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 -}}
apiVersion: v1
kind: Service
metadata:
- name: {{ include "common.fullname" . }}
+ name: {{ include "common.servicename" . }}
namespace: {{ include "common.namespace" . }}
labels:
app: {{ include "common.name" . }}
spec:
ports:
- port: {{ .Values.service.internalPort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
selector:
app: {{ include "common.name" . }}
release: {{ .Release.Name }}
repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ==
readinessRepository: oomk8s
readinessImage: readiness-check:2.0.0
+ ubuntuInitRepository: oomk8s
+ ubuntuInitImage: ubuntu-init:1.0.0
+ persistence: {}
#################################################################
# Application configuration defaults.
service:
type: NodePort
name: nexus
+ portName: nexus
internalPort: 8081
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
<repositories>
<repository>
<id>policy-nexus-snapshots</id>
- <url>http://{{.Release.Name}}-{{.Values.global.nexus.nameOverride}}:{{.Values.config.nexusPort}}/nexus/content/repositories/snapshots/</url>
+ <url>http://{{.Values.global.nexus.nameOverride}}:{{.Values.config.nexusPort}}/nexus/content/repositories/snapshots/</url>
<releases>
<enabled>false</enabled>
<updatePolicy>always</updatePolicy>
<repository>
<id>policy-nexus-releases</id>
- <url>http://{{.Release.Name}}-{{.Values.global.nexus.nameOverride}}:{{.Values.config.nexusPort}}/nexus/content/repositories/releases/</url>
+ <url>http://{{.Values.global.nexus.nameOverride}}:{{.Values.config.nexusPort}}/nexus/content/repositories/releases/</url>
<releases>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
# nexus repository
snapshotRepositoryID=policy-nexus-snapshots
-snapshotRepositoryUrl=http://{{.Release.Name}}-{{.Values.global.nexus.nameOverride}}:{{.Values.config.nexusPort}}/nexus/content/repositories/snapshots/
+snapshotRepositoryUrl=http://{{.Values.global.nexus.nameOverride}}:{{.Values.config.nexusPort}}/nexus/content/repositories/snapshots/
releaseRepositoryID=policy-nexus-releases
-releaseRepositoryUrl=http://{{.Release.Name}}-{{.Values.global.nexus.nameOverride}}:{{.Values.config.nexusPort}}/nexus/content/repositories/releases/
+releaseRepositoryUrl=http://{{.Values.global.nexus.nameOverride}}:{{.Values.config.nexusPort}}/nexus/content/repositories/releases/
repositoryUsername=admin
repositoryPassword=admin123
# Relational (SQL) DB access
-SQL_HOST={{.Release.Name}}-{{.Values.global.mariadb.nameOverride}}
+SQL_HOST={{.Values.global.mariadb.nameOverride}}
SQL_USER=policy_user
SQL_PASSWORD=policy_user
# PDP-D DMaaP configuration channel
PDPD_CONFIGURATION_TOPIC=PDPD-CONFIGURATION
-PDPD_CONFIGURATION_SERVERS=dmaap
+PDPD_CONFIGURATION_SERVERS=message-router
PDPD_CONFIGURATION_API_KEY=
PDPD_CONFIGURATION_API_SECRET=
PDPD_CONFIGURATION_CONSUMER_GROUP=
# PAP
-PAP_HOST={{.Release.Name}}-{{.Values.global.pap.nameOverride}}
+PAP_HOST={{.Values.global.pap.nameOverride}}
PAP_USERNAME=testpap
PAP_PASSWORD=alpha123
# PDP-X
-PDP_HOST={{.Release.Name}}-{{.Values.global.pdp.nameOverride}}
+PDP_HOST={{.Values.global.pdp.nameOverride}}
PDP_USERNAME=testpdp
PDP_PASSWORD=alpha123
PDP_CLIENT_USERNAME=python
# DCAE DMaaP
DCAE_TOPIC=unauthenticated.DCAE_CL_OUTPUT
-DCAE_SERVERS=dmaap
+DCAE_SERVERS=message-router
# Open DMaaP
-DMAAP_SERVERS=dmaap
+DMAAP_SERVERS=message-router
# AAI
apiVersion: v1
kind: Service
metadata:
- name: {{ include "common.fullname" . }}
+ name: {{ include "common.servicename" . }}
namespace: {{ include "common.namespace" . }}
labels:
app: {{ include "common.name" . }}
{{if eq .Values.service.type "NodePort" -}}
- port: {{ .Values.service.externalPort }}
nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
- name: {{ .Values.service.name }}-{{ .Values.service.externalPort }}
+ name: {{ .Values.service.portName }}-{{ .Values.service.externalPort }}
- port: {{ .Values.service.externalPort2 }}
nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort2 }}
- name: {{ .Values.service.name }}-{{ .Values.service.externalPort2 }}
+ name: {{ .Values.service.portName }}-{{ .Values.service.externalPort2 }}
{{- else -}}
- port: {{ .Values.service.type.externalPort }}
targetPort: {{ .Values.service.type.internalPort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
{{- end}}
selector:
app: {{ include "common.name" . }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
spec:
- serviceName: {{ include "common.fullname" . }}
+ serviceName: {{ include "common.servicename" . }}
replicas: {{ .Values.replicaCount }}
selector:
matchLabels:
service:
type: NodePort
name: drools
+ portName: drools
externalPort: 6969
nodePort: 17
externalPort2: 9696
apiVersion: v1
kind: Service
metadata:
- name: {{ include "common.fullname" . }}
+ name: {{ include "common.servicename" . }}
namespace: {{ include "common.namespace" . }}
labels:
app: {{ include "common.name" . }}
spec:
ports:
- port: {{ .Values.service.internalPort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
selector:
app: {{ include "common.name" . }}
release: {{ .Release.Name }}
service:
type: ClusterIP
- name: mariadb
+ name: policydb
+ portName: policydb
internalPort: 3306
ingress:
# pdp properties
-UEB_CLUSTER=dmaap
+UEB_CLUSTER=message-router
-REST_PAP_URL=http://{{ .Release.Name }}-{{ .Values.global.pap.nameOverride }}:{{.Values.config.papPort}}/pap/
-REST_PDP_ID=http://{{ include "common.fullname" . }}:{{.Values.service.externalPort}}/pdp/
+REST_PAP_URL=http://{{ .Values.global.pap.nameOverride }}:{{.Values.config.papPort}}/pap/
+REST_PDP_ID=http://${{"{{"}}FQDN{{"}}"}}:{{.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
node_type=pdp_xacml
resource_name=pdp_1
-dependency_groups=pdplp_1;brmsgw_1
+dependency_groups=brmsgw_1
test_via_jmx=true
#
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
apiVersion: v1
kind: Service
metadata:
- name: {{ include "common.fullname" . }}
+ name: {{ include "common.servicename" . }}
namespace: {{ include "common.namespace" . }}
labels:
app: {{ include "common.name" . }}
annotations:
msb.onap.org/service-info: '[
{
- "serviceName": "{{ include "common.fullname" . }}",
+ "serviceName": "{{ include "common.servicename" . }}",
"version": "v1",
"url": "/pdp",
"protocol": "REST",
{{if eq .Values.service.type "NodePort" -}}
- port: {{ .Values.service.externalPort }}
nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
{{- else -}}
- port: {{ .Values.service.externalPort }}
targetPort: {{ .Values.service.internalPort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
{{- end}}
selector:
app: {{ include "common.name" . }}
release: {{ .Release.Name }}
sessionAffinity: None
+ clusterIP: None
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
spec:
- serviceName: {{ include "common.fullname" . }}
+ serviceName: {{ include "common.servicename" . }}
replicas: {{ .Values.replicaCount }}
selector:
matchLabels:
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
KEYSTORE_PASSWD=Pol1cy_0nap
JDBC_DRIVER=org.mariadb.jdbc.Driver
-JDBC_URL=jdbc:mariadb://{{ .Release.Name }}-{{ .Values.global.mariadb.nameOverride }}:{{.Values.config.mariadbPort}}/onap_sdk?failOverReadOnly=false&autoReconnect=true
-JDBC_LOG_URL=jdbc:mariadb://{{ .Release.Name }}-{{ .Values.global.mariadb.nameOverride }}:{{.Values.config.mariadbPort}}/log?failOverReadOnly=false&autoReconnect=true
+JDBC_URL=jdbc:mariadb://{{ .Values.global.mariadb.nameOverride }}:{{.Values.config.mariadbPort}}/onap_sdk?failOverReadOnly=false&autoReconnect=true
+JDBC_LOG_URL=jdbc:mariadb://{{ .Values.global.mariadb.nameOverride }}:{{.Values.config.mariadbPort}}/log?failOverReadOnly=false&autoReconnect=true
JDBC_USER=policy_user
JDBC_PASSWORD=policy_user
# (which does nothing if the db is already up-to-date)
dbuser=$(echo $(grep '^JDBC_USER=' base.conf | cut -f2 -d=))
dbpw=$(echo $(grep '^JDBC_PASSWORD=' base.conf | cut -f2 -d=))
- db_upgrade_remote.sh $dbuser $dbpw {{.Release.Name}}-{{.Values.global.mariadb.nameOverride}}
+ db_upgrade_remote.sh $dbuser $dbpw {{.Values.global.mariadb.nameOverride}}
fi
fi
#
-REST_PAP_URL=http://{{.Release.Name}}-{{.Values.global.pap.nameOverride}}:{{.Values.service.externalPort2}}/pap/
+REST_PAP_URL=http://{{.Values.global.pap.nameOverride}}:{{.Values.service.externalPort2}}/pap/
#
# Config/Action Properties location.
REST_CONFIG_HOME=/opt/app/policy/servers/pap/webapps/Config/
REST_ACTION_HOME=/opt/app/policy/servers/pap/webapps/Action/
-REST_CONFIG_URL=http://{{.Release.Name}}-{{.Values.global.pap.nameOverride}}:{{.Values.service.externalPort2}}/
+REST_CONFIG_URL=http://{{.Values.global.pap.nameOverride}}:{{.Values.service.externalPort2}}/
REST_CONFIG_WEBAPPS=/opt/app/policy/servers/pap/webapps/
# PAP account information
#-----------------------ONAP-PORTAL-Properties----------------------
-ONAP_REDIRECT_URL=http://portalapps:8989/ONAPPORTAL/login.htm
-ONAP_REST_URL=http://portalapps:8989/ONAPPORTAL/auxapi
+ONAP_REDIRECT_URL=http://portal-app.{{.Release.Namespace}}:8989/ONAPPORTAL/login.htm
+ONAP_REST_URL=http://portal-app.{{.Release.Namespace}}:8989/ONAPPORTAL/auxapi
ONAP_UEB_URL_LIST=
ONAP_PORTAL_INBOX_NAME=
ONAP_UEB_APP_KEY=
ONAP_UEB_APP_SECRET=
ONAP_UEB_APP_MAILBOX_NAME=
APP_DISPLAY_NAME=ONAP Policy
-ONAP_SHARED_CONTEXT_REST_URL=http://portalapps:8989/ONAPPORTAL/context
+ONAP_SHARED_CONTEXT_REST_URL=http://portal-app.{{.Release.Namespace}}:8989/ONAPPORTAL/context
# 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
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 }}.{{ include "common.namespace" . }}.svc.cluster.local:{{ .Values.config.pdpPort }}/pdp/,testpdp,alpha123;http://{{ .Release.Name }}-{{ .Values.global.pdp.nameOverride }}-1.{{ .Values.global.pdp.nameOverride }}.{{ include "common.namespace" . }}.svc.cluster.local:{{ .Values.config.pdpPort }}/pdp/
PAP_PDP_HTTP_USER_ID=testpdp
PAP_PDP_HTTP_PASSWORD=alpha123
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
sleep 2
-curl -v --silent -X POST --header 'Content-Type: multipart/form-data' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -F "file=@cl-amsterdam-template.drl" -F "importParametersJson={\"serviceName\":\"ClosedLoopControlName\",\"serviceType\":\"BRMSPARAM\"}" 'http://{{.Release.Name}}-{{.Values.global.pdp.nameOverride}}:{{.Values.config.pdpPort}}/pdp/api/policyEngineImport'
+curl -v --silent -X POST --header 'Content-Type: multipart/form-data' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -F "file=@cl-amsterdam-template.drl" -F "importParametersJson={\"serviceName\":\"ClosedLoopControlName\",\"serviceType\":\"BRMSPARAM\"}" 'http://{{.Values.global.pdp.nameOverride}}:{{.Values.config.pdpPort}}/pdp/api/policyEngineImport'
echo "PRELOAD_POLICIES is $PRELOAD_POLICIES"
"controlLoopYaml": "controlLoop%3A%0D%0A++version%3A+2.0.0%0D%0A++controlLoopName%3A+ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a%0D%0A++trigger_policy%3A+unique-policy-id-1-modifyConfig%0D%0A++timeout%3A+1200%0D%0A++abatement%3A+false%0D%0A+%0D%0Apolicies%3A%0D%0A++-+id%3A+unique-policy-id-1-modifyConfig%0D%0A++++name%3A+modify+packet+gen+config%0D%0A++++description%3A%0D%0A++++actor%3A+APPC%0D%0A++++recipe%3A+ModifyConfig%0D%0A++++target%3A%0D%0A++++++%23+TBD+-+Cannot+be+known+until+instantiation+is+done%0D%0A++++++resourceID%3A+Eace933104d443b496b8.nodes.heat.vpg%0D%0A++++++type%3A+VNF%0D%0A++++retry%3A+0%0D%0A++++timeout%3A+300%0D%0A++++success%3A+final_success%0D%0A++++failure%3A+final_failure%0D%0A++++failure_timeout%3A+final_failure_timeout%0D%0A++++failure_retries%3A+final_failure_retries%0D%0A++++failure_exception%3A+final_failure_exception%0D%0A++++failure_guard%3A+final_failure_guard"
}
}
-}' 'http://{{.Release.Name}}-{{.Values.global.pdp.nameOverride}}:{{.Values.config.pdpPort}}/pdp/api/createPolicy'
+}' 'http://{{.Values.global.pdp.nameOverride}}:{{.Values.config.pdpPort}}/pdp/api/createPolicy'
sleep 2
"controlLoopYaml": "controlLoop%3A%0D%0A++version%3A+2.0.0%0D%0A++controlLoopName%3A+ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3%0D%0A++trigger_policy%3A+unique-policy-id-1-scale-up%0D%0A++timeout%3A+1200%0D%0A++abatement%3A+false%0D%0Apolicies%3A%0D%0A++-+id%3A+unique-policy-id-1-scale-up%0D%0A++++name%3A+Create+a+new+VF+Module%0D%0A++++description%3A%0D%0A++++actor%3A+SO%0D%0A++++recipe%3A+VF+Module+Create%0D%0A++++target%3A%0D%0A++++++type%3A+VNF%0D%0A++++retry%3A+0%0D%0A++++timeout%3A+1200%0D%0A++++success%3A+final_success%0D%0A++++failure%3A+final_failure%0D%0A++++failure_timeout%3A+final_failure_timeout%0D%0A++++failure_retries%3A+final_failure_retries%0D%0A++++failure_exception%3A+final_failure_exception%0D%0A++++failure_guard%3A+final_failure_guard"
}
}
-}' 'http://{{.Release.Name}}-{{.Values.global.pdp.nameOverride}}:{{.Values.config.pdpPort}}/pdp/api/createPolicy'
+}' 'http://{{.Values.global.pdp.nameOverride}}:{{.Values.config.pdpPort}}/pdp/api/createPolicy'
sleep 2
"controlLoopYaml": "controlLoop%3A%0D%0A++version%3A+2.0.0%0D%0A++controlLoopName%3A+ControlLoop-VOLTE-2179b738-fd36-4843-a71a-a8c24c70c55b%0D%0A++trigger_policy%3A+unique-policy-id-1-restart%0D%0A++timeout%3A+3600%0D%0A++abatement%3A+false%0D%0A+%0D%0Apolicies%3A%0D%0A++-+id%3A+unique-policy-id-1-restart%0D%0A++++name%3A+Restart+the+VM%0D%0A++++description%3A%0D%0A++++actor%3A+VFC%0D%0A++++recipe%3A+Restart%0D%0A++++target%3A%0D%0A++++++type%3A+VM%0D%0A++++retry%3A+3%0D%0A++++timeout%3A+1200%0D%0A++++success%3A+final_success%0D%0A++++failure%3A+final_failure%0D%0A++++failure_timeout%3A+final_failure_timeout%0D%0A++++failure_retries%3A+final_failure_retries%0D%0A++++failure_exception%3A+final_failure_exception%0D%0A++++failure_guard%3A+final_failure_guard"
}
}
-}' 'http://{{.Release.Name}}-{{.Values.global.pdp.nameOverride}}:{{.Values.config.pdpPort}}/pdp/api/createPolicy'
+}' 'http://{{.Values.global.pdp.nameOverride}}:{{.Values.config.pdpPort}}/pdp/api/createPolicy'
sleep 2
"controlLoopYaml": "controlLoop%3A%0D%0A++version%3A+2.0.0%0D%0A++controlLoopName%3A+ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e%0D%0A++trigger_policy%3A+unique-policy-id-1-restart%0D%0A++timeout%3A+3600%0D%0A++abatement%3A+true%0D%0A+%0D%0Apolicies%3A%0D%0A++-+id%3A+unique-policy-id-1-restart%0D%0A++++name%3A+Restart+the+VM%0D%0A++++description%3A%0D%0A++++actor%3A+APPC%0D%0A++++recipe%3A+Restart%0D%0A++++target%3A%0D%0A++++++type%3A+VM%0D%0A++++retry%3A+3%0D%0A++++timeout%3A+1200%0D%0A++++success%3A+final_success%0D%0A++++failure%3A+final_failure%0D%0A++++failure_timeout%3A+final_failure_timeout%0D%0A++++failure_retries%3A+final_failure_retries%0D%0A++++failure_exception%3A+final_failure_exception%0D%0A++++failure_guard%3A+final_failure_guard"
}
}
-}' 'http://{{.Release.Name}}-{{.Values.global.pdp.nameOverride}}:{{.Values.config.pdpPort}}/pdp/api/createPolicy'
+}' 'http://{{.Values.global.pdp.nameOverride}}:{{.Values.config.pdpPort}}/pdp/api/createPolicy'
#########################################Create Micro Service Config policies##########################################
"policyConfigType": "MicroService",
"policyName": "com.MicroServicevFirewall",
"onapName": "DCAE"
-}' 'http://{{.Release.Name}}-{{.Values.global.pdp.nameOverride}}:{{.Values.config.pdpPort}}/pdp/api/createPolicy'
+}' 'http://{{.Values.global.pdp.nameOverride}}:{{.Values.config.pdpPort}}/pdp/api/createPolicy'
sleep 2
"policyConfigType": "MicroService",
"policyName": "com.MicroServicevDNS",
"onapName": "DCAE"
-}' 'http://{{.Release.Name}}-{{.Values.global.pdp.nameOverride}}:{{.Values.config.pdpPort}}/pdp/api/createPolicy'
+}' 'http://{{.Values.global.pdp.nameOverride}}:{{.Values.config.pdpPort}}/pdp/api/createPolicy'
sleep 2
"policyConfigType": "MicroService",
"policyName": "com.MicroServicevCPE",
"onapName": "DCAE"
-}' 'http://{{.Release.Name}}-{{.Values.global.pdp.nameOverride}}:{{.Values.config.pdpPort}}/pdp/api/createPolicy'
+}' 'http://{{.Values.global.pdp.nameOverride}}:{{.Values.config.pdpPort}}/pdp/api/createPolicy'
#########################################Creating Decision Guard policy#########################################
"guardActiveEnd": "00:00:00-05:00"
}
}
-}' 'http://{{.Release.Name}}-{{.Values.global.pdp.nameOverride}}:{{.Values.config.pdpPort}}/pdp/api/createPolicy'
+}' 'http://{{.Values.global.pdp.nameOverride}}:{{.Values.config.pdpPort}}/pdp/api/createPolicy'
#########################################Push Decision policy#########################################
"pdpGroup": "default",
"policyName": "com.AllPermitGuard",
"policyType": "DECISION"
-}' 'http://{{.Release.Name}}-{{.Values.global.pdp.nameOverride}}:{{.Values.config.pdpPort}}/pdp/api/pushPolicy'
+}' 'http://{{.Values.global.pdp.nameOverride}}:{{.Values.config.pdpPort}}/pdp/api/pushPolicy'
#########################################Pushing BRMS Param policies##########################################
"pdpGroup": "default",
"policyName": "com.BRMSParamvFirewall",
"policyType": "BRMS_Param"
-}' 'http://{{.Release.Name}}-{{.Values.global.pdp.nameOverride}}:{{.Values.config.pdpPort}}/pdp/api/pushPolicy'
+}' 'http://{{.Values.global.pdp.nameOverride}}:{{.Values.config.pdpPort}}/pdp/api/pushPolicy'
sleep 2
"pdpGroup": "default",
"policyName": "com.BRMSParamvDNS",
"policyType": "BRMS_Param"
-}' 'http://{{.Release.Name}}-{{.Values.global.pdp.nameOverride}}:{{.Values.config.pdpPort}}/pdp/api/pushPolicy'
+}' 'http://{{.Values.global.pdp.nameOverride}}:{{.Values.config.pdpPort}}/pdp/api/pushPolicy'
sleep 2
"pdpGroup": "default",
"policyName": "com.BRMSParamVOLTE",
"policyType": "BRMS_Param"
-}' 'http://{{.Release.Name}}-{{.Values.global.pdp.nameOverride}}:{{.Values.config.pdpPort}}/pdp/api/pushPolicy'
+}' 'http://{{.Values.global.pdp.nameOverride}}:{{.Values.config.pdpPort}}/pdp/api/pushPolicy'
sleep 2
"pdpGroup": "default",
"policyName": "com.BRMSParamvCPE",
"policyType": "BRMS_Param"
-}' 'http://{{.Release.Name}}-{{.Values.global.pdp.nameOverride}}:{{.Values.config.pdpPort}}/pdp/api/pushPolicy'
+}' 'http://{{.Values.global.pdp.nameOverride}}:{{.Values.config.pdpPort}}/pdp/api/pushPolicy'
#########################################Pushing MicroService Config policies##########################################
"pdpGroup": "default",
"policyName": "com.MicroServicevFirewall",
"policyType": "MicroService"
-}' 'http://{{.Release.Name}}-{{.Values.global.pdp.nameOverride}}:{{.Values.config.pdpPort}}/pdp/api/pushPolicy'
+}' 'http://{{.Values.global.pdp.nameOverride}}:{{.Values.config.pdpPort}}/pdp/api/pushPolicy'
sleep 10
"pdpGroup": "default",
"policyName": "com.MicroServicevDNS",
"policyType": "MicroService"
-}' 'http://{{.Release.Name}}-{{.Values.global.pdp.nameOverride}}:{{.Values.config.pdpPort}}/pdp/api/pushPolicy'
+}' 'http://{{.Values.global.pdp.nameOverride}}:{{.Values.config.pdpPort}}/pdp/api/pushPolicy'
sleep 10
"pdpGroup": "default",
"policyName": "com.MicroServicevCPE",
"policyType": "MicroService"
-}' 'http://{{.Release.Name}}-{{.Values.global.pdp.nameOverride}}:{{.Values.config.pdpPort}}/pdp/api/pushPolicy'
+}' 'http://{{.Values.global.pdp.nameOverride}}:{{.Values.config.pdpPort}}/pdp/api/pushPolicy'
apiVersion: v1
kind: Service
metadata:
- name: {{ include "common.fullname" . }}
+ name: {{ include "common.servicename" . }}
namespace: {{ include "common.namespace" . }}
labels:
app: {{ include "common.name" . }}
{{if eq .Values.service.type "NodePort" -}}
- port: {{ .Values.service.externalPort }}
nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
- name: {{ .Values.service.name }}-{{ .Values.service.externalPort }}
+ name: {{ .Values.service.portName }}-{{ .Values.service.externalPort }}
- port: {{ .Values.service.externalPort2 }}
nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort2 }}
- name: {{ .Values.service.name }}-{{ .Values.service.externalPort2 }}
+ name: {{ .Values.service.portName }}-{{ .Values.service.externalPort2 }}
{{- else -}}
- port: {{ .Values.service.externalPort }}
targetPort: {{ .Values.service.internalPort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
{{- end}}
selector:
app: {{ include "common.name" . }}
# application configuration
config:
- preloadPolicies: true
+ preloadPolicies: false
pdpPort: 8081
# default number of instances
service:
type: NodePort
name: pap
+ portName: pap
externalPort: 8443
nodePort: 19
externalPort2: 9091
# 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
#By default it's eventual
music.atomic.get = false
music.atomic.put = true
-cassandra.host={{.Release.Name}}-{{.Values.cassandra.chart.name}}.{{.Release.Namespace}}
-zookeeper.host={{.Release.Name}}-{{.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}}
\ No newline at end of file
+cassandra.password={{.Values.cassandra.config.cassandraPassword}}
-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
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
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.
#mysql
db.driver = org.mariadb.jdbc.Driver
-db.connectionURL = jdbc:mariadb:failover://{{.Release.Name}}-{{.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
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
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
#Microservices Related Properties for Portal
microservices.widget.protocol = http
-microservices.widget.hostname = {{.Release.Name}}-{{.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 -
apiVersion: v1
kind: Service
metadata:
- name: {{ include "common.fullname" . }}
+ name: {{ include "common.servicename" . }}
namespace: {{ include "common.namespace" . }}
labels:
app: {{ include "common.name" . }}
"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 }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
- port: {{ .Values.service.externalPort2 }}
targetPort: {{ .Values.service.internalPort2 }}
nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort2 }}
- name: {{ .Values.service.name }}2
+ name: {{ .Values.service.portName }}2
- port: {{ .Values.service.externalPort3 }}
targetPort: {{ .Values.service.internalPort3 }}
nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort3 }}
- name: {{ .Values.service.name }}3
+ name: {{ .Values.service.portName }}3
{{- else -}}
- port: {{ .Values.service.externalPort }}
targetPort: {{ .Values.service.internalPort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
- port: {{ .Values.service.externalPort2 }}
targetPort: {{ .Values.service.internalPort2 }}
- name: {{ .Values.service.name }}2
+ name: {{ .Values.service.portName }}2
- port: {{ .Values.service.externalPort3 }}
targetPort: {{ .Values.service.internalPort3 }}
- name: {{ .Values.service.name }}3
- {{- end}}
+ name: {{ .Values.service.portName }}3
+ {{- end }}
selector:
app: {{ include "common.name" . }}
- release: {{ .Release.Name }}
\ No newline at end of file
+ release: {{ .Release.Name }}
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
periodSeconds: 10
service:
- type: NodePort
+ type: LoadBalancer
name: portal-app
+ portName: portal-app
externalPort: 8989
internalPort: 8080
nodePort: 15
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:
name: {{ include "common.fullname" . }}-docker-entry-initd
namespace: {{ include "common.namespace" . }}
data:
-{{ tpl (.Files.Glob "resources/config/mariadb/docker-entrypoint-initdb.d/*").AsConfig . | indent 2 }}
+{{ tpl (.Files.Glob "resources/config/cassandra/docker-entrypoint-initdb.d/*").AsConfig . | indent 2 }}
- containerPort: {{ .Values.service.internalPort3 }}
- containerPort: {{ .Values.service.internalPort4 }}
- containerPort: {{ .Values.service.internalPort5 }}
- {{- if eq .Values.liveness.enabled true }}
+ {{ if eq .Values.liveness.enabled true }}
livenessProbe:
- tcpSocket:
- port: {{ .Values.service.internalPort }}
+ exec:
+ command:
+ - /bin/bash
+ - -c
+ - nodetool status | grep $POD_IP | awk '$1!="UN" { exit 1; }'
initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
periodSeconds: {{ .Values.liveness.periodSeconds }}
- {{end -}}
+ {{ end }}
readinessProbe:
- tcpSocket:
- port: {{ .Values.service.internalPort }}
+ exec:
+ command:
+ - /bin/bash
+ - -c
+ - nodetool status | grep $POD_IP | awk '$1!="UN" { exit 1; }'
initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
periodSeconds: {{ .Values.readiness.periodSeconds }}
env:
- name: CASSUSER
value: "{{ .Values.config.cassandraUsername }}"
- name: CASSPASS
+ value: "{{ .Values.config.cassandraPassword }}"
+ - name: JVM_OPTS
+ value: "{{ .Values.config.cassandraJvmOpts }}"
+ - name: POD_IP
valueFrom:
- secretKeyRef:
- name: {{ template "common.fullname" . }}
- key: db-root-password
+ fieldRef:
+ fieldPath: status.podIP
volumeMounts:
- mountPath: /etc/localtime
name: localtime
- name: cassandra-docker-entrypoint-initdb
mountPath: /docker-entrypoint-initdb.d/zzz_portalsdk.cql
subPath: portalsdk.cql
+ - name: {{ include "common.fullname" . }}-data
+ mountPath: /var/lib/cassandra/data
resources:
{{ toYaml .Values.resources | indent 12 }}
{{- if .Values.nodeSelector }}
- name: localtime
hostPath:
path: /etc/localtime
+ {{- if .Values.persistence.enabled }}
+ - name: {{ include "common.fullname" . }}-data
+ persistentVolumeClaim:
+ claimName: {{ include "common.fullname" . }}
+ {{- else }}
+ emptyDir: {}
+ {{- end }}
imagePullSecrets:
- name: "{{ include "common.namespace" . }}-docker-registry-key"
apiVersion: v1
kind: Service
metadata:
- name: {{ include "common.fullname" . }}
+ name: {{ include "common.servicename" . }}
namespace: {{ include "common.namespace" . }}
labels:
app: {{ include "common.name" . }}
- port: {{ .Values.service.externalPort }}
targetPort: {{ .Values.service.internalPort }}
nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
- port: {{ .Values.service.externalPort2 }}
targetPort: {{ .Values.service.internalPort2 }}
nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort2 }}
- name: {{ .Values.service.name }}2
+ name: {{ .Values.service.portName }}2
- port: {{ .Values.service.externalPort3 }}
targetPort: {{ .Values.service.internalPort3 }}
nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort3 }}
- name: {{ .Values.service.name }}3
+ name: {{ .Values.service.portName }}3
- port: {{ .Values.service.externalPort4 }}
targetPort: {{ .Values.service.internalPort4 }}
nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort4 }}
- name: {{ .Values.service.name }}4
+ name: {{ .Values.service.portName }}4
- port: {{ .Values.service.externalPort5 }}
targetPort: {{ .Values.service.internalPort5 }}
nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort5 }}
- name: {{ .Values.service.name }}5
+ name: {{ .Values.service.portName }}5
{{- else -}}
- port: {{ .Values.service.externalPort }}
targetPort: {{ .Values.service.internalPort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
- port: {{ .Values.service.externalPort2 }}
targetPort: {{ .Values.service.internalPort2 }}
- name: {{ .Values.service.name }}2
+ name: {{ .Values.service.portName }}2
- port: {{ .Values.service.externalPort3 }}
targetPort: {{ .Values.service.internalPort3 }}
- name: {{ .Values.service.name }}3
+ name: {{ .Values.service.portName }}3
- port: {{ .Values.service.externalPort4 }}
targetPort: {{ .Values.service.internalPort4 }}
- name: {{ .Values.service.name }}4
+ name: {{ .Values.service.portName }}4
- port: {{ .Values.service.externalPort5 }}
targetPort: {{ .Values.service.internalPort5 }}
- name: {{ .Values.service.name }}5
+ name: {{ .Values.service.portName }}5
{{- end}}
selector:
app: {{ include "common.name" . }}
- release: {{ .Release.Name }}
\ No newline at end of file
+ release: {{ .Release.Name }}
config:
cassandraUsername: root
cassandraPassword: Aa123456
+ cassandraJvmOpts: -Xmx2536m -Xms2536m
# default number of instances
replicaCount: 1
service:
type: ClusterIP
name: portal-cassandra
+ portName: portal-cassandra
externalPort: 9160
internalPort: 9160
externalPort2: 7000
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
periodSeconds: {{ .Values.readiness.periodSeconds }}
env:
- name: MYSQL_HOST
- value: "{{ include "common.fullname" . }}"
+ value: "{{ include "common.servicename" . }}"
- name: MYSQL_ROOT_PASSWORD
valueFrom:
secretKeyRef:
imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
env:
- name: DB_HOST
- value: "{{ include "common.fullname" . }}"
+ value: "{{ include "common.servicename" . }}"
- name: DB_USER
value: {{ .Values.config.mariadbUser }}
- name: DB_PASS
imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
env:
- name: DB_HOST
- value: "{{ include "common.fullname" . }}"
+ value: "{{ include "common.servicename" . }}"
- name: DB_USER
value: {{ .Values.config.mariadbUser }}
- name: DB_PORT
name: {{ include "common.fullname" . }}-mariadb
imagePullSecrets:
- name: "{{ include "common.namespace" . }}-docker-registry-key"
- restartPolicy: Never
\ No newline at end of file
+ restartPolicy: Never
apiVersion: v1
kind: Service
metadata:
- name: {{ include "common.fullname" . }}
+ name: {{ include "common.servicename" . }}
namespace: {{ include "common.namespace" . }}
labels:
app: {{ include "common.name" . }}
- port: {{ .Values.service.externalPort }}
targetPort: {{ .Values.service.internalPort }}
{{- end}}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
selector:
app: {{ include "common.name" . }}
- release: {{ .Release.Name }}
\ No newline at end of file
+ release: {{ .Release.Name }}
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
service:
type: ClusterIP
- name: mariadb
+ name: portal-db
+ portName: portal-db
externalPort: 3306
internalPort: 3306
music.atomic.get = false
music.atomic.put = true
-cassandra.host={{.Release.Name}}-{{.Values.cassandra.chart.name}}.{{.Release.Namespace}}
-zookeeper.host={{.Release.Name}}-{{.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}}
\ No newline at end of file
+cassandra.password={{.Values.cassandra.config.cassandraPassword}}
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,
##########################################################################
db.driver = org.mariadb.jdbc.Driver
-db.connectionURL = jdbc:mariadb://{{.Release.Name}}-{{.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
#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
- /root/ready.py
args:
- --container-name
- - {{ .Values.mariadb.chart.name }}
+ - "portal-db"
env:
- name: NAMESPACE
valueFrom:
apiVersion: v1
kind: Service
metadata:
- name: {{ include "common.fullname" . }}
+ name: {{ include "common.servicename" . }}
namespace: {{ include "common.namespace" . }}
labels:
app: {{ include "common.name" . }}
- port: {{ .Values.service.externalPort }}
targetPort: {{ .Values.service.internalPort }}
nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
{{- else -}}
- port: {{ .Values.service.externalPort }}
targetPort: {{ .Values.service.internalPort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
{{- end}}
selector:
app: {{ include "common.name" . }}
- release: {{ .Release.Name }}
\ No newline at end of file
+ release: {{ .Release.Name }}
service:
type: ClusterIP
name: portal-sdk
+ portName: portal-sdk
externalPort: 8990
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:
microservice.widget.location=/tmp
## App DB Properties
-spring.datasource.url=jdbc:mysql://{{.Release.Name}}-{{.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
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
- /root/ready.py
args:
- --container-name
- - {{ .Values.mariadb.chart.name }}
+ - "portal-db"
env:
- name: NAMESPACE
valueFrom:
apiVersion: v1
kind: Service
metadata:
- name: {{ include "common.fullname" . }}
+ name: {{ include "common.servicename" . }}
namespace: {{ include "common.namespace" . }}
labels:
app: {{ include "common.name" . }}
- port: {{ .Values.service.externalPort }}
targetPort: {{ .Values.service.internalPort }}
nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
{{- else -}}
- port: {{ .Values.service.externalPort }}
targetPort: {{ .Values.service.internalPort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
{{- end}}
selector:
app: {{ include "common.name" . }}
- release: {{ .Release.Name }}
\ No newline at end of file
+ release: {{ .Release.Name }}
periodSeconds: 10
mariadb:
- chart:
+ service:
name: portal-db
service:
type: ClusterIP
name: portal-widget
+ portName: portal-widget
externalPort: 8082
internalPort: 8082
apiVersion: v1
kind: Service
metadata:
- name: {{ include "common.fullname" . }}
+ name: {{ include "common.servicename" . }}
namespace: {{ include "common.namespace" . }}
labels:
app: {{ include "common.name" . }}
- port: {{ .Values.service.externalPort }}
targetPort: {{ .Values.service.internalPort }}
{{- end}}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
selector:
app: {{ include "common.name" . }}
- release: {{ .Release.Name }}
\ No newline at end of file
+ release: {{ .Release.Name }}
service:
type: ClusterIP
- name: portal-zk
+ name: portal-zookeeper
+ portName: portal-zk
externalPort: 2181
internalPort: 2181
#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
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
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
}
# Set the defaults
-if [ $# -le 2 ];then
+
+echo "Number of parameters:"
+echo $#
+
+if [ $# -lt 2 ];then
usage
exit
fi
##
## 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)
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
+
# aaf info - everything is from the private oam network (also called onap private network)
-GLOBAL_AAF_SERVER = "http://{{.Release.Name}}-aaf.{{include "common.namespace" .}}:8101"
+GLOBAL_AAF_SERVER = "http://aaf.{{include "common.namespace" .}}:8101"
GLOBAL_AAF_USERNAME = "dgl@openecomp.org"
GLOBAL_AAF_PASSWORD = "ecomp_admin"
# aai info - everything is from the private oam network (also called onap private network)
# appc info - everything is from the private oam network (also called onap private network)
GLOBAL_APPC_SERVER_PROTOCOL = "http"
GLOBAL_APPC_SERVER_PORT = "8282"
-GLOBAL_APPC_SERVER = "http://{{.Release.Name}}-appc.{{include "common.namespace" .}}:"
+GLOBAL_APPC_SERVER = "http://appc.{{include "common.namespace" .}}:"
GLOBAL_APPC_USERNAME = "admin"
GLOBAL_APPC_PASSWORD = "admin"
# sdc info - everything is from the private oam network (also called onap private network)
GLOBAL_ASDC_SERVER_PROTOCOL = "http"
GLOBAL_ASDC_FE_PORT = "8181"
GLOBAL_ASDC_BE_PORT = "8080"
+GLOBAL_ASDC_BE_ONBOARD_PORT = "8081"
GLOBAL_ASDC_BE_USERNAME = "beep"
GLOBAL_ASDC_BE_PASSWORD = "boop"
# clamp info - everything is from the private oam network (also called onap private network)
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)
# Log info
GLOBAL_LOG_SERVER_PROTOCOL = "http"
GLOBAL_LOG_ELASTICSEARCH_PORT = "9200"
-GLOBAL_LOG_LOGSTASH_PORT = "5044"
+GLOBAL_LOG_LOGSTASH_PORT = "9600"
GLOBAL_LOG_KIBANA_PORT = "5601"
# File generated from /opt/config
#
-GLOBAL_INJECTED_AAF_IP_ADDR = "{{.Release.Name}}-aaf.{{include "common.namespace" .}}"
+GLOBAL_INJECTED_AAF_IP_ADDR = "aaf.{{include "common.namespace" .}}"
GLOBAL_INJECTED_AAI1_IP_ADDR = "aai.{{include "common.namespace" .}}"
GLOBAL_INJECTED_AAI2_IP_ADDR = "N/A"
-GLOBAL_INJECTED_APPC_IP_ADDR = "{{.Release.Name}}-appc.{{include "common.namespace" .}}"
+GLOBAL_INJECTED_APPC_IP_ADDR = "appc.{{include "common.namespace" .}}"
GLOBAL_INJECTED_ARTIFACTS_VERSION = "{{.Values.demoArtifactsVersion}}"
-GLOBAL_INJECTED_CLAMP_IP_ADDR = "{{.Release.Name}}-clamp.{{include "common.namespace" .}}"
+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 = "{{.Release.Name}}-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"
GLOBAL_INJECTED_GERRIT_BRANCH = "master"
GLOBAL_INJECTED_LOG_ELASTICSEARCH_IP_ADDR = "log-es.{{include "common.namespace" .}}"
GLOBAL_INJECTED_LOG_KIBANA_IP_ADDR = "log-kibana.{{include "common.namespace" .}}"
-GLOBAL_INJECTED_LOG_LOGSTASH_IP_ADDR = "log-ls.{{include "common.namespace" .}}"
+GLOBAL_INJECTED_LOG_LOGSTASH_IP_ADDR = "log-ls-http.{{include "common.namespace" .}}"
GLOBAL_INJECTED_KEYSTONE = "{{ .Values.openStackKeyStoneUrl }}"
GLOBAL_INJECTED_MR_IP_ADDR = "message-router.{{include "common.namespace" .}}"
GLOBAL_INJECTED_MSO_IP_ADDR = "so.{{include "common.namespace" .}}"
GLOBAL_INJECTED_OPENSTACK_TENANT_ID = "{{ .Values.openStackTenantId }}"
GLOBAL_INJECTED_OPENSTACK_USERNAME = "{{ .Values.openStackUserName }}"
GLOBAL_INJECTED_POLICY_IP_ADDR = "pdp.{{include "common.namespace" .}}"
-GLOBAL_INJECTED_POLICY_HEALTHCHECK_IP_ADDR = "{{.Release.Name}}-drools.{{include "common.namespace" .}}"
-GLOBAL_INJECTED_PORTAL_IP_ADDR = "{{.Release.Name}}-portal-app.{{include "common.namespace" .}}"
+GLOBAL_INJECTED_POLICY_HEALTHCHECK_IP_ADDR = "drools.{{include "common.namespace" .}}"
+GLOBAL_INJECTED_PORTAL_IP_ADDR = "portal-app.{{include "common.namespace" .}}"
GLOBAL_INJECTED_PUBLIC_NET_ID = "{{ .Values.openStackPublicNetId }}"
GLOBAL_INJECTED_REGION = "{{ .Values.openStackRegion }}"
GLOBAL_INJECTED_REMOTE_REPO = "http://gerrit.onap.org/r/testsuite/properties.git"
GLOBAL_INJECTED_SCRIPT_VERSION = "{{ .Values.scriptVersion }}"
-GLOBAL_INJECTED_SDC_BE_IP_ADDR = "{{.Release.Name}}-sdc-be.{{include "common.namespace" .}}"
-GLOBAL_INJECTED_SDC_FE_IP_ADDR = "{{.Release.Name}}-sdc-fe.{{include "common.namespace" .}}"
+GLOBAL_INJECTED_SDC_BE_IP_ADDR = "sdc-be.{{include "common.namespace" .}}"
+GLOBAL_INJECTED_SDC_BE_ONBOARD_IP_ADDR = "sdc-onboarding-be.{{include "common.namespace" .}}"
+GLOBAL_INJECTED_SDC_FE_IP_ADDR = "sdc-fe.{{include "common.namespace" .}}"
GLOBAL_INJECTED_SDC_IP_ADDR = "N/A"
-GLOBAL_INJECTED_SDNC_IP_ADDR = "{{.Release.Name}}-sdnc.{{include "common.namespace" .}}"
-GLOBAL_INJECTED_SDNC_PORTAL_IP_ADDR = "{{.Release.Name}}-sdnc-portal.{{include "common.namespace" .}}"
+GLOBAL_INJECTED_SDNC_IP_ADDR = "sdnc.{{include "common.namespace" .}}"
+GLOBAL_INJECTED_SDNC_PORTAL_IP_ADDR = "sdnc-portal.{{include "common.namespace" .}}"
GLOBAL_INJECTED_SO_IP_ADDR = "so.{{include "common.namespace" .}}"
GLOBAL_INJECTED_UBUNTU_1404_IMAGE = "{{ .Values.ubuntu14Image }}"
GLOBAL_INJECTED_UBUNTU_1604_IMAGE = "{{ .Values.ubuntu16Image }}"
-GLOBAL_INJECTED_VID_IP_ADDR = "{{.Release.Name}}-vid.{{include "common.namespace" .}}"
+GLOBAL_INJECTED_VID_IP_ADDR = "vid.{{include "common.namespace" .}}"
GLOBAL_INJECTED_VM_FLAVOR = "{{ .Values.openStackFlavourMedium }}"
-GLOBAL_INJECTED_VNFSDK_IP_ADDR = "{{.Release.Name}}-vnfsdk.{{include "common.namespace" .}}"
+GLOBAL_INJECTED_VNFSDK_IP_ADDR = "refrepo.{{include "common.namespace" .}}"
GLOBAL_INJECTED_PROPERTIES = {
- "GLOBAL_INJECTED_AAF_IP_ADDR" : "{{.Release.Name}}-aaf.{{include "common.namespace" .}}",
+ "GLOBAL_INJECTED_AAF_IP_ADDR" : "aaf.{{include "common.namespace" .}}",
"GLOBAL_INJECTED_AAI1_IP_ADDR" : "aai.{{include "common.namespace" .}}",
"GLOBAL_INJECTED_AAI2_IP_ADDR" : "N/A",
- "GLOBAL_INJECTED_APPC_IP_ADDR" : "{{.Release.Name}}-appc.{{include "common.namespace" .}}",
+ "GLOBAL_INJECTED_APPC_IP_ADDR" : "appc.{{include "common.namespace" .}}",
"GLOBAL_INJECTED_ARTIFACTS_VERSION" : "{{.Values.demoArtifactsVersion}}",
- "GLOBAL_INJECTED_CLAMP_IP_ADDR" : "{{.Release.Name}}-clamp.{{include "common.namespace" .}}",
+ "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" : "{{.Release.Name}}-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",
"GLOBAL_INJECTED_OPENSTACK_TENANT_ID" : "{{ .Values.openStackTenantId }}",
"GLOBAL_INJECTED_OPENSTACK_USERNAME" : "{{ .Values.openStackUserName }}",
"GLOBAL_INJECTED_POLICY_IP_ADDR" : "pdp.{{include "common.namespace" .}}",
- "GLOBAL_INJECTED_POLICY_HEALTHCHECK_IP_ADDR" : "{{.Release.Name}}-drools.{{include "common.namespace" .}}",
- "GLOBAL_INJECTED_PORTAL_IP_ADDR" : "{{.Release.Name}}-portalapps.{{include "common.namespace" .}}",
+ "GLOBAL_INJECTED_POLICY_HEALTHCHECK_IP_ADDR" : "drools.{{include "common.namespace" .}}",
+ "GLOBAL_INJECTED_PORTAL_IP_ADDR" : "portal-app.{{include "common.namespace" .}}",
"GLOBAL_INJECTED_PUBLIC_NET_ID" : "{{ .Values.openStackPublicNetId }}",
"GLOBAL_INJECTED_REGION" : "{{ .Values.openStackRegion }}",
"GLOBAL_INJECTED_REMOTE_REPO" : "http://gerrit.onap.org/r/testsuite/properties.git",
- "GLOBAL_INJECTED_SDC_BE_IP_ADDR" : "{{.Release.Name}}-sdc-be.{{include "common.namespace" .}}",
- "GLOBAL_INJECTED_SDC_FE_IP_ADDR" : "{{.Release.Name}}-sdc-fe.{{include "common.namespace" .}}",
+ "GLOBAL_INJECTED_SDC_BE_IP_ADDR" : "sdc-be.{{include "common.namespace" .}}",
+ "GLOBAL_INJECTED_SDC_BE_ONBOARD_IP_ADDR" : "sdc-onboarding-be.{{include "common.namespace" .}}",
+ "GLOBAL_INJECTED_SDC_FE_IP_ADDR" : "sdc-fe.{{include "common.namespace" .}}",
"GLOBAL_INJECTED_SDC_IP_ADDR" : "N/A",
"GLOBAL_INJECTED_SCRIPT_VERSION" : "{{ .Values.scriptVersion }}",
- "GLOBAL_INJECTED_SDNC_IP_ADDR" : "{{.Release.Name}}-sdnc.{{include "common.namespace" .}}",
- "GLOBAL_INJECTED_SDNC_PORTAL_IP_ADDR" : "{{.Release.Name}}-sdnc-portal.{{include "common.namespace" .}}",
+ "GLOBAL_INJECTED_SDNC_IP_ADDR" : "sdnc.{{include "common.namespace" .}}",
+ "GLOBAL_INJECTED_SDNC_PORTAL_IP_ADDR" : "sdnc-portal.{{include "common.namespace" .}}",
"GLOBAL_INJECTED_SO_IP_ADDR" : "so.{{include "common.namespace" .}}",
"GLOBAL_INJECTED_UBUNTU_1404_IMAGE" : "{{.Values.ubuntu14Image}}",
"GLOBAL_INJECTED_UBUNTU_1604_IMAGE" : "{{.Values.ubuntu16Image}}",
- "GLOBAL_INJECTED_VID_IP_ADDR" : "{{.Release.Name}}-vid.{{include "common.namespace" .}}",
+ "GLOBAL_INJECTED_VID_IP_ADDR" : "vid.{{include "common.namespace" .}}",
"GLOBAL_INJECTED_VM_FLAVOR" : "{{ .Values.openStackFlavourMedium }}",
- "GLOBAL_INJECTED_VNFSDK_IP_ADDR" : "{{.Release.Name}}-vnfsdk.{{include "common.namespace" .}}"
-}
\ No newline at end of file
+ "GLOBAL_INJECTED_VNFSDK_IP_ADDR" : "refrepo.{{include "common.namespace" .}}"
+}
# 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
- /root/ready.py
args:
- --container-name
- - "sdc-es"
- - --container-name
- - "sdc-cs"
+ - "sdc-onboarding-be"
env:
- name: NAMESPACE
valueFrom:
- /root/job_complete.py
args:
- --job-name
- - {{ .Release.Name }}-sdc-cs-config-cassandra
+ - {{ .Release.Name }}-sdc-es-config-elasticsearch
env:
- name: NAMESPACE
valueFrom:
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:
mountPath: /var/log/onap
- name: {{ include "common.fullname" . }}-logback
mountPath: /tmp/logback.xml
+ subPath: logback.xml
lifecycle:
postStart:
exec:
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
spec:
+ backoffLimit: 20
template:
metadata:
labels:
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
apiVersion: v1
kind: Service
metadata:
- name: {{ include "common.fullname" . }}
+ name: {{ include "common.servicename" . }}
namespace: {{ include "common.namespace" . }}
labels:
app: {{ include "common.name" . }}
{{if eq .Values.service.type "NodePort" -}}
- port: {{ .Values.service.internalPort }}
nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
- port: {{ .Values.service.internalPort2 }}
nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort2 }}
- name: {{ .Values.service.name }}2
+ name: {{ .Values.service.portName }}2
{{- else -}}
- port: {{ .Values.service.externalPort }}
targetPort: {{ .Values.service.internalPort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
- port: {{ .Values.service.externalPort2 }}
targetPort: {{ .Values.service.internalPort2 }}
- name: {{ .Values.service.name }}2
+ name: {{ .Values.service.portName }}2
{{- end}}
selector:
app: {{ include "common.name" . }}
- release: {{ .Release.Name }}
\ No newline at end of file
+ release: {{ .Release.Name }}
# 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:
type: NodePort
name: sdc-be
+ portName: sdc-be
nodePort: "04"
internalPort: 8443
nodePort2: "05"
# 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
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:
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/
- 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 }}
- 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:
name: {{ .Release.Name }}-sdc-environments-configmap
defaultMode: 0755
imagePullSecrets:
- - name: "{{ include "common.namespace" . }}-docker-registry-key"
\ No newline at end of file
+ - name: "{{ include "common.namespace" . }}-docker-registry-key"
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
spec:
+ backoffLimit: 20
template:
metadata:
labels:
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
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:
apiVersion: v1
kind: Service
metadata:
- name: {{ include "common.fullname" . }}
+ name: {{ include "common.servicename" . }}
namespace: {{ include "common.namespace" . }}
labels:
app: {{ include "common.name" . }}
{{if eq .Values.service.type "NodePort" -}}
- port: {{ .Values.service.internalPort }}
nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
- port: {{ .Values.service.internalPort2 }}
nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort2 }}
- name: {{ .Values.service.name }}2
+ name: {{ .Values.service.portName }}2
{{- else -}}
- port: {{ .Values.service.externalPort }}
targetPort: {{ .Values.service.internalPort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
- port: {{ .Values.service.externalPort2 }}
targetPort: {{ .Values.service.internalPort2 }}
- name: {{ .Values.service.name }}2
+ name: {{ .Values.service.portName }}2
{{- end}}
selector:
app: {{ include "common.name" . }}
- release: {{ .Release.Name }}
\ No newline at end of file
+ release: {{ .Release.Name }}
maxHeapSize: "1536M"
heapNewSize: "512M"
-secrets:
- sdc_user: YXNkY191c2Vy
- sdc_password: QWExMjM0JV4h
- cs_password: b25hcDEyMyNAIQ==
-
# default number of instances
replicaCount: 1
# 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:
type: ClusterIP
name: sdc-cs
+ portName: sdc-cs
externalPort: 9160
internalPort: 9160
externalPort2: 9042
# 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
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"
- 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:
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
+ - name: "{{ include "common.namespace" . }}-docker-registry-key"
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
spec:
+ backoffLimit: 20
template:
metadata:
labels:
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
apiVersion: v1
kind: Service
metadata:
- name: {{ include "common.fullname" . }}
+ name: {{ include "common.servicename" . }}
namespace: {{ include "common.namespace" . }}
labels:
app: {{ include "common.name" . }}
{{if eq .Values.service.type "NodePort" -}}
- port: {{ .Values.service.internalPort }}
nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
- port: {{ .Values.service.internalPort2 }}
nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort2 }}
- name: {{ .Values.service.name }}2
+ name: {{ .Values.service.portName }}2
{{- else -}}
- port: {{ .Values.service.externalPort }}
targetPort: {{ .Values.service.internalPort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
- port: {{ .Values.service.externalPort2 }}
targetPort: {{ .Values.service.internalPort2 }}
- name: {{ .Values.service.name }}2
+ name: {{ .Values.service.portName }}2
{{- end}}
selector:
app: {{ include "common.name" . }}
- release: {{ .Release.Name }}
\ No newline at end of file
+ release: {{ .Release.Name }}
enabled: true
readiness:
- initialDelaySeconds: 10
+ initialDelaySeconds: 60
periodSeconds: 10
service:
type: ClusterIP
name: sdc-es
+ portName: sdc-es
externalPort: 9200
internalPort: 9200
externalPort2: 9300
# 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
- /root/ready.py
args:
- --container-name
- - "sdc-be"
+ - "sdc-kb"
env:
- name: NAMESPACE
valueFrom:
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:
mountPath: /var/log/onap
- name: {{ include "common.fullname" . }}-logback
mountPath: /tmp/logback.xml
+ subPath: logback.xml
lifecycle:
postStart:
exec:
apiVersion: v1
kind: Service
metadata:
- name: {{ include "common.fullname" . }}
+ name: {{ include "common.servicename" . }}
namespace: {{ include "common.namespace" . }}
labels:
app: {{ include "common.name" . }}
{{if eq .Values.service.type "NodePort" -}}
- port: {{ .Values.service.internalPort }}
nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
- port: {{ .Values.service.internalPort2 }}
nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort2 }}
- name: {{ .Values.service.name }}2
+ name: {{ .Values.service.portName }}2
{{- else -}}
- port: {{ .Values.service.externalPort }}
targetPort: {{ .Values.service.internalPort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
- port: {{ .Values.service.externalPort2 }}
targetPort: {{ .Values.service.internalPort2 }}
- name: {{ .Values.service.name }}2
+ name: {{ .Values.service.portName }}2
{{- end}}
selector:
app: {{ include "common.name" . }}
- release: {{ .Release.Name }}
\ No newline at end of file
+ release: {{ .Release.Name }}
#service being defined.
type: NodePort
name: sdc-fe
+ portName: sdc-fe
nodePort: "06"
internalPort: 8181
nodePort2: "07"
# 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
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 }}
apiVersion: v1
kind: Service
metadata:
- name: {{ include "common.fullname" . }}
+ name: {{ include "common.servicename" . }}
namespace: {{ include "common.namespace" . }}
labels:
app: {{ include "common.name" . }}
{{if eq .Values.service.type "NodePort" -}}
- port: {{ .Values.service.externalPort }}
nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
{{- else -}}
- port: {{ .Values.service.externalPort }}
targetPort: {{ .Values.service.internalPort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
{{- end}}
selector:
app: {{ include "common.name" . }}
- release: {{ .Release.Name }}
\ No newline at end of file
+ release: {{ .Release.Name }}
service:
type: ClusterIP
name: sdc-kb
+ portName: sdc-kb
externalPort: 5601
internalPort: 5601
--- /dev/null
+# 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
--- /dev/null
+# 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
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>\r
+<configuration scan="true" scanPeriod="3 seconds">\r
+ <property name="logDir" value="/var/log/onap" />\r
+ <property name="componentName" scope="system" value="sdc"></property>\r
+ <property name="subComponentName" scope="system" value="sdc-onboarding-be"></property>\r
+ <property name="logDirectory" value="${logDir}/${componentName}/${subComponentName}" />\r
+ <property file="${config.home}/catalog-be/configuration.yaml" />\r
+ <property name="enable-all-log" scope="context" value="false" />\r
+ <!-- log file names -->\r
+ <property name="errorLogName" value="error" />\r
+ <property name="metricsLogName" value="metrics" />\r
+ <property name="auditLogName" value="audit" />\r
+ <property name="debugLogName" value="debug" />\r
+ <property name="transactionLogName" value="transaction" />\r
+ <property name="allLogName" value="all" />\r
+ <property name="queueSize" value="256" />\r
+ <property name="maxFileSize" value="50MB" />\r
+ <property name="maxHistory" value="30" />\r
+ <property name="totalSizeCap" value="10GB" />\r
+ <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" />\r
+ <!-- All log -->\r
+ <if condition='property("enable-all-log").equalsIgnoreCase("true")'>\r
+ <then>\r
+ <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="ALL_ROLLING">\r
+ <file>${logDirectory}/${allLogName}.log</file>\r
+ <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">\r
+ <fileNamePattern>${logDirectory}/${allLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>\r
+ <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">\r
+ <maxFileSize>${maxFileSize}</maxFileSize>\r
+ </timeBasedFileNamingAndTriggeringPolicy>\r
+ <maxHistory>${maxHistory}</maxHistory>\r
+ <totalSizeCap>${totalSizeCap}</totalSizeCap>\r
+ </rollingPolicy>\r
+ <encoder>\r
+ <pattern>${pattern}</pattern>\r
+ </encoder>\r
+ </appender>\r
+ <appender class="ch.qos.logback.classic.AsyncAppender" name="ASYNC_ALL">\r
+ <appender-ref ref="ALL_ROLLING" />\r
+ </appender>\r
+ </then>\r
+ </if>\r
+ <!-- Error log -->\r
+ <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="ERROR_ROLLING">\r
+ <file>${logDirectory}/${errorLogName}.log</file>\r
+ <!-- Audit messages filter - deny audit messages -->\r
+ <filter class="ch.qos.logback.core.filter.EvaluatorFilter">\r
+ <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">\r
+ <marker>AUDIT_MARKER</marker>\r
+ </evaluator>\r
+ <onMismatch>NEUTRAL</onMismatch>\r
+ <onMatch>DENY</onMatch>\r
+ </filter>\r
+ <!-- Transaction messages filter - deny Transaction messages -->\r
+ <filter class="ch.qos.logback.core.filter.EvaluatorFilter">\r
+ <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">\r
+ <marker>TRANSACTION_MARKER</marker>\r
+ </evaluator>\r
+ <onMismatch>NEUTRAL</onMismatch>\r
+ <onMatch>DENY</onMatch>\r
+ </filter>\r
+ <!-- deny all events with a level below INFO, that is TRACE and DEBUG -->\r
+ <filter class="ch.qos.logback.classic.filter.ThresholdFilter">\r
+ <level>INFO</level>\r
+ </filter>\r
+ <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">\r
+ <fileNamePattern>${logDirectory}/${errorLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>\r
+ <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">\r
+ <maxFileSize>${maxFileSize}</maxFileSize>\r
+ </timeBasedFileNamingAndTriggeringPolicy>\r
+ <maxHistory>${maxHistory}</maxHistory>\r
+ <totalSizeCap>${totalSizeCap}</totalSizeCap>\r
+ </rollingPolicy>\r
+ <encoder>\r
+ <pattern>${pattern}</pattern>\r
+ </encoder>\r
+ </appender>\r
+ <!-- Debug log -->\r
+ <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="DEBUG_ROLLING">\r
+ <file>${logDirectory}/${debugLogName}.log</file>\r
+ <!-- No need to deny audit messages - they are INFO only, will be denied \r
+ anyway -->\r
+ <!-- Transaction messages filter - deny Transaction messages, there are \r
+ some DEBUG level messages among them -->\r
+ <filter class="ch.qos.logback.core.filter.EvaluatorFilter">\r
+ <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">\r
+ <marker>TRANSACTION_MARKER</marker>\r
+ </evaluator>\r
+ <onMismatch>NEUTRAL</onMismatch>\r
+ <onMatch>DENY</onMatch>\r
+ </filter>\r
+ <!-- accept DEBUG and TRACE level -->\r
+ <filter class="ch.qos.logback.core.filter.EvaluatorFilter">\r
+ <evaluator class="ch.qos.logback.classic.boolex.GEventEvaluator">\r
+ <expression>e.level.toInt() <= DEBUG.toInt()</expression>\r
+ </evaluator>\r
+ <OnMismatch>DENY</OnMismatch>\r
+ <OnMatch>NEUTRAL</OnMatch>\r
+ </filter>\r
+ <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">\r
+ <fileNamePattern>${logDirectory}/${debugLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>\r
+ <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">\r
+ <maxFileSize>${maxFileSize}</maxFileSize>\r
+ </timeBasedFileNamingAndTriggeringPolicy>\r
+ <maxHistory>${maxHistory}</maxHistory>\r
+ <totalSizeCap>${totalSizeCap}</totalSizeCap>\r
+ </rollingPolicy>\r
+ <encoder>\r
+ <pattern>${pattern}</pattern>\r
+ </encoder>\r
+ </appender>\r
+ <!-- Audit log -->\r
+ <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="AUDIT_ROLLING">\r
+ <file>${logDirectory}/${auditLogName}.log</file>\r
+ <!-- Audit messages filter - accept audit messages -->\r
+ <filter class="ch.qos.logback.core.filter.EvaluatorFilter">\r
+ <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">\r
+ <marker>AUDIT_MARKER</marker>\r
+ </evaluator>\r
+ <onMismatch>DENY</onMismatch>\r
+ <onMatch>ACCEPT</onMatch>\r
+ </filter>\r
+ <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">\r
+ <fileNamePattern>${logDirectory}/${auditLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>\r
+ <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">\r
+ <maxFileSize>${maxFileSize}</maxFileSize>\r
+ </timeBasedFileNamingAndTriggeringPolicy>\r
+ <maxHistory>${maxHistory}</maxHistory>\r
+ <totalSizeCap>${totalSizeCap}</totalSizeCap>\r
+ </rollingPolicy>\r
+ <encoder>\r
+ <pattern>${pattern}</pattern>\r
+ </encoder>\r
+ </appender>\r
+ <!-- SdncTransaction log -->\r
+ <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="TRANSACTION_ROLLING">\r
+ <file>${logDirectory}/${transactionLogName}.log</file>\r
+ <!-- Transaction messages filter - accept audit messages -->\r
+ <filter class="ch.qos.logback.core.filter.EvaluatorFilter">\r
+ <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">\r
+ <marker>TRANSACTION_MARKER</marker>\r
+ </evaluator>\r
+ <onMismatch>DENY</onMismatch>\r
+ <onMatch>ACCEPT</onMatch>\r
+ </filter>\r
+ <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">\r
+ <fileNamePattern>${logDirectory}/${transactionLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>\r
+ <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">\r
+ <maxFileSize>${maxFileSize}</maxFileSize>\r
+ </timeBasedFileNamingAndTriggeringPolicy>\r
+ <maxHistory>${maxHistory}</maxHistory>\r
+ <totalSizeCap>${totalSizeCap}</totalSizeCap>\r
+ </rollingPolicy>\r
+ <encoder>\r
+ <pattern>${pattern}</pattern>\r
+ </encoder>\r
+ </appender>\r
+ <!-- Asynchronicity Configurations -->\r
+ <appender class="ch.qos.logback.classic.AsyncAppender" name="ASYNC_DEBUG">\r
+ <queueSize>${queueSize}</queueSize>\r
+ <appender-ref ref="DEBUG_ROLLING" />\r
+ </appender>\r
+ <appender class="ch.qos.logback.classic.AsyncAppender" name="ASYNC_TRANSACTION">\r
+ <queueSize>${queueSize}</queueSize>\r
+ <appender-ref ref="TRANSACTION_ROLLING" />\r
+ </appender>\r
+ <appender class="ch.qos.logback.classic.AsyncAppender" name="ASYNC_ERROR">\r
+ <queueSize>${queueSize}</queueSize>\r
+ <appender-ref ref="ERROR_ROLLING" />\r
+ </appender>\r
+ <appender class="ch.qos.logback.classic.AsyncAppender" name="ASYNC_AUDIT">\r
+ <queueSize>${queueSize}</queueSize>\r
+ <appender-ref ref="AUDIT_ROLLING" />\r
+ </appender>\r
+ <root level="INFO">\r
+ <appender-ref ref="ASYNC_ERROR" />\r
+ <appender-ref ref="ASYNC_DEBUG" />\r
+ <appender-ref ref="ASYNC_AUDIT" />\r
+ <appender-ref ref="ASYNC_TRANSACTION" />\r
+ <if condition='property("enable-all-log").equalsIgnoreCase("true")'>\r
+ <then>\r
+ <appender-ref ref="ALL_ROLLING" />\r
+ </then>\r
+ </if>\r
+ </root>\r
+ <logger level="INFO" name="org.openecomp.sdc" />\r
+</configuration>
\ No newline at end of file
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 }}
--- /dev/null
+# 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
--- /dev/null
+# 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
--- /dev/null
+# 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
--- /dev/null
+{{/*
+# 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 -}}
--- /dev/null
+{{/*
+# 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 -}}
--- /dev/null
+# 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 }}
--- /dev/null
+# 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
# 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
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 }}
apiVersion: v1
kind: Service
metadata:
- name: {{ include "common.fullname" . }}
+ name: {{ include "common.servicename" . }}
namespace: {{ include "common.namespace" . }}
labels:
app: {{ include "common.name" . }}
ports:
- port: {{ .Values.service.internalPort }}
nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
selector:
app: {{ include "common.name" . }}
release: {{ .Release.Name }}
service:
type: NodePort
name: sdc-wfd
+ portName: sdc-wfd
nodePort: "56"
internalPort: 8080
"default_attributes": {
"disableHttp": false,
- "CS_VIP": "{{.Release.Name}}-sdc-cs.{{include "common.namespace" .}}",
- "BE_VIP": "{{.Release.Name}}-sdc-be.{{include "common.namespace" .}}",
- "FE_VIP": "{{.Release.Name}}-sdc-fe.{{include "common.namespace" .}}",
- "ES_VIP": "{{.Release.Name}}-sdc-es.{{include "common.namespace" .}}",
- "KB_VIP": "{{.Release.Name}}-sdc-kb.{{include "common.namespace" .}}",
+ "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"
},
"ECompP": {
- "ecomp_rest_url": "http://{{.Release.Name}}-portalapps.{{include "common.namespace" .}}:8989/ONAPPORTAL/auxapi",
- "ueb_url_list": "{{.Release.Name}}-dmaap.{{include "common.namespace" .}}, {{.Release.Name}}-dmaap.{{include "common.namespace" .}}",
+ "ecomp_rest_url": "http://portal-app.{{include "common.namespace" .}}:8989/ONAPPORTAL/auxapi",
+ "ueb_url_list": "message-router.{{include "common.namespace" .}}, message-router.{{include "common.namespace" .}}",
"app_secret": "XftIATw9Jr3VzAcPqt3NnJOu",
"app_key": "x9UfO7JsDn8BESVX",
"inbox_name": "ECOMP-PORTAL-INBOX",
- "ecomp_redirect_url": "http://{{.Release.Name}}-portalapps.{{include "common.namespace" .}}:8989/ONAPPORTAL/login.htm",
+ "ecomp_redirect_url": "http://portal-app.{{include "common.namespace" .}}:8989/ONAPPORTAL/login.htm",
"app_topic_name": "ECOMP-PORTAL-OUTBOX-SDC1",
"decryption_key": "AGLDdG4D04BKm2IxIWEr8o=="
},
"UEB": {
"PublicKey": "iPIxkpAMI8qTcQj8",
"SecretKey": "Ehq3WyT4bkif4zwgEbvshGal",
- "fqdn": ["{{.Release.Name}}-dmaap.{{include "common.namespace" .}}", "{{.Release.Name}}-dmaap.{{include "common.namespace" .}}"]
+ "fqdn": [
+ "message-router.{{include "common.namespace" .}}",
+ "message-router.{{include "common.namespace" .}}"
+ ]
},
"Nodes": {
- "CS": "{{.Release.Name}}-sdc-cs.{{include "common.namespace" .}}",
- "BE": "{{.Release.Name}}-sdc-be.{{include "common.namespace" .}}",
- "FE": "{{.Release.Name}}-sdc-fe.{{include "common.namespace" .}}",
- "ES": "{{.Release.Name}}-sdc-es.{{include "common.namespace" .}}",
- "KB": "{{.Release.Name}}-sdc-kb.{{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" .}}"
+ ],
+ "KB": "sdc-kb.{{include "common.namespace" .}}"
},
"Plugins": {
"DCAE": {
"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",
"titan_connection_timeout": "10000"
}
}
-}
\ No newline at end of file
+}
name: {{ .Release.Name }}-sdc-filebeat-configmap
namespace: {{ include "common.namespace" . }}
data:
-{{ tpl (.Files.Glob "resources/config/log/filebeat/*").AsConfig . | indent 2 }}
\ No newline at end of file
+{{ tpl (.Files.Glob "resources/config/log/filebeat/*").AsConfig . | indent 2 }}
apiVersion: v1
kind: Secret
metadata:
- name: {{ include "common.fullname" . }}
+ name: {{ .Release.Name }}-sdc-cs-secrets
namespace: {{ include "common.namespace" . }}
labels:
app: {{ include "common.name" . }}
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 }}"
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
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
- {{ .Values.config.mysqlChartName }}
- --container-name
- {{ .Values.config.sdncChartName }}
+ - --container-name
+ - {{ .Values.config.msgRouterContainerName }}
env:
- name: NAMESPACE
valueFrom:
apiVersion: v1
kind: Service
metadata:
- name: {{ include "common.fullname" . }}
+ name: {{ include "common.servicename" . }}
namespace: {{ include "common.namespace" . }}
labels:
app: {{ include "common.name" . }}
dmaapPort: 3904
mysqlChartName: sdnc-dbhost
sdncChartName: sdnc
+ msgRouterContainerName: dmaap
configDir: /opt/onap/sdnc/data/properties
# default number of instances
ingress:
enabled: false
+service:
+ name: sdnc-dmaap-listener
+
resources: {}
#resources:
# limits:
apiVersion: v1
kind: Service
metadata:
- name: {{ include "common.fullname" . }}
+ name: {{ include "common.servicename" . }}
namespace: {{ include "common.namespace" . }}
labels:
app: {{ include "common.name" . }}
{{if eq .Values.service.type "NodePort" -}}
- port: {{ .Values.service.externalPort }}
nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
{{- else -}}
- port: {{ .Values.service.externalPort }}
targetPort: {{ .Values.service.internalPort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
{{- end}}
selector:
app: {{ include "common.name" . }}
- release: {{ .Release.Name }}
\ No newline at end of file
+ release: {{ .Release.Name }}
service:
type: NodePort
name: sdnc-portal
+ portName: sdnc-portal
internalPort: 8843
externalPort: 8843
nodePort: "01"
--- /dev/null
+###
+# ============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
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}}
- {{ .Values.config.mysqlChartName }}
- --container-name
- {{ .Values.config.sdncChartName }}
+ - --container-name
+ - {{ .Values.config.sdcbeChartName }}
+ - --container-name
+ - {{ .Values.config.msgRouterContainerName }}
env:
- name: NAMESPACE
valueFrom:
apiVersion: v1
kind: Service
metadata:
- name: {{ include "common.fullname" . }}
+ name: {{ include "common.servicename" . }}
namespace: {{ include "common.namespace" . }}
labels:
app: {{ include "common.name" . }}
uebPort: 3904
mysqlChartName: sdnc-dbhost
sdncChartName: sdnc
+ sdcbeChartName: sdc-be
+ msgRouterContainerName: dmaap
configDir: /opt/onap/sdnc/data/properties
initialDelaySeconds: 10
periodSeconds: 10
+service:
+ name: sdnc-ueb-listener
+
+mysql:
+ service:
+ name: sdnc-dbhost
+ internalPort: 3306
+
ingress:
enabled: false
hm=$(hostname)
echo "Get current Hostname ${hm}"
- node=($(echo ${hm} | tr '-' '\n'))
- node_name=${node[0]}
- node_index=${node[1]}
+ node=($(echo ${hm} | sed 's/-[0-9]*$//g'))
+ node_index=($(echo ${hm} | awk -F"-" '{print $NF}'))
+ member_offset=1
if [ -z $PEER_ODL_CLUSTER ]; then
echo "This is a local cluster"
- node_list="${node_name}-0.{{.Values.service.name}}-cluster.{{.Release.Namespace}}";
+ node_list="${node}-0.{{.Values.service.name}}-cluster.{{.Release.Namespace}}";
for ((i=1;i<${SDNC_REPLICAS};i++));
do
- node_list="${node_list} ${node_name}-$i.{{.Values.service.name}}-cluster.{{.Release.Namespace}}"
+ node_list="${node_list} ${node}-$i.{{.Values.service.name}}-cluster.{{.Release.Namespace}}"
done
/opt/opendaylight/current/bin/configure_cluster.sh $((node_index+1)) ${node_list}
else
ODL_HOME=${ODL_HOME:-/opt/opendaylight/current}
ODL_ADMIN_PASSWORD=${ODL_ADMIN_PASSWORD:-Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U}
SDNC_HOME=${SDNC_HOME:-/opt/onap/sdnc}
+CCSDK_HOME=${CCSDK_HOME:-/opt/onap/ccsdk}
SLEEP_TIME=${SLEEP_TIME:-120}
MYSQL_PASSWD=${MYSQL_PASSWD:-{{.Values.config.dbRootPassword}}}
ENABLE_ODL_CLUSTER=${ENABLE_ODL_CLUSTER:-false}
echo "Installing SDN-C keyStore"
${SDNC_HOME}/bin/addSdncKeyStore.sh
echo "Starting OpenDaylight"
+ ${CCSDK_HOME}/bin/installOdlHostKey.sh
${ODL_HOME}/bin/start
echo "Waiting ${SLEEP_TIME} seconds for OpenDaylight to initialize"
sleep ${SLEEP_TIME}
# ============LICENSE_END=========================================================
###
-# dblib.properrties
+# dblib.properties
org.onap.ccsdk.sli.dbtype=jdbc
org.onap.ccsdk.sli.jdbc.hosts=sdnctldb01
--- /dev/null
+{{/*
+# Copyright © 2018 Amdocs, AT&T, Bell Canada
+# #
+# # Licensed under the Apache License, Version 2.0 (the "License");
+# # you may not use this file except in compliance with the License.
+# # You may obtain a copy of the License at
+# #
+# # http://www.apache.org/licenses/LICENSE-2.0
+# #
+# # Unless required by applicable law or agreed to in writing, software
+# # distributed under the License is distributed on an "AS IS" BASIS,
+# # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# # See the License for the specific language governing permissions and
+# # limitations under the License.
+*/}}
+{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}}
+{{ $pvNum := default 1 .Values.replicaCount | int }}
+kind: PersistentVolume
+apiVersion: v1
+metadata:
+ name: {{ include "common.fullname" . }}-data0
+ namespace: {{ include "common.namespace" . }}
+ labels:
+ app: {{ include "common.fullname" . }}
+ chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
+ release: "{{ .Release.Name }}"
+ heritage: "{{ .Release.Service }}"
+ name: {{ include "common.fullname" . }}
+spec:
+ capacity:
+ storage: {{ .Values.persistence.size}}
+ accessModes:
+ - {{ .Values.persistence.accessMode }}
+ storageClassName: "{{ include "common.fullname" . }}-data"
+ persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
+ hostPath:
+ path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }}0
+{{ if gt $pvNum 1 }}
+---
+kind: PersistentVolume
+apiVersion: v1
+metadata:
+ name: {{ include "common.fullname" . }}-data1
+ namespace: {{ include "common.namespace" . }}
+ labels:
+ app: {{ include "common.fullname" . }}
+ chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
+ release: "{{ .Release.Name }}"
+ heritage: "{{ .Release.Service }}"
+ name: {{ include "common.fullname" . }}
+spec:
+ capacity:
+ storage: {{ .Values.persistence.size}}
+ accessModes:
+ - {{ .Values.persistence.accessMode }}
+ storageClassName: "{{ include "common.fullname" . }}-data"
+ persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
+ hostPath:
+ path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }}1
+{{ end }}
+{{ if gt $pvNum 2 }}
+---
+kind: PersistentVolume
+apiVersion: v1
+metadata:
+ name: {{ include "common.fullname" . }}-data2
+ namespace: {{ include "common.namespace" . }}
+ labels:
+ app: {{ include "common.fullname" . }}
+ chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
+ release: "{{ .Release.Name }}"
+ heritage: "{{ .Release.Service }}"
+ name: {{ include "common.fullname" . }}
+spec:
+ capacity:
+ storage: {{ .Values.persistence.size}}
+ accessModes:
+ - {{ .Values.persistence.accessMode }}
+ storageClassName: "{{ include "common.fullname" . }}-data"
+ persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
+ hostPath:
+ path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }}2
+{{ end }}
+{{- end -}}
\ No newline at end of file
apiVersion: v1
kind: Service
metadata:
- name: {{ include "common.fullname" . }}
+ name: {{ include "common.servicename" . }}
namespace: {{ include "common.namespace" . }}
labels:
app: {{ include "common.name" . }}
- port: {{ .Values.service.externalPort }}
targetPort: {{ .Values.service.internalPort }}
nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
- name: "{{ .Values.service.name }}-8282"
+ name: "{{ .Values.service.portName }}-8282"
- port: {{ .Values.service.externalPort2 }}
targetPort: {{ .Values.service.internalPort2 }}
nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort2 }}
- name: "{{ .Values.service.name }}-8202"
+ name: "{{ .Values.service.portName }}-8202"
- port: {{ .Values.service.externalPort3 }}
targetPort: {{ .Values.service.internalPort3 }}
nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort3 }}
- name: "{{ .Values.service.name }}-8280"
+ name: "{{ .Values.service.portName }}-8280"
{{- else -}}
- port: {{ .Values.service.externalPort }}
targetPort: {{ .Values.service.internalPort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
{{- end}}
selector:
app: {{ include "common.name" . }}
apiVersion: v1
kind: Service
metadata:
- name: {{ .Values.service.name }}-cluster
+ name: {{ .Values.service.portName }}-cluster
namespace: {{ include "common.namespace" . }}
labels:
app: {{ include "common.name" . }}
service.alpha.kubernetes.io/tolerate-unready-endpoints: "true"
spec:
ports:
- - name: "{{ .Values.service.name }}-cluster-port"
+ - name: "{{ .Values.service.portName }}-cluster-port"
port: {{ .Values.service.clusterPort }}
clusterIP: None
selector:
apiVersion: v1
kind: Service
metadata:
- name: sdnhost-{{ include "common.fullname" . }}-0
+ name: sdnhost-{{ include "common.servicename" . }}-0
namespace: {{ .Release.Namespace }}
labels:
statefulset.kubernetes.io/pod-name: {{ include "common.fullname" . }}-0
spec:
ports:
- - name: {{ include "common.fullname" . }}-0-port-{{ .Values.service.internalPort4 }}
+ - name: {{ .Values.service.portName }}-0-port-{{ .Values.service.internalPort4 }}
port: {{ .Values.service.clusterPort2 }}
targetPort: {{ .Values.service.internalPort4 }}
nodePort: {{ .Values.nodePortPrefix }}{{ .Values.service.geoNodePort4 }}
- - name: {{ include "common.fullname" . }}-0-port-{{ .Values.service.internalPort }}
+ - name: {{ .Values.service.portName }}-0-port-{{ .Values.service.internalPort }}
port: {{ .Values.service.clusterPort3 }}
targetPort: {{ .Values.service.internalPort }}
nodePort: {{ .Values.nodePortPrefix }}{{ .Values.service.geoNodePort1 }}
apiVersion: v1
kind: Service
metadata:
- name: sdnhost-{{ include "common.fullname" . }}-1
+ name: sdnhost-{{ include "common.servicename" . }}-1
namespace: {{ .Release.Namespace }}
labels:
statefulset.kubernetes.io/pod-name: {{ include "common.fullname" . }}-1
spec:
ports:
- - name: {{ include "common.fullname" . }}-1-port-{{ .Values.service.internalPort4 }}
+ - name: {{ .Values.service.portName }}-1-port-{{ .Values.service.internalPort4 }}
port: {{ .Values.service.clusterPort2 }}
targetPort: {{ .Values.service.internalPort4 }}
nodePort: {{ .Values.nodePortPrefix }}{{ .Values.service.geoNodePort5 }}
- - name: {{ include "common.fullname" . }}-1-port-{{ .Values.service.internalPort }}
+ - name: {{ .Values.service.portName }}-1-port-{{ .Values.service.internalPort }}
port: {{ .Values.service.clusterPort3 }}
targetPort: {{ .Values.service.internalPort }}
nodePort: {{ .Values.nodePortPrefix }}{{ .Values.service.geoNodePort2 }}
apiVersion: v1
kind: Service
metadata:
- name: sdnhost-{{ include "common.fullname" . }}-2
+ name: sdnhost-{{ include "common.servicename" . }}-2
namespace: {{ .Release.Namespace }}
labels:
statefulset.kubernetes.io/pod-name: {{ include "common.fullname" . }}-2
spec:
ports:
- - name: {{ include "common.fullname" . }}-2-port-{{ .Values.service.internalPort4 }}
+ - name: {{ .Values.service.portName }}-2-port-{{ .Values.service.internalPort4 }}
port: {{ .Values.service.clusterPort2 }}
targetPort: {{ .Values.service.internalPort4 }}
nodePort: {{ .Values.nodePortPrefix }}{{ .Values.service.geoNodePort6 }}
- - name: {{ include "common.fullname" . }}-2-port-{{ .Values.service.internalPort }}
+ - name: {{ .Values.service.portName }}-2-port-{{ .Values.service.internalPort }}
port: {{ .Values.service.clusterPort3 }}
targetPort: {{ .Values.service.internalPort }}
nodePort: {{ .Values.nodePortPrefix }}{{ .Values.service.geoNodePort3 }}
type: NodePort
selector:
statefulset.kubernetes.io/pod-name: {{ include "common.fullname" . }}-2
----
{{ end }}
-
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
spec:
- serviceName: "{{ .Values.service.name }}-cluster"
+ serviceName: {{ include "common.servicename" . }}-cluster
replicas: {{ .Values.replicaCount }}
podManagementPolicy: Parallel
template:
- mountPath: /opt/onap/sdnc/svclogic/config/svclogic.properties
name: onap-sdnc-svclogic-config
subPath: svclogic.properties
+ - mountPath: {{ .Values.persistence.mdsalPath }}
+ name: {{ include "common.fullname" . }}-data
- mountPath: /var/log/onap
name: logs
resources:
name: logs
- mountPath: /usr/share/filebeat/data
name: data-filebeat
+ imagePullSecrets:
+ - name: "{{ include "common.namespace" . }}-docker-registry-key"
volumes:
- name: localtime
hostPath:
- key: svclogic.properties
path: svclogic.properties
mode: 0644
-
- imagePullSecrets:
- - name: "{{ include "common.namespace" . }}-docker-registry-key"
+ {{ if not .Values.persistence.enabled }}
+ - name: {{ include "common.fullname" . }}-data
+ emptyDir: {}
+ {{ else }}
+ volumeClaimTemplates:
+ - metadata:
+ name: {{ include "common.fullname" . }}-data
+ labels:
+ name: {{ include "common.fullname" . }}
+ spec:
+ accessModes: [ {{ .Values.persistence.accessMode }} ]
+ storageClassName: {{ include "common.fullname" . }}-data
+ resources:
+ requests:
+ storage: {{ .Values.persistence.size }}
+ {{ end }}
\ No newline at end of file
dbServiceName: sdnc-dbhost
dbRootPassword: openECOMP1.0
service:
+ name: sdnc-dgbuilder
nodePort: "03"
# default number of instances
service:
type: NodePort
name: sdnc
- #targetPort
+ portName: sdnc
internalPort: 8181
internalPort2: 8101
internalPort3: 8080
geoNodePort5: 65
geoNodePort6: 66
+## Persist data to a persitent volume
+persistence:
+ enabled: true
+
+ ## A manually managed Persistent Volume and Claim
+ ## Requires persistence.enabled: true
+ ## If defined, PVC must be created manually before volume will be bound
+ # existingClaim:
+ volumeReclaimPolicy: Retain
+
+ ## database data Persistent Volume Storage Class
+ ## If defined, storageClassName: <storageClass>
+ ## If set to "-", storageClassName: "", which disables dynamic provisioning
+ ## If undefined (the default) or set to null, no storageClassName spec is
+ ## set, choosing the default provisioner. (gp2 on AWS, standard on
+ ## GKE, AWS & OpenStack)
+ accessMode: ReadWriteOnce
+ size: 1Gi
+ mountPath: /dockerdata-nfs
+ mountSubPath: sdnc/mdsal
+ mdsalPath: /opt/opendaylight/current/daexim
+
ingress:
enabled: false
apiVersion: v1
kind: Service
metadata:
- name: {{ include "common.fullname" . }}
+ name: {{ include "common.servicename" . }}
namespace: {{ include "common.namespace" . }}
labels:
app: {{ include "common.name" . }}
{{if eq .Values.service.type "NodePort" -}}
- port: {{ .Values.service.internalPort }}
nodePort: {{ .Values.global.uuiPortPrefix | default .Values.uuiPortPrefix }}{{ .Values.service.nodePort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
{{- else -}}
- port: {{ .Values.service.externalPort }}
targetPort: {{ .Values.service.internalPort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
{{- end}}
selector:
app: {{ include "common.name" . }}
service:
type: NodePort
- name: uui
+ name: uui-server
+ portName: uui-server
internalPort: 8082
nodePort: 99
apiVersion: v1
kind: Service
metadata:
- name: {{ include "common.fullname" . }}
+ name: {{ include "common.servicename" . }}
namespace: {{ include "common.namespace" . }}
labels:
app: {{ include "common.name" . }}
{{if eq .Values.service.type "NodePort" -}}
- port: {{ .Values.service.internalPort }}
nodePort: {{ .Values.global.uuiPortPrefix | default .Values.uuiPortPrefix }}{{ .Values.service.nodePort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
{{- else -}}
- port: {{ .Values.service.externalPort }}
targetPort: {{ .Values.service.internalPort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
{{- end}}
selector:
app: {{ include "common.name" . }}
service:
type: NodePort
name: uui
+ portName: uui
internalPort: 8080
nodePort: 98
apiVersion: v1
kind: Service
metadata:
- name: {{ include "common.fullname" . }}
+ name: {{ include "common.servicename" . }}
namespace: {{ include "common.namespace" . }}
labels:
app: {{ include "common.name" . }}
- port: {{ .Values.service.externalPort }}
targetPort: {{ .Values.service.internalPort }}
nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
{{- else -}}
- port: {{ .Values.service.externalPort }}
targetPort: {{ .Values.service.internalPort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
{{- end}}
selector:
app: {{ include "common.name" . }}
- release: {{ .Release.Name }}
\ No newline at end of file
+ release: {{ .Release.Name }}
service:
type: ClusterIP
name: vfc-catalog
+ portName: vfc-catalog
externalPort: 8806
internalPort: 8806
# nodePort: 30806
env:
- name: MSB_ADDR
value: "{{ .Values.global.config.msbServiceName }}:{{ .Values.global.config.msbPort }}"
+ - name: VES_ADDR
+ value: "{{ .Values.config.vescollectorServiceName }}:{{ .Values.config.vescollectorPort }}"
+ - name: VES_AUTHINFO
+ value: "{{ .Values.config.vescollectorUser }}:{{ .Values.config.vescollectorPassword }}"
resources:
{{ toYaml .Values.resources | indent 12 }}
{{- if .Values.nodeSelector }}
apiVersion: v1
kind: Service
metadata:
- name: {{ include "common.fullname" . }}
+ name: {{ include "common.servicename" . }}
namespace: {{ include "common.namespace" . }}
labels:
app: {{ include "common.name" . }}
- port: {{ .Values.service.externalPort }}
targetPort: {{ .Values.service.internalPort }}
nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
{{- else -}}
- port: {{ .Values.service.externalPort }}
targetPort: {{ .Values.service.internalPort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
{{- end}}
selector:
app: {{ include "common.name" . }}
- release: {{ .Release.Name }}
\ No newline at end of file
+ release: {{ .Release.Name }}
debugEnabled: false
# application configuration
-config: {}
+config:
+ vescollectorServiceName: dcae-ves-collector
+ vescollectorPort: 8080
+ vescollectorUser: ""
+ vescollectorPassword: ""
# default number of instances
replicaCount: 1
service:
type: ClusterIP
name: vfc-ems-driver
+ portName: vfc-ems-driver
externalPort: 8206
internalPort: 8206
# nodePort: 30296
apiVersion: v1
kind: Service
metadata:
- name: {{ include "common.fullname" . }}
+ name: {{ include "common.servicename" . }}
namespace: {{ include "common.namespace" . }}
labels:
app: {{ include "common.name" . }}
- port: {{ .Values.service.externalPort }}
targetPort: {{ .Values.service.internalPort }}
nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
{{- else -}}
- port: {{ .Values.service.externalPort }}
targetPort: {{ .Values.service.internalPort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
{{- end}}
selector:
app: {{ include "common.name" . }}
- release: {{ .Release.Name }}
\ No newline at end of file
+ release: {{ .Release.Name }}
service:
type: ClusterIP
name: vfc-generic-vnfm-driver
+ portName: vfc-generic-vnfm-driver
externalPort: 8484
internalPort: 8484
# nodePort: 30484
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 .Values.liveness.enabled }}
apiVersion: v1
kind: Service
metadata:
- name: {{ include "common.fullname" . }}
+ name: {{ include "common.servicename" . }}
namespace: {{ include "common.namespace" . }}
labels:
app: {{ include "common.name" . }}
type: {{ .Values.service.type }}
ports:
{{if eq .Values.service.type "NodePort" -}}
- - name: {{ .Values.service.name }}
+ - name: {{ .Values.service.portName }}
port: {{ .Values.service.internalPort }}
targetPort: {{ .Values.service.internalPort }}
nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
- - name: {{ .Values.service.name }}2
+ - name: {{ .Values.service.portName }}2
port: {{ .Values.service.internalPort2 }}
targetPort: {{ .Values.service.internalPort2 }}
nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort2 }}
{{- else -}}
- port: {{ .Values.service.externalPort }}
targetPort: {{ .Values.service.internalPort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
- port: {{ .Values.service.externalPort2 }}
targetPort: {{ .Values.service.internalPort2 }}
- name: {{ .Values.service.name }}2
+ name: {{ .Values.service.portName }}2
{{- end}}
selector:
app: {{ include "common.name" . }}
- release: {{ .Release.Name }}
\ No newline at end of file
+ release: {{ .Release.Name }}
service:
type: ClusterIP
name: vfc-huawei-vnfm-driver
+ portName: vfc-huawei-vnfm-driver
externalPort: 8482
internalPort: 8482
externalPort2: 8483
apiVersion: v1
kind: Service
metadata:
- name: {{ include "common.fullname" . }}
+ name: {{ include "common.servicename" . }}
namespace: {{ include "common.namespace" . }}
labels:
app: {{ include "common.name" . }}
- port: {{ .Values.service.externalPort }}
targetPort: {{ .Values.service.internalPort }}
nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
{{- else -}}
- port: {{ .Values.service.externalPort }}
targetPort: {{ .Values.service.internalPort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
{{- end}}
selector:
app: {{ include "common.name" . }}
- release: {{ .Release.Name }}
\ No newline at end of file
+ release: {{ .Release.Name }}
service:
type: ClusterIP
name: vfc-juju-vnfm-driver
+ portName: vfc-juju-vnfm-driver
externalPort: 8483
internalPort: 8483
# nodePort: 30483
apiVersion: v1
kind: Service
metadata:
- name: {{ include "common.fullname" . }}
+ name: {{ include "common.servicename" . }}
namespace: {{ include "common.namespace" . }}
labels:
app: {{ include "common.name" . }}
- port: {{ .Values.service.externalPort }}
targetPort: {{ .Values.service.internalPort }}
nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
{{- else -}}
- port: {{ .Values.service.externalPort }}
targetPort: {{ .Values.service.internalPort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
{{- end}}
selector:
app: {{ include "common.name" . }}
- release: {{ .Release.Name }}
\ No newline at end of file
+ release: {{ .Release.Name }}
service:
type: ClusterIP
name: vfc-multivim-proxy
+ portName: vfc-multivim-proxy
externalPort: 8481
internalPort: 8481
apiVersion: v1
kind: Service
metadata:
- name: {{ include "common.fullname" . }}
+ name: {{ include "common.servicename" . }}
namespace: {{ include "common.namespace" . }}
labels:
app: {{ include "common.name" . }}
- port: {{ .Values.service.externalPort }}
targetPort: {{ .Values.service.internalPort }}
nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
{{- else -}}
- port: {{ .Values.service.externalPort }}
targetPort: {{ .Values.service.internalPort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
{{- end}}
selector:
app: {{ include "common.name" . }}
- release: {{ .Release.Name }}
\ No newline at end of file
+ release: {{ .Release.Name }}
service:
type: ClusterIP
name: vfc-nokia-v2vnfm-driver
+ portName: vfc-nokia-v2vnfm-driver
externalPort: 8089
internalPort: 8089
# nodePort: 13
apiVersion: v1
kind: Service
metadata:
- name: {{ include "common.fullname" . }}
+ name: {{ include "common.servicename" . }}
namespace: {{ include "common.namespace" . }}
labels:
app: {{ include "common.name" . }}
- port: {{ .Values.service.externalPort }}
targetPort: {{ .Values.service.internalPort }}
nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
{{- else -}}
- port: {{ .Values.service.externalPort }}
targetPort: {{ .Values.service.internalPort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
{{- end}}
selector:
app: {{ include "common.name" . }}
- release: {{ .Release.Name }}
\ No newline at end of file
+ release: {{ .Release.Name }}
service:
type: ClusterIP
name: vfc-nokia-vnfm-driver
+ portName: vfc-nokia-vnfm-driver
externalPort: 8486
internalPort: 8486
# nodePort: 12
apiVersion: v1
kind: Service
metadata:
- name: {{ include "common.fullname" . }}
+ name: {{ include "common.servicename" . }}
namespace: {{ include "common.namespace" . }}
labels:
app: {{ include "common.name" . }}
- port: {{ .Values.service.externalPort }}
targetPort: {{ .Values.service.internalPort }}
nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
{{- else -}}
- port: {{ .Values.service.externalPort }}
targetPort: {{ .Values.service.internalPort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
{{- end}}
selector:
app: {{ include "common.name" . }}
- release: {{ .Release.Name }}
\ No newline at end of file
+ release: {{ .Release.Name }}
service:
type: ClusterIP
name: vfc-nslcm
+ portName: vfc-nslcm
externalPort: 8403
internalPort: 8403
# nodePort: 30403
apiVersion: v1
kind: Service
metadata:
- name: {{ include "common.fullname" . }}
+ name: {{ include "common.servicename" . }}
namespace: {{ include "common.namespace" . }}
labels:
app: {{ include "common.name" . }}
- port: {{ .Values.service.externalPort }}
targetPort: {{ .Values.service.internalPort }}
nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
{{- else -}}
- port: {{ .Values.service.externalPort }}
targetPort: {{ .Values.service.internalPort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
{{- end}}
selector:
app: {{ include "common.name" . }}
- release: {{ .Release.Name }}
\ No newline at end of file
+ release: {{ .Release.Name }}
service:
type: ClusterIP
name: vfc-resmgr
+ portName: vfc-resmgr
externalPort: 8480
internalPort: 8480
# nodePort: 30480
apiVersion: v1
kind: Service
metadata:
- name: {{ include "common.fullname" . }}
+ name: {{ include "common.servicename" . }}
namespace: {{ include "common.namespace" . }}
labels:
app: {{ include "common.name" . }}
- port: {{ .Values.service.externalPort }}
targetPort: {{ .Values.service.internalPort }}
nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
{{- else -}}
- port: {{ .Values.service.externalPort }}
targetPort: {{ .Values.service.internalPort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
{{- end}}
selector:
app: {{ include "common.name" . }}
- release: {{ .Release.Name }}
\ No newline at end of file
+ release: {{ .Release.Name }}
service:
type: ClusterIP
name: vfc-vnflcm
+ portName: vfc-vnflcm
externalPort: 8801
internalPort: 8801
# nodePort: 30801
apiVersion: v1
kind: Service
metadata:
- name: {{ include "common.fullname" . }}
+ name: {{ include "common.servicename" . }}
namespace: {{ include "common.namespace" . }}
labels:
app: {{ include "common.name" . }}
- port: {{ .Values.service.externalPort }}
targetPort: {{ .Values.service.internalPort }}
nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
{{- else -}}
- port: {{ .Values.service.externalPort }}
targetPort: {{ .Values.service.internalPort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
{{- end}}
selector:
app: {{ include "common.name" . }}
- release: {{ .Release.Name }}
\ No newline at end of file
+ release: {{ .Release.Name }}
service:
type: ClusterIP
name: vfc-vnfmgr
+ portName: vfc-vnfmgr
externalPort: 8803
internalPort: 8803
# nodePort: 30803
apiVersion: v1
kind: Service
metadata:
- name: {{ include "common.fullname" . }}
+ name: {{ include "common.servicename" . }}
namespace: {{ include "common.namespace" . }}
labels:
app: {{ include "common.name" . }}
- port: {{ .Values.service.externalPort }}
targetPort: {{ .Values.service.internalPort }}
nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
{{- else -}}
- port: {{ .Values.service.externalPort }}
targetPort: {{ .Values.service.internalPort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
{{- end}}
selector:
app: {{ include "common.name" . }}
- release: {{ .Release.Name }}
\ No newline at end of file
+ release: {{ .Release.Name }}
service:
type: ClusterIP
name: vfc-vnfres
+ portName: vfc-vnfres
externalPort: 8802
internalPort: 8802
# nodePort: 30802
apiVersion: v1
kind: Service
metadata:
- name: {{ include "common.fullname" . }}
+ name: {{ include "common.servicename" . }}
namespace: {{ include "common.namespace" . }}
labels:
app: {{ include "common.name" . }}
- port: {{ .Values.service.externalPort }}
targetPort: {{ .Values.service.internalPort }}
nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
{{- else -}}
- port: {{ .Values.service.externalPort }}
targetPort: {{ .Values.service.internalPort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
{{- end}}
selector:
app: {{ include "common.name" . }}
- release: {{ .Release.Name }}
\ No newline at end of file
+ release: {{ .Release.Name }}
service:
type: ClusterIP
name: vfc-workflow-engine
+ portName: vfc-workflow-engine
externalPort: 8080
internalPort: 8080
# nodePort: 30807
apiVersion: v1
kind: Service
metadata:
- name: {{ include "common.fullname" . }}
+ name: {{ include "common.servicename" . }}
namespace: {{ include "common.namespace" . }}
labels:
app: {{ include "common.name" . }}
- port: {{ .Values.service.externalPort }}
targetPort: {{ .Values.service.internalPort }}
nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
{{- else -}}
- port: {{ .Values.service.externalPort }}
targetPort: {{ .Values.service.internalPort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
{{- end}}
selector:
app: {{ include "common.name" . }}
- release: {{ .Release.Name }}
\ No newline at end of file
+ release: {{ .Release.Name }}
service:
type: ClusterIP
name: vfc-workflow
+ portName: vfc-workflow
externalPort: 10550
internalPort: 10550
# nodePort: 30805
apiVersion: v1
kind: Service
metadata:
- name: {{ include "common.fullname" . }}
+ name: {{ include "common.servicename" . }}
namespace: {{ include "common.namespace" . }}
labels:
app: {{ include "common.name" . }}
- port: {{ .Values.service.externalPort }}
targetPort: {{ .Values.service.internalPort }}
nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
{{- else -}}
- port: {{ .Values.service.externalPort }}
targetPort: {{ .Values.service.internalPort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
{{- end}}
selector:
app: {{ include "common.name" . }}
- release: {{ .Release.Name }}
\ No newline at end of file
+ release: {{ .Release.Name }}
service:
type: ClusterIP
name: vfc-zte-sdnc-driver
+ portName: vfc-zte-sdnc-drive
externalPort: 8411
internalPort: 8411
# nodePort: 30411
apiVersion: v1
kind: Service
metadata:
- name: {{ include "common.fullname" . }}
+ name: {{ include "common.servicename" . }}
namespace: {{ include "common.namespace" . }}
labels:
app: {{ include "common.name" . }}
- port: {{ .Values.service.externalPort }}
targetPort: {{ .Values.service.internalPort }}
nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
{{- else -}}
- port: {{ .Values.service.externalPort }}
targetPort: {{ .Values.service.internalPort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
{{- end}}
selector:
app: {{ include "common.name" . }}
- release: {{ .Release.Name }}
\ No newline at end of file
+ release: {{ .Release.Name }}
service:
type: ClusterIP
name: vfc-zte-vnfm-driver
+ portName: vfc-zte-vnfm-driver
externalPort: 8410
internalPort: 8410
#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: ["logstash.{{.Values.nsPrefix}}:5044"]
- hosts: ["{{.Release.Name}}-{{.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
apiVersion: v1
kind: Service
metadata:
- name: {{ include "common.fullname" . }}
+ name: {{ include "common.servicename" . }}
namespace: {{ include "common.namespace" . }}
labels:
app: {{ include "common.name" . }}
spec:
ports:
- port: {{ .Values.service.internalPort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
selector:
app: {{ include "common.name" . }}
release: {{ .Release.Name }}
mountSubPath: vid/mariadb/data
service:
- name: mariadb
+ name: vid-mariadb
+ portName: vid-mariadb
internalPort: 3306
ingress:
- name: ASDC_CLIENT_REST_PORT
value: "{{ .Values.config.asdcclientrestport }}"
- name: VID_AAI_HOST
- value: aai-service.{{ include "common.namespace" . }}
+ value: aai.{{ include "common.namespace" . }}
- name: VID_AAI_PORT
value: "{{ .Values.config.vidaaiport }}"
- name: VID_ECOMP_SHARED_CONTEXT_REST_URL
- value: http://portalapps.{{ include "common.namespace" . }}:"{{ .Values.config.onapport }}"/ONAPPORTAL/context
+ value: http://portal-app.{{ include "common.namespace" . }}:{{ .Values.config.onapport }}/ONAPPORTAL/context
- name: VID_MSO_SERVER_URL
- value: http://mso.{{ include "common.namespace" . }}:"{{ .Values.config.msoport }}"
+ value: http://mso.{{ include "common.namespace" . }}:{{ .Values.config.msoport }}
- name: VID_MSO_PASS
value: "{{ .Values.config.vidmsopass }}"
- name: MSO_DME2_SERVER_URL
- name: MSO_DME2_ENABLED
value: {{ .Values.global.debugEnabled | default .Values.debugEnabled | quote }}
- name: VID_ECOMP_REDIRECT_URL
- value: http://portalapps.{{ include "common.namespace" . }}:"{{ .Values.config.onapport }}"/ONAPPORTAL/login.htm
+ value: http://portal-app.{{ include "common.namespace" . }}:{{ .Values.config.onapport }}/ONAPPORTAL/login.htm
- name: VID_ECOMP_REST_URL
- value: http://portalapps.{{ include "common.namespace" . }}:"{{ .Values.config.onapport }}"/ONAPPORTAL/auxapi
+ value: http://portal-app.{{ include "common.namespace" . }}:{{ .Values.config.onapport }}/ONAPPORTAL/auxapi
- name: VID_CONTACT_US_LINK
value: "{{ .Values.config.vidcontactuslink }}"
- name: VID_UEB_URL_LIST
- value: dmaap.{{ include "common.namespace" . }}
+ value: message-router.{{ include "common.namespace" . }}
- name: VID_MYSQL_HOST
- value: "{{ .Release.Name }}-{{ .Values.config.vidmysqlhost }}"
+ value: "{{ .Values.config.vidmysqlhost }}"
- name: VID_MYSQL_PORT
value: "{{ .Values.config.vidmysqlport }}"
- name: VID_MYSQL_DBNAME
apiVersion: v1
kind: Service
metadata:
- name: {{ include "common.fullname" . }}
+ name: {{ include "common.servicename" . }}
namespace: {{ include "common.namespace" . }}
labels:
app: {{ include "common.name" . }}
{{if eq .Values.service.type "NodePort" -}}
- port: {{ .Values.service.internalPort }}
nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
{{- else -}}
- port: {{ .Values.service.externalPort }}
targetPort: {{ .Values.service.internalPort }}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName }}
{{- end}}
selector:
app: {{ include "common.name" . }}
# application image
repository: nexus3.onap.org:10001
-image: openecomp/vid:v1.1.1
+image: onap/vid:1.2.1
pullPolicy: Always
# flag to enable debugging - application support required
service:
type: NodePort
name: vid
+ portName: vid
externalPort: "00"
nodePort: "00"
internalPort: 8080
# See the License for the specific language governing permissions and
# limitations under the License.
-apiVersion: batch/v1
-kind: Job
+apiVersion: extensions/v1beta1
+kind: Deployment
metadata:
- name: {{ include "common.fullname" . }}-config
+ name: {{ include "common.fullname" . }}
namespace: {{ include "common.namespace" . }}
labels:
- app: {{ include "common.name" . }}-job
+ app: {{ include "common.name" . }}
chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
spec:
+ replicas: {{ .Values.replicaCount }}
+ selector:
+ matchLabels:
+ app: {{ include "common.name" . }}
template:
metadata:
labels:
- app: {{ include "common.name" . }}-job
+ app: {{ include "common.name" . }}
release: {{ .Release.Name }}
+ name: {{ include "common.name" . }}
spec:
- restartPolicy: Never
- hostname: postgres
+ hostname: {{ include "common.name" . }}
containers:
- - name: {{ include "common.name" . }}-job
+ - args:
image: "{{ include "common.repository" . }}/{{ .Values.image }}"
imagePullPolicy: {{ .Values.pullPolicy | default .Values.global.pullPolicy }}
- env:
- - name: DB_HOST
- value: "{{ .Release.Name }}-{{ .Values.service.name }}"
+ name: {{ include "common.name" . }}
imagePullSecrets:
- name: "{{ include "common.namespace" . }}-docker-registry-key"
apiVersion: v1
kind: Service
metadata:
- name: {{ include "common.fullname" . }}
+ name: {{ include "common.servicename" . }}
namespace: {{ include "common.namespace" . }}
labels:
app: {{ include "common.name" . }}
- port: {{ .Values.service.externalPort }}
targetPort: {{ .Values.service.internalPort }}
{{- end}}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName | default "http" }}
selector:
app: {{ include "common.name" . }}
release: {{ .Release.Name }}
#################################################################
# application image
repository: nexus3.onap.org:10001
-image: onap/refrepo/postgres:latest
+image: onap/vnfsdk/refrepo/postgres:latest
pullPolicy: Always
# flag to enable debugging - application support required
service:
type: ClusterIP
- name: pgset
+ name: postgres
internalPort: 5432
externalPort: 5432
# a part of this chart's package and will not
# be published independently to a repo (at this point)
repository: '@local'
- - name: postgres
- version: ~2.0.0
- repository: '@local'
- /root/ready.py
args:
- --container-name
- - "{{ index .Values "vnfsdk-postgres" "nameOverride" }}"
+ - "{{ .Values.vnfsdkpostgres.nameOverride }}"
env:
- name: NAMESPACE
valueFrom:
apiVersion: v1
kind: Service
metadata:
- name: {{ include "common.fullname" . }}
+ name: {{ include "common.servicename" . }}
namespace: {{ include "common.namespace" . }}
labels:
app: {{ include "common.name" . }}
- port: {{ .Values.service.externalPort }}
targetPort: {{ .Values.service.internalPort }}
{{- end}}
- name: {{ .Values.service.name }}
+ name: {{ .Values.service.portName | default "http" }}
selector:
app: {{ include "common.name" . }}
release: {{ .Release.Name }}
#################################################################
# application image
repository: nexus3.onap.org:10001
-image: onap/refrepo:1.1-STAGING-latest
+image: onap/vnfsdk/refrepo:1.1-STAGING-latest
pullPolicy: Always
#subchart name
-vnfsdk-postgres:
- nameOverride: postgres
+vnfsdkpostgres:
+ nameOverride: vnfsdk-postgres
# flag to enable debugging - application support required
debugEnabled: false
service:
type: NodePort
name: refrepo
+ portName: refrepo
nodePort: 97
internalPort: 8702