kubernetes/config/onap-parameters.yaml
-.idea/vcs.xml
-.idea/modules.xml
-.idea/oom.iml
-.idea/workspace.xml
+.idea/*
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
- <component name="VcsDirectoryMappings">
- <mapping directory="" vcs="Git" />
- </component>
-</project>
\ No newline at end of file
============
The ONAP Operations Manager (OOM) is responsible for life-cycle
-management of the ONAP platform itself; components such as MSO, SDNC,
+management of the ONAP platform itself; components such as SO, SDNC,
etc. It is not responsible for the management of services, VNFs or
infrastructure instantiated by ONAP or used by ONAP to host such
-services or VNFs. OOM uses the open-source Kubernetes container
+services or VNFs. OOM uses the open source Kubernetes container
management system as a means to manage the Docker containers that
compose ONAP where the containers are hosted either directly on
bare-metal servers or on VMs hosted by a 3rd party management system.
its life cycle while using hardware resources efficiently. There are two
deployment options for OOM:
-- A minimal deployment where single instances of the ONAP components
+- *A minimal deployment* where single instances of the ONAP components
are instantiated with no resource reservations, and
-- | A production deployment where ONAP components are deployed with
+- | *A production deployment* where ONAP components are deployed with
redundancy and anti-affinity rules such that single faults do not
interrupt ONAP operation.
| When deployed as containers directly on bare-metal, the minimal
resources as determined by anti-affinity and geo-redundancy
requirements.
-OOM deployments of ONAP provide many benefits:
+**OOM deployments of ONAP provide many benefits:**
-- Life-cycle Management Kubernetes is a comprehensive system for
+- *Life-cycle management*. Kubernetes is a comprehensive system for
managing the life-cycle of containerized applications. Its use as a
platform manager will ease the deployment of ONAP, provide fault
tolerance and horizontal scalability, and enable seamless upgrades.
-- Hardware Efficiency ONAP can be deployed on a single host using less
+- *Hardware Efficiency*. ONAP can be deployed on a single host using less
than 32GB of memory. As opposed to VMs that require a guest operating
system be deployed along with the application, containers provide
similar application encapsulation with neither the computing, memory
be able to create a development deployment of ONAP that can be hosted
on a laptop.
-- Rapid Deployment With locally cached images ONAP can be deployed from
+- *Rapid deployment*. With locally cached images, ONAP can be deployed from
scratch in 7 minutes. Eliminating the guest operating system results
in containers coming into service much faster than a VM equivalent.
This advantage can be particularly useful for ONAP where rapid
reaction to inevitable failures will be critical in production
environments.
-- Portability OOM takes advantage of Kubernetes' ability to be hosted
+- *Portability*. OOM takes advantage of Kubernetes' ability to be hosted
on multiple hosted cloud solutions like Google Compute Engine, AWS
EC2, Microsoft Azure, CenturyLink Cloud, IBM Bluemix and more.
-- Minimal Impact As ONAP is already deployed with Docker containers
+- *Minimal impact*. As ONAP is already deployed with Docker containers
minimal changes are required to the components themselves when
deployed with OOM.
-Features of OOM:
+**Features of OOM:**
-- Platform Deployment Automated deployment/un-deployment of ONAP
- instance(s) / Automated deployment/un-deployment of individual
- platform components using docker containers & kubernetes
+- *Platform Deployment*. Automated deployment/un-deployment of ONAP
+ instance(s) / automated deployment/un-deployment of individual
+ platform components using Docker containers & Kubernetes.
-- Platform Monitoring & healing Monitor platform state, Platform health
- checks, fault tolerance and self-healing using docker containers &
- kubernetes
+- *Platform Monitoring & Healing*. Monitor platform state, platform health
+ checks, fault tolerance and self-healing using Docker containers &
+ Kubernetes.
-- Platform Scaling Platform horizontal scalability through using docker
- containers & kubernetes
+- *Platform Scaling*. Platform horizontal scalability through using Docker
+ containers & Kubernetes.
-- Platform Upgrades Platform upgrades using docker containers &
- kubernetes
+- *Platform Upgrades*. Platform upgrades using Docker containers &
+ Kubernetes.
-- Platform Configurations Manage overall platform components
- configurations using docker containers & kubernetes
+- *Platform Configurations*. Manage overall platform components
+ configurations using Docker containers & Kubernetes.
-- | Platform migrations Manage migration of platform components using
- docker containers & kubernetes
+- | *Platform migrations*. Manage migration of platform components using
+ Docker containers & Kubernetes.
| Please note that the ONAP Operations Manager does not provide
support for containerization of services or VNFs that are managed
by ONAP; the OOM orchestrates the life-cycle of the ONAP platform
the \ `Kubernetes <https://kubernetes.io/>`__ container management
system which maintains the desired state of the container system as
described by one or more deployment descriptors - similar in concept to
-OpenStack HEAT Orchestration Templates. The following sections describe
+OpenStack Heat Orchestration Templates. The following sections describe
the fundamental objects managed by Kubernetes, the network these
components use to communicate with each other and other entities outside
of ONAP and the templates that describe the configuration and desired
Kubernetes deployments consist of multiple objects:
- nodes - a worker machine - either physical or virtual - that hosts
- multiple containers managed by kubernetes.
+ multiple containers managed by Kubernetes.
- services - an abstraction of a logical set of pods that provide a
micro-service.
.. figure:: ../kubernetes_objects.png
-OOM uses these kubernetes objects as described in the following
+OOM uses these Kubernetes objects as described in the following
sections.
Nodes
to use
`Rancher <http://rancher.com/docs/rancher/v1.6/en/quick-start-guide/>`__
along with `Helm <https://github.com/kubernetes/helm/releases>`__ to
- associate hosts with a kubernetes cluster.
+ associate hosts with a Kubernetes cluster.
Pods
~~~~
A group of containers with shared storage and networking can be grouped
-together into a kubernetes pod. Â All of the containers within a pod are
+together into a Kubernetes pod. Â All of the containers within a pod are
co-located and co-scheduled so they operate as a single unit. Â Within
-ONAP Amsterdam release, pods are mapped one-to-one to docker containers
+ONAP Amsterdam release, pods are mapped one-to-one to Docker containers
although this may change in the future. Â As explained in the Services
section below the use of Pods within each ONAP component is abstracted
from other ONAP components.
Services
~~~~~~~~
-OOM uses the kubernetes service abstraction to provide a consistent
+OOM uses the Kubernetes service abstraction to provide a consistent
access point for each of the ONAP components independent of the pod or
-container architecture of that component. Â For example, the SDNC
+container architecture of that component. For example, the SDNC
component may introduce OpenDaylight clustering as some point and change
the number of pods in this component to three or more but this change
will be isolated from the other ONAP components by the service
-abstraction. Â A service can include a load balancer on its ingress to
+abstraction. A service can include a load balancer on its ingress to
distribute traffic between the pods and even react to dynamic changes in
the number of pods if they are part of a replica set (see the MSO
example below for a brief explanation of replica sets).
As pods and containers are ephemeral, any data that must be persisted
across pod restart events needs to be stored outside of the pod in a
-persistent volume(s). Â Kubernetes supports a wide variety of types of
+persistent volume(s). Kubernetes supports a wide variety of types of
persistent volumes such as: Fibre Channel, NFS, iSCSI, CephFS, and
GlusterFS (for a full list look
`here <https://kubernetes.io/docs/concepts/storage/persistent-volumes/#types-of-persistent-volumes>`__)
Name Spaces
~~~~~~~~~~~
-Within the namespaces are kubernete's services that provide external
+Within the namespaces are Kubernete's services that provide external
connectivity to pods that host Docker containers. The following is a
list of the namespaces and the services within:
Each of the ONAP components are deployed as described in a deployment
specification. Â This specification documents key parameters and
-dependencies between the pods of an ONAP components such that kubernetes
-is able to repeatably startup the component. Â The components artifacts
+dependencies between the pods of an ONAP components such that Kubernetes
+is able to repeatably startup the component. The components artifacts
are stored here in the oom/kubernetes repo in \ `ONAP
gerrit <https://gerrit.onap.org/r/gitweb?p=oom.git;a=tree;f=kubernetes;h=4597d09dbce86d7543174924322435c30cb5b0ee;hb=refs/heads/master>`__.
The mso project is a relatively simple example, so let's start there.
The spec section starts off with 'replicas: 1' which states that only 1
'replica' will be use here. Â If one was to change the number of replicas
-to 3 for example, kubernetes would attempt to ensure that three replicas
-of this pod are operational at all times. Â One can see that in a
+to 3 for example, Kubernetes would attempt to ensure that three replicas
+of this pod are operational at all times. One can see that in a
clustered environment the number of replicas should probably be more
than 1 but for simple deployments 1 is sufficient.
-The selector label is a grouping primitive of kubernetes but this simple
+The selector label is a grouping primitive of Kubernetes but this simple
example doesn't exercise it's full capabilities.
The template/spec section is where the key information required to start
this pod is found.
-- image: is a reference to the location of the docker image in nexus3
+- image: is a reference to the location of the Docker image in nexus3
-- name: is the name of the docker image
+- name: is the name of the Docker image
- env is a section supports the creation of operating system
environment variables within the container and are specified as a set
space by creating a 'nodePort' - a mechanism used to resolve port
duplication.
-- readinessProbe: is the mechanism kubernetes uses to determine the
+- readinessProbe: is the mechanism Kubernetes uses to determine the
state of the container.Â
- volumes: a location to define volumes required by the container, in
this case configuration and initialization information.
- imagePullSecrets: an key to access the nexus3 repo when pulling
- docker containers.
+ Docker containers.
As one might image, the mso-deployment.yaml file describes the
deployment artifacts of the mso application. Â Here are the contents:
In this particular init-container, the command '/root/ready.py' will be
executed to determine when mariadb is ready, but this could be a simple
bash script. The image/name section describes where and how to get the
-docker image from the init-container.
+Docker image from the init-container.
To ensure that data isn't lost when an ephemeral container undergoes
life-cycle events (like being restarted), non-volatile or persistent
name: "{{ .Values.nsPrefix }}-mso-db"
The last of the four files is the all-services.yaml file which defines
-the kubernetes service(s) that will be exposed in this name space. Here
+the Kubernetes service(s) that will be exposed in this name space. Here
is the contents of the file:
**all-services.yaml**::
type: NodePort
First of all, note that this file is really two service specification in
-a single file: the mariadb service and the mso service. Â In some
+a single file: the mariadb service and the mso service. In some
circumstances it may be possible to hide some of the complexity of the
containers/pods by hiding them behind a single service.
The mariadb service specification is quite simple; other than the name
-the only section of interest is the nodePort specification. Â When
-containers require exposing ports to the world outside of a kubernetes
+the only section of interest is the nodePort specification. When
+containers require exposing ports to the world outside of a Kubernetes
namespace, there is a potential for port conflict. To resolve this
-potential port conflict kubernetes uses the concept of a nodePort that
-is mapped one-to-one with a port within the namespace. Â In this case the
+potential port conflict Kubernetes uses the concept of a nodePort that
+is mapped one-to-one with a port within the namespace. In this case the
port 3306 (which was defined in the db-deployment.yaml file) is mapped
to 30252 externally thus avoiding the conflict that would have arisen
from deployment multiple mariadb containers.
For the Amsterdam release, the deployment specifications represent a
simple simplex deployment of ONAP that may not have the robustness
-typically required of a full operational deployment. Â Follow on releases
+typically required of a full operational deployment. Follow on releases
will enhance these deployment specifications as follows:
-- Load Balancers - kubernets has built in support for user defined or
+- Load Balancers - Kubernetes has built in support for user defined or
simple 'ingress' load balances at the service layer to hide the
complexity of multi-pod deployments from other components.
Kubernetes Under-Cloud Deployments
==================================
-The automated ONAP deployment depends on a fully functional kubernetes
+The automated ONAP deployment depends on a fully functional Kubernetes
environment being available prior to ONAP installation. Fortunately,
-kubenetes is supported on a wide variety of systems such as Google
+Kubenetes is supported on a wide variety of systems such as Google
Compute Engine, `AWS
EC2 <https://wiki.onap.org/display/DW/ONAP+on+AWS#ONAPonAWS-Option0:DeployOOMKubernetestoaspotVM>`__,
Microsoft Azure, CenturyLink Cloud, IBM Bluemix and more. Â If you're
-setting up your own kubernetes environment, please refer to \ `ONAP on
+setting up your own Kubernetes environment, please refer to \ `ONAP on
Kubernetes <file:///C:\display\DW\ONAP+on+Kubernetes>`__Â for a walk
through of how to set this environment up on several platforms.
ONAP 'OneClick' Deployment Walk-though
======================================
-Once a kubernetes environment is available and the deployment artifacts
+Once a Kubernetes environment is available and the deployment artifacts
have been customized for your location, ONAP is ready to be installed.Â
The first step is to setup
with key-value pairs specific to your OpenStack environment. Â There is
a \ `sample <https://gerrit.onap.org/r/gitweb?p=oom.git;a=blob;f=kubernetes/config/onap-parameters-sample.yaml;h=3a74beddbbf7f9f9ec8e5a6abaecb7cb238bd519;hb=refs/heads/master>`__\ that
may help you out or even be usable directly if you don't intend to
-actually use OpenStack resources. Â Here is the contents of this file:
-
-**onap-parameters-sample.yaml**
-
- .. literalinclude:: https://gerrit.onap.org/r/gitweb?p=oom.git;a=blob_plain;f=kubernetes/config/onap-parameters-sample.yaml;hb=refs/heads/master
-
-OPENSTACK\_UBUNTU\_14\_IMAGE: "Ubuntu\_14.04.5\_LTS"
-
-OPENSTACK\_PUBLIC\_NET\_ID: "e8f51956-00dd-4425-af36-045716781ffc"
-
-OPENSTACK\_OAM\_NETWORK\_ID: "d4769dfb-c9e4-4f72-b3d6-1d18f4ac4ee6"
-
-OPENSTACK\_OAM\_SUBNET\_ID: "191f7580-acf6-4c2b-8ec0-ba7d99b3bc4e"
-
-OPENSTACK\_OAM\_NETWORK\_CIDR: "192.168.30.0/24"
-
-OPENSTACK\_USERNAME: "vnf\_user"
-
-OPENSTACK\_API\_KEY: "vnf\_password"
-
-OPENSTACK\_TENANT\_NAME: "vnfs"
-
-OPENSTACK\_REGION: "RegionOne"
-
-OPENSTACK\_KEYSTONE\_URL: "http://1.2.3.4:5000"
-
-OPENSTACK\_FLAVOUR\_MEDIUM: "m1.medium"
-
-OPENSTACK\_SERVICE\_TENANT\_NAME: "services"
-
-DMAAP\_TOPIC: "AUTO"
-
-DEMO\_ARTIFACTS\_VERSION: "1.1.0-SNAPSHOT"
+actually use OpenStack resources. Here is the contents of this file:
+
+**onap-parameters-sample.yaml**::
+
+ OPENSTACK_UBUNTU_14_IMAGE: "Ubuntu_14.04.5_LTS"
+ OPENSTACK_PUBLIC_NET_ID: "e8f51956-00dd-4425-af36-045716781ffc"
+ OPENSTACK_OAM_NETWORK_ID: "d4769dfb-c9e4-4f72-b3d6-1d18f4ac4ee6"
+ OPENSTACK_OAM_SUBNET_ID: "191f7580-acf6-4c2b-8ec0-ba7d99b3bc4e"
+ OPENSTACK_OAM_NETWORK_CIDR: "192.168.30.0/24"
+ OPENSTACK_USERNAME: "vnf_user"
+ OPENSTACK_API_KEY: "vnf_password"
+ OPENSTACK_TENANT_NAME: "vnfs"
+ OPENSTACK_REGION: "RegionOne"
+ OPENSTACK_KEYSTONE_URL: "http://1.2.3.4:5000"
+ OPENSTACK_FLAVOUR_MEDIUM: "m1.medium"
+ OPENSTACK_SERVICE_TENANT_NAME: "services"
+ DMAAP_TOPIC: "AUTO"
+ DEMO_ARTIFACTS_VERSION: "1.1.0-SNAPSHOT"
Note that these values are required or the following steps will fail.
In-order to be able to support multiple ONAP instances within a single
-kubernetes environment a configuration set is required. Â The
+Kubernetes environment a configuration set is required. The
`createConfig.sh <https://gerrit.onap.org/r/gitweb?p=oom.git;a=blob;f=kubernetes/config/createConfig.sh;h=f226ccae47ca6de15c1da49be4b8b6de974895ed;hb=refs/heads/master>`__
script is used to do this.
The bash
script \ `createAll.bash <https://gerrit.onap.org/r/gitweb?p=oom.git;a=blob;f=kubernetes/oneclick/createAll.bash;h=5e5f2dc76ea7739452e757282e750638b4e3e1de;hb=refs/heads/master>`__ is
-used to create an ONAP deployment with kubernetes. It has two primary
+used to create an ONAP deployment with Kubernetes. It has two primary
functions:
- Creating the namespaces used to encapsulate the ONAP components, and
will be set of 10 namespaces (e.g. onapTrial-sdc, onapTrial-aai,
onapTrial-mso, onapTrial-message-router, onapTrial-robot, onapTrial-vid,
onapTrial-sdnc, onapTrial-portal, onapTrial-policy, onapTrial-appc)
-being created within the kubernetes environment. Â A prerequisite pod
+being created within the Kubernetes environment. A prerequisite pod
config-init (\ `pod-config-init.yaml <https://gerrit.onap.org/r/gitweb?p=oom.git;a=blob;f=kubernetes/config/pod-config-init.yaml;h=b1285ce21d61815c082f6d6aa3c43d00561811c7;hb=refs/heads/master>`__)
may editing to match you environment and deployment into the default
namespace before running createAll.bash.
A registrator to push the service endpoint info to MSB service
discovery.Â
-- The needed service endpoint info is put into the kubernetes yaml file
+- The needed service endpoint info is put into the Kubernetes YAML file
as annotation, including service name, Protocol,version, visual
range,LB method, IP, Port,etc.
- OOM deploy/start/restart/scale in/scale out/upgrade ONAP components
-- Registrator watch the kubernetes event
+- Registrator watch the Kubernetes event
- When an ONAP component instance has been started/destroyed by OOM,
- Registrator get the notification from kubernetes
+ Registrator get the notification from Kubernetes
- Registrator parse the service endpoint info from annotation and
register/update/unregister it to MSB service discovery
MSB Usage Instructions
----------------------
-MSB provides kubernetes charts in OOM, so it can be spun up by oom oneclick command.
+MSB provides Kubernetes charts in OOM, so it can be spun up by oom oneclick command.
-Please note that kubernetes authentication token must be set at *kubernetes/kube2msb/values.yaml* so the kube2msb registrator can get the access to watch the kubernetes events and get service annotation by kubernetes APIs. The token can be found in the kubectl configuration file *~/.kube/config*
+Please note that Kubernetes authentication token must be set at *kubernetes/kube2msb/values.yaml* so the kube2msb registrator can get the access to watch the Kubernetes events and get service annotation by Kubernetes APIs. The token can be found in the kubectl configuration file *~/.kube/config*
MSB and kube2msb can be spun up with all the ONAP components together, or separately using the following commands.
**Bug Fixes**
- - The full list of implemented user stories and epics is available on `JIRA <https://jira.onap.org/secure/RapidBoard.jspa?rapidView=41&view=planning.nodetail&epics=visible>`_
- This is the first release of OOM, the defects fixed in this release were raised during the course of the release.
- Anything not closed is captured below under Known Issues. If you want to review the defects fixed in the Amsterdam release, refer to Jira link above.
+ The full list of implemented user stories and epics is available on `JIRA <https://jira.onap.org/secure/RapidBoard.jspa?rapidView=41&view=planning.nodetail&epics=visible>`_
+ This is the first release of OOM, the defects fixed in this release were raised during the course of the release.
+ Anything not closed is captured below under Known Issues. If you want to review the defects fixed in the Amsterdam release, refer to Jira link above.
**Known Issues**
- - `OOM-6 <https://jira.onap.org/browse/OOM-6>`_ Automated platform deployment on Docker/Kubernetes - VFC, AAF, MSB minor issues.
+ `OOM-6 <https://jira.onap.org/browse/OOM-6>`_ Automated platform deployment on Docker/Kubernetes - VFC, AAF, MSB minor issues.
Workaround:
- Manual configuration changes - however the reference vFirewall use case does not currently require these components
+ Manual configuration changes - however the reference vFirewall use case does not currently require these components
.
- `OOM-10 <https://jira.onap.org/browse/OOM-10>`_ Platform configuration management.
**Security Issues**
- N/A
+ N/A
**Upgrade Notes**
- Helm
In order to use Helm with Rancher, check the tiller version installed
-by runing "helm version" on the ranchr CLI
+by running "helm version" on the rancher CLI
and install the appropriate Helm.
Notice both tiller and helm are installed,
but you will need to install on your VM.
--- /dev/null
+#{{ if not .Values.disableAafAaf }}
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: aaf-data-configmap
+ namespace: {{ .Values.nsPrefix }}-aaf
+data:
+{{ (.Files.Glob "resources/config/aaf-data/*").AsConfig | indent 2 }}
+#{{ end }}
periodSeconds: 10
volumes:
- name: aaf-cs-data
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/aaf/data
+ secret:
+ secretName: aaf-cs-data-secret
imagePullSecrets:
- name: {{ .Values.nsPrefix }}-docker-registry-key
-#{{ end }}
\ No newline at end of file
+#{{ end }}
periodSeconds: 10
volumes:
- name: aaf-data
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/aaf/data2
+ configMap:
+ name: aaf-data-configmap
imagePullSecrets:
- name: {{ .Values.nsPrefix }}-docker-registry-key
#{{ end }}
--- /dev/null
+#{{ if not .Values.disableAafAafCs }}
+apiVersion: v1
+kind: Secret
+metadata:
+ name: aaf-cs-data-secret
+ namespace: {{ .Values.nsPrefix }}-aaf
+type: Opaque
+data:
+{{ (.Files.Glob "resources/config/aaf-cs-data/*").AsSecrets | indent 2 }}
+#{{ end }}
--- /dev/null
+filebeat.prospectors:
+#it is mandatory, in our case it's log
+- input_type: log
+ #This is the canolical path as mentioned in logback.xml, *.* means it will monitor all files in the directory.
+ paths:
+ - /var/log/onap/*/*/*/*.log
+ - /var/log/onap/*/*/*.log
+ - /var/log/onap/*/*.log
+ #Files older than this should be ignored.In our case it will be 48 hours i.e. 2 days. It is a helping flag for clean_inactive
+ ignore_older: 48h
+ # Remove the registry entry for a file that is more than the specified time. In our case it will be 96 hours, i.e. 4 days. It will help to keep registry records with in limit
+ clean_inactive: 96h
+
+
+# Name of the registry file. If a relative path is used, it is considered relative to the
+# data path. Else full qualified file name.
+#filebeat.registry_file: ${path.data}/registry
+
+
+output.logstash:
+ #List of logstash server ip addresses with port number.
+ #But, in our case, this will be the loadbalancer IP address.
+ #For the below property to work the loadbalancer or logstash should expose 5044 port to listen the filebeat events or port in the property should be changed appropriately.
+ hosts: ["logstash.onap-log:5044"]
+ #If enable will do load balancing among availabe Logstash, automatically.
+ loadbalance: true
+
+ #The list of root certificates for server verifications.
+ #If certificate_authorities is empty or not set, the trusted
+ #certificate authorities of the host system are used.
+ #ssl.certificate_authorities: $ssl.certificate_authorities
+
+ #The path to the certificate for SSL client authentication. If the certificate is not specified,
+ #client authentication is not available.
+ #ssl.certificate: $ssl.certificate
+
+ #The client certificate key used for client authentication.
+ #ssl.key: $ssl.key
+
+ #The passphrase used to decrypt an encrypted key stored in the configured key file
+ #ssl.key_passphrase: $ssl.key_passphrase
--- /dev/null
+#{{ if not .Values.disableAaiAaiService }}
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: aai-deployment-configmap
+ namespace: {{ .Values.nsPrefix }}-aai
+data:
+{{ tpl (.Files.Glob "resources/config/haproxy/*").AsConfig . | indent 2 }}
+#{{ end }}
- mountPath: /dev/log
name: aai-service-log
- mountPath: /usr/local/etc/haproxy/haproxy.cfg
+ subPath: haproxy.cfg
name: haproxy-cfg
ports:
- containerPort: 8080
hostPath:
path: "/dev/log"
- name: haproxy-cfg
- hostPath:
- path: "/dockerdata-nfs/{{ .Values.nsPrefix }}/aai/haproxy/haproxy.cfg"
+ configMap:
+ name: aai-deployment-configmap
restartPolicy: Always
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
--- /dev/null
+#{{ if not .Values.disableAaiAaiResources }}
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: aai-filebeat-configmap
+ namespace: {{ .Values.nsPrefix }}-aai
+data:
+{{ tpl (.Files.Glob "resources/config/log/filebeat/*").AsConfig . | indent 2 }}
+#{{ end }}
- mountPath: /etc/localtime
name: localtime
readOnly: true
- - mountPath: /var/chef/aai-data/
+ - 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: /var/log/onap
name: aai-resources-logs
imagePullPolicy: {{ .Values.pullPolicy }}
volumeMounts:
- mountPath: /usr/share/filebeat/filebeat.yml
+ subPath: filebeat.yml
name: filebeat-conf
- mountPath: /var/log/onap
name: aai-resources-logs
- name: localtime
hostPath:
path: /etc/localtime
+ - name: aai-chef-config
+ configMap:
+ name: aai-chef-config-configmap
- name: aai-data
- hostPath:
- path: "/dockerdata-nfs/{{ .Values.nsPrefix }}/aai/aai-data/"
+ configMap:
+ name: aai-resources-environments-configmap
- name: filebeat-conf
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/log/filebeat/logback/filebeat.yml
+ configMap:
+ name: aai-filebeat-configmap
- name: aai-resources-logs
emptyDir: {}
- name: aai-resources-filebeat
emptyDir: {}
- name: aai-resources-log-conf
configMap:
- name: aai-resources-configmap
+ name: aai-resources-log-configmap
restartPolicy: Always
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
----
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: aai-resources-configmap
- namespace: {{ .Values.nsPrefix }}-aai
-data:
-{{ (.Files.Glob "resources/resources/conf/logback.xml").AsConfig | indent 2 }}
#{{ end }}
--- /dev/null
+#{{ if not .Values.disableAaiAaiResources }}
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: aai-chef-config-configmap
+ namespace: {{ .Values.nsPrefix }}-aai
+data:
+{{ tpl (.Files.Glob "resources/config/aai-data/chef-config/dev/.knife/solo.rb").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: aai-resources-environments-configmap
+ namespace: {{ .Values.nsPrefix }}-aai
+data:
+{{ tpl (.Files.Glob "resources/config/aai-data/environments/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: aai-resources-log-configmap
+ namespace: {{ .Values.nsPrefix }}-aai
+data:
+{{ tpl (.Files.Glob "resources/config/log/resources/logback.xml").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: aai-traversal-log-configmap
+ namespace: {{ .Values.nsPrefix }}-aai
+data:
+{{ tpl (.Files.Glob "resources/config/log/traversal/logback.xml").AsConfig . | indent 2 }}
+#{{ end }}
- mountPath: /etc/localtime
name: localtime
readOnly: true
- - mountPath: /var/chef/aai-data/
+ - 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: /var/log/onap
name: aai-traversal-logs
imagePullPolicy: {{ .Values.pullPolicy }}
volumeMounts:
- mountPath: /usr/share/filebeat/filebeat.yml
+ subPath: filebeat.yml
name: filebeat-conf
- mountPath: /var/log/onap
name: aai-traversal-logs
- name: localtime
hostPath:
path: /etc/localtime
+ - name: aai-chef-config
+ configMap:
+ name: aai-chef-config-configmap
- name: aai-data
- hostPath:
- path: "/dockerdata-nfs/{{ .Values.nsPrefix }}/aai/aai-data/"
+ configMap:
+ name: aai-resources-environments-configmap
- name: filebeat-conf
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/log/filebeat/logback/filebeat.yml
+ configMap:
+ name: aai-filebeat-configmap
- name: aai-traversal-logs
emptyDir: {}
- name: aai-traversal-filebeat
emptyDir: {}
- name: aai-traversal-log-conf
configMap:
- name: aai-traversal-configmap
+ name: aai-traversal-log-configmap
restartPolicy: Always
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
----
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: aai-traversal-configmap
- namespace: {{ .Values.nsPrefix }}-aai
-data:
-{{ (.Files.Glob "resources/traversal/conf/logback.xml").AsConfig | indent 2 }}
#{{ end }}
type: NodePort
selector:
app: aai-service
+ clusterIP: {{ .Values.aaiServiceClusterIp }}
#{{ end }}
#{{ if not .Values.disableAaiModelLoaderService }}
---
--- /dev/null
+#{{ if not .Values.disableAaiDataRouter }}
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: data-router-prop-configmap
+ namespace: {{ .Values.nsPrefix }}-aai
+data:
+{{ tpl (.Files.Glob "resources/config/data-router/appconfig/data-router.properties").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: data-router-model-v8-configmap
+ namespace: {{ .Values.nsPrefix }}-aai
+data:
+{{ tpl (.Files.Glob "resources/config/data-router/appconfig/model/aai_oxm_v8.xml").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: data-router-model-v9-configmap
+ namespace: {{ .Values.nsPrefix }}-aai
+data:
+{{ tpl (.Files.Glob "resources/config/data-router/appconfig/model/aai_oxm_v9.xml").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: data-router-model-v10-configmap
+ namespace: {{ .Values.nsPrefix }}-aai
+data:
+{{ tpl (.Files.Glob "resources/config/data-router/appconfig/model/aai_oxm_v10.xml").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: data-router-model-v11-configmap
+ namespace: {{ .Values.nsPrefix }}-aai
+data:
+{{ tpl (.Files.Glob "resources/config/data-router/appconfig/model/aai_oxm_v11.xml").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: Secret
+metadata:
+ name: data-router-secret
+ namespace: {{ .Values.nsPrefix }}-aai
+type: Opaque
+data:
+{{ tpl (.Files.Glob "resources/config/data-router/appconfig/auth/*").AsSecrets . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: data-router-dynamic-configmap
+ namespace: {{ .Values.nsPrefix }}-aai
+data:
+{{ tpl (.Files.Glob "resources/config/data-router/dynamic/routes/entity-event.route").AsConfig . | indent 2 }}
+{{ tpl (.Files.Glob "resources/config/data-router/dynamic/conf/entity-event-policy.xml").AsConfig . | indent 2 }}
+#{{ end }}
app: data-router
name: data-router
spec:
+ initContainers:
+ - command:
+ - /bin/sh
+ - -c
+ - |
+ mkdir -p /logroot/data-router/logs
+ chmod -R 777 /logroot/data-router/logs
+ chown -R root:root /logroot
+ env:
+ - name: NAMESPACE
+ valueFrom:
+ fieldRef:
+ apiVersion: v1
+ fieldPath: metadata.namespace
+ securityContext:
+ privileged: true
+ image: {{ .Values.image.es_bb }}
+ imagePullPolicy: {{ .Values.pullPolicy }}
+ name: init-sysctl
+ volumeMounts:
+ - name: data-router-logs
+ mountPath: /logroot/
containers:
- name: data-router
image: "{{ .Values.image.dataRouterImage }}:{{ .Values.image.dataRouterVersion }}"
- mountPath: /etc/localtime
name: localtime
readOnly: true
- - mountPath: /opt/app/data-router/config/
- name: data-router-config
- - mountPath: /opt/app/data-router/dynamic/
- name: data-router-dynamic
+ - mountPath: /opt/app/data-router/config/model/aai_oxm_v8.xml
+ subPath: aai_oxm_v8.xml
+ name: data-router-model-v8
+ - mountPath: /opt/app/data-router/config/model/aai_oxm_v9.xml
+ subPath: aai_oxm_v9.xml
+ name: data-router-model-v9
+ - mountPath: /opt/app/data-router/config/model/aai_oxm_v10.xml
+ subPath: aai_oxm_v10.xml
+ name: data-router-model-v10
+ - mountPath: /opt/app/data-router/config/model/aai_oxm_v11.xml
+ subPath: aai_oxm_v11.xml
+ name: data-router-model-v11
+ - mountPath: /opt/app/data-router/config/auth
+ name: data-router-auth
+ - mountPath: /opt/app/data-router/config/data-router.properties
+ name: data-router-properties
+ subPath: data-router.properties
+ - mountPath: /opt/app/data-router/dynamic/routes/entity-event.route
+ subPath: entity-event.route
+ name: data-router-dynamic-route
+ - mountPath: /opt/app/data-router/dynamic/conf/entity-event-policy.xml
+ subPath: entity-event-policy.xml
+ name: data-router-dynamic-policy
- mountPath: /logs/
name: data-router-logs
ports:
- name: localtime
hostPath:
path: /etc/localtime
- - name: data-router-config
- hostPath:
- path: "/dockerdata-nfs/{{ .Values.nsPrefix }}/aai/data-router/appconfig/"
- - name: data-router-dynamic
- hostPath:
- path: "/dockerdata-nfs/{{ .Values.nsPrefix }}/aai/data-router/dynamic/"
+ - name: data-router-model-v8
+ configMap:
+ name: data-router-model-v8-configmap
+ - name: data-router-model-v9
+ configMap:
+ name: data-router-model-v9-configmap
+ - name: data-router-model-v10
+ configMap:
+ name: data-router-model-v10-configmap
+ - name: data-router-model-v11
+ configMap:
+ name: data-router-model-v11-configmap
+ - name: data-router-auth
+ secret:
+ secretName: data-router-secret
+ - name: data-router-properties
+ configMap:
+ name: data-router-prop-configmap
+ - name: data-router-dynamic-route
+ configMap:
+ name: data-router-dynamic-configmap
+ - name: data-router-dynamic-policy
+ configMap:
+ name: data-router-dynamic-configmap
- name: data-router-logs
hostPath:
- path: "/dockerdata-nfs/{{ .Values.nsPrefix }}/aai/data-router/logs/"
+ path: "/dockerdata-nfs/{{ .Values.nsPrefix }}/aai/"
restartPolicy: Always
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }}
\ No newline at end of file
+#{{ end }}
--- /dev/null
+#{{ if not .Values.disableAaiElasticsearch }}
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: aai-elasticsearch-configmap
+ namespace: {{ .Values.nsPrefix }}-aai
+data:
+{{ tpl (.Files.Glob "resources/config/elasticsearch/config/elasticsearch.yml").AsConfig . | indent 2 }}
+#{{ end }}
app: elasticsearch
name: elasticsearch
spec:
+ initContainers:
+ - command:
+ - /bin/sh
+ - -c
+ - |
+ mkdir -p /logroot/elasticsearch/es-data
+ chmod -R 777 /logroot/elasticsearch/es-data
+ chown -R root:root /logroot
+ env:
+ - name: NAMESPACE
+ valueFrom:
+ fieldRef:
+ apiVersion: v1
+ fieldPath: metadata.namespace
+ securityContext:
+ privileged: true
+ image: {{ .Values.image.es_bb }}
+ imagePullPolicy: {{ .Values.pullPolicy }}
+ name: init-sysctl
+ volumeMounts:
+ - name: elasticsearch-data
+ mountPath: /logroot/
hostname: elasticsearch
containers:
- name: elasticsearch
mountPath: /etc/localtime
readOnly: true
- name: elasticsearch-config
+ subPath: elasticsearch.yml
mountPath: /usr/share/elasticsearch/config/elasticsearch.yml
- name: elasticsearch-data
mountPath: /usr/share/elasticsearch/data
hostPath:
path: /etc/localtime
- name: elasticsearch-config
- hostPath:
- path: "/dockerdata-nfs/{{ .Values.nsPrefix }}/aai/elasticsearch/config/elasticsearch.yml"
+ configMap:
+ name: aai-elasticsearch-configmap
- name: elasticsearch-data
hostPath:
- path: "/dockerdata-nfs/{{ .Values.nsPrefix }}/aai/elasticsearch/es-data"
+ path: "/dockerdata-nfs/{{ .Values.nsPrefix }}/aai/"
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }}
\ No newline at end of file
+#{{ end }}
initialDelaySeconds: 5
periodSeconds: 10
volumeMounts:
+ - name: hbase-data
+ mountPath: /tmp
- name: localtime
mountPath: /etc/localtime
readOnly: true
volumes:
+ - name: hbase-data
+ hostPath:
+ path: /dockerdata-nfs/{{ .Values.nsPrefix }}/aai/hbase
- name: localtime
hostPath:
path: /etc/localtime
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }}
\ No newline at end of file
+#{{ end }}
--- /dev/null
+#{{ if not .Values.disableAaiModelLoaderService }}
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: model-loader-prop-configmap
+ namespace: {{ .Values.nsPrefix }}-aai
+data:
+{{ tpl (.Files.Glob "resources/config/model-loader/appconfig/model-loader.properties").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: Secret
+metadata:
+ name: model-loader-secret
+ namespace: {{ .Values.nsPrefix }}-aai
+type: Opaque
+data:
+{{ tpl (.Files.Glob "resources/config/model-loader/appconfig/auth/*").AsSecrets . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: aai-model-loader-log-configmap
+ namespace: {{ .Values.nsPrefix }}-aai
+data:
+{{ tpl (.Files.Glob "resources/config/log/model-loader/logback.xml").AsConfig . | indent 2 }}
+#{{ end }}
- mountPath: /etc/localtime
name: localtime
readOnly: true
- - mountPath: /opt/app/model-loader/config/
- name: aai-model-loader-config
+ - mountPath: /opt/app/model-loader/config/model-loader.properties
+ subPath: model-loader.properties
+ name: aai-model-loader-prop-config
+ - mountPath: /opt/app/model-loader/config/auth/
+ name: aai-model-loader-auth-config
- mountPath: /var/log/onap
name: aai-model-loader-logs
- mountPath: /opt/app/model-loader/bundleconfig/etc/logback.xml
imagePullPolicy: {{ .Values.pullPolicy }}
volumeMounts:
- mountPath: /usr/share/filebeat/filebeat.yml
+ subPath: filebeat.yml
name: filebeat-conf
- mountPath: /var/log/onap
name: aai-model-loader-logs
- name: localtime
hostPath:
path: /etc/localtime
- - name: aai-model-loader-config
- hostPath:
- path: "/dockerdata-nfs/{{ .Values.nsPrefix }}/aai/model-loader/appconfig/"
+ - name: aai-model-loader-prop-config
+ configMap:
+ name: model-loader-prop-configmap
+ - name: aai-model-loader-auth-config
+ secret:
+ secretName: model-loader-secret
- name: filebeat-conf
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/log/filebeat/logback/filebeat.yml
+ configMap:
+ name: aai-filebeat-configmap
- name: aai-model-loader-logs
emptyDir: {}
- name: aai-model-loader-filebeat
emptyDir: {}
- name: aai-model-loader-log-conf
configMap:
- name: aai-model-loader-configmap
+ name: aai-model-loader-log-configmap
restartPolicy: Always
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
----
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: aai-model-loader-configmap
- namespace: {{ .Values.nsPrefix }}-aai
-data:
-{{ (.Files.Glob "resources/model-loader/conf/logback.xml").AsConfig | indent 2 }}
-#{{ end }}
\ No newline at end of file
+#{{ end }}
--- /dev/null
+#{{ if not .Values.disableAaiSearchDataService }}
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: search-data-configmap
+ namespace: {{ .Values.nsPrefix }}-aai
+data:
+{{ tpl (.Files.Glob "resources/config/search-data-service/appconfig/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: Secret
+metadata:
+ name: search-data-keystone-secret
+ namespace: {{ .Values.nsPrefix }}-aai
+type: Opaque
+data:
+{{ tpl (.Files.Glob "resources/config/search-data-service/appconfig/auth/tomcat_keystore").AsSecrets . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: aai-search-policy-configmap
+ namespace: {{ .Values.nsPrefix }}-aai
+data:
+{{ tpl (.Files.Glob "resources/config/search-data-service/appconfig/auth/search_policy.json").AsSecrets . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: aai-search-data-service-log-configmap
+ namespace: {{ .Values.nsPrefix }}-aai
+data:
+{{ tpl (.Files.Glob "resources/config/log/search-data-service/logback.xml").AsConfig . | indent 2 }}
+#{{ end }}
- mountPath: /etc/localtime
name: localtime
readOnly: true
- - mountPath: /opt/app/search-data-service/config/
+ - mountPath: /opt/app/search-data-service/config/filter-config.json
+ subPath: filter-config.json
name: aai-search-data-service-config
+ - mountPath: /opt/app/search-data-service/config/elastic-search.properties
+ subPath: elastic-search.properties
+ name: aai-search-data-service-config
+ - mountPath: /opt/app/search-data-service/config/analysis-config.json
+ subPath: filter-config.json
+ name: aai-search-data-service-config
+ - mountPath: /opt/app/search-data-service/config/auth/tomcat_keystore
+ subPath: tomcat_keystore
+ name: aai-search-data-service-auth-config
+ - mountPath: /opt/app/search-data-service/config/auth/search_policy.json
+ subPath: search_policy.json
+ name: aai-search-data-search-policy-config
- mountPath: /var/log/onap
name: aai-search-data-service-logs
- mountPath: /opt/app/search-data-service/bundleconfig/etc/logback.xml
imagePullPolicy: {{ .Values.pullPolicy }}
volumeMounts:
- mountPath: /usr/share/filebeat/filebeat.yml
+ subPath: filebeat.yml
name: filebeat-conf
- mountPath: /var/log/onap
name: aai-search-data-service-logs
hostPath:
path: /etc/localtime
- name: aai-search-data-service-config
- hostPath:
- path: "/dockerdata-nfs/{{ .Values.nsPrefix }}/aai/search-data-service/appconfig/"
+ configMap:
+ name: search-data-configmap
+ - name: aai-search-data-service-auth-config
+ secret:
+ secretName: search-data-keystone-secret
+ - name: aai-search-data-search-policy-config
+ configMap:
+ name: aai-search-policy-configmap
- name: filebeat-conf
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/log/filebeat/logback/filebeat.yml
+ configMap:
+ name: aai-filebeat-configmap
- name: aai-search-data-service-logs
emptyDir: {}
- name: aai-search-data-service-filebeat
emptyDir: {}
- name: aai-search-data-service-log-conf
configMap:
- name: aai-search-data-service-configmap
+ name: aai-search-data-service-log-configmap
restartPolicy: Always
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
----
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: aai-search-data-service-configmap
- namespace: {{ .Values.nsPrefix }}-aai
-data:
-{{ (.Files.Glob "resources/search-data-service/conf/logback.xml").AsConfig | indent 2 }}
#{{ end }}
--- /dev/null
+#{{ if not .Values.disableAaiSparkyBe }}
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: sparky-be-configmap
+ namespace: {{ .Values.nsPrefix }}-aai
+data:
+{{ tpl (.Files.Glob "resources/config/sparky-be/appconfig/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: sparky-be-model-configmap
+ namespace: {{ .Values.nsPrefix }}-aai
+data:
+{{ tpl (.Files.Glob "resources/config/sparky-be/appconfig/model/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: sparky-be-portal-configmap
+ namespace: {{ .Values.nsPrefix }}-aai
+data:
+{{ tpl (.Files.Glob "resources/config/sparky-be/appconfig/portal/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: Secret
+metadata:
+ name: sparky-be-secret
+ namespace: {{ .Values.nsPrefix }}-aai
+type: Opaque
+data:
+{{ tpl (.Files.Glob "resources/config/sparky-be/appconfig/auth/*").AsSecrets . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: aai-sparky-be-log-configmap
+ namespace: {{ .Values.nsPrefix }}-aai
+data:
+{{ tpl (.Files.Glob "resources/config/log/sparky-be/logback.xml").AsConfig . | indent 2 }}
+#{{ end }}
- mountPath: /etc/localtime
name: localtime
readOnly: true
- - mountPath: /opt/app/sparky/config/
+ - mountPath: /opt/app/sparky/config/auth/
+ name: aai-sparky-be-auth-config
+ - mountPath: /opt/app/sparky/config/synchronizer.properties
+ subPath: synchronizer.properties
name: aai-sparky-be-config
+ - mountPath: /opt/app/sparky/config/suggestive-search.properties
+ subPath: suggestive-search.properties
+ name: aai-sparky-be-config
+ - mountPath: /opt/app/sparky/config/search-service.properties
+ subPath: search-service.properties
+ name: aai-sparky-be-config
+ - mountPath: /opt/app/sparky/config/roles.config
+ subPath: roles.config
+ name: aai-sparky-be-config
+ - mountPath: /opt/app/sparky/config/elasticsearch.properties
+ subPath: elasticsearch.properties
+ name: aai-sparky-be-config
+ - mountPath: /opt/app/sparky/config/aai.properties
+ subPath: aai.properties
+ name: aai-sparky-be-config
+ - mountPath: /opt/app/sparky/config/model/
+ name: aai-sparky-be-model-config
+ - mountPath: /opt/app/sparky/config/portal/
+ name: aai-sparky-be-portal-config
- mountPath: /var/log/onap
name: aai-sparky-be-logs
- mountPath: /opt/app/sparky/bundleconfig/etc/logback.xml
imagePullPolicy: {{ .Values.pullPolicy }}
volumeMounts:
- mountPath: /usr/share/filebeat/filebeat.yml
+ subPath: filebeat.yml
name: filebeat-conf
- mountPath: /var/log/onap
name: aai-sparky-be-logs
hostPath:
path: /etc/localtime
- name: aai-sparky-be-config
- hostPath:
- path: "/dockerdata-nfs/{{ .Values.nsPrefix }}/aai/sparky-be/appconfig/"
+ configMap:
+ name: sparky-be-configmap
+ - name: aai-sparky-be-model-config
+ configMap:
+ name: sparky-be-model-configmap
+ - name: aai-sparky-be-portal-config
+ configMap:
+ name: sparky-be-portal-configmap
+ - name: aai-sparky-be-auth-config
+ secret:
+ secretName: sparky-be-secret
- name: filebeat-conf
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/log/filebeat/logback/filebeat.yml
+ configMap:
+ name: aai-filebeat-configmap
- name: aai-sparky-be-logs
emptyDir: {}
- name: aai-sparky-filebeat
emptyDir: {}
- name: aai-sparky-be-log-conf
configMap:
- name: aai-sparky-be-configmap
+ name: aai-sparky-be-log-configmap
restartPolicy: Always
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
----
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: aai-sparky-be-configmap
- namespace: {{ .Values.nsPrefix }}-aai
-data:
-{{ (.Files.Glob "resources/sparky-be/conf/logback.xml").AsConfig | indent 2 }}
#{{ end }}
nsPrefix: onap
pullPolicy: Always
nodePortPrefix: 302
+
+# POLICY hotfix - Note this must be temporary
+# See https://jira.onap.org/browse/POLICY-510
+aaiServiceClusterIp: 10.43.255.254
+
image:
readiness: oomk8s/readiness-check:1.0.0
aaiProxy: aaionap/haproxy
sparkyBeVersion: v1.1.0
gremlinServerImage: aaionap/gremlin-server
filebeat: docker.elastic.co/beats/filebeat:5.5.0
+ es_bb: busybox
--- /dev/null
+filebeat.prospectors:
+#it is mandatory, in our case it's log
+- input_type: log
+ #This is the canolical path as mentioned in logback.xml, *.* means it will monitor all files in the directory.
+ paths:
+ - /var/log/onap/*/*/*/*.log
+ - /var/log/onap/*/*/*.log
+ - /var/log/onap/*/*.log
+
+ # The below commented properties are for time-based rolling policy. But as the log4j 1.2x does not support time-based rolling these properties are not set
+ #Files older than this should be ignored.In our case it will be 48 hours i.e. 2 days. It is a helping flag for clean_inactive
+ #ignore_older: 48h
+ # Remove the registry entry for a file that is more than the specified time. In our case it will be 96 hours, i.e. 4 days. It will help to keep registry records with in limit
+ #clean_inactive: 96h
+
+ #Multiline properties for log4j xml log events
+ multiline.pattern: '</log4j:event>'
+ multiline.negate: true
+ multiline.match: before
+ #multiline.max_lines: 500
+ #multiline.timeout: 5s
+
+# Name of the registry file. If a relative path is used, it is considered relative to the
+# data path. Else full qualified file name.
+#filebeat.registry_file: ${path.data}/registry
+
+
+output.logstash:
+ #List of logstash server ip addresses with port number.
+ #But, in our case, this will be the loadbalancer IP address.
+ #For the below property to work the loadbalancer or logstash should expose 5044 port to listen the filebeat events or port in the property should be changed appropriately.
+ hosts: ["logstash.onap-log:5044"]
+ #If enable will do load balancing among availabe Logstash, automatically.
+ loadbalance: true
+
+ #The list of root certificates for server verifications.
+ #If certificate_authorities is empty or not set, the trusted
+ #certificate authorities of the host system are used.
+ #ssl.certificate_authorities: $ssl.certificate_authorities
+
+ #The path to the certificate for SSL client authentication. If the certificate is not specified,
+ #client authentication is not available.
+ #ssl.certificate: $ssl.certificate
+
+ #The client certificate key used for client authentication.
+ #ssl.key: $ssl.key
+
+ #The passphrase used to decrypt an encrypted key stored in the configured key file
+ #ssl.key_passphrase: $ssl.key_passphrase
--- /dev/null
+#{{ if not .Values.disableAppcAppc }}
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: appc-conf-configmap
+ namespace: {{ .Values.nsPrefix }}-appc
+data:
+{{ tpl (.Files.Glob "resources/config/conf/*").AsConfig . | indent 2 }}
+#{{ end }}
name: appc
namespace: "{{ .Values.nsPrefix }}-appc"
spec:
+ replicas: {{ .Values.appcReplicas }}
selector:
matchLabels:
app: appc
name: localtime
readOnly: true
- mountPath: /opt/openecomp/appc/data/properties/appc.properties
- name: appc-properties
+ name: appc-conf
+ subPath: appc.properties
- mountPath: /opt/openecomp/appc/data/properties/aaiclient.properties
- name: appc-aaiclient-properties
+ name: appc-conf
+ subPath: aaiclient.properties
- mountPath: /opt/onap/sdnc/data/properties/aaiclient.properties
- name: sdnc-aaiclient-properties
+ name: appc-conf
+ subPath: aaiclient.properties
- mountPath: /var/log/onap
name: appc-logs
- mountPath: /opt/opendaylight/current/etc/org.ops4j.pax.logging.cfg
name: appc-log-config
+ subPath: org.ops4j.pax.logging.cfg
ports:
- containerPort: 8181
- containerPort: 1830
volumeMounts:
- mountPath: /usr/share/filebeat/filebeat.yml
name: filebeat-conf
+ subPath: filebeat.yml
- mountPath: /var/log/onap
name: appc-logs
- mountPath: /usr/share/filebeat/data
hostPath:
path: /etc/localtime
- name: filebeat-conf
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/log/filebeat/log4j/filebeat.yml
+ configMap:
+ name: appc-filebeat-configmap
- name: appc-log-config
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/log/appc/org.ops4j.pax.logging.cfg
+ configMap:
+ name: appc-logging-cfg-configmap
- name: appc-logs
emptyDir: {}
- name: appc-data-filebeat
emptyDir: {}
- - name: appc-properties
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/appc/conf/appc.properties
- - name: appc-aaiclient-properties
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/appc/conf/aaiclient.properties
- - name: sdnc-aaiclient-properties
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/sdnc/conf/aaiclient.properties
+ - name: appc-conf
+ configMap:
+ name: appc-conf-configmap
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
#{{ end }}
--- /dev/null
+#{{ if not .Values.disableAppcAppc }}
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: appc-filebeat-configmap
+ namespace: {{ .Values.nsPrefix }}-appc
+data:
+{{ tpl (.Files.Glob "resources/config/log/filebeat/log4j/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: appc-logging-cfg-configmap
+ namespace: {{ .Values.nsPrefix }}-appc
+data:
+{{ tpl (.Files.Glob "resources/config/log/*").AsConfig . | indent 2 }}
+#{{ end }}
name: appc-dbhost
namespace: "{{ .Values.nsPrefix }}-appc"
spec:
+ replicas: {{ .Values.dbReplicas }}
selector:
matchLabels:
app: appc-dbhost
claimName: appc-db
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }}
\ No newline at end of file
+#{{ end }}
name: appc-dgbuilder
namespace: "{{ .Values.nsPrefix }}-appc"
spec:
+ replicas: {{ .Values.dgbuilderReplicas }}
selector:
matchLabels:
app: appc-dgbuilder
nsPrefix: onap
pullPolicy: Always
nodePortPrefix: 302
+appcReplicas: 1
+dbReplicas: 1
+dgbuilderReplicas: 1
image:
readiness: oomk8s/readiness-check:1.0.0
appc: nexus3.onap.org:10001/openecomp/appc-image:v1.2.0
mysqlServer: mysql/mysql-server:5.6
dgbuilderSdnc: nexus3.onap.org:10001/onap/ccsdk-dgbuilder-image:v0.1.0
- filebeat: docker.elastic.co/beats/filebeat:5.5.0
\ No newline at end of file
+ filebeat: docker.elastic.co/beats/filebeat:5.5.0
--- /dev/null
+#{{ if not .Values.disableClampClampMariadb }}
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: clamp-entrypoint-initdb-configmap
+ namespace: {{ .Values.nsPrefix }}-clamp
+data:
+{{ tpl (.Files.Glob "resources/config/mariadb/docker-entrypoint-initdb.d/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: clamp-entrypoint-drop-configmap
+ namespace: {{ .Values.nsPrefix }}-clamp
+data:
+{{ tpl (.Files.Glob "resources/config/mariadb/docker-entrypoint-initdb.d/drop/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: clamp-entrypoint-bulkload-configmap
+ namespace: {{ .Values.nsPrefix }}-clamp
+data:
+{{ tpl (.Files.Glob "resources/config/mariadb/docker-entrypoint-initdb.d/bulkload/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: clamp-mariadb-conf-configmap
+ namespace: {{ .Values.nsPrefix }}-clamp
+data:
+{{ tpl (.Files.Glob "resources/config/mariadb/conf.d/conf1/*").AsConfig . | indent 2 }}
+#{{ end }}
- name: MYSQL_ROOT_PASSWORD
value: {{ .Values.mysqlPassword }}
volumeMounts:
- - mountPath: /docker-entrypoint-initdb.d
+ - mountPath: /docker-entrypoint-initdb.d/load-sql-files-tests-automation.sh
name: docker-entrypoint-initdb
- - mountPath: /etc/mysql/conf.d
+ subPath: load-sql-files-tests-automation.sh
+ - mountPath: /docker-entrypoint-initdb.d/drop/
+ name: docker-entrypoint-clds-drop
+ - mountPath: /docker-entrypoint-initdb.d/bulkload/
+ name: docker-entrypoint-bulkload
+ - mountPath: /etc/mysql/conf.d/conf1/
name: clamp-mariadb-conf
- mountPath: /var/lib/mysql
name: clamp-mariadb-data
periodSeconds: 10
volumes:
- name: docker-entrypoint-initdb
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/clamp/mariadb/docker-entrypoint-initdb.d
+ configMap:
+ name: clamp-entrypoint-initdb-configmap
+ - name: docker-entrypoint-clds-drop
+ configMap:
+ name: clamp-entrypoint-drop-configmap
+ - name: docker-entrypoint-bulkload
+ configMap:
+ name: clamp-entrypoint-bulkload-configmap
- name: clamp-mariadb-conf
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/clamp/mariadb/conf.d
+ configMap:
+ name: clamp-mariadb-conf-configmap
- name: clamp-mariadb-data
persistentVolumeClaim:
claimName: clamp-db
imagePullSecrets:
- name: {{ .Values.nsPrefix }}-docker-registry-key
-#{{ end }}
\ No newline at end of file
+#{{ end }}
app: cli
spec:
ports:
- - name: 80-port
- port: 80
+ - name: 8080-port
+ port: 8080
targetPort: 80
nodePort: {{ .Values.nodePortPrefix }}60
+ - name: 9090-port
+ port: 9090
+ targetPort: 8080
+ nodePort: {{ .Values.nodePortPrefix }}61
type: NodePort
selector:
app: cli
-#{{ end }}
\ No newline at end of file
+#{{ end }}
value: daemon
ports:
- containerPort: 80
+ - containerPort: 8080
name: cli
readinessProbe:
tcpSocket:
periodSeconds: 10
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }}
\ No newline at end of file
+#{{ end }}
chmod -R 777 /config-init/$NAMESPACE/aai/elasticsearch/es-data/
chmod -R 777 /config-init/$NAMESPACE/aai/search-data-service/logs/
chmod -R 777 /config-init/$NAMESPACE/aai/data-router/logs/
-chmod -R 777 /config-init/$NAMESPACE/policy/mariadb/
chmod -R 777 /config-init/$NAMESPACE/log/elasticsearch
chown -R root:root /config-init/$NAMESPACE/log
--- /dev/null
+{
+ "service": {
+ "name": "Health Check: Log - Elastic Search",
+ "checks": [
+ {
+ "id": "log-elasticsearch-server",
+ "name": "Log Elastic Search Health Check",
+ "http": "http://elasticsearch.onap-log:9200/_cluster/health?pretty",
+ "method": "GET",
+ "tls_skip_verify": true,
+ "interval": "15s",
+ "timeout": "1s"
+ },
+ {
+ "id": "log-elasticsearch-tcp",
+ "name": "Log Elastic Search TCP Health Check",
+ "tcp": "elasticsearchtcp.onap-log:9300",
+ "interval": "15s",
+ "timeout": "1s"
+ }
+ ]
+ }
+}
--- /dev/null
+{
+ "service": {
+ "name": "Health Check: Log - Kibana",
+ "checks": [
+ {
+ "id": "log-kibana-server",
+ "name": "Log kibana Health Check",
+ "http": "http://kibana.onap-log:5601/status",
+ "method": "HEAD",
+ "tls_skip_verify": true,
+ "interval": "15s",
+ "timeout": "1s"
+ }
+ ]
+ }
+}
--- /dev/null
+{
+ "service": {
+ "name": "Health Check: Log - Log Stash",
+ "checks": [
+ {
+ "id": "log-logstash-internal-server-gi",
+ "name": "Log Stash Health Check - General Information",
+ "http": "http://logstashinternal.onap-log:9600/?pretty",
+ "method": "GET",
+ "tls_skip_verify": true,
+ "interval": "15s",
+ "timeout": "1s"
+ },
+ {
+ "id": "log-logstash-internal-server-node-info",
+ "name": "Log Stash Health Check - Node Information",
+ "http": "http://logstashinternal.onap-log:9600/_node/?pretty",
+ "method": "GET",
+ "tls_skip_verify": true,
+ "interval": "15s",
+ "timeout": "1s"
+ },
+ {
+ "id": "log-logstash-internal-server-os-info",
+ "name": "Log Stash Health Check - OS Information",
+ "http": "http://logstashinternal.onap-log:9600/_node/os?pretty",
+ "method": "GET",
+ "tls_skip_verify": true,
+ "interval": "15s",
+ "timeout": "1s"
+ },
+ {
+ "id": "log-logstash-internal-server-jvm-info",
+ "name": "Log Stash Health Check - JVM Information",
+ "http": "http://logstashinternal.onap-log:9600/_node/jvm?pretty",
+ "method": "GET",
+ "tls_skip_verify": true,
+ "interval": "15s",
+ "timeout": "1s"
+ },
+ {
+ "id": "log-logstash-internal-server-plugin-info",
+ "name": "Log Stash Health Check - Plugin Information",
+ "http": "http://logstashinternal.onap-log:9600/_node/plugins?pretty",
+ "method": "GET",
+ "tls_skip_verify": true,
+ "interval": "15s",
+ "timeout": "1s"
+ },
+ {
+ "id": "log-logstash-internal-server-node-stat",
+ "name": "Log Stash Health Check - Node Stats",
+ "http": "http://logstashinternal.onap-log:9600/_node/stats?pretty",
+ "method": "GET",
+ "tls_skip_verify": true,
+ "interval": "15s",
+ "timeout": "1s"
+ },
+ {
+ "id": "log-logstash-internal-server-jvm-stat",
+ "name": "Log Stash Health Check - JVM Stats",
+ "http": "http://logstashinternal.onap-log:9600/_node/stats/jvm?pretty",
+ "method": "GET",
+ "tls_skip_verify": true,
+ "interval": "15s",
+ "timeout": "1s"
+ },
+ {
+ "id": "log-logstash-internal-server-process-stat",
+ "name": "Log Stash Health Check - Process Stats",
+ "http": "http://logstashinternal.onap-log:9600/_node/stats/process?pretty",
+ "method": "GET",
+ "tls_skip_verify": true,
+ "interval": "15s",
+ "timeout": "1s"
+ },
+ {
+ "id": "log-logstash-internal-server-os-stat",
+ "name": "Log Stash Health Check - OS Stats",
+ "http": "http://logstashinternal.onap-log:9600/_node/stats/os?pretty",
+ "method": "GET",
+ "tls_skip_verify": true,
+ "interval": "15s",
+ "timeout": "1s"
+ },
+ {
+ "id": "log-logstash-tcp",
+ "name": "Log Stash File Beat TCP Health Check",
+ "tcp": "logstash.onap-log:5044",
+ "interval": "15s",
+ "timeout": "1s"
+ }
+ ]
+ }
+}
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>\r
-<!--\r
- ============LICENSE_START=======================================================\r
- policy-management\r
- ================================================================================\r
- Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.\r
- ================================================================================\r
- Licensed under the Apache License, Version 2.0 (the "License");\r
- you may not use this file except in compliance with the License.\r
- You may obtain a copy of the License at\r
- \r
- http://www.apache.org/licenses/LICENSE-2.0\r
- \r
- Unless required by applicable law or agreed to in writing, software\r
- distributed under the License is distributed on an "AS IS" BASIS,\r
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
- See the License for the specific language governing permissions and\r
- limitations under the License.\r
- ============LICENSE_END=========================================================\r
- -->\r
-<configuration debug="true" scan="true" scanPeriod="3 seconds">\r
- <!--<jmxConfigurator /> -->\r
- <!-- specify the base path of the log directory --> \r
- <property name="logDir" value="/var/log/onap" />\r
- <!-- specify the component name -->\r
- <property name="componentName" value="policy" />\r
- <!-- specify the sub component name -->\r
- <property name="subComponentName" value="drools" />\r
- <!-- The directories where logs are written --> \r
- <property name="logDirectory" value="${logDir}/${componentName}/${subComponentName}" />\r
- <property name="pattern" value="%d{&quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&quot;, UTC}\t[%thread]\t%-5level\t%logger{36}\t%replace(%replace(%replace(%mdc){'\t','\\\\t'}){', ','\t'}){'\n', '\\\\n'}\t%replace(%replace(%msg){'\n', '\\\\n'}){'\t','\\\\t'}%n" />\r
- <!-- log file names -->\r
- <property name="errorLogName" value="error" />\r
- <property name="metricsLogName" value="metrics" />\r
- <property name="auditLogName" value="audit" />\r
- <property name="debugLogName" value="debug" />\r
- <property name="queueSize" value="256" />\r
- <property name="maxFileSize" value="50MB" />\r
- <property name="maxHistory" value="30" />\r
- <property name="totalSizeCap" value="10GB" />\r
- <!-- Example evaluator filter applied against console appender -->\r
- <appender class="ch.qos.logback.core.ConsoleAppender" name="STDOUT">\r
- <encoder>\r
- <pattern>${pattern}</pattern>\r
- </encoder>\r
- </appender>\r
- <!-- ============================================================================ -->\r
- <!-- EELF Appenders -->\r
- <!-- ============================================================================ -->\r
- <!-- The EELFAppender is used to record events to the general application \r
- log -->\r
- <!-- EELF Audit Appender. This appender is used to record audit engine \r
- related logging events. The audit logger and appender are specializations \r
- of the EELF application root logger and appender. This can be used to segregate \r
- Policy engine events from other components, or it can be eliminated to record \r
- these events as part of the application root log. -->\r
- <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="EELFAudit">\r
- <file>${logDirectory}/${auditLogName}.log</file>\r
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">\r
- <fileNamePattern>${logDirectory}/${auditLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>\r
- <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">\r
- <maxFileSize>${maxFileSize}</maxFileSize>\r
- </timeBasedFileNamingAndTriggeringPolicy>\r
- <maxHistory>${maxHistory}</maxHistory>\r
- <totalSizeCap>${totalSizeCap}</totalSizeCap>\r
- </rollingPolicy>\r
- <encoder>\r
- <pattern>${pattern}</pattern>\r
- </encoder>\r
- </appender>\r
- <appender class="ch.qos.logback.classic.AsyncAppender" name="asyncEELFAudit">\r
- <queueSize>${queueSize}</queueSize>\r
- <appender-ref ref="EELFAudit" />\r
- </appender>\r
- <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="EELFMetrics">\r
- <file>${logDirectory}/${metricsLogName}.log</file>\r
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">\r
- <fileNamePattern>${logDirectory}/${metricsLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>\r
- <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">\r
- <maxFileSize>${maxFileSize}</maxFileSize>\r
- </timeBasedFileNamingAndTriggeringPolicy>\r
- <maxHistory>${maxHistory}</maxHistory>\r
- <totalSizeCap>${totalSizeCap}</totalSizeCap>\r
- </rollingPolicy>\r
- <encoder>\r
- <pattern>${pattern}</pattern>\r
- </encoder>\r
- </appender>\r
- <appender class="ch.qos.logback.classic.AsyncAppender" name="asyncEELFMetrics">\r
- <queueSize>${queueSize}</queueSize>\r
- <appender-ref ref="EELFMetrics" />\r
- </appender>\r
- <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="EELFError">\r
- <file>${logDirectory}/${errorLogName}.log</file>\r
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">\r
- <fileNamePattern>${logDirectory}/${errorLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>\r
- <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">\r
- <maxFileSize>${maxFileSize}</maxFileSize>\r
- </timeBasedFileNamingAndTriggeringPolicy>\r
- <maxHistory>${maxHistory}</maxHistory>\r
- <totalSizeCap>${totalSizeCap}</totalSizeCap>\r
- </rollingPolicy>\r
- <encoder>\r
- <pattern>${pattern}</pattern>\r
- </encoder>\r
- <filter class="ch.qos.logback.classic.filter.ThresholdFilter">\r
- <level>INFO</level>\r
- </filter>\r
- </appender>\r
- <appender class="ch.qos.logback.classic.AsyncAppender" name="asyncEELFError">\r
- <queueSize>${queueSize}</queueSize>\r
- <appender-ref ref="EELFError" />\r
- </appender>\r
- <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="EELFDebug">\r
- <file>${logDirectory}/${debugLogName}.log</file>\r
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">\r
- <fileNamePattern>${logDirectory}/${debugLogName}.%i.log.zip</fileNamePattern>\r
- <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">\r
- <maxFileSize>${maxFileSize}</maxFileSize>\r
- </timeBasedFileNamingAndTriggeringPolicy>\r
- <maxHistory>${maxHistory}</maxHistory>\r
- <totalSizeCap>${totalSizeCap}</totalSizeCap>\r
- </rollingPolicy>\r
- <encoder>\r
- <pattern>${pattern}</pattern>\r
- </encoder>\r
- </appender>\r
- <appender class="ch.qos.logback.classic.AsyncAppender" name="asyncEELFDebug">\r
- <queueSize>${queueSize}</queueSize>\r
- <appender-ref ref="EELFDebug" />\r
- <includeCallerData>true</includeCallerData>\r
- </appender>\r
- <!-- ============================================================================ -->\r
- <!-- EELF loggers -->\r
- <!-- ============================================================================ -->\r
- <logger additivity="false" level="info" name="com.att.eelf.audit">\r
- <appender-ref ref="asyncEELFAudit" />\r
- </logger>\r
- <logger additivity="false" level="info" name="com.att.eelf.metrics">\r
- <appender-ref ref="asyncEELFMetrics" />\r
- </logger>\r
- <logger additivity="false" level="info" name="com.att.eelf.error">\r
- <appender-ref ref="asyncEELFError" />\r
- </logger>\r
- <logger additivity="false" level="debug" name="com.att.eelf.debug">\r
- <appender-ref ref="asyncEELFDebug" />\r
- </logger>\r
- <root level="INFO">\r
- <appender-ref ref="asyncEELFDebug" />\r
- <appender-ref ref="asyncEELFError" />\r
- </root>\r
-</configuration>
\ No newline at end of file
+++ /dev/null
-default-character-set=latin1
-default-collation=latin1_swedish_ci
+++ /dev/null
-ÿlocalhost root \ 1 VUÚXÿae9df72d0f92 root \ 1 VUÚX
\ No newline at end of file
+++ /dev/null
-default-character-set=utf8
-default-collation=utf8_general_ci
+++ /dev/null
-default-character-set=latin1
-default-collation=latin1_swedish_ci
+++ /dev/null
-default-character-set=latin1
-default-collation=latin1_swedish_ci
+++ /dev/null
-#! /bin/bash
-
-
-echo "Pushing default policies"
-
-# Sometimes brmsgw gets an error when trying to retrieve the policies on initial push,
-# so for the BRMS policies we will do a push, then delete from the pdp group, then push again.
-# Second push should be successful.
-
-echo "pushPolicy : PUT : com.vFirewall"
-curl -v --silent -X PUT --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{
- "pdpGroup": "default",
- "policyName": "com.vFirewall",
- "policyType": "MicroService"
-}' 'http://pdp.onap-policy:8081/pdp/api/pushPolicy'
-
-sleep 2
-
-echo "pushPolicy : PUT : com.vLoadBalancer"
-curl -v --silent -X PUT --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{
- "pdpGroup": "default",
- "policyName": "com.vLoadBalancer",
- "policyType": "MicroService"
-}' 'http://pdp.onap-policy:8081/pdp/api/pushPolicy'
-
-sleep 2
-
-echo "pushPolicy : PUT : com.BRMSParamvLBDemoPolicy"
-curl -v --silent -X PUT --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{
- "pdpGroup": "default",
- "policyName": "com.BRMSParamvLBDemoPolicy",
- "policyType": "BRMS_Param"
-}' 'http://pdp.onap-policy:8081/pdp/api/pushPolicy'
-
-sleep 2
-
-echo "pushPolicy : PUT : com.BRMSParamvFWDemoPolicy"
-curl -v --silent -X PUT --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{
- "pdpGroup": "default",
- "policyName": "com.BRMSParamvFWDemoPolicy",
- "policyType": "BRMS_Param"
-}' 'http://pdp.onap-policy:8081/pdp/api/pushPolicy'
-
-sleep 2
-
-echo "deletePolicy : DELETE : com.vFirewall"
-curl -v --silent -X DELETE --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{
-"pdpGroup": "default",
-"policyComponent": "PDP",
-"policyName": "com.vFirewall",
-"policyType": "MicroService"
-}' 'http://pdp.onap-policy:8081/pdp/api/deletePolicy'
-
-
-sleep 2
-
-echo "deletePolicy : DELETE : com.vLoadBalancer"
-curl -v --silent -X DELETE --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{
-"pdpGroup": "default",
-"policyComponent": "PDP",
-"policyName": "com.vLoadBalancer",
-"policyType": "MicroService"
-}' 'http://pdp.onap-policy:8081/pdp/api/deletePolicy'
-
-sleep 2
-
-echo "deletePolicy : DELETE : com.BRMSParamvFWDemoPolicy"
-curl -v --silent -X DELETE --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{
-"pdpGroup": "default",
-"policyComponent": "PDP",
-"policyName": "com.BRMSParamvFWDemoPolicy",
-"policyType": "BRMS_Param"
-}' 'http://pdp.onap-policy:8081/pdp/api/deletePolicy'
-
-
-sleep 2
-
-echo "deletePolicy : DELETE : com.BRMSParamvLBDemoPolicy"
-curl -v --silent -X DELETE --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{
-"pdpGroup": "default",
-"policyComponent": "PDP",
-"policyName": "com.BRMSParamvLBDemoPolicy",
-"policyType": "BRMS_Param"
-}' 'http://pdp.onap-policy:8081/pdp/api/deletePolicy'
-
-sleep 2
-
-echo "pushPolicy : PUT : com.vFirewall"
-curl -v --silent -X PUT --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{
- "pdpGroup": "default",
- "policyName": "com.vFirewall",
- "policyType": "MicroService"
-}' 'http://pdp.onap-policy:8081/pdp/api/pushPolicy'
-
-sleep 2
-
-echo "pushPolicy : PUT : com.vLoadBalancer"
-curl -v --silent -X PUT --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{
- "pdpGroup": "default",
- "policyName": "com.vLoadBalancer",
- "policyType": "MicroService"
-}' 'http://pdp.onap-policy:8081/pdp/api/pushPolicy'
-
-sleep 2
-
-echo "pushPolicy : PUT : com.BRMSParamvLBDemoPolicy"
-curl -v --silent -X PUT --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{
- "pdpGroup": "default",
- "policyName": "com.BRMSParamvLBDemoPolicy",
- "policyType": "BRMS_Param"
-}' 'http://pdp.onap-policy:8081/pdp/api/pushPolicy'
-
-sleep 2
-
-echo "pushPolicy : PUT : com.BRMSParamvFWDemoPolicy"
-curl -v --silent -X PUT --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{
- "pdpGroup": "default",
- "policyName": "com.BRMSParamvFWDemoPolicy",
- "policyType": "BRMS_Param"
-}' 'http://pdp.onap-policy:8081/pdp/api/pushPolicy'
-
#parse yaml files
for line in `parse_yaml $filename`
do
- #find all image subtag inside converted values.yaml file's lines
- if echo $line | grep -q $IMAGE_TEXT ; then
- #find imageName inside line
- imageName=`echo $line | awk -F "=" '{print $2}'`
- #remove attional prefix and postfix
- imageNameFinal=`echo "$imageName" | sed -e 's/^"//' -e 's/"$//' `
-
- #check if line contain Version as a subtag in lines if yes then call docker pull with version
- if echo $line | grep -q $IMAGE_VERSION_TEXT ; then
- echo docker pull "$imageNameWithVersion":"$imageNameFinal"
- docker pull $imageNameWithVersion:$imageNameFinal &
- imageNameWithVersion=" "
- else
- #check Version is not in subtag and old scanned value is present then call docker pull without version
- if [ "$imageNameWithVersion" != " " ]; then
- echo docker pull "$imageNameWithVersion"
- docker pull $imageNameWithVersion &
- imageNameWithVersion=$imageNameFinal
+ #skiping commented line
+ if [[ ${line:0:1} != '#' ]]; then
+ #find all image subtag inside converted values.yaml file's lines
+ if echo $line | grep -q $IMAGE_TEXT ; then
+ #find imageName inside line
+ imageName=`echo $line | awk -F "=" '{print $2}'`
+ #remove attional prefix and postfix
+ imageNameFinal=`echo "$imageName" | sed -e 's/^"//' -e 's/"$//' `
+
+ #check if line contain Version as a subtag in lines if yes then call docker pull with version
+ if echo $line | grep -q $IMAGE_VERSION_TEXT ; then
+ echo docker pull "$imageNameWithVersion":"$imageNameFinal"
+ docker pull $imageNameWithVersion:$imageNameFinal &
+ imageNameWithVersion=" "
else
- imageNameWithVersion=$imageNameFinal
+ #check Version is not in subtag and old scanned value is present then call docker pull without version
+ if [ "$imageNameWithVersion" != " " ]; then
+ echo docker pull "$imageNameWithVersion"
+ docker pull $imageNameWithVersion &
+ imageNameWithVersion=$imageNameFinal
+ else
+ imageNameWithVersion=$imageNameFinal
+ fi
fi
fi
-
-
fi
-
-
done
done
# complete processing
repository: oomk8s/config-init
#master => Beijing (major release uprev)
tag: 2.0.0-SNAPSHOT
- pullPolicy: Always
\ No newline at end of file
+ pullPolicy: Always
---
apiVersion: v1
kind: Service
+metadata:
+ name: logstashinternal
+ namespace: {{ .Values.nsPrefix }}-log
+ labels:
+ app: logstash
+spec:
+ ports:
+ - name: http
+ port: 9600
+ targetPort: 9600
+ selector:
+ app: logstash
+---
+apiVersion: v1
+kind: Service
metadata:
name: logstash
namespace: {{ .Values.nsPrefix }}-log
spec:
initContainers:
- command:
- - sysctl
- - -w
- - vm.max_map_count=262144
+ - /bin/sh
+ - -c
+ - |
+ sysctl -w vm.max_map_count=262144
+ mkdir -p /logroot/elasticsearch/logs
+ mkdir -p /logroot/elasticsearch/data
+ chmod -R 777 /logroot/elasticsearch
+ chown -R root:root /logroot
env:
- name: NAMESPACE
valueFrom:
image: {{ .Values.image.es_bb }}
imagePullPolicy: {{ .Values.pullPolicy }}
name: init-sysctl
+ volumeMounts:
+ - name: elasticsearch-logs
+ mountPath: /logroot/
containers:
- name: elasticsearch
image: {{ .Values.image.elasticsearch}}
claimName: elasticsearch-db
- name: elasticsearch-logs
hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/log/elasticsearch/logs
+ path: /dockerdata-nfs/{{ .Values.nsPrefix }}/log/
- name: elasticsearch-conf
configMap:
name: elasticsearch-configmap
- name: logstash
image: {{ .Values.image.logstash }}
ports:
- - containerPort: 5044
+ - containerPort: 5044
name: transport
protocol: TCP
+ - containerPort: 9600
+ name: http
+ protocol: TCP
readinessProbe:
tcpSocket:
port: 5044
nsPrefix: onap
-pullPolicy: Always
+pullPolicy: Always
nodePortPrefix: 302
image:
readiness: oomk8s/readiness-check:1.0.0
kibana: docker.elastic.co/kibana/kibana:5.5.0
elasticsearch: docker.elastic.co/elasticsearch/elasticsearch:5.5.0
es_bb: busybox
-
name: dmaap
namespace: "{{ .Values.nsPrefix }}-message-router"
spec:
+ replicas: {{ .Values.dmaapReplicas }}
selector:
matchLabels:
app: dmaap
name: global-kafka
namespace: "{{ .Values.nsPrefix }}-message-router"
spec:
+ replicas: {{ .Values.kafkaReplicas }}
selector:
matchLabels:
app: global-kafka
name: zookeeper
namespace: "{{ .Values.nsPrefix }}-message-router"
spec:
+ replicas: {{ .Values.zookeeperReplicas }}
selector:
matchLabels:
app: zookeeper
claimName: message-router-zookeeper
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }}
\ No newline at end of file
+#{{ end }}
nsPrefix: onap
pullPolicy: Always
nodePortPrefix: 302
+dmaapReplicas: 1
+kafkaReplicas: 1
+zookeeperReplicas: 1
image:
readiness: oomk8s/readiness-check:1.0.0
dmaap: attos/dmaap:latest
name: msb-discovery
spec:
hostname: msb-discovery
+ initContainers:
+ - command:
+ - /root/ready.py
+ args:
+ - --container-name
+ - msb-consul
+ env:
+ - name: NAMESPACE
+ valueFrom:
+ fieldRef:
+ apiVersion: v1
+ fieldPath: metadata.namespace
+ image: {{ .Values.image.readiness }}
+ imagePullPolicy: {{ .Values.pullPolicy }}
+ name: msb-discovery-readiness
containers:
- args:
image: {{ .Values.image.discovery }}
imagePullPolicy: {{ .Values.pullPolicy }}
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }}
\ No newline at end of file
+#{{ end }}
name: msb-eag
spec:
hostname: msb-eag
+ initContainers:
+ - command:
+ - /root/ready.py
+ args:
+ - --container-name
+ - msb-discovery
+ env:
+ - name: NAMESPACE
+ valueFrom:
+ fieldRef:
+ apiVersion: v1
+ fieldPath: metadata.namespace
+ image: {{ .Values.image.readiness }}
+ imagePullPolicy: {{ .Values.pullPolicy }}
+ name: msb-eag-readiness
containers:
- args:
image: {{ .Values.image.apigateway }}
imagePullPolicy: {{ .Values.pullPolicy}}
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }}
\ No newline at end of file
+#{{ end }}
name: msb-iag
spec:
hostname: msb-iag
+ initContainers:
+ - command:
+ - /root/ready.py
+ args:
+ - --container-name
+ - msb-discovery
+ env:
+ - name: NAMESPACE
+ valueFrom:
+ fieldRef:
+ apiVersion: v1
+ fieldPath: metadata.namespace
+ image: {{ .Values.image.readiness }}
+ imagePullPolicy: {{ .Values.pullPolicy }}
+ name: msb-iag-readiness
containers:
- args:
image: {{ .Values.image.apigateway }}
imagePullPolicy: "{{ .Values.pullPolicy}}"
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }}
\ No newline at end of file
+#{{ end }}
nsPrefix: onap
pullPolicy: IfNotPresent
image:
+ readiness: oomk8s/readiness-check:1.0.0
consul: consul:0.9.3
discovery: nexus3.onap.org:10001/onap/msb/msb_discovery:1.0.0
apigateway: nexus3.onap.org:10001/onap/msb/msb_apigateway:1.0.0
--- /dev/null
+filebeat.prospectors:
+#it is mandatory, in our case it's log
+- input_type: log
+ #This is the canolical path as mentioned in logback.xml, *.* means it will monitor all files in the directory.
+ paths:
+ - /var/log/onap/*/*/*/*.log
+ - /var/log/onap/*/*/*.log
+ - /var/log/onap/*/*.log
+ #Files older than this should be ignored.In our case it will be 48 hours i.e. 2 days. It is a helping flag for clean_inactive
+ ignore_older: 48h
+ # Remove the registry entry for a file that is more than the specified time. In our case it will be 96 hours, i.e. 4 days. It will help to keep registry records with in limit
+ clean_inactive: 96h
+
+
+# Name of the registry file. If a relative path is used, it is considered relative to the
+# data path. Else full qualified file name.
+#filebeat.registry_file: ${path.data}/registry
+
+
+output.logstash:
+ #List of logstash server ip addresses with port number.
+ #But, in our case, this will be the loadbalancer IP address.
+ #For the below property to work the loadbalancer or logstash should expose 5044 port to listen the filebeat events or port in the property should be changed appropriately.
+ hosts: ["logstash.{{ .Values.nsPrefix }}-log:5044"]
+ #If enable will do load balancing among availabe Logstash, automatically.
+ loadbalance: true
+
+ #The list of root certificates for server verifications.
+ #If certificate_authorities is empty or not set, the trusted
+ #certificate authorities of the host system are used.
+ #ssl.certificate_authorities: $ssl.certificate_authorities
+
+ #The path to the certificate for SSL client authentication. If the certificate is not specified,
+ #client authentication is not available.
+ #ssl.certificate: $ssl.certificate
+
+ #The client certificate key used for client authentication.
+ #ssl.key: $ssl.key
+
+ #The passphrase used to decrypt an encrypted key stored in the configured key file
+ #ssl.key_passphrase: $ssl.key_passphrase
"mso-api-handler-infra-config":
{
- "bpelURL": "http://mso.onap-mso.svc.cluster.local:8080",
+ "bpelURL": "http://mso.{{ .Values.nsPrefix }}-mso.svc.cluster.local:8080",
"bpelAuth": "786864AA53D0DCD881AED1154230C0C3058D58B9339D2EFB6193A0F0D82530E1",
- "camundaURL": "http://mso.onap-mso.svc.cluster.local:8080",
+ "camundaURL": "http://mso.{{ .Values.nsPrefix }}-mso.svc.cluster.local:8080",
"camundaAuth": "5119D1AF37F671FC01FFAD2151D93EFB2BBB503E879FD07104D024EDDF118FD1"
},
"user": "mso",
"consumerGroup": "sdc-OpenSource-Env1",
"consumerId": "sdc-COpenSource-Env11",
- "environmentName": "DMAAP_TOPIC_HERE",
+ "environmentName": "{{ .Values.dmaapTopic }}",
"asdcAddress": "sdc-be.onap-sdc.svc.cluster.local:8443",
"password": "613AF3483E695524F9857643B697FA51C7A9A0951094F53791485BF3458F9EADA37DBACCCEBD0CB242B85B4062745247",
"pollingInterval": 60,
{
"sdncurls":
[
- "http://sdnhost.onap-sdnc.svc.cluster.local:8282/restconf/operations/L3SDN-API:",
- "http://sdnhost.onap-sdnc.svc.cluster.local:8282/restconf/config/L3SDN-API:",
- "http://sdnhost.onap-sdnc.svc.cluster.local:8282/restconf/operations/Firewall-API:",
- "http://sdnhost.onap-sdnc.svc.cluster.local:8282/restconf/config",
- "http://sdnhost.onap-sdnc.svc.cluster.local:8282/restconf/operations/VNF-API:",
- "http://sdnhost.onap-sdnc.svc.cluster.local:8282/restconf/operations/NBNC-API:",
- "http://sdnhost.onap-sdnc.svc.cluster.local:8282/restconf/operations/NORTHBOUND-API:service-topology-operation",
- "http://sdnhost.onap-sdnc.svc.cluster.local:8282/restconf/operations/GENERIC-RESOURCE-API:",
- "http://sdnhost.onap-sdnc.svc.cluster.local:8282/restconf/operations/VNFTOPOLOGYAIC-API:"
+ "http://sdnhost.{{ .Values.nsPrefix }}-sdnc.svc.cluster.local:8282/restconf/operations/L3SDN-API:",
+ "http://sdnhost.{{ .Values.nsPrefix }}-sdnc.svc.cluster.local:8282/restconf/config/L3SDN-API:",
+ "http://sdnhost.{{ .Values.nsPrefix }}-sdnc.svc.cluster.local:8282/restconf/operations/Firewall-API:",
+ "http://sdnhost.{{ .Values.nsPrefix }}-sdnc.svc.cluster.local:8282/restconf/config",
+ "http://sdnhost.{{ .Values.nsPrefix }}-sdnc.svc.cluster.local:8282/restconf/operations/VNF-API:",
+ "http://sdnhost.{{ .Values.nsPrefix }}-sdnc.svc.cluster.local:8282/restconf/operations/NBNC-API:",
+ "http://sdnhost.{{ .Values.nsPrefix }}-sdnc.svc.cluster.local:8282/restconf/operations/NORTHBOUND-API:service-topology-operation",
+ "http://sdnhost.{{ .Values.nsPrefix }}-sdnc.svc.cluster.local:8282/restconf/operations/GENERIC-RESOURCE-API:",
+ "http://sdnhost.{{ .Values.nsPrefix }}-sdnc.svc.cluster.local:8282/restconf/operations/VNFTOPOLOGYAIC-API:"
],
- "bpelurl": "http://mso.onap-mso.svc.cluster.local:8080/mso/SDNCAdapterCallbackService",
- "restbpelurl": "http://mso.onap-mso.svc.cluster.local:8080/mso/WorkflowMessage",
- "myurl": "http://mso.onap-mso.svc.cluster.local:8080/adapters/rest/SDNCNotify",
+ "bpelurl": "http://mso.{{ .Values.nsPrefix }}-mso.svc.cluster.local:8080/mso/SDNCAdapterCallbackService",
+ "restbpelurl": "http://mso.{{ .Values.nsPrefix }}-mso.svc.cluster.local:8080/mso/WorkflowMessage",
+ "myurl": "http://mso.{{ .Values.nsPrefix }}-mso.svc.cluster.local:8080/adapters/rest/SDNCNotify",
"sdncauth": "263f7d5f944d4d0c76db74b4148bec67d0bc796a874bc0d2a2a12aae89a866aa69133f700f391f784719a37f6a68d29bf5a2fbae1dab0402db7788c800c5ba73",
"bpelauth": "5119D1AF37F671FC01FFAD2151D93EFB2BBB503E879FD07104D024EDDF118FD1",
"sdncconnecttime": "5000"
[
{
"dcp_clli": "DEFAULT_KEYSTONE",
- "identity_url": "OPENSTACK_KEYSTONE_IP_HERE/v2.0",
- "mso_id": "OPENSTACK_USERNAME_HERE",
- "mso_pass": "OPENSTACK_ENCRYPTED_PASSWORD_HERE",
- "admin_tenant": "OPENSTACK_SERVICE_TENANT_NAME_HERE",
+ "identity_url": "{{ .Values.openStackKeyStoneUrl }}/v2.0",
+ "mso_id": "{{ .Values.openStackUserName }}",
+ "mso_pass": "{{ .Values.openStackEncryptedPasswordHere }}",
+ "admin_tenant":"{{ .Values.openStackServiceTenantName }}",
"member_role": "admin",
"tenant_metadata": "true",
"identity_server_type": "KEYSTONE",
"cloud_sites":
[
{
- "id": "OPENSTACK_REGION_HERE",
+ "id": "{{ .Values.openStackRegion }}",
"aic_version": "2.5",
- "lcp_clli": "OPENSTACK_REGION_HERE",
- "region_id": "OPENSTACK_REGION_HERE",
+ "lcp_clli": "{{ .Values.openStackRegion }}",
+ "region_id": "{{ .Values.openStackRegion }}",
"identity_service_id": "DEFAULT_KEYSTONE"
}
],
"mso-workflow-message-adapter-config":
{
- "wmbpelurl": "http://mso.onap-mso.svc.cluster.local:8080/mso/WorkflowMessage",
+ "wmbpelurl": "http://mso.{{ .Values.nsPrefix }}-mso.svc.cluster.local:8080/mso/WorkflowMessage",
"wmbpelauth": "5119D1AF37F671FC01FFAD2151D93EFB2BBB503E879FD07104D024EDDF118FD1"
},
"versionIdL3ToHigherLayerDeleteBonding": "52dbec20-47aa-42e4-936c-331d8e350d44",
"infraCustomerId": "21014aa2-526b-11e6-beb8-9e71128cae77",
"sniroAuth": "test:testpwd",
- "sniroEndpoint": "http://sniro-emulator.onap-mock.svc.cluster.local:8080/sniro/api/v2/placement",
+ "sniroEndpoint": "http://sniro-emulator.{{ .Values.nsPrefix }}-mock.svc.cluster.local:8080/sniro/api/v2/placement",
"sniroTimeout": "PT30M",
- "serviceAgnosticSniroHost": "http://sniro-emulator.onap-mock.svc.cluster.local:8080",
+ "serviceAgnosticSniroHost": "http://sniro-emulator.{{ .Values.nsPrefix }}-mock.svc.cluster.local:8080",
"serviceAgnosticSniroEndpoint": "/sniro/api/v2/placement",
- "aaiEndpoint": "https://aai-service.onap-aai.svc.cluster.local:8443",
+ "aaiEndpoint": "https://aai-service.{{ .Values.nsPrefix }}-aai.svc.cluster.local:8443",
"aaiAuth": "2630606608347B7124C244AB0FE34F6F",
"adaptersNamespace": "http://org.openecomp.mso",
- "adaptersCompletemsoprocessEndpoint": "http://mso.onap-mso.svc.cluster.local:8080/CompleteMsoProcess",
- "adaptersDbEndpoint": "http://mso.onap-mso.svc.cluster.local:8080/dbadapters/MsoRequestsDbAdapter",
- "adaptersOpenecompDbEndpoint": "http://mso.onap-mso.svc.cluster.local:8080/dbadapters/RequestsDbAdapter",
- "catalogDbEndpoint": "http://mso.onap-mso.svc.cluster.local:8080/ecomp/mso/catalog",
- "adaptersSdncEndpoint": "http://mso.onap-mso.svc.cluster.local:8080/adapters/SDNCAdapter",
- "adaptersSdncRestEndpoint": "http://mso.onap-mso.svc.cluster.local:8080/adapters/rest/v1/sdnc",
- "adaptersTenantEndpoint": "http://mso.onap-mso.svc.cluster.local:8080/tenants/TenantAdapter",
+ "adaptersCompletemsoprocessEndpoint": "http://mso.{{ .Values.nsPrefix }}-mso.svc.cluster.local:8080/CompleteMsoProcess",
+ "adaptersDbEndpoint": "http://mso.{{ .Values.nsPrefix }}-mso.svc.cluster.local:8080/dbadapters/MsoRequestsDbAdapter",
+ "adaptersOpenecompDbEndpoint": "http://mso.{{ .Values.nsPrefix }}-mso.svc.cluster.local:8080/dbadapters/RequestsDbAdapter",
+ "catalogDbEndpoint": "http://mso.{{ .Values.nsPrefix }}-mso.svc.cluster.local:8080/ecomp/mso/catalog",
+ "adaptersSdncEndpoint": "http://mso.{{ .Values.nsPrefix }}-mso.svc.cluster.local:8080/adapters/SDNCAdapter",
+ "adaptersSdncRestEndpoint": "http://mso.{{ .Values.nsPrefix }}-mso.svc.cluster.local:8080/adapters/rest/v1/sdnc",
+ "adaptersTenantEndpoint": "http://mso.{{ .Values.nsPrefix }}-mso.svc.cluster.local:8080/tenants/TenantAdapter",
"adaptersDbAuth": "6B0E6863FB8EE010AB6F191B3C0489437601E81DC7C86305CB92DB98AFC53D74",
- "adaptersWorkflowMessageEndpoint": "http://mso.onap-mso.svc.cluster.local:8080/workflows/messages/message",
- "workflowMessageEndpoint": "http://mso.onap-mso.svc.cluster.local:8080/mso/WorkflowMessage",
- "workflowSdncAdapterCallback": "http://mso.onap-mso.svc.cluster.local:8080/mso/SDNCAdapterCallbackService",
+ "adaptersWorkflowMessageEndpoint": "http://mso.{{ .Values.nsPrefix }}-mso.svc.cluster.local:8080/workflows/messages/message",
+ "workflowMessageEndpoint": "http://mso.{{ .Values.nsPrefix }}-mso.svc.cluster.local:8080/mso/WorkflowMessage",
+ "workflowSdncAdapterCallback": "http://mso.{{ .Values.nsPrefix }}-mso.svc.cluster.local:8080/mso/SDNCAdapterCallbackService",
"workflowSdncReplicationDelay": "PT5S",
"workflowAaiDistributionDelay": "PT30S",
"msoKey": "07a7159d3bf51a0e53be7a8f89699be7",
"adaptersPoAuth": "6B0E6863FB8EE010AB6F191B3C0489437601E81DC7C86305CB92DB98AFC53D74",
"sdncTimeout": "PT5M",
"rollback": "true",
- "adaptersNetworkEndpoint": "http://mso.onap-mso.svc.cluster.local:8080/networks/NetworkAdapter",
- "adaptersNetworkRestEndpoint": "http://mso.onap-mso.svc.cluster.local:8080/networks/rest/v1/networks",
- "adaptersVnfAsyncEndpoint": "http://mso.onap-mso.svc.cluster.local:8080/vnfs/VnfAdapterAsync",
- "workflowVnfAdapterDeleteCallback": "http://mso.onap-mso.svc.cluster.local:8080/mso/vnfAdapterNotify",
- "workflowVnfAdapterCreateCallback": "http://mso.onap-mso.svc.cluster.local:8080/mso/vnfAdapterNotify",
- "adaptersVnfRestEndpoint": "http://mso.onap-mso.svc.cluster.local:8080/vnfs/rest/v1/vnfs",
- "workflowVnfAdapterRestCallback": "http://mso.onap-mso.svc.cluster.local:8080/mso/vnfAdapterRestNotify",
+ "adaptersNetworkEndpoint": "http://mso.{{ .Values.nsPrefix }}-mso.svc.cluster.local:8080/networks/NetworkAdapter",
+ "adaptersNetworkRestEndpoint": "http://mso.{{ .Values.nsPrefix }}-mso.svc.cluster.local:8080/networks/rest/v1/networks",
+ "adaptersVnfAsyncEndpoint": "http://mso.{{ .Values.nsPrefix }}-mso.svc.cluster.local:8080/vnfs/VnfAdapterAsync",
+ "workflowVnfAdapterDeleteCallback": "http://mso.{{ .Values.nsPrefix }}-mso.svc.cluster.local:8080/mso/vnfAdapterNotify",
+ "workflowVnfAdapterCreateCallback": "http://mso.{{ .Values.nsPrefix }}-mso.svc.cluster.local:8080/mso/vnfAdapterNotify",
+ "adaptersVnfRestEndpoint": "http://mso.{{ .Values.nsPrefix }}-mso.svc.cluster.local:8080/vnfs/rest/v1/vnfs",
+ "workflowVnfAdapterRestCallback": "http://mso.{{ .Values.nsPrefix }}-mso.svc.cluster.local:8080/mso/vnfAdapterRestNotify",
"poTimeout": "PT5M",
"sdncFirewallYangModel": "http://com/att/svc/mis/firewall-lite-gui",
"sdncFirewallYangModelVersion": "2015-05-15",
--- /dev/null
+#{{ if not .Values.disableMsoMariadb }}
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: mso-confd-configmap
+ namespace: {{ .Values.nsPrefix }}-mso
+data:
+{{ tpl (.Files.Glob "resources/config/mariadb/conf.d/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: mso-docker-entry-initd-configmap
+ namespace: {{ .Values.nsPrefix }}-mso
+data:
+{{ tpl (.Files.Glob "resources/config/mariadb/docker-entrypoint-initdb.d/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: mso-automated-tests-configmap
+ namespace: {{ .Values.nsPrefix }}-mso
+data:
+{{ tpl (.Files.Glob "resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/automated-tests/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: mso-bulkload-default-configmap
+ namespace: {{ .Values.nsPrefix }}-mso
+data:
+{{ tpl (.Files.Glob "resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/default/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: mso-demo-dns-configmap
+ namespace: {{ .Values.nsPrefix }}-mso
+data:
+{{ tpl (.Files.Glob "resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/demo-dns/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: mso-demo-vfw-configmap
+ namespace: {{ .Values.nsPrefix }}-mso
+data:
+{{ tpl (.Files.Glob "resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/demo-vfw/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: mso-scripts-camunda-configmap
+ namespace: {{ .Values.nsPrefix }}-mso
+data:
+{{ tpl (.Files.Glob "resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/camunda/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: mso-main-schemas-configmap
+ namespace: {{ .Values.nsPrefix }}-mso
+data:
+{{ tpl (.Files.Glob "resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/main-schemas/*").AsConfig . | indent 2 }}
+#{{ end }}
name: mariadb
namespace: "{{ .Values.nsPrefix }}-mso"
spec:
+ replicas: {{ .Values.dbReplicas }}
selector:
matchLabels:
app: mariadb
readOnly: true
- mountPath: /etc/mysql/conf.d
name: mso-mariadb-conf
- - mountPath: /docker-entrypoint-initdb.d
+ - mountPath: /docker-entrypoint-initdb.d/02-load-additional-changes.sh
name: mso-mariadb-docker-entrypoint-initdb
+ subPath: 02-load-additional-changes.sh
+ - mountPath: /docker-entrypoint-initdb.d/01-load-default-sql-files.sh
+ name: mso-mariadb-docker-entrypoint-initdb
+ subPath: 01-load-default-sql-files.sh
+ - mountPath: /docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/automated-tests
+ name: mso-mariadb-docker-entrypoint-automated-tests
+ - mountPath: /docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/default
+ name: mso-mariadb-docker-entrypoint-bulkload-default
+ - mountPath: /docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/demo-dns
+ name: mso-mariadb-docker-entrypoint-demo-dns
+ - mountPath: /docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/demo-vfw
+ name: mso-mariadb-docker-entrypoint-demo-vfw
+ - mountPath: /docker-entrypoint-initdb.d/db-sql-scripts/camunda
+ name: mso-mariadb-docker-entrypoint-camunda
+ - mountPath: /docker-entrypoint-initdb.d/db-sql-scripts/main-schemas
+ name: mso-mariadb-docker-entrypoint-main-schemas
- mountPath: /var/lib/mysql
name: mso-mariadb-data
ports:
initialDelaySeconds: 5
periodSeconds: 10
volumes:
- - name: localtime
- hostPath:
- path: /etc/localtime
- name: mso-mariadb-conf
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/mso/mariadb/conf.d
+ configMap:
+ name: mso-confd-configmap
- name: mso-mariadb-docker-entrypoint-initdb
+ configMap:
+ name: mso-docker-entry-initd-configmap
+ - name: mso-mariadb-docker-entrypoint-automated-tests
+ configMap:
+ name: mso-automated-tests-configmap
+ - name: mso-mariadb-docker-entrypoint-bulkload-default
+ configMap:
+ name: mso-bulkload-default-configmap
+ - name: mso-mariadb-docker-entrypoint-demo-dns
+ configMap:
+ name: mso-demo-dns-configmap
+ - name: mso-mariadb-docker-entrypoint-demo-vfw
+ configMap:
+ name: mso-demo-vfw-configmap
+ - name: mso-mariadb-docker-entrypoint-camunda
+ configMap:
+ name: mso-scripts-camunda-configmap
+ - name: mso-mariadb-docker-entrypoint-main-schemas
+ configMap:
+ name: mso-main-schemas-configmap
+ - name: localtime
hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/mso/mariadb/docker-entrypoint-initdb.d
+ path: /etc/localtime
- name: mso-mariadb-data
persistentVolumeClaim:
claimName: mso-db
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }}
\ No newline at end of file
+#{{ end }}
--- /dev/null
+#{{ if not .Values.disableMsoMso }}
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: mso-config-mso-configmap
+ namespace: {{ .Values.nsPrefix }}-mso
+data:
+{{ tpl (.Files.Glob "resources/config/mso/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: mso-docker-file-configmap
+ namespace: {{ .Values.nsPrefix }}-mso
+data:
+{{ tpl (.Files.Glob "resources/config/docker-files/scripts/start-jboss-server.sh").AsConfig . | indent 2 }}
+#{{ end }}
name: mso
namespace: "{{ .Values.nsPrefix }}-mso"
spec:
- replicas: 1
+ replicas: {{ .Values.msoReplicas }}
selector:
matchLabels:
app: mso
- mountPath: /etc/localtime
name: localtime
readOnly: true
- - mountPath: /shared
+ - mountPath: /shared/
name: mso
- mountPath: /tmp/start-jboss-server.sh
name: mso-docker-files
+ subPath: start-jboss-server.sh
- mountPath: /var/log/onap
name: mso-logs
- - mountPath: /var/berks-cookbooks/mso-config/files/default/mso-api-handler-infra-config/logback.apihandler-infra.xml
- name: logback-apihandler-infra
- mountPath: /var/berks-cookbooks/mso-config/files/default/mso-po-adapter-config/logback.network.xml
- name: logback-network
+ name: mso-logback
+ subPath: logback.network.xml
- mountPath: /var/berks-cookbooks/mso-config/files/default/mso-po-adapter-config/logback.tenant.xml
- name: logback-tenant
+ name: mso-logback
+ subPath: logback.tenant.xml
- mountPath: /var/berks-cookbooks/mso-config/files/default/mso-po-adapter-config/logback.vnf.xml
- name: logback-vnf
+ name: mso-logback
+ subPath: logback.vnf.xml
- mountPath: /var/berks-cookbooks/mso-config/files/default/mso-po-adapter-config/logback.vfc.xml
- name: logback-vfc
+ name: mso-logback
+ subPath: logback.vfc.xml
+ - mountPath: /var/berks-cookbooks/mso-config/files/default/mso-api-handler-infra-config/logback.apihandler-infra.xml
+ name: mso-logback
+ subPath: logback.apihandler-infra.xml
- mountPath: /var/berks-cookbooks/mso-config/files/default/mso-appc-adapter-config/logback.appc.xml
- name: logback-appc
+ name: mso-logback
+ subPath: logback.appc.xml
- mountPath: /var/berks-cookbooks/mso-config/files/default/mso-requests-db-adapter-config/logback.msorequestsdbadapter.xml
- name: logback-msorequestsdbadapter
+ name: mso-logback
+ subPath: logback.msorequestsdbadapter.xml
- mountPath: /var/berks-cookbooks/mso-config/files/default/mso-asdc-controller-config/logback.asdc.xml
- name: logback-asdc
+ name: mso-logback
+ subPath: logback.asdc.xml
- mountPath: /var/berks-cookbooks/mso-config/files/default/mso-sdnc-adapter-config/logback.sdnc.xml
- name: logback-sdnc
+ name: mso-logback
+ subPath: logback.sdnc.xml
- mountPath: /var/berks-cookbooks/mso-config/files/default/mso-bpmn-config/logback.bpmn.xml
- name: logback-bpmn
+ name: mso-logback
+ subPath: logback.bpmn.xml
- mountPath: /var/berks-cookbooks/mso-config/files/default/mso-workflow-message-adapter-config/logback.workflow-message-adapter.xml
- name: logback-workflow-message-adapter
+ name: mso-logback
+ subPath: logback.workflow-message-adapter.xml
env:
- name: JBOSS_DEBUG
value: "false"
volumeMounts:
- mountPath: /usr/share/filebeat/filebeat.yml
name: filebeat-conf
+ subPath: filebeat.yml
- mountPath: /var/log/onap
name: mso-logs
- mountPath: /usr/share/filebeat/data
- name: localtime
hostPath:
path: /etc/localtime
- - name: logback-apihandler-infra
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/log/mso/logback.apihandler-infra.xml
- - name: logback-network
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/log/mso/logback.network.xml
- - name: logback-tenant
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/log/mso/logback.tenant.xml
- - name: logback-vnf
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/log/mso/logback.vnf.xml
- - name: logback-vfc
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/log/mso/logback.vfc.xml
- - name: logback-appc
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/log/mso/logback.appc.xml
- - name: logback-msorequestsdbadapter
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/log/mso/logback.msorequestsdbadapter.xml
- - name: logback-asdc
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/log/mso/logback.asdc.xml
- - name: logback-sdnc
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/log/mso/logback.sdnc.xml
- - name: logback-bpmn
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/log/mso/logback.bpmn.xml
- - name: logback-workflow-message-adapter
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/log/mso/logback.workflow-message-adapter.xml
- - name: mso
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/mso/mso
+ - name: mso-logback
+ configMap:
+ name: mso-log-configmap
- name: filebeat-conf
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/log/filebeat/logback/filebeat.yml
+ configMap:
+ name: mso-filebeat-configmap
+ - name: mso
+ configMap:
+ name: mso-config-mso-configmap
+ items:
+ - key: mso-docker.json
+ path: mso-docker.json
+ mode: 0755
+ - key: aai.crt
+ path: aai.crt
+ mode: 0755
+ - key: encryption.key
+ path: encryption.key
+ mode: 0644
- name: mso-logs
emptyDir: {}
- name: mso-data-filebeat
emptyDir: {}
- name: mso-docker-files
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/mso/docker-files/scripts/start-jboss-server.sh
+ configMap:
+ name: mso-docker-file-configmap
+ items:
+ - key: start-jboss-server.sh
+ path: start-jboss-server.sh
+ mode: 0755
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
#{{ end }}
--- /dev/null
+#{{ if not .Values.disableMsoMso }}
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: mso-log-configmap
+ namespace: {{ .Values.nsPrefix }}-mso
+data:
+{{ tpl (.Files.Glob "resources/config/log/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: mso-filebeat-configmap
+ namespace: {{ .Values.nsPrefix }}-mso
+data:
+{{ tpl (.Files.Glob "resources/config/log/filebeat/*").AsConfig . | indent 2 }}
+#{{ end }}
nsPrefix: onap
-pullPolicy: Always
+pullPolicy: Always
nodePortPrefix: 302
+openStackUserName: "vnf_user"
+openStackRegion: "RegionOne"
+openStackKeyStoneUrl: "http://1.2.3.4:5000"
+dmaapTopic: "AUTO"
+openStackServiceTenantName: "service"
+openStackEncryptedPasswordHere: "c124921a3a0efbe579782cde8227681e"
+msoReplicas: 1
+dbReplicas: 1
image:
readiness: oomk8s/readiness-check:1.0.0
mso: nexus3.onap.org:10001/openecomp/mso:v1.1.1
# assign default auth token
if [[ -z $ONAP_DEFAULT_AUTH_TOKEN ]]; then
- DEFAULT_SECRET=`kubectl get secrets -n kube-system | grep default-token | awk '{ print $1}'`
- ONAP_DEFAULT_AUTH_TOKEN=`kubectl get secrets $DEFAULT_SECRET -n kube-system -o yaml | grep 'token:' | awk '{ print $2}' | base64 -d`
+ DEFAULT_SECRET=`kubectl get secrets -n $1-$2 | grep default-token | awk '{ print $1}'`
+ ONAP_DEFAULT_AUTH_TOKEN=`kubectl get secrets $DEFAULT_SECRET -n $1-$2 -o yaml | grep 'token:' | awk '{ print $2}' | base64 --decode`
fi
cmd=`echo helm install $LOCATION/$2/ --name $1-$2 --namespace $1 --set nsPrefix=$1,nodePortPrefix=$3,kubeMasterAuthToken=$ONAP_DEFAULT_AUTH_TOKEN ${HELM_VALUES_ADDITION}`
--- /dev/null
+<!--\r
+ ============LICENSE_START=======================================================\r
+ policy-management\r
+ ================================================================================\r
+ Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.\r
+ ================================================================================\r
+ Licensed under the Apache License, Version 2.0 (the "License");\r
+ you may not use this file except in compliance with the License.\r
+ You may obtain a copy of the License at\r
+\r
+ http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+ Unless required by applicable law or agreed to in writing, software\r
+ distributed under the License is distributed on an "AS IS" BASIS,\r
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ See the License for the specific language governing permissions and\r
+ limitations under the License.\r
+ ============LICENSE_END=========================================================\r
+ -->\r
+\r
+<configuration scan="true" scanPeriod="30 seconds" debug="false">\r
+\r
+ <property name="logDir" value="/var/log/onap" />\r
+\r
+ <property name="errorLog" value="error" />\r
+ <property name="debugLog" value="debug" />\r
+ <property name="networkLog" value="network" />\r
+\r
+ <property name="debugPattern" value="[%date|%level|%logger{0}|%thread] %msg%n" />\r
+ <property name="errorPattern" value="${debugPattern}" />\r
+ <property name="networkPattern" value="[%d|%t]%m%n" />\r
+\r
+ <appender name="ErrorOut" class="ch.qos.logback.core.rolling.RollingFileAppender">\r
+ <file>${logDir}/${errorLog}.log</file>\r
+ <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">\r
+ <fileNamePattern>${logDir}/${errorLog}.%i.log.zip</fileNamePattern>\r
+ <minIndex>1</minIndex>\r
+ <maxIndex>5</maxIndex>\r
+ </rollingPolicy>\r
+ <filter class="ch.qos.logback.classic.filter.ThresholdFilter">\r
+ <level>WARN</level>\r
+ </filter>\r
+ <triggeringPolicy\r
+ class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">\r
+ <maxFileSize>15MB</maxFileSize>\r
+ </triggeringPolicy>\r
+ <encoder>\r
+ <pattern>${errorPattern}</pattern>\r
+ </encoder>\r
+ </appender>\r
+\r
+ <appender name="AsyncErrorOut" class="ch.qos.logback.classic.AsyncAppender">\r
+ <appender-ref ref="ErrorOut" />\r
+ </appender>\r
+\r
+ <appender name="DebugOut" class="ch.qos.logback.core.rolling.RollingFileAppender">\r
+ <file>${logDir}/${debugLog}.log</file>\r
+ <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">\r
+ <fileNamePattern>${logDir}/${debugLog}.%i.log.zip</fileNamePattern>\r
+ <minIndex>1</minIndex>\r
+ <maxIndex>9</maxIndex>\r
+ </rollingPolicy>\r
+ <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">\r
+ <maxFileSize>20MB</maxFileSize>\r
+ </triggeringPolicy>\r
+ <encoder>\r
+ <pattern>${debugPattern}</pattern>\r
+ </encoder>\r
+ </appender>\r
+\r
+ <appender name="AsyncDebugOut" class="ch.qos.logback.classic.AsyncAppender">\r
+ <appender-ref ref="DebugOut" />\r
+ </appender>\r
+\r
+ <appender name="NetworkOut" class="ch.qos.logback.core.rolling.RollingFileAppender">\r
+ <file>${logDir}/${networkLog}.log</file>\r
+ <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">\r
+ <fileNamePattern>${logDir}/${networkLog}.%i.log.zip</fileNamePattern>\r
+ <minIndex>1</minIndex>\r
+ <maxIndex>9</maxIndex>\r
+ </rollingPolicy>\r
+ <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">\r
+ <maxFileSize>15MB</maxFileSize>\r
+ </triggeringPolicy>\r
+ <encoder>\r
+ <pattern>${networkPattern}</pattern>\r
+ </encoder>\r
+ </appender>\r
+\r
+ <appender name="AsyncNetworkOut" class="ch.qos.logback.classic.AsyncAppender">\r
+ <appender-ref ref="NetworkOut" />\r
+ </appender>\r
+\r
+ <logger name="network" level="INFO" additivity="false">\r
+ <appender-ref ref="AsyncNetworkOut" />\r
+ </logger>\r
+\r
+ <logger name="org.eclipse.jetty.server.RequestLog" level="info" additivity="false">\r
+ <appender-ref ref="AsyncNetworkOut" />\r
+ </logger>\r
+\r
+ <root level="INFO">\r
+ <appender-ref ref="AsyncDebugOut" />\r
+ <appender-ref ref="AsyncErrorOut" />\r
+ </root>\r
+\r
+</configuration>
\ No newline at end of file
--- /dev/null
+filebeat.prospectors:
+#it is mandatory, in our case it's log
+- input_type: log
+ #This is the canolical path as mentioned in logback.xml, *.* means it will monitor all files in the directory.
+ paths:
+ - /var/log/onap/*/*/*/*.log
+ - /var/log/onap/*/*/*.log
+ - /var/log/onap/*/*.log
+ #Files older than this should be ignored.In our case it will be 48 hours i.e. 2 days. It is a helping flag for clean_inactive
+ ignore_older: 48h
+ # Remove the registry entry for a file that is more than the specified time. In our case it will be 96 hours, i.e. 4 days. It will help to keep registry records with in limit
+ clean_inactive: 96h
+
+
+# Name of the registry file. If a relative path is used, it is considered relative to the
+# data path. Else full qualified file name.
+#filebeat.registry_file: ${path.data}/registry
+
+
+output.logstash:
+ #List of logstash server ip addresses with port number.
+ #But, in our case, this will be the loadbalancer IP address.
+ #For the below property to work the loadbalancer or logstash should expose 5044 port to listen the filebeat events or port in the property should be changed appropriately.
+ hosts: ["logstash.onap-log:5044"]
+ #If enable will do load balancing among availabe Logstash, automatically.
+ loadbalance: true
+
+ #The list of root certificates for server verifications.
+ #If certificate_authorities is empty or not set, the trusted
+ #certificate authorities of the host system are used.
+ #ssl.certificate_authorities: $ssl.certificate_authorities
+
+ #The path to the certificate for SSL client authentication. If the certificate is not specified,
+ #client authentication is not available.
+ #ssl.certificate: $ssl.certificate
+
+ #The client certificate key used for client authentication.
+ #ssl.key: $ssl.key
+
+ #The passphrase used to decrypt an encrypted key stored in the configured key file
+ #ssl.key_passphrase: $ssl.key_passphrase
# Telemetry credentials
ENGINE_MANAGEMENT_PORT=9696
-ENGINE_MANAGEMENT_HOST=localhost
+ENGINE_MANAGEMENT_HOST=0.0.0.0
ENGINE_MANAGEMENT_USER=@1b3rt
ENGINE_MANAGEMENT_PASSWORD=31nst31n
PDP_HOST=pdp.onap-policy
PDP_USERNAME=testpdp
PDP_PASSWORD=alpha123
+PDP_CLIENT_USERNAME=python
+PDP_CLIENT_PASSWORD=test
+PDP_ENVIRONMENT=TEST
# DCAE DMaaP
-DCAE_TOPIC=unauthenticated.TCA_EVENT_OUTPUT
-DCAE_SERVERS=dcae-controller.onap-dcae
+DCAE_TOPIC=unauthenticated.DCAE_CL_OUTPUT
+DCAE_SERVERS=dmaap.onap-message-router
# Open DMaaP
DMAAP_SERVERS=dmaap.onap-message-router
+
+# AAI
+
+AAI_URL=https://aai.api.simpledemo.openecomp.org:8443
+AAI_USERNAME=POLICY
+AAI_PASSWORD=POLICY
+
+# MSO
+
+SO_URL=http://mso.onap-mso:8080/ecomp/mso/infra
+SO_USERNAME=InfraPortalClient
+SO_PASSWORD=password1$
+
+# VFC
+
+VFC_URL=
+VFC_USERNAME=
+VFC_PASSWORD=
\ No newline at end of file
if [ ! -f "${DEP}" ]; then
echo "warning: configuration does not exist: ${DEP}"
else
- sed -i -e "s/\"version\":.*/\"version\": \"${version}\"/g" "${DEP}"
+ sed -i -e "s/\"version\":.*-SNAPSHOT\"/\"version\": \"${version}\"/g" "${DEP}"
fi
done
groupID=org.onap.policy-engine
artifactID=drlPDPGroup
-VFW_GROUP_ID=org.onap.policy-engine.drools.vFW
-VFW_ARTIFACT_ID=policy-vFW-rules
-VDNS_GROUP_ID=org.onap.policy-engine.drools.vDNS
-VDNS_ARTIFACT_ID=policy-vDNS-rules
-
+AMSTERDAM_GROUP_ID=org.onap.policy-engine.drools.amsterdam
+AMSTERDAM_ARTIFACT_ID=policy-amsterdam-rules
# the java property is RESOURCE_NAME (uppercase), but the conf parameter is lowercase
resource_name=brmsgw_1
BRMS_UEB_API_SECRET=
#Dependency.json file version
-BRMS_DEPENDENCY_VERSION=1.1.0-SNAPSHOT
+BRMS_DEPENDENCY_VERSION=1.2.0
#-----------------------ONAP-PORTAL-Properties----------------------
ONAP_REDIRECT_URL=http://portalapps.onap-portal:8989/ONAPPORTAL/login.htm
-ONAP_REST_URL=
+ONAP_REST_URL=http://portalapps.onap-portal:8989/ONAPPORTAL/auxapi
ONAP_UEB_URL_LIST=
ONAP_PORTAL_INBOX_NAME=
ONAP_UEB_APP_KEY=
#Required only, when we use AAF
POLICY_AAF_NAMESPACE=
POLICY_AAF_RESOURCE=
+
+# Indeterminate resolution
+DECISION_INDETERMINATE_RESPONSE=PERMIT
\ No newline at end of file
--- /dev/null
+#! /bin/bash
+
+# forked from https://gerrit.onap.org/r/gitweb?p=policy/docker.git;a=blob;f=config/pe/push-policies.sh;h=555ab357e6b4f54237bf07ef5e6777d782564bc0;hb=refs/heads/amsterdam and adapted for OOM
+
+#########################################Upload BRMS Param Template##########################################
+
+echo "Upload BRMS Param Template"
+
+sleep 2
+
+wget -O cl-amsterdam-template.drl https://git.onap.org/policy/drools-applications/plain/controlloop/templates/archetype-cl-amsterdam/src/main/resources/archetype-resources/src/main/resources/__closedLoopControlName__.drl
+
+sleep 2
+
+curl -v --silent -X POST --header 'Content-Type: multipart/form-data' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -F "file=@cl-amsterdam-template.drl" -F "importParametersJson={\"serviceName\":\"ClosedLoopControlName\",\"serviceType\":\"BRMSPARAM\"}" 'http://pdp.onap-policy:8081/pdp/api/policyEngineImport'
+
+echo "PRELOAD_POLICIES is $PRELOAD_POLICIES"
+
+if [ "$PRELOAD_POLICIES" == "false" ]; then
+ exit 0
+fi
+
+#########################################Create BRMS Param policies##########################################
+
+echo "Create BRMSParam Operational Policies"
+
+sleep 2
+
+echo "Create BRMSParamvFirewall Policy"
+curl -v --silent -X PUT --header 'Content-Type: application/json' --header 'Accept: text/html' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{
+ "policyConfigType": "BRMS_PARAM",
+ "policyName": "com.BRMSParamvFirewall",
+ "policyDescription": "BRMS Param vFirewall policy",
+ "policyScope": "com",
+ "attributes": {
+ "MATCHING": {
+ "controller" : "amsterdam"
+ },
+ "RULE": {
+ "templateName": "ClosedLoopControlName",
+ "closedLoopControlName": "ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a",
+ "controlLoopYaml": "controlLoop%3A%0D%0A++version%3A+2.0.0%0D%0A++controlLoopName%3A+ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a%0D%0A++trigger_policy%3A+unique-policy-id-1-modifyConfig%0D%0A++timeout%3A+1200%0D%0A++abatement%3A+false%0D%0A+%0D%0Apolicies%3A%0D%0A++-+id%3A+unique-policy-id-1-modifyConfig%0D%0A++++name%3A+modify+packet+gen+config%0D%0A++++description%3A%0D%0A++++actor%3A+APPC%0D%0A++++recipe%3A+ModifyConfig%0D%0A++++target%3A%0D%0A++++++%23+TBD+-+Cannot+be+known+until+instantiation+is+done%0D%0A++++++resourceID%3A+Eace933104d443b496b8.nodes.heat.vpg%0D%0A++++++type%3A+VNF%0D%0A++++retry%3A+0%0D%0A++++timeout%3A+300%0D%0A++++success%3A+final_success%0D%0A++++failure%3A+final_failure%0D%0A++++failure_timeout%3A+final_failure_timeout%0D%0A++++failure_retries%3A+final_failure_retries%0D%0A++++failure_exception%3A+final_failure_exception%0D%0A++++failure_guard%3A+final_failure_guard"
+ }
+ }
+}' 'http://pdp.onap-policy:8081/pdp/api/createPolicy'
+
+sleep 2
+
+echo "Create BRMSParamvDNS Policy"
+curl -v --silent -X PUT --header 'Content-Type: application/json' --header 'Accept: text/html' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{
+ "policyConfigType": "BRMS_PARAM",
+ "policyName": "com.BRMSParamvDNS",
+ "policyDescription": "BRMS Param vDNS policy",
+ "policyScope": "com",
+ "attributes": {
+ "MATCHING": {
+ "controller" : "amsterdam"
+ },
+ "RULE": {
+ "templateName": "ClosedLoopControlName",
+ "closedLoopControlName": "ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3",
+ "controlLoopYaml": "controlLoop%3A%0D%0A++version%3A+2.0.0%0D%0A++controlLoopName%3A+ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3%0D%0A++trigger_policy%3A+unique-policy-id-1-scale-up%0D%0A++timeout%3A+1200%0D%0A++abatement%3A+false%0D%0Apolicies%3A%0D%0A++-+id%3A+unique-policy-id-1-scale-up%0D%0A++++name%3A+Create+a+new+VF+Module%0D%0A++++description%3A%0D%0A++++actor%3A+SO%0D%0A++++recipe%3A+VF+Module+Create%0D%0A++++target%3A%0D%0A++++++type%3A+VNF%0D%0A++++retry%3A+0%0D%0A++++timeout%3A+1200%0D%0A++++success%3A+final_success%0D%0A++++failure%3A+final_failure%0D%0A++++failure_timeout%3A+final_failure_timeout%0D%0A++++failure_retries%3A+final_failure_retries%0D%0A++++failure_exception%3A+final_failure_exception%0D%0A++++failure_guard%3A+final_failure_guard"
+ }
+ }
+}' 'http://pdp.onap-policy:8081/pdp/api/createPolicy'
+
+sleep 2
+
+echo "Create BRMSParamVOLTE Policy"
+curl -v --silent -X PUT --header 'Content-Type: application/json' --header 'Accept: text/html' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{
+ "policyConfigType": "BRMS_PARAM",
+ "policyName": "com.BRMSParamVOLTE",
+ "policyDescription": "BRMS Param VOLTE policy",
+ "policyScope": "com",
+ "attributes": {
+ "MATCHING": {
+ "controller" : "amsterdam"
+ },
+ "RULE": {
+ "templateName": "ClosedLoopControlName",
+ "closedLoopControlName": "ControlLoop-VOLTE-2179b738-fd36-4843-a71a-a8c24c70c55b",
+ "controlLoopYaml": "controlLoop%3A%0D%0A++version%3A+2.0.0%0D%0A++controlLoopName%3A+ControlLoop-VOLTE-2179b738-fd36-4843-a71a-a8c24c70c55b%0D%0A++trigger_policy%3A+unique-policy-id-1-restart%0D%0A++timeout%3A+3600%0D%0A++abatement%3A+false%0D%0A+%0D%0Apolicies%3A%0D%0A++-+id%3A+unique-policy-id-1-restart%0D%0A++++name%3A+Restart+the+VM%0D%0A++++description%3A%0D%0A++++actor%3A+VFC%0D%0A++++recipe%3A+Restart%0D%0A++++target%3A%0D%0A++++++type%3A+VM%0D%0A++++retry%3A+3%0D%0A++++timeout%3A+1200%0D%0A++++success%3A+final_success%0D%0A++++failure%3A+final_failure%0D%0A++++failure_timeout%3A+final_failure_timeout%0D%0A++++failure_retries%3A+final_failure_retries%0D%0A++++failure_exception%3A+final_failure_exception%0D%0A++++failure_guard%3A+final_failure_guard"
+ }
+ }
+}' 'http://pdp.onap-policy:8081/pdp/api/createPolicy'
+
+sleep 2
+
+echo "Create BRMSParamvCPE Policy"
+curl -v --silent -X PUT --header 'Content-Type: application/json' --header 'Accept: text/html' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{
+ "policyConfigType": "BRMS_PARAM",
+ "policyName": "com.BRMSParamvCPE",
+ "policyDescription": "BRMS Param vCPE policy",
+ "policyScope": "com",
+ "attributes": {
+ "MATCHING": {
+ "controller" : "amsterdam"
+ },
+ "RULE": {
+ "templateName": "ClosedLoopControlName",
+ "closedLoopControlName": "ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e",
+ "controlLoopYaml": "controlLoop%3A%0D%0A++version%3A+2.0.0%0D%0A++controlLoopName%3A+ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e%0D%0A++trigger_policy%3A+unique-policy-id-1-restart%0D%0A++timeout%3A+3600%0D%0A++abatement%3A+true%0D%0A+%0D%0Apolicies%3A%0D%0A++-+id%3A+unique-policy-id-1-restart%0D%0A++++name%3A+Restart+the+VM%0D%0A++++description%3A%0D%0A++++actor%3A+APPC%0D%0A++++recipe%3A+Restart%0D%0A++++target%3A%0D%0A++++++type%3A+VM%0D%0A++++retry%3A+3%0D%0A++++timeout%3A+1200%0D%0A++++success%3A+final_success%0D%0A++++failure%3A+final_failure%0D%0A++++failure_timeout%3A+final_failure_timeout%0D%0A++++failure_retries%3A+final_failure_retries%0D%0A++++failure_exception%3A+final_failure_exception%0D%0A++++failure_guard%3A+final_failure_guard"
+ }
+ }
+}' 'http://pdp.onap-policy:8081/pdp/api/createPolicy'
+
+#########################################Create Micro Service Config policies##########################################
+
+echo "Create MicroService Config Policies"
+
+sleep 2
+
+echo "Create MicroServicevFirewall Policy"
+curl -v --silent -X PUT --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{
+ "configBody": "{ \"service\": \"tca_policy\", \"location\": \"SampleServiceLocation\", \"uuid\": \"test\", \"policyName\": \"MicroServicevFirewall\", \"description\": \"MicroService vFirewall Policy\", \"configName\": \"SampleConfigName\", \"templateVersion\": \"OpenSource.version.1\", \"version\": \"1.1.0\", \"priority\": \"1\", \"policyScope\": \"resource=SampleResource,service=SampleService,type=SampleType,closedLoopControlName=ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a\", \"riskType\": \"SampleRiskType\", \"riskLevel\": \"1\", \"guard\": \"False\", \"content\": { \"tca_policy\": { \"domain\": \"measurementsForVfScaling\", \"metricsPerEventName\": [{ \"eventName\": \"vFirewallBroadcastPackets\", \"controlLoopSchemaType\": \"VNF\", \"policyScope\": \"DCAE\", \"policyName\": \"DCAE.Config_tca-hi-lo\", \"policyVersion\": \"v0.0.1\", \"thresholds\": [{ \"closedLoopControlName\": \"ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a\", \"version\": \"1.0.2\", \"fieldPath\": \"$.event.measurementsForVfScalingFields.vNicUsageArray[*].receivedTotalPacketsDelta\", \"thresholdValue\": 300, \"direction\": \"LESS_OR_EQUAL\", \"severity\": \"MAJOR\", \"closedLoopEventStatus\": \"ONSET\" }, { \"closedLoopControlName\": \"ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a\", \"version\": \"1.0.2\", \"fieldPath\": \"$.event.measurementsForVfScalingFields.vNicUsageArray[*].receivedTotalPacketsDelta\", \"thresholdValue\": 700, \"direction\": \"GREATER_OR_EQUAL\", \"severity\": \"CRITICAL\", \"closedLoopEventStatus\": \"ONSET\" } ] }] } } }",
+ "policyConfigType": "MicroService",
+ "policyName": "com.MicroServicevFirewall",
+ "onapName": "DCAE"
+}' 'http://pdp.onap-policy:8081/pdp/api/createPolicy'
+
+
+sleep 2
+
+echo "Create MicroServicevDNS Policy"
+curl -v --silent -X PUT --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{
+ "configBody": "{ \"service\": \"tca_policy\", \"location\": \"SampleServiceLocation\", \"uuid\": \"test\", \"policyName\": \"MicroServicevDNS\", \"description\": \"MicroService vDNS Policy\", \"configName\": \"SampleConfigName\", \"templateVersion\": \"OpenSource.version.1\", \"version\": \"1.1.0\", \"priority\": \"1\", \"policyScope\": \"resource=SampleResource,service=SampleService,type=SampleType,closedLoopControlName=ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3\", \"riskType\": \"SampleRiskType\", \"riskLevel\": \"1\", \"guard\": \"False\", \"content\": { \"tca_policy\": { \"domain\": \"measurementsForVfScaling\", \"metricsPerEventName\": [{ \"eventName\": \"vLoadBalancer\", \"controlLoopSchemaType\": \"VM\", \"policyScope\": \"DCAE\", \"policyName\": \"DCAE.Config_tca-hi-lo\", \"policyVersion\": \"v0.0.1\", \"thresholds\": [{ \"closedLoopControlName\": \"ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3\", \"version\": \"1.0.2\", \"fieldPath\": \"$.event.measurementsForVfScalingFields.vNicUsageArray[*].receivedTotalPacketsDelta\", \"thresholdValue\": 300, \"direction\": \"GREATER_OR_EQUAL\", \"severity\": \"CRITICAL\", \"closedLoopEventStatus\": \"ONSET\" }] }] } } }",
+ "policyConfigType": "MicroService",
+ "policyName": "com.MicroServicevDNS",
+ "onapName": "DCAE"
+}' 'http://pdp.onap-policy:8081/pdp/api/createPolicy'
+
+
+sleep 2
+
+echo "Create MicroServicevCPE Policy"
+curl -v --silent -X PUT --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{
+ "configBody": "{ \"service\": \"tca_policy\", \"location\": \"SampleServiceLocation\", \"uuid\": \"test\", \"policyName\": \"MicroServicevCPE\", \"description\": \"MicroService vCPE Policy\", \"configName\": \"SampleConfigName\", \"templateVersion\": \"OpenSource.version.1\", \"version\": \"1.1.0\", \"priority\": \"1\", \"policyScope\": \"resource=SampleResource,service=SampleService,type=SampleType,closedLoopControlName=ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e\", \"riskType\": \"SampleRiskType\", \"riskLevel\": \"1\", \"guard\": \"False\", \"content\": { \"tca_policy\": { \"domain\": \"measurementsForVfScaling\", \"metricsPerEventName\": [{ \"eventName\": \"Measurement_vGMUX\", \"controlLoopSchemaType\": \"VNF\", \"policyScope\": \"DCAE\", \"policyName\": \"DCAE.Config_tca-hi-lo\", \"policyVersion\": \"v0.0.1\", \"thresholds\": [{ \"closedLoopControlName\": \"ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e\", \"version\": \"1.0.2\", \"fieldPath\": \"$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value\", \"thresholdValue\": 0, \"direction\": \"EQUAL\", \"severity\": \"MAJOR\", \"closedLoopEventStatus\": \"ABATED\" }, { \"closedLoopControlName\": \"ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e\", \"version\": \"1.0.2\", \"fieldPath\": \"$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value\", \"thresholdValue\": 0, \"direction\": \"GREATER\", \"severity\": \"CRITICAL\", \"closedLoopEventStatus\": \"ONSET\" }] }] } } }",
+ "policyConfigType": "MicroService",
+ "policyName": "com.MicroServicevCPE",
+ "onapName": "DCAE"
+}' 'http://pdp.onap-policy:8081/pdp/api/createPolicy'
+
+
+#########################################Creating Decision Guard policy#########################################
+
+sleep 2
+
+echo "Creating Decision Guard policy"
+curl -v --silent -X PUT --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{
+ "policyClass": "Decision",
+ "policyName": "com.AllPermitGuard",
+ "policyDescription": "Testing all Permit YAML Guard Policy",
+ "ecompName": "PDPD",
+ "ruleProvider": "GUARD_YAML",
+ "attributes": {
+ "MATCHING": {
+ "actor": ".*",
+ "recipe": ".*",
+ "targets": ".*",
+ "clname": ".*",
+ "limit": "10",
+ "timeWindow": "1",
+ "timeUnits": "minute",
+ "guardActiveStart": "00:00:01-05:00",
+ "guardActiveEnd": "00:00:00-05:00"
+ }
+ }
+}' 'http://pdp.onap-policy:8081/pdp/api/createPolicy'
+
+#########################################Push Decision policy#########################################
+
+sleep 2
+
+echo "Push Decision policy"
+curl -v --silent -X PUT --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{
+ "pdpGroup": "default",
+ "policyName": "com.AllPermitGuard",
+ "policyType": "DECISION"
+}' 'http://pdp.onap-policy:8081/pdp/api/pushPolicy'
+
+#########################################Pushing BRMS Param policies##########################################
+
+echo "Pushing BRMSParam Operational policies"
+
+sleep 2
+
+echo "pushPolicy : PUT : com.BRMSParamvFirewall"
+curl -v --silent -X PUT --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{
+ "pdpGroup": "default",
+ "policyName": "com.BRMSParamvFirewall",
+ "policyType": "BRMS_Param"
+}' 'http://pdp.onap-policy:8081/pdp/api/pushPolicy'
+
+sleep 2
+
+echo "pushPolicy : PUT : com.BRMSParamvDNS"
+curl -v --silent -X PUT --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{
+ "pdpGroup": "default",
+ "policyName": "com.BRMSParamvDNS",
+ "policyType": "BRMS_Param"
+}' 'http://pdp.onap-policy:8081/pdp/api/pushPolicy'
+
+sleep 2
+
+echo "pushPolicy : PUT : com.BRMSParamVOLTE"
+curl -v --silent -X PUT --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{
+ "pdpGroup": "default",
+ "policyName": "com.BRMSParamVOLTE",
+ "policyType": "BRMS_Param"
+}' 'http://pdp.onap-policy:8081/pdp/api/pushPolicy'
+
+sleep 2
+
+echo "pushPolicy : PUT : com.BRMSParamvCPE"
+curl -v --silent -X PUT --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{
+ "pdpGroup": "default",
+ "policyName": "com.BRMSParamvCPE",
+ "policyType": "BRMS_Param"
+}' 'http://pdp.onap-policy:8081/pdp/api/pushPolicy'
+
+#########################################Pushing MicroService Config policies##########################################
+
+echo "Pushing MicroService Config policies"
+
+sleep 2
+
+echo "pushPolicy : PUT : com.MicroServicevFirewall"
+curl -v --silent -X PUT --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{
+ "pdpGroup": "default",
+ "policyName": "com.MicroServicevFirewall",
+ "policyType": "MicroService"
+}' 'http://pdp.onap-policy:8081/pdp/api/pushPolicy'
+
+sleep 10
+
+echo "pushPolicy : PUT : com.MicroServicevDNS"
+curl -v --silent -X PUT --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{
+ "pdpGroup": "default",
+ "policyName": "com.MicroServicevDNS",
+ "policyType": "MicroService"
+}' 'http://pdp.onap-policy:8081/pdp/api/pushPolicy'
+
+sleep 10
+
+echo "pushPolicy : PUT : com.MicroServicevCPE"
+curl -v --silent -X PUT --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{
+ "pdpGroup": "default",
+ "policyName": "com.MicroServicevCPE",
+ "policyType": "MicroService"
+}' 'http://pdp.onap-policy:8081/pdp/api/pushPolicy'
\ No newline at end of file
--- /dev/null
+#!/bin/bash
+
+if [ "$#" -ne 4 ]; then
+ echo "Usage: $(basename $0) <k8s-host> <policy-pdp-node-port> <policy-drools-node-port> <resource-id>"
+ exit 1
+fi
+
+K8S_HOST=$1
+POLICY_PDP_PORT=$2
+POLICY_DROOLS_PORT=$3
+RESOURCE_ID=$4
+
+echo
+echo
+echo "Removing the vFW Policy from PDP.."
+echo
+echo
+
+curl -v -X DELETE --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{
+ "pdpGroup": "default",
+ "policyComponent" : "PDP",
+ "policyName": "com.BRMSParamvFirewall",
+ "policyType": "BRMS_Param"
+}' http://${K8S_HOST}:${POLICY_PDP_PORT}/pdp/api/deletePolicy
+
+sleep 20
+
+echo
+
+echo
+echo "Updating vFW Operational Policy .."
+echo
+
+curl -v -X PUT --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{
+ "policyConfigType": "BRMS_PARAM",
+ "policyName": "com.BRMSParamvFirewall",
+ "policyDescription": "BRMS Param vFirewall policy",
+ "policyScope": "com",
+ "attributes": {
+ "MATCHING": {
+ "controller": "amsterdam"
+ },
+ "RULE": {
+ "templateName": "ClosedLoopControlName",
+ "closedLoopControlName": "ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a",
+ "controlLoopYaml": "controlLoop%3A%0D%0A++version%3A+2.0.0%0D%0A++controlLoopName%3A+ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a%0D%0A++trigger_policy%3A+unique-policy-id-1-modifyConfig%0D%0A++timeout%3A+1200%0D%0A++abatement%3A+false%0D%0A+%0D%0Apolicies%3A%0D%0A++-+id%3A+unique-policy-id-1-modifyConfig%0D%0A++++name%3A+modify+packet+gen+config%0D%0A++++description%3A%0D%0A++++actor%3A+APPC%0D%0A++++recipe%3A+ModifyConfig%0D%0A++++target%3A%0D%0A++++++%23+TBD+-+Cannot+be+known+until+instantiation+is+done%0D%0A++++++resourceID%3A+'${RESOURCE_ID}'%0D%0A++++++type%3A+VNF%0D%0A++++retry%3A+0%0D%0A++++timeout%3A+300%0D%0A++++success%3A+final_success%0D%0A++++failure%3A+final_failure%0D%0A++++failure_timeout%3A+final_failure_timeout%0D%0A++++failure_retries%3A+final_failure_retries%0D%0A++++failure_exception%3A+final_failure_exception%0D%0A++++failure_guard%3A+final_failure_guard"
+ }
+ }
+}' http://${K8S_HOST}:${POLICY_PDP_PORT}/pdp/api/updatePolicy
+
+sleep 5
+
+echo
+echo
+echo "Pushing the vFW Policy .."
+echo
+echo
+
+curl -v --silent -X PUT --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{
+ "pdpGroup": "default",
+ "policyName": "com.BRMSParamvFirewall",
+ "policyType": "BRMS_Param"
+}' http://${K8S_HOST}:${POLICY_PDP_PORT}/pdp/api/pushPolicy
+
+sleep 20
+
+echo
+echo
+echo "Restarting PDP-D .."
+echo
+echo
+
+POD=$(kubectl --namespace onap-policy get pods | sed 's/ .*//'| grep drools)
+kubectl --namespace onap-policy exec -it ${POD} -- bash -c "source /opt/app/policy/etc/profile.d/env.sh && policy stop && sleep 5 && policy start"
+
+sleep 20
+
+echo
+echo
+echo "PDP-D amsterdam maven coordinates .."
+echo
+echo
+
+curl -vvv --silent --user @1b3rt:31nst31n -X GET http://${K8S_HOST}:${POLICY_DROOLS_PORT}/policy/pdp/engine/controllers/amsterdam/drools | python -m json.tool
+
+
+echo
+echo
+echo "PDP-D control loop updated .."
+echo
+echo
+
+curl -v --silent --user @1b3rt:31nst31n -X GET http://${K8S_HOST}:${POLICY_DROOLS_PORT}/policy/pdp/engine/controllers/amsterdam/drools/facts/closedloop-amsterdam/org.onap.policy.controlloop.Params | python -m json.tool
- name: "drools-port"
port: 6969
nodePort: {{ .Values.nodePortPrefix }}17
+ - name: "drools-port2"
+ port: 9696
+ nodePort: {{ .Values.nodePortPrefix }}21
selector:
app: drools
type: NodePort
selector:
app: brmsgw
type: NodePort
-#{{ end }}
\ No newline at end of file
+#{{ end }}
- /root/ready.py
args:
- --container-name
- - mariadb
- - --container-name
- - nexus
- - --container-name
- pap
- - --container-name
- - pdp
env:
- name: NAMESPACE
valueFrom:
hostPath:
path: /etc/localtime
- name: pe
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/policy/opt/policy/config/pe/
+ configMap:
+ name: policy-dep-pe-configmap
+ defaultMode: 0755
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
#{{ end }}
- mariadb
- --container-name
- nexus
- - --container-name
- - pap
- - --container-name
- - pdp
- - --container-name
- - brmsgw
env:
- name: NAMESPACE
valueFrom:
image: "{{ .Values.image.readiness }}:{{ .Values.image.readinessVersion }}"
imagePullPolicy: {{ .Values.pullPolicy }}
name: drools-readiness
+ hostAliases:
+ - ip: "{{ .Values.aaiServiceClusterIp }}"
+ hostnames:
+ - "aai.api.simpledemo.openecomp.org"
containers:
- command:
- /bin/bash
name: drools
- mountPath: /usr/share/maven/conf/settings.xml
name: drools-settingsxml
+ subPath: settings.xml
- mountPath: /var/log/onap
name: policy-logs
- mountPath: /tmp/logback.xml
name: policy-logback
+ subPath: logback.xml
lifecycle:
postStart:
exec:
volumeMounts:
- mountPath: /usr/share/filebeat/filebeat.yml
name: filebeat-conf
+ subPath: filebeat.yml
- mountPath: /var/log/onap
name: policy-logs
- mountPath: /usr/share/filebeat/data
hostPath:
path: /etc/localtime
- name: filebeat-conf
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/log/filebeat/logback/filebeat.yml
+ configMap:
+ name: policy-filebeat-configmap
- name: policy-logs
emptyDir: {}
- name: policy-data-filebeat
emptyDir: {}
- name: policy-logback
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/log/policy/drools/logback.xml
+ configMap:
+ name: policy-drools-log-configmap
- name: drools-settingsxml
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/policy/drools/settings.xml
+ configMap:
+ name: policy-dep-drools-settings-configmap
- name: drools
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/policy/opt/policy/config/drools/
+ secret:
+ secretName: policy-dep-drools-secret
+ items:
+ - key: policy-keystore
+ path: policy-keystore
+ mode: 0644
+ - key: feature-healthcheck.conf
+ path: feature-healthcheck.conf
+ mode: 0644
+ - key: base.conf
+ path: base.conf
+ mode: 0755
+ - key: policy-management.conf
+ path: policy-management.conf
+ mode: 0755
+ - key: drools-tweaks.sh
+ path: drools-tweaks.sh
+ mode: 0755
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
#{{ end }}
- mountPath: /etc/localtime
name: localtime
readOnly: true
- - mountPath: /var/lib/mysql
- name: policy-mariadb-data
readinessProbe:
tcpSocket:
port: 3306
- name: localtime
hostPath:
path: /etc/localtime
- - name: policy-mariadb-data
- persistentVolumeClaim:
- claimName: policy-db
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
#{{ end }}
\ No newline at end of file
- /root/ready.py
args:
- --container-name
- - nexus
- - --container-name
- mariadb
env:
- name: NAMESPACE
image: "{{ .Values.image.policyPe }}:{{ .Values.image.policyPeVersion }}"
imagePullPolicy: {{ .Values.pullPolicy }}
name: pap
+ env:
+ - name: PRELOAD_POLICIES
+ value: "true"
ports:
- containerPort: 8443
- containerPort: 9091
name: policy-logs
- mountPath: /tmp/policy-install/logback.xml
name: policy-sdk-logback
+ subPath: logback.xml
- mountPath: /tmp/logback.xml
name: policy-logback
+ subPath: logback.xml
lifecycle:
postStart:
exec:
volumeMounts:
- mountPath: /usr/share/filebeat/filebeat.yml
name: filebeat-conf
+ subPath: filebeat.yml
- mountPath: /var/log/onap
name: policy-logs
- mountPath: /usr/share/filebeat/data
hostPath:
path: /etc/localtime
- name: filebeat-conf
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/log/filebeat/logback/filebeat.yml
+ configMap:
+ name: policy-filebeat-configmap
- name: policy-logs
emptyDir: {}
- name: policy-data-filebeat
emptyDir: {}
- name: policy-logback
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/log/policy/xacml-pap-rest/logback.xml
+ configMap:
+ name: policy-pap-log-configmap
- name: policy-sdk-logback
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/log/policy/ep_sdk_app/logback.xml
+ configMap:
+ name: policy-sdk-log-configmap
- name: pe
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/policy/opt/policy/config/pe/
+ configMap:
+ name: policy-dep-pe-configmap
+ defaultMode: 0755
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
#{{ end }}
- /root/ready.py
args:
- --container-name
- - mariadb
- - --container-name
- - nexus
- - --container-name
- pap
env:
- name: NAMESPACE
name: policy-logs
- mountPath: /tmp/logback.xml
name: policy-logback
+ subPath: logback.xml
lifecycle:
postStart:
exec:
volumeMounts:
- mountPath: /usr/share/filebeat/filebeat.yml
name: filebeat-conf
+ subPath: filebeat.yml
- mountPath: /var/log/onap
name: policy-logs
- mountPath: /usr/share/filebeat/data
hostPath:
path: /etc/localtime
- name: filebeat-conf
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/log/filebeat/logback/filebeat.yml
+ configMap:
+ name: policy-filebeat-configmap
- name: policy-logs
emptyDir: {}
- name: policy-data-filebeat
emptyDir: {}
- name: policy-logback
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/log/policy/xacml-pdp-rest/logback.xml
+ configMap:
+ name: policy-pdp-log-configmap
- name: pe
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/policy/opt/policy/config/pe/
+ configMap:
+ name: policy-dep-pe-configmap
+ defaultMode: 0755
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
#{{ end }}
--- /dev/null
+#{{ if not .Values.disablePolicyDrools }}
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: policy-dep-drools-settings-configmap
+ namespace: {{ .Values.nsPrefix }}-policy
+data:
+{{ (.Files.Glob "resources/config/drools/settings.xml").AsConfig | indent 2 }}
+#{{ end }}
+---
+#{{ if not .Values.disablePolicyPdp }}
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: policy-dep-pe-configmap
+ namespace: {{ .Values.nsPrefix }}-policy
+data:
+{{ (.Files.Glob "resources/config/opt/policy/config/pe/*").AsConfig | indent 2 }}
+#{{ end }}
--- /dev/null
+#{{ if not .Values.disablePolicyDrools }}
+apiVersion: v1
+kind: Secret
+metadata:
+ name: policy-dep-drools-secret
+ namespace: {{ .Values.nsPrefix }}-policy
+type: Opaque
+data:
+{{ tpl (.Files.Glob "resources/config/opt/policy/config/drools/*").AsSecrets . | indent 2 }}
+#{{ end }}
--- /dev/null
+#{{ if not .Values.disablePolicyPap }}
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: policy-pap-log-configmap
+ namespace: {{ .Values.nsPrefix }}-policy
+data:
+{{ (.Files.Glob "resources/config/log/xacml-pap-rest/*").AsConfig | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: policy-sdk-log-configmap
+ namespace: {{ .Values.nsPrefix }}-policy
+data:
+{{ (.Files.Glob "resources/config/log/ep_sdk_app/*").AsConfig | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: policy-filebeat-configmap
+ namespace: {{ .Values.nsPrefix }}-policy
+data:
+{{ (.Files.Glob "resources/config/log/filebeat/*").AsConfig | indent 2 }}
+#{{ end }}
+#{{ if not .Values.disablePolicyPdp }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: policy-pdp-log-configmap
+ namespace: {{ .Values.nsPrefix }}-policy
+data:
+{{ (.Files.Glob "resources/config/log/xacml-pdp-rest/*").AsConfig | indent 2 }}
+#{{ end }}
+#{{ if not .Values.disablePolicyDrools }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: policy-drools-log-configmap
+ namespace: {{ .Values.nsPrefix }}-policy
+data:
+{{ (.Files.Glob "resources/config/log/drools/*").AsConfig | indent 2 }}
+#{{ end }}
+++ /dev/null
-#{{ if not .Values.disablePolicyMariadb }}
-apiVersion: v1
-kind: PersistentVolume
-metadata:
- name: "{{ .Values.nsPrefix }}-policy-db"
- namespace: "{{ .Values.nsPrefix }}-policy"
- labels:
- name: "{{ .Values.nsPrefix }}-policy-db"
-spec:
- capacity:
- storage: 2Gi
- accessModes:
- - ReadWriteMany
- persistentVolumeReclaimPolicy: Retain
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/policy/mariadb/data/
----
-kind: PersistentVolumeClaim
-apiVersion: v1
-metadata:
- name: policy-db
- namespace: "{{ .Values.nsPrefix }}-policy"
-spec:
- accessModes:
- - ReadWriteMany
- resources:
- requests:
- storage: 2Gi
- selector:
- matchLabels:
- name: "{{ .Values.nsPrefix }}-policy-db"
-#{{ end }}
\ No newline at end of file
nsPrefix: onap
pullPolicy: Always
nodePortPrefix: 302
+
+# POLICY hotfix - Note this must be temporary
+# See https://jira.onap.org/browse/POLICY-510
+aaiServiceClusterIp: 10.43.255.254
+
image:
readiness: oomk8s/readiness-check
readinessVersion: 1.0.0
--- /dev/null
+filebeat.prospectors:
+#it is mandatory, in our case it's log
+- input_type: log
+ #This is the canolical path as mentioned in logback.xml, *.* means it will monitor all files in the directory.
+ paths:
+ - /var/log/onap/*/*/*/*.log
+ - /var/log/onap/*/*/*.log
+ - /var/log/onap/*/*.log
+ #Files older than this should be ignored.In our case it will be 48 hours i.e. 2 days. It is a helping flag for clean_inactive
+ ignore_older: 48h
+ # Remove the registry entry for a file that is more than the specified time. In our case it will be 96 hours, i.e. 4 days. It will help to keep registry records with in limit
+ clean_inactive: 96h
+
+
+# Name of the registry file. If a relative path is used, it is considered relative to the
+# data path. Else full qualified file name.
+#filebeat.registry_file: ${path.data}/registry
+
+
+output.logstash:
+ #List of logstash server ip addresses with port number.
+ #But, in our case, this will be the loadbalancer IP address.
+ #For the below property to work the loadbalancer or logstash should expose 5044 port to listen the filebeat events or port in the property should be changed appropriately.
+ hosts: ["logstash.onap-log:5044"]
+ #If enable will do load balancing among availabe Logstash, automatically.
+ loadbalance: true
+
+ #The list of root certificates for server verifications.
+ #If certificate_authorities is empty or not set, the trusted
+ #certificate authorities of the host system are used.
+ #ssl.certificate_authorities: $ssl.certificate_authorities
+
+ #The path to the certificate for SSL client authentication. If the certificate is not specified,
+ #client authentication is not available.
+ #ssl.certificate: $ssl.certificate
+
+ #The client certificate key used for client authentication.
+ #ssl.key: $ssl.key
+
+ #The passphrase used to decrypt an encrypted key stored in the configured key file
+ #ssl.key_passphrase: $ssl.key_passphrase
while the OOM K8s version has these service split up.
*/
UPDATE fn_app SET app_rest_endpoint = 'http://sdc.api.be.simpledemo.onap.org:8080/api/v2' where app_name = 'SDC';
+UPDATE fn_app SET app_url = 'http://cli.api.simpledemo.onap.org:8080', app_type = 1 where app_name='CLI';
--- /dev/null
+#{{ if not .Values.disablePortalPortalapps }}
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: portal-onap-portal-sdk-configmap
+ namespace: {{ .Values.nsPrefix }}-portal
+data:
+{{ tpl (.Files.Glob "resources/config/portal-fe/webapps/etc/ONAPPORTALSDK/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: portal-onap-portal-configmap
+ namespace: {{ .Values.nsPrefix }}-portal
+data:
+{{ tpl (.Files.Glob "resources/config/portal-fe/webapps/etc/ONAPPORTAL/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: portal-mariadb-configmap
+ namespace: {{ .Values.nsPrefix }}-portal
+data:
+{{ tpl (.Files.Glob "resources/config/mariadb/oom_updates.sql").AsConfig . | indent 2 }}
+#{{ end }}
+---
+#{{ if not .Values.disablePortalPortalwidgets }}
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: portal-onapwidgetms-configmap
+ namespace: {{ .Values.nsPrefix }}-portal
+data:
+{{ tpl (.Files.Glob "resources/config/portal-fe/webapps/etc/ONAPWIDGETMS/application.properties").AsConfig . | indent 2 }}
+#{{ end }}
volumeMounts:
- mountPath: /portal-mysql/oom_updates.sql
name: portal-mariadb-onboarding-sql
+ subPath: oom_updates.sql
- mountPath: /portal_root/
name: portal-root
image: {{ .Values.image.mariadbClient }}
imagePullPolicy: {{ .Values.pullPolicy }}
name: provision-portaldb-users
+ - command: ["/bin/bash", "-c", "mkdir -p /ubuntu-init/ && chmod -R 777 /ubuntu-init/"]
+ volumeMounts:
+ - name: portal-logs
+ mountPath: /ubuntu-init/
+ image: {{ .Values.image.ubuntuInit }}
+ imagePullPolicy: {{ .Values.pullPolicy }}
+ name: portal-app-logs-init
containers:
- image: {{ .Values.image.portalapps }}
imagePullPolicy: {{ .Values.pullPolicy }}
name: localtime
readOnly: true
- mountPath: "{{ .Values.onapPortal.webappsDir }}/ONAPPORTAL/WEB-INF/fusion/conf/fusion.properties"
- name: portal-fusion-properties
+ name: onap-portal-properties
+ subPath: fusion.properties
- mountPath: "{{ .Values.onapPortal.webappsDir }}/ONAPPORTAL/WEB-INF/classes/openid-connect.properties"
- name: portal-openid-connect-properties
+ name: onap-portal-properties
+ subPath: openid-connect.properties
- mountPath: "{{ .Values.onapPortal.webappsDir }}/ONAPPORTAL/WEB-INF/conf/system.properties"
- name: portal-system-properties
+ name: onap-portal-properties
+ subPath: system.properties
- mountPath: "{{ .Values.onapPortal.webappsDir }}/ONAPPORTAL/WEB-INF/classes/portal.properties"
- name: portal-portal-properties
+ name: onap-portal-properties
+ subPath: portal.properties
- mountPath: "{{ .Values.onapPortal.webappsDir }}/ONAPPORTAL/WEB-INF/classes/logback.xml"
name: portal-logback
+ subPath: logback.xml
- mountPath: "{{ .Values.onapPortal.webappsDir }}/ONAPPORTALSDK/WEB-INF/conf/system.properties"
- name: sdkapp-system-properties
+ name: portal-sdkapp-properties
+ subPath: system.properties
- mountPath: "{{ .Values.onapPortal.webappsDir }}/ONAPPORTALSDK/WEB-INF/classes/portal.properties"
- name: sdkapp-portal-properties
+ name: portal-sdkapp-properties
+ subPath: portal.properties
- mountPath: "{{ .Values.onapPortal.webappsDir }}/ONAPPORTALSDK/WEB-INF/fusion/conf/fusion.properties"
- name: sdkapp-fusion-properties
+ name: portal-sdkapp-properties
+ subPath: fusion.properties
- mountPath: "{{ .Values.onapPortal.webappsDir }}/ONAPPORTALSDK/WEB-INF/classes/logback.xml"
name: sdkapp-logback
+ subPath: logback.xml
- mountPath: /portal_root/
name: portal-root
- mountPath: "{{ .Values.onapPortal.webappsDir }}/logs"
volumeMounts:
- mountPath: /usr/share/filebeat/filebeat.yml
name: filebeat-conf
+ subPath: filebeat.yml
- mountPath: /var/log/onap
name: portal-logs2
- mountPath: /usr/share/filebeat/data
hostPath:
path: /etc/localtime
- name: filebeat-conf
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/log/filebeat/logback/filebeat.yml
+ configMap:
+ name: portal-filebeat-configmap
- name: portal-logs2
emptyDir: {}
- name: portal-data-filebeat
emptyDir: {}
- - name: portal-fusion-properties
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/portal/portal-fe/webapps/etc/ONAPPORTAL/fusion.properties
- - name: portal-openid-connect-properties
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/portal/portal-fe/webapps/etc/ONAPPORTAL/openid-connect.properties
- - name: portal-system-properties
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/portal/portal-fe/webapps/etc/ONAPPORTAL/system.properties
- - name: portal-portal-properties
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/portal/portal-fe/webapps/etc/ONAPPORTAL/portal.properties
+ - name: onap-portal-properties
+ configMap:
+ defaultMode: 0755
+ name: portal-onap-portal-configmap
+ - name: portal-sdkapp-properties
+ configMap:
+ defaultMode: 0755
+ name: portal-onap-portal-sdk-configmap
- name: portal-logback
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/log/portal/onapportal/logback.xml
- - name: sdkapp-system-properties
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/portal/portal-fe/webapps/etc/ONAPPORTALSDK/system.properties
- - name: sdkapp-portal-properties
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/portal/portal-fe/webapps/etc/ONAPPORTALSDK/portal.properties
- - name: sdkapp-fusion-properties
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/portal/portal-fe/webapps/etc/ONAPPORTALSDK/fusion.properties
+ configMap:
+ name: portal-onapportal-log-configmap
- name: sdkapp-logback
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/log/portal/onapportalsdk/logback.xml
+ configMap:
+ name: portal-onapportalsdk-log-configmap
- name: portal-mariadb-onboarding-sql
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/portal/mariadb/oom_updates.sql
+ configMap:
+ name: portal-mariadb-configmap
- name: portal-root
hostPath:
path: /dockerdata-nfs/{{ .Values.nsPrefix }}/portal
--- /dev/null
+#{{ if not .Values.disablePortalPortalapps }}
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: portal-filebeat-configmap
+ namespace: {{ .Values.nsPrefix }}-portal
+data:
+{{ tpl (.Files.Glob "resources/config/log/filebeat/filebeat.yml").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: portal-onapportal-log-configmap
+ namespace: {{ .Values.nsPrefix }}-portal
+data:
+{{ tpl (.Files.Glob "resources/config/log/portal/onapportal/logback.xml").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: portal-onapportalsdk-log-configmap
+ namespace: {{ .Values.nsPrefix }}-portal
+data:
+{{ tpl (.Files.Glob "resources/config/log/portal/onapportalsdk/logback.xml").AsConfig . | indent 2 }}
+#{{ end }}
+
lifecycle:
postStart:
exec:
- command: ["/bin/sh", "-c", "mkdir -p /root/.mozilla/firefox/onap.default; cp /root/.init_profile/profiles.ini /root/.mozilla/firefox/; echo 'user_pref(\"browser.tabs.remote.autostart.2\", false);' > /root/.mozilla/firefox/onap.default/prefs.js; (while true; do /tmp/update_hosts.sh sdc-be.{{ .Values.nsPrefix }}-sdc sdc.api.be.simpledemo.onap.org; /tmp/update_hosts.sh portalapps.{{ .Values.nsPrefix }}-portal portal.api.simpledemo.onap.org; /tmp/update_hosts.sh pap.{{ .Values.nsPrefix }}-policy policy.api.simpledemo.onap.org; /tmp/update_hosts.sh sdc-fe.{{ .Values.nsPrefix }}-sdc sdc.api.simpledemo.onap.org; /tmp/update_hosts.sh vid-server.{{ .Values.nsPrefix }}-vid vid.api.simpledemo.onap.org; /tmp/update_hosts.sh sparky-be.{{ .Values.nsPrefix }}-aai aai.api.simpledemo.onap.org; sleep 10; done) > update_hosts.log 2>&1 &"]
+ command: ["/bin/sh", "-c", "mkdir -p /root/.mozilla/firefox/onap.default; cp /root/.init_profile/profiles.ini /root/.mozilla/firefox/; echo 'user_pref(\"browser.tabs.remote.autostart.2\", false);' > /root/.mozilla/firefox/onap.default/prefs.js; (while true; do /tmp/update_hosts.sh sdc-be.{{ .Values.nsPrefix }}-sdc sdc.api.be.simpledemo.onap.org; /tmp/update_hosts.sh portalapps.{{ .Values.nsPrefix }}-portal portal.api.simpledemo.onap.org; /tmp/update_hosts.sh pap.{{ .Values.nsPrefix }}-policy policy.api.simpledemo.onap.org; /tmp/update_hosts.sh sdc-fe.{{ .Values.nsPrefix }}-sdc sdc.api.simpledemo.onap.org; /tmp/update_hosts.sh vid-server.{{ .Values.nsPrefix }}-vid vid.api.simpledemo.onap.org; /tmp/update_hosts.sh sparky-be.{{ .Values.nsPrefix }}-aai aai.api.simpledemo.onap.org; /tmp/update_hosts.sh cli.{{ .Values.nsPrefix }}-cli cli.api.simpledemo.onap.org; sleep 10; done) > update_hosts.log 2>&1 &"]
env:
- name: VNC_PASSWORD
value: password
name: portalapps-readiness
containers:
- image: {{ .Values.image.portalwms }}
- imagePullPolicy: {{ .Values.pullPolicy }}
+ imagePullPolicy: {{ .Values.pullPolicy }}
name: portalwidgets
volumeMounts:
- mountPath: /etc/localtime
readOnly: true
- mountPath: /application.properties
name: portalwidgets-application-properties
+ subPath: application.properties
ports:
- containerPort: 8082
readinessProbe:
hostPath:
path: /etc/localtime
- name: portalwidgets-application-properties
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/portal/portal-fe/webapps/etc/ONAPWIDGETMS/application.properties
+ configMap:
+ name: portal-onapwidgetms-configmap
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
#{{ end }}
portalwms: nexus3.onap.org:10001/onap/portal-wms:v1.3.0
ubuntuDesktop: dorowu/ubuntu-desktop-lxde-vnc
filebeat: docker.elastic.co/beats/filebeat:5.5.0
+ ubuntuInit: oomk8s/ubuntu-init:1.0.0
onapPortal:
webappsDir: "/opt/apache-tomcat-8.0.37/webapps"
#!/usr/bin/python
-from kubernetes import client, config
-import time, argparse, logging, sys, os
+import getopt
+import logging
+import os
+import sys
+import time
-#extract env variables.
+from kubernetes import client
+
+# extract env variables.
namespace = os.environ['NAMESPACE']
cert = os.environ['CERT']
host = os.environ['KUBERNETES_SERVICE_HOST']
with open(token_path, 'r') as token_file:
token = token_file.read().replace('\n', '')
-client.configuration.host = "https://" + host
-client.configuration.ssl_ca_cert = cert
-client.configuration.api_key['authorization'] = token
-client.configuration.api_key_prefix['authorization'] = 'Bearer'
-
-#setup logging
+# setup logging
log = logging.getLogger(__name__)
handler = logging.StreamHandler(sys.stdout)
handler.setFormatter(logging.Formatter('%(asctime)s - %(levelname)s - %(message)s'))
log.addHandler(handler)
log.setLevel(logging.INFO)
+configuration = client.Configuration()
+configuration.host = "https://" + host
+configuration.ssl_ca_cert = cert
+configuration.api_key['authorization'] = token
+configuration.api_key_prefix['authorization'] = 'Bearer'
+coreV1Api = client.CoreV1Api(client.ApiClient(configuration))
def is_ready(container_name):
- log.info( "Checking if " + container_name + " is ready")
- # config.load_kube_config() # for local testing
- # namespace='onap-sdc' # for local testing
- v1 = client.CoreV1Api()
-
ready = False
-
+ log.info("Checking if " + container_name + " is ready")
try:
- response = v1.list_namespaced_pod(namespace=namespace, watch=False)
+ response = coreV1Api.list_namespaced_pod(namespace=namespace, watch=False)
for i in response.items:
+ # container_statuses can be None, which is non-iterable.
+ if i.status.container_statuses is None:
+ continue
for s in i.status.container_statuses:
if s.name == container_name:
ready = s.ready
if not ready:
- log.info( container_name + " is not ready.")
+ log.info(container_name + " is not ready.")
else:
- log.info( container_name + " is ready!")
+ log.info(container_name + " is ready!")
else:
continue
return ready
log.error("Exception when calling list_namespaced_pod: %s\n" % e)
-def main(args):
+DEF_TIMEOUT = 10
+DESCRIPTION = "Kubernetes container readiness check utility"
+USAGE = "Usage: ready.py [-t <timeout>] -c <container_name> [-c <container_name> ...]\n" \
+ "where\n" \
+ "<timeout> - wait for container readiness timeout in min, default is " + str(DEF_TIMEOUT) + "\n" \
+ "<container_name> - name of the container to wait for\n"
+
+def main(argv):
# args are a list of container names
- for container_name in args:
- # 5 min, TODO: make configurable
- timeout = time.time() + 60 * 10
+ container_names = []
+ timeout = DEF_TIMEOUT
+ try:
+ opts, args = getopt.getopt(argv, "hc:t:", ["container-name=", "timeout=", "help"])
+ for opt, arg in opts:
+ if opt in ("-h", "--help"):
+ print("%s\n\n%s" % (DESCRIPTION, USAGE))
+ sys.exit()
+ elif opt in ("-c", "--container-name"):
+ container_names.append(arg)
+ elif opt in ("-t", "--timeout"):
+ timeout = float(arg)
+ except (getopt.GetoptError, ValueError) as e:
+ print("Error parsing input parameters: %s\n" % e)
+ print(USAGE)
+ sys.exit(2)
+ if container_names.__len__() == 0:
+ print("Missing required input parameter(s)\n")
+ print(USAGE)
+ sys.exit(2)
+
+ for container_name in container_names:
+ timeout = time.time() + timeout * 60
while True:
ready = is_ready(container_name)
if ready is True:
break
elif time.time() > timeout:
- log.warning( "timed out waiting for '" + container_name + "' to be ready")
+ log.warning("timed out waiting for '" + container_name + "' to be ready")
exit(1)
else:
time.sleep(5)
if __name__ == "__main__":
- parser = argparse.ArgumentParser(description='Process some names.')
- parser.add_argument('--container-name', action='append', required=True, help='A container name')
- args = parser.parse_args()
- arg_dict = vars(args)
+ main(sys.argv[1:])
- for arg in arg_dict.itervalues():
- main(arg)
echo " "
echo " demo.sh deleteVNF <module_name from instantiateVFW>"
echo " - Delete the module created by instantiateVFW"
+ echo " "
+ echo " demo.sh heatbridge <stack_name> <service_instance_id> <service>"
+ echo " - Run heatbridge against the stack for the given service instance and service"
}
# Set the defaults
echo "Cache file ${VARFILE} is not found"
exit
fi
+ shift
+ ;;
+ heatbridge)
+ TAG="heatbridge"
+ shift
+ if [ $# -ne 3 ];then
+ echo "Usage: demo.sh heatbridge <stack_name> <service_instance_id> <service>"
+ exit
+ fi
+ VARIABLES="$VARIABLES -v HB_STACK:$1"
+ shift
+ VARIABLES="$VARIABLES -v HB_SERVICE_INSTANCE_ID:$1"
+ shift
+ VARIABLES="$VARIABLES -v HB_SERVICE:$1"
shift
;;
*)
--- /dev/null
+TransportType=HTTPAUTH
+Latitude =50.000000
+Longitude =-100.000000
+Version =1.0
+ServiceName =dmaap-v1.dev.dmaap.dt.saat.acsi.openecomp.org/events
+Environment =TEST
+Partner = BOT_R
+routeOffer=MR1
+SubContextPath =/
+Protocol =http
+MethodType =GET
+username =admin
+password =admin
+contenttype =application/json
+authKey=fxoW4jZrO7mdLWWa:f4KxkoBtToyoEG7suMoV8KhnkwM=
+authDate=2016-02-18T13:57:37-0800
+host=dmaap.onap-message-router:3904
+topic=VCPE-DHCP-EVENT
+group=jmsgrp
+id=sdnc1
+timeout=15000
+limit=1000
+filter=
+AFT_DME2_EXCHANGE_REQUEST_HANDLERS=com.att.nsa.test.PreferredRouteRequestHandler
+AFT_DME2_EXCHANGE_REPLY_HANDLERS=com.att.nsa.test.PreferredRouteReplyHandler
+AFT_DME2_REQ_TRACE_ON=true
+AFT_ENVIRONMENT=AFTUAT
+AFT_DME2_EP_CONN_TIMEOUT=15000
+AFT_DME2_ROUNDTRIP_TIMEOUT_MS=240000
+AFT_DME2_EP_READ_TIMEOUT_MS=50000
+sessionstickinessrequired=NO
+DME2preferredRouterFilePath=/opt/onap/sdnc/data/properties/dmaap-listener.preferredRoute.txt
+sdnc.odl.user=admin
+sdnc.odl.password=admin
+sdnc.odl.url-base=https://sdnhost.onap-sdnc:8443/restconf/operations
\ No newline at end of file
--- /dev/null
+filebeat.prospectors:
+#it is mandatory, in our case it's log
+- input_type: log
+ #This is the canolical path as mentioned in logback.xml, *.* means it will monitor all files in the directory.
+ paths:
+ - /var/log/onap/*/*/*/*.log
+ - /var/log/onap/*/*/*.log
+ - /var/log/onap/*/*.log
+
+ # The below commented properties are for time-based rolling policy. But as the log4j 1.2x does not support time-based rolling these properties are not set
+ #Files older than this should be ignored.In our case it will be 48 hours i.e. 2 days. It is a helping flag for clean_inactive
+ #ignore_older: 48h
+ # Remove the registry entry for a file that is more than the specified time. In our case it will be 96 hours, i.e. 4 days. It will help to keep registry records with in limit
+ #clean_inactive: 96h
+
+ #Multiline properties for log4j xml log events
+ multiline.pattern: '</log4j:event>'
+ multiline.negate: true
+ multiline.match: before
+ #multiline.max_lines: 500
+ #multiline.timeout: 5s
+
+# Name of the registry file. If a relative path is used, it is considered relative to the
+# data path. Else full qualified file name.
+#filebeat.registry_file: ${path.data}/registry
+
+
+output.logstash:
+ #List of logstash server ip addresses with port number.
+ #But, in our case, this will be the loadbalancer IP address.
+ #For the below property to work the loadbalancer or logstash should expose 5044 port to listen the filebeat events or port in the property should be changed appropriately.
+ hosts: ["logstash.onap-log:5044"]
+ #If enable will do load balancing among availabe Logstash, automatically.
+ loadbalance: true
+
+ #The list of root certificates for server verifications.
+ #If certificate_authorities is empty or not set, the trusted
+ #certificate authorities of the host system are used.
+ #ssl.certificate_authorities: $ssl.certificate_authorities
+
+ #The path to the certificate for SSL client authentication. If the certificate is not specified,
+ #client authentication is not available.
+ #ssl.certificate: $ssl.certificate
+
+ #The client certificate key used for client authentication.
+ #ssl.key: $ssl.key
+
+ #The passphrase used to decrypt an encrypted key stored in the configured key file
+ #ssl.key_passphrase: $ssl.key_passphrase
--- /dev/null
+org.onap.ccsdk.sli.northbound.uebclient.asdc-address=sdc-be.onap-sdc:8443
+org.onap.ccsdk.sli.northbound.uebclient.consumer-group=sdc-OpenSource-Env1-sdnc-dockero
+org.onap.ccsdk.sli.northbound.uebclient.consumer-id=sdc-COpenSource-Env11-sdnc-dockero
+org.onap.ccsdk.sli.northbound.uebclient.environment-name=AUTO
+org.onap.ccsdk.sli.northbound.uebclient.password=Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U
+org.onap.ccsdk.sli.northbound.uebclient.user=sdnc
+org.onap.ccsdk.sli.northbound.uebclient.sdnc-user=admin
+org.onap.ccsdk.sli.northbound.uebclient.sdnc-passwd=Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U
+org.onap.ccsdk.sli.northbound.uebclient.asdc-api-base-url=http://sdnhost.onap-sdnc:8282/restconf/operations/
+org.onap.ccsdk.sli.northbound.uebclient.asdc-api-namespace=org:onap:ccsdk
+org.onap.ccsdk.sli.northbound.uebclient.spool.incoming=/opt/onap/sdnc/ueb-listener/spool/incoming
+org.onap.ccsdk.sli.northbound.uebclient.spool.archive=/opt/onap/sdnc/ueb-listener/spool/archive
+org.onap.ccsdk.sli.northbound.uebclient.polling-interval=30
+org.onap.ccsdk.sli.northbound.uebclient.polling-timeout=15
+org.onap.ccsdk.sli.northbound.uebclient.client-startup-timeout=900
+org.onap.ccsdk.sli.northbound.uebclient.relevant-artifact-types=YANG_XML,VF_LICENSE,TOSCA_CSAR,UCPE_LAYER_2_CONFIGURATION
+org.onap.ccsdk.sli.northbound.uebclient.activate-server-tls-auth=false
+org.onap.ccsdk.sli.northbound.uebclient.keystore-path=
+org.onap.ccsdk.sli.northbound.uebclient.keystore-password=
+org.onap.ccsdk.sli.northbound.uebclient.xslt-path-list=
+org.onap.ccsdk.sli.northbound.uebclient.artifact-map=/opt/onap/sdnc/data/properties/artifact.map
\ No newline at end of file
name: sdnc-dgbuilder
namespace: "{{ .Values.nsPrefix }}-sdnc"
spec:
+ replicas: {{ .Values.dgbuilderReplicas }}
selector:
matchLabels:
app: sdnc-dgbuilder
--- /dev/null
+#{{ if not .Values.disableSdncDmaap }}
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: sdnc-dmaap-configmap
+ namespace: {{ .Values.nsPrefix }}-sdnc
+data:
+{{ tpl (.Files.Glob "resources/config/dmaap/*").AsConfig . | indent 2 }}
+#{{ end }}
--- /dev/null
+#{{ if not .Values.disableSdncDmaap }}
+apiVersion: extensions/v1beta1
+kind: Deployment
+metadata:
+ name: dmaap-listener
+ namespace: "{{ .Values.nsPrefix }}-sdnc"
+spec:
+ replicas: {{ .Values.dmaapReplicas }}
+ selector:
+ matchLabels:
+ app: dmaap-listener
+ template:
+ metadata:
+ labels:
+ app: dmaap-listener
+ name: dmaap-listener
+ spec:
+ initContainers:
+ - command:
+ - /root/ready.py
+ args:
+ - --container-name
+ - sdnc-db-container
+ - --container-name
+ - sdnc-controller-container
+ env:
+ - name: NAMESPACE
+ valueFrom:
+ fieldRef:
+ apiVersion: v1
+ fieldPath: metadata.namespace
+ image: {{ .Values.image.readiness }}
+ imagePullPolicy: {{ .Values.pullPolicy }}
+ name: sdnc-dmaap-readiness
+ containers:
+ - command:
+ - /opt/onap/sdnc/dmaap-listener/bin/start-dmaap-listener.sh
+ env:
+ - name: PROPERTY_DIR
+ value: /opt/onap/sdnc/data/properties
+ - name: SDNC_CONFIG_DIR
+ value: /opt/onap/sdnc/data/properties
+ image: {{ .Values.image.dmaaplistener }}
+ imagePullPolicy: {{ .Values.pullPolicy }}
+ name: dmaapp-listener-container
+ volumeMounts:
+ - mountPath: /etc/localtime
+ name: localtime
+ readOnly: true
+ - mountPath: /opt/onap/sdnc/data/properties/dhcpalert.properties
+ subPath: dhcpalert.properties
+ name: dmaap-dhcapalert-config
+ volumes:
+ - name: localtime
+ hostPath:
+ path: /etc/localtime
+ - name: dmaap-dhcapalert-config
+ configMap:
+ name: sdnc-dmaap-configmap
+ imagePullSecrets:
+ - name: "{{ .Values.nsPrefix }}-docker-registry-key"
+#{{ end }}
name: nfs-provisioner
namespace: "{{ .Values.nsPrefix }}-sdnc"
spec:
- replicas: 1
+ replicas: {{ .Values.nfsReplicas }}
strategy:
type: Recreate
template:
--- /dev/null
+#{{ if not .Values.disableSdncSdnc }}
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: sdnc-conf-configmap
+ namespace: {{ .Values.nsPrefix }}-sdnc
+data:
+{{ tpl (.Files.Glob "resources/config/conf/*").AsConfig . | indent 2 }}
+#{{ end }}
--- /dev/null
+#{{ if not .Values.disableSdncSdnc }}
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: sdnc-log-configmap
+ namespace: {{ .Values.nsPrefix }}-sdnc
+data:
+{{ tpl (.Files.Glob "resources/config/log/filebeat/log4j/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: sdnc-logging-cfg-configmap
+ namespace: {{ .Values.nsPrefix }}-sdnc
+data:
+{{ tpl (.Files.Glob "resources/config/log/*").AsConfig . | indent 2 }}
+#{{ end }}
- mountPath: /etc/localtime
name: localtime
readOnly: true
- - mountPath: /opt/onap/sdnc/data/properties/aaiclient.properties
- name: sdnc-aaiclient-properties
- mountPath: /opt/onap/sdnc/data/properties/admportal.json
- name: sdnc-admportal-json
+ name: sdnc-conf
+ subPath: admportal.json
+ - mountPath: /opt/onap/sdnc/data/properties/aaiclient.properties
+ name: sdnc-conf
+ subPath: aaiclient.properties
- mountPath: /var/log/onap
name: sdnc-logs
- mountPath: /opt/opendaylight/current/etc/org.ops4j.pax.logging.cfg
- name: sdnc-log-config
+ name: sdnc-logging-cfg-config
+ subPath: org.ops4j.pax.logging.cfg
ports:
- containerPort: 8181
- containerPort: 8101
volumeMounts:
- mountPath: /usr/share/filebeat/filebeat.yml
name: filebeat-conf
+ subPath: filebeat.yml
- mountPath: /var/log/onap
name: sdnc-logs
- mountPath: /usr/share/filebeat/data
hostPath:
path: /etc/localtime
- name: filebeat-conf
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/log/filebeat/log4j/filebeat.yml
- - name: sdnc-log-config
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/log/sdnc/org.ops4j.pax.logging.cfg
+ configMap:
+ name: sdnc-log-configmap
+ - name: sdnc-logging-cfg-config
+ configMap:
+ name: sdnc-logging-cfg-configmap
- name: sdnc-logs
emptyDir: {}
- name: sdnc-data-filebeat
emptyDir: {}
- - name: sdnc-aaiclient-properties
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/sdnc/conf/aaiclient.properties
- - name: sdnc-admportal-json
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/sdnc/conf/admportal.json
+ - name: sdnc-conf
+ configMap:
+ name: sdnc-conf-configmap
+ items:
+ - key: admportal.json
+ path: admportal.json
+ mode: 0755
+ - key: aaiclient.properties
+ path: aaiclient.properties
+ mode: 0755
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
#{{ end }}
--- /dev/null
+#{{ if not .Values.disableSdncUeb }}
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: sdnc-ueb-configmap
+ namespace: {{ .Values.nsPrefix }}-sdnc
+data:
+{{ tpl (.Files.Glob "resources/config/ueb/*").AsConfig . | indent 2 }}
+#{{ end }}
--- /dev/null
+#{{ if not .Values.disableSdncUeb }}
+apiVersion: extensions/v1beta1
+kind: Deployment
+metadata:
+ name: ueb-listener
+ namespace: "{{ .Values.nsPrefix }}-sdnc"
+spec:
+ replicas: {{ .Values.uebReplicas }}
+ selector:
+ matchLabels:
+ app: ueb-listener
+ template:
+ metadata:
+ labels:
+ app: ueb-listener
+ name: ueb-listener
+ spec:
+ initContainers:
+ - command:
+ - /root/ready.py
+ args:
+ - --container-name
+ - sdnc-db-container
+ - --container-name
+ - sdnc-controller-container
+ env:
+ - name: NAMESPACE
+ valueFrom:
+ fieldRef:
+ apiVersion: v1
+ fieldPath: metadata.namespace
+ image: {{ .Values.image.readiness }}
+ imagePullPolicy: {{ .Values.pullPolicy }}
+ name: sdnc-ueb-readiness
+ containers:
+ - command:
+ - /opt/onap/sdnc/ueb-listener/bin/start-ueb-listener.sh
+ env:
+ - name: PROPERTY_DIR
+ value: /opt/onap/sdnc/data/properties
+ - name: SDNC_CONFIG_DIR
+ value: /opt/onap/sdnc/data/properties
+ image: {{ .Values.image.ueblistener }}
+ imagePullPolicy: {{ .Values.pullPolicy }}
+ name: ueb-listener-container
+ volumeMounts:
+ - mountPath: /etc/localtime
+ name: localtime
+ readOnly: true
+ - mountPath: /opt/onap/sdnc/data/properties/ueb-listener.properties
+ subPath: ueb-listener.properties
+ name: ueb-config
+ volumes:
+ - name: localtime
+ hostPath:
+ path: /etc/localtime
+ - name: ueb-config
+ configMap:
+ name: sdnc-ueb-configmap
+ imagePullSecrets:
+ - name: "{{ .Values.nsPrefix }}-docker-registry-key"
+#{{ end }}
name: sdnc-portal
namespace: "{{ .Values.nsPrefix }}-sdnc"
spec:
+ replicas: {{ .Values.portalReplicas }}
selector:
matchLabels:
app: sdnc-portal
- name: localtime
mountPath: /etc/localtime
readOnly: true
- - mountPath: /opt/onap/sdnc/data/properties/aaiclient.properties
- name: sdnc-aaiclient-properties
- - mountPath: /opt/onap/sdnc/data/properties/admportal.json
- name: sdnc-admportal-json
+ - mountPath: /opt/onap/sdnc/data/properties/
+ name: sdnc-conf
readinessProbe:
tcpSocket:
port: 8843
- name: localtime
hostPath:
path: /etc/localtime
- - name: sdnc-aaiclient-properties
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/sdnc/conf/aaiclient.properties
- - name: sdnc-admportal-json
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/sdnc/conf/admportal.json
+ - name: sdnc-conf
+ configMap:
+ name: sdnc-conf-configmap
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
#{{ end }}
dgbuilderSdnc: nexus3.onap.org:10001/onap/ccsdk-dgbuilder-image:v0.1.0
sdnc: nexus3.onap.org:10001/onap/sdnc-image:v1.2.1
admportalSdnc: nexus3.onap.org:10001/onap/admportal-sdnc-image:v1.2.1
+ ueblistener: nexus3.onap.org:10001/onap/sdnc-ueb-listener-image:v1.2.1
+ dmaaplistener: nexus3.onap.org:10001/onap/sdnc-dmaap-listener-image:v1.2.1
filebeat: docker.elastic.co/beats/filebeat:5.5.0
enableODLCluster: false
numberOfODLReplicas: 1
numberOfDbReplicas: 1
+dgbuilderReplicas: 1
+dmaapReplicas: 1
+nfsReplicas: 1
+uebReplicas: 1
+portalReplicas: 1
disableSdncSdncDgbuilder: false
disableSdncSdncPortal: false
-
-# FIXME
-# Missing the following deps
-# nexus3.onap.org:10001/onap/sdnc-dmaap-listener-image:v1.2.1
-# nexus3.onap.org:10001/onap/sdnc-ueb-listener-image:v1.2.1
--- /dev/null
+filebeat.prospectors:
+#it is mandatory, in our case it's log
+- input_type: log
+ #This is the canolical path as mentioned in logback.xml, *.* means it will monitor all files in the directory.
+ paths:
+ - /var/log/onap/*/*/*/*.log
+ - /var/log/onap/*/*/*.log
+ - /var/log/onap/*/*.log
+ #Files older than this should be ignored.In our case it will be 48 hours i.e. 2 days. It is a helping flag for clean_inactive
+ ignore_older: 48h
+ # Remove the registry entry for a file that is more than the specified time. In our case it will be 96 hours, i.e. 4 days. It will help to keep registry records with in limit
+ clean_inactive: 96h
+
+
+# Name of the registry file. If a relative path is used, it is considered relative to the
+# data path. Else full qualified file name.
+#filebeat.registry_file: ${path.data}/registry
+
+
+output.logstash:
+ #List of logstash server ip addresses with port number.
+ #But, in our case, this will be the loadbalancer IP address.
+ #For the below property to work the loadbalancer or logstash should expose 5044 port to listen the filebeat events or port in the property should be changed appropriately.
+ hosts: ["logstash.onap-log:5044"]
+ #If enable will do load balancing among availabe Logstash, automatically.
+ loadbalance: true
+
+ #The list of root certificates for server verifications.
+ #If certificate_authorities is empty or not set, the trusted
+ #certificate authorities of the host system are used.
+ #ssl.certificate_authorities: $ssl.certificate_authorities
+
+ #The path to the certificate for SSL client authentication. If the certificate is not specified,
+ #client authentication is not available.
+ #ssl.certificate: $ssl.certificate
+
+ #The client certificate key used for client authentication.
+ #ssl.key: $ssl.key
+
+ #The passphrase used to decrypt an encrypted key stored in the configured key file
+ #ssl.key_passphrase: $ssl.key_passphrase
--- /dev/null
+#{{ if not .Values.disableVidVidMariadb }}
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: vid-lfconfig-configmap
+ namespace: {{ .Values.nsPrefix }}-vid
+data:
+{{ tpl (.Files.Glob "resources/config/lf_config/*").AsConfig . | indent 2 }}
+#{{ end }}
--- /dev/null
+#{{ if not .Values.disableVidVidServer }}
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: vid-log-configmap
+ namespace: {{ .Values.nsPrefix }}-vid
+data:
+{{ tpl (.Files.Glob "resources/config/log/vid/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: vid-filebeat-configmap
+ namespace: {{ .Values.nsPrefix }}-vid
+data:
+{{ tpl (.Files.Glob "resources/config/log/filebeat/*").AsConfig . | indent 2 }}
+#{{ end }}
- mountPath: /var/lib/mysql
name: vid-mariadb-data
- mountPath: /docker-entrypoint-initdb.d/vid-pre-init.sql
- name: vid-pre-init
+ name: vid-lfconfig
+ subPath: vid-pre-init.sql
- mountPath: /etc/mysql/my.cnf
- name: my-cnf
+ name: vid-lfconfig
+ subPath: my.cnf
ports:
- containerPort: 3306
readinessProbe:
- name: vid-mariadb-data
persistentVolumeClaim:
claimName: vid-db
- - name: vid-pre-init
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/vid/vid/lf_config/vid-pre-init.sql
- - name: my-cnf
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/vid/vid/lf_config/vid-my.cnf
+ - name: vid-lfconfig
+ configMap:
+ name: vid-lfconfig-configmap
+ defaultMode: 0755
+ items:
+ - key: vid-my.cnf
+ path: my.cnf
+ - key: vid-pre-init.sql
+ path: vid-pre-init.sql
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }}
\ No newline at end of file
+#{{ end }}
- ReadWriteMany
persistentVolumeReclaimPolicy: Retain
hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/vid/mariadb/data
+ path: {{ .Values.dataRootDir }}/{{ .Values.nsPrefix }}/vid/mariadb/data
---
kind: PersistentVolumeClaim
apiVersion: v1
selector:
matchLabels:
name: "{{ .Values.nsPrefix }}-vid-db"
-#{{ end }}
\ No newline at end of file
+#{{ end }}
value: Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U
- name: VID_MYSQL_MAXCONNECTIONS
value: "5"
- image: {{ .Values.image.vid }}
+ image: {{ .Values.image.vid }}
imagePullPolicy: {{ .Values.pullPolicy }}
name: vid-server
lifecycle:
name: vid-logs
- mountPath: /tmp/logback.xml
name: vid-logback
+ subPath: logback.xml
readinessProbe:
tcpSocket:
port: 8080
volumeMounts:
- mountPath: /usr/share/filebeat/filebeat.yml
name: filebeat-conf
+ subPath: filebeat.yml
- mountPath: /var/log/onap
name: vid-logs
- mountPath: /usr/share/filebeat/data
hostPath:
path: /etc/localtime
- name: filebeat-conf
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/log/filebeat/logback/filebeat.yml
+ configMap:
+ name: vid-filebeat-configmap
- name: vid-logs
emptyDir: {}
- name: vid-data-filebeat
emptyDir: {}
- name: vid-logback
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/log/vid/logback.xml
+ configMap:
+ name: vid-log-configmap
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
#{{ end }}
nsPrefix: onap
pullPolicy: Always
nodePortPrefix: 302
+dataRootDir: /dockerdata-nfs
image:
readiness: oomk8s/readiness-check:1.0.0
mariadb: nexus3.onap.org:10001/library/mariadb:10
vid: nexus3.onap.org:10001/openecomp/vid:v1.1.1
- filebeat: docker.elastic.co/beats/filebeat:5.5.0
\ No newline at end of file
+ filebeat: docker.elastic.co/beats/filebeat:5.5.0