diff options
92 files changed, 3580 insertions, 1822 deletions
diff --git a/docs/oom_user_guide.rst b/docs/oom_user_guide.rst index 5dd6b57889..6b0c00e25a 100644 --- a/docs/oom_user_guide.rst +++ b/docs/oom_user_guide.rst @@ -58,7 +58,7 @@ Install Kubectl ~~~~~~~~~~~~~~~ Enter the following to install kubectl (on Ubuntu, there are slight differences on other O/Ss), the Kubernetes command line interface used to manage a Kubernetes cluster:: - > curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.8.6/bin/linux/amd64/kubectl + > curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.8.10/bin/linux/amd64/kubectl > chmod +x ./kubectl > sudo mv ./kubectl /usr/local/bin/kubectl > mkdir ~/.kube diff --git a/kubernetes/aai/charts/aai-cassandra/.helmignore b/kubernetes/aai/charts/aai-cassandra/.helmignore new file mode 100644 index 0000000000..f0c1319444 --- /dev/null +++ b/kubernetes/aai/charts/aai-cassandra/.helmignore @@ -0,0 +1,21 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*~ +# Various IDEs +.project +.idea/ +*.tmproj diff --git a/kubernetes/aai/charts/aai-cassandra/Chart.yaml b/kubernetes/aai/charts/aai-cassandra/Chart.yaml new file mode 100644 index 0000000000..17694cbfff --- /dev/null +++ b/kubernetes/aai/charts/aai-cassandra/Chart.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +description: ONAP AAI Cassandra +name: aai-cassandra +version: 2.0.0 diff --git a/kubernetes/aai/charts/aai-cassandra/templates/service.yaml b/kubernetes/aai/charts/aai-cassandra/templates/service.yaml new file mode 100644 index 0000000000..a4557fe187 --- /dev/null +++ b/kubernetes/aai/charts/aai-cassandra/templates/service.yaml @@ -0,0 +1,27 @@ +apiVersion: v1 +kind: Service +metadata: + name: {{ template "common.fullname" . }} + namespace: {{ include "common.namespace" . }} + labels: + app: {{ template "common.fullname" . }} + chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" + release: "{{ .Release.Name }}" + heritage: "{{ .Release.Service }}" +spec: + clusterIP: None + type: {{ .Values.service.type }} + ports: + - name: cql + port: {{ default 9042 .Values.config.ports.cql }} + targetPort: {{ default 9042 .Values.config.ports.cql }} + - name: thrift + port: {{ default 9160 .Values.config.ports.thrift }} + targetPort: {{ default 9160 .Values.config.ports.thrift }} + {{- if .Values.config.ports.agent }} + - name: agent + port: {{ .Values.config.ports.agent }} + targetPort: {{ .Values.config.ports.agent }} + {{- end }} + selector: + app: {{ template "common.fullname" . }} diff --git a/kubernetes/aai/charts/aai-cassandra/templates/statefulset.yaml b/kubernetes/aai/charts/aai-cassandra/templates/statefulset.yaml new file mode 100644 index 0000000000..aa3482d293 --- /dev/null +++ b/kubernetes/aai/charts/aai-cassandra/templates/statefulset.yaml @@ -0,0 +1,115 @@ +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: + serviceName: {{ include "common.fullname" . }} + replicas: {{ .Values.replicaCount }} + podManagementPolicy: {{ .Values.podManagementPolicy }} + updateStrategy: + type: {{ .Values.updateStrategy.type }} + template: + metadata: + labels: + app: {{ include "common.name" . }} + release: {{ .Release.Name }} + name: {{ include "common.name" . }} + spec: + containers: + - name: {{ include "common.name" . }} + image: {{ .Values.image }} + imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + ports: + - containerPort: {{ .Values.service.internalPort }} + - containerPort: {{ .Values.service.internalPort2 }} + - containerPort: {{ .Values.service.internalPort3 }} + - containerPort: {{ .Values.service.internalPort4 }} + {{- if eq .Values.liveness.enabled true }} + livenessProbe: + exec: + command: + - /bin/bash + - -c + - nodetool status | grep $POD_IP | awk '$1!="UN" { exit 1; }' + initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }} + periodSeconds: {{ .Values.liveness.periodSeconds }} + {{ end -}} + readinessProbe: + exec: + command: + - /bin/bash + - -c + - nodetool status | grep $POD_IP | awk '$1!="UN" { exit 1; }' + initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }} + timeoutSeconds: {{ .Values.liveness.periodSeconds }} + lifecycle: + preStop: + exec: + command: ["/bin/sh", "-c", "PID=$(pidof java) && kill $PID && while ps -p $PID > /dev/null; do sleep 1; done"] + env: + {{- $seed_size := default 1 .Values.replicaCount | int -}} + {{- $global := . }} + - name: MAX_HEAP_SIZE + value: {{ .Values.config.heap.max }} + - name: HEAP_NEWSIZE + value: {{ .Values.config.heap.min }} + - name: CASSANDRA_SEEDS + value: "{{- range $i, $e := until $seed_size }}{{ template "common.fullname" $global }}-{{ $i }},{{- end }}" + - name: JVM_OPTS + value: {{ .Values.config.jvmOpts | quote }} + - name: CASSANDRA_CLUSTER_NAME + value: {{ .Values.config.clusterName | quote }} + - name: CASSANDRA_DC + value: {{ .Values.config.dataCenter | quote }} + - name: CASSANDRA_RACK + value: {{ .Values.config.rackName | quote }} + - name: CASSANDRA_AUTO_BOOTSTRAP + value: {{ .Values.config.autoBootstrap | quote }} + - name: POD_IP + valueFrom: + fieldRef: + fieldPath: status.podIP + volumeMounts: + - name: cassandra-data + mountPath: /var/lib/cassandra/data + resources: +{{ toYaml .Values.resources | indent 10 }} + {{- if .Values.nodeSelector }} + nodeSelector: +{{ toYaml .Values.nodeSelector | indent 8 }} + {{- end -}} + {{- if .Values.affinity }} + affinity: +{{ toYaml .Values.affinity | indent 8 }} + {{- end }} + volumes: + - name: localtime + hostPath: + path: /etc/localtime + {{- if not .Values.persistence.enabled }} + - name: cassandra-data + emptyDir: {} + {{- else }} + volumeClaimTemplates: + - metadata: + name: cassandra-data + labels: + app: {{ template "common.fullname" . }} + chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" + release: "{{ .Release.Name }}" + heritage: "{{ .Release.Service }}" + annotations: + volume.beta.kubernetes.io/storage-class: {{ .Values.persistence.storageClass }} + spec: + accessModes: + - {{ .Values.persistence.accessMode | quote }} + resources: + requests: + storage: {{ .Values.persistence.size | quote }} + {{- end }} diff --git a/kubernetes/aai/charts/aai-cassandra/templates/volumes.yaml b/kubernetes/aai/charts/aai-cassandra/templates/volumes.yaml new file mode 100644 index 0000000000..0e1a3dfc26 --- /dev/null +++ b/kubernetes/aai/charts/aai-cassandra/templates/volumes.yaml @@ -0,0 +1,25 @@ +#{{ if .Values.persistence.enabled }} +{{- $root := . -}} +{{ range $i, $e := until (atoi (quote $root.Values.replicaCount) | default 3) }} +--- +apiVersion: v1 +kind: PersistentVolume +metadata: + name: {{ $root.Values.service.name }}-{{ $i }} + namespace: {{ $root.Release.Namespace }} + labels: + type: {{ $root.Values.persistence.storageType }} + app: {{ $root.Values.service.name }} + chart: {{ $root.Chart.Name }}-{{ $root.Chart.Version | replace "+" "_" }} + release: {{ $root.Release.Name }} + heritage: {{ $root.Release.Service }} +spec: + capacity: + storage: {{ $root.Values.persistence.size }} + accessModes: + - {{ $root.Values.persistence.accessMode }} + hostPath: + path: {{ $root.Values.persistence.mountPath }}/{{ $root.Release.Name }}/{{ $root.Values.persistence.mountSubPath }}-{{ $i }} + persistentVolumeReclaimPolicy: {{ $root.Values.persistence.volumeReclaimPolicy }} +{{ end }} +#{{ end }}
\ No newline at end of file diff --git a/kubernetes/aai/charts/aai-cassandra/values.yaml b/kubernetes/aai/charts/aai-cassandra/values.yaml new file mode 100644 index 0000000000..884bc396a8 --- /dev/null +++ b/kubernetes/aai/charts/aai-cassandra/values.yaml @@ -0,0 +1,106 @@ +# Default values for cassandra. +# This is a YAML-formatted file. +# Declare variables to be passed into your templates. +global: # global defaults + nodePortPrefix: 302 + repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ== + + +# application image +dockerhubRepository: registry.hub.docker.com +image: cassandra:2.1 +pullPolicy: Always + +# application configuration +config: + heap: + max: 512M + min: 100M + jvmOpts: -Dcassandra.consistent.rangemovement=false + clusterName: aai-cluster + dataCenter: Pod lab + rackName: Rack1 + autoBootstrap: true + ports: + cql: 9042 + thrift: 9160 + # If a JVM Agent is in place + # agent: 61621 + +# default number of instances +replicaCount: 3 + +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 + +service: + type: ClusterIP + name: aai-cassandra + internalPort: 7000 + internalPort2: 7001 + internalPort3: 7199 + internalPort4: 9042 + +podManagementPolicy: OrderedReady +updateStrategy: + type: OnDelete + +ingress: + enabled: false + +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: + 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: ReadWriteOnce + size: 2Gi + mountPath: /dockerdata-nfs + mountSubPath: aai/cassandra + storageType: local + storageClass: "" + + +resources: {} + # We usually recommend not to specify default resources and to leave this as a conscious + # choice for the user. This also increases chances charts run on environments with little + # resources, such as Minikube. If you do want to specify resources, uncomment the following + # lines, adjust them as necessary, and remove the curly braces after 'resources:'. + # + # Example: + # Configure resource requests and limits + # ref: http://kubernetes.io/docs/user-guide/compute-resources/ + # Minimum memory for development is 2 CPU cores and 4GB memory + # Minimum memory for production is 4 CPU cores and 8GB memory +#resources: +# limits: +# cpu: 2 +# memory: 4Gi +# requests: +# cpu: 2 +# memory: 4Gi diff --git a/kubernetes/aai/charts/aai-champ/resources/config/dynamic/conf/champ-beans.xml b/kubernetes/aai/charts/aai-champ/resources/config/dynamic/conf/champ-beans.xml index f97ac16864..6a66811e8c 100644 --- a/kubernetes/aai/charts/aai-champ/resources/config/dynamic/conf/champ-beans.xml +++ b/kubernetes/aai/charts/aai-champ/resources/config/dynamic/conf/champ-beans.xml @@ -22,12 +22,17 @@ xsi:schemaLocation=" <entry key="champcore.event.stream.publisher" value-ref="champEventPublisher"/> <entry key="graph.name" value="aaigraph.dev"/> - <entry key="storage.backend" value="hbase"/> - <entry key="storage.hostname" value="aai-hbase.{{.Release.Namespace}}"/> + <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"/> + <entry key="storage.cassandra.replication-strategy-class" value="org.apache.cassandra.locator.SimpleStrategy"/> - <!-- Hbase Config --> - <entry key="storage.hbase.ext.hbase.zookeeper.property.clientPort" value="2181"/> - <entry key="storage.hbase.ext.zookeeper.znode.parent" value="/hbase"/> + {{- $seed_size := default 1 .Values.global.cassandra.replicas | int -}} + {{- $global := . }} + <entry key="storage.hostname" value="{{- range $i, $e := until $seed_size }}{{ $global.Release.Name }}-aai-cassandra-{{ $i }},{{- end }}"/> + <entry key="storage.port" value="9160"/> </util:map> <!-- Janus Implementation --> diff --git a/kubernetes/aai/charts/aai-champ/templates/deployment.yaml b/kubernetes/aai/charts/aai-champ/templates/deployment.yaml index ccb90213d9..7176d09aeb 100644 --- a/kubernetes/aai/charts/aai-champ/templates/deployment.yaml +++ b/kubernetes/aai/charts/aai-champ/templates/deployment.yaml @@ -30,6 +30,21 @@ spec: app: {{ include "common.name" . }} release: {{ .Release.Name }} spec: + initContainers: + - command: + - /root/ready.py + args: + - --container-name + - aai-resources + 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 }}" diff --git a/kubernetes/aai/charts/aai-data-router/values.yaml b/kubernetes/aai/charts/aai-data-router/values.yaml index 131bcd7e5c..faf34489a0 100644 --- a/kubernetes/aai/charts/aai-data-router/values.yaml +++ b/kubernetes/aai/charts/aai-data-router/values.yaml @@ -8,7 +8,7 @@ global: # global defaults # application image repository: nexus3.onap.org:10001 -image: onap/data-router:v1.1.0 +image: onap/data-router:1.2-STAGING-latest pullPolicy: Always restartPolicy: Always diff --git a/kubernetes/aai/charts/aai-modelloader/values.yaml b/kubernetes/aai/charts/aai-modelloader/values.yaml index f44d5247ab..db069d08c7 100644 --- a/kubernetes/aai/charts/aai-modelloader/values.yaml +++ b/kubernetes/aai/charts/aai-modelloader/values.yaml @@ -8,7 +8,7 @@ global: # global defaults # application image repository: nexus3.onap.org:10001 -image: onap/model-loader:v1.1.0 +image: onap/model-loader:1.2-STAGING-latest pullPolicy: Always restartPolicy: Always diff --git a/kubernetes/aai/charts/aai-resources/resources/config/aai_keystore b/kubernetes/aai/charts/aai-resources/resources/config/aai_keystore Binary files differnew file mode 100644 index 0000000000..1ddef0c9bd --- /dev/null +++ b/kubernetes/aai/charts/aai-resources/resources/config/aai_keystore diff --git a/kubernetes/aai/charts/aai-resources/resources/config/aaiconfig.properties b/kubernetes/aai/charts/aai-resources/resources/config/aaiconfig.properties new file mode 100644 index 0000000000..0258fc2066 --- /dev/null +++ b/kubernetes/aai/charts/aai-resources/resources/config/aaiconfig.properties @@ -0,0 +1,119 @@ +# +# ============LICENSE_START======================================================= +# org.onap.aai +# ================================================================================ +# Copyright © 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========================================================= +# +# ECOMP is a trademark and service mark of AT&T Intellectual Property. +# + +#################################################################### +# REMEMBER TO THINK ABOUT ENVIRONMENTAL DIFFERENCES AND CHANGE THE +# TEMPLATE AND *ALL* DATAFILES +#################################################################### + +#################################################################### +# REMEMBER TO THINK ABOUT ENVIRONMENTAL DIFFERENCES AND CHANGE THE +# TEMPLATE AND *ALL* DATAFILES +#################################################################### + +aai.config.checktime=1000 + +# this could come from siteconfig.pl? +aai.config.nodename=AutomaticallyOverwritten + + + +aai.auth.cspcookies_on=false +aai.dbmodel.filename=ex5.json + +aai.server.url.base=https://aai.{{ include "common.namespace" . }}:8443/aai/ +aai.server.url=https://aai.{{ include "common.namespace" . }}:8443/aai/v11/ +aai.global.callback.url=https://aai.{{ include "common.namespace" . }}:8443/aai/ + +aai.tools.enableBasicAuth=true +aai.tools.username=AAI +aai.tools.password=AAI + +aai.truststore.filename=aai_keystore +aai.truststore.passwd.x=OBF:1vn21ugu1saj1v9i1v941sar1ugw1vo0 +aai.keystore.filename=aai_keystore +aai.keystore.passwd.x=OBF:1vn21ugu1saj1v9i1v941sar1ugw1vo0 + + +aai.notification.current.version=v11 +aai.notificationEvent.default.status=UNPROCESSED +aai.notificationEvent.default.eventType=AAI-EVENT +aai.notificationEvent.default.domain=dev +aai.notificationEvent.default.sourceName=aai +aai.notificationEvent.default.sequenceNumber=0 +aai.notificationEvent.default.severity=NORMAL +aai.notificationEvent.default.version=v11 +# This one lets us enable/disable resource-version checking on updates/deletes +aai.resourceversion.enableflag=true +aai.logging.maxStackTraceEntries=10 +aai.default.api.version=v11 + + + +# Used by Model-processing code +aai.model.delete.sleep.per.vtx.msec=500 +aai.model.query.resultset.maxcount=50 +aai.model.query.timeout.sec=90 + +# Used by Data Grooming +aai.grooming.default.max.file=150 +aai.grooming.default.sleep.minutes=7 + +aai.model.proc.max.levels=50 +aai.edgeTag.proc.max.levels=50 + +# for transaction log +aai.logging.hbase.interceptor=true +aai.logging.hbase.enabled=true +aai.logging.hbase.logrequest=true +aai.logging.hbase.logresponse=true + +# for gremlin server +aai.server.rebind=g +hbase.table.name=aailogging.dev +hbase.table.timestamp.format=YYYYMMdd-HH:mm:ss:SSS +hbase.zookeeper.quorum=localhost +hbase.zookeeper.property.clientPort=2181 +hbase.zookeeper.znode.parent=/hbase + +aai.logging.trace.enabled=true +aai.logging.trace.logrequest=false +aai.logging.trace.logresponse=false + +aai.transaction.logging=true +aai.transaction.logging.get=false +aai.transaction.logging.post=false + +#timeout for crud enabled flag +aai.crud.timeoutenabled=true + +#timeout app specific -1 to bypass for that app id, a whole number to override the timeout with that value (in ms) +aai.crud.timeout.appspecific=JUNITTESTAPP1,1|JUNITTESTAPP2,-1|DCAE-CCS,-1|DCAES,-1|AAIRctFeed,-1|NewvceCreator,-1|IANewvceCreator,-1|AAI-CSIOVALS,-1 + +#default timeout limit added for crud if not overridden (in ms) +aai.crud.timeoutlimit=100000 +#limit set for bulk consumer APIS +aai.bulkconsumer.payloadlimit=30 + +#uncomment and use header X-OverrideLimit with the value to override the bulk api limit +#aai.bulkconsumer.payloadoverride=E6F04B93462CB5B0EDF41C05A9DDF5C3FE59748F +aai.bulkconsumer.payloadoverride=false diff --git a/kubernetes/aai/charts/aai-resources/resources/config/application.properties b/kubernetes/aai/charts/aai-resources/resources/config/application.properties new file mode 100644 index 0000000000..a65c04e4f0 --- /dev/null +++ b/kubernetes/aai/charts/aai-resources/resources/config/application.properties @@ -0,0 +1,72 @@ +# The following info parameters are being referenced by ajsc6 +info.build.artifact=aai-resources +info.build.name=resources +info.build.description=Resources Microservice +info.build.version=1.2.0 + +spring.application.name=aai-resources +spring.jersey.type=filter + +server.contextPath=/ +spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration,org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration + +spring.profiles.active=production,dmaap +#The max number of active threads in this pool +server.tomcat.max-threads=200 +#The minimum number of threads always kept alive +server.tomcat.min-Spare-Threads=25 +#The number of milliseconds before an idle thread shutsdown, unless the number of active threads are less or equal to minSpareThreads +server.tomcat.max-idle-time=60000 + + +#Add this properties only if you want to change the URL, AJSC Framework interceptors will intercept +#com.att.ajsc.common.interceptors.PreInterceptor.url=/** +#com.att.ajsc.common.interceptors.PostInterceptor.url=/** + +#Servlet context parameters +server.context_parameters.p-name=value #context parameter with p-name as key and value as value. +kubernetes.namespace={{ include "common.namespace" . }} + +# If you get an application startup failure that the port is already taken +# If thats not it, please check if the key-store file path makes sense +server.local.startpath=aai-resources/src/main/resources/ +server.basic.auth.location=${server.local.startpath}etc/auth/realm.properties + +server.port=8447 +server.ssl.enabled-protocols=TLSv1.1,TLSv1.2 +server.ssl.key-store=${server.local.startpath}etc/auth/aai_keystore +server.ssl.key-store-password=password(OBF:1vn21ugu1saj1v9i1v941sar1ugw1vo0) +server.ssl.trust-store=${server.local.startpath}etc/auth/aai_keystore +server.ssl.trust-store-password=password(OBF:1vn21ugu1saj1v9i1v941sar1ugw1vo0) +server.ssl.client-auth=want +server.ssl.key-store-type=JKS + +# JMS bind address host port +jms.bind.address=tcp://localhost:61647 +dmaap.ribbon.eureka.enabled=false +dmaap.ribbon.listOfServers=dmaap.{{ include "common.namespace" . }}:3904 +# Number of milliseconds to wait before making ping requests again +dmaap.ribbon.ServerListRefreshInterval=75000 +dmaap.ribbon.NFLoadBalancerPingInterval=75000 +dmaap.ribbon.NFLoadBalancerRuleClassName=com.netflix.loadbalancer.AvailabilityFilteringRule +dmaap.ribbon.NFLoadBalancerPingClassName=org.onap.aai.config.HttpPingImpl +dmaap.ribbon.EnableMarkingServerDownOnReachingFailureLimit=true +dmaap.ribbon.ServerDownFailureLimit=1 +# This needs to be verified but it seems that adding this property should automatically +# Make the dmaap client change the url from http to https depending on the server +dmaap.ribbon.securePorts=3905 + +# Custom Dmaap Specific Configuration +dmaap.ribbon.username= +dmaap.ribbon.password= +dmaap.ribbon.health.endpoint=/topics/AAI-EVENT +# Number of seconds to wait for the ping to work and might need to increase this if the pings are all failing +dmaap.ribbon.pingport.timeout=3 + +niws.loadbalancer.dmaap.filterCircuitTripped=true +niws.loadbalancer.dmaap.connectionFailureCountThreshold=3 +niws.loadbalancer.dmaap.circuitTripMaxTimeoutSeconds=180 +#dmaap.ribbon.retryableStatusCodes=404,503 +#dmaap.ribbon.retryableStatusCodes.MaxAutoRetriesNextServer=2 +#dmaap.ribbon.retryableStatusCodes.MaxAutoRetries=2 +#dmaap.ribbon.retryableStatusCodes.OkToRetryOnAllOperations=true diff --git a/kubernetes/aai/charts/aai-resources/resources/config/janusgraph-cached.properties b/kubernetes/aai/charts/aai-resources/resources/config/janusgraph-cached.properties new file mode 100644 index 0000000000..dd5c3eed66 --- /dev/null +++ b/kubernetes/aai/charts/aai-resources/resources/config/janusgraph-cached.properties @@ -0,0 +1,50 @@ +# +# ============LICENSE_START======================================================= +# org.onap.aai +# ================================================================================ +# Copyright © 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========================================================= +# +# ECOMP is a trademark and service mark of AT&T Intellectual Property. +# + +query.fast-property=true +query.smart-limit=false + +{{- $seed_size := default 1 .Values.global.cassandra.replicas | int -}} +{{- $global := . }} + +# the following parameters are not reloaded automatically and require a manual bounce +storage.backend=cassandra +storage.hostname={{- range $i, $e := until $seed_size }}{{ $global.Release.Name }}-aai-cassandra-{{ $i }},{{- end }} + +storage.cassandra.keyspace=aaigraph + +storage.cassandra.read-consistency-level=LOCAL_QUORUM +storage.cassandra.write-consistency-level=LOCAL_QUORUM +storage.cassandra.replication-factor=3 +storage.cassandra.replication-strategy-class=org.apache.cassandra.locator.SimpleStrategy +#storage.cassandra.replication-strategy-options=MTA1cass,3 + +#schema.default=none +storage.lock.wait-time=300 +#caching on +cache.db-cache = true +cache.db-cache-clean-wait = 20 +cache.db-cache-time = 180000 +cache.db-cache-size = 0.3 + +#load graphson file on startup +load.snapshot.file=false diff --git a/kubernetes/aai/charts/aai-resources/resources/config/janusgraph-realtime.properties b/kubernetes/aai/charts/aai-resources/resources/config/janusgraph-realtime.properties new file mode 100644 index 0000000000..875a8a5977 --- /dev/null +++ b/kubernetes/aai/charts/aai-resources/resources/config/janusgraph-realtime.properties @@ -0,0 +1,45 @@ +# +# ============LICENSE_START======================================================= +# Copyright © 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========================================================= +# +# ECOMP is a trademark and service mark of AT&T Intellectual Property. +# + +query.fast-property=true +query.smart-limit=false + +{{- $seed_size := default 1 .Values.global.cassandra.replicas | int -}} +{{- $global := . }} + +# the following parameters are not reloaded automatically and require a manual bounce +storage.backend=cassandra +storage.hostname={{- range $i, $e := until $seed_size }}{{ $global.Release.Name }}-aai-cassandra-{{ $i }},{{- end }} + +storage.cassandra.keyspace=aaigraph + +storage.cassandra.read-consistency-level=LOCAL_QUORUM +storage.cassandra.write-consistency-level=LOCAL_QUORUM +storage.cassandra.replication-factor=3 +storage.cassandra.replication-strategy-class=org.apache.cassandra.locator.SimpleStrategy +#storage.cassandra.replication-strategy-options=MTA1cass,3 + +#schema.default=none +storage.lock.wait-time=300 +# Setting db-cache to false ensure the fastest propagation of changes across servers +cache.db-cache = false + +#load graphson file on startup +load.snapshot.file=false diff --git a/kubernetes/aai/charts/aai-resources/resources/config/localhost-access-logback.xml b/kubernetes/aai/charts/aai-resources/resources/config/localhost-access-logback.xml new file mode 100644 index 0000000000..a318796c57 --- /dev/null +++ b/kubernetes/aai/charts/aai-resources/resources/config/localhost-access-logback.xml @@ -0,0 +1,62 @@ +<!-- + + ============LICENSE_START======================================================= + org.onap.aai + ================================================================================ + Copyright © 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========================================================= + + ECOMP is a trademark and service mark of AT&T Intellectual Property. + +--> +<configuration> + <property name="AJSC_HOME" value="${AJSC_HOME:-.}" /> + <appender name="ACCESS" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${AJSC_HOME}/logs/ajsc-jetty/localhost_access.log</file> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${AJSC_HOME}/logs/ajsc-jetty/localhost_access.log.%d{yyyy-MM-dd} + </fileNamePattern> + </rollingPolicy> + <encoder class="org.onap.aai.logging.CustomLogPatternLayoutEncoder"> + <Pattern>%a %u %z [%t] "%m %U%q" %s %b %y %i{X-TransactionId} %i{X-FromAppId} %i{X-Forwarded-For} %i{X-AAI-SSL-Client-CN} %i{X-AAI-SSL-Client-OU} %i{X-AAI-SSL-Client-O} %i{X-AAI-SSL-Client-L} %i{X-AAI-SSL-Client-ST} %i{X-AAI-SSL-Client-C} %i{X-AAI-SSL-Client-NotBefore} %i{X-AAI-SSL-Client-NotAfter} %i{X-AAI-SSL-Client-DN} %D</Pattern> + </encoder> + </appender> + <appender-ref ref="ACCESS" /> +</configuration> + +<!-- +%a - Remote IP address +%A - Local IP address +%b - Bytes sent, excluding HTTP headers, or '-' if no bytes were sent +%B - Bytes sent, excluding HTTP headers +%h - Remote host name +%H - Request protocol +%l - Remote logical username from identd (always returns '-') +%m - Request method +%p - Local port +%q - Query string (prepended with a '?' if it exists, otherwise an empty string +%r - First line of the request +%s - HTTP status code of the response +%S - User session ID +%t - Date and time, in Common Log Format format +%u - Remote user that was authenticated +%U - Requested URL path +%v - Local server name +%I - current request thread name (can compare later with stacktraces) + +%z - Custom pattern that parses the cert for the subject +%y - Custom pattern determines rest or dme2 + -->
\ No newline at end of file diff --git a/kubernetes/aai/charts/aai-resources/resources/config/log/logback.xml b/kubernetes/aai/charts/aai-resources/resources/config/log/logback.xml deleted file mode 100644 index 6cfc293f46..0000000000 --- a/kubernetes/aai/charts/aai-resources/resources/config/log/logback.xml +++ /dev/null @@ -1,345 +0,0 @@ -<configuration debug="false" scan="true" scanPeriod="3 seconds"> - <contextName>${module.ajsc.namespace.name}</contextName> - <jmxConfigurator /> - <property name="logDir" value="/var/log/onap" /> - <property name="componentName" value="aai"></property> - <property name="subcomponentName" value="aai-resources"></property> - <property name="restLogDirectory" value="${logDir}/${componentName}/${subcomponentName}/rest" /> - <property name="dmaapLogDirectory" value="${logDir}/${componentName}/${subcomponentName}/dmaapAAIEventConsumer" /> - <property name="perfLogsDirectory" value="${logDir}/${componentName}/${subcomponentName}/perf-audit" /> - <!-- default eelf log file names --> - <property name="errorLogName" value="error" /> - <property name="metricsLogName" value="metrics" /> - <property name="auditLogName" value="audit" /> - <property name="debugLogName" value="debug" /> - <property name="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" /> - <appender class="ch.qos.logback.core.ConsoleAppender" name="STDOUT"> - <filter class="ch.qos.logback.classic.filter.LevelFilter"> - <level>ERROR</level> - <onMatch>ACCEPT</onMatch> - <onMismatch>DENY</onMismatch> - </filter> - <encoder> - <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{1024} - %msg%n</pattern> - </encoder> - </appender> - <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="SANE"> - <file>${restLogDirectory}/sane.log</file> - <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> - <fileNamePattern>${restLogDirectory}/sane.%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="asyncSANE"> - <queueSize>${queueSize}</queueSize> - <includeCallerData>true</includeCallerData> - <appender-ref ref="SANE" /> - </appender> - <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="METRIC"> - <filter class="ch.qos.logback.classic.filter.LevelFilter"> - <level>INFO</level> - <onMatch>ACCEPT</onMatch> - <onMismatch>DENY</onMismatch> - </filter> - <file>${restLogDirectory}/${metricsLogName}.log</file> - <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> - <fileNamePattern>${restLogDirectory}/${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 class="org.onap.aai.logging.EcompEncoder"> - <pattern>${pattern}</pattern> - </encoder> - </appender> - <appender class="ch.qos.logback.classic.AsyncAppender" name="asyncMETRIC"> - <queueSize>${queueSize}</queueSize> - <includeCallerData>true</includeCallerData> - <appender-ref ref="METRIC" /> - </appender> - <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="DEBUG"> - <filter class="ch.qos.logback.classic.filter.LevelFilter"> - <level>DEBUG</level> - <onMatch>ACCEPT</onMatch> - <onMismatch>DENY</onMismatch> - </filter> - <file>${restLogDirectory}/${debugLogName}.log</file> - <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> - <fileNamePattern>${restLogDirectory}/${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 class="org.onap.aai.logging.EcompEncoder"> - <pattern>${pattern}</pattern> - </encoder> - </appender> - <appender class="ch.qos.logback.classic.AsyncAppender" name="asyncDEBUG"> - <queueSize>${queueSize}</queueSize> - <includeCallerData>true</includeCallerData> - <appender-ref ref="DEBUG" /> - </appender> - <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="ERROR"> - <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> - <level>WARN</level> - </filter> - <file>${restLogDirectory}/${errorLogName}.log</file> - <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> - <fileNamePattern>${restLogDirectory}/${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 class="org.onap.aai.logging.EcompEncoder"> - <pattern>${pattern}</pattern> - </encoder> - </appender> - <appender class="ch.qos.logback.classic.AsyncAppender" name="asyncERROR"> - <queueSize>${queueSize}</queueSize> - <includeCallerData>true</includeCallerData> - <appender-ref ref="ERROR" /> - </appender> - <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="AUDIT"> - <file>${restLogDirectory}/${auditLogName}.log</file> - <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> - <fileNamePattern>${restLogDirectory}/${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 class="org.onap.aai.logging.EcompEncoder"> - <pattern>${pattern}</pattern> - </encoder> - </appender> - <appender class="ch.qos.logback.classic.AsyncAppender" name="asyncAUDIT"> - <queueSize>${queueSize}</queueSize> - <includeCallerData>true</includeCallerData> - <appender-ref ref="AUDIT" /> - </appender> - <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="translog"> - <filter class="ch.qos.logback.classic.filter.LevelFilter"> - <level>DEBUG</level> - <onMatch>ACCEPT</onMatch> - <onMismatch>DENY</onMismatch> - </filter> - <file>${restLogDirectory}/translog.log</file> - <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> - <fileNamePattern>${restLogDirectory}/translog.%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 class="org.onap.aai.logging.EcompEncoder"> - <pattern>${pattern}</pattern> - </encoder> - </appender> - <appender class="ch.qos.logback.classic.AsyncAppender" name="asynctranslog"> - <queueSize>${queueSize}</queueSize> - <includeCallerData>true</includeCallerData> - <appender-ref ref="translog" /> - </appender> - <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="dmaapAAIEventConsumer"> - <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> - <level>WARN</level> - </filter> - <File>${dmaapLogDirectory}/${errorLogName}.log</File> - <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> - <fileNamePattern>${dmaapLogDirectory}/${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 class="org.onap.aai.logging.EcompEncoder"> - <pattern>${pattern}</pattern> - </encoder> - </appender> - <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="dmaapAAIEventConsumerDebug"> - <filter class="ch.qos.logback.classic.filter.LevelFilter"> - <level>DEBUG</level> - <onMatch>ACCEPT</onMatch> - <onMismatch>DENY</onMismatch> - </filter> - <File>${dmaapLogDirectory}/${debugLogName}.log</File> - <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> - <fileNamePattern>${dmaapLogDirectory}/${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 class="org.onap.aai.logging.EcompEncoder"> - <pattern>${pattern}</pattern> - </encoder> - </appender> - <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="dmaapAAIEventConsumerMetric"> - <filter class="ch.qos.logback.classic.filter.LevelFilter"> - <level>INFO</level> - <onMatch>ACCEPT</onMatch> - <onMismatch>DENY</onMismatch> - </filter> - <File>${dmaapLogDirectory}/${metricsLogName}.log</File> - <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> - <fileNamePattern>${dmaapLogDirectory}/${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 class="org.onap.aai.logging.EcompEncoder"> - <pattern>${pattern}</pattern> - </encoder> - </appender> - <!-- 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" /> - <!-- AJSC Services (bootstrap services) --> - <logger level="WARN" name="ajsc" /> - <logger level="WARN" name="ajsc.RouteMgmtService" /> - <logger level="WARN" name="ajsc.ComputeService" /> - <logger level="WARN" name="ajsc.VandelayService" /> - <logger level="WARN" name="ajsc.FilePersistenceService" /> - <logger level="WARN" name="ajsc.UserDefinedJarService" /> - <logger level="WARN" name="ajsc.UserDefinedBeansDefService" /> - <logger level="WARN" name="ajsc.LoggingConfigurationService" /> - <!-- AJSC related loggers (DME2 Registration, csi logging, restlet, servlet - logging) --> - <logger level="WARN" name="ajsc.utils" /> - <logger level="WARN" name="ajsc.utils.DME2Helper" /> - <logger level="WARN" name="ajsc.filters" /> - <logger level="WARN" name="ajsc.beans.interceptors" /> - <logger level="WARN" name="ajsc.restlet" /> - <logger level="WARN" name="ajsc.servlet" /> - <logger level="WARN" name="com.att.ajsc" /> - <logger level="WARN" name="com.att.ajsc.csi.logging" /> - <logger level="WARN" name="com.att.ajsc.filemonitor" /> - <!-- 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" /> - <!-- logback jms appenders & loggers definition starts here --> - <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="auditLogs"> - <filter class="ch.qos.logback.classic.filter.ThresholdFilter" /> - <file>${perfLogsDirectory}/Audit.log</file> - <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> - <fileNamePattern>${perfLogsDirectory}/Audit.%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.core.rolling.RollingFileAppender" name="perfLogs"> - <filter class="ch.qos.logback.classic.filter.ThresholdFilter" /> - <file>${perfLogsDirectory}/Perform.log</file> - <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> - <fileNamePattern>${perfLogsDirectory}/Perform.%d{yyyy-MM-dd}.%i.log</fileNamePattern> - <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> - <maxFileSize>${maxFileSize}</maxFileSize> - </timeBasedFileNamingAndTriggeringPolicy> - <maxHistory>${maxHistory}</maxHistory> - <totalSizeCap>${totalSizeCap}</totalSizeCap> - </rollingPolicy> - <encoder> - <pattern>${pattern}</pattern> - </encoder> - </appender> - <appender class="ch.qos.logback.classic.AsyncAppender" name="ASYNC-audit"> - <queueSize>${queueSize}</queueSize> - <includeCallerData>true</includeCallerData> - <discardingThreshold>0</discardingThreshold> - <appender-ref ref="Audit-Record-Queue" /> - </appender> - <appender class="ch.qos.logback.classic.AsyncAppender" name="ASYNC-perf"> - <queueSize>${queueSize}</queueSize> - <includeCallerData>true</includeCallerData> - <discardingThreshold>0</discardingThreshold> - <appender-ref ref="Performance-Tracker-Queue" /> - </appender> - <logger additivity="false" level="INFO" name="AuditRecord"> - <appender-ref ref="ASYNC-audit" /> - <appender-ref ref="auditLogs" /> - </logger> - <logger additivity="false" level="INFO" name="AuditRecord_DirectCall"> - <appender-ref ref="ASYNC-audit" /> - <appender-ref ref="auditLogs" /> - </logger> - <logger additivity="false" level="INFO" name="PerfTrackerRecord"> - <appender-ref ref="ASYNC-perf" /> - <appender-ref ref="perfLogs" /> - </logger> - <!-- logback jms appenders & loggers definition ends here --> - <logger additivity="false" level="DEBUG" name="org.onap.aai.interceptors"> - <appender-ref ref="asynctranslog" /> - </logger> - <logger level="DEBUG" name="org.onap.aai.interceptors.PreAaiAjscInterceptor"> - <appender-ref ref="asyncAUDIT" /> - </logger> - <logger level="DEBUG" name="org.onap.aai.interceptors.PostAaiAjscInterceptor"> - <appender-ref ref="asyncAUDIT" /> - </logger> - <logger additivity="false" level="DEBUG" name="org.onap.aai.dmaap"> - <appender-ref ref="dmaapAAIEventConsumer" /> - <appender-ref ref="dmaapAAIEventConsumerDebug" /> - <appender-ref ref="dmaapAAIEventConsumerMetric" /> - </logger> - <logger level="WARN" name="org.apache" /> - <logger level="WARN" name="org.zookeeper" /> - <logger level="WARN" name="com.thinkaurelius" /> - <!-- ============================================================================ --> - <!-- General EELF logger --> - <!-- ============================================================================ --> - <logger additivity="false" level="WARN" name="com.att.eelf"> - <appender-ref ref="asyncDEBUG" /> - <appender-ref ref="asyncERROR" /> - <appender-ref ref="asyncMETRIC" /> - <appender-ref ref="asyncAUDIT" /> - </logger> - <root level="INFO"> - <appender-ref ref="asyncDEBUG" /> - </root> -</configuration> diff --git a/kubernetes/aai/charts/aai-resources/resources/config/logback.xml b/kubernetes/aai/charts/aai-resources/resources/config/logback.xml new file mode 100644 index 0000000000..94eb9a9226 --- /dev/null +++ b/kubernetes/aai/charts/aai-resources/resources/config/logback.xml @@ -0,0 +1,352 @@ +<!-- + ============LICENSE_START======================================================= + org.onap.aai + ================================================================================ + Copyright © 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========================================================= + ECOMP is a trademark and service mark of AT&T Intellectual Property. +--> +<configuration scan="true" scanPeriod="60 seconds" debug="false"> + <statusListener class="ch.qos.logback.core.status.NopStatusListener" /> + <property resource="application.properties" /> + <property name="namespace" value="aai-resources"/> + <property name="AJSC_HOME" value="${AJSC_HOME:-.}" /> + <jmxConfigurator /> + <property name="logDirectory" value="${AJSC_HOME}/logs" /> + <property name="eelfLogPattern" value="%ecompStartTime|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{requestId}|%X{serviceInstanceId}|%-10t|%X{serverName}|%X{serviceName}|%X{partnerName}|%X{statusCode}|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n', '^'}|%X{instanceUUID}|%level|%X{severity}|%X{serverIpAddress}|%ecompElapsedTime|%X{server}|%X{clientIpAddress}|%eelfClassOfCaller|%X{unused}|%X{processKey}|%X{customField1}|%X{customField2}|%X{customField3}|%X{customField4}|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/> + <property name="eelfAuditLogPattern" value="%ecompStartTime|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{requestId}|%X{serviceInstanceId}|%-10t|%X{serverName}|%X{serviceName}|%X{partnerName}|%X{statusCode}|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n|\r\n', '^'}|%X{instanceUUID}|%level|%X{severity}|%X{serverIpAddress}|%ecompElapsedTime|%X{server}|%X{clientIpAddress}|%eelfClassOfCaller|%X{unused}|%X{processKey}|%X{customField1}|%X{customField2}|%X{customField3}|%X{customField4}|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/> + <property name="eelfMetricLogPattern" value="%ecompStartTime|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{requestId}|%X{serviceInstanceId}|%-10t|%X{serverName}|%X{serviceName}|%X{partnerName}|%X{targetEntity}|%X{targetServiceName}|%X{statusCode}|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n', '^'}|%X{instanceUUID}|%level|%X{severity}|%X{serverIpAddress}|%ecompElapsedTime|%X{server}|%X{clientIpAddress}|%eelfClassOfCaller|%X{unused}|%X{processKey}|%X{targetVirtualEntity}|%X{customField1}|%X{customField2}|%X{customField3}|%X{customField4}|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/> + <!-- <property name="eelfErrorLogPattern" value="%ecompStartTime|%X{requestId}|%-10t|%X{serviceName}|%X{partnerName}|%X{targetEntity}|%X{targetServiceName}|%ecompErrorCategory|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n|\r\n', '^'}|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/> --> + <property name="eelfErrorLogPattern" value="%ecompStartTime|%X{requestId}|%-10t|%X{serviceName}|%X{partnerName}|%X{targetEntity}|%X{targetServiceName}|%ecompErrorCategory|%ecompResponseCode|%ecompResponseDescription|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/> + <property name="eelfTransLogPattern" value="%ecompStartTime|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{requestId}|%X{serviceInstanceId}|%-10t|%X{serverName}|%X{serviceName}|%X{partnerName}|%X{statusCode}|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n', '^'}|%X{instanceUUID}|%level|%X{severity}|%X{serverIpAddress}|%ecompElapsedTime|%X{server}|%X{clientIpAddress}|%eelfClassOfCaller|%X{unused}|%X{processKey}|%X{customField1}|%X{customField2}|%X{customField3}|%X{customField4}|co=%X{partnerName}:%m%n"/> + <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" /> + <conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" /> + <conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" /> + <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> + <encoder> + <pattern> + %clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx} + </pattern> + </encoder> + </appender> + <appender name="SANE" class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${logDirectory}/rest/sane.log</file> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/rest/sane.log.%d{yyyy-MM-dd}</fileNamePattern> + </rollingPolicy> + <encoder> + <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{1024} - %msg%n + </pattern> + </encoder> + </appender> + <appender name="asyncSANE" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>1000</queueSize> + <includeCallerData>true</includeCallerData> + <appender-ref ref="SANE" /> + </appender> + <appender name="METRIC" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <filter class="ch.qos.logback.classic.filter.LevelFilter"> + <level>INFO</level> + <onMatch>ACCEPT</onMatch> + <onMismatch>DENY</onMismatch> + </filter> + <file>${logDirectory}/rest/metrics.log</file> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/rest/metrics.log.%d{yyyy-MM-dd} + </fileNamePattern> + </rollingPolicy> + <encoder class="org.onap.aai.logging.EcompEncoder"> + <pattern>${eelfMetricLogPattern}</pattern> + </encoder> + </appender> + <appender name="asyncMETRIC" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>1000</queueSize> + <includeCallerData>true</includeCallerData> + <appender-ref ref="METRIC" /> + </appender> + <appender name="DEBUG" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <filter class="ch.qos.logback.classic.filter.LevelFilter"> + <level>DEBUG</level> + <onMatch>ACCEPT</onMatch> + <onMismatch>DENY</onMismatch> + </filter> + <file>${logDirectory}/rest/debug.log</file> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/rest/debug.log.%d{yyyy-MM-dd} + </fileNamePattern> + </rollingPolicy> + <encoder class="org.onap.aai.logging.EcompEncoder"> + <pattern>${eelfLogPattern}</pattern> + </encoder> + </appender> + <appender name="asyncDEBUG" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>1000</queueSize> + <includeCallerData>true</includeCallerData> + <appender-ref ref="DEBUG" /> + </appender> + <appender name="ERROR" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> + <level>WARN</level> + </filter> + <file>${logDirectory}/rest/error.log</file> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/rest/error.log.%d{yyyy-MM-dd} + </fileNamePattern> + </rollingPolicy> + <encoder class="org.onap.aai.logging.EcompEncoder"> + <pattern>${eelfErrorLogPattern}</pattern> + </encoder> + </appender> + <appender name="asyncERROR" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>1000</queueSize> + <includeCallerData>true</includeCallerData> + <appender-ref ref="ERROR" /> + </appender> + <appender name="AUDIT" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${logDirectory}/rest/audit.log</file> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/rest/audit.log.%d{yyyy-MM-dd} + </fileNamePattern> + </rollingPolicy> + <encoder class="org.onap.aai.logging.EcompEncoder"> + <pattern>${eelfAuditLogPattern}</pattern> + </encoder> + </appender> + <appender name="asyncAUDIT" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>1000</queueSize> + <includeCallerData>true</includeCallerData> + <appender-ref ref="AUDIT" /> + </appender> + <appender name="translog" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <filter class="ch.qos.logback.classic.filter.LevelFilter"> + <level>DEBUG</level> + <onMatch>ACCEPT</onMatch> + <onMismatch>DENY</onMismatch> + </filter> + <file>${logDirectory}/rest/translog.log</file> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/rest/translog.log.%d{yyyy-MM-dd} + </fileNamePattern> + </rollingPolicy> + <encoder class="org.onap.aai.logging.EcompEncoder"> + <pattern>${eelfTransLogPattern}</pattern> + </encoder> + </appender> + <appender name="asynctranslog" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>1000</queueSize> + <includeCallerData>true</includeCallerData> + <appender-ref ref="translog" /> + </appender> + <appender name="dmaapAAIEventConsumer" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> + <level>WARN</level> + </filter> + <File>${logDirectory}/dmaapAAIEventConsumer/error.log</File> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/dmaapAAIEventConsumer/error.log.%d{yyyy-MM-dd} + </fileNamePattern> + </rollingPolicy> + <encoder class="org.onap.aai.logging.EcompEncoder"> + <pattern>${eelfLogPattern}</pattern> + </encoder> + </appender> + <appender name="dmaapAAIEventConsumerDebug" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <filter class="ch.qos.logback.classic.filter.LevelFilter"> + <level>DEBUG</level> + <onMatch>ACCEPT</onMatch> + <onMismatch>DENY</onMismatch> + </filter> + <File>${logDirectory}/dmaapAAIEventConsumer/debug.log</File> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/dmaapAAIEventConsumer/debug.log.%d{yyyy-MM-dd} + </fileNamePattern> + </rollingPolicy> + <encoder class="org.onap.aai.logging.EcompEncoder"> + <pattern>${eelfLogPattern}</pattern> + </encoder> + </appender> + <appender name="dmaapAAIEventConsumerMetric" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <filter class="ch.qos.logback.classic.filter.LevelFilter"> + <level>INFO</level> + <onMatch>ACCEPT</onMatch> + <onMismatch>DENY</onMismatch> + </filter> + <File>${logDirectory}/dmaapAAIEventConsumer/metrics.log</File> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/dmaapAAIEventConsumer/metrics.log.%d{yyyy-MM-dd} + </fileNamePattern> + </rollingPolicy> + <encoder class="org.onap.aai.logging.EcompEncoder"> + <pattern>${eelfMetricLogPattern}</pattern> + </encoder> + </appender> + <appender name="external" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> + <level>WARN</level> + </filter> + <file>${logDirectory}/external/external.log</file> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/external/external.log.%d{yyyy-MM-dd} + </fileNamePattern> + </rollingPolicy> + <encoder class="org.onap.aai.logging.EcompEncoder"> + <pattern>${eelfLogPattern}</pattern> + </encoder> + </appender> + <logger name="org.onap.aai" level="DEBUG" additivity="false"> + <appender-ref ref="asyncDEBUG" /> + <appender-ref ref="asyncERROR" /> + <appender-ref ref="asyncMETRIC" /> + <appender-ref ref="asyncSANE" /> + </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.jayway.jsonpath" level="WARN" /> + <!-- AJSC Services (bootstrap services) --> + <logger name="ajsc" level="WARN" /> + <logger name="ajsc.RouteMgmtService" level="WARN" /> + <logger name="ajsc.ComputeService" level="WARN" /> + <logger name="ajsc.VandelayService" level="WARN" /> + <logger name="ajsc.FilePersistenceService" level="WARN" /> + <logger name="ajsc.UserDefinedJarService" level="WARN" /> + <logger name="ajsc.UserDefinedBeansDefService" level="WARN" /> + <logger name="ajsc.LoggingConfigurationService" level="WARN" /> + <!-- AJSC related loggers (DME2 Registration, csi logging, restlet, servlet + logging) --> + <logger name="org.codehaus.groovy" level="WARN" /> + <logger name="com.att.scamper" level="WARN" /> + <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.ajsc" level="WARN" /> + <logger name="com.att.ajsc.csi.logging" level="WARN" /> + <logger name="com.att.ajsc.filemonitor" level="WARN" /> + <logger name="com.netflix.loadbalancer" level="WARN" /> + <logger name="org.apache.zookeeper" level="OFF" /> + <!-- 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" /> + <logger name="org.hibernate.validator" level="WARN" /> + <logger name="org.hibernate" level="WARN" /> + <logger name="org.hibernate.ejb" level="OFF" /> + <!-- logback internals logging --> + <logger name="ch.qos.logback.classic" level="WARN" /> + <logger name="ch.qos.logback.core" level="WARN" /> + <logger name="org.eclipse.jetty" level="WARN" /> + <!-- logback jms appenders & loggers definition starts here --> + <appender name="auditLogs" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <filter class="ch.qos.logback.classic.filter.ThresholdFilter" /> + <file>${logDirectory}/perf-audit/Audit-${lrmRVer}-${lrmRO}-${Pid}.log + </file> + <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> + <fileNamePattern>${logDirectory}/perf-audit/Audit-${lrmRVer}-${lrmRO}-${Pid}.%i.log.zip + </fileNamePattern> + <minIndex>1</minIndex> + <maxIndex>9</maxIndex> + </rollingPolicy> + <triggeringPolicy + class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> + <maxFileSize>5MB</maxFileSize> + </triggeringPolicy> + <encoder> + <pattern>"%d [%thread] %-5level %logger{1024} - %msg%n"</pattern> + </encoder> + </appender> + <appender name="perfLogs" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <filter class="ch.qos.logback.classic.filter.ThresholdFilter" /> + <file>${logDirectory}/perf-audit/Perform-${lrmRVer}-${lrmRO}-${Pid}.log + </file> + <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> + <fileNamePattern>${logDirectory}/perf-audit/Perform-${lrmRVer}-${lrmRO}-${Pid}.%i.log.zip + </fileNamePattern> + <minIndex>1</minIndex> + <maxIndex>9</maxIndex> + </rollingPolicy> + <triggeringPolicy + class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> + <maxFileSize>5MB</maxFileSize> + </triggeringPolicy> + <encoder> + <pattern>"%d [%thread] %-5level %logger{1024} - %msg%n"</pattern> + </encoder> + </appender> + <logger name="AuditRecord" level="INFO" additivity="false"> + <appender-ref ref="auditLogs" /> + </logger> + <logger name="AuditRecord_DirectCall" level="INFO" additivity="false"> + <appender-ref ref="auditLogs" /> + </logger> + <logger name="PerfTrackerRecord" level="INFO" additivity="false"> + <appender-ref ref="perfLogs" /> + </logger> + <!-- logback jms appenders & loggers definition ends here --> + <logger name="org.onap.aai.interceptors.post" level="DEBUG" + additivity="false"> + <appender-ref ref="asynctranslog" /> + </logger> + <logger name="org.onap.aai.interceptors.pre.SetLoggingContext" level="DEBUG"> + <appender-ref ref="asyncAUDIT"/> + </logger> + <logger name="org.onap.aai.interceptors.post.ResetLoggingContext" level="DEBUG"> + <appender-ref ref="asyncAUDIT"/> + </logger> + <logger name="org.onap.aai.dmaap" level="DEBUG" additivity="false"> + <appender-ref ref="dmaapAAIEventConsumer" /> + <appender-ref ref="dmaapAAIEventConsumerDebug" /> + <appender-ref ref="dmaapAAIEventConsumerMetric" /> + </logger> + <logger name="org.apache" level="OFF" /> + <logger name="org.zookeeper" level="OFF" /> + <logger name="com.thinkaurelius" level="WARN" /> + <logger name="com.att.aft.dme2" level="WARN" /> + <!-- ============================================================================ --> + <!-- General EELF logger --> + <!-- ============================================================================ --> + <logger name="com.att.eelf" level="WARN" additivity="false"> + <appender-ref ref="asyncDEBUG" /> + <appender-ref ref="asyncERROR" /> + <appender-ref ref="asyncMETRIC" /> + </logger> + <root level="DEBUG"> + <appender-ref ref="external" /> + </root> +</configuration> diff --git a/kubernetes/aai/charts/aai-resources/resources/config/realm.properties b/kubernetes/aai/charts/aai-resources/resources/config/realm.properties new file mode 100644 index 0000000000..fb692cc3eb --- /dev/null +++ b/kubernetes/aai/charts/aai-resources/resources/config/realm.properties @@ -0,0 +1,12 @@ +# format : username: password[,rolename ...] +# default username/password: AAI/AAI, MSO/MSO, ModelLoader/ModelLoader... +AAI:OBF:1gfr1ev31gg7,admin +MSO:OBF:1jzx1lz31k01,admin +SDNC:OBF:1itr1i0l1i151isv,admin +DCAE:OBF:1g8u1f9d1f991g8w,admin +POLICY:OBF:1mk61i171ima1im41i0j1mko,admin +ASDC:OBF:1f991j0u1j001f9d,admin +VID:OBF:1jm91i0v1jl9,admin +APPC:OBF:1f991ksf1ksf1f9d,admin +ModelLoader:OBF:1qvu1v2h1sov1sar1wfw1j7j1wg21saj1sov1v1x1qxw,admin +AaiUI:OBF:1gfr1p571unz1p4j1gg7,admin diff --git a/kubernetes/aai/charts/aai-resources/templates/configmap.yaml b/kubernetes/aai/charts/aai-resources/templates/configmap.yaml index 97c720a6ab..5e371ea5bf 100644 --- a/kubernetes/aai/charts/aai-resources/templates/configmap.yaml +++ b/kubernetes/aai/charts/aai-resources/templates/configmap.yaml @@ -1,7 +1,64 @@ apiVersion: v1 kind: ConfigMap metadata: - name: {{ include "common.fullname" . }} + 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/logback.xml").AsConfig . | indent 2 }} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "common.fullname" . }}-localhost-access-log-configmap + namespace: {{ include "common.namespace" . }} +data: +{{ tpl (.Files.Glob "resources/config/localhost-access-logback.xml").AsConfig . | indent 2 }} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "common.fullname" . }}-db-real-configmap + namespace: {{ include "common.namespace" . }} +data: +{{ tpl (.Files.Glob "resources/config/janusgraph-realtime.properties").AsConfig . | indent 2 }} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "common.fullname" . }}-db-cached-configmap + namespace: {{ include "common.namespace" . }} +data: +{{ tpl (.Files.Glob "resources/config/janusgraph-cached.properties").AsConfig . | indent 2 }} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "common.fullname" . }}-aaiconfig-configmap + namespace: {{ include "common.namespace" . }} +data: +{{ tpl (.Files.Glob "resources/config/aaiconfig.properties").AsConfig . | indent 2 }} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "common.fullname" . }}-springapp-configmap + namespace: {{ include "common.namespace" . }} +data: +{{ tpl (.Files.Glob "resources/config/application.properties").AsConfig . | indent 2 }} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "common.fullname" . }}-realm-configmap + namespace: {{ include "common.namespace" . }} +data: +{{ tpl (.Files.Glob "resources/config/realm.properties").AsConfig . | indent 2 }} +--- +apiVersion: v1 +kind: Secret +metadata: + name: {{ include "common.fullname" . }}-auth-secret + namespace: {{ include "common.namespace" . }} +type: Opaque +data: +{{ tpl (.Files.Glob "resources/config/aai_keystore").AsSecrets . | indent 2 }} diff --git a/kubernetes/aai/charts/aai-resources/templates/deployment.yaml b/kubernetes/aai/charts/aai-resources/templates/deployment.yaml index 6aef4475f7..6c65bce4cc 100644 --- a/kubernetes/aai/charts/aai-resources/templates/deployment.yaml +++ b/kubernetes/aai/charts/aai-resources/templates/deployment.yaml @@ -415,12 +415,13 @@ spec: } ]' spec: + hostname: aai-resources initContainers: - command: - /root/ready.py args: - --container-name - - aai-hbase + - aai-cassandra env: - name: NAMESPACE valueFrom: @@ -435,32 +436,37 @@ spec: image: "{{ .Values.global.repository | default .Values.repository }}/{{ .Values.image }}" imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} env: - - name: CHEF_BRANCH - value: master - - name: AAI_CHEF_ENV - value: simpledemo - - name: AAI_CORE_VERSION - value: {{ .Values.config.aaicoreversion }} - - name: AAI_CHEF_LOC - value: /var/chef/aai-data/environments - - name: CHEF_GIT_URL - value: http://gerrit.onap.org/r/aai - - name: HBASE_STARTUP_ARTIFICIAL_DELAY - value: "60" + - name: LOCAL_USER_ID + value: {{ .Values.config.userId | quote }} + - name: LOCAL_GROUP_ID + value: {{ .Values.config.groupId | quote }} volumeMounts: - mountPath: /etc/localtime name: localtime readOnly: true - - mountPath: /var/chef/aai-data/chef-config/dev/.knife/solo.rb - subPath: solo.rb - name: aai-chef-config - - mountPath: /var/chef/aai-data/environments/ - name: aai-data + - mountPath: /opt/app/aai-resources/resources/etc/appprops/janusgraph-realtime.properties + name: {{ include "common.fullname" . }}-db-real-conf + subPath: janusgraph-realtime.properties + - mountPath: /opt/app/aai-resources/resources/etc/appprops/janusgraph-cached.properties + name: {{ include "common.fullname" . }}-db-cached-conf + subPath: janusgraph-cached.properties + - mountPath: /opt/app/aai-resources/resources/etc/appprops/aaiconfig.properties + name: {{ include "common.fullname" . }}-aaiconfig-conf + subPath: aaiconfig.properties - mountPath: /var/log/onap - name: aai-resources-logs - - mountPath: /opt/app/aai-resources/bundleconfig/etc/logback.xml - name: aai-resources-log-conf + name: {{ include "common.fullname" . }}-logs + - mountPath: /opt/app/aai-resources/resources/logback.xml + name: {{ include "common.fullname" . }}-log-conf subPath: logback.xml + - mountPath: /opt/app/aai-resources/resources/localhost-access-logback.xml + name: {{ include "common.fullname" . }}-localhost-access-log-conf + subPath: localhost-access-logback.xml + - mountPath: /opt/app/aai-resources/resources/application.properties + name: {{ include "common.fullname" . }}-springapp-conf + subPath: application.properties + - mountPath: /opt/app/aai-resources/resources/etc/auth/aai_keystore + name: {{ include "common.fullname" . }}-auth-sec + subPath: aai_keystore ports: - containerPort: {{ .Values.service.internalPort }} - containerPort: {{ .Values.service.internalPort2 }} @@ -498,30 +504,45 @@ spec: subPath: filebeat.yml name: filebeat-conf - mountPath: /var/log/onap - name: aai-resources-logs + name: {{ include "common.fullname" . }}-logs - mountPath: /usr/share/filebeat/data - name: aai-resources-filebeat + name: {{ include "common.fullname" . }}-filebeat volumes: - name: localtime hostPath: path: /etc/localtime - - name: aai-chef-config - configMap: - name: aai-chef-config - - name: aai-data - configMap: - name: aai-resources-environments - name: filebeat-conf configMap: name: aai-filebeat - - name: aai-resources-logs + - name: {{ include "common.fullname" . }}-logs emptyDir: {} - - name: aai-resources-filebeat + - name: {{ include "common.fullname" . }}-filebeat emptyDir: {} - - name: aai-resources-log-conf + - name: {{ include "common.fullname" . }}-log-conf + configMap: + name: {{ include "common.fullname" . }}-log + - name: {{ include "common.fullname" . }}-localhost-access-log-conf + configMap: + name: {{ include "common.fullname" . }}-localhost-access-log-configmap + - name: {{ include "common.fullname" . }}-db-real-conf + configMap: + name: {{ include "common.fullname" . }}-db-real-configmap + - name: {{ include "common.fullname" . }}-db-cached-conf + configMap: + name: {{ include "common.fullname" . }}-db-cached-configmap + - name: {{ include "common.fullname" . }}-aaiconfig-conf + configMap: + name: {{ include "common.fullname" . }}-aaiconfig-configmap + - name: {{ include "common.fullname" . }}-springapp-conf + configMap: + name: {{ include "common.fullname" . }}-springapp-configmap + - name: {{ include "common.fullname" . }}-realm-conf configMap: - name: {{ include "common.fullname" . }} - restartPolicy: {{ .Values.global.restartPolicy | default .Values.restartPolicy }} + name: {{ include "common.fullname" . }}-realm-configmap + - name: {{ include "common.fullname" . }}-auth-sec + secret: + secretName: {{ include "common.fullname" . }}-auth-secret + restartPolicy: {{ .Values.restartPolicy }} imagePullSecrets: - name: "{{ include "common.namespace" . }}-docker-registry-key" diff --git a/kubernetes/aai/charts/aai-resources/values.yaml b/kubernetes/aai/charts/aai-resources/values.yaml index 3b41a399e3..b7c02876d4 100644 --- a/kubernetes/aai/charts/aai-resources/values.yaml +++ b/kubernetes/aai/charts/aai-resources/values.yaml @@ -10,17 +10,18 @@ global: # global defaults # application image repository: nexus3.onap.org:10001 -image: openecomp/aai-resources:v1.1.0 +image: onap/aai-resources:1.2-STAGING-latest pullPolicy: Always restartPolicy: Always -# application configuration -config: - aaicoreversion: 1.1.0-SNAPSHOT - # default number of instances replicaCount: 1 +# Configuration for the resources deployment +config: + userId: 1000 + groupId: 1000 + nodeSelector: {} affinity: {} diff --git a/kubernetes/aai/charts/aai-search-data/resources/config/log/logback.xml b/kubernetes/aai/charts/aai-search-data/resources/config/log/logback.xml index 14ed4142fe..3fbbbab864 100644 --- a/kubernetes/aai/charts/aai-search-data/resources/config/log/logback.xml +++ b/kubernetes/aai/charts/aai-search-data/resources/config/log/logback.xml @@ -1,188 +1,177 @@ -<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-sdb" /> - <property name="logDirectory" value="${logDir}/${componentName}/${subcomponentName}" /> - <!-- default eelf log file names --> - <property name="errorLogName" value="error" /> - <property name="metricsLogName" value="metrics" /> - <property name="auditLogName" value="audit" /> - <property name="debugLogName" value="debug" /> - <property name="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}/${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> - </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> - <!-- 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 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>"%d{HH:mm:ss.SSS} [%thread] %-5level %logger{1024} - - %msg%n"</pattern> --> - <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>false</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" /> - <!-- AJSC Services (bootstrap services) --> - <logger level="WARN" name="ajsc" /> - <logger level="WARN" name="ajsc.RouteMgmtService" /> - <logger level="WARN" name="ajsc.ComputeService" /> - <logger level="WARN" name="ajsc.VandelayService" /> - <logger level="WARN" name="ajsc.FilePersistenceService" /> - <logger level="WARN" name="ajsc.UserDefinedJarService" /> - <logger level="WARN" name="ajsc.UserDefinedBeansDefService" /> - <logger level="WARN" name="ajsc.LoggingConfigurationService" /> - <logger level="WARN" name="ajsc.ErrorMessageLookupService" /> - <!-- AJSC related loggers (DME2 Registration, csi logging, restlet, servlet - logging) --> - <logger level="WARN" name="ajsc.utils" /> - <logger level="WARN" name="ajsc.utils.DME2Helper" /> - <logger level="WARN" name="ajsc.filters" /> - <logger level="WARN" name="ajsc.beans.interceptors" /> - <logger level="WARN" name="ajsc.restlet" /> - <logger level="WARN" name="ajsc.servlet" /> - <logger level="INFO" name="com.att" /> - <logger level="WARN" name="com.att.ajsc.csi.logging" /> - <logger level="WARN" name="com.att.ajsc.filemonitor" /> - <!-- SearchDB loggers --> - <logger level="INFO" name="org.openecomp.sa" /> - <!-- 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"> + <!--<jmxConfigurator /> --> + <!-- directory path for all other type logs --> + + <property name="logDir" value="/var/log/onap" /> + + + <!-- specify the component name + <ECOMP-component-name>::= "MSO" | "DCAE" | "ASDC " | "AAI" |"Policy" | "SDNC" | "AC" --> + <property name="componentName" value="AAI-SDB"></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|SearchDataService|%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" /> + + <!-- SearchDB loggers --> + <logger name="org.openecomp.sa" level="INFO" /> + + <!-- Other Loggers that may help troubleshoot --> + <logger name="net.sf" level="WARN" /> + <logger name="org.apache.commons.httpclient" level="WARN" /> + <logger name="org.apache.commons" level="WARN" /> + <logger name="org.apache.coyote" level="WARN" /> + <logger name="org.apache.jasper" level="WARN" /> + + <!-- Camel Related Loggers (including restlet/servlet/jaxrs/cxf logging. + May aid in troubleshooting) --> + <logger name="org.apache.camel" level="WARN" /> + <logger name="org.apache.cxf" level="WARN" /> + <logger name="org.apache.camel.processor.interceptor" level="WARN" /> + <logger name="org.apache.cxf.jaxrs.interceptor" level="WARN" /> + <logger name="org.apache.cxf.service" level="WARN" /> + <logger name="org.restlet" level="WARN" /> + <logger name="org.apache.camel.component.restlet" level="WARN" /> + + <!-- logback internals logging --> + <logger name="ch.qos.logback.classic" level="WARN" /> + <logger name="ch.qos.logback.core" level="WARN" /> + + <root> + <appender-ref ref="asyncEELF" /> + <!-- <appender-ref ref="asyncEELFDebug" /> --> + </root> + </configuration> diff --git a/kubernetes/aai/charts/aai-search-data/values.yaml b/kubernetes/aai/charts/aai-search-data/values.yaml index 9e16b23bcc..65b3c9dbc2 100644 --- a/kubernetes/aai/charts/aai-search-data/values.yaml +++ b/kubernetes/aai/charts/aai-search-data/values.yaml @@ -10,7 +10,7 @@ global: # global defaults # application image repository: nexus3.onap.org:10001 -image: onap/search-data-service:v1.1.0 +image: onap/search-data-service:1.2-STAGING-latest pullPolicy: Always restartPolicy: Always diff --git a/kubernetes/aai/charts/aai-traversal/resources/config/aai_keystore b/kubernetes/aai/charts/aai-traversal/resources/config/aai_keystore Binary files differnew file mode 100644 index 0000000000..1ddef0c9bd --- /dev/null +++ b/kubernetes/aai/charts/aai-traversal/resources/config/aai_keystore diff --git a/kubernetes/aai/charts/aai-traversal/resources/config/aaiconfig.properties b/kubernetes/aai/charts/aai-traversal/resources/config/aaiconfig.properties new file mode 100644 index 0000000000..2452a1e85b --- /dev/null +++ b/kubernetes/aai/charts/aai-traversal/resources/config/aaiconfig.properties @@ -0,0 +1,113 @@ +# +# ============LICENSE_START======================================================= +# org.onap.aai +# ================================================================================ +# Copyright © 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========================================================= +# +# ECOMP is a trademark and service mark of AT&T Intellectual Property. +# + +#################################################################### +# REMEMBER TO THINK ABOUT ENVIRONMENTAL DIFFERENCES AND CHANGE THE +# TEMPLATE AND *ALL* DATAFILES +#################################################################### + +#################################################################### +# REMEMBER TO THINK ABOUT ENVIRONMENTAL DIFFERENCES AND CHANGE THE +# TEMPLATE AND *ALL* DATAFILES +#################################################################### + +aai.config.checktime=1000 + +# this could come from siteconfig.pl? +aai.config.nodename=AutomaticallyOverwritten + + + +aai.auth.cspcookies_on=false +aai.dbmodel.filename=ex5.json + +aai.server.url.base=https://aai.{{ include "common.namespace" . }}:8443/aai/ +aai.server.url=https://aai.{{ include "common.namespace" . }}:8443/aai/v11/ +aai.global.callback.url=https://aai.{{ include "common.namespace" . }}:8443/aai/ + +aai.tools.enableBasicAuth=true +aai.tools.username=AAI +aai.tools.password=AAI + +aai.truststore.filename=aai_keystore +aai.truststore.passwd.x=OBF:1vn21ugu1saj1v9i1v941sar1ugw1vo0 +aai.keystore.filename=aai_keystore +aai.keystore.passwd.x=OBF:1vn21ugu1saj1v9i1v941sar1ugw1vo0 + + +aai.notification.current.version=v11 +aai.notificationEvent.default.status=UNPROCESSED +aai.notificationEvent.default.eventType=AAI-EVENT +aai.notificationEvent.default.domain=dev +aai.notificationEvent.default.sourceName=aai +aai.notificationEvent.default.sequenceNumber=0 +aai.notificationEvent.default.severity=NORMAL +aai.notificationEvent.default.version=v11 +# This one lets us enable/disable resource-version checking on updates/deletes +aai.resourceversion.enableflag=true +aai.logging.maxStackTraceEntries=10 +aai.default.api.version=v11 + + + +# Used by Model-processing code +aai.model.delete.sleep.per.vtx.msec=500 +aai.model.query.resultset.maxcount=50 +aai.model.query.timeout.sec=90 + +# Used by Data Grooming +aai.grooming.default.max.file=150 +aai.grooming.default.sleep.minutes=7 + +aai.model.proc.max.levels=50 +aai.edgeTag.proc.max.levels=50 + +# for transaction log +aai.logging.hbase.interceptor=true +aai.logging.hbase.enabled=true +aai.logging.hbase.logrequest=true +aai.logging.hbase.logresponse=true + +# for gremlin server +aai.server.rebind=g +hbase.table.name=aailogging.dev +hbase.table.timestamp.format=YYYYMMdd-HH:mm:ss:SSS +hbase.zookeeper.quorum=localhost +hbase.zookeeper.property.clientPort=2181 +hbase.zookeeper.znode.parent=/hbase + +aai.logging.trace.enabled=true +aai.logging.trace.logrequest=false +aai.logging.trace.logresponse=false + +aai.transaction.logging=true +aai.transaction.logging.get=false +aai.transaction.logging.post=false + +#timeout for traversal enabled flag +aai.traversal.timeoutenabled=true + +#timeout app specific +aai.traversal.timeout.appspecific=JUNITTESTAPP1,1|JUNITTESTAPP2,-1|DCAE-CCS,-1|DCAES,-1|AAI-FILEGEN-GFPIP,-1 + +#default timeout limit added for traversal if not overridden (in ms) +aai.traversal.timeoutlimit=180000 diff --git a/kubernetes/aai/charts/aai-traversal/resources/config/application.properties b/kubernetes/aai/charts/aai-traversal/resources/config/application.properties new file mode 100644 index 0000000000..14c59d23f7 --- /dev/null +++ b/kubernetes/aai/charts/aai-traversal/resources/config/application.properties @@ -0,0 +1,72 @@ +# The following info parameters are being referenced by ajsc6 +info.build.artifact=aai-traversal +info.build.name=traversal +info.build.description=Traversal Microservice +info.build.version=1.2.0 + +spring.application.name=aai-traversal +spring.jersey.type=filter + +server.contextPath=/ +spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration,org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration + +spring.profiles.active=production,dmaap +#The max number of active threads in this pool +server.tomcat.max-threads=200 +#The minimum number of threads always kept alive +server.tomcat.min-Spare-Threads=25 +#The number of milliseconds before an idle thread shutsdown, unless the number of active threads are less or equal to minSpareThreads +server.tomcat.max-idle-time=60000 + + +#Add this properties only if you want to change the URL, AJSC Framework interceptors will intercept +#com.att.ajsc.common.interceptors.PreInterceptor.url=/** +#com.att.ajsc.common.interceptors.PostInterceptor.url=/** + +#Servlet context parameters +server.context_parameters.p-name=value #context parameter with p-name as key and value as value. +kubernetes.namespace={{ include "common.namespace" . }} + +# If you get an application startup failure that the port is already taken +# If thats not it, please check if the key-store file path makes sense +server.local.startpath=aai-traversal/src/main/resources/ +server.basic.auth.location=${server.local.startpath}etc/auth/realm.properties + +server.port=8446 +server.ssl.enabled-protocols=TLSv1.1,TLSv1.2 +server.ssl.key-store=${server.local.startpath}etc/auth/aai_keystore +server.ssl.key-store-password=password(OBF:1vn21ugu1saj1v9i1v941sar1ugw1vo0) +server.ssl.trust-store=${server.local.startpath}etc/auth/aai_keystore +server.ssl.trust-store-password=password(OBF:1vn21ugu1saj1v9i1v941sar1ugw1vo0) +server.ssl.client-auth=want +server.ssl.key-store-type=JKS + +# JMS bind address host port +jms.bind.address=tcp://localhost:61647 +dmaap.ribbon.eureka.enabled=false +dmaap.ribbon.listOfServers=dmaap.{{ include "common.namespace" . }}:3904 +# Number of milliseconds to wait before making ping requests again +dmaap.ribbon.ServerListRefreshInterval=75000 +dmaap.ribbon.NFLoadBalancerPingInterval=75000 +dmaap.ribbon.NFLoadBalancerRuleClassName=com.netflix.loadbalancer.AvailabilityFilteringRule +dmaap.ribbon.NFLoadBalancerPingClassName=org.onap.aai.config.HttpPingImpl +dmaap.ribbon.EnableMarkingServerDownOnReachingFailureLimit=true +dmaap.ribbon.ServerDownFailureLimit=1 +# This needs to be verified but it seems that adding this property should automatically +# Make the dmaap client change the url from http to https depending on the server +dmaap.ribbon.securePorts=3905 + +# Custom Dmaap Specific Configuration +dmaap.ribbon.username= +dmaap.ribbon.password= +dmaap.ribbon.health.endpoint=/topics/AAI-EVENT +# Number of seconds to wait for the ping to work and might need to increase this if the pings are all failing +dmaap.ribbon.pingport.timeout=3 + +niws.loadbalancer.dmaap.filterCircuitTripped=true +niws.loadbalancer.dmaap.connectionFailureCountThreshold=3 +niws.loadbalancer.dmaap.circuitTripMaxTimeoutSeconds=180 +#dmaap.ribbon.retryableStatusCodes=404,503 +#dmaap.ribbon.retryableStatusCodes.MaxAutoRetriesNextServer=2 +#dmaap.ribbon.retryableStatusCodes.MaxAutoRetries=2 +#dmaap.ribbon.retryableStatusCodes.OkToRetryOnAllOperations=true diff --git a/kubernetes/aai/charts/aai-traversal/resources/config/janusgraph-cached.properties b/kubernetes/aai/charts/aai-traversal/resources/config/janusgraph-cached.properties new file mode 100644 index 0000000000..dd5c3eed66 --- /dev/null +++ b/kubernetes/aai/charts/aai-traversal/resources/config/janusgraph-cached.properties @@ -0,0 +1,50 @@ +# +# ============LICENSE_START======================================================= +# org.onap.aai +# ================================================================================ +# Copyright © 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========================================================= +# +# ECOMP is a trademark and service mark of AT&T Intellectual Property. +# + +query.fast-property=true +query.smart-limit=false + +{{- $seed_size := default 1 .Values.global.cassandra.replicas | int -}} +{{- $global := . }} + +# the following parameters are not reloaded automatically and require a manual bounce +storage.backend=cassandra +storage.hostname={{- range $i, $e := until $seed_size }}{{ $global.Release.Name }}-aai-cassandra-{{ $i }},{{- end }} + +storage.cassandra.keyspace=aaigraph + +storage.cassandra.read-consistency-level=LOCAL_QUORUM +storage.cassandra.write-consistency-level=LOCAL_QUORUM +storage.cassandra.replication-factor=3 +storage.cassandra.replication-strategy-class=org.apache.cassandra.locator.SimpleStrategy +#storage.cassandra.replication-strategy-options=MTA1cass,3 + +#schema.default=none +storage.lock.wait-time=300 +#caching on +cache.db-cache = true +cache.db-cache-clean-wait = 20 +cache.db-cache-time = 180000 +cache.db-cache-size = 0.3 + +#load graphson file on startup +load.snapshot.file=false diff --git a/kubernetes/aai/charts/aai-traversal/resources/config/janusgraph-realtime.properties b/kubernetes/aai/charts/aai-traversal/resources/config/janusgraph-realtime.properties new file mode 100644 index 0000000000..875a8a5977 --- /dev/null +++ b/kubernetes/aai/charts/aai-traversal/resources/config/janusgraph-realtime.properties @@ -0,0 +1,45 @@ +# +# ============LICENSE_START======================================================= +# Copyright © 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========================================================= +# +# ECOMP is a trademark and service mark of AT&T Intellectual Property. +# + +query.fast-property=true +query.smart-limit=false + +{{- $seed_size := default 1 .Values.global.cassandra.replicas | int -}} +{{- $global := . }} + +# the following parameters are not reloaded automatically and require a manual bounce +storage.backend=cassandra +storage.hostname={{- range $i, $e := until $seed_size }}{{ $global.Release.Name }}-aai-cassandra-{{ $i }},{{- end }} + +storage.cassandra.keyspace=aaigraph + +storage.cassandra.read-consistency-level=LOCAL_QUORUM +storage.cassandra.write-consistency-level=LOCAL_QUORUM +storage.cassandra.replication-factor=3 +storage.cassandra.replication-strategy-class=org.apache.cassandra.locator.SimpleStrategy +#storage.cassandra.replication-strategy-options=MTA1cass,3 + +#schema.default=none +storage.lock.wait-time=300 +# Setting db-cache to false ensure the fastest propagation of changes across servers +cache.db-cache = false + +#load graphson file on startup +load.snapshot.file=false diff --git a/kubernetes/aai/charts/aai-traversal/resources/config/localhost-access-logback.xml b/kubernetes/aai/charts/aai-traversal/resources/config/localhost-access-logback.xml new file mode 100644 index 0000000000..a318796c57 --- /dev/null +++ b/kubernetes/aai/charts/aai-traversal/resources/config/localhost-access-logback.xml @@ -0,0 +1,62 @@ +<!-- + + ============LICENSE_START======================================================= + org.onap.aai + ================================================================================ + Copyright © 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========================================================= + + ECOMP is a trademark and service mark of AT&T Intellectual Property. + +--> +<configuration> + <property name="AJSC_HOME" value="${AJSC_HOME:-.}" /> + <appender name="ACCESS" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${AJSC_HOME}/logs/ajsc-jetty/localhost_access.log</file> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${AJSC_HOME}/logs/ajsc-jetty/localhost_access.log.%d{yyyy-MM-dd} + </fileNamePattern> + </rollingPolicy> + <encoder class="org.onap.aai.logging.CustomLogPatternLayoutEncoder"> + <Pattern>%a %u %z [%t] "%m %U%q" %s %b %y %i{X-TransactionId} %i{X-FromAppId} %i{X-Forwarded-For} %i{X-AAI-SSL-Client-CN} %i{X-AAI-SSL-Client-OU} %i{X-AAI-SSL-Client-O} %i{X-AAI-SSL-Client-L} %i{X-AAI-SSL-Client-ST} %i{X-AAI-SSL-Client-C} %i{X-AAI-SSL-Client-NotBefore} %i{X-AAI-SSL-Client-NotAfter} %i{X-AAI-SSL-Client-DN} %D</Pattern> + </encoder> + </appender> + <appender-ref ref="ACCESS" /> +</configuration> + +<!-- +%a - Remote IP address +%A - Local IP address +%b - Bytes sent, excluding HTTP headers, or '-' if no bytes were sent +%B - Bytes sent, excluding HTTP headers +%h - Remote host name +%H - Request protocol +%l - Remote logical username from identd (always returns '-') +%m - Request method +%p - Local port +%q - Query string (prepended with a '?' if it exists, otherwise an empty string +%r - First line of the request +%s - HTTP status code of the response +%S - User session ID +%t - Date and time, in Common Log Format format +%u - Remote user that was authenticated +%U - Requested URL path +%v - Local server name +%I - current request thread name (can compare later with stacktraces) + +%z - Custom pattern that parses the cert for the subject +%y - Custom pattern determines rest or dme2 + -->
\ No newline at end of file diff --git a/kubernetes/aai/charts/aai-traversal/resources/config/log/logback.xml b/kubernetes/aai/charts/aai-traversal/resources/config/log/logback.xml deleted file mode 100644 index fb8d8a53bf..0000000000 --- a/kubernetes/aai/charts/aai-traversal/resources/config/log/logback.xml +++ /dev/null @@ -1,345 +0,0 @@ -<configuration debug="false" scan="true" scanPeriod="3 seconds"> - <contextName>${module.ajsc.namespace.name}</contextName> - <jmxConfigurator /> - <property name="logDir" value="/var/log/onap" /> - <property name="componentName" value="aai"></property> - <property name="restLogDirectory" value="${logDir}/${componentName}/rest" /> - <property name="dmaapLogDirectory" value="${logDir}/${componentName}/dmaapAAIEventConsumer" /> - <property name="perfLogsDirectory" value="${logDir}/${componentName}/perf-audit" /> - <!-- default eelf log file names --> - <property name="errorLogName" value="error" /> - <property name="metricsLogName" value="metrics" /> - <property name="auditLogName" value="audit" /> - <property name="debugLogName" value="debug" /> - <property name="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" /> - <appender class="ch.qos.logback.core.ConsoleAppender" name="STDOUT"> - <filter class="ch.qos.logback.classic.filter.LevelFilter"> - <level>ERROR</level> - <onMatch>ACCEPT</onMatch> - <onMismatch>DENY</onMismatch> - </filter> - <encoder> - <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{1024} - %msg%n</pattern> - </encoder> - </appender> - <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="SANE"> - <file>${restLogDirectory}/sane.log</file> - <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> - <fileNamePattern>${restLogDirectory}/sane.%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="asyncSANE"> - <queueSize>${queueSize}</queueSize> - <includeCallerData>true</includeCallerData> - <appender-ref ref="SANE" /> - </appender> - <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="METRIC"> - <filter class="ch.qos.logback.classic.filter.LevelFilter"> - <level>INFO</level> - <onMatch>ACCEPT</onMatch> - <onMismatch>DENY</onMismatch> - </filter> - <file>${restLogDirectory}/${metricsLogName}.log</file> - <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> - <fileNamePattern>${restLogDirectory}/${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 class="org.onap.aai.logging.EcompEncoder"> - <pattern>${pattern}</pattern> - </encoder> - </appender> - <appender class="ch.qos.logback.classic.AsyncAppender" name="asyncMETRIC"> - <queueSize>${queueSize}</queueSize> - <includeCallerData>true</includeCallerData> - <appender-ref ref="METRIC" /> - </appender> - <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="DEBUG"> - <filter class="ch.qos.logback.classic.filter.LevelFilter"> - <level>DEBUG</level> - <onMatch>ACCEPT</onMatch> - <onMismatch>DENY</onMismatch> - </filter> - <file>${restLogDirectory}/${debugLogName}.log</file> - <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> - <fileNamePattern>${restLogDirectory}/${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 class="org.onap.aai.logging.EcompEncoder"> - <pattern>${pattern}</pattern> - </encoder> - </appender> - <appender class="ch.qos.logback.classic.AsyncAppender" name="asyncDEBUG"> - <queueSize>${queueSize}</queueSize> - <includeCallerData>true</includeCallerData> - <appender-ref ref="DEBUG" /> - </appender> - <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="ERROR"> - <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> - <level>WARN</level> - </filter> - <file>${restLogDirectory}/${errorLogName}.log</file> - <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> - <fileNamePattern>${restLogDirectory}/${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 class="org.onap.aai.logging.EcompEncoder"> - <pattern>${pattern}</pattern> - </encoder> - </appender> - <appender class="ch.qos.logback.classic.AsyncAppender" name="asyncERROR"> - <queueSize>${queueSize}</queueSize> - <includeCallerData>true</includeCallerData> - <appender-ref ref="ERROR" /> - </appender> - <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="AUDIT"> - <file>${restLogDirectory}/${auditLogName}.log</file> - <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> - <fileNamePattern>${restLogDirectory}/${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 class="org.onap.aai.logging.EcompEncoder"> - <pattern>${pattern}</pattern> - </encoder> - </appender> - <appender class="ch.qos.logback.classic.AsyncAppender" name="asyncAUDIT"> - <queueSize>${queueSize}</queueSize> - <includeCallerData>true</includeCallerData> - <appender-ref ref="AUDIT" /> - </appender> - <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="translog"> - <filter class="ch.qos.logback.classic.filter.LevelFilter"> - <level>DEBUG</level> - <onMatch>ACCEPT</onMatch> - <onMismatch>DENY</onMismatch> - </filter> - <file>${restLogDirectory}/translog.log</file> - <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> - <fileNamePattern>${restLogDirectory}/translog.%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 class="org.onap.aai.logging.EcompEncoder"> - <pattern>${pattern}</pattern> - </encoder> - </appender> - <appender class="ch.qos.logback.classic.AsyncAppender" name="asynctranslog"> - <queueSize>${queueSize}</queueSize> - <includeCallerData>true</includeCallerData> - <appender-ref ref="translog" /> - </appender> - <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="dmaapAAIEventConsumer"> - <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> - <level>WARN</level> - </filter> - <File>${dmaapLogDirectory}/${errorLogName}.log</File> - <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> - <fileNamePattern>${dmaapLogDirectory}/${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 class="org.onap.aai.logging.EcompEncoder"> - <pattern>${pattern}</pattern> - </encoder> - </appender> - <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="dmaapAAIEventConsumerDebug"> - <filter class="ch.qos.logback.classic.filter.LevelFilter"> - <level>DEBUG</level> - <onMatch>ACCEPT</onMatch> - <onMismatch>DENY</onMismatch> - </filter> - <File>${dmaapLogDirectory}/${debugLogName}.log</File> - <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> - <fileNamePattern>${dmaapLogDirectory}/${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 class="org.onap.aai.logging.EcompEncoder"> - <pattern>${pattern}</pattern> - </encoder> - </appender> - <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="dmaapAAIEventConsumerMetric"> - <filter class="ch.qos.logback.classic.filter.LevelFilter"> - <level>INFO</level> - <onMatch>ACCEPT</onMatch> - <onMismatch>DENY</onMismatch> - </filter> - <File>${dmaapLogDirectory}/${metricsLogName}.log</File> - <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> - <fileNamePattern>${dmaapLogDirectory}/${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 class="org.onap.aai.logging.EcompEncoder"> - <pattern>${pattern}</pattern> - </encoder> - </appender> - <!-- 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" /> - <!-- AJSC Services (bootstrap services) --> - <logger level="WARN" name="ajsc" /> - <logger level="WARN" name="ajsc.RouteMgmtService" /> - <logger level="WARN" name="ajsc.ComputeService" /> - <logger level="WARN" name="ajsc.VandelayService" /> - <logger level="WARN" name="ajsc.FilePersistenceService" /> - <logger level="WARN" name="ajsc.UserDefinedJarService" /> - <logger level="WARN" name="ajsc.UserDefinedBeansDefService" /> - <logger level="WARN" name="ajsc.LoggingConfigurationService" /> - <!-- AJSC related loggers (DME2 Registration, csi logging, restlet, servlet - logging) --> - <logger level="WARN" name="ajsc.utils" /> - <logger level="WARN" name="ajsc.utils.DME2Helper" /> - <logger level="WARN" name="ajsc.filters" /> - <logger level="WARN" name="ajsc.beans.interceptors" /> - <logger level="WARN" name="ajsc.restlet" /> - <logger level="WARN" name="ajsc.servlet" /> - <logger level="WARN" name="com.att.ajsc" /> - <logger level="WARN" name="com.att.ajsc.csi.logging" /> - <logger level="WARN" name="com.att.ajsc.filemonitor" /> - <!-- 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" /> - <!-- logback jms appenders & loggers definition starts here --> - <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="auditLogs"> - <filter class="ch.qos.logback.classic.filter.ThresholdFilter" /> - <file>${perfLogsDirectory}/Audit-${lrmRVer}-${lrmRO}-${Pid}.log</file> - <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> - <fileNamePattern>${perfLogsDirectory}/Audit-${lrmRVer}-${lrmRO}-${Pid}.%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.core.rolling.RollingFileAppender" name="perfLogs"> - <filter class="ch.qos.logback.classic.filter.ThresholdFilter" /> - <file>${perfLogsDirectory}/Perform-${lrmRVer}-${lrmRO}-${Pid}.log</file> - <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> - <fileNamePattern>${perfLogsDirectory}/Perform-${lrmRVer}-${lrmRO}-${Pid}.%d{yyyy-MM-dd}.%i.log</fileNamePattern> - <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> - <maxFileSize>${maxFileSize}</maxFileSize> - </timeBasedFileNamingAndTriggeringPolicy> - <maxHistory>${maxHistory}</maxHistory> - <totalSizeCap>${totalSizeCap}</totalSizeCap> - </rollingPolicy> - <encoder> - <pattern>${pattern}</pattern> - </encoder> - </appender> - <appender class="ch.qos.logback.classic.AsyncAppender" name="ASYNC-audit"> - <queueSize>${queueSize}</queueSize> - <includeCallerData>true</includeCallerData> - <discardingThreshold>0</discardingThreshold> - <appender-ref ref="Audit-Record-Queue" /> - </appender> - <appender class="ch.qos.logback.classic.AsyncAppender" name="ASYNC-perf"> - <queueSize>${queueSize}</queueSize> - <includeCallerData>true</includeCallerData> - <discardingThreshold>0</discardingThreshold> - <appender-ref ref="Performance-Tracker-Queue" /> - </appender> - <logger additivity="false" level="INFO" name="AuditRecord"> - <appender-ref ref="ASYNC-audit" /> - <appender-ref ref="auditLogs" /> - </logger> - <logger additivity="false" level="INFO" name="AuditRecord_DirectCall"> - <appender-ref ref="ASYNC-audit" /> - <appender-ref ref="auditLogs" /> - </logger> - <logger additivity="false" level="INFO" name="PerfTrackerRecord"> - <appender-ref ref="ASYNC-perf" /> - <appender-ref ref="perfLogs" /> - </logger> - <!-- logback jms appenders & loggers definition ends here --> - <logger additivity="false" level="DEBUG" name="org.onap.aai.interceptors"> - <appender-ref ref="asynctranslog" /> - </logger> - <logger level="DEBUG" name="org.onap.aai.interceptors.PreAaiAjscInterceptor"> - <appender-ref ref="asyncAUDIT" /> - </logger> - <logger level="DEBUG" name="org.onap.aai.interceptors.PostAaiAjscInterceptor"> - <appender-ref ref="asyncAUDIT" /> - </logger> - <logger additivity="false" level="DEBUG" name="org.onap.aai.dmaap"> - <appender-ref ref="dmaapAAIEventConsumer" /> - <appender-ref ref="dmaapAAIEventConsumerDebug" /> - <appender-ref ref="dmaapAAIEventConsumerMetric" /> - </logger> - <logger level="WARN" name="org.apache" /> - <logger level="WARN" name="org.zookeeper" /> - <logger level="WARN" name="com.thinkaurelius" /> - <!-- ============================================================================ --> - <!-- General EELF logger --> - <!-- ============================================================================ --> - <logger additivity="false" level="WARN" name="com.att.eelf"> - <appender-ref ref="asyncDEBUG" /> - <appender-ref ref="asyncERROR" /> - <appender-ref ref="asyncMETRIC" /> - <appender-ref ref="asyncAUDIT" /> - </logger> - <root level="INFO"> - <appender-ref ref="asyncDEBUG" /> - <appender-ref ref="asyncERROR" /> - </root> -</configuration> diff --git a/kubernetes/aai/charts/aai-traversal/resources/config/logback.xml b/kubernetes/aai/charts/aai-traversal/resources/config/logback.xml new file mode 100644 index 0000000000..2ed8f5c8f1 --- /dev/null +++ b/kubernetes/aai/charts/aai-traversal/resources/config/logback.xml @@ -0,0 +1,365 @@ +<!-- + ============LICENSE_START======================================================= + org.onap.aai + ================================================================================ + Copyright © 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========================================================= + ECOMP is a trademark and service mark of AT&T Intellectual Property. +--> +<configuration scan="true" scanPeriod="60 seconds" debug="false"> + <statusListener class="ch.qos.logback.core.status.NopStatusListener" /> + <property resource="application.properties" /> + <property name="namespace" value="aai-traversal"/> + <property name="AJSC_HOME" value="${AJSC_HOME:-.}" /> + <jmxConfigurator /> + <property name="logDirectory" value="${AJSC_HOME}/logs" /> + <property name="eelfLogPattern" value="%ecompStartTime|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{requestId}|%X{serviceInstanceId}|%-10t|%X{serverName}|%X{serviceName}|%X{partnerName}|%X{statusCode}|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n', '^'}|%X{instanceUUID}|%level|%X{severity}|%X{serverIpAddress}|%ecompElapsedTime|%X{server}|%X{clientIpAddress}|%eelfClassOfCaller|%X{unused}|%X{processKey}|%X{customField1}|%X{customField2}|%X{customField3}|%X{customField4}|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/> + <property name="eelfAuditLogPattern" value="%ecompStartTime|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{requestId}|%X{serviceInstanceId}|%-10t|%X{serverName}|%X{serviceName}|%X{partnerName}|%X{statusCode}|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n|\r\n', '^'}|%X{instanceUUID}|%level|%X{severity}|%X{serverIpAddress}|%ecompElapsedTime|%X{server}|%X{clientIpAddress}|%eelfClassOfCaller|%X{unused}|%X{processKey}|%X{customField1}|%X{customField2}|%X{customField3}|%X{customField4}|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/> + <property name="eelfMetricLogPattern" value="%ecompStartTime|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{requestId}|%X{serviceInstanceId}|%-10t|%X{serverName}|%X{serviceName}|%X{partnerName}|%X{targetEntity}|%X{targetServiceName}|%X{statusCode}|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n', '^'}|%X{instanceUUID}|%level|%X{severity}|%X{serverIpAddress}|%ecompElapsedTime|%X{server}|%X{clientIpAddress}|%eelfClassOfCaller|%X{unused}|%X{processKey}|%X{targetVirtualEntity}|%X{customField1}|%X{customField2}|%X{customField3}|%X{customField4}|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/> + <!-- <property name="eelfErrorLogPattern" value="%ecompStartTime|%X{requestId}|%-10t|%X{serviceName}|%X{partnerName}|%X{targetEntity}|%X{targetServiceName}|%ecompErrorCategory|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n|\r\n', '^'}|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/> --> + <property name="eelfErrorLogPattern" value="%ecompStartTime|%X{requestId}|%-10t|%X{serviceName}|%X{partnerName}|%X{targetEntity}|%X{targetServiceName}|%ecompErrorCategory|%ecompResponseCode|%ecompResponseDescription|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/> + <property name="eelfTransLogPattern" value="%ecompStartTime|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{requestId}|%X{serviceInstanceId}|%-10t|%X{serverName}|%X{serviceName}|%X{partnerName}|%X{statusCode}|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n', '^'}|%X{instanceUUID}|%level|%X{severity}|%X{serverIpAddress}|%ecompElapsedTime|%X{server}|%X{clientIpAddress}|%eelfClassOfCaller|%X{unused}|%X{processKey}|%X{customField1}|%X{customField2}|%X{customField3}|%X{customField4}|co=%X{partnerName}:%m%n"/> + <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" /> + <conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" /> + <conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" /> + <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> + <encoder> + <pattern> + %clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx} + </pattern> + </encoder> + </appender> + <appender name="SANE" class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${logDirectory}/rest/sane.log</file> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/rest/sane.log.%d{yyyy-MM-dd}</fileNamePattern> + </rollingPolicy> + <encoder> + <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{1024} - %msg%n + </pattern> + </encoder> + </appender> + <appender name="asyncSANE" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>1000</queueSize> + <includeCallerData>true</includeCallerData> + <appender-ref ref="SANE" /> + </appender> + <appender name="METRIC" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <filter class="ch.qos.logback.classic.filter.LevelFilter"> + <level>INFO</level> + <onMatch>ACCEPT</onMatch> + <onMismatch>DENY</onMismatch> + </filter> + <file>${logDirectory}/rest/metrics.log</file> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/rest/metrics.log.%d{yyyy-MM-dd} + </fileNamePattern> + </rollingPolicy> + <encoder class="org.onap.aai.logging.EcompEncoder"> + <pattern>${eelfMetricLogPattern}</pattern> + </encoder> + </appender> + <appender name="asyncMETRIC" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>1000</queueSize> + <includeCallerData>true</includeCallerData> + <appender-ref ref="METRIC" /> + </appender> + <appender name="DEBUG" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <filter class="ch.qos.logback.classic.filter.LevelFilter"> + <level>DEBUG</level> + <onMatch>ACCEPT</onMatch> + <onMismatch>DENY</onMismatch> + </filter> + <file>${logDirectory}/rest/debug.log</file> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/rest/debug.log.%d{yyyy-MM-dd} + </fileNamePattern> + </rollingPolicy> + <encoder class="org.onap.aai.logging.EcompEncoder"> + <pattern>${eelfLogPattern}</pattern> + </encoder> + </appender> + <appender name="asyncDEBUG" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>1000</queueSize> + <includeCallerData>true</includeCallerData> + <appender-ref ref="DEBUG" /> + </appender> + <appender name="ERROR" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> + <level>WARN</level> + </filter> + <file>${logDirectory}/rest/error.log</file> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/rest/error.log.%d{yyyy-MM-dd} + </fileNamePattern> + </rollingPolicy> + <encoder class="org.onap.aai.logging.EcompEncoder"> + <pattern>${eelfErrorLogPattern}</pattern> + </encoder> + </appender> + <appender name="asyncERROR" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>1000</queueSize> + <includeCallerData>true</includeCallerData> + <appender-ref ref="ERROR" /> + </appender> + <appender name="AUDIT" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${logDirectory}/rest/audit.log</file> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/rest/audit.log.%d{yyyy-MM-dd} + </fileNamePattern> + </rollingPolicy> + <encoder class="org.onap.aai.logging.EcompEncoder"> + <pattern>${eelfAuditLogPattern}</pattern> + </encoder> + </appender> + <appender name="asyncAUDIT" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>1000</queueSize> + <includeCallerData>true</includeCallerData> + <appender-ref ref="AUDIT" /> + </appender> + <appender name="translog" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <filter class="ch.qos.logback.classic.filter.LevelFilter"> + <level>DEBUG</level> + <onMatch>ACCEPT</onMatch> + <onMismatch>DENY</onMismatch> + </filter> + <file>${logDirectory}/rest/translog.log</file> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/rest/translog.log.%d{yyyy-MM-dd} + </fileNamePattern> + </rollingPolicy> + <encoder class="org.onap.aai.logging.EcompEncoder"> + <pattern>${eelfTransLogPattern}</pattern> + </encoder> + </appender> + <appender name="asynctranslog" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>1000</queueSize> + <includeCallerData>true</includeCallerData> + <appender-ref ref="translog" /> + </appender> + <appender name="dmaapAAIEventConsumer" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> + <level>WARN</level> + </filter> + <File>${logDirectory}/dmaapAAIEventConsumer/error.log</File> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/dmaapAAIEventConsumer/error.log.%d{yyyy-MM-dd} + </fileNamePattern> + </rollingPolicy> + <encoder class="org.onap.aai.logging.EcompEncoder"> + <pattern>${eelfLogPattern}</pattern> + </encoder> + </appender> + <appender name="dmaapAAIEventConsumerDebug" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <filter class="ch.qos.logback.classic.filter.LevelFilter"> + <level>DEBUG</level> + <onMatch>ACCEPT</onMatch> + <onMismatch>DENY</onMismatch> + </filter> + <File>${logDirectory}/dmaapAAIEventConsumer/debug.log</File> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/dmaapAAIEventConsumer/debug.log.%d{yyyy-MM-dd} + </fileNamePattern> + </rollingPolicy> + <encoder class="org.onap.aai.logging.EcompEncoder"> + <pattern>${eelfLogPattern}</pattern> + </encoder> + </appender> + <appender name="dmaapAAIEventConsumerMetric" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <filter class="ch.qos.logback.classic.filter.LevelFilter"> + <level>INFO</level> + <onMatch>ACCEPT</onMatch> + <onMismatch>DENY</onMismatch> + </filter> + <File>${logDirectory}/dmaapAAIEventConsumer/metrics.log</File> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/dmaapAAIEventConsumer/metrics.log.%d{yyyy-MM-dd} + </fileNamePattern> + </rollingPolicy> + <encoder class="org.onap.aai.logging.EcompEncoder"> + <pattern>${eelfMetricLogPattern}</pattern> + </encoder> + </appender> + <appender name="external" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> + <level>WARN</level> + </filter> + <file>${logDirectory}/external/external.log</file> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/external/external.log.%d{yyyy-MM-dd} + </fileNamePattern> + </rollingPolicy> + <encoder class="org.onap.aai.logging.EcompEncoder"> + <pattern>${eelfLogPattern}</pattern> + </encoder> + </appender> + <logger name="org.onap.aai" level="DEBUG" additivity="false"> + <appender-ref ref="asyncDEBUG" /> + <appender-ref ref="asyncERROR" /> + <appender-ref ref="asyncMETRIC" /> + <appender-ref ref="asyncSANE" /> + </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.jayway.jsonpath" level="WARN" /> + <!-- AJSC Services (bootstrap services) --> + <logger name="ajsc" level="WARN" /> + <logger name="ajsc.RouteMgmtService" level="WARN" /> + <logger name="ajsc.ComputeService" level="WARN" /> + <logger name="ajsc.VandelayService" level="WARN" /> + <logger name="ajsc.FilePersistenceService" level="WARN" /> + <logger name="ajsc.UserDefinedJarService" level="WARN" /> + <logger name="ajsc.UserDefinedBeansDefService" level="WARN" /> + <logger name="ajsc.LoggingConfigurationService" level="WARN" /> + <!-- AJSC related loggers (DME2 Registration, csi logging, restlet, servlet + logging) --> + <logger name="org.codehaus.groovy" level="WARN" /> + <logger name="com.att.scamper" level="WARN" /> + <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.ajsc" level="WARN" /> + <logger name="com.att.ajsc.csi.logging" level="WARN" /> + <logger name="com.att.ajsc.filemonitor" level="WARN" /> + <logger name="com.netflix.loadbalancer" level="WARN" /> + <logger name="org.apache.zookeeper" level="OFF" /> + <!-- 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" /> + <logger name="org.hibernate.validator" level="WARN" /> + <logger name="org.hibernate" level="WARN" /> + <logger name="org.hibernate.ejb" level="OFF" /> + <!-- logback internals logging --> + <logger name="ch.qos.logback.classic" level="WARN" /> + <logger name="ch.qos.logback.core" level="WARN" /> + <logger name="org.eclipse.jetty" level="WARN" /> + <!-- logback jms appenders & loggers definition starts here --> + <appender name="auditLogs" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <filter class="ch.qos.logback.classic.filter.ThresholdFilter" /> + <file>${logDirectory}/perf-audit/Audit-${lrmRVer}-${lrmRO}-${Pid}.log + </file> + <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> + <fileNamePattern>${logDirectory}/perf-audit/Audit-${lrmRVer}-${lrmRO}-${Pid}.%i.log.zip + </fileNamePattern> + <minIndex>1</minIndex> + <maxIndex>9</maxIndex> + </rollingPolicy> + <triggeringPolicy + class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> + <maxFileSize>5MB</maxFileSize> + </triggeringPolicy> + <encoder> + <pattern>"%d [%thread] %-5level %logger{1024} - %msg%n"</pattern> + </encoder> + </appender> + <appender name="perfLogs" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <filter class="ch.qos.logback.classic.filter.ThresholdFilter" /> + <file>${logDirectory}/perf-audit/Perform-${lrmRVer}-${lrmRO}-${Pid}.log + </file> + <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> + <fileNamePattern>${logDirectory}/perf-audit/Perform-${lrmRVer}-${lrmRO}-${Pid}.%i.log.zip + </fileNamePattern> + <minIndex>1</minIndex> + <maxIndex>9</maxIndex> + </rollingPolicy> + <triggeringPolicy + class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> + <maxFileSize>5MB</maxFileSize> + </triggeringPolicy> + <encoder> + <pattern>"%d [%thread] %-5level %logger{1024} - %msg%n"</pattern> + </encoder> + </appender> + <appender name="miscLogs" class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${logDirectory}/misc/misc.log</file> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/misc/misc.log.%d{yyyy-MM-dd}</fileNamePattern> + </rollingPolicy> + <encoder> + <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{1024} - %msg%n + </pattern> + </encoder> + </appender> + <logger name="AuditRecord" level="INFO" additivity="false"> + <appender-ref ref="auditLogs" /> + </logger> + <logger name="AuditRecord_DirectCall" level="INFO" additivity="false"> + <appender-ref ref="auditLogs" /> + </logger> + <logger name="PerfTrackerRecord" level="INFO" additivity="false"> + <appender-ref ref="perfLogs" /> + </logger> + <logger name="MiscRecord" level="INFO" additivity="false"> + <appender-ref ref="miscLogs" /> + </logger> + <!-- logback jms appenders & loggers definition ends here --> + <logger name="org.onap.aai.interceptors.post" level="DEBUG" + additivity="false"> + <appender-ref ref="asynctranslog" /> + </logger> + <logger name="org.onap.aai.interceptors.pre.SetLoggingContext" level="DEBUG"> + <appender-ref ref="asyncAUDIT"/> + </logger> + <logger name="org.onap.aai.interceptors.post.ResetLoggingContext" level="DEBUG"> + <appender-ref ref="asyncAUDIT"/> + </logger> + <logger name="org.onap.aai.dmaap" level="DEBUG" additivity="false"> + <appender-ref ref="dmaapAAIEventConsumer" /> + <appender-ref ref="dmaapAAIEventConsumerDebug" /> + <appender-ref ref="dmaapAAIEventConsumerMetric" /> + </logger> + <logger name="org.apache" level="OFF" /> + <logger name="org.zookeeper" level="OFF" /> + <logger name="com.thinkaurelius" level="WARN" /> + <logger name="com.att.aft.dme2" level="WARN" /> + <!-- ============================================================================ --> + <!-- General EELF logger --> + <!-- ============================================================================ --> + <logger name="com.att.eelf" level="WARN" additivity="false"> + <appender-ref ref="asyncDEBUG" /> + <appender-ref ref="asyncERROR" /> + <appender-ref ref="asyncMETRIC" /> + </logger> + <root level="DEBUG"> + <appender-ref ref="external" /> + </root> +</configuration> diff --git a/kubernetes/aai/charts/aai-traversal/resources/config/realm.properties b/kubernetes/aai/charts/aai-traversal/resources/config/realm.properties new file mode 100644 index 0000000000..fb692cc3eb --- /dev/null +++ b/kubernetes/aai/charts/aai-traversal/resources/config/realm.properties @@ -0,0 +1,12 @@ +# format : username: password[,rolename ...] +# default username/password: AAI/AAI, MSO/MSO, ModelLoader/ModelLoader... +AAI:OBF:1gfr1ev31gg7,admin +MSO:OBF:1jzx1lz31k01,admin +SDNC:OBF:1itr1i0l1i151isv,admin +DCAE:OBF:1g8u1f9d1f991g8w,admin +POLICY:OBF:1mk61i171ima1im41i0j1mko,admin +ASDC:OBF:1f991j0u1j001f9d,admin +VID:OBF:1jm91i0v1jl9,admin +APPC:OBF:1f991ksf1ksf1f9d,admin +ModelLoader:OBF:1qvu1v2h1sov1sar1wfw1j7j1wg21saj1sov1v1x1qxw,admin +AaiUI:OBF:1gfr1p571unz1p4j1gg7,admin diff --git a/kubernetes/aai/charts/aai-traversal/templates/configmap.yaml b/kubernetes/aai/charts/aai-traversal/templates/configmap.yaml index a7e9428a88..cc88444ae2 100644 --- a/kubernetes/aai/charts/aai-traversal/templates/configmap.yaml +++ b/kubernetes/aai/charts/aai-traversal/templates/configmap.yaml @@ -4,4 +4,61 @@ metadata: name: {{ include "common.fullname" . }}-log namespace: {{ include "common.namespace" . }} data: -{{ tpl (.Files.Glob "resources/config/log/logback.xml").AsConfig . | indent 2 }} +{{ tpl (.Files.Glob "resources/config/logback.xml").AsConfig . | indent 2 }} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "common.fullname" . }}-localhost-access-log-configmap + namespace: {{ include "common.namespace" . }} +data: +{{ tpl (.Files.Glob "resources/config/localhost-access-logback.xml").AsConfig . | indent 2 }} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "common.fullname" . }}-db-real-configmap + namespace: {{ include "common.namespace" . }} +data: +{{ tpl (.Files.Glob "resources/config/janusgraph-realtime.properties").AsConfig . | indent 2 }} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "common.fullname" . }}-db-cached-configmap + namespace: {{ include "common.namespace" . }} +data: +{{ tpl (.Files.Glob "resources/config/janusgraph-cached.properties").AsConfig . | indent 2 }} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "common.fullname" . }}-aaiconfig-configmap + namespace: {{ include "common.namespace" . }} +data: +{{ tpl (.Files.Glob "resources/config/aaiconfig.properties").AsConfig . | indent 2 }} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "common.fullname" . }}-springapp-configmap + namespace: {{ include "common.namespace" . }} +data: +{{ tpl (.Files.Glob "resources/config/application.properties").AsConfig . | indent 2 }} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "common.fullname" . }}-realm-configmap + namespace: {{ include "common.namespace" . }} +data: +{{ tpl (.Files.Glob "resources/config/realm.properties").AsConfig . | indent 2 }} +--- +apiVersion: v1 +kind: Secret +metadata: + name: {{ include "common.fullname" . }}-auth-secret + namespace: {{ include "common.namespace" . }} +type: Opaque +data: +{{ tpl (.Files.Glob "resources/config/aai_keystore").AsSecrets . | indent 2 }}
\ No newline at end of file diff --git a/kubernetes/aai/charts/aai-traversal/templates/deployment.yaml b/kubernetes/aai/charts/aai-traversal/templates/deployment.yaml index b4249aede1..bda80a0483 100644 --- a/kubernetes/aai/charts/aai-traversal/templates/deployment.yaml +++ b/kubernetes/aai/charts/aai-traversal/templates/deployment.yaml @@ -245,11 +245,14 @@ spec: } ]' spec: + hostname: aai-traversal initContainers: - command: - /root/ready.py args: - --container-name + - aai-cassandra + - --container-name - aai-resources env: - name: NAMESPACE @@ -265,32 +268,39 @@ spec: image: "{{ .Values.global.repository | default .Values.repository }}/{{ .Values.image }}" imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} env: - - name: CHEF_BRANCH - value: master - - name: AAI_CHEF_ENV - value: simpledemo - - name: AAI_CORE_VERSION - value: {{ .Values.config.aaicoreversion }} - - name: AAI_CHEF_LOC - value: /var/chef/aai-data/environments - - name: CHEF_GIT_URL - value: http://gerrit.onap.org/r/aai - - name: RESOURCES_HOSTNAME - value: aai-resources.{{ include "common.namespace" . }} + - name: DISABLE_UPDATE_QUERY + value: {{ .Values.config.disableUpdateQuery | quote }} + - name: LOCAL_USER_ID + value: {{ .Values.config.userId | quote }} + - name: LOCAL_GROUP_ID + value: {{ .Values.config.groupId | quote }} volumeMounts: - mountPath: /etc/localtime name: localtime readOnly: true - - mountPath: /var/chef/aai-data/chef-config/dev/.knife/solo.rb - subPath: solo.rb - name: aai-chef-config - - mountPath: /var/chef/aai-data/environments/ - name: aai-data + - mountPath: /opt/app/aai-traversal/resources/etc/appprops/janusgraph-realtime.properties + name: {{ include "common.fullname" . }}-db-real-conf + subPath: janusgraph-realtime.properties + - mountPath: /opt/app/aai-traversal/resources/etc/appprops/janusgraph-cached.properties + name: {{ include "common.fullname" . }}-db-cached-conf + subPath: janusgraph-cached.properties + - mountPath: /opt/app/aai-traversal/resources/etc/appprops/aaiconfig.properties + name: {{ include "common.fullname" . }}-aaiconfig-conf + subPath: aaiconfig.properties - mountPath: /var/log/onap - name: aai-traversal-logs - - mountPath: /opt/app/aai-traversal/bundleconfig/etc/logback.xml - name: aai-traversal-log-conf + name: {{ include "common.fullname" . }}-logs + - mountPath: /opt/app/aai-traversal/resources/logback.xml + name: {{ include "common.fullname" . }}-log-conf subPath: logback.xml + - mountPath: /opt/app/aai-traversal/resources/localhost-access-logback.xml + name: {{ include "common.fullname" . }}-localhost-access-log-conf + subPath: localhost-access-logback.xml + - mountPath: /opt/app/aai-traversal/resources/application.properties + name: {{ include "common.fullname" . }}-springapp-conf + subPath: application.properties + - mountPath: /opt/app/aai-traversal/resources/etc/auth/aai_keystore + name: {{ include "common.fullname" . }}-auth-sec + subPath: aai_keystore ports: - containerPort: {{ .Values.service.internalPort }} - containerPort: {{ .Values.service.internalPort2 }} @@ -328,30 +338,44 @@ spec: subPath: filebeat.yml name: filebeat-conf - mountPath: /var/log/onap - name: aai-traversal-logs + name: {{ include "common.fullname" . }}-logs - mountPath: /usr/share/filebeat/data - name: aai-traversal-filebeat - + name: {{ include "common.fullname" . }}-filebeat volumes: - name: localtime hostPath: path: /etc/localtime - - name: aai-chef-config - configMap: - name: aai-chef-config - - name: aai-data - configMap: - name: aai-resources-environments - name: filebeat-conf configMap: name: aai-filebeat - - name: aai-traversal-logs + - name: {{ include "common.fullname" . }}-logs emptyDir: {} - - name: aai-traversal-filebeat + - name: {{ include "common.fullname" . }}-filebeat emptyDir: {} - - name: aai-traversal-log-conf + - name: {{ include "common.fullname" . }}-log-conf configMap: name: {{ include "common.fullname" . }}-log + - name: {{ include "common.fullname" . }}-localhost-access-log-conf + configMap: + name: {{ include "common.fullname" . }}-localhost-access-log-configmap + - name: {{ include "common.fullname" . }}-db-real-conf + configMap: + name: {{ include "common.fullname" . }}-db-real-configmap + - name: {{ include "common.fullname" . }}-db-cached-conf + configMap: + name: {{ include "common.fullname" . }}-db-cached-configmap + - name: {{ include "common.fullname" . }}-aaiconfig-conf + configMap: + name: {{ include "common.fullname" . }}-aaiconfig-configmap + - name: {{ include "common.fullname" . }}-springapp-conf + configMap: + name: {{ include "common.fullname" . }}-springapp-configmap + - name: {{ include "common.fullname" . }}-realm-conf + configMap: + name: {{ include "common.fullname" . }}-realm-configmap + - name: {{ include "common.fullname" . }}-auth-sec + secret: + secretName: {{ include "common.fullname" . }}-auth-secret restartPolicy: {{ .Values.global.restartPolicy | default .Values.restartPolicy }} imagePullSecrets: - name: "{{ include "common.namespace" . }}-docker-registry-key" diff --git a/kubernetes/aai/charts/aai-traversal/templates/job.yaml b/kubernetes/aai/charts/aai-traversal/templates/job.yaml new file mode 100644 index 0000000000..c15c05398f --- /dev/null +++ b/kubernetes/aai/charts/aai-traversal/templates/job.yaml @@ -0,0 +1,139 @@ +# Copyright © 2017-2018 AT&T +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +apiVersion: batch/v1 +kind: Job +metadata: + name: {{ include "common.fullname" . }}-update-query-data + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +spec: + template: + metadata: + labels: + app: {{ include "common.name" . }}-job + release: {{ .Release.Name }} + name: {{ include "common.name" . }} + spec: + initContainers: + - command: + - /root/ready.py + args: + - --container-name + - aai + 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" . }}-job + image: "{{ .Values.global.repository | default .Values.repository }}/{{ .Values.image }}" + imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + command: + - bash + - "-c" + - | + set -x + mkdir -p /opt/aai/logroot/AAI-GQ/misc + bash -x /opt/app/aai-traversal/docker-entrypoint.sh install/updateQueryData.sh + env: + - name: LOCAL_USER_ID + value: "1000" + - name: LOCAL_GROUP_ID + value: "1000" + volumeMounts: + - mountPath: /etc/localtime + name: localtime + readOnly: true + - mountPath: /opt/app/aai-traversal/resources/etc/appprops/janusgraph-realtime.properties + name: {{ include "common.fullname" . }}-db-real-conf + subPath: janusgraph-realtime.properties + - mountPath: /opt/app/aai-traversal/resources/etc/appprops/janusgraph-cached.properties + name: {{ include "common.fullname" . }}-db-cached-conf + subPath: janusgraph-cached.properties + - mountPath: /opt/app/aai-traversal/resources/etc/appprops/aaiconfig.properties + name: {{ include "common.fullname" . }}-aaiconfig-conf + subPath: aaiconfig.properties + - mountPath: /var/log/onap + name: {{ include "common.fullname" . }}-logs + - mountPath: /opt/app/aai-traversal/resources/logback.xml + name: {{ include "common.fullname" . }}-log-conf + subPath: logback.xml + - mountPath: /opt/app/aai-traversal/resources/localhost-access-logback.xml + name: {{ include "common.fullname" . }}-localhost-access-log-conf + subPath: localhost-access-logback.xml + - mountPath: /opt/app/aai-traversal/resources/application.properties + name: {{ include "common.fullname" . }}-springapp-conf + subPath: application.properties + - mountPath: /opt/app/aai-traversal/resources/etc/auth/aai_keystore + name: {{ include "common.fullname" . }}-auth-sec + 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: + path: /etc/localtime + - name: filebeat-conf + configMap: + name: aai-filebeat + - name: {{ include "common.fullname" . }}-logs + hostPath: + path: {{ .Values.persistence.mountPath }}/{{ include "common.namespace" . }}/{{ .Values.persistence.mountSubPath }}-update-query + - name: {{ include "common.fullname" . }}-filebeat + emptyDir: {} + - name: {{ include "common.fullname" . }}-log-conf + configMap: + name: {{ include "common.fullname" . }}-log + - name: {{ include "common.fullname" . }}-localhost-access-log-conf + configMap: + name: {{ include "common.fullname" . }}-localhost-access-log-configmap + - name: {{ include "common.fullname" . }}-db-real-conf + configMap: + name: {{ include "common.fullname" . }}-db-real-configmap + - name: {{ include "common.fullname" . }}-db-cached-conf + configMap: + name: {{ include "common.fullname" . }}-db-cached-configmap + - name: {{ include "common.fullname" . }}-aaiconfig-conf + configMap: + name: {{ include "common.fullname" . }}-aaiconfig-configmap + - name: {{ include "common.fullname" . }}-springapp-conf + configMap: + name: {{ include "common.fullname" . }}-springapp-configmap + - name: {{ include "common.fullname" . }}-realm-conf + configMap: + name: {{ include "common.fullname" . }}-realm-configmap + - name: {{ include "common.fullname" . }}-auth-sec + secret: + secretName: {{ include "common.fullname" . }}-auth-secret + restartPolicy: OnFailure + imagePullSecrets: + - name: "{{ include "common.namespace" . }}-docker-registry-key" diff --git a/kubernetes/aai/charts/aai-traversal/values.yaml b/kubernetes/aai/charts/aai-traversal/values.yaml index b1c8fedae8..d3d686d9f1 100644 --- a/kubernetes/aai/charts/aai-traversal/values.yaml +++ b/kubernetes/aai/charts/aai-traversal/values.yaml @@ -10,14 +10,20 @@ global: # global defaults # application image repository: nexus3.onap.org:10001 -image: openecomp/aai-traversal:v1.1.0 +image: onap/aai-traversal:1.2-STAGING-latest pullPolicy: Always restartPolicy: Always # application configuration config: aaicoreversion: 1.1.0-SNAPSHOT + userId: 1000 + groupId: 1000 + disableUpdateQuery: true +persistence: + mountPath: /dockerdata-nfs + mountSubPath: aai/aai-traversal # default number of instances replicaCount: 1 diff --git a/kubernetes/aai/templates/configmap.yaml b/kubernetes/aai/templates/configmap.yaml index 78235bcd4f..592e4129d1 100644 --- a/kubernetes/aai/templates/configmap.yaml +++ b/kubernetes/aai/templates/configmap.yaml @@ -14,22 +14,5 @@ metadata: namespace: {{ include "common.namespace" . }} data: {{ tpl (.Files.Glob "resources/config/haproxy/*").AsConfig . | indent 2 }} ---- -# this is a shared resource for subcharts -apiVersion: v1 -kind: ConfigMap -metadata: - name: aai-chef-config - namespace: {{ include "common.namespace" . }} -data: -{{ tpl (.Files.Glob "resources/config/aai-data/chef-config/dev/.knife/solo.rb").AsConfig . | indent 2 }} ---- -# this is a shared resource for subcharts -apiVersion: v1 -kind: ConfigMap -metadata: - name: aai-resources-environments - namespace: {{ include "common.namespace" . }} -data: -{{ tpl (.Files.Glob "resources/config/aai-data/environments/*").AsConfig . | indent 2 }} + diff --git a/kubernetes/aai/values.yaml b/kubernetes/aai/values.yaml index 8f35c62f5e..5d08268e88 100644 --- a/kubernetes/aai/values.yaml +++ b/kubernetes/aai/values.yaml @@ -26,6 +26,8 @@ global: # global defaults loggingRepository: docker.elastic.co loggingImage: beats/filebeat:5.5.0 restartPolicy: Always + cassandra: + replicas: 3 # application image dockerhubRepository: registry.hub.docker.com diff --git a/kubernetes/appc/resources/config/appc/opt/onap/appc/bin/startODL.sh b/kubernetes/appc/resources/config/appc/opt/onap/appc/bin/startODL.sh index 0b9e63127b..e5f04ca5e2 100755 --- a/kubernetes/appc/resources/config/appc/opt/onap/appc/bin/startODL.sh +++ b/kubernetes/appc/resources/config/appc/opt/onap/appc/bin/startODL.sh @@ -33,8 +33,8 @@ function enable_odl_cluster(){ fi echo "Installing Opendaylight cluster features" - ${ODL_HOME}/bin/client -u karaf feature:install odl-mdsal-clustering - ${ODL_HOME}/bin/client -u karaf feature:install odl-jolokia + ${ODL_HOME}/bin/client feature:install odl-mdsal-clustering + ${ODL_HOME}/bin/client feature:install odl-jolokia echo "Update cluster information statically" hm=$(hostname) @@ -53,13 +53,15 @@ function enable_odl_cluster(){ } ODL_HOME=${ODL_HOME:-/opt/opendaylight/current} -ODL_ADMIN_PASSWORD=${ODL_ADMIN_PASSWORD:-Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U} -SDNC_HOME=${SDNC_HOME:-/opt/onap/sdnc} +ODL_ADMIN_PASSWORD=${ODL_ADMIN_PASSWORD:-admin} +SDNC_HOME=${SDNC_HOME:-/opt/onap/ccsdk} APPC_HOME=${APPC_HOME:-/opt/onap/appc} SLEEP_TIME=${SLEEP_TIME:-120} MYSQL_PASSWD=${MYSQL_PASSWD:-{{.Values.config.dbRootPassword}}} ENABLE_ODL_CLUSTER=${ENABLE_ODL_CLUSTER:-false} +appcInstallStartTime=$(date +%s) + # # Adding the DMAAP_TOPIC_ENV variable into APPC-ASDC-LISTENER properties # @@ -93,17 +95,24 @@ if [ ! -f ${SDNC_HOME}/.installed ] then echo "Installing SDNC database" ${SDNC_HOME}/bin/installSdncDb.sh + echo "Installing APPC database" ${APPC_HOME}/bin/installAppcDb.sh + echo "Starting OpenDaylight" ${ODL_HOME}/bin/start + echo "Waiting ${SLEEP_TIME} seconds for OpenDaylight to initialize" sleep ${SLEEP_TIME} - echo "Inserting modified installFeatures.sh for sdnc" - rm ${SDNC_HOME}/bin/installFeatures.sh - cp ${APPC_HOME}/data/sdncInstallFeatures.sh ${SDNC_HOME}/bin/installFeatures.sh + + 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 + echo "Installing SDNC platform features" ${SDNC_HOME}/bin/installFeatures.sh + if [ -x ${SDNC_HOME}/svclogic/bin/install.sh ] then echo "Installing directed graphs" @@ -112,6 +121,7 @@ then echo "Installing APPC platform features" ${APPC_HOME}/bin/installFeatures.sh + if [ -x ${APPC_HOME}/svclogic/bin/install.sh ] then echo "Installing APPC DGs using platform-logic" @@ -126,10 +136,23 @@ then if $ENABLE_ODL_CLUSTER ; then enable_odl_cluster ; fi + echo "Adding a property system.properties for AAF cadi.properties location" + echo "" >> ${ODL_HOME}/etc/system.properties + 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 "Restarting OpenDaylight" ${ODL_HOME}/bin/stop + echo "Waiting 60 seconds for OpenDaylight stop to complete" + sleep 60 echo "Installed at `date`" > ${SDNC_HOME}/.installed fi + appcInstallEndTime=$(date +%s) + echo "Total Appc install took $(expr $appcInstallEndTime - $appcInstallStartTime) seconds" + exec ${ODL_HOME}/bin/karaf diff --git a/kubernetes/appc/resources/config/appc/opt/onap/appc/data/properties/appc.properties b/kubernetes/appc/resources/config/appc/opt/onap/appc/data/properties/appc.properties index f4ee6fcfc7..2d98d11a00 100644 --- a/kubernetes/appc/resources/config/appc/opt/onap/appc/data/properties/appc.properties +++ b/kubernetes/appc/resources/config/appc/opt/onap/appc/data/properties/appc.properties @@ -31,9 +31,9 @@ appc.demo.threads.queuesize.max=1000 appc.demo.threads.poolsize.min=1 appc.demo.threads.poolsize.max=2 appc.demo.provider.user=admin -appc.demo.provider.pass=Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U +appc.demo.provider.pass=admin appc.demo.provider.url=http://localhost:8181/restconf/operations/appc-provider -appc.provider.vfodl.url=http://admin:Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U@appc-sdnhost.{{.Release.Namespace}}:8282/restconf/config/network-topology:network-topology/topology/topology-netconf/node/NODE_NAME/yang-ext:mount/sample-plugin:sample-plugin/pg-streams/ +appc.provider.vfodl.url=http://admin:admin@appc-sdnhost.{{.Release.Namespace}}:8282/restconf/config/network-topology:network-topology/topology/topology-netconf/node/NODE_NAME/yang-ext:mount/sample-plugin:sample-plugin/pg-streams/ # The properties right below are needed to properly call the Master DG to serve demo purposes appc.service.logic.module.name=APPC @@ -59,7 +59,7 @@ provider1.identity=http://localhost:8181/apidoc/explorer/index.html provider1.tenant1.name=default provider1.tenant1.domain=default provider1.tenant1.userid=admin -provider1.tenant1.password=Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U +provider1.tenant1.password=admin @@ -83,14 +83,14 @@ 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.user=admin -appc.LCM.provider.pass=Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U +appc.LCM.provider.pass=admin 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 restconf.user=admin -restconf.pass=Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U +restconf.pass=admin # properties found in appc-rest-adapter-bundle, appc-chef-adapter-bundle, appc-iaas-adapter-bundle) @@ -129,4 +129,4 @@ appc.OAM.topic.read=testOAM appc.OAM.topic.write=testOAM appc.OAM.client.name=testOAM appc.OAM.provider.user=admin -appc.OAM.provider.pass=Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U +appc.OAM.provider.pass=admin diff --git a/kubernetes/appc/resources/config/appc/opt/onap/sdnc/bin/installSdncDb.sh b/kubernetes/appc/resources/config/appc/opt/onap/ccsdk/bin/installSdncDb.sh index 25560fbef4..25560fbef4 100755 --- a/kubernetes/appc/resources/config/appc/opt/onap/sdnc/bin/installSdncDb.sh +++ b/kubernetes/appc/resources/config/appc/opt/onap/ccsdk/bin/installSdncDb.sh diff --git a/kubernetes/appc/resources/config/appc/opt/onap/sdnc/bin/startODL.sh b/kubernetes/appc/resources/config/appc/opt/onap/ccsdk/bin/startODL.sh index a84893c00f..a84893c00f 100755 --- a/kubernetes/appc/resources/config/appc/opt/onap/sdnc/bin/startODL.sh +++ b/kubernetes/appc/resources/config/appc/opt/onap/ccsdk/bin/startODL.sh diff --git a/kubernetes/appc/resources/config/appc/opt/onap/sdnc/data/properties/aaiclient.properties b/kubernetes/appc/resources/config/appc/opt/onap/ccsdk/data/properties/aaiclient.properties index b2f7102d8c..b2f7102d8c 100644 --- a/kubernetes/appc/resources/config/appc/opt/onap/sdnc/data/properties/aaiclient.properties +++ b/kubernetes/appc/resources/config/appc/opt/onap/ccsdk/data/properties/aaiclient.properties diff --git a/kubernetes/appc/resources/config/appc/opt/onap/sdnc/data/properties/dblib.properties b/kubernetes/appc/resources/config/appc/opt/onap/ccsdk/data/properties/dblib.properties index f603977013..f603977013 100644 --- a/kubernetes/appc/resources/config/appc/opt/onap/sdnc/data/properties/dblib.properties +++ b/kubernetes/appc/resources/config/appc/opt/onap/ccsdk/data/properties/dblib.properties diff --git a/kubernetes/appc/resources/config/appc/opt/onap/sdnc/data/properties/svclogic.properties b/kubernetes/appc/resources/config/appc/opt/onap/ccsdk/data/properties/svclogic.properties index 908d60a089..908d60a089 100644 --- a/kubernetes/appc/resources/config/appc/opt/onap/sdnc/data/properties/svclogic.properties +++ b/kubernetes/appc/resources/config/appc/opt/onap/ccsdk/data/properties/svclogic.properties diff --git a/kubernetes/appc/resources/config/appc/opt/onap/sdnc/svclogic/bin/showActiveGraphs.sh b/kubernetes/appc/resources/config/appc/opt/onap/ccsdk/svclogic/bin/showActiveGraphs.sh index a568dfdc20..a568dfdc20 100755 --- a/kubernetes/appc/resources/config/appc/opt/onap/sdnc/svclogic/bin/showActiveGraphs.sh +++ b/kubernetes/appc/resources/config/appc/opt/onap/ccsdk/svclogic/bin/showActiveGraphs.sh diff --git a/kubernetes/appc/resources/config/appc/opt/onap/sdnc/svclogic/config/svclogic.properties b/kubernetes/appc/resources/config/appc/opt/onap/ccsdk/svclogic/config/svclogic.properties index 44ae32f9cc..44ae32f9cc 100644 --- a/kubernetes/appc/resources/config/appc/opt/onap/sdnc/svclogic/config/svclogic.properties +++ b/kubernetes/appc/resources/config/appc/opt/onap/ccsdk/svclogic/config/svclogic.properties diff --git a/kubernetes/appc/templates/configmap.yaml b/kubernetes/appc/templates/configmap.yaml index 0574cfcf22..67b409a3e8 100644 --- a/kubernetes/appc/templates/configmap.yaml +++ b/kubernetes/appc/templates/configmap.yaml @@ -4,7 +4,7 @@ metadata: name: {{ include "common.fullname" . }}-onap-sdnc-bin namespace: {{ include "common.namespace" . }} data: -{{ tpl (.Files.Glob "resources/config/appc/opt/onap/sdnc/bin/*").AsConfig . | indent 2 }} +{{ tpl (.Files.Glob "resources/config/appc/opt/onap/ccsdk/bin/*").AsConfig . | indent 2 }} --- apiVersion: v1 kind: ConfigMap @@ -12,7 +12,7 @@ metadata: name: {{ include "common.fullname" . }}-onap-sdnc-data-properties namespace: {{ include "common.namespace" . }} data: -{{ tpl (.Files.Glob "resources/config/appc/opt/onap/sdnc/data/properties/*").AsConfig . | indent 2 }} +{{ tpl (.Files.Glob "resources/config/appc/opt/onap/ccsdk/data/properties/*").AsConfig . | indent 2 }} --- apiVersion: v1 kind: ConfigMap @@ -20,7 +20,7 @@ metadata: name: {{ include "common.fullname" . }}-onap-sdnc-svclogic-bin namespace: {{ include "common.namespace" . }} data: -{{ tpl (.Files.Glob "resources/config/appc/opt/onap/sdnc/svclogic/bin/*").AsConfig . | indent 2 }} +{{ tpl (.Files.Glob "resources/config/appc/opt/onap/ccsdk/svclogic/bin/*").AsConfig . | indent 2 }} --- apiVersion: v1 kind: ConfigMap @@ -28,7 +28,7 @@ metadata: name: {{ include "common.fullname" . }}-onap-sdnc-svclogic-config namespace: {{ include "common.namespace" . }} data: -{{ tpl (.Files.Glob "resources/config/appc/opt/onap/sdnc/svclogic/config/*").AsConfig . | indent 2 }} +{{ tpl (.Files.Glob "resources/config/appc/opt/onap/ccsdk/svclogic/config/*").AsConfig . | indent 2 }} --- apiVersion: v1 kind: ConfigMap diff --git a/kubernetes/appc/templates/statefulset.yaml b/kubernetes/appc/templates/statefulset.yaml index 6ecfc19342..5da50a5fdf 100644 --- a/kubernetes/appc/templates/statefulset.yaml +++ b/kubernetes/appc/templates/statefulset.yaml @@ -91,25 +91,25 @@ spec: - mountPath: /opt/onap/appc/bin/installAppcDb.sh name: onap-appc-bin subPath: installAppcDb.sh - - mountPath: /opt/onap/sdnc/data/properties/dblib.properties + - mountPath: /opt/onap/ccsdk/data/properties/dblib.properties name: onap-sdnc-data-properties subPath: dblib.properties - - mountPath: /opt/onap/sdnc/data/properties/svclogic.properties + - mountPath: /opt/onap/ccsdk/data/properties/svclogic.properties name: onap-sdnc-data-properties subPath: svclogic.properties - - mountPath: /opt/onap/sdnc/data/properties/aaiclient.properties + - mountPath: /opt/onap/ccsdk/data/properties/aaiclient.properties name: onap-sdnc-data-properties subPath: aaiclient.properties - - mountPath: /opt/onap/sdnc/svclogic/config/svclogic.properties + - mountPath: /opt/onap/ccsdk/svclogic/config/svclogic.properties name: onap-sdnc-svclogic-config subPath: svclogic.properties - - mountPath: /opt/onap/sdnc/svclogic/bin/showActiveGraphs.sh + - mountPath: /opt/onap/ccsdk/svclogic/bin/showActiveGraphs.sh name: onap-sdnc-svclogic-bin subPath: showActiveGraphs.sh - - mountPath: /opt/onap/sdnc/bin/startODL.sh + - mountPath: /opt/onap/ccsdk/bin/startODL.sh name: onap-sdnc-bin subPath: startODL.sh - - mountPath: /opt/onap/sdnc/bin/installSdncDb.sh + - mountPath: /opt/onap/ccsdk/bin/installSdncDb.sh name: onap-sdnc-bin subPath: installSdncDb.sh - mountPath: /var/log/onap diff --git a/kubernetes/common/common/templates/_service.tpl b/kubernetes/common/common/templates/_service.tpl index d76c5e0e8a..77b77d059a 100644 --- a/kubernetes/common/common/templates/_service.tpl +++ b/kubernetes/common/common/templates/_service.tpl @@ -17,8 +17,8 @@ {{/* Resolve the name of a chart's service. - The default will be the chart name, unless - overridden in the service configuration. + The default will be the chart name (or .Values.nameOverride if set). + And the use of .Values.service.name overrides all. - .Values.service.name : override default service (ie. chart) name */}} @@ -26,5 +26,6 @@ Expand the service name for a chart. */}} {{- define "common.servicename" -}} - {{- default .Chart.Name .Values.service.name trunc 63 | trimSuffix "-" -}} + {{- $name := default .Chart.Name .Values.nameOverride -}} + {{- default $name .Values.service.name | trunc 63 | trimSuffix "-" -}} {{- end -}}
\ No newline at end of file diff --git a/kubernetes/common/mariadb-galera/.helmignore b/kubernetes/common/mariadb-galera/.helmignore new file mode 100644 index 0000000000..f0c1319444 --- /dev/null +++ b/kubernetes/common/mariadb-galera/.helmignore @@ -0,0 +1,21 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*~ +# Various IDEs +.project +.idea/ +*.tmproj diff --git a/kubernetes/common/mariadb-galera/Chart.yaml b/kubernetes/common/mariadb-galera/Chart.yaml new file mode 100644 index 0000000000..85f36dc6fb --- /dev/null +++ b/kubernetes/common/mariadb-galera/Chart.yaml @@ -0,0 +1,11 @@ +apiVersion: v1 +description: Chart for MariaDB Galera cluster +name: mariadb-galera +version: 2.0.0 +keywords: + - mariadb + - mysql + - database + - sql + - galera + - cluster
\ No newline at end of file diff --git a/kubernetes/common/mariadb-galera/requirements.yaml b/kubernetes/common/mariadb-galera/requirements.yaml new file mode 100644 index 0000000000..c169924d82 --- /dev/null +++ b/kubernetes/common/mariadb-galera/requirements.yaml @@ -0,0 +1,4 @@ +dependencies: + - name: common + version: ~2.0.0 + repository: 'file://../common'
\ No newline at end of file diff --git a/kubernetes/common/mariadb-galera/templates/NOTES.txt b/kubernetes/common/mariadb-galera/templates/NOTES.txt new file mode 100644 index 0000000000..3dd25ac4b7 --- /dev/null +++ b/kubernetes/common/mariadb-galera/templates/NOTES.txt @@ -0,0 +1,12 @@ +MariaDB-Galera service can be accessed via port 3306 on the following DNS name from within your cluster: +{{ include "common.fullname" . }}.{{ .Release.Namespace }}.svc.cluster.local + +To connect to your database: + +1. Run a pod that you can use as a client: + + kubectl run {{ include "common.fullname" . }}-client --rm --tty -i --image mariadb --command -- bash + +2. Connect using the mysql cli, then provide your password: + $ mysql -h {{ include "common.fullname" . }} {{- if .Values.mysqlRootPassword }} -p {{ .Values.mysqlRootPassword }}{{- end -}} + diff --git a/kubernetes/common/mariadb-galera/templates/configmap.yaml b/kubernetes/common/mariadb-galera/templates/configmap.yaml new file mode 100644 index 0000000000..094a76cf45 --- /dev/null +++ b/kubernetes/common/mariadb-galera/templates/configmap.yaml @@ -0,0 +1,18 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "common.fullname" . }}-confd + namespace: {{ include "common.namespace" . }} +data: +{{ tpl (.Files.Glob "resources/config/mariadb/conf.d/*").AsConfig . | indent 2 }} +--- +{{- if .Values.externalConfig }} +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "common.fullname" . }}-externalConfig + namespace: {{ include "common.namespace" . }} +data: + my_extra.cnf: |- +{{ toYaml .Values.externalConfig | indent 4 }} +{{- end -}}
\ No newline at end of file diff --git a/kubernetes/common/mariadb-galera/templates/pv.yaml b/kubernetes/common/mariadb-galera/templates/pv.yaml new file mode 100644 index 0000000000..184728f8ad --- /dev/null +++ b/kubernetes/common/mariadb-galera/templates/pv.yaml @@ -0,0 +1,37 @@ +{{/* +# Copyright © 2017 Amdocs, Bell Canada +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +*/}} + +{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}} +kind: PersistentVolume +apiVersion: v1 +metadata: + name: {{ include "common.fullname" . }} + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}" + release: "{{ .Release.Name }}" + heritage: "{{ .Release.Service }}" + name: {{ include "common.fullname" . }} +spec: + capacity: + storage: {{ .Values.persistence.size}} + accessModes: + - {{ .Values.persistence.accessMode }} + persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }} + hostPath: + path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }} +{{- end -}} diff --git a/kubernetes/common/mariadb-galera/templates/pvc.yaml b/kubernetes/common/mariadb-galera/templates/pvc.yaml new file mode 100644 index 0000000000..e27c3311e9 --- /dev/null +++ b/kubernetes/common/mariadb-galera/templates/pvc.yaml @@ -0,0 +1,48 @@ +{{/* +# Copyright © 2017 Amdocs, Bell Canada +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +*/}} + +{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}} +kind: PersistentVolumeClaim +apiVersion: v1 +metadata: + name: {{ include "common.fullname" . }} + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" + release: "{{ .Release.Name }}" + heritage: "{{ .Release.Service }}" +{{- if .Values.persistence.annotations }} + annotations: +{{ toYaml .Values.persistence.annotations | indent 4 }} +{{- end }} +spec: + selector: + matchLabels: + name: {{ include "common.fullname" . }} + accessModes: + - {{ .Values.persistence.accessMode }} + resources: + requests: + storage: {{ .Values.persistence.size }} +{{- if .Values.persistence.storageClass }} +{{- if (eq "-" .Values.persistence.storageClass) }} + storageClassName: "" +{{- else }} + storageClassName: "{{ .Values.persistence.storageClass }}" +{{- end }} +{{- end }} +{{- end -}} diff --git a/kubernetes/common/mariadb-galera/templates/secrets.yaml b/kubernetes/common/mariadb-galera/templates/secrets.yaml new file mode 100644 index 0000000000..101a7eba79 --- /dev/null +++ b/kubernetes/common/mariadb-galera/templates/secrets.yaml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: Secret +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 }}" +type: Opaque +data: + db-root-password: {{ .Values.config.mariadbRootPassword | b64enc | quote }} + user-password: {{ default "" .Values.config.userPassword | b64enc | quote }}
\ No newline at end of file diff --git a/kubernetes/common/mariadb-galera/templates/service.yaml b/kubernetes/common/mariadb-galera/templates/service.yaml new file mode 100644 index 0000000000..f5f93ed9b6 --- /dev/null +++ b/kubernetes/common/mariadb-galera/templates/service.yaml @@ -0,0 +1,19 @@ +apiVersion: v1 +kind: Service +metadata: + annotations: + service.alpha.kubernetes.io/tolerate-unready-endpoints: "true" + name: {{ include "common.fullname" . }} + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.fullname" . }} + chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" + release: "{{ .Release.Name }}" + heritage: "{{ .Release.Service }}" +spec: + ports: + - name: {{ .Values.service.name }} + port: {{ .Values.service.internalPort }} + clusterIP: None + selector: + app: {{ include "common.fullname" . }}
\ No newline at end of file diff --git a/kubernetes/common/mariadb-galera/templates/statefulset.yaml b/kubernetes/common/mariadb-galera/templates/statefulset.yaml new file mode 100644 index 0000000000..b8ba75e52c --- /dev/null +++ b/kubernetes/common/mariadb-galera/templates/statefulset.yaml @@ -0,0 +1,119 @@ +apiVersion: apps/v1beta1 +kind: StatefulSet +metadata: + name: {{ include "common.fullname" . }} + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.fullname" . }} + chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" + release: "{{ .Release.Name }}" + heritage: "{{ .Release.Service }}" +spec: + serviceName: {{ include "common.fullname" . }} + replicas: {{ .Values.replicaCount }} + template: + metadata: + labels: + app: {{ include "common.fullname" . }} + annotations: + pod.alpha.kubernetes.io/initialized: "true" + spec: + {{- if .Values.nodeSelector }} + nodeSelector: +{{ toYaml .Values.nodeSelector | indent 8 }} + {{- end }} + volumes: + {{- if .Values.externalConfig }} + - name: config + configMap: + name: {{ include "common.fullname" . }}-externalConfig + {{- end}} + - name: localtime + hostPath: + path: /etc/localtime + imagePullSecrets: + - name: {{ include "common.namespace" . }}-docker-registry-key + containers: + - name: {{ include "common.fullname" . }} + image: "{{ .Values.global.repository | default .Values.repository }}/{{ .Values.image }}" + imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy | quote}} + env: + - name: POD_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.namespace + - name: MYSQL_USER + value: {{ default "" .Values.config.userName | quote }} + - name: MYSQL_PASSWORD + valueFrom: + secretKeyRef: + name: {{ template "common.fullname" . }} + key: user-password + - name: MYSQL_DATABASE + value: {{ default "" .Values.config.mysqlDatabase | quote }} + - name: MYSQL_ROOT_PASSWORD + valueFrom: + secretKeyRef: + name: {{ template "common.fullname" . }} + key: db-root-password + ports: + - containerPort: {{ .Values.service.internalPort }} + name: {{ .Values.service.name }} + - containerPort: {{ .Values.service.sstPort }} + name: {{ .Values.service.sstName }} + - containerPort: {{ .Values.service.replicationPort }} + name: {{ .Values.service.replicationName }} + - containerPort: {{ .Values.service.istPort }} + name: {{ .Values.service.istName }} + readinessProbe: + exec: + command: + - /usr/share/container-scripts/mysql/readiness-probe.sh + initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }} + periodSeconds: {{ .Values.readiness.periodSeconds }} + {{- if eq .Values.liveness.enabled true }} + livenessProbe: + exec: + command: ["mysqladmin", "ping"] + initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }} + periodSeconds: {{ .Values.liveness.periodSeconds }} + timeoutSeconds: {{ .Values.liveness.timeoutSeconds }} + {{- end }} + resources: +{{ toYaml .Values.resources | indent 12 }} + volumeMounts: + {{- if .Values.externalConfig }} + - mountPath: /etc/config + name: config + {{- end}} + - mountPath: /etc/localtime + name: localtime + readOnly: true +{{- if .Values.persistence.enabled }} + - mountPath: /var/lib/mysql + name: {{ include "common.fullname" . }}-data + subPath: data + initContainers: + - name: mariadb-galera-prepare + image: {{ .Values.global.repository | default .Values.repository }}/{{ .Values.imageInit }} + command: ["sh", "-c", "chown -R 27:27 /var/lib/mysql"] + volumeMounts: + - name: {{ include "common.fullname" . }}-data + mountPath: /var/lib/mysql + volumeClaimTemplates: + - metadata: + name: {{ include "common.fullname" . }}-data + annotations: + {{- if .Values.persistence.storageClass }} + volume.beta.kubernetes.io/storage-class: {{ .Values.persistence.storageClass | quote }} + {{- else }} + volume.alpha.kubernetes.io/storage-class: default + {{- end }} + spec: + accessModes: + - {{ .Values.persistence.accessMode | quote }} + resources: + requests: + storage: {{ .Values.persistence.size | quote }} +{{- end }}
\ No newline at end of file diff --git a/kubernetes/common/mariadb-galera/values.yaml b/kubernetes/common/mariadb-galera/values.yaml new file mode 100644 index 0000000000..f65a8a57e6 --- /dev/null +++ b/kubernetes/common/mariadb-galera/values.yaml @@ -0,0 +1,115 @@ +################################################################# +# Global configuration defaults. +################################################################# +global: + nodePortPrefix: 302 + repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ== + persistence: {} + repository: nexus3.onap.org:10001 + + +################################################################# +# Application configuration defaults. +################################################################# + +#repository: mysql +repository: nexus3.onap.org:10001 +image: adfinissygroup/k8s-mariadb-galera-centos:v002 +imageInit: busybox +pullPolicy: IfNotPresent + +# application configuration +config: + mariadbRootPassword: secretpassword + userName: my-user + userPassword: my-password + mysqlDatabase: my-database + +# default number of instances in the StatefulSet +replicaCount: 3 + +nodeSelector: {} + +affinity: {} + +# probe configuration parameters +liveness: + initialDelaySeconds: 30 + periodSeconds: 10 + timeoutSeconds: 5 + # necessary to disable liveness probe when setting breakpoints + # in debugger so K8s doesn't restart unresponsive container + enabled: true + +readiness: + initialDelaySeconds: 15 + periodSeconds: 10 + +## 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: + 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: ReadWriteOnce + size: 2Gi + + +service: + internalPort: 3306 + name: mariadb-galera + sstPort: 4444 + sstName: sst + replicationPort: 4567 + replicationName: replication + istPort: 4568 + istName: ist + +ingress: + enabled: false + + +## Configure MariaDB-Galera with a custom my.cnf file +## ref: https://mariadb.com/kb/en/mariadb/configuring-mariadb-with-mycnf/#example-of-configuration-file +## +externalConfig: {} +# externalConfig: |- + # [mysqld] + # innodb_buffer_pool_size=2G + +#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 + +# Name for mariadb-galera cluster - should be unique accross all projects or other clusters +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 diff --git a/kubernetes/common/mysql/templates/nfs-provisoner.yaml b/kubernetes/common/mysql/templates/nfs-provisoner.yaml index 3f19977ae2..35894df7a7 100644 --- a/kubernetes/common/mysql/templates/nfs-provisoner.yaml +++ b/kubernetes/common/mysql/templates/nfs-provisoner.yaml @@ -14,7 +14,7 @@ # limitations under the License. */}} -#{{ if not .Values.disableNfsProvisioner }} +{{ if not .Values.disableNfsProvisioner }} apiVersion: extensions/v1beta1 kind: Deployment metadata: @@ -75,4 +75,4 @@ spec: - name: export-volume hostPath: path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Namespace }}/{{ .Values.persistence.mountSubPath }} -#{{ end }} +{{ end }} diff --git a/kubernetes/common/mysql/templates/pvc.yaml b/kubernetes/common/mysql/templates/pvc.yaml index edb370ae35..d1558f131f 100644 --- a/kubernetes/common/mysql/templates/pvc.yaml +++ b/kubernetes/common/mysql/templates/pvc.yaml @@ -14,7 +14,7 @@ # limitations under the License. */}} -{{- if (and (and (.Values.persistence.enabled) (not .Values.persistence.existingClaim)) ( .Values.disableNfsProvisioner)) -}} +{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}} kind: PersistentVolumeClaim apiVersion: v1 metadata: diff --git a/kubernetes/common/mysql/templates/statefulset.yaml b/kubernetes/common/mysql/templates/statefulset.yaml index e43698865e..ff73b45620 100644 --- a/kubernetes/common/mysql/templates/statefulset.yaml +++ b/kubernetes/common/mysql/templates/statefulset.yaml @@ -236,18 +236,7 @@ spec: hostPath: path: /etc/localtime - name: {{ include "common.fullname" . }}-data -#{{ if not .Values.disableNfsProvisioner }} - volumeClaimTemplates: - - metadata: - name: {{ include "common.fullname" . }}-data - annotations: - volume.beta.kubernetes.io/storage-class: "{{ include "common.fullname" . }}-data" - spec: - accessModes: ["ReadWriteMany"] - resources: - requests: - storage: 1Gi -#{{ else if .Values.persistence.enabled }} +#{{ if .Values.persistence.enabled }} persistentVolumeClaim: claimName: {{ include "common.fullname" . }}-data #{{ else }} diff --git a/kubernetes/common/mysql/templates/storageclass.yaml b/kubernetes/common/mysql/templates/storageclass.yaml index 398c998e0f..3cd502ea30 100644 --- a/kubernetes/common/mysql/templates/storageclass.yaml +++ b/kubernetes/common/mysql/templates/storageclass.yaml @@ -14,9 +14,11 @@ # limitations under the License. */}} +{{ if not .Values.disableNfsProvisioner }} kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: "{{ include "common.fullname" . }}-data" namespace: {{ include "common.namespace" . }} provisioner: {{ include "common.fullname" . }}/nfs +{{ end }} diff --git a/kubernetes/onap/resources/environments/dev.yaml b/kubernetes/onap/resources/environments/dev.yaml index 61a7546db0..a8dd5243ff 100644 --- a/kubernetes/onap/resources/environments/dev.yaml +++ b/kubernetes/onap/resources/environments/dev.yaml @@ -88,9 +88,18 @@ sdc: sdnc: enabled: false + replicaCount: 1 + + config: + enableClustering: false + dmaap-listener: config: dmaapPort: 3904 + + mysql: + disableNfsProvisioner: false + replicaCount: 1 so: enabled: true diff --git a/kubernetes/onap/values.yaml b/kubernetes/onap/values.yaml index f784eebe30..a2427711cd 100644 --- a/kubernetes/onap/values.yaml +++ b/kubernetes/onap/values.yaml @@ -89,9 +89,18 @@ sdc: sdnc: enabled: true + replicaCount: 1 + + config: + enableClustering: false + dmaap-listener: config: dmaapPort: 3904 + + mysql: + disableNfsProvisioner: true + replicaCount: 1 so: enabled: true diff --git a/kubernetes/robot/demo-k8s.sh b/kubernetes/robot/demo-k8s.sh index 23fc555dc5..d5e7a0384d 100755 --- a/kubernetes/robot/demo-k8s.sh +++ b/kubernetes/robot/demo-k8s.sh @@ -22,7 +22,7 @@ function usage echo " demo.sh <namespace> appc <module_name>" echo " - provide APPC with vFW module mount point for closed loop" echo " " - echo " demo.sh <namespace> init_robot" + echo " demo.sh <namespace> init_robot [ <etc_hosts_prefix> ]" echo " - Initialize robot after all ONAP VMs have started" echo " " echo " demo.sh <namespace> instantiateVFW" @@ -36,7 +36,7 @@ function usage } # Set the defaults -if [ $# -le 1 ];then +if [ $# -le 2 ];then usage exit fi @@ -47,9 +47,9 @@ shift ## ## if more than 1 tag is supplied, the must be provided with -i or -e ## -while [ $# -gt 0 ] +while [ $# -gt 1 ] do - key="$1" + key="$2" case $key in init_robot) @@ -62,6 +62,10 @@ do fi VARIABLES="$VARIABLES -v WEB_PASSWORD:$WEB_PASSWORD" shift + if [ $# -eq 2 ];then + VARIABLES="$VARIABLES -v HOSTS_PREFIX:$2" + fi + shift ;; init) TAG="InitDemo" @@ -75,7 +79,7 @@ do TAG="InitDistribution" shift if [ $# -eq 1 ];then - VARIABLES="$VARIABLES -v DEMO_PREFIX:$1" + VARIABLES="$VARIABLES -v DEMO_PREFIX:$2" fi shift ;; @@ -86,9 +90,9 @@ do echo "Usage: demo.sh preload <vnf_name> <module_name>" exit fi - VARIABLES="$VARIABLES -v VNF_NAME:$1" + VARIABLES="$VARIABLES -v VNF_NAME:$2" shift - VARIABLES="$VARIABLES -v MODULE_NAME:$1" + VARIABLES="$VARIABLES -v MODULE_NAME:$2" shift ;; appc) @@ -98,7 +102,7 @@ do echo "Usage: demo.sh appc <module_name>" exit fi - VARIABLES="$VARIABLES -v MODULE_NAME:$1" + VARIABLES="$VARIABLES -v MODULE_NAME:$2" shift ;; instantiateVFW) @@ -113,14 +117,14 @@ do echo "Usage: demo.sh deleteVNF <module_name from instantiateVFW>" exit fi - VARFILE=$1.py + VARFILE=$2.py if [ -e /opt/eteshare/${VARFILE} ]; then VARIABLES="$VARIABLES -V /share/${VARFILE}" else echo "Cache file ${VARFILE} is not found" exit fi - shift + shift ;; heatbridge) TAG="heatbridge" @@ -129,11 +133,11 @@ do echo "Usage: demo.sh heatbridge <stack_name> <service_instance_id> <service>" exit fi - VARIABLES="$VARIABLES -v HB_STACK:$1" + VARIABLES="$VARIABLES -v HB_STACK:$2" shift - VARIABLES="$VARIABLES -v HB_SERVICE_INSTANCE_ID:$1" + VARIABLES="$VARIABLES -v HB_SERVICE_INSTANCE_ID:$2" shift - VARIABLES="$VARIABLES -v HB_SERVICE:$1" + VARIABLES="$VARIABLES -v HB_SERVICE:$2" shift ;; *) diff --git a/kubernetes/robot/resources/config/authorization b/kubernetes/robot/resources/config/authorization index 988730f7a8..23b429e04e 100755 --- a/kubernetes/robot/resources/config/authorization +++ b/kubernetes/robot/resources/config/authorization @@ -1 +1 @@ -robot:robot +{{ .Values.config.lightHttpdUsername }}:{{ .Values.config.lightHttpdPassword }} diff --git a/kubernetes/robot/resources/config/eteshare/config/integration_preload_parameters.py b/kubernetes/robot/resources/config/eteshare/config/integration_preload_parameters.py index b125f792b9..502d8fcc63 100755 --- a/kubernetes/robot/resources/config/eteshare/config/integration_preload_parameters.py +++ b/kubernetes/robot/resources/config/eteshare/config/integration_preload_parameters.py @@ -1,57 +1,24 @@ GLOBAL_PRELOAD_PARAMETERS = { -# heat template parameter values common to all heat template continaing these parameters + # heat template parameter values common to all heat template continaing these parameters "defaults" : { - 'key_name' : 'vfw_key${uuid}', - "pub_key" : "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAqqnA9BAiMLtjOPSYBfhzLu4CiBolWoskDg4KVwhTJVTTeB6CqrQNcadlGXxOHhCYuNCKkUmIVF4WTOisVOJ75Z1c4OMoZLL85xVPKSIeH63kgVugwgPYQu55NbbWX+rsbUha3LnElDhNviMM3iTPbD5nnhKixNERAJMTLKXvZZZGqxW94bREknYPQTT2qrk3YRqwldncopp6Nkgv3AnSJz2gc9tjxnWF0poTQnQm/3D6hiJICrzKfAV0EaPN0KdtYjPhKrYoy6Qb/tKOVaaqsvwfKBJGrT9LfcA7D7M/yj292RT1XN63hI84WC383LsaPJ6eWdDTE6zUP1eGTWCoOw== rsa-key-20161026", - "repo_url_blob" : "https://nexus.onap.org/content/repositories/raw", - "repo_url_artifacts" : "https://nexus.onap.org/content/groups/staging", - "demo_artifacts_version" : "{{ .Values.demoArtifactsVersion }}", - "onap_private_net_id" : "{{ .Values.openStackPrivateNetId }}", - "onap_private_subnet_id" : "{{ .Values.openStackPrivateSubnetId }}", - "onap_private_net_cidr" : "{{ .Values.openStackPrivateNetCidr }}", - "dcae_collector_ip" : "10.0.4.102", - "dcae_collector_port" : "8080", - "public_net_id" : "{{ .Values.openStackPublicNetId }}", - "cloud_env" : "${cloud_env}", - "install_script_version" : "${install_script_version}", -### -# vims_preload same for every instantiation -### - "bono_image_name" : "${vm_image_name}", - "sprout_image_name" : "${vm_image_name}", - "homer_image_name" : "${vm_image_name}", - "homestead_image_name" : "${vm_image_name}", - "ralf_image_name" : "${vm_image_name}", - "ellis_image_name" : "${vm_image_name}", - "dns_image_name" : "${vm_image_name}", - "bono_flavor_name" : "${vm_flavor_name}", - "sprout_flavor_name" : "${vm_flavor_name}", - "homer_flavor_name" : "${vm_flavor_name}", - "homestead_flavor_name" : "${vm_flavor_name}", - "ralf_flavor_name" : "${vm_flavor_name}", - "ellis_flavor_name" : "${vm_flavor_name}", - "dns_flavor_name" : "${vm_flavor_name}", - "repo_url" : "http://repo.cw-ngv.com/stable", - "zone" : "me.cw-ngv.com", - "dn_range_start" : "2425550000", - "dn_range_length" : "10000", - "dnssec_key" : "9FPdYTWhk5+LbhrqtTPQKw==", -### -# vlb_preload same for every instantiation -### - "vlb_image_name" : "${vm_image_name}", - "vlb_flavor_name" : "${vm_flavor_name}", -### -# vlb_preload same for every instantiation -### - "vfw_image_name" : "${vm_image_name}", - "vfw_flavor_name" : "${vm_flavor_name}", -### - }, + 'key_name' : 'vfw_key${uuid}', + "pub_key" : "${pub_key}", + "repo_url_blob" : "https://nexus.onap.org/content/repositories/raw", + "repo_url_artifacts" : "https://nexus.onap.org/content/groups/staging", + "demo_artifacts_version" : "${GLOBAL_INJECTED_ARTIFACTS_VERSION}", + "onap_private_net_id" : "${GLOBAL_INJECTED_NETWORK}", + "onap_private_subnet_id" : "{{ .Values.openStackPrivateSubnetId }}", + "onap_private_net_cidr" : "{{ .Values.openStackPrivateNetCidr }}", + "dcae_collector_ip" : "${dcae_collector_ip}", + "dcae_collector_port" : "8080", + "public_net_id" : "${GLOBAL_INJECTED_PUBLIC_NET_ID}", + "cloud_env" : "${GLOBAL_INJECTED_CLOUD_ENV}", + "install_script_version" : "${GLOBAL_INJECTED_SCRIPT_VERSION}", + }, -### -# heat template parameter values for heat template instances created during Vnf-Orchestration test cases -### +# ## + # heat template parameter values for heat template instances created during Vnf-Orchestration test cases + # ## "Vnf-Orchestration" : { "vfw_preload.template": { "unprotected_private_net_id" : "vofwl01_unprotected${hostid}", @@ -60,37 +27,103 @@ GLOBAL_PRELOAD_PARAMETERS = { "protected_private_net_cidr" : "192.168.20.0/24", "vfw_private_ip_0" : "192.168.10.100", "vfw_private_ip_1" : "192.168.20.100", - "vfw_private_ip_2" : "{{ .Values.openStackOamNetworkCidrPrefix }}.1", + "vfw_private_ip_2" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.1", "vpg_private_ip_0" : "192.168.10.200", - "vpg_private_ip_1" : "{{ .Values.openStackOamNetworkCidrPrefix }}.2", + "vpg_private_ip_1" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.2", "vsn_private_ip_0" : "192.168.20.250", - "vsn_private_ip_1" : "{{ .Values.openStackOamNetworkCidrPrefix }}.3", + "vsn_private_ip_1" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.3", 'vfw_name_0':'vofwl01fwl${hostid}', 'vpg_name_0':'vofwl01pgn${hostid}', + "vfw_image_name" : "${GLOBAL_INJECTED_UBUNTU_1404_IMAGE}", + "vfw_flavor_name" : "${GLOBAL_INJECTED_VM_FLAVOR}", 'vsn_name_0':'vofwl01snk${hostid}' }, + "vfwsnk_preload.template": { + "unprotected_private_net_id" : "vofwlsnk_unprotected${hostid}", + "unprotected_private_subnet_id" : "vofwlsnk_unprotected_sub${hostid}", + "unprotected_private_net_cidr" : "192.168.10.0/24", + "protected_private_net_id" : "vofwlsnk_protected${hostid}", + "protected_private_subnet_id" : "vofwlsnk_protected_sub${hostid}", + "protected_private_net_cidr" : "192.168.20.0/24", + "vfw_private_ip_0" : "192.168.10.100", + "vfw_private_ip_1" : "192.168.20.100", + "vfw_private_ip_2" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.101", + "vpg_private_ip_0" : "192.168.10.200", + "vsn_private_ip_0" : "192.168.20.250", + "vsn_private_ip_1" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.102", + 'vfw_name_0':'vofwl01fwl${hostid}', + 'vsn_name_0':'vofwl01snk${hostid}', + "image_name" : "${GLOBAL_INJECTED_UBUNTU_1404_IMAGE}", + "flavor_name" : "${GLOBAL_INJECTED_VM_FLAVOR}", + }, + "vpkg_preload.template": { + "unprotected_private_net_id" : "vofwlsnk_unprotected${hostid}", + "unprotected_private_subnet_id" : "vofwlsnk_unprotected_sub${hostid}", + "unprotected_private_net_cidr" : "192.168.10.0/24", + "protected_private_net_cidr" : "192.168.20.0/24", + "vfw_private_ip_0" : "192.168.10.100", + "vpg_private_ip_0" : "192.168.10.200", + "vpg_private_ip_1" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.103", + "vsn_private_ip_0" : "192.168.20.250", + 'vpg_name_0':'vofwl01pgn${hostid}', + "image_name" : "${GLOBAL_INJECTED_UBUNTU_1404_IMAGE}", + "flavor_name" : "${GLOBAL_INJECTED_VM_FLAVOR}", + }, "vlb_preload.template" : { + "vlb_image_name" : "${GLOBAL_INJECTED_UBUNTU_1604_IMAGE}", + "vlb_flavor_name" : "${GLOBAL_INJECTED_VM_FLAVOR}", "vlb_private_net_id" : "volb01_private${hostid}", + "pktgen_private_net_id" : "volb01_pktgen${hostid}", "vlb_private_net_cidr" : "192.168.30.0/24", "vlb_private_ip_0" : "192.168.30.100", - "vlb_private_ip_1" : "{{ .Values.openStackOamNetworkCidrPrefix }}.4", + "vlb_private_ip_1" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.4", "vdns_private_ip_0" : "192.168.30.110", - "vdns_private_ip_1" : "{{ .Values.openStackOamNetworkCidrPrefix }}.5", + "vdns_private_ip_1" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.5", 'vlb_name_0':'vovlblb${hostid}', 'vdns_name_0':'vovlbdns${hostid}', - "vlb_private_net_cidr" : "192.168.10.0/24", - "pktgen_private_net_cidr" : "192.168.9.0/24" + "pktgen_private_net_cidr" : "192.168.9.0/24", + "vpg_private_ip_1" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.7", + "pg_int" : "192.168.9.109", + "vpg_private_ip_0" : "192.168.9.110", + "vlb_private_ip_2" : "192.168.9.111", + "vip" : "192.168.9.112", + "gre_ipaddr" : "192.168.30.112", + "vpg_name_0" : "vovlbpgn${hostid}", + "vnf_id" : "vLoadBalancer_${hostid}", + "vf_module_id" : "vLoadBalancer" }, "dnsscaling_preload.template" : { "vlb_private_net_id" : "volb01_private${hostid}", "vlb_private_ip_0" : "192.168.30.100", - "vlb_private_ip_1" : "{{ .Values.openStackOamNetworkCidrPrefix }}.4", + "vlb_private_ip_1" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.4", "vdns_private_ip_0" : "192.168.30.222", - "vdns_private_ip_1" : "{{ .Values.openStackOamNetworkCidrPrefix }}.6", + "vdns_private_ip_1" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.6", 'scaling_vdns_name_0':'vovlbscaling${hostid}', "vlb_private_net_cidr" : "192.168.10.0/24" }, + "vims_preload.template" : { + "bono_image_name" : "${GLOBAL_INJECTED_UBUNTU_1404_IMAGE}", + "sprout_image_name" : "${GLOBAL_INJECTED_UBUNTU_1404_IMAGE}", + "homer_image_name" : "${GLOBAL_INJECTED_UBUNTU_1404_IMAGE}", + "homestead_image_name" : "${GLOBAL_INJECTED_UBUNTU_1404_IMAGE}", + "ralf_image_name" : "${GLOBAL_INJECTED_UBUNTU_1404_IMAGE}", + "ellis_image_name" : "${GLOBAL_INJECTED_UBUNTU_1404_IMAGE}", + "dns_image_name" : "${GLOBAL_INJECTED_UBUNTU_1404_IMAGE}", + "bono_flavor_name" : "${GLOBAL_INJECTED_VM_FLAVOR}", + "sprout_flavor_name" : "${GLOBAL_INJECTED_VM_FLAVOR}", + "homer_flavor_name" : "${GLOBAL_INJECTED_VM_FLAVOR}", + "homestead_flavor_name" : "${GLOBAL_INJECTED_VM_FLAVOR}", + "ralf_flavor_name" : "${GLOBAL_INJECTED_VM_FLAVOR}", + "ellis_flavor_name" : "${GLOBAL_INJECTED_VM_FLAVOR}", + "dns_flavor_name" : "${GLOBAL_INJECTED_VM_FLAVOR}", + "repo_url" : "http://repo.cw-ngv.com/stable", + "zone" : "me.cw-ngv.com", + "dn_range_start" : "2425550000", + "dn_range_length" : "10000", + "dnssec_key" : "9FPdYTWhk5+LbhrqtTPQKw==" + + }, "vvg_preload.template" : { } }, @@ -103,36 +136,101 @@ GLOBAL_PRELOAD_PARAMETERS = { "protected_private_net_cidr" : "192.168.120.0/24", "vfw_private_ip_0" : "192.168.110.100", "vfw_private_ip_1" : "192.168.120.100", - "vfw_private_ip_2" : "{{ .Values.openStackOamNetworkCidrPrefix }}.11", + "vfw_private_ip_2" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.11", "vpg_private_ip_0" : "192.168.110.200", - "vpg_private_ip_1" : "{{ .Values.openStackOamNetworkCidrPrefix }}.12", + "vpg_private_ip_1" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.12", "vsn_private_ip_0" : "192.168.120.250", - "vsn_private_ip_1" : "{{ .Values.openStackOamNetworkCidrPrefix }}.13", + "vsn_private_ip_1" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.13", 'vfw_name_0':'clfwl01fwl${hostid}', 'vpg_name_0':'clfwl01pgn${hostid}', + "vfw_image_name" : "${GLOBAL_INJECTED_UBUNTU_1404_IMAGE}", + "vfw_flavor_name" : "${GLOBAL_INJECTED_VM_FLAVOR}", 'vsn_name_0':'clfwl01snk${hostid}' }, + "vfwsnk_preload.template": { + "unprotected_private_net_id" : "clfwlsnk_unprotected${hostid}", + "unprotected_private_subnet_id" : "clfwlsnk_unprotected_sub${hostid}", + "unprotected_private_net_cidr" : "192.168.10.0/24", + "protected_private_net_id" : "clfwlsnk_protected${hostid}", + "protected_private_subnet_id" : "clfwlsnk_protected_sub${hostid}", + "protected_private_net_cidr" : "192.168.20.0/24", + "vfw_private_ip_0" : "192.168.10.100", + "vfw_private_ip_1" : "192.168.20.100", + "vfw_private_ip_2" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.111", + "vpg_private_ip_0" : "192.168.10.200", + "vsn_private_ip_0" : "192.168.20.250", + "vsn_private_ip_1" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.112", + 'vfw_name_0':'clfwl01fwl${hostid}', + 'vsn_name_0':'clfwl01snk${hostid}', + "image_name" : "${GLOBAL_INJECTED_UBUNTU_1404_IMAGE}", + "flavor_name" : "${GLOBAL_INJECTED_VM_FLAVOR}", + }, + "vpkg_preload.template": { + "unprotected_private_net_id" : "clfwlsnk_unprotected${hostid}", + "unprotected_private_subnet_id" : "clfwlsnk_unprotected_sub${hostid}", + "unprotected_private_net_cidr" : "192.168.10.0/24", + "protected_private_net_cidr" : "192.168.20.0/24", + "vfw_private_ip_0" : "192.168.10.100", + "vpg_private_ip_0" : "192.168.10.200", + "vpg_private_ip_1" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.113", + "vsn_private_ip_0" : "192.168.20.250", + 'vpg_name_0':'clfwl01pgn${hostid}', + "image_name" : "${GLOBAL_INJECTED_UBUNTU_1404_IMAGE}", + "flavor_name" : "${GLOBAL_INJECTED_VM_FLAVOR}", + }, "vlb_preload.template" : { + "vlb_image_name" : "${GLOBAL_INJECTED_UBUNTU_1604_IMAGE}", + "vlb_flavor_name" : "${GLOBAL_INJECTED_VM_FLAVOR}", "vlb_private_net_id" : "cllb01_private${hostid}", - "vlb_private_net_cidr" : "192.168.130.0/24", - "vlb_private_ip_0" : "192.168.130.100", - "vlb_private_ip_1" : "{{ .Values.openStackOamNetworkCidrPrefix }}.14", - "vdns_private_ip_0" : "192.168.130.110", - "vdns_private_ip_1" : "{{ .Values.openStackOamNetworkCidrPrefix }}.15", + "pktgen_private_net_id" : "cllb01_pktgen${hostid}", + "vlb_private_net_cidr" : "192.168.30.0/24", + "vlb_private_ip_0" : "192.168.30.100", + "vlb_private_ip_1" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.14", + "vdns_private_ip_0" : "192.168.30.110", + "vdns_private_ip_1" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.15", 'vlb_name_0':'clvlblb${hostid}', 'vdns_name_0':'clvlbdns${hostid}', - "vlb_private_net_cidr" : "192.168.10.0/24", - "pktgen_private_net_cidr" : "192.168.9.0/24" + "pktgen_private_net_cidr" : "192.168.9.0/24", + "vpg_private_ip_1" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.17", + "pg_int" : "192.168.9.109", + "vpg_private_ip_0" : "192.168.9.110", + "vlb_private_ip_2" : "192.168.9.111", + "vip" : "192.168.9.112", + "gre_ipaddr" : "192.168.30.112", + "vpg_name_0" : "clvlbpgn${hostid}", + "vnf_id" : "vLoadBalancer_${hostid}", + "vf_module_id" : "vLoadBalancer" }, "dnsscaling_preload.template" : { "vlb_private_net_id" : "cllb01_private${hostid}", "vlb_private_ip_0" : "192.168.130.100", - "vlb_private_ip_1" : "{{ .Values.openStackOamNetworkCidrPrefix }}.14", + "vlb_private_ip_1" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.14", "vdns_private_ip_0" : "192.168.130.222", - "vdns_private_ip_1" : "{{ .Values.openStackOamNetworkCidrPrefix }}.16", + "vdns_private_ip_1" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.16", 'scaling_vdns_name_0':'clvlbscaling${hostid}', "vlb_private_net_cidr" : "192.168.10.0/24" }, + "vims_preload.template" : { + "bono_image_name" : "${GLOBAL_INJECTED_UBUNTU_1404_IMAGE}", + "sprout_image_name" : "${GLOBAL_INJECTED_UBUNTU_1404_IMAGE}", + "homer_image_name" : "${GLOBAL_INJECTED_UBUNTU_1404_IMAGE}", + "homestead_image_name" : "${GLOBAL_INJECTED_UBUNTU_1404_IMAGE}", + "ralf_image_name" : "${GLOBAL_INJECTED_UBUNTU_1404_IMAGE}", + "ellis_image_name" : "${GLOBAL_INJECTED_UBUNTU_1404_IMAGE}", + "dns_image_name" : "${GLOBAL_INJECTED_UBUNTU_1404_IMAGE}", + "bono_flavor_name" : "${GLOBAL_INJECTED_VM_FLAVOR}", + "sprout_flavor_name" : "${GLOBAL_INJECTED_VM_FLAVOR}", + "homer_flavor_name" : "${GLOBAL_INJECTED_VM_FLAVOR}", + "homestead_flavor_name" : "${GLOBAL_INJECTED_VM_FLAVOR}", + "ralf_flavor_name" : "${GLOBAL_INJECTED_VM_FLAVOR}", + "ellis_flavor_name" : "${GLOBAL_INJECTED_VM_FLAVOR}", + "dns_flavor_name" : "${GLOBAL_INJECTED_VM_FLAVOR}", + "repo_url" : "http://repo.cw-ngv.com/stable", + "zone" : "me.cw-ngv.com", + "dn_range_start" : "2425550000", + "dn_range_length" : "10000", + "dnssec_key" : "9FPdYTWhk5+LbhrqtTPQKw==" + }, "vvg_preload.template" : { } }, @@ -145,36 +243,101 @@ GLOBAL_PRELOAD_PARAMETERS = { "protected_private_net_cidr" : "192.168.120.0/24", "vfw_private_ip_0" : "192.168.110.100", "vfw_private_ip_1" : "192.168.120.100", - "vfw_private_ip_2" : "{{ .Values.openStackOamNetworkCidrPrefix }}.11", + "vfw_private_ip_2" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.11", "vpg_private_ip_0" : "192.168.110.200", - "vpg_private_ip_1" : "{{ .Values.openStackOamNetworkCidrPrefix }}.12", + "vpg_private_ip_1" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.12", "vsn_private_ip_0" : "192.168.120.250", - "vsn_private_ip_1" : "{{ .Values.openStackOamNetworkCidrPrefix }}.13", + "vsn_private_ip_1" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.13", 'vfw_name_0':'demofwl01fwl', 'vpg_name_0':'demofwl01pgn', + "vfw_image_name" : "${GLOBAL_INJECTED_UBUNTU_1404_IMAGE}", + "vfw_flavor_name" : "${GLOBAL_INJECTED_VM_FLAVOR}", 'vsn_name_0':'demofwl01snk' }, + "vfwsnk_preload.template": { + "unprotected_private_net_id" : "demofwlsnk_unprotected${hostid}", + "unprotected_private_subnet_id" : "demofwlsnk_unprotected_sub${hostid}", + "unprotected_private_net_cidr" : "192.168.10.0/24", + "protected_private_net_id" : "demofwlsnk_protected${hostid}", + "protected_private_subnet_id" : "vofwlsnk_protected_sub${hostid}", + "protected_private_net_cidr" : "192.168.20.0/24", + "vfw_private_ip_0" : "192.168.10.100", + "vfw_private_ip_1" : "192.168.20.100", + "vfw_private_ip_2" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.121", + "vpg_private_ip_0" : "192.168.10.200", + "vsn_private_ip_0" : "192.168.20.250", + "vsn_private_ip_1" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.122", + 'vfw_name_0':'${generic_vnf_name}', + 'vsn_name_0':'demofwl01snk${hostid}', + "image_name" : "${GLOBAL_INJECTED_UBUNTU_1404_IMAGE}", + "flavor_name" : "${GLOBAL_INJECTED_VM_FLAVOR}", + }, + "vpkg_preload.template": { + "unprotected_private_net_id" : "demofwlsnk_unprotected${hostid}", + "unprotected_private_subnet_id" : "demofwlsnk_unprotected_sub${hostid}", + "unprotected_private_net_cidr" : "192.168.10.0/24", + "protected_private_net_cidr" : "192.168.20.0/24", + "vfw_private_ip_0" : "192.168.10.100", + "vpg_private_ip_0" : "192.168.10.200", + "vpg_private_ip_1" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.123", + "vsn_private_ip_0" : "192.168.20.250", + 'vpg_name_0':'demofwl01pgn${hostid}', + "image_name" : "${GLOBAL_INJECTED_UBUNTU_1404_IMAGE}", + "flavor_name" : "${GLOBAL_INJECTED_VM_FLAVOR}" + }, "vlb_preload.template" : { - "vlb_private_net_id" : "demolb_private", - "vlb_private_net_cidr" : "192.168.130.0/24", - "vlb_private_ip_0" : "192.168.130.100", - "vlb_private_ip_1" : "{{ .Values.openStackOamNetworkCidrPrefix }}.14", - "vdns_private_ip_0" : "192.168.130.110", - "vdns_private_ip_1" : "{{ .Values.openStackOamNetworkCidrPrefix }}.15", - 'vlb_name_0':'demovlblb', - 'vdns_name_0':'demovlbdns', - "vlb_private_net_cidr" : "192.168.10.0/24", - "pktgen_private_net_cidr" : "192.168.9.0/24" + "vlb_image_name" : "${GLOBAL_INJECTED_UBUNTU_1604_IMAGE}", + "vlb_flavor_name" : "${GLOBAL_INJECTED_VM_FLAVOR}", + "vlb_private_net_id" : "demolb_private${hostid}", + "pktgen_private_net_id" : "demolb_pktgen${hostid}", + "vlb_private_net_cidr" : "192.168.30.0/24", + "vlb_private_ip_0" : "192.168.30.100", + "vlb_private_ip_1" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.24", + "vdns_private_ip_0" : "192.168.30.110", + "vdns_private_ip_1" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.25", + 'vlb_name_0':'demovlblb${hostid}', + 'vdns_name_0':'demovlbdns${hostid}', + "pktgen_private_net_cidr" : "192.168.9.0/24", + "vpg_private_ip_1" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.27", + "pg_int" : "192.168.9.109", + "vpg_private_ip_0" : "192.168.9.110", + "vlb_private_ip_2" : "192.168.9.111", + "vip" : "192.168.9.112", + "gre_ipaddr" : "192.168.30.112", + "vpg_name_0" : "clvlbpgn${hostid}", + "vnf_id" : "vLoadBalancer_${hostid}", + "vf_module_id" : "vLoadBalancer" }, "dnsscaling_preload.template" : { - "vlb_private_net_id" : "demolb_private", + "vlb_private_net_id" : "demolb_private${hostid}", "vlb_private_ip_0" : "192.168.130.100", - "vlb_private_ip_1" : "{{ .Values.openStackOamNetworkCidrPrefix }}.14", + "vlb_private_ip_1" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.24", "vdns_private_ip_0" : "192.168.130.222", - "vdns_private_ip_1" : "{{ .Values.openStackOamNetworkCidrPrefix }}.16", - 'scaling_vdns_name_0':'demovlbscaling', + "vdns_private_ip_1" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.26", + 'scaling_vdns_name_0':'demovlbscaling${hostid}', "vlb_private_net_cidr" : "192.168.10.0/24" }, + "vims_preload.template" : { + "bono_image_name" : "${GLOBAL_INJECTED_UBUNTU_1404_IMAGE}", + "sprout_image_name" : "${GLOBAL_INJECTED_UBUNTU_1404_IMAGE}", + "homer_image_name" : "${GLOBAL_INJECTED_UBUNTU_1404_IMAGE}", + "homestead_image_name" : "${GLOBAL_INJECTED_UBUNTU_1404_IMAGE}", + "ralf_image_name" : "${GLOBAL_INJECTED_UBUNTU_1404_IMAGE}", + "ellis_image_name" : "${GLOBAL_INJECTED_UBUNTU_1404_IMAGE}", + "dns_image_name" : "${GLOBAL_INJECTED_UBUNTU_1404_IMAGE}", + "bono_flavor_name" : "${GLOBAL_INJECTED_VM_FLAVOR}", + "sprout_flavor_name" : "${GLOBAL_INJECTED_VM_FLAVOR}", + "homer_flavor_name" : "${GLOBAL_INJECTED_VM_FLAVOR}", + "homestead_flavor_name" : "${GLOBAL_INJECTED_VM_FLAVOR}", + "ralf_flavor_name" : "${GLOBAL_INJECTED_VM_FLAVOR}", + "ellis_flavor_name" : "${GLOBAL_INJECTED_VM_FLAVOR}", + "dns_flavor_name" : "${GLOBAL_INJECTED_VM_FLAVOR}", + "repo_url" : "http://repo.cw-ngv.com/stable", + "zone" : "me.cw-ngv.com", + "dn_range_start" : "2425550000", + "dn_range_length" : "10000", + "dnssec_key" : "9FPdYTWhk5+LbhrqtTPQKw==" + }, "vvg_preload.template" : { } } diff --git a/kubernetes/robot/resources/config/eteshare/config/integration_robot_properties.py b/kubernetes/robot/resources/config/eteshare/config/integration_robot_properties.py index 305ba3e8a0..0c65960ad8 100755 --- a/kubernetes/robot/resources/config/eteshare/config/integration_robot_properties.py +++ b/kubernetes/robot/resources/config/eteshare/config/integration_robot_properties.py @@ -1,50 +1,56 @@ -# aaf info - everything is from the private oam network (also called ecomp private network) -GLOBAL_AAF_SERVER = "http://10.0.12.1:8101" +# 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_USERNAME = "dgl@openecomp.org" GLOBAL_AAF_PASSWORD = "ecomp_admin" -# aai info - everything is from the private oam network (also called ecomp private network) +# aai info - everything is from the private oam network (also called onap private network) GLOBAL_AAI_SERVER_PROTOCOL = "https" GLOBAL_AAI_SERVER_PORT = "8443" GLOBAL_AAI_USERNAME = "AAI" GLOBAL_AAI_PASSWORD = "AAI" -# appc info - everything is from the private oam network (also called ecomp 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://10.0.2.1:" +GLOBAL_APPC_SERVER = "http://{{.Release.Name}}-appc.{{include "common.namespace" .}}:" GLOBAL_APPC_USERNAME = "admin" -GLOBAL_APPC_PASSWORD = "Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U" -# sdc info - everything is from the private oam network (also called ecomp private network) +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_USERNAME = "beep" GLOBAL_ASDC_BE_PASSWORD = "boop" -# clamp info - everything is from the private oam network (also called ecomp private network) +# clamp info - everything is from the private oam network (also called onap private network) GLOBAL_CLAMP_SERVER_PROTOCOL = "http" GLOBAL_CLAMP_SERVER_PORT = "8080" -# dcae info - everything is from the private oam network (also called ecomp private network) +# cli info - everything is from the private oam network (also called onap private network) +GLOBAL_CLI_SERVER_PROTOCOL = "http" +GLOBAL_CLI_SERVER_PORT = "8080" +# dcae info - everything is from the private oam network (also called onap private network) GLOBAL_DCAE_SERVER_PROTOCOL = "http" -GLOBAL_DCAE_SERVER_PORT = "8080" +GLOBAL_DCAE_HEALTH_SERVER_PORT = "8000" GLOBAL_DCAE_USERNAME = "console" GLOBAL_DCAE_PASSWORD = "ZjJkYjllMjljMTI2M2Iz" -# microservice bus info - everything is from the private oam network (also called ecomp private network) +# microservice bus info - everything is from the private oam network (also called onap private network) GLOBAL_MSB_SERVER_PROTOCOL = "http" GLOBAL_MSB_SERVER_PORT = "80" -# message router info - everything is from the private oam network (also called ecomp private network) +# message router info - everything is from the private oam network (also called onap private network) GLOBAL_MR_SERVER_PROTOCOL = "http" GLOBAL_MR_SERVER_PORT = "3904" -# mso info - everything is from the private oam network (also called ecomp private network) +# mso info - everything is from the private oam network (also called onap private network) GLOBAL_MSO_SERVER_PROTOCOL = "http" GLOBAL_MSO_SERVER_PORT = "8080" GLOBAL_MSO_USERNAME = "InfraPortalClient" GLOBAL_MSO_PASSWORD = "password1$" +# music info - everything is from the private oam network (also called onap private network) +GLOBAL_MUSIC_SERVER_PROTOCOL = "http" +GLOBAL_MUSIC_SERVER_PORT = "8080" # openstack info - info to select right info in environment -# packet generate vnf info - everything is from the private oam network (also called ecomp private network) +# packet generate vnf info - everything is from the private oam network (also called onap private network) GLOBAL_PACKET_GENERATOR_PORT = "8183" GLOBAL_PACKET_GENERATOR_USERNAME = "admin" GLOBAL_PACKET_GENERATOR_PASSWORD = "admin" GLOBAL_PGN_PORT = "2831" -# policy info - everything is from the private oam network (also called ecomp private network) +# policy info - everything is from the private oam network (also called onap private network) GLOBAL_POLICY_SERVER_PROTOCOL = "http" GLOBAL_POLICY_SERVER_PORT = "8081" GLOBAL_POLICY_HEALTHCHECK_PORT = "6969" @@ -52,18 +58,18 @@ GLOBAL_POLICY_AUTH = "dGVzdHBkcDphbHBoYTEyMw==" GLOBAL_POLICY_CLIENTAUTH = "cHl0aG9uOnRlc3Q=" GLOBAL_POLICY_USERNAME = "healthcheck" GLOBAL_POLICY_PASSWORD = "zb!XztG34" -# portal info - everything is from the private oam network (also called ecomp private network) +# portal info - everything is from the private oam network (also called onap private network) GLOBAL_PORTAL_SERVER_PROTOCOL = "http" GLOBAL_PORTAL_SERVER_PORT = "8989" GLOBAL_PORTAL_USERNAME = "demo" GLOBAL_PORTAL_PASSWORD = "Kp8bJ4SXszM0WXlhak3eHlcse" -# sdngc info - everything is from the private oam network (also called ecomp private network) +# sdngc info - everything is from the private oam network (also called onap private network) GLOBAL_SDNGC_SERVER_PROTOCOL = "http" GLOBAL_SDNGC_REST_PORT = "8282" GLOBAL_SDNGC_ADMIN_PORT = "8843" GLOBAL_SDNGC_USERNAME = "admin" GLOBAL_SDNGC_PASSWORD = "Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U" -# vid info - everything is from the private oam network (also called ecomp private network) +# vid info - everything is from the private oam network (also called onap private network) GLOBAL_VID_SERVER_PROTOCOL = "http" GLOBAL_VID_SERVER_PORT = "8080" GLOBAL_VID_USERNAME = "demo" @@ -71,11 +77,9 @@ GLOBAL_VID_PASSWORD = "Kp8bJ4SXszM0WX" GLOBAL_VID_HEALTH_USERNAME = "Default" GLOBAL_VID_HEALTH_PASSWORD = "AppPassword!1" #global selenium info -GLOBAL_PROXY_WARNING_TITLE = "" -GLOBAL_PROXY_WARNING_CONTINUE_XPATH = "" -# settings for vm to attach vvg too -GLOBAL_VVGSERVER_IMAGE = "{{ .Values.ubuntuImage }}" -GLOBAL_VVGSERVER_FLAVOR = "{{ .Values.openStackFlavourMedium }}" +GLOBAL_PROXY_WARNING_TITLE="" +GLOBAL_PROXY_WARNING_CONTINUE_XPATH="" # dns info GLOBAL_DNS_TRAFFIC_DURATION = "600" +# location where heat templates are loaded from GLOBAL_HEAT_TEMPLATES_FOLDER = "/share/heat" diff --git a/kubernetes/robot/resources/config/eteshare/config/vm_properties.py b/kubernetes/robot/resources/config/eteshare/config/vm_properties.py index c62c4402b7..b7da6fadd2 100755 --- a/kubernetes/robot/resources/config/eteshare/config/vm_properties.py +++ b/kubernetes/robot/resources/config/eteshare/config/vm_properties.py @@ -1,5 +1,6 @@ -#file generated from /opt/config +# File generated from /opt/config # +GLOBAL_INJECTED_AAF_IP_ADDR = "{{.Release.Name}}-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" .}}" @@ -7,56 +8,65 @@ GLOBAL_INJECTED_ARTIFACTS_VERSION = "{{.Values.demoArtifactsVersion}}" GLOBAL_INJECTED_CLAMP_IP_ADDR = "{{.Release.Name}}-clamp.{{include "common.namespace" .}}" GLOBAL_INJECTED_CLOUD_ENV = "openstack" GLOBAL_INJECTED_DCAE_IP_ADDR = "{{.Release.Name}}-dcae-controller.{{include "common.namespace" .}}" -GLOBAL_INJECTED_DNS_IP_ADDR = "10.0.100.1" +GLOBAL_INJECTED_DNS_IP_ADDR = "N/A" GLOBAL_INJECTED_DOCKER_VERSION = "1.2-STAGING-latest" -#GLOBAL_INJECTED_EXTERNAL_DNS = "N/A" +GLOBAL_INJECTED_EXTERNAL_DNS = "N/A" GLOBAL_INJECTED_GERRIT_BRANCH = "master" 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_MUSIC_IP_ADDR = "music.{{include "common.namespace" .}}" GLOBAL_INJECTED_NETWORK = "{{ .Values.openStackPrivateNetId }}" GLOBAL_INJECTED_NEXUS_DOCKER_REPO = "nexus3.onap.org:10001" GLOBAL_INJECTED_NEXUS_PASSWORD = "docker" GLOBAL_INJECTED_NEXUS_REPO = "https://nexus.onap.org/content/sites/raw" GLOBAL_INJECTED_NEXUS_USERNAME = "docker" +GLOBAL_INJECTED_OOF_IP_ADDR = "oof.{{include "common.namespace" .}}" GLOBAL_INJECTED_OPENO_IP_ADDR = "msb-iag.{{include "common.namespace" .}}" -GLOBAL_INJECTED_OPENSTACK_PASSWORD = "{{ .Values.openStackEncryptedPassword }}" +GLOBAL_INJECTED_OPENSTACK_PASSWORD = "{{ .Values.openStackPassword }}" 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_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_IP_ADDR = "{{.Release.Name}}-sdc-be.{{include "common.namespace" .}}" -GLOBAL_INJECTED_SDC_FE_IP_ADDR = "{{.Release.Name}}-sdc-fe.{{include "common.namespace" .}}" +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_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_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_VM_FLAVOR = "{{ .Values.openStackFlavourMedium }}" -GLOBAL_INJECTED_VM_IMAGE_NAME = "{{ .Values.ubuntuImage }}" -GLOBAL_INJECTED_PUBLIC_NET_ID = "{{ .Values.openStackPublicNetId }}" -GLOBAL_INJECTED_SCRIPT_VERSION = "{{ .Values.scriptVersion }}" + GLOBAL_INJECTED_PROPERTIES = { + "GLOBAL_INJECTED_AAF_IP_ADDR" : "{{.Release.Name}}-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_ARTIFACTS_VERSION" : "{{.Values.demoArtifactsVersion}}", "GLOBAL_INJECTED_CLAMP_IP_ADDR" : "{{.Release.Name}}-clamp.{{include "common.namespace" .}}", "GLOBAL_INJECTED_CLOUD_ENV" : "openstack", "GLOBAL_INJECTED_DCAE_IP_ADDR" : "{{.Release.Name}}-dcae-controller.{{include "common.namespace" .}}", - "GLOBAL_INJECTED_DNS_IP_ADDR" : "10.0.100.1", + "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_KEYSTONE" : "{{ .Values.openStackKeyStoneUrl }}", "GLOBAL_INJECTED_MR_IP_ADDR" : "message-router.{{include "common.namespace" .}}", "GLOBAL_INJECTED_MSO_IP_ADDR" : "so.{{include "common.namespace" .}}", + "GLOBAL_INJECTED_MUSIC_IP_ADDR" : "music.{{include "common.namespace" .}}", "GLOBAL_INJECTED_NETWORK" : "{{ .Values.openStackPrivateNetId }}", "GLOBAL_INJECTED_NEXUS_DOCKER_REPO" : "nexus3.onap.org:10001", "GLOBAL_INJECTED_NEXUS_PASSWORD" : "docker", "GLOBAL_INJECTED_NEXUS_REPO" : "https://nexus.onap.org/content/sites/raw", "GLOBAL_INJECTED_NEXUS_USERNAME" : "docker", + "GLOBAL_INJECTED_OOF_IP_ADDR" : "oof.{{include "common.namespace" .}}", "GLOBAL_INJECTED_OPENO_IP_ADDR" : "msb-iag.{{include "common.namespace" .}}", "GLOBAL_INJECTED_OPENSTACK_PASSWORD" : "{{ .Values.openStackEncryptedPassword }}", "GLOBAL_INJECTED_OPENSTACK_TENANT_ID" : "{{ .Values.openStackTenantId }}", @@ -64,16 +74,18 @@ GLOBAL_INJECTED_PROPERTIES = { "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_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_FE_IP_ADDR" : "{{.Release.Name}}-sdc-fe.{{include "common.namespace" .}}", "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_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_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_VM_FLAVOR" : "{{ .Values.openStackFlavourMedium }}", - "GLOBAL_INJECTED_VM_IMAGE_NAME" : "{{ .Values.ubuntuImage }}", - "GLOBAL_INJECTED_PUBLIC_NET_ID" : "{{ .Values.openStackPublicNetId }}", - "GLOBAL_INJECTED_SCRIPT_VERSION" : "{{ .Values.scriptVersion }}" + "GLOBAL_INJECTED_VM_FLAVOR" : "{{ .Values.openStackFlavourMedium }}" }
\ No newline at end of file diff --git a/kubernetes/robot/resources/config/robot/resources/asdc_interface.robot b/kubernetes/robot/resources/config/robot/resources/asdc_interface.robot deleted file mode 100644 index 5b69a66c7c..0000000000 --- a/kubernetes/robot/resources/config/robot/resources/asdc_interface.robot +++ /dev/null @@ -1,495 +0,0 @@ -*** Settings *** -Documentation The main interface for interacting with ASDC. It handles low level stuff like managing the http request library and DCAE required fields -Library RequestsLibrary -Library UUID -Library JSONUtils -Library OperatingSystem -Library Collections -Library ExtendedSelenium2Library -Resource global_properties.robot -Resource browser_setup.robot -Resource json_templater.robot -*** Variables *** -${ASDC_DESIGNER_USER_ID} cs0008 -${ASDC_TESTER_USER_ID} jm0007 -${ASDC_GOVERNOR_USER_ID} gv0001 -${ASDC_OPS_USER_ID} op0001 -${ASDC_HEALTH_CHECK_PATH} /sdc1/rest/healthCheck -${ASDC_VENDOR_LICENSE_MODEL_PATH} /onboarding-api/v1.0/vendor-license-models -${ASDC_VENDOR_SOFTWARE_PRODUCT_PATH} /onboarding-api/v1.0/vendor-software-products -${ASDC_VENDOR_KEY_GROUP_PATH} /license-key-groups -${ASDC_VENDOR_ENTITLEMENT_POOL_PATH} /entitlement-pools -${ASDC_VENDOR_FEATURE_GROUP_PATH} /feature-groups -${ASDC_VENDOR_LICENSE_AGREEMENT_PATH} /license-agreements -${ASDC_VENDOR_ACTIONS_PATH} /actions -${ASDC_VENDOR_SOFTWARE_UPLOAD_PATH} /orchestration-template-candidate -${ASDC_CATALOG_RESOURCES_PATH} /sdc2/rest/v1/catalog/resources -${ASDC_CATALOG_SERVICES_PATH} /sdc2/rest/v1/catalog/services -${ASDC_CATALOG_INACTIVE_RESOURCES_PATH} /sdc2/rest/v1/inactiveComponents/resource -${ASDC_CATALOG_INACTIVE_SERVICES_PATH} /sdc2/rest/v1/inactiveComponents/service -${ASDC_CATALOG_LIFECYCLE_PATH} /lifecycleState -${ASDC_CATALOG_SERVICE_RESOURCE_INSTANCE_PATH} /resourceInstance -${ASDC_CATALOG_SERVICE_DISTRIBUTION_STATE_PATH} /distribution-state -${ASDC_CATALOG_SERVICE_DISTRIBUTION_PATH} /distribution -${ASDC_DISTRIBUTION_STATE_APPROVE_PATH} /approve -${ASDC_CATALOG_SERVICE_DISTRIBUTION_ACTIVATE_PATH} /distribution/PROD/activate -${ASDC_LICENSE_MODEL_TEMPLATE} robot/assets/templates/asdc/license_model.template -${ASDC_KEY_GROUP_TEMPLATE} robot/assets/templates/asdc/key_group.template -${ASDC_ENTITLEMENT_POOL_TEMPLATE} robot/assets/templates/asdc/entitlement_pool.template -${ASDC_FEATURE_GROUP_TEMPLATE} robot/assets/templates/asdc/feature_group.template -${ASDC_LICENSE_AGREEMENT_TEMPLATE} robot/assets/templates/asdc/license_agreement.template -${ASDC_ACTION_TEMPLATE} robot/assets/templates/asdc/action.template -${ASDC_SOFTWARE_PRODUCT_TEMPLATE} robot/assets/templates/asdc/software_product.template -${ASDC_CATALOG_RESOURCE_TEMPLATE} robot/assets/templates/asdc/catalog_resource.template -${ASDC_USER_REMARKS_TEMPLATE} robot/assets/templates/asdc/user_remarks.template -${ASDC_CATALOG_SERVICE_TEMPLATE} robot/assets/templates/asdc/catalog_service.template -${ASDC_RESOURCE_INSTANCE_TEMPLATE} robot/assets/templates/asdc/resource_instance.template -${ASDC_FE_ENDPOINT} ${GLOBAL_ASDC_SERVER_PROTOCOL}://${GLOBAL_INJECTED_SDC_FE_IP_ADDR}:${GLOBAL_ASDC_FE_PORT} -${ASDC_BE_ENDPOINT} ${GLOBAL_ASDC_SERVER_PROTOCOL}://${GLOBAL_INJECTED_SDC_BE_IP_ADDR}:${GLOBAL_ASDC_BE_PORT} - -*** Keywords *** -Distribute Model From ASDC - [Documentation] goes end to end creating all the asdc objects based ona model and distributing it to the systems. it then returns the service name, vf name and vf module name - [Arguments] ${model_zip_path} ${catalog_service_name}= - ${catalog_service_id}= Add ASDC Catalog Service ${catalog_service_name} - ${catalog_resource_ids}= Create List - ${catalog_resources}= Create Dictionary - : FOR ${zip} IN @{model_zip_path} - \ ${loop_catalog_resource_id}= Setup ASDC Catalog Resource ${zip} - \ Append To List ${catalog_resource_ids} ${loop_catalog_resource_id} - \ ${loop_catalog_resource_resp}= Get ASDC Catalog Resource ${loop_catalog_resource_id} - \ Add ASDC Resource Instance ${catalog_service_id} ${loop_catalog_resource_id} ${loop_catalog_resource_resp['name']} - \ Set To Dictionary ${catalog_resources} ${loop_catalog_resource_id}=${loop_catalog_resource_resp} - ${catalog_service_resp}= Get ASDC Catalog Service ${catalog_service_id} - Checkin ASDC Catalog Service ${catalog_service_id} - Request Certify ASDC Catalog Service ${catalog_service_id} - Start Certify ASDC Catalog Service ${catalog_service_id} - # on certify it gets a new id - ${catalog_service_id}= Certify ASDC Catalog Service ${catalog_service_id} - Approve ASDC Catalog Service ${catalog_service_id} - Distribute ASDC Catalog Service ${catalog_service_id} - ${catalog_service_resp}= Get ASDC Catalog Service ${catalog_service_id} - ${vf_module}= Find Element In Array ${loop_catalog_resource_resp['groups']} type org.openecomp.groups.VfModule - Check Catalog Service Distributed ${catalog_service_resp['uuid']} - [Return] ${catalog_service_resp['name']} ${loop_catalog_resource_resp['name']} ${vf_module} ${catalog_resource_ids} ${catalog_service_id} ${catalog_resources} - -Setup ASDC Catalog Resource - [Documentation] Creates all the steps a vf needs for an asdc catalog resource and returns the id - [Arguments] ${model_zip_path} - ${license_model_id}= Add ASDC License Model - ${key_group_id}= Add ASDC License Group ${license_model_id} - ${pool_id}= Add ASDC Entitlement Pool ${license_model_id} - ${feature_group_id}= Add ASDC Feature Group ${license_model_id} ${key_group_id} ${pool_id} - ${license_agreement_id}= Add ASDC License Agreement ${license_model_id} ${feature_group_id} - Checkin ASDC License Model ${license_model_id} - Submit ASDC License Model ${license_model_id} - ${license_model_resp}= Get ASDC License Model ${license_model_id} 1.0 - ${software_product_id}= Add ASDC Software Product ${license_agreement_id} ${feature_group_id} ${license_model_resp['vendorName']} ${license_model_id} - Upload ASDC Heat Package ${software_product_id} ${model_zip_path} - Validate ASDC Software Product ${software_product_id} - Checkin ASDC Software Product ${software_product_id} - Submit ASDC Software Product ${software_product_id} - Package ASDC Software Product ${software_product_id} - ${software_product_resp}= Get ASDC Software Product ${software_product_id} 1.0 - ${catalog_resource_id}= Add ASDC Catalog Resource ${license_agreement_id} ${software_product_resp['name']} ${license_model_resp['vendorName']} ${software_product_id} - Checkin ASDC Catalog Resource ${catalog_resource_id} - Request Certify ASDC Catalog Resource ${catalog_resource_id} - Start Certify ASDC Catalog Resource ${catalog_resource_id} - # on certify it gets a new id - [Return] ${catalog_resource_id} - ${catalog_resource_id}= Certify ASDC Catalog Resource ${catalog_resource_id} -Add ASDC License Model - [Documentation] Creates an asdc license model and returns its id - ${uuid}= Generate UUID - ${shortened_uuid}= Evaluate str("${uuid}")[:23] - ${map}= Create Dictionary vendor_name=${shortened_uuid} - ${data}= Fill JSON Template File ${ASDC_LICENSE_MODEL_TEMPLATE} ${map} - ${resp}= Run ASDC Post Request ${ASDC_VENDOR_LICENSE_MODEL_PATH} ${data} - Should Be Equal As Strings ${resp.status_code} 200 - [Return] ${resp.json()['value']} -Get ASDC License Model - [Documentation] gets an asdc license model by its id - [Arguments] ${id} ${version_id}=0.1 - ${resp}= Run ASDC Get Request ${ASDC_VENDOR_LICENSE_MODEL_PATH}/${id}/versions/${version_id} - [Return] ${resp.json()} -Get ASDC License Models - [Documentation] gets an asdc license model by its id - ${resp}= Run ASDC Get Request ${ASDC_VENDOR_LICENSE_MODEL_PATH} - [Return] ${resp.json()} -Checkin ASDC License Model - [Documentation] checksin an asdc license model by its id - [Arguments] ${id} ${version_id}=0.1 - ${map}= Create Dictionary action=Checkin - ${data}= Fill JSON Template File ${ASDC_ACTION_TEMPLATE} ${map} - ${resp}= Run ASDC Put Request ${ASDC_VENDOR_LICENSE_MODEL_PATH}/${id}/versions/${version_id}${ASDC_VENDOR_ACTIONS_PATH} ${data} - Should Be Equal As Strings ${resp.status_code} 200 - [Return] ${resp.json()} -Submit ASDC License Model - [Documentation] submits an asdc license model by its id - [Arguments] ${id} ${version_id}=0.1 - ${map}= Create Dictionary action=Submit - ${data}= Fill JSON Template File ${ASDC_ACTION_TEMPLATE} ${map} - ${resp}= Run ASDC Put Request ${ASDC_VENDOR_LICENSE_MODEL_PATH}/${id}/versions/${version_id}${ASDC_VENDOR_ACTIONS_PATH} ${data} - Should Be Equal As Strings ${resp.status_code} 200 - [Return] ${resp.json()} -Checkin ASDC Software Product - [Documentation] checksin an asdc Software Product by its id - [Arguments] ${id} ${version_id}=0.1 - ${map}= Create Dictionary action=Checkin - ${data}= Fill JSON Template File ${ASDC_ACTION_TEMPLATE} ${map} - ${resp}= Run ASDC Put Request ${ASDC_VENDOR_SOFTWARE_PRODUCT_PATH}/${id}/versions/${version_id}${ASDC_VENDOR_ACTIONS_PATH} ${data} - Should Be Equal As Strings ${resp.status_code} 200 - [Return] ${resp.json()} -Validate ASDC Software Product - [Documentation] checksin an asdc Software Product by its id - [Arguments] ${id} ${version_id}=0.1 - ${data}= Catenate - ${resp}= Run ASDC Put Request ${ASDC_VENDOR_SOFTWARE_PRODUCT_PATH}/${id}/versions/${version_id}/orchestration-template-candidate/process ${data} - Should Be Equal As Strings ${resp.status_code} 200 - [Return] ${resp.json()} -Submit ASDC Software Product - [Documentation] submits an asdc Software Product by its id - [Arguments] ${id} ${version_id}=0.1 - ${map}= Create Dictionary action=Submit - ${data}= Fill JSON Template File ${ASDC_ACTION_TEMPLATE} ${map} - ${resp}= Run ASDC Put Request ${ASDC_VENDOR_SOFTWARE_PRODUCT_PATH}/${id}/versions/${version_id}${ASDC_VENDOR_ACTIONS_PATH} ${data} - Should Be Equal As Strings ${resp.status_code} 200 - [Return] ${resp.json()} -Package ASDC Software Product - [Documentation] creates_package on an asdc Software Product by its id - [Arguments] ${id} ${version_id}=0.1 - ${map}= Create Dictionary action=Create_Package - ${data}= Fill JSON Template File ${ASDC_ACTION_TEMPLATE} ${map} - ${resp}= Run ASDC Put Request ${ASDC_VENDOR_SOFTWARE_PRODUCT_PATH}/${id}/versions/${version_id}${ASDC_VENDOR_ACTIONS_PATH} ${data} - Should Be Equal As Strings ${resp.status_code} 200 - [Return] ${resp.json()} -Add ASDC Entitlement Pool - [Documentation] Creates an asdc Entitlement Pool and returns its id - [Arguments] ${license_model_id} ${version_id}=0.1 - ${uuid}= Generate UUID - ${shortened_uuid}= Evaluate str("${uuid}")[:23] - ${map}= Create Dictionary entitlement_pool_name=${shortened_uuid} - ${data}= Fill JSON Template File ${ASDC_ENTITLEMENT_POOL_TEMPLATE} ${map} - ${resp}= Run ASDC Post Request ${ASDC_VENDOR_LICENSE_MODEL_PATH}/${license_model_id}/versions/${version_id}${ASDC_VENDOR_ENTITLEMENT_POOL_PATH} ${data} - Should Be Equal As Strings ${resp.status_code} 200 - [Return] ${resp.json()['value']} -Get ASDC Entitlement Pool - [Documentation] gets an asdc Entitlement Pool by its id - [Arguments] ${license_model_id} ${pool_id} - ${resp}= Run ASDC Get Request ${ASDC_VENDOR_LICENSE_MODEL_PATH}/${license_model_id}${ASDC_VENDOR_ENTITLEMENT_POOL_PATH}/${pool_id} - [Return] ${resp.json()} -Add ASDC License Group - [Documentation] Creates an asdc license group and returns its id - [Arguments] ${license_model_id} ${version_id}=0.1 - ${uuid}= Generate UUID - ${shortened_uuid}= Evaluate str("${uuid}")[:23] - ${map}= Create Dictionary key_group_name=${shortened_uuid} - ${data}= Fill JSON Template File ${ASDC_KEY_GROUP_TEMPLATE} ${map} - ${resp}= Run ASDC Post Request ${ASDC_VENDOR_LICENSE_MODEL_PATH}/${license_model_id}/versions/${version_id}${ASDC_VENDOR_KEY_GROUP_PATH} ${data} - Should Be Equal As Strings ${resp.status_code} 200 - [Return] ${resp.json()['value']} -Get ASDC License Group - [Documentation] gets an asdc license group by its id - [Arguments] ${license_model_id} ${group_id} ${version_id} - ${resp}= Run ASDC Get Request ${ASDC_VENDOR_LICENSE_MODEL_PATH}/${license_model_id}/versions/${version_id}${ASDC_VENDOR_KEY_GROUP_PATH}/${group_id} - [Return] ${resp.json()} -Add ASDC Feature Group - [Documentation] Creates an asdc Feature Group and returns its id - [Arguments] ${license_model_id} ${key_group_id} ${entitlement_pool_id} ${version_id}=0.1 - ${uuid}= Generate UUID - ${shortened_uuid}= Evaluate str("${uuid}")[:23] - ${map}= Create Dictionary feature_group_name=${shortened_uuid} key_group_id=${key_group_id} entitlement_pool_id=${entitlement_pool_id} manufacturer_reference_number=mrn${shortened_uuid} - ${data}= Fill JSON Template File ${ASDC_FEATURE_GROUP_TEMPLATE} ${map} - ${resp}= Run ASDC Post Request ${ASDC_VENDOR_LICENSE_MODEL_PATH}/${license_model_id}/versions/${version_id}${ASDC_VENDOR_FEATURE_GROUP_PATH} ${data} - Should Be Equal As Strings ${resp.status_code} 200 - [Return] ${resp.json()['value']} -Get ASDC Feature Group - [Documentation] gets an asdc Feature Group by its id - [Arguments] ${license_model_id} ${group_id} - ${resp}= Run ASDC Get Request ${ASDC_VENDOR_LICENSE_MODEL_PATH}/${license_model_id}${ASDC_VENDOR_FEATURE_GROUP_PATH}/${group_id} - [Return] ${resp.json()} -Add ASDC License Agreement - [Documentation] Creates an asdc License Agreement and returns its id - [Arguments] ${license_model_id} ${feature_group_id} ${version_id}=0.1 - ${uuid}= Generate UUID - ${shortened_uuid}= Evaluate str("${uuid}")[:23] - ${map}= Create Dictionary license_agreement_name=${shortened_uuid} feature_group_id=${feature_group_id} - ${data}= Fill JSON Template File ${ASDC_LICENSE_AGREEMENT_TEMPLATE} ${map} - ${resp}= Run ASDC Post Request ${ASDC_VENDOR_LICENSE_MODEL_PATH}/${license_model_id}/versions/${version_id}${ASDC_VENDOR_LICENSE_AGREEMENT_PATH} ${data} - Should Be Equal As Strings ${resp.status_code} 200 - [Return] ${resp.json()['value']} -Get ASDC License Agreement - [Documentation] gets an asdc License Agreement by its id - [Arguments] ${license_model_id} ${agreement_id} - ${resp}= Run ASDC Get Request ${ASDC_VENDOR_LICENSE_MODEL_PATH}/${license_model_id}${ASDC_VENDOR_LICENSE_AGREEMENT_PATH}/${agreement_id} - [Return] ${resp.json()} -Add ASDC Software Product - [Documentation] Creates an asdc Software Product and returns its id - [Arguments] ${license_agreement_id} ${feature_group_id} ${license_model_name} ${license_model_id} - ${uuid}= Generate UUID - ${shortened_uuid}= Evaluate str("${uuid}")[:23] - ${map}= Create Dictionary software_product_name=${shortened_uuid} feature_group_id=${feature_group_id} license_agreement_id=${license_agreement_id} vendor_name=${license_model_name} vendor_id=${license_model_id} - ${data}= Fill JSON Template File ${ASDC_SOFTWARE_PRODUCT_TEMPLATE} ${map} - ${resp}= Run ASDC Post Request ${ASDC_VENDOR_SOFTWARE_PRODUCT_PATH} ${data} - Should Be Equal As Strings ${resp.status_code} 200 - [Return] ${resp.json()['vspId']} -Get ASDC Software Product - [Documentation] gets an asdc Software Product by its id - [Arguments] ${software_product_id} ${version_id}=0.1 - ${resp}= Run ASDC Get Request ${ASDC_VENDOR_SOFTWARE_PRODUCT_PATH}/${software_product_id}/versions/${version_id} - [Return] ${resp.json()} -Add ASDC Catalog Resource - [Documentation] Creates an asdc Catalog Resource and returns its id - [Arguments] ${license_agreement_id} ${software_product_name} ${license_model_name} ${software_product_id} - ${map}= Create Dictionary software_product_id=${software_product_id} software_product_name=${software_product_name} license_agreement_id=${license_agreement_id} vendor_name=${license_model_name} - ${data}= Fill JSON Template File ${ASDC_CATALOG_RESOURCE_TEMPLATE} ${map} - ${resp}= Run ASDC Post Request ${ASDC_CATALOG_RESOURCES_PATH} ${data} ${ASDC_DESIGNER_USER_ID} - Should Be Equal As Strings ${resp.status_code} 201 - [Return] ${resp.json()['uniqueId']} -Mark ASDC Catalog Resource Inactive - [Documentation] deletes an asdc Catalog Resource - [Arguments] ${catalog_resource_id} - ${resp}= Run ASDC Delete Request ${ASDC_CATALOG_RESOURCES_PATH}/${catalog_resource_id} ${ASDC_DESIGNER_USER_ID} - Should Be Equal As Strings ${resp.status_code} 204 - [Return] ${resp} -Delete Inactive ASDC Catalog Resources - [Documentation] delete all asdc Catalog Resources that are inactive - ${resp}= Run ASDC Delete Request ${ASDC_CATALOG_INACTIVE_RESOURCES_PATH} ${ASDC_DESIGNER_USER_ID} - Should Be Equal As Strings ${resp.status_code} 200 - [Return] ${resp.json()} -Get ASDC Catalog Resource - [Documentation] gets an asdc Catalog Resource by its id - [Arguments] ${catalog_resource_id} - ${resp}= Run ASDC Get Request ${ASDC_CATALOG_RESOURCES_PATH}/${catalog_resource_id} ${ASDC_DESIGNER_USER_ID} - [Return] ${resp.json()} -Checkin ASDC Catalog Resource - [Documentation] checksin an asdc Catalog Resource by its id - [Arguments] ${catalog_resource_id} - ${map}= Create Dictionary user_remarks=Robot remarks - ${data}= Fill JSON Template File ${ASDC_USER_REMARKS_TEMPLATE} ${map} - ${resp}= Run ASDC Post Request ${ASDC_CATALOG_RESOURCES_PATH}/${catalog_resource_id}${ASDC_CATALOG_LIFECYCLE_PATH}/checkin ${data} ${ASDC_DESIGNER_USER_ID} - Should Be Equal As Strings ${resp.status_code} 200 - [Return] ${resp.json()} -Request Certify ASDC Catalog Resource - [Documentation] requests certify on an asdc Catalog Resource by its id - [Arguments] ${catalog_resource_id} - ${map}= Create Dictionary user_remarks=Robot remarks - ${data}= Fill JSON Template File ${ASDC_USER_REMARKS_TEMPLATE} ${map} - ${resp}= Run ASDC Post Request ${ASDC_CATALOG_RESOURCES_PATH}/${catalog_resource_id}${ASDC_CATALOG_LIFECYCLE_PATH}/certificationRequest ${data} ${ASDC_DESIGNER_USER_ID} - Should Be Equal As Strings ${resp.status_code} 200 - [Return] ${resp.json()} -Start Certify ASDC Catalog Resource - [Documentation] start certify an asdc Catalog Resource by its id - [Arguments] ${catalog_resource_id} - ${resp}= Run ASDC Post Request ${ASDC_CATALOG_RESOURCES_PATH}/${catalog_resource_id}${ASDC_CATALOG_LIFECYCLE_PATH}/startCertification ${None} ${ASDC_TESTER_USER_ID} - Should Be Equal As Strings ${resp.status_code} 200 - [Return] ${resp.json()} -Certify ASDC Catalog Resource - [Documentation] start certify an asdc Catalog Resource by its id and returns the new id - [Arguments] ${catalog_resource_id} - ${map}= Create Dictionary user_remarks=Robot remarks - ${data}= Fill JSON Template File ${ASDC_USER_REMARKS_TEMPLATE} ${map} - ${resp}= Run ASDC Post Request ${ASDC_CATALOG_RESOURCES_PATH}/${catalog_resource_id}${ASDC_CATALOG_LIFECYCLE_PATH}/certify ${data} ${ASDC_TESTER_USER_ID} - Should Be Equal As Strings ${resp.status_code} 200 - [Return] ${resp.json()['uniqueId']} - -Upload ASDC Heat Package - [Documentation] Creates an asdc Software Product and returns its id - [Arguments] ${software_product_id} ${file_path} ${version_id}=0.1 - ${files}= Create Dictionary - Create Multi Part ${files} upload ${file_path} contentType=application/zip - ${resp}= Run ASDC Post Files Request ${ASDC_VENDOR_SOFTWARE_PRODUCT_PATH}/${software_product_id}/versions/${version_id}${ASDC_VENDOR_SOFTWARE_UPLOAD_PATH} ${files} ${ASDC_DESIGNER_USER_ID} - Should Be Equal As Strings ${resp.status_code} 200 - -Add ASDC Catalog Service - [Documentation] Creates an asdc Catalog Service and returns its id - [Arguments] ${catalog_service_name} - ${uuid}= Generate UUID - ${shortened_uuid}= Evaluate str("${uuid}")[:23] - ${catalog_service_name}= Set Variable If '${catalog_service_name}' =='' ${shortened_uuid} ${catalog_service_name} - ${map}= Create Dictionary service_name=${catalog_service_name} - ${data}= Fill JSON Template File ${ASDC_CATALOG_SERVICE_TEMPLATE} ${map} - ${resp}= Run ASDC Post Request ${ASDC_CATALOG_SERVICES_PATH} ${data} ${ASDC_DESIGNER_USER_ID} - Should Be Equal As Strings ${resp.status_code} 201 - [Return] ${resp.json()['uniqueId']} -Mark ASDC Catalog Service Inactive - [Documentation] Deletes an asdc Catalog Service - [Arguments] ${catalog_service_id} - ${resp}= Run ASDC Delete Request ${ASDC_CATALOG_SERVICES_PATH}/${catalog_service_id} ${ASDC_DESIGNER_USER_ID} - Should Be Equal As Strings ${resp.status_code} 204 - [Return] ${resp} -Delete Inactive ASDC Catalog Services - [Documentation] delete all asdc Catalog Serivces that are inactive - ${resp}= Run ASDC Delete Request ${ASDC_CATALOG_INACTIVE_SERVICES_PATH} ${ASDC_DESIGNER_USER_ID} - Should Be Equal As Strings ${resp.status_code} 200 - [Return] ${resp.json()} -Get ASDC Catalog Service - [Documentation] gets an asdc Catalog Service by its id - [Arguments] ${catalog_service_id} - ${resp}= Run ASDC Get Request ${ASDC_CATALOG_SERVICES_PATH}/${catalog_service_id} ${ASDC_DESIGNER_USER_ID} - [Return] ${resp.json()} -Checkin ASDC Catalog Service - [Documentation] checksin an asdc Catalog Service by its id - [Arguments] ${catalog_service_id} - ${map}= Create Dictionary user_remarks=Robot remarks - ${data}= Fill JSON Template File ${ASDC_USER_REMARKS_TEMPLATE} ${map} - ${resp}= Run ASDC Post Request ${ASDC_CATALOG_SERVICES_PATH}/${catalog_service_id}${ASDC_CATALOG_LIFECYCLE_PATH}/checkin ${data} ${ASDC_DESIGNER_USER_ID} - Should Be Equal As Strings ${resp.status_code} 200 - [Return] ${resp.json()} -Request Certify ASDC Catalog Service - [Documentation] requests certify on an asdc Catalog Service by its id - [Arguments] ${catalog_service_id} - ${map}= Create Dictionary user_remarks=Robot remarks - ${data}= Fill JSON Template File ${ASDC_USER_REMARKS_TEMPLATE} ${map} - ${resp}= Run ASDC Post Request ${ASDC_CATALOG_SERVICES_PATH}/${catalog_service_id}${ASDC_CATALOG_LIFECYCLE_PATH}/certificationRequest ${data} ${ASDC_DESIGNER_USER_ID} - Should Be Equal As Strings ${resp.status_code} 200 - [Return] ${resp.json()} -Start Certify ASDC Catalog Service - [Documentation] start certify an asdc Catalog Service by its id - [Arguments] ${catalog_service_id} - ${resp}= Run ASDC Post Request ${ASDC_CATALOG_SERVICES_PATH}/${catalog_service_id}${ASDC_CATALOG_LIFECYCLE_PATH}/startCertification ${None} ${ASDC_TESTER_USER_ID} - Should Be Equal As Strings ${resp.status_code} 200 - [Return] ${resp.json()} -Certify ASDC Catalog Service - [Documentation] start certify an asdc Catalog Service by its id and returns the new id - [Arguments] ${catalog_service_id} - ${map}= Create Dictionary user_remarks=Robot remarks - ${data}= Fill JSON Template File ${ASDC_USER_REMARKS_TEMPLATE} ${map} - ${resp}= Run ASDC Post Request ${ASDC_CATALOG_SERVICES_PATH}/${catalog_service_id}${ASDC_CATALOG_LIFECYCLE_PATH}/certify ${data} ${ASDC_TESTER_USER_ID} - Should Be Equal As Strings ${resp.status_code} 200 - [Return] ${resp.json()['uniqueId']} -Approve ASDC Catalog Service - [Documentation] approve an asdc Catalog Service by its id - [Arguments] ${catalog_service_id} - ${map}= Create Dictionary user_remarks=Robot remarks - ${data}= Fill JSON Template File ${ASDC_USER_REMARKS_TEMPLATE} ${map} - ${resp}= Run ASDC Post Request ${ASDC_CATALOG_SERVICES_PATH}/${catalog_service_id}${ASDC_CATALOG_SERVICE_DISTRIBUTION_STATE_PATH}${ASDC_DISTRIBUTION_STATE_APPROVE_PATH} ${data} ${ASDC_GOVERNOR_USER_ID} - Should Be Equal As Strings ${resp.status_code} 200 - [Return] ${resp.json()} -Distribute ASDC Catalog Service - [Documentation] distribute an asdc Catalog Service by its id - [Arguments] ${catalog_service_id} - ${resp}= Run ASDC Post Request ${ASDC_CATALOG_SERVICES_PATH}/${catalog_service_id}${ASDC_CATALOG_SERVICE_DISTRIBUTION_ACTIVATE_PATH} ${None} ${ASDC_OPS_USER_ID} - Should Be Equal As Strings ${resp.status_code} 200 - [Return] ${resp.json()} -Add ASDC Resource Instance - [Documentation] Creates an asdc Resource Instance and returns its id - [Arguments] ${catalog_service_id} ${catalog_resource_id} ${catalog_resource_name} - ${milli_timestamp}= Generate MilliTimestamp UUID - ${map}= Create Dictionary catalog_resource_id=${catalog_resource_id} catalog_resource_name=${catalog_resource_name} milli_timestamp=${milli_timestamp} - ${data}= Fill JSON Template File ${ASDC_RESOURCE_INSTANCE_TEMPLATE} ${map} - ${resp}= Run ASDC Post Request ${ASDC_CATALOG_SERVICES_PATH}/${catalog_service_id}${ASDC_CATALOG_SERVICE_RESOURCE_INSTANCE_PATH} ${data} ${ASDC_DESIGNER_USER_ID} - Should Be Equal As Strings ${resp.status_code} 201 - [Return] ${resp.json()['uniqueId']} -Get Catalog Service Distribution - [Documentation] gets an asdc catalog Service distrbution - [Arguments] ${catalog_service_uuid} - ${resp}= Run ASDC Get Request ${ASDC_CATALOG_SERVICES_PATH}/${catalog_service_uuid}${ASDC_CATALOG_SERVICE_DISTRIBUTION_PATH} ${ASDC_OPS_USER_ID} - Should Be Equal As Strings ${resp.status_code} 200 - [Return] ${resp.json()} -Check Catalog Service Distributed - [Documentation] gets an asdc catalog Service distrbution - [Arguments] ${catalog_service_uuid} - ${dist_resp}= Get Catalog Service Distribution ${catalog_service_uuid} - Should Be Equal As Strings ${dist_resp['distributionStatusOfServiceList'][0]['deployementStatus']} Distributed - Sleep 3 minutes - ${det_resp}= Get Catalog Service Distribution Details ${dist_resp['distributionStatusOfServiceList'][0]['distributionID']} - @{ITEMS}= Copy List ${det_resp['distributionStatusList']} - :FOR ${ELEMENT} IN @{ITEMS} - \ Log ${ELEMENT['status']} - \ Should Match Regexp ${ELEMENT['status']} ^(DEPLOY_OK|NOTIFIED|DOWNLOAD_OK|NOT_NOTIFIED)$ -Get Catalog Service Distribution Details - [Documentation] gets an asdc catalog Service distrbution details - [Arguments] ${catalog_service_distribution_id} - ${resp}= Run ASDC Get Request ${ASDC_CATALOG_SERVICES_PATH}${ASDC_CATALOG_SERVICE_DISTRIBUTION_PATH}/${catalog_service_distribution_id} ${ASDC_OPS_USER_ID} - Should Be Equal As Strings ${resp.status_code} 200 - [Return] ${resp.json()} -Run ASDC Health Check - [Documentation] Runs a ASDC health check - ${session}= Create Session asdc ${ASDC_FE_ENDPOINT} - ${uuid}= Generate UUID - ${headers}= Create Dictionary Accept=application/json Content-Type=application/json X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid} X-FromAppId=${GLOBAL_APPLICATION_ID} - ${resp}= Get Request asdc ${ASDC_HEALTH_CHECK_PATH} headers=${headers} - Should Be Equal As Strings ${resp.status_code} 200 - @{ITEMS}= Copy List ${resp.json()['componentsInfo']} - :FOR ${ELEMENT} IN @{ITEMS} - \ Log ${ELEMENT['healthCheckStatus']} - \ Should Be Equal As Strings ${ELEMENT['healthCheckStatus']} UP -Run ASDC Get Request - [Documentation] Runs an ASDC get request - [Arguments] ${data_path} ${user}=${ASDC_DESIGNER_USER_ID} - ${auth}= Create List ${GLOBAL_ASDC_BE_USERNAME} ${GLOBAL_ASDC_BE_PASSWORD} - Log Creating session ${ASDC_BE_ENDPOINT} - ${session}= Create Session asdc ${ASDC_BE_ENDPOINT} auth=${auth} - ${uuid}= Generate UUID - ${headers}= Create Dictionary Accept=application/json Content-Type=application/json USER_ID=${user} X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid} X-FromAppId=${GLOBAL_APPLICATION_ID} - ${resp}= Get Request asdc ${data_path} headers=${headers} - Log Received response from asdc ${resp.text} - [Return] ${resp} -Run ASDC Put Request - [Documentation] Runs an ASDC put request - [Arguments] ${data_path} ${data} ${user}=${ASDC_DESIGNER_USER_ID} - ${auth}= Create List ${GLOBAL_ASDC_BE_USERNAME} ${GLOBAL_ASDC_BE_PASSWORD} - Log Creating session ${ASDC_BE_ENDPOINT} - ${session}= Create Session asdc ${ASDC_BE_ENDPOINT} auth=${auth} - ${uuid}= Generate UUID - ${headers}= Create Dictionary Accept=application/json Content-Type=application/json USER_ID=${user} X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid} X-FromAppId=${GLOBAL_APPLICATION_ID} - ${resp}= Put Request asdc ${data_path} data=${data} headers=${headers} - Log Received response from asdc ${resp.text} - [Return] ${resp} - -Run ASDC Post Files Request - [Documentation] Runs an ASDC post request - [Arguments] ${data_path} ${files} ${user}=${ASDC_DESIGNER_USER_ID} - ${auth}= Create List ${GLOBAL_ASDC_BE_USERNAME} ${GLOBAL_ASDC_BE_PASSWORD} - Log Creating session ${ASDC_BE_ENDPOINT} - ${session}= Create Session asdc ${ASDC_BE_ENDPOINT} auth=${auth} - ${uuid}= Generate UUID - ${headers}= Create Dictionary Accept=application/json Content-Type=multipart/form-data USER_ID=${user} X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid} X-FromAppId=${GLOBAL_APPLICATION_ID} - ${resp}= Post Request asdc ${data_path} files=${files} headers=${headers} - Log Received response from asdc ${resp.text} - [Return] ${resp} - -Run ASDC Post Request - [Documentation] Runs an ASDC post request - [Arguments] ${data_path} ${data} ${user}=${ASDC_DESIGNER_USER_ID} - ${auth}= Create List ${GLOBAL_ASDC_BE_USERNAME} ${GLOBAL_ASDC_BE_PASSWORD} - Log Creating session ${ASDC_BE_ENDPOINT} - ${session}= Create Session asdc ${ASDC_BE_ENDPOINT} auth=${auth} - ${uuid}= Generate UUID - ${headers}= Create Dictionary Accept=application/json Content-Type=application/json USER_ID=${user} X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid} X-FromAppId=${GLOBAL_APPLICATION_ID} - ${resp}= Post Request asdc ${data_path} data=${data} headers=${headers} - Log Received response from asdc ${resp.text} - [Return] ${resp} -Run ASDC Delete Request - [Documentation] Runs an ASDC delete request - [Arguments] ${data_path} ${user}=${ASDC_DESIGNER_USER_ID} - ${auth}= Create List ${GLOBAL_ASDC_BE_USERNAME} ${GLOBAL_ASDC_BE_PASSWORD} - Log Creating session ${ASDC_BE_ENDPOINT} - ${session}= Create Session asdc ${ASDC_BE_ENDPOINT} auth=${auth} - ${uuid}= Generate UUID - ${headers}= Create Dictionary Accept=application/json Content-Type=application/json USER_ID=${user} X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid} X-FromAppId=${GLOBAL_APPLICATION_ID} - ${resp}= Delete Request asdc ${data_path} headers=${headers} - Log Received response from asdc ${resp.text} - [Return] ${resp} -Open ASDC GUI - [Documentation] Logs in to ASDC GUI - [Arguments] ${PATH} - ## Setup Browever now being managed by the test case - ##Setup Browser - Go To ${ASDC_FE_ENDPOINT}${PATH} - Maximize Browser Window - - Set Browser Implicit Wait ${GLOBAL_SELENIUM_BROWSER_IMPLICIT_WAIT} - Log Logging in to ${ASDC_FE_ENDPOINT}${PATH} - Title Should Be ASDC - Wait Until Page Contains Element xpath=//div/a[text()='SDC'] ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT} - Log Logged in to ${ASDC_FE_ENDPOINT}${PATH} - - -Create Multi Part - [Arguments] ${addTo} ${partName} ${filePath} ${contentType}=${None} - ${fileData}= Get Binary File ${filePath} - ${fileDir} ${fileName}= Split Path ${filePath} - ${partData}= Create List ${fileName} ${fileData} ${contentType} - Set To Dictionary ${addTo} ${partName}=${partData} diff --git a/kubernetes/robot/resources/config/robot/resources/policy_interface.robot b/kubernetes/robot/resources/config/robot/resources/policy_interface.robot index 9193fe438a..9656b7bc90 100644 --- a/kubernetes/robot/resources/config/robot/resources/policy_interface.robot +++ b/kubernetes/robot/resources/config/robot/resources/policy_interface.robot @@ -28,6 +28,7 @@ Run Policy Health Check :FOR ${ELEMENT} IN @{ITEMS} \ Should Be Equal As Strings ${ELEMENT['code']} 200 \ Should Be True ${ELEMENT['healthy']} + Run Policy Put Request [Documentation] Runs Policy Put request [Arguments] ${data_path} ${data} @@ -37,6 +38,7 @@ Run Policy Put Request ${resp}= Put Request policy ${data_path} data=${data} headers=${headers} Log Received response from policy ${resp.text} [Return] ${resp} + Run Policy Delete Request [Documentation] Runs Policy Delete request [Arguments] ${data_path} ${data} @@ -46,12 +48,13 @@ Run Policy Delete Request ${resp}= Delete Request policy ${data_path} data=${data} headers=${headers} Log Received response from policy ${resp.text} [Return] ${resp} + Run Policy Get Configs Request [Documentation] Runs Policy Get Configs request [Arguments] ${data_path} ${data} Log Creating session ${POLICY_ENDPOINT} ${session}= Create Session policy ${POLICY_ENDPOINT} - ${headers}= Create Dictionary Accept=application/json Content-Type=application/json Authorization=Basic ${GLOBAL_POLICY_AUTH} ClientAuth=${GLOBAL_POLICY_CLIENTAUTH} + ${headers}= Create Dictionary Accept=application/json Content-Type=application/json Authorization=Basic ${GLOBAL_POLICY_AUTH} ClientAuth=${GLOBAL_POLICY_CLIENTAUTH} ${resp}= Post Request policy ${data_path} data=${data} headers=${headers} Log Received response from policy ${resp.text} - [Return] ${resp} + [Return] ${resp}
\ No newline at end of file diff --git a/kubernetes/robot/resources/config/robot/resources/sdngc_interface.robot b/kubernetes/robot/resources/config/robot/resources/sdngc_interface.robot index 5b79f9a305..57198dbe99 100644 --- a/kubernetes/robot/resources/config/robot/resources/sdngc_interface.robot +++ b/kubernetes/robot/resources/config/robot/resources/sdngc_interface.robot @@ -1,7 +1,7 @@ *** Settings *** Documentation The main interface for interacting with SDN-GC. It handles low level stuff like managing the http request library and SDN-GC required fields Library RequestsLibrary -Library UUID +Library UUID Library OperatingSystem Library ExtendedSelenium2Library Library Collections @@ -30,7 +30,7 @@ Run SDNGC Health Check [Documentation] Runs an SDNGC healthcheck ${resp}= Run SDNGC Post Request ${SDNGC_INDEX PATH}${SDNCGC_HEALTHCHECK_OPERATION_PATH} ${None} Should Be Equal As Strings ${resp.status_code} 200 - Should Be Equal As Strings ${resp.json()['output']['response-code']} 200 + Should Be Equal As Strings ${resp.json()['output']['response-code']} 200 Run SDNGC Get Request [Documentation] Runs an SDNGC get request @@ -43,7 +43,7 @@ Run SDNGC Get Request ${resp}= Get Request sdngc ${data_path} headers=${headers} Log Received response from sdngc ${resp.text} [Return] ${resp} - + Run SDNGC Put Request [Documentation] Runs an SDNGC put request [Arguments] ${data_path} ${data} @@ -66,8 +66,8 @@ Run SDNGC Post Request ${headers}= Create Dictionary Accept=application/json Content-Type=application/json X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid} X-FromAppId=${GLOBAL_APPLICATION_ID} ${resp}= Post Request sdngc ${data_path} data=${data} headers=${headers} Log Received response from sdngc ${resp.text} - [Return] ${resp} - + [Return] ${resp} + Run SDNGC Delete Request [Documentation] Runs an SDNGC delete request [Arguments] ${data_path} @@ -83,7 +83,7 @@ Run SDNGC Delete Request Preload Vnf [Arguments] ${service_type_uuid} ${generic_vnf_name} ${generic_vnf_type} ${vf_module_name} ${vf_modules} ${service} ${uuid} - ${base_vf_module_type}= Catenate '' + ${base_vf_module_type}= Catenate ${closedloop_vf_module}= Create Dictionary ${templates}= Get From Dictionary ${GLOBAL_SERVICE_TEMPLATE_MAPPING} ${service} :for ${vf_module} in @{vf_modules} @@ -92,36 +92,36 @@ Preload Vnf \ ${filename}= Get From Dictionary ${dict} template \ ${base_vf_module_type}= Set Variable If '${dict['isBase']}' == 'true' ${vf_module_type} ${base_vf_module_type} \ ${closedloop_vf_module}= Set Variable If '${dict['isBase']}' == 'false' ${vf_module} ${closedloop_vf_module} - \ ${vf_name}= Update Module Name ${dict} ${vf_module_name} - \ Preload Vnf Profile ${vf_module_type} + \ ${vf_name}= Update Module Name ${dict} ${vf_module_name} + \ Preload Vnf Profile ${vf_module_type} \ Preload One Vnf Topology ${service_type_uuid} ${generic_vnf_name} ${generic_vnf_type} ${vf_name} ${vf_module_type} ${service} ${filename} ${uuid} - [Return] ${base_vf_module_type} ${closedloop_vf_module} + [Return] ${base_vf_module_type} ${closedloop_vf_module} Update Module Name [Arguments] ${dict} ${vf_module_name} Return From Keyword If 'prefix' not in ${dict} ${vf_module_name} Return From Keyword If '${dict['prefix']}' == '' ${vf_module_name} - ${name}= Replace String ${vf_module_name} Vfmodule_ ${dict['prefix']} - [Return] ${name} + ${name}= Replace String ${vf_module_name} Vfmodule_ ${dict['prefix']} + [Return] ${name} Get From Mapping - [Documentation] Retrieve the appropriate prelad template entry for the passed vf_module + [Documentation] Retrieve the appropriate prelad template entry for the passed vf_module [Arguments] ${templates} ${vf_module} ${vf_module_name}= Get From DIctionary ${vf_module} name - :for ${template} in @{templates} - \ Return From Keyword If '${template['name_pattern']}' in '${vf_module_name}' ${template} - [Return] None - + :for ${template} in @{templates} + \ Return From Keyword If '${template['name_pattern']}' in '${vf_module_name}' ${template} + [Return] None + Preload One Vnf Topology [Arguments] ${service_type_uuid} ${generic_vnf_name} ${generic_vnf_type} ${vf_module_name} ${vf_module_type} ${service} ${filename} ${uuid} Return From Keyword If '${filename}' == '' ${data_template}= OperatingSystem.Get File ${PRELOAD_VNF_TOPOLOGY_OPERATION_BODY}/preload.template ${parameters}= Get Template Parameters ${filename} ${uuid} - Set To Dictionary ${parameters} generic_vnf_name=${generic_vnf_name} generic_vnf_type=${generic_vnf_type} service_type=${service_type_uuid} vf_module_name=${vf_module_name} vf_module_type=${vf_module_type} uuid=${uuid} - ${data}= Fill JSON Template ${data_template} ${parameters} + Set To Dictionary ${parameters} generic_vnf_name=${generic_vnf_name} generic_vnf_type=${generic_vnf_type} service_type=${service_type_uuid} vf_module_name=${vf_module_name} vf_module_type=${vf_module_type} + ${data}= Fill JSON Template ${data_template} ${parameters} ${put_resp}= Run SDNGC Post Request ${SDNGC_INDEX_PATH}${PRELOAD_VNF_TOPOLOGY_OPERATION_PATH} ${data} - Should Be Equal As Strings ${put_resp.json()['output']['response-code']} 200 + Should Be Equal As Strings ${put_resp.json()['output']['response-code']} 200 ${get_resp}= Run SDNGC Get Request ${SDNGC_INDEX_PATH}${PRELOAD_VNF_CONFIG_PATH}/${vf_module_name}/${vf_module_type} Should Be Equal As Strings ${get_resp.status_code} 200 @@ -130,29 +130,47 @@ Get Template Parameters ${rest} ${suite}= Split String From Right ${SUITE NAME} . 1 ${uuid}= Catenate ${uuid} ${hostid}= Get Substring ${uuid} -4 - ${ecompnet}= Evaluate ${GLOBAL_BUILD_NUMBER}%255 + ${ecompnet}= Evaluate (${GLOBAL_BUILD_NUMBER}%128)+128 + + # Initialize the value map with the properties generated from the Robot VM /opt/config folder - ${valuemap}= Create Dictionary + ${valuemap}= Copy Dictionary ${GLOBAL_INJECTED_PROPERTIES} + + # These should be deprecated by the above.... Set To Dictionary ${valuemap} artifacts_version=${GLOBAL_INJECTED_ARTIFACTS_VERSION} - Set To Dictionary ${valuemap} network=${GLOBAL_INJECTED_NETWORK} + Set To Dictionary ${valuemap} network=${GLOBAL_INJECTED_NETWORK} Set To Dictionary ${valuemap} public_net_id=${GLOBAL_INJECTED_PUBLIC_NET_ID} Set To Dictionary ${valuemap} cloud_env=${GLOBAL_INJECTED_CLOUD_ENV} Set To Dictionary ${valuemap} install_script_version=${GLOBAL_INJECTED_SCRIPT_VERSION} Set To Dictionary ${valuemap} vm_image_name=${GLOBAL_INJECTED_VM_IMAGE_NAME} Set To Dictionary ${valuemap} vm_flavor_name=${GLOBAL_INJECTED_VM_FLAVOR} + + # update the value map with unique values. Set To Dictionary ${valuemap} uuid=${uuid} hostid=${hostid} ecompnet=${ecompnet} - ${parameters}= Create Dictionary - ${defaults}= Get From Dictionary ${GLOBAL_PRELOAD_PARAMETERS} defaults - Resolve Values Into Dictionary ${valuemap} ${defaults} ${parameters} + + # + # Mash together the defaults dict with the test case dict to create the set of + # preload parameters + # ${suite_templates}= Get From Dictionary ${GLOBAL_PRELOAD_PARAMETERS} ${suite} ${template}= Get From Dictionary ${suite_templates} ${template} - ${vnf_parameters}= Resolve VNF Parameters Into Array ${valuemap} ${template} ${parameters} + ${defaults}= Get From Dictionary ${GLOBAL_PRELOAD_PARAMETERS} defaults + # add all of the defaults to template... + @{keys}= Get Dictionary Keys ${defaults} + :for ${key} in @{keys} + \ ${value}= Get From Dictionary ${defaults} ${key} + \ Set To Dictionary ${template} ${key} ${value} + + # + # Get the vnf_parameters to preload + # + ${vnf_parameters}= Resolve VNF Parameters Into Array ${valuemap} ${template} ${vnf_parameters_json}= Evaluate json.dumps(${vnf_parameters}) json - Set To Dictionary ${parameters} vnf_parameters=${vnf_parameters_json} + ${parameters}= Create Dictionary vnf_parameters=${vnf_parameters_json} [Return] ${parameters} - -Resolve Values Into Dictionary + +Resolve Values Into Dictionary [Arguments] ${valuemap} ${from} ${to} ${keys}= Get Dictionary Keys ${from} :for ${key} in @{keys} @@ -161,7 +179,7 @@ Resolve Values Into Dictionary \ Set To Dictionary ${to} ${key} ${value} Resolve VNF Parameters Into Array - [Arguments] ${valuemap} ${from} ${to} + [Arguments] ${valuemap} ${from} ${vnf_parameters}= Create List ${keys}= Get Dictionary Keys ${from} :for ${key} in @{keys} @@ -170,7 +188,7 @@ Resolve VNF Parameters Into Array \ ${parameter}= Create Dictionary vnf-parameter-name=${key} vnf-parameter-value=${value} \ Append To List ${vnf_parameters} ${parameter} [Return] ${vnf_parameters} - + Preload Vnf Profile [Arguments] ${vnf_name} Login To SDNGC Admin GUI @@ -180,25 +198,25 @@ Preload Vnf Profile Input Text xpath=//input[@id='nf_availability_zone_count'] 999 Input Text xpath=//input[@id='nf_equipment_role'] robot-ete-test Click Button xpath=//button[contains(.,'Submit')] - Page Should Contain VNF Profile + Page Should Contain VNF Profile Input Text xpath=//div[@id='vnf_profile_filter']//input ${vnf_name} - Page Should Contain ${vnf_name} + Page Should Contain ${vnf_name} Delete Vnf Profile [Arguments] ${vnf_name} Login To SDNGC Admin GUI Go To ${SDNGC_ADMIN_VNF_PROFILE_URL} - Page Should Contain VNF Profile + Page Should Contain VNF Profile Input Text xpath=//div[@id='vnf_profile_filter']//input ${vnf_name} Page Should Contain ${vnf_name} - Click Button xpath=//button[contains(@onclick, '${vnf_name}')] + Click Button xpath=//button[contains(@onclick, '${vnf_name}')] Page Should Contain Are you sure you want to delete VNF_PROFILE Click Button xpath=//button[contains(text(), 'Yes')] Page Should Not Contain ${vnf_name} - + Login To SDNGC Admin GUI [Documentation] Login To SDNGC Admin GUI - ## Setup Browser is now being managed by the test case + ## Setup Browser is now being managed by the test case ## Setup Browser Go To ${SDNGC_ADMIN_SIGNUP_URL} ##Maximize Browser Window @@ -207,7 +225,7 @@ Login To SDNGC Admin GUI Log Logging in to ${SDNGC_ADMIN_LOGIN_URL} Handle Proxy Warning Title Should Be AdminPortal - ${uuid}= Generate UUID + ${uuid}= Generate UUID ${shortened_uuid}= Evaluate str("${uuid}")[:12] ${email}= Catenate ${shortened_uuid}@robotete.com Input Text xpath=//input[@id='nf_email'] ${email} @@ -219,4 +237,4 @@ Login To SDNGC Admin GUI Input Password xpath=//input[@id='password'] ${shortened_uuid} Click Button xpath=//button[@type='submit'] Title Should Be SDN-C AdminPortal - Log Logged in to ${SDNGC_ADMIN_LOGIN_URL} + Log Logged in to ${SDNGC_ADMIN_LOGIN_URL}
\ No newline at end of file diff --git a/kubernetes/robot/templates/deployment.yaml b/kubernetes/robot/templates/deployment.yaml index 3403810d20..6379aa1908 100644 --- a/kubernetes/robot/templates/deployment.yaml +++ b/kubernetes/robot/templates/deployment.yaml @@ -23,52 +23,64 @@ metadata: release: {{ .Release.Name }} heritage: {{ .Release.Service }} spec: - replicas: {{ .Values.robotReplicas }} + replicas: {{ .Values.replicaCount }} template: metadata: - labels: + labels: app: {{ include "common.name" . }} release: {{ .Release.Name }} spec: + initContainers: + - name: {{ include "common.name" . }}-inject-demo-project + command: + - /bin/bash + - -c + - > + git clone -b {{ .Values.config.gerritBranch }} --single-branch {{ .Values.config.gerritProject }} /tmp/gerrit; + echo "Clone complete. Copying from /tmp/gerrit/heat to /share"; + cp -rf /tmp/gerrit/heat /share; + echo "Done."; + image: "{{ .Values.global.ubuntuInitRepository }}/{{ .Values.ubuntuInitImage }}" + imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + volumeMounts: + - name: demodir + mountPath: "/share" containers: - - name: {{ .Chart.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: - - name: localtime - mountPath: /etc/localtime - readOnly: true - - name: robot-eteshare - mountPath: /share/config - - name: robot-resources - mountPath: /var/opt/OpenECOMP_ETE/robot/resources/asdc_interface.robot - subPath: asdc_interface.robot - - name: robot-resources - mountPath: /var/opt/OpenECOMP_ETE/robot/resources/policy_interface.robot - subPath: policy_interface.robot - - name: robot-resources - mountPath: /var/opt/OpenECOMP_ETE/robot/resources/sdngc_interface.robot - subPath: sdngc_interface.robot - - name: robot-lighttpd-authorization - mountPath: /etc/lighttpd/authorization - subPath: authorization - resources: + - name: {{ include "common.name" . }} + image: "{{ include "common.repository" . }}/{{ .Values.image }}" + imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + ports: + - containerPort: {{ .Values.service.internalPort }} + {{ if .Values.liveness.enabled }} + 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: + - name: localtime + mountPath: /etc/localtime + readOnly: true + - name: robot-eteshare + mountPath: /share/config + - name: robot-resources + mountPath: /var/opt/OpenECOMP_ETE/robot/resources/policy_interface.robot + subPath: policy_interface.robot + - name: robot-resources + mountPath: /var/opt/OpenECOMP_ETE/robot/resources/sdngc_interface.robot + subPath: sdngc_interface.robot + - name: robot-lighttpd-authorization + mountPath: /etc/lighttpd/authorization + subPath: authorization + - name: demodir + mountPath: /share + resources: {{ toYaml .Values.resources | indent 12 }} {{- if .Values.nodeSelector }} nodeSelector: @@ -79,18 +91,20 @@ spec: {{ toYaml .Values.affinity | indent 10 }} {{- end }} volumes: - - name: localtime - hostPath: - path: /etc/localtime - - name: robot-eteshare - configMap: - name: {{ include "common.fullname" . }}-eteshare-configmap - defaultMode: 0755 - - name: robot-resources - configMap: - name: {{ include "common.fullname" . }}-resources-configmap - - name: robot-lighttpd-authorization - configMap: - name: {{ include "common.fullname" . }}-lighttpd-authorization-configmap + - name: localtime + hostPath: + path: /etc/localtime + - name: robot-eteshare + configMap: + name: {{ include "common.fullname" . }}-eteshare-configmap + defaultMode: 0755 + - name: robot-resources + configMap: + name: {{ include "common.fullname" . }}-resources-configmap + - name: robot-lighttpd-authorization + configMap: + name: {{ include "common.fullname" . }}-lighttpd-authorization-configmap + - name: demodir + emptyDir: {} imagePullSecrets: - name: "{{ include "common.namespace" . }}-docker-registry-key" diff --git a/kubernetes/robot/templates/service.yaml b/kubernetes/robot/templates/service.yaml index f9f2805f00..3fc21b4550 100644 --- a/kubernetes/robot/templates/service.yaml +++ b/kubernetes/robot/templates/service.yaml @@ -15,7 +15,7 @@ apiVersion: v1 kind: Service metadata: - name: {{ include "common.fullname" . }} + name: {{ include "common.servicename" . }} namespace: {{ include "common.namespace" . }} labels: app: {{ include "common.name" . }} @@ -26,14 +26,14 @@ spec: type: {{ .Values.service.type }} ports: {{if eq .Values.service.type "NodePort" -}} - - port: {{ .Values.service.internalPort }} - nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.externalPort }} - name: {{ .Values.service.name }} + - port: {{ .Values.service.externalPort }} + nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }} + name: {{ .Values.service.portName | default "http" }} {{- else -}} - port: {{ .Values.service.externalPort }} targetPort: {{ .Values.service.internalPort }} - name: {{ .Values.service.name }} + name: {{ .Values.service.portName | default "http" }} {{- end}} selector: app: {{ include "common.name" . }} - release: {{ .Release.Name }} + release: {{ .Release.Name }}
\ No newline at end of file diff --git a/kubernetes/robot/values.yaml b/kubernetes/robot/values.yaml index 06f168c571..a842673930 100644 --- a/kubernetes/robot/values.yaml +++ b/kubernetes/robot/values.yaml @@ -18,38 +18,69 @@ global: # global defaults nodePortPrefix: 302 repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ== + ubuntuInitRepository: registry.hub.docker.com # application image repository: nexus3.onap.org:10001 image: onap/testsuite:1.2-STAGING-latest pullPolicy: Always +ubuntuInitImage: oomk8s/ubuntu-init:2.0.0 + # flag to enable debugging - application support required debugEnabled: false ################################################################# # Application configuration defaults. ################################################################# - -# openstack configuration - +config: + # Username of the lighthttpd server. Used for HTML auth for webpage access + lightHttpdUsername: robot + # Password of the lighthttpd server. Used for HTML auth for webpage access + lightHttpdPassword: robot + # gerrit branch where the latest heat code is checked in + gerritBranch: master + # gerrit project where the latest heat code is checked in + gerritProject: http://gerrit.onap.org/r/demo.git + + +# Demo configuration +# Nexus demo artifact version. Maps to GLOBAL_INJECTED_ARTIFACTS_VERSION demoArtifactsVersion: "1.2.0-SNAPSHOT" -openStackPrivateNetCidr: "192.168.30.0" +# Openstack medium sized flavour name. Maps GLOBAL_INJECTED_VM_FLAVOR openStackFlavourMedium: "m1.medium" +# Openstack keystone URL. Maps to GLOBAL_INJECTED_KEYSTONE openStackKeyStoneUrl: "http://1.2.3.4:5000" +# UUID of the Openstack network that can assign floating ips. Maps to GLOBAL_INJECTED_PUBLIC_NET_ID openStackPublicNetId: "e8f51958045716781ffc" -openStackPrivateNetId: "e8f51956-00dd-4425-af36-045716781ffc" -openStackOamNetworkCidrPrefix: "192.168.120" -openStackEncryptedPassword: "c124921a3a0efbe579782cde8227681e" +# password for Openstack tenant where VNFs will be spawned. Maps to GLOBAL_INJECTED_OPENSTACK_PASSWORD +openStackPassword: "tenantPassword" +# Openstack region. Maps to GLOBAL_INJECTED_REGION openStackRegion: "RegionOne" -openStackPrivateSubnetId: "e8f51956-00dd-4425-af36-045716781ffc" +# Openstack tenant UUID where VNFs will be spawned. Maps to GLOBAL_INJECTED_OPENSTACK_TENANT_ID openStackTenantId: "47899782ed714295b1151681fdfd51f5" -openStackUserName: "vnf_user" -ubuntuImage: "Ubuntu_14.04.5_LTS" -scriptVersion: "1.1.1" +# username for Openstack tenant where VNFs will be spawned. Maps to GLOBAL_INJECTED_OPENSTACK_USERNAME +openStackUserName: "tenantUsername" +# Openstack glance image name for Ubuntu 14. Maps to GLOBAL_INJECTED_UBUNTU_1404_IMAGE +ubuntu14Image: "Ubuntu_14_trusty" +# Openstack glance image name for Ubuntu 16. Maps to GLOBAL_INJECTED_UBUNTU_1604_IMAGE +ubuntu16Image: "Ubuntu_16_xenial" +# GLOBAL_INJECTED_SCRIPT_VERSION. Maps to GLOBAL_INJECTED_SCRIPT_VERSION +scriptVersion: "1.2.0-SNAPSHOT" +# Openstack network to which VNFs will bind their primary (first) interface. Maps to GLOBAL_INJECTED_NETWORK +openStackPrivateNetId: "e8f51956-00dd-4425-af36-045716781ffc" + +# SDNC Preload configuration +# Openstack subnet UUID for the network defined by openStackPrivateNetId. Maps to onap_private_subnet_id +openStackPrivateSubnetId: "e8f51956-00dd-4425-af36-045716781ffc" +# CIDR notation for the Openstack private network where VNFs will be spawned. Maps to onap_private_net_cidr +openStackPrivateNetCidr: "10.0.0.0/8" +# The first 2 octets of the private Openstack subnet where VNFs will be spawned. +# Needed because sdnc preload templates hardcodes things like this 10.0.${ecompnet}.X +openStackOamNetworkCidrPrefix: "10.0" # default number of instances -robotReplicas: 1 +replicaCount: 1 nodeSelector: {} @@ -69,10 +100,12 @@ readiness: service: - type: NodePort name: robot - externalPort: "09" + type: NodePort + portName: httpd + externalPort: 88 internalPort: 88 + nodePort: "09" ingress: diff --git a/kubernetes/sdnc/resources/config/bin/startODL.sh b/kubernetes/sdnc/resources/config/bin/startODL.sh index 0c41d3e3e0..aa5b6d1479 100755 --- a/kubernetes/sdnc/resources/config/bin/startODL.sh +++ b/kubernetes/sdnc/resources/config/bin/startODL.sh @@ -34,17 +34,38 @@ function enable_odl_cluster(){ hm=$(hostname) echo "Get current Hostname ${hm}" - node=($(echo ${hm} | sed 's/-[0-9]*$//g')) - node_index=($(echo ${hm} | awk -F"-" '{print $NF}')) - node_list="${node}-0.{{ .Values.service.name }}-cluster.{{.Release.Namespace}}"; + node=($(echo ${hm} | tr '-' '\n')) + node_name=${node[0]} + node_index=${node[1]} + + if [ -z $PEER_ODL_CLUSTER ]; then + echo "This is a local cluster" + node_list="${node_name}-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}}" + done + /opt/opendaylight/current/bin/configure_cluster.sh $((node_index+1)) ${node_list} + else + echo "This is a Geo cluster" + + if $IS_PRIMARY_CLUSTER; then + PRIMARY_NODE=${MY_ODL_CLUSTER} + SECONDARY_NODE=${PEER_ODL_CLUSTER} + else + PRIMARY_NODE=${PEER_ODL_CLUSTER} + SECONDARY_NODE=${MY_ODL_CLUSTER} + member_offset=4 + fi + + node_list="${PRIMARY_NODE} ${SECONDARY_NODE}" + /opt/onap/sdnc/bin/configure_geo_cluster.sh $((node_index+member_offset)) ${node_list} + fi +} - for ((i=1;i<${SDNC_REPLICAS};i++)); - do - 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} -} +# Install SDN-C platform components if not already installed and start container ODL_HOME=${ODL_HOME:-/opt/opendaylight/current} ODL_ADMIN_PASSWORD=${ODL_ADMIN_PASSWORD:-Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U} @@ -53,6 +74,8 @@ SLEEP_TIME=${SLEEP_TIME:-120} MYSQL_PASSWD=${MYSQL_PASSWD:-{{.Values.config.dbRootPassword}}} ENABLE_ODL_CLUSTER=${ENABLE_ODL_CLUSTER:-false} MYSQL_HOST=${MYSQL_HOST:-{{.Release.Name}}-{{.Values.mysql.nameOverride}}-0.{{.Values.mysql.service.name}}.{{.Release.Namespace}}} +IS_PRIMARY_CLUSTER=${IS_PRIMARY_CLUSTER:-false} +MY_ODL_CLUSTER=${MY_ODL_CLUSTER:-127.0.0.1} # # Wait for database to init properly diff --git a/kubernetes/sdnc/resources/config/conf/dblib.properties b/kubernetes/sdnc/resources/config/conf/dblib.properties index 9faf9e2482..499834e0e2 100644 --- a/kubernetes/sdnc/resources/config/conf/dblib.properties +++ b/kubernetes/sdnc/resources/config/conf/dblib.properties @@ -23,7 +23,7 @@ org.onap.ccsdk.sli.dbtype=jdbc org.onap.ccsdk.sli.jdbc.hosts=sdnctldb01 -org.onap.ccsdk.sli.jdbc.url=jdbc:mysql://{{.Release.Name}}-{{.Values.mysql.nameOverride}}-0.{{.Values.mysql.service.name}}.{{.Release.Namespace}}:{{.Values.mysql.service.internalPort}}/sdnctl +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 diff --git a/kubernetes/sdnc/resources/config/conf/svclogic.properties b/kubernetes/sdnc/resources/config/conf/svclogic.properties index dbbbb92b41..99f6cf84b7 100644 --- a/kubernetes/sdnc/resources/config/conf/svclogic.properties +++ b/kubernetes/sdnc/resources/config/conf/svclogic.properties @@ -20,7 +20,7 @@ ### org.onap.ccsdk.sli.dbtype = jdbc -org.onap.ccsdk.sli.jdbc.url = jdbc:mysql://{{.Release.Name}}-{{.Values.mysql.nameOverride}}-0.{{.Values.mysql.service.name}}.{{.Release.Namespace}}:{{.Values.mysql.service.internalPort}}/sdnctl +org.onap.ccsdk.sli.jdbc.url = jdbc:mysql://{{.Values.mysql.service.name}}.{{.Release.Namespace}}:{{.Values.mysql.service.internalPort}}/sdnctl org.onap.ccsdk.sli.jdbc.database = sdnctl org.onap.ccsdk.sli.jdbc.user = sdnctl org.onap.ccsdk.sli.jdbc.password = gamma diff --git a/kubernetes/sdnc/templates/statefulset.yaml b/kubernetes/sdnc/templates/statefulset.yaml index fd4f81bd8f..8b4055e1df 100644 --- a/kubernetes/sdnc/templates/statefulset.yaml +++ b/kubernetes/sdnc/templates/statefulset.yaml @@ -76,7 +76,7 @@ spec: - name: SDNC_REPLICAS value: "{{ .Values.replicaCount }}" - name: MYSQL_HOST - value: "{{.Release.Name}}-{{.Values.mysql.nameOverride}}-0.{{.Values.mysql.service.name}}.{{.Release.Namespace}}" + value: "{{.Values.mysql.service.name}}.{{.Release.Namespace}}" volumeMounts: - mountPath: /etc/localtime name: localtime diff --git a/kubernetes/sdnc/values.yaml b/kubernetes/sdnc/values.yaml index 8de608b3c6..6360d37e21 100644 --- a/kubernetes/sdnc/values.yaml +++ b/kubernetes/sdnc/values.yaml @@ -80,7 +80,7 @@ mysql: persistence: mountSubPath: sdnc/data enabled: true - disableNfsProvisioner: false + disableNfsProvisioner: true replicaCount: 1 dgbuilder: diff --git a/kubernetes/so/resources/config/mso/mso-docker.json b/kubernetes/so/resources/config/mso/mso-docker.json index 17f01931a6..92988ba2f0 100755 --- a/kubernetes/so/resources/config/mso/mso-docker.json +++ b/kubernetes/so/resources/config/mso/mso-docker.json @@ -9,9 +9,9 @@ "mso-api-handler-infra-config": { - "bpelURL": "http://so:8080", + "bpelURL": "http://{{.Values.service.name}}:{{.Values.service.internalPort}}", "bpelAuth": "786864AA53D0DCD881AED1154230C0C3058D58B9339D2EFB6193A0F0D82530E1", - "camundaURL": "http://so:8080", + "camundaURL": "http://{{.Values.service.name}}:{{.Values.service.internalPort}}", "camundaAuth": "5119D1AF37F671FC01FFAD2151D93EFB2BBB503E879FD07104D024EDDF118FD1" }, @@ -23,7 +23,7 @@ "consumerGroup": "sdc-OpenSource-Env1", "consumerId": "sdc-COpenSource-Env11", "environmentName": "{{ .Values.config.dmaapTopic }}", - "asdcAddress": "sdc-be:8443", + "asdcAddress": "{{.Values.config.sdc.serviceName}}:{{.Values.config.sdc.port}}", "password": "613AF3483E695524F9857643B697FA51C7A9A0951094F53791485BF3458F9EADA37DBACCCEBD0CB242B85B4062745247", "pollingInterval": 60, "pollingTimeout": 60, @@ -38,20 +38,20 @@ { "sdncurls": [ - "http://sdnhost:8282/restconf/operations/L3SDN-API:", - "http://sdnhost:8282/restconf/config/L3SDN-API:", - "http://sdnhost:8282/restconf/operations/Firewall-API:", - "http://sdnhost:8282/restconf/config", - "http://sdnhost:8282/restconf/operations/VNF-API:", - "http://sdnhost:8282/restconf/operations/NBNC-API:", - "http://sdnhost:8282/restconf/operations/NORTHBOUND-API:service-topology-operation", - "http://sdnhost:8282/restconf/operations/GENERIC-RESOURCE-API:", - "http://sdnhost:8282/restconf/operations/VNFTOPOLOGYAIC-API:" + "http://{{.Values.config.sdnc.serviceName}}:{{.Values.config.sdnc.port}}/restconf/operations/L3SDN-API:", + "http://{{.Values.config.sdnc.serviceName}}:{{.Values.config.sdnc.port}}/restconf/config/L3SDN-API:", + "http://{{.Values.config.sdnc.serviceName}}:{{.Values.config.sdnc.port}}/restconf/operations/Firewall-API:", + "http://{{.Values.config.sdnc.serviceName}}:{{.Values.config.sdnc.port}}/restconf/config", + "http://{{.Values.config.sdnc.serviceName}}:{{.Values.config.sdnc.port}}/restconf/operations/VNF-API:", + "http://{{.Values.config.sdnc.serviceName}}:{{.Values.config.sdnc.port}}/restconf/operations/NBNC-API:", + "http://{{.Values.config.sdnc.serviceName}}:{{.Values.config.sdnc.port}}/restconf/operations/NORTHBOUND-API:service-topology-operation", + "http://{{.Values.config.sdnc.serviceName}}:{{.Values.config.sdnc.port}}/restconf/operations/GENERIC-RESOURCE-API:", + "http://{{.Values.config.sdnc.serviceName}}:{{.Values.config.sdnc.port}}/restconf/operations/VNFTOPOLOGYAIC-API:" ], - "bpelurl": "http://so:8080/mso/SDNCAdapterCallbackService", - "restbpelurl": "http://so:8080/mso/WorkflowMessage", - "myurl": "http://so:8080/adapters/rest/SDNCNotify", + "bpelurl": "http://{{.Values.service.name}}:{{.Values.service.internalPort}}/mso/SDNCAdapterCallbackService", + "restbpelurl": "http://{{.Values.service.name}}:{{.Values.service.internalPort}}/mso/WorkflowMessage", + "myurl": "http://{{.Values.service.name}}:{{.Values.service.internalPort}}/adapters/rest/SDNCNotify", "sdncauth": "263f7d5f944d4d0c76db74b4148bec67d0bc796a874bc0d2a2a12aae89a866aa69133f700f391f784719a37f6a68d29bf5a2fbae1dab0402db7788c800c5ba73", "bpelauth": "5119D1AF37F671FC01FFAD2151D93EFB2BBB503E879FD07104D024EDDF118FD1", "sdncconnecttime": "5000" @@ -92,7 +92,7 @@ "mso-workflow-message-adapter-config": { - "wmbpelurl": "http://so:8080/mso/WorkflowMessage", + "wmbpelurl": "http://{{.Values.service.name}}:{{.Values.service.internalPort}}/mso/WorkflowMessage", "wmbpelauth": "5119D1AF37F671FC01FFAD2151D93EFB2BBB503E879FD07104D024EDDF118FD1" }, @@ -128,37 +128,37 @@ "versionIdL3ToHigherLayerDeleteBonding": "52dbec20-47aa-42e4-936c-331d8e350d44", "infraCustomerId": "21014aa2-526b-11e6-beb8-9e71128cae77", "sniroAuth": "test:testpwd", - "sniroEndpoint": "http://sniro-emulator:8080/sniro/api/v2/placement", + "sniroEndpoint": "http://{{.Values.config.sniro.serviceName}}:{{.Values.config.sniro.port}}/sniro/api/v2/placement", "sniroTimeout": "PT30M", - "serviceAgnosticSniroHost": "http://sniro-emulator:8080", + "serviceAgnosticSniroHost": "http://{{.Values.config.sniro.serviceName}}:{{.Values.config.sniro.port}}", "serviceAgnosticSniroEndpoint": "/sniro/api/v2/placement", - "aaiEndpoint": "https://aai-service:8443", + "aaiEndpoint": "https://{{.Values.config.aai.serviceName}}:{{.Values.config.aai.port}}", "aaiAuth": "2630606608347B7124C244AB0FE34F6F", "adaptersNamespace": "http://org.openecomp.mso", - "adaptersCompletemsoprocessEndpoint": "http://so:8080/CompleteMsoProcess", - "adaptersDbEndpoint": "http://so:8080/dbadapters/MsoRequestsDbAdapter", - "adaptersOpenecompDbEndpoint": "http://so:8080/dbadapters/RequestsDbAdapter", - "catalogDbEndpoint": "http://so:8080/ecomp/mso/catalog", - "adaptersSdncEndpoint": "http://so:8080/adapters/SDNCAdapter", - "adaptersSdncRestEndpoint": "http://so:8080/adapters/rest/v1/sdnc", - "adaptersTenantEndpoint": "http://so:8080/tenants/TenantAdapter", + "adaptersCompletemsoprocessEndpoint": "http://{{.Values.service.name}}:{{.Values.service.internalPort}}/CompleteMsoProcess", + "adaptersDbEndpoint": "http://{{.Values.service.name}}:{{.Values.service.internalPort}}/dbadapters/MsoRequestsDbAdapter", + "adaptersOpenecompDbEndpoint": "http://{{.Values.service.name}}:{{.Values.service.internalPort}}/dbadapters/RequestsDbAdapter", + "catalogDbEndpoint": "http://{{.Values.service.name}}:{{.Values.service.internalPort}}/ecomp/mso/catalog", + "adaptersSdncEndpoint": "http://{{.Values.service.name}}:{{.Values.service.internalPort}}/adapters/SDNCAdapter", + "adaptersSdncRestEndpoint": "http://{{.Values.service.name}}:{{.Values.service.internalPort}}/adapters/rest/v1/sdnc", + "adaptersTenantEndpoint": "http://{{.Values.service.name}}:{{.Values.service.internalPort}}/tenants/TenantAdapter", "adaptersDbAuth": "6B0E6863FB8EE010AB6F191B3C0489437601E81DC7C86305CB92DB98AFC53D74", - "adaptersWorkflowMessageEndpoint": "http://so:8080/workflows/messages/message", - "workflowMessageEndpoint": "http://so:8080/mso/WorkflowMessage", - "workflowSdncAdapterCallback": "http://so:8080/mso/SDNCAdapterCallbackService", + "adaptersWorkflowMessageEndpoint": "http://{{.Values.service.name}}:{{.Values.service.internalPort}}/workflows/messages/message", + "workflowMessageEndpoint": "http://{{.Values.service.name}}:{{.Values.service.internalPort}}/mso/WorkflowMessage", + "workflowSdncAdapterCallback": "http://{{.Values.service.name}}:{{.Values.service.internalPort}}/mso/SDNCAdapterCallbackService", "workflowSdncReplicationDelay": "PT5S", "workflowAaiDistributionDelay": "PT30S", "msoKey": "07a7159d3bf51a0e53be7a8f89699be7", "adaptersPoAuth": "6B0E6863FB8EE010AB6F191B3C0489437601E81DC7C86305CB92DB98AFC53D74", "sdncTimeout": "PT5M", "rollback": "true", - "adaptersNetworkEndpoint": "http://so:8080/networks/NetworkAdapter", - "adaptersNetworkRestEndpoint": "http://so:8080/networks/rest/v1/networks", - "adaptersVnfAsyncEndpoint": "http://so:8080/vnfs/VnfAdapterAsync", - "workflowVnfAdapterDeleteCallback": "http://so:8080/mso/vnfAdapterNotify", - "workflowVnfAdapterCreateCallback": "http://so:8080/mso/vnfAdapterNotify", - "adaptersVnfRestEndpoint": "http://so:8080/vnfs/rest/v1/vnfs", - "workflowVnfAdapterRestCallback": "http://so:8080/mso/vnfAdapterRestNotify", + "adaptersNetworkEndpoint": "http://{{.Values.service.name}}:{{.Values.service.internalPort}}/networks/NetworkAdapter", + "adaptersNetworkRestEndpoint": "http://{{.Values.service.name}}:{{.Values.service.internalPort}}/networks/rest/v1/networks", + "adaptersVnfAsyncEndpoint": "http://{{.Values.service.name}}:{{.Values.service.internalPort}}/vnfs/VnfAdapterAsync", + "workflowVnfAdapterDeleteCallback": "http://{{.Values.service.name}}:{{.Values.service.internalPort}}/mso/vnfAdapterNotify", + "workflowVnfAdapterCreateCallback": "http://{{.Values.service.name}}:{{.Values.service.internalPort}}/mso/vnfAdapterNotify", + "adaptersVnfRestEndpoint": "http://{{.Values.service.name}}:{{.Values.service.internalPort}}/vnfs/rest/v1/vnfs", + "workflowVnfAdapterRestCallback": "http://{{.Values.service.name}}:{{.Values.service.internalPort}}/mso/vnfAdapterRestNotify", "poTimeout": "PT5M", "sdncFirewallYangModel": "http://com/att/svc/mis/firewall-lite-gui", "sdncFirewallYangModelVersion": "2015-05-15", @@ -179,4 +179,3 @@ "mso-config": "~> 1.0.0" } } - diff --git a/kubernetes/so/resources/config/mso/mso.bpmn.urn.properties b/kubernetes/so/resources/config/mso/mso.bpmn.urn.properties new file mode 100644 index 0000000000..81c21f6ef2 --- /dev/null +++ b/kubernetes/so/resources/config/mso/mso.bpmn.urn.properties @@ -0,0 +1,129 @@ +log.debug.asyncQueryAAICustomer=false +log.debug.ChangeFeatureActivateV1=false +log.debug.ChangeLayer3ServiceActivateV1=false +log.debug.CompleteMsoProcess=false +log.debug.commonCompletion=false +log.debug.CreateCustomerV1=false +log.debug.CreateTenantV1=false +log.debug.DeleteTenantV1=false +log.debug.deleteVCEV1=false +log.debug.getLayer3ServiceDetailsV1=false +log.debug.l3ToHigherLayerAddBonding=false +log.debug.l3ToHigherLayerDeleteBonding=false +mso.workflow.l3ToHigherLayerAddBonding.model.invariantid=50359538-066f-4a8d-807f-f2bc8eaa79dc +mso.workflow.l3ToHigherLayerAddBonding.model.versionid=52dbec20-47aa-42e4-936c-331d8e350d44 +log.debug.Layer3ServiceActivateV1=false +log.debug.QueryAAICustomer=false +log.debug.QueryTenantInfo=false +log.debug.sdncAdapter=false +log.debug.sendAOTSTicket=false +log.debug.vnfAdapterCreateV1=false +log.debug.vnfAdapterDeleteV1=false +log.debug.RemoveLayer3Service=false +log.debug.Layer3TestAndTurnUpV1=false +log.debug.vnfAdapterRollbackV1=false +log.debug.vnfAdapterQueryV1=false +log.debug.CreateVfModuleVolume=false +log.debug.DeleteVfModuleVolume=false +log.debug.UpdateVfModuleVolume=false +log.debug.createCinderVolumeV1=false +log.debug.deleteCinderVolumeV1=false +log.debug.updateCinderVolumeV1=false +log.debug.CreateNetworkV2=false +log.debug.DeleteNetworkV2=false +log.debug.UpdateNetworkV2=false +log.debug.deleteGenericVNFV1=false +log.debug.DisconnectLayer3Service=false +log.debug.CreateVfModuleVolumeInfraV1=false +log.debug.DeleteVfModuleVolumeInfraV1=false +log.debug.UpdateVfModuleVolumeInfraV1=false +log.debug.CreateServiceInstanceInfra=false +log.debug.DeleteServiceInstanceInfra=false +log.debug.CreateNetworkInstanceInfra=false +log.debug.DeleteNetworkInstanceInfra=false +log.debug.UpdateNetworkInstanceInfra=false +log.debug.UpdateNetworkInstance=false +log.debug.DoUpdateNetworkInstance=false +log.debug.DoUpdateNetworkInstanceRollback=false +log.debug.CreateNetworkInstance=false +log.debug.DoCreateNetworkInstance=false +log.debug.DoCreateNetworkInstanceRollback=false +log.debug.DeleteNetworkInstance=false +log.debug.DoDeleteNetworkInstance=false +log.debug.DoDeleteNetworkInstanceRollback=false +log.debug.CreateViprAtmService=false +log.debug.DeleteViprAtmService=false +log.debug.GenericGetService=false +log.debug.GenericPutService=false +log.debug.GenericDeleteService=false +log.debug.CreateServiceInstance=false +log.debug.DelServiceInstance=false +log.debug.RollbackServiceInstance=false +log.debug.DoCreateServiceInstanceRollback=false +log.debug.DoDeleteServiceInstance=false +log.debug.DoCreateVfModuleVolumeRollback=false +log.debug.DoDeleteVfModuleVolumeRollback=false +log.debug.DoDeleteVfModuleVolumeV1=false +log.debug.DoCreateVfModuleVolumeV1=false +log.debug.VPECreateVfModule=false +log.debug.DHVCreateService=false +log.debug.DHVActivateService=false +log.debug.SNIROAdapter= +mso.infra.customer.id=21014aa2-526b-11e6-beb8-9e71128cae77 +mso.sniro.auth=test:testpwd +mso.sniro.endpoint=http://{{.Values.config.sniro.serviceName}}:{{.Values.config.sniro.port}}/sniro/api/v2/placement +mso.sniro.timeout=PT30M +mso.service.agnostic.sniro.host=http://{{.Values.config.sniro.serviceName}}:{{.Values.config.sniro.port}} +mso.service.agnostic.sniro.endpoint=/sniro/api/v2/placement +mso.catalog.db.endpoint=http://{{.Values.service.name}}:{{.Values.service.internalPort}}/ecomp/mso/catalog +aai.endpoint=https://{{.Values.config.aai.serviceName}}:{{.Values.config.aai.port}} +mso.adapters.namespace=http://org.openecomp.mso +mso.adapters.completemsoprocess.endpoint=http://{{.Values.service.name}}:{{.Values.service.internalPort}}/CompleteMsoProcess +mso.adapters.db.endpoint=http://{{.Values.service.name}}:{{.Values.service.internalPort}}/dbadapters/MsoRequestsDbAdapter +mso.adapters.openecomp.db.endpoint=http://{{.Values.service.name}}:{{.Values.service.internalPort}}/dbadapters/RequestsDbAdapter +mso.adapters.sdnc.endpoint=http://{{.Values.service.name}}:{{.Values.service.internalPort}}/adapters/SDNCAdapter +mso.adapters.sdnc.rest.endpoint=http://{{.Values.service.name}}:{{.Values.service.internalPort}}/adapters/rest/v1/sdnc +mso.adapters.tenant.endpoint=http://{{.Values.service.name}}:{{.Values.service.internalPort}}/tenants/TenantAdapter +mso.adapters.workflow.message.endpoint=http://{{.Values.service.name}}:{{.Values.service.internalPort}}/workflows/messages/message +mso.adapters.db.auth=6B0E6863FB8EE010AB6F191B3C0489437601E81DC7C86305CB92DB98AFC53D74 +mso.workflow.message.endpoint=http://{{.Values.service.name}}:{{.Values.service.internalPort}}/mso/WorkflowMessage +mso.workflow.sdncadapter.callback=http://{{.Values.service.name}}:{{.Values.service.internalPort}}/mso/SDNCAdapterCallbackService +mso.workflow.sdnc.replication.delay=PT5S +mso.workflow.aai.distribution.delay=PT30S +mso.msoKey=07a7159d3bf51a0e53be7a8f89699be7 +mso.adapters.po.auth=6B0E6863FB8EE010AB6F191B3C0489437601E81DC7C86305CB92DB98AFC53D74 +mso.sdnc.timeout=PT5M +mso.rollback=true +mso.adapters.network.endpoint=http://{{.Values.service.name}}:{{.Values.service.internalPort}}/networks/NetworkAdapter +mso.adapters.network.rest.endpoint=http://{{.Values.service.name}}:{{.Values.service.internalPort}}/networks/rest/v1/networks +mso.adapters.vnf-async.endpoint=http://{{.Values.service.name}}:{{.Values.service.internalPort}}/vnfs/VnfAdapterAsync +mso.workflow.vnfadapter.delete.callback=http://{{.Values.service.name}}:{{.Values.service.internalPort}}/mso/vnfAdapterNotify +mso.workflow.vnfadapter.create.callback=http://{{.Values.service.name}}:{{.Values.service.internalPort}}/mso/vnfAdapterNotify +mso.adapters.vnf.rest.endpoint=http://{{.Values.service.name}}:{{.Values.service.internalPort}}/vnfs/rest/v1/vnfs +mso.po.timeout=PT5M +mso.sdnc.firewall.yang.model=http://com/att/svc/mis/firewall-lite-gui +mso.sdnc.firewall.yang.model.version=2015-05-15 +mso.sdnc.timeout.firewall.minutes=20 +mso.callbackRetryAttempts=30 +mso.callbackRetrySleepTime=1000 +mso.use.qualified.host=false +mso.workflow.l3ToHigherLayerAddBonding.model.name=WAN Bonding +mso.workflow.l3ToHigherLayerAddBonding.model.version=2.0 +mso.sitename=mso-docker +mso.workflow.global.default.aai.version=11 +mso.workflow.global.default.aai.namespace=http://org.openecomp.aai.inventory/ +mso.workflow.default.aai.v11.generic-vnf.uri=/aai/v11/network/generic-vnfs/generic-vnf +mso.workflow.default.aai.v11.vpn-binding.uri=/aai/v11/network/vpn-bindings/vpn-binding +mso.workflow.default.aai.v11.network-policy.uri=/aai/v11/network/network-policies/network-policy +mso.workflow.default.aai.v11.route-table-reference.uri=/aai/v11/network/route-table-references/route-table-reference +mso.workflow.default.aai.v11.vce.uri=/aai/v11/network/vces/vce +mso.workflow.default.aai.v11.l3-network.uri=/aai/v11/network/l3-networks/l3-network +mso.workflow.default.aai.v11.customer.uri=/aai/v11/business/customers/customer +mso.workflow.default.aai.v11.tenant.uri=/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/DFW/tenants/tenant +mso.workflow.default.aai.v11.generic-query.uri=/aai/v11/search/generic-query +#note the CloudRegionURI is used for volume-groups +mso.workflow.default.aai.v11.cloud-region.uri=/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner +mso.workflow.default.aai.v11.nodes-query.uri=/aai/v11/search/nodes-query +mso.workflow.default.aai.v11.generic-vnf.uri=/aai/v11/network/generic-vnfs/generic-vnf +mso.workflow.default.aai.v11.cloud-region.uri=/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner +aai.auth=2630606608347B7124C244AB0FE34F6F diff --git a/kubernetes/so/resources/config/mso/mso.workflow-message-adapter.properties b/kubernetes/so/resources/config/mso/mso.workflow-message-adapter.properties new file mode 100644 index 0000000000..24b668bb7b --- /dev/null +++ b/kubernetes/so/resources/config/mso/mso.workflow-message-adapter.properties @@ -0,0 +1,7 @@ +# Workflow Adapter properties + +# BP notification endpoint that receives workflow messages +org.openecomp.mso.adapters.workflow.message.bpelurl=http://{{.Values.service.name}}:{{.Values.service.internalPort}}/mso/WorkflowMessage + +# Authorization for connecting to workflow.message.bpelurl +org.openecomp.mso.adapters.workflow.message.bpelauth=5119D1AF37F671FC01FFAD2151D93EFB2BBB503E879FD07104D024EDDF118FD1 diff --git a/kubernetes/so/resources/config/mso/topology.properties b/kubernetes/so/resources/config/mso/topology.properties new file mode 100644 index 0000000000..833129e15b --- /dev/null +++ b/kubernetes/so/resources/config/mso/topology.properties @@ -0,0 +1,22 @@ +# This is the topology used by the global healthcheck +apih-load-balancer=http://{{.Values.service.name}}:{{.Values.service.internalPort}}/ +jra-load-balancer=http://{{.Values.service.name}}:{{.Values.service.internalPort}}/ +camunda-load-balancer=http://{{.Values.service.name}}:{{.Values.service.internalPort}}/ + +# will be used as entry in DB to say SITE OFF/ON for healthcheck +site-name=mso-docker + +server-port={{.Values.service.internalPort}} +ssl-enable=false + +apih-healthcheck-urn=/ecomp/mso/infra/healthcheck,/asdc/healthcheck,/dbadapters/healthcheck +jra-healthcheck-urn=/networks/rest/healthcheck,/adapters/rest/healthcheck,/vnfs/rest/healthcheck,/tenants/rest/healthcheck +camunda-healthcheck-urn=/mso/healthcheck + +apih-nodehealthcheck-urn=/ecomp/mso/infra/nodehealthcheck +jra-nodehealthcheck-urn=/adapters/rest/nodehealthcheck +camunda-nodehealthcheck-urn=/mso/nodehealthcheck +msb-ip={{.Values.config.msb.serviceName}} +msb-port={{.Values.config.msb.port}} +sdnc-ip={{.Values.config.sdnc.serviceName}} +sdnc-port={{.Values.config.sdnc.port}} diff --git a/kubernetes/so/templates/deployment.yaml b/kubernetes/so/templates/deployment.yaml index 0727ce80a3..67630d2619 100644 --- a/kubernetes/so/templates/deployment.yaml +++ b/kubernetes/so/templates/deployment.yaml @@ -86,6 +86,15 @@ spec: - mountPath: /opt/jboss/standalone/configuration/standalone-full-ha-mso.xml name: so-config subPath: standalone-full-ha-mso.xml + - mountPath: /etc/mso/config.d/topology.properties + name: so-config + subPath: topology.properties + - mountPath: /etc/mso/config.d/mso.workflow-message-adapter.properties + name: so-config + subPath: mso.workflow-message-adapter.properties + - mountPath: /etc/mso/config.d/mso.bpmn.urn.properties + name: so-config + subPath: mso.bpmn.urn.properties - mountPath: /var/log/onap name: so-logs @@ -176,6 +185,15 @@ spec: - key: standalone-full-ha-mso.xml path: standalone-full-ha-mso.xml mode: 0644 + - key: topology.properties + path: topology.properties + mode: 0644 + - key: mso.workflow-message-adapter.properties + path: mso.workflow-message-adapter.properties + mode: 0644 + - key: mso.bpmn.urn.properties + path: mso.bpmn.urn.properties + mode: 0644 - name: so-logs emptyDir: {} - name: so-data-filebeat diff --git a/kubernetes/so/values.yaml b/kubernetes/so/values.yaml index 540ed328c7..705f3880e7 100644 --- a/kubernetes/so/values.yaml +++ b/kubernetes/so/values.yaml @@ -46,6 +46,21 @@ config: openStackEncryptedPasswordHere: "c124921a3a0efbe579782cde8227681e" logstashServiceName: log-ls logstashPort: 5044 + sniro: + serviceName: sniro-emulator + port: 80 + aai: + serviceName: aai + port: 8080 + msb: + serviceName: msb-iag + port: 80 + sdnc: + serviceName: sdnc + port: 8282 + sdc: + serviceName: sdc-be + port: 8443 # default number of instances replicaCount: 1 diff --git a/kubernetes/vfc/charts/vfc-workflow-engine/templates/service.yaml b/kubernetes/vfc/charts/vfc-workflow-engine/templates/service.yaml index 392cb13302..4a4ae0e402 100644 --- a/kubernetes/vfc/charts/vfc-workflow-engine/templates/service.yaml +++ b/kubernetes/vfc/charts/vfc-workflow-engine/templates/service.yaml @@ -25,7 +25,7 @@ metadata: annotations: msb.onap.org/service-info: '[ { - "serviceName": "workflow", + "serviceName": "workflow-engine", "version": "v1", "url": "/activiti-rest", "protocol": "REST", |