diff options
698 files changed, 13957 insertions, 7295 deletions
diff --git a/.gitignore b/.gitignore index b671448e83..4dcd874cd7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,5 @@ kubernetes/config/onap-parameters.yaml -.idea/vcs.xml -.idea/modules.xml -.idea/oom.iml -.idea/workspace.xml +.idea/* +kubernetes/dist/* +requirements.lock +**/charts/*.tgz diff --git a/.idea/vcs.xml b/.idea/vcs.xml deleted file mode 100644 index 35eb1ddfbb..0000000000 --- a/.idea/vcs.xml +++ /dev/null @@ -1,6 +0,0 @@ -<?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 diff --git a/TOSCA/Helm/helmdelete.sh b/TOSCA/Helm/helmdelete.sh new file mode 100644 index 0000000000..e098fbbc13 --- /dev/null +++ b/TOSCA/Helm/helmdelete.sh @@ -0,0 +1,23 @@ +#!/bin/bash +# ============LICENSE_START========================================== +# =================================================================== +# Copyright (c) 2017 AT&T +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#============LICENSE_END============================================ + +helm delete $1-$2 --purge +kubectl delete namespace $1-$2 +kubectl delete clusterrolebinding $1-$2-admin-binding + + diff --git a/TOSCA/Helm/helminstall.sh b/TOSCA/Helm/helminstall.sh new file mode 100644 index 0000000000..a6e09c8959 --- /dev/null +++ b/TOSCA/Helm/helminstall.sh @@ -0,0 +1,30 @@ +#!/bin/bash +# ============LICENSE_START========================================== +# =================================================================== +# Copyright (c) 2017 AT&T +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#============LICENSE_END============================================ + +printf "%s" "$*" +printf `pwd` +printf "%s" "---------------" +kubectl create namespace $1-$2 +kubectl create clusterrolebinding $1-$2-admin-binding --clusterrole=cluster-admin --serviceaccount=$1-$2:default +# assign default auth token +if [[ -z $ONAP_DEFAULT_AUTH_TOKEN ]]; then + DEFAULT_SECRET=`kubectl get secrets -n $1-$2 | grep default-token | awk '{ print $1}'` + ONAP_DEFAULT_AUTH_TOKEN=`kubectl get secrets $DEFAULT_SECRET -n $1-$2 -o yaml | grep 'token:' | awk '{ print $2}' | base64 -d` +fi +kubectl --namespace $1-$2 create secret docker-registry $1-docker-registry-key --docker-server=nexus3.onap.org:10001 --docker-username=docker --docker-password=docker --docker-email=@ +helm install ../$2/ --name $1-$2 --namespace $1 --set nsPrefix=$1,nodePortPrefix=302,kubeMasterAuthToken=$ONAP_DEFAULT_AUTH_TOKEN
\ No newline at end of file diff --git a/TOSCA/Helm/onap-blueprint.yaml b/TOSCA/Helm/onap-blueprint.yaml new file mode 100644 index 0000000000..f86b590eda --- /dev/null +++ b/TOSCA/Helm/onap-blueprint.yaml @@ -0,0 +1,281 @@ +# ============LICENSE_START========================================== +# =================================================================== +# Copyright (c) 2017 AT&T +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#============LICENSE_END============================================ + +tosca_definitions_version: cloudify_dsl_1_3 + +imports: + - http://www.getcloudify.org/spec/cloudify/3.4.2/types.yaml + - http://www.getcloudify.org/spec/fabric-plugin/1.5/plugin.yaml + +inputs: + # For agent, toggle to true. + install_method: + default: none # For fabric use false. + ip: + user: + default: centos + namespace_perfix: + default: onap + +node_types: + cloudify.nodes.Helm: + derived_from: cloudify.nodes.SoftwareComponent + properties: + cwd: + default: /home/centos/oom/kubernetes/oneclick + args: + default: + - onap + - mso + interfaces: + cloudify.interfaces.lifecycle: + # This is for fabric: # Run Anywhere. + start: + implementation: fabric.fabric_plugin.tasks.run_script + inputs: + script_path: + default: helminstall.sh # Relative to the blueprint file. + process: + default: &process_vars + cwd: { get_property: [ SELF, cwd ] } + args: { get_property: [ SELF, args ] } + fabric_env: + default: &fabric_env + user: { get_property: [ k8s_master, agent_config, user ] } + host_string: { get_property: [ k8s_master, ip ] } + key: { get_property: [ k8s_master, agent_config, key ] } + stop: + implementation: fabric.fabric_plugin.tasks.run_script + inputs: + script_path: + default: helmdelete.sh + process: + default: *process_vars + fabric_env: + default: *fabric_env + +node_templates: + + k8s_master: + type: cloudify.nodes.Compute + properties: + ip: { get_input: ip } + agent_config: + install_method: { get_input: install_method } # False for Fabric. + key: { get_secret: agent_key_private } + user: { get_input: user } + + consul: + type: cloudify.nodes.Helm + properties: + args: + - { get_input: namespace_perfix } + - consul + relationships: + - type: cloudify.relationships.connected_to + target: k8s_master + + msb: + type: cloudify.nodes.Helm + properties: + args: + - { get_input: namespace_perfix } + - msb + relationships: + - type: cloudify.relationships.connected_to + target: k8s_master + + + mso: + type: cloudify.nodes.Helm + properties: + args: + - { get_input: namespace_perfix } + - mso + relationships: + - type: cloudify.relationships.connected_to + target: k8s_master + + appc: + type: cloudify.nodes.Helm + properties: + args: + - { get_input: namespace_perfix } + - appc + relationships: + - type: cloudify.relationships.connected_to + target: k8s_master + + message-router: + type: cloudify.nodes.Helm + properties: + args: + - { get_input: namespace_perfix } + - message-router + relationships: + - type: cloudify.relationships.connected_to + target: k8s_master + + sdnc: + type: cloudify.nodes.Helm + properties: + args: + - { get_input: namespace_perfix } + - sdnc + relationships: + - type: cloudify.relationships.connected_to + target: k8s_master + + vid: + type: cloudify.nodes.Helm + properties: + args: + - { get_input: namespace_perfix } + - vid + relationships: + - type: cloudify.relationships.connected_to + target: k8s_master + + robot: + type: cloudify.nodes.Helm + properties: + args: + - { get_input: namespace_perfix } + - robot + relationships: + - type: cloudify.relationships.connected_to + target: k8s_master + + policy: + type: cloudify.nodes.Helm + properties: + args: + - { get_input: namespace_perfix } + - policy + relationships: + - type: cloudify.relationships.connected_to + target: k8s_master + + portal: + type: cloudify.nodes.Helm + properties: + args: + - { get_input: namespace_perfix } + - portal + relationships: + - type: cloudify.relationships.connected_to + target: k8s_master + + aai: + type: cloudify.nodes.Helm + properties: + args: + - { get_input: namespace_perfix } + - aai + relationships: + - type: cloudify.relationships.connected_to + target: k8s_master + + sdc: + type: cloudify.nodes.Helm + properties: + args: + - { get_input: namespace_perfix } + - sdc + relationships: + - type: cloudify.relationships.connected_to + target: k8s_master + + log: + type: cloudify.nodes.Helm + properties: + args: + - { get_input: namespace_perfix } + - log + relationships: + - type: cloudify.relationships.connected_to + target: k8s_master + + cli: + type: cloudify.nodes.Helm + properties: + args: + - { get_input: namespace_perfix } + - cli + relationships: + - type: cloudify.relationships.connected_to + target: k8s_master + + multicloud: + type: cloudify.nodes.Helm + properties: + args: + - { get_input: namespace_perfix } + - multicloud + relationships: + - type: cloudify.relationships.connected_to + target: k8s_master + + clamp: + type: cloudify.nodes.Helm + properties: + args: + - { get_input: namespace_perfix } + - clamp + relationships: + - type: cloudify.relationships.connected_to + target: k8s_master + + vnfsdk: + type: cloudify.nodes.Helm + properties: + args: + - { get_input: namespace_perfix } + - vnfsdk + relationships: + - type: cloudify.relationships.connected_to + target: k8s_master + + uui: + type: cloudify.nodes.Helm + properties: + args: + - { get_input: namespace_perfix } + - uui + relationships: + - type: cloudify.relationships.connected_to + target: k8s_master + + aaf: + type: cloudify.nodes.Helm + properties: + args: + - { get_input: namespace_perfix } + - aaf + relationships: + - type: cloudify.relationships.connected_to + target: k8s_master + + vfc: + type: cloudify.nodes.Helm + properties: + args: + - { get_input: namespace_perfix } + - vfc + relationships: + - type: cloudify.relationships.connected_to + target: k8s_master diff --git a/TOSCA/kubernetes-cluster-TOSCA/LICENSE b/TOSCA/kubernetes-cluster-TOSCA/LICENSE new file mode 100644 index 0000000000..696f3d0fb7 --- /dev/null +++ b/TOSCA/kubernetes-cluster-TOSCA/LICENSE @@ -0,0 +1,17 @@ + ============LICENSE_START========================================== + =================================================================== + Copyright © 2018 AT&T + All rights reserved. + =================================================================== + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + ============LICENSE_END============================================
\ No newline at end of file diff --git a/TOSCA/kubernetes-cluster-TOSCA/README.md b/TOSCA/kubernetes-cluster-TOSCA/README.md new file mode 100644 index 0000000000..8bc097f69a --- /dev/null +++ b/TOSCA/kubernetes-cluster-TOSCA/README.md @@ -0,0 +1,73 @@ +[![Build Status](https://circleci.com/gh/cloudify-examples/simple-kubernetes-blueprint.svg?style=shield&circle-token=:circle-token)](https://circleci.com/gh/cloudify-examples/simple-kubernetes-blueprint) + + +## Kubernetes Cluster Example + +This blueprint creates an example Kubernetes cluster. It is intended as an example. The underlying Kubernetes configuration method used is [Kubeadm](https://kubernetes.io/docs/admin/kubeadm/), which is not considered production-ready. + +Regardless of your infrastructure choice, this blueprint installs and configures on each VM: +- The Kubernetes Yum repo will be installed on your VMs. +- Docker, version 1.12.6-28.git1398f24.el7.centos +- kubelet, version 1.8.6-0. +- kubeadm, version 1.8.6-0. +- kubernetes-cni, version 0.5.1-1. +- weave + + +## prerequisites + +You will need a *Cloudify Manager* running in either AWS, Azure, or Openstack. The Cloudify manager should be setup using the [Cloudify environment setup](https://github.com/cloudify-examples/cloudify-environment-setup) - that's how we test this blueprint. The following are therefore assumed: +* You have uploaded all of the required plugins to your manager in order to use this blueprint. (See the imports section of the blueprint.yaml file to check that you are using the correct plugins and their respective versions.) +* You have created all of the required secrets on your manager in order to use this blueprint. (See #secrets.) +* A Centos 7.X image. If you are running in AWS or Openstack, your image must support [Cloud-init](https://cloudinit.readthedocs.io/en/latest/). + + +#### Secrets + +* Common Secrets: + * agent_key_private + * agent_key_public + +* Openstack Secrets: + * external_network_name: This is the network on your Openstack that represents the internet gateway network. + * public_network_name: An openstack network. (Inbound is expected, outbound is required.) + * public_subnet_name: A subnet on the public network. + * private_network_name: An openstack network. (Inbound is not expected, outbound is required.) + * private_subnet_name: A subnet on the network. (Inbound is not expected, outbound is required.) + * router_name: This is a router that is attached to your Subnets designated in the secrets public_subnet_name and private_subnet_name. + * region: Your Keystone V2 region. + * keystone_url: Your Keystone V2 auth URL. + * keystone_tenant_name: Your Keystone V2 tenant name. + * keystone_password: Your Keystone V2 password. + * keystone_username:Your Keystone V2 username. + + +### Step 1: Install the Kubernetes cluster + +#### For Openstack run: + +Please follow the instruction on wiki +https://wiki.onap.org/display/DW/ONAP+on+Kubernetes+on+Cloudify#ONAPonKubernetesonCloudify-OpenStack + + +### Step 2: Verify the demo installed and started. + +Once the workflow execution is complete, verify that these secrets were created: + + +```shell +(Incubator)UNICORN:Projects trammell$ cfy secrets list +Listing all secrets... + +Secrets: ++------------------------------------------+--------------------------+--------------------------+------------+----------------+------------+ +| key | created_at | updated_at | permission | tenant_name | created_by | ++------------------------------------------+--------------------------+--------------------------+------------+----------------+------------+ +| kubernetes-admin_client_certificate_data | 2017-08-09 14:58:06.421 | 2017-08-09 14:58:06.421 | | default_tenant | admin | +| kubernetes-admin_client_key_data | 2017-08-09 14:58:06.513 | 2017-08-09 14:58:06.513 | | default_tenant | admin | +| kubernetes_certificate_authority_data | 2017-08-09 14:58:06.327 | 2017-08-09 14:58:06.327 | | default_tenant | admin | +| kubernetes_master_ip | 2017-08-09 14:56:12.359 | 2017-08-09 14:56:12.359 | | default_tenant | admin | +| kubernetes_master_port | 2017-08-09 14:56:12.452 | 2017-08-09 14:56:12.452 | | default_tenant | admin | ++------------------------------------------+--------------------------+--------------------------+------------+----------------+------------+ +``` + diff --git a/TOSCA/kubernetes-cluster-TOSCA/imports/cloud-config.yaml b/TOSCA/kubernetes-cluster-TOSCA/imports/cloud-config.yaml new file mode 100644 index 0000000000..2a7b7e7bc4 --- /dev/null +++ b/TOSCA/kubernetes-cluster-TOSCA/imports/cloud-config.yaml @@ -0,0 +1,78 @@ +# ============LICENSE_START========================================== +# =================================================================== +# Copyright (c) 2017 AT&T +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#============LICENSE_END============================================ + +# this is the cloud init. It will install the reqiured packages and do some basic config on every VM. + +node_templates: + + cloudify_host_cloud_config: + type: cloudify.nodes.CloudInit.CloudConfig + properties: + resource_config: + groups: + - docker + users: + - name: { get_input: agent_user } + primary-group: wheel + groups: docker + shell: /bin/bash + sudo: ['ALL=(ALL) NOPASSWD:ALL'] + ssh-authorized-keys: + - { get_secret: agent_key_public } + write_files: + - path: /etc/yum.repos.d/kubernetes.repo + owner: root:root + permissions: '0444' + content: | + # installed by cloud-init + [kubernetes] + name=Kubernetes + baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64 + enabled=1 + gpgcheck=1 + repo_gpgcheck=1 + gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg + https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg + + - path: /etc/sysctl.d/k8s.conf + owner: root:root + permissions: '0444' + content: | + # installed by cloud-init + net.bridge.bridge-nf-call-ip6tables = 1 + net.bridge.bridge-nf-call-iptables = 1 + + packages: + - [docker, 1.12.6] + - [kubelet, 1.8.6-0] + - [kubeadm, 1.8.6-0] + - [kubectl, 1.8.6-0] + - [kubernetes-cni, 0.5.1-1] + - [nfs-utils] + - git + - wget + runcmd: + - [ setenforce, 0 ] + - [ sysctl , '--system' ] + - [ systemctl, enable, docker ] + - [ systemctl, start, docker ] + - [ systemctl, enable, kubelet ] + - [ systemctl, start, kubelet ] + - [ mkdir, '-p', /tmp/data ] + - [ chcon, '-Rt', svirt_sandbox_file_t, /tmp/data ] + - [ mkdir, '-p', /dockerdata-nfs ] + - [ chmod, 777, /dockerdata-nfs ]
\ No newline at end of file diff --git a/TOSCA/kubernetes-cluster-TOSCA/imports/kubernetes.yaml b/TOSCA/kubernetes-cluster-TOSCA/imports/kubernetes.yaml new file mode 100644 index 0000000000..7b025738e7 --- /dev/null +++ b/TOSCA/kubernetes-cluster-TOSCA/imports/kubernetes.yaml @@ -0,0 +1,216 @@ +# ============LICENSE_START========================================== +# =================================================================== +# Copyright (c) 2017 AT&T +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#============LICENSE_END============================================ + +inputs: + + labels: + default: {} + +node_types: + + cloudify.nodes.Kubernetes: + derived_from: cloudify.nodes.Root + interfaces: + cloudify.interfaces.lifecycle: + create: + implementation: scripts/create.py + + cloudify.nodes.Kubernetes.Master: + derived_from: cloudify.nodes.Root + interfaces: + cloudify.interfaces.lifecycle: + create: + implementation: scripts/create.py + configure: + implementation: scripts/kubernetes_master/configure.py + start: + implementation: scripts/kubernetes_master/start.py + + cloudify.nodes.Kubernetes.Node: + derived_from: cloudify.nodes.Root + interfaces: + cloudify.interfaces.lifecycle: + create: + implementation: scripts/create.py + configure: + implementation: scripts/kubernetes_node/configure.py + start: + implementation: fabric.fabric_plugin.tasks.run_task + inputs: + tasks_file: + default: scripts/tasks.py + task_name: + default: label_node + task_properties: + default: + hostname: { get_attribute: [ SELF, hostname ] } + labels: { get_input: labels } + fabric_env: + default: + host_string: { get_attribute: [ kubernetes_master_host, ip ] } + user: { get_input: agent_user } + key: { get_secret: agent_key_private } + stop: + implementation: fabric.fabric_plugin.tasks.run_task + inputs: + tasks_file: + default: scripts/tasks.py + task_name: + default: stop_node + task_properties: + default: + hostname: { get_attribute: [ SELF, hostname ] } + fabric_env: + default: + host_string: { get_attribute: [ kubernetes_master_host, ip ] } + user: { get_input: agent_user } + key: { get_secret: agent_key_private } + delete: + implementation: fabric.fabric_plugin.tasks.run_task + inputs: + tasks_file: + default: scripts/tasks.py + task_name: + default: delete_node + task_properties: + default: + hostname: { get_attribute: [ SELF, hostname ] } + fabric_env: + default: + host_string: { get_attribute: [ kubernetes_master_host, ip ] } + user: { get_input: agent_user } + key: { get_secret: agent_key_private } + +node_templates: + + kubernetes_master: + type: cloudify.nodes.Kubernetes.Master + relationships: + - type: cloudify.relationships.contained_in + target: kubernetes_master_host + + kubernetes_node: + type: cloudify.nodes.Kubernetes.Node + relationships: + - type: cloudify.relationships.contained_in + target: kubernetes_node_host + - type: cloudify.relationships.depends_on + target: kubernetes_master + +outputs: + + kubernetes_cluster_bootstrap_token: + value: { get_attribute: [ kubernetes_master, bootstrap_token ] } + + kubernetes_cluster_master_ip: + value: { get_attribute: [ kubernetes_master, master_ip ] } + + kubernetes-admin_client_certificate_data: + value: { get_attribute: [ kubernetes_master, kubernetes-admin_client_certificate_data ] } + + kubernetes-admin_client_key_data: + value: { get_attribute: [ kubernetes_master, kubernetes-admin_client_key_data ] } + + kubernetes_certificate_authority_data: + value: { get_attribute: [ kubernetes_master, kubernetes_certificate_authority_data ] } + +policy_types: + scale_policy_type: + source: policies/scale.clj + properties: + policy_operates_on_group: + default: true + service_selector: + description: regular expression that selects the metric to be measured + default: ".*" + moving_window_size: + description: the moving window for individual sources in secs + default: 10 + scale_threshold: + description: the value to trigger scaling over aggregrated moving values + scale_limit: + description: scaling limit + default: 10 + scale_direction: + description: scale up ('<') or scale down ('>') + default: '<' + cooldown_time: + description: the time to wait before evaluating again after a scale + default: 60 + +groups: {} + +# scale_up_group: +# members: [kubernetes_node_host] +# policies: +# auto_scale_up: +# type: scale_policy_type +# properties: +# policy_operates_on_group: true +# scale_limit: 6 +# scale_direction: '<' +# scale_threshold: 30 +# service_selector: .*kubernetes_node_host.*cpu.total.user +# cooldown_time: 60 +# triggers: +# execute_scale_workflow: +# type: cloudify.policies.triggers.execute_workflow +# parameters: +# workflow: scale +# workflow_parameters: +# delta: 1 +# scalable_entity_name: kubernetes_node_host + +# scale_down_group: +# members: [kubernetes_node_host] +# policies: +# auto_scale_down: +# type: scale_policy_type +# properties: +# policy_operates_on_group: true +# scale_limit: 6 +# scale_direction: '<' +# scale_threshold: 30 +# service_selector: .*kubernetes_node_host.*cpu.total.user +# cooldown_time: 60 +# triggers: +# execute_scale_workflow: +# type: cloudify.policies.triggers.execute_workflow +# parameters: +# workflow: scale +# workflow_parameters: +# delta: 1 +# scalable_entity_name: kubernetes_node_host + +# heal_group: +# members: [kubernetes_node_host] +# policies: +# simple_autoheal_policy: +# type: cloudify.policies.types.host_failure +# properties: +# service: +# - .*kubernetes_node_host.*.cpu.total.system +# - .*kubernetes_node_host.*.process.hyperkube.cpu.percent +# interval_between_workflows: 60 +# triggers: +# auto_heal_trigger: +# type: cloudify.policies.triggers.execute_workflow +# parameters: +# workflow: heal +# workflow_parameters: +# node_instance_id: { 'get_property': [ SELF, node_id ] } +# diagnose_value: { 'get_property': [ SELF, diagnose ] } diff --git a/TOSCA/kubernetes-cluster-TOSCA/openstack-blueprint.yaml b/TOSCA/kubernetes-cluster-TOSCA/openstack-blueprint.yaml new file mode 100644 index 0000000000..3219791c0d --- /dev/null +++ b/TOSCA/kubernetes-cluster-TOSCA/openstack-blueprint.yaml @@ -0,0 +1,330 @@ +# ============LICENSE_START========================================== +# =================================================================== +# Copyright (c) 2017 AT&T +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#============LICENSE_END============================================ + +tosca_definitions_version: cloudify_dsl_1_3 + +description: > + This blueprint creates a Kubernetes Cluster. + It is based on this documentation: https://kubernetes.io/docs/getting-started-guides/kubeadm/ + +imports: + - https://raw.githubusercontent.com/cloudify-cosmo/cloudify-manager/4.1/resources/rest-service/cloudify/types/types.yaml + - https://raw.githubusercontent.com/cloudify-cosmo/cloudify-openstack-plugin/2.2.0/plugin.yaml + - https://raw.githubusercontent.com/cloudify-incubator/cloudify-utilities-plugin/1.2.5/plugin.yaml + - https://raw.githubusercontent.com/cloudify-cosmo/cloudify-fabric-plugin/1.5/plugin.yaml + - https://raw.githubusercontent.com/cloudify-cosmo/cloudify-diamond-plugin/1.3.5/plugin.yaml + - imports/cloud-config.yaml + - imports/kubernetes.yaml + +inputs: + + image: + description: Image to be used when launching agent VMs + default: { get_secret: centos_core_image } + + flavor: + description: Flavor of the agent VMs + default: { get_secret: large_image_flavor } + + agent_user: + description: > + User for connecting to agent VMs + default: centos + + helm_version: + description: helm version to be installed + default: v2.7.0 + +dsl_definitions: + + openstack_config: &openstack_config + username: { get_secret: keystone_username } + password: { get_secret: keystone_password } + tenant_name: { get_secret: keystone_tenant_name } + auth_url: { get_secret: keystone_url } + region: { get_secret: region } + +node_templates: + + nfs_server: + type: cloudify.nodes.SoftwareComponent + properties: + interfaces: + cloudify.interfaces.lifecycle: + start: + implementation: fabric.fabric_plugin.tasks.run_script + inputs: + script_path: scripts/nfs.sh + use_sudo: true + process: + args: + fabric_env: + host_string: { get_attribute: [ kubernetes_master_host, ip ] } + user: { get_input: agent_user } + key: { get_secret: agent_key_private } + relationships: + - type: cloudify.relationships.contained_in + target: kubernetes_master_host + + k8s_tools: + type: cloudify.nodes.SoftwareComponent + properties: + interfaces: + cloudify.interfaces.lifecycle: + start: + implementation: fabric.fabric_plugin.tasks.run_script + inputs: + script_path: scripts/k8s_tools.sh + process: + args: [{ get_input: helm_version }] + fabric_env: + host_string: { get_attribute: [ kubernetes_master_host, ip ] } + user: { get_input: agent_user } + key: { get_secret: agent_key_private } + relationships: + - type: cloudify.relationships.contained_in + target: kubernetes_master + + kubernetes_master_host: + type: cloudify.openstack.nodes.Server + properties: + openstack_config: *openstack_config + agent_config: + user: { get_input: agent_user } + install_method: remote + port: 22 + key: { get_secret: agent_key_private } + server: + key_name: '' + image: '' + flavor: '' + management_network_name: { get_property: [ public_network, resource_id ] } + interfaces: + cloudify.interfaces.lifecycle: + create: + inputs: + args: + image: { get_input: image } + flavor: { get_input: flavor } + userdata: { get_attribute: [ cloudify_host_cloud_config, cloud_config ] } + relationships: + - target: kubernetes_master_port + type: cloudify.openstack.server_connected_to_port + - type: cloudify.relationships.depends_on + target: cloudify_host_cloud_config + + kubernetes_node_host: + type: cloudify.openstack.nodes.Server + properties: + openstack_config: *openstack_config + agent_config: + user: { get_input: agent_user } + install_method: remote + port: 22 + key: { get_secret: agent_key_private } + server: + key_name: '' + image: '' + flavor: '' + management_network_name: { get_property: [ private_network, resource_id ] } + relationships: + - type: cloudify.relationships.contained_in + target: k8s_node_scaling_tier + - target: kubernetes_node_port + type: cloudify.openstack.server_connected_to_port + interfaces: + cloudify.interfaces.lifecycle: + create: + inputs: + args: + image: { get_input: image } + flavor: { get_input: flavor } + userdata: { get_attribute: [ cloudify_host_cloud_config, cloud_config ] } + cloudify.interfaces.monitoring_agent: + install: + implementation: diamond.diamond_agent.tasks.install + inputs: + diamond_config: + interval: 1 + start: diamond.diamond_agent.tasks.start + stop: diamond.diamond_agent.tasks.stop + uninstall: diamond.diamond_agent.tasks.uninstall + cloudify.interfaces.monitoring: + start: + implementation: diamond.diamond_agent.tasks.add_collectors + inputs: + collectors_config: + CPUCollector: {} + MemoryCollector: {} + LoadAverageCollector: {} + DiskUsageCollector: + config: + devices: x?vd[a-z]+[0-9]*$ + NetworkCollector: {} + ProcessResourcesCollector: + config: + enabled: true + unit: B + measure_collector_time: true + cpu_interval: 0.5 + process: + hyperkube: + name: hyperkube + + kubernetes_security_group: + type: cloudify.openstack.nodes.SecurityGroup + properties: + openstack_config: *openstack_config + security_group: + name: kubernetes_security_group + description: kubernetes master security group + rules: + - remote_ip_prefix: 0.0.0.0/0 + port_range_min: 1 + port_range_max: 65535 + protocol: tcp + direction: ingress + ethertype: IPv4 + - remote_ip_prefix: 0.0.0.0/0 + port_range_min: 1 + port_range_max: 65535 + protocol: tcp + direction: egress + ethertype: IPv4 + - remote_ip_prefix: 0.0.0.0/0 + port_range_min: 1 + port_range_max: 65535 + protocol: udp + direction: ingress + ethertype: IPv4 + - remote_ip_prefix: 0.0.0.0/0 + port_range_min: 1 + port_range_max: 65535 + protocol: udp + direction: egress + ethertype: IPv4 + + kubernetes_master_port: + type: cloudify.openstack.nodes.Port + properties: + openstack_config: *openstack_config + relationships: + - type: cloudify.relationships.contained_in + target: public_network + - type: cloudify.relationships.depends_on + target: public_subnet + - type: cloudify.openstack.port_connected_to_security_group + target: kubernetes_security_group + - type: cloudify.openstack.port_connected_to_floating_ip + target: kubernetes_master_ip + + kubernetes_node_port: + type: cloudify.openstack.nodes.Port + properties: + openstack_config: *openstack_config + relationships: + - type: cloudify.relationships.contained_in + target: k8s_node_scaling_tier + - type: cloudify.relationships.connected_to + target: private_network + - type: cloudify.relationships.depends_on + target: private_subnet + - type: cloudify.openstack.port_connected_to_security_group + target: kubernetes_security_group + + private_subnet: + type: cloudify.openstack.nodes.Subnet + properties: + openstack_config: *openstack_config + use_external_resource: true + resource_id: { get_secret: private_subnet_name } + relationships: + - target: private_network + type: cloudify.relationships.contained_in + + private_network: + type: cloudify.openstack.nodes.Network + properties: + openstack_config: *openstack_config + use_external_resource: true + resource_id: { get_secret: private_network_name } + + public_subnet: + type: cloudify.openstack.nodes.Subnet + properties: + openstack_config: *openstack_config + use_external_resource: true + resource_id: { get_secret: public_subnet_name } + relationships: + - target: public_network + type: cloudify.relationships.contained_in + - target: router + type: cloudify.openstack.subnet_connected_to_router + + public_network: + type: cloudify.openstack.nodes.Network + properties: + openstack_config: *openstack_config + use_external_resource: true + resource_id: { get_secret: public_network_name } + + router: + type: cloudify.openstack.nodes.Router + properties: + openstack_config: *openstack_config + use_external_resource: true + resource_id: { get_secret: router_name } + relationships: + - target: external_network + type: cloudify.relationships.connected_to + + external_network: + type: cloudify.openstack.nodes.Network + properties: + openstack_config: *openstack_config + use_external_resource: true + resource_id: { get_secret: external_network_name } + + k8s_node_scaling_tier: + type: cloudify.nodes.Root + + kubernetes_master_ip: + type: cloudify.openstack.nodes.FloatingIP + properties: + openstack_config: *openstack_config + floatingip: + floating_network_name: { get_property: [ external_network, resource_id ] } + +groups: + + k8s_node_group: + members: + - kubernetes_node_host + - kubernetes_node_port + +policies: + + kubernetes_node_vms_scaling_policy: + type: cloudify.policies.scaling + properties: + default_instances: 6 + targets: [k8s_node_group] + +outputs: + + kubernetes_master_public_ip: + value: { get_attribute: [ kubernetes_master_ip, floating_ip_address ] } diff --git a/TOSCA/kubernetes-cluster-TOSCA/policies/scale.clj b/TOSCA/kubernetes-cluster-TOSCA/policies/scale.clj new file mode 100644 index 0000000000..a77d2d2422 --- /dev/null +++ b/TOSCA/kubernetes-cluster-TOSCA/policies/scale.clj @@ -0,0 +1,66 @@ +;;;; ============LICENSE_START========================================== +;;;; =================================================================== +;;;; Copyright (c) 2017 AT&T +;;;; +;;;; Licensed under the Apache License, Version 2.0 (the "License"); +;;;; you may not use this file except in compliance with the License. +;;;; You may obtain a copy of the License at +;;;; +;;;; http://www.apache.org/licenses/LICENSE-2.0 +;;;; +;;;; Unless required by applicable law or agreed to in writing, software +;;;; distributed under the License is distributed on an "AS IS" BASIS, +;;;; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +;;;; See the License for the specific language governing permissions and +;;;; limitations under the License. +;;;;============LICENSE_END============================================ + +(where (service #"{{service_selector}}") + #(info "got event: " %) + + (where (not (expired? event)) + (moving-time-window {{moving_window_size}} + (fn [events] + (let [ + hostmap (atom {}) + hostcnt (atom {}) + ] + (do + (doseq [m events] + (if (nil? (@hostmap (m :host))) + (do + (swap! hostmap assoc (m :host) (m :metric)) + (swap! hostcnt assoc (m :host) 1) + ) + (do + (swap! hostmap assoc (m :host) (+ (m :metric) (@hostmap (m :host)))) + (swap! hostcnt assoc (m :host) (inc (@hostcnt (m :host)))) + ) + ) + ) + (doseq [entry @hostmap] + (swap! hostmap assoc (key entry) (/ (val entry) (@hostcnt (key entry)))) + ) + + (let + [ hostcnt (count @hostmap) + conns (/ (apply + (map (fn [a] (val a)) @hostmap)) hostcnt) + cooling (not (nil? (riemann.index/lookup index "scaling" "suspended")))] + + (do + (info "cooling=" cooling " scale_direction={{scale_direction}} hostcnt=" hostcnt " scale_threshold={{scale_threshold}} conns=" conns) + (if (and (not cooling) ({{scale_direction}} hostcnt {{scale_limit}}) ({{scale_direction}} {{scale_threshold}} conns)) + (do + (info "=== SCALE ===" "{{scale_direction}}") + (process-policy-triggers {}) + (riemann.index/update index {:host "scaling" :service "suspended" :time (unix-time) :description "cooldown flag" :metric 0 :ttl {{cooldown_time}} :state "ok"}) + ) + ) + ) + ) + ) + ) + ) + ) + ) +) diff --git a/TOSCA/kubernetes-cluster-TOSCA/scripts/create.py b/TOSCA/kubernetes-cluster-TOSCA/scripts/create.py new file mode 100644 index 0000000000..e48153917c --- /dev/null +++ b/TOSCA/kubernetes-cluster-TOSCA/scripts/create.py @@ -0,0 +1,93 @@ +#!/usr/bin/env python + +# ============LICENSE_START========================================== +# =================================================================== +# Copyright (c) 2017 AT&T +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#============LICENSE_END============================================ + +# This tack will be triggered after VM created. It will check whether docker is up and running. + +import subprocess +from cloudify import ctx +from cloudify.exceptions import OperationRetry + + +def check_command(command): + + try: + process = subprocess.Popen( + command.split() + ) + except OSError: + return False + + output, error = process.communicate() + + ctx.logger.debug('command: {0} '.format(command)) + ctx.logger.debug('output: {0} '.format(output)) + ctx.logger.debug('error: {0} '.format(error)) + ctx.logger.debug('process.returncode: {0} '.format(process.returncode)) + + if process.returncode: + ctx.logger.error('Running `{0}` returns error.'.format(command)) + return False + + return True + + +def execute_command(_command): + + ctx.logger.debug('_command {0}.'.format(_command)) + + subprocess_args = { + 'args': _command.split(), + 'stdout': subprocess.PIPE, + 'stderr': subprocess.PIPE + } + + ctx.logger.debug('subprocess_args {0}.'.format(subprocess_args)) + + process = subprocess.Popen(**subprocess_args) + output, error = process.communicate() + + ctx.logger.debug('command: {0} '.format(_command)) + ctx.logger.debug('error: {0} '.format(error)) + ctx.logger.debug('process.returncode: {0} '.format(process.returncode)) + + if process.returncode: + ctx.logger.error('Running `{0}` returns error.'.format(_command)) + return False + + return output + + +if __name__ == '__main__': + + # Check if Docker PS works + docker = check_command('docker ps') + if not docker: + raise OperationRetry( + 'Docker is not present on the system.') + ctx.logger.info('Docker is present on the system.') + + # Next check if Cloud Init is running. + finished = False + ps = execute_command('ps -ef') + for line in ps.split('\n'): + if '/usr/bin/python /usr/bin/cloud-init modules' in line: + raise OperationRetry( + 'You provided a Cloud-init Cloud Config to configure instances. ' + 'Waiting for Cloud-init to complete.') + ctx.logger.info('Cloud-init finished.') diff --git a/TOSCA/kubernetes-cluster-TOSCA/scripts/k8s_tools.sh b/TOSCA/kubernetes-cluster-TOSCA/scripts/k8s_tools.sh new file mode 100644 index 0000000000..2eee89e78b --- /dev/null +++ b/TOSCA/kubernetes-cluster-TOSCA/scripts/k8s_tools.sh @@ -0,0 +1,60 @@ +#!/bin/sh + +# ============LICENSE_START========================================== +# =================================================================== +# Copyright (c) 2017 AT&T +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#============LICENSE_END============================================ + +# this script will install dashboard on k8s master. + +#install heapster +git clone -b release-1.5 https://github.com/kubernetes/heapster.git + +kubectl create -f heapster/deploy/kube-config/influxdb/ +kubectl create -f heapster/deploy/kube-config/rbac/heapster-rbac.yaml + +#install dashboard +kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/alternative/kubernetes-dashboard.yaml + +##Change spec.type from ClusterIP to NodePort and save. +kubectl get svc kubernetes-dashboard --namespace=kube-system -o yaml | sed 's/type: ClusterIP/type: NodePort/' | kubectl replace -f - + +cat <<EOF >>dashboard-admin.yaml +apiVersion: rbac.authorization.k8s.io/v1beta1 +kind: ClusterRoleBinding +metadata: + name: kubernetes-dashboard + labels: + k8s-app: kubernetes-dashboard +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: cluster-admin +subjects: +- kind: ServiceAccount + name: kubernetes-dashboard + namespace: kube-system +EOF + +kubectl create -f dashboard-admin.yaml + +#install helm +wget http://storage.googleapis.com/kubernetes-helm/helm-$1-linux-amd64.tar.gz +tar -zxvf helm-$1-linux-amd64.tar.gz +sudo mv linux-amd64/helm /usr/bin/helm + +kubectl -n kube-system create sa tiller +kubectl create clusterrolebinding tiller --clusterrole cluster-admin --serviceaccount=kube-system:tiller +helm init --service-account tiller
\ No newline at end of file diff --git a/TOSCA/kubernetes-cluster-TOSCA/scripts/kubernetes_master/configure.py b/TOSCA/kubernetes-cluster-TOSCA/scripts/kubernetes_master/configure.py new file mode 100644 index 0000000000..0ec2cb2e34 --- /dev/null +++ b/TOSCA/kubernetes-cluster-TOSCA/scripts/kubernetes_master/configure.py @@ -0,0 +1,175 @@ +#!/usr/bin/env python + +# ============LICENSE_START========================================== +# =================================================================== +# Copyright (c) 2017 AT&T +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#============LICENSE_END============================================ + +# This script will be executed on Kubernetes master host. It will initialize the master, and install a pod network. + +import pwd +import grp +import os +import re +import getpass +import subprocess +from cloudify import ctx +from cloudify.exceptions import OperationRetry +from cloudify_rest_client.exceptions import CloudifyClientError + +JOIN_COMMAND_REGEX = '^kubeadm join[\sA-Za-z0-9\.\:\-\_]*' +BOOTSTRAP_TOKEN_REGEX = '[a-z0-9]{6}.[a-z0-9]{16}' +IP_PORT_REGEX = '[0-9]+(?:\.[0-9]+){3}:[0-9]+' +NOT_SHA_REGEX='^(?!.*sha256)' +JCRE_COMPILED = re.compile(JOIN_COMMAND_REGEX) +BTRE_COMPILED = re.compile(BOOTSTRAP_TOKEN_REGEX) +IPRE_COMPILED = re.compile(IP_PORT_REGEX) +SHA_COMPILED=re.compile(NOT_SHA_REGEX) + +def execute_command(_command): + + ctx.logger.debug('_command {0}.'.format(_command)) + + subprocess_args = { + 'args': _command.split(), + 'stdout': subprocess.PIPE, + 'stderr': subprocess.PIPE + } + + ctx.logger.debug('subprocess_args {0}.'.format(subprocess_args)) + + process = subprocess.Popen(**subprocess_args) + output, error = process.communicate() + + ctx.logger.debug('command: {0} '.format(_command)) + ctx.logger.debug('output: {0} '.format(output)) + ctx.logger.debug('error: {0} '.format(error)) + ctx.logger.debug('process.returncode: {0} '.format(process.returncode)) + + if process.returncode: + ctx.logger.error('Running `{0}` returns error.'.format(_command)) + return False + + return output + + +def cleanup_and_retry(): + reset_cluster_command = 'sudo kubeadm reset' + output = execute_command(reset_cluster_command) + ctx.logger.info('reset_cluster_command {1}'.format(reset_cluster_command, output)) + raise OperationRetry('Restarting kubernetes because of a problem.') + + +def configure_admin_conf(): + # Add the kubeadmin config to environment + agent_user = getpass.getuser() + uid = pwd.getpwnam(agent_user).pw_uid + gid = grp.getgrnam('docker').gr_gid + admin_file_dest = os.path.join(os.path.expanduser('~'), 'admin.conf') + + execute_command('sudo cp {0} {1}'.format('/etc/kubernetes/admin.conf', admin_file_dest)) + execute_command('sudo chown {0}:{1} {2}'.format(uid, gid, admin_file_dest)) + + with open(os.path.join(os.path.expanduser('~'), '.bashrc'), 'a') as outfile: + outfile.write('export KUBECONFIG=$HOME/admin.conf') + os.environ['KUBECONFIG'] = admin_file_dest + + +def setup_secrets(_split_master_port, _bootstrap_token): + master_ip = split_master_port[0] + master_port = split_master_port[1] + ctx.instance.runtime_properties['master_ip'] = _split_master_port[0] + ctx.instance.runtime_properties['master_port'] = _split_master_port[1] + ctx.instance.runtime_properties['bootstrap_token'] = _bootstrap_token + from cloudify import manager + cfy_client = manager.get_rest_client() + + _secret_key = 'kubernetes_master_ip' + if cfy_client and not len(cfy_client.secrets.list(key=_secret_key)) == 1: + cfy_client.secrets.create(key=_secret_key, value=master_ip) + else: + cfy_client.secrets.update(key=_secret_key, value=master_ip) + ctx.logger.info('Set secret: {0}.'.format(_secret_key)) + + _secret_key = 'kubernetes_master_port' + if cfy_client and not len(cfy_client.secrets.list(key=_secret_key)) == 1: + cfy_client.secrets.create(key=_secret_key, value=master_port) + else: + cfy_client.secrets.update(key=_secret_key, value=master_port) + ctx.logger.info('Set secret: {0}.'.format(_secret_key)) + + _secret_key = 'bootstrap_token' + if cfy_client and not len(cfy_client.secrets.list(key=_secret_key)) == 1: + cfy_client.secrets.create(key=_secret_key, value=_bootstrap_token) + else: + cfy_client.secrets.update(key=_secret_key, value=_bootstrap_token) + ctx.logger.info('Set secret: {0}.'.format(_secret_key)) + + +if __name__ == '__main__': + + ctx.instance.runtime_properties['KUBERNETES_MASTER'] = True + cniCommand1=subprocess.Popen(["sudo", "sysctl", 'net.bridge.bridge-nf-call-iptables=1'], stdout=subprocess.PIPE) + # Start Kubernetes Master + ctx.logger.info('Attempting to start Kubernetes master.') + start_master_command = 'sudo kubeadm init' + start_output = execute_command(start_master_command) + ctx.logger.debug('start_master_command output: {0}'.format(start_output)) + # Check if start succeeded. + if start_output is False or not isinstance(start_output, basestring): + ctx.logger.error('Kubernetes master failed to start.') + cleanup_and_retry() + ctx.logger.info('Kubernetes master started successfully.') + + # Slice and dice the start_master_command start_output. + ctx.logger.info('Attempting to retrieve Kubernetes cluster information.') + split_start_output = \ + [line.strip() for line in start_output.split('\n') if line.strip()] + del line + + ctx.logger.debug( + 'Kubernetes master start output, split and stripped: {0}'.format( + split_start_output)) + split_join_command = '' + for li in split_start_output: + ctx.logger.debug('li in split_start_output: {0}'.format(li)) + if re.match(JCRE_COMPILED, li): + split_join_command = re.split('\s', li) + del li + ctx.logger.info('split_join_command: {0}'.format(split_join_command)) + + if not split_join_command: + ctx.logger.error('No join command in split_start_output: {0}'.format(split_join_command)) + cleanup_and_retry() + + for li in split_join_command: + ctx.logger.info('Sorting bits and pieces: li: {0}'.format(li)) + if (re.match(BTRE_COMPILED, li) and re.match(SHA_COMPILED, li)): + bootstrap_token = li + elif re.match(IPRE_COMPILED, li): + split_master_port = li.split(':') + setup_secrets(split_master_port, bootstrap_token) + configure_admin_conf() + + weaveCommand1=subprocess.Popen(["kubectl", "version"], stdout=subprocess.PIPE) + weaveCommand2=subprocess.Popen(["base64"],stdin=weaveCommand1.stdout, stdout=subprocess.PIPE) + kubever = weaveCommand2.communicate()[0] + kubever = kubever.replace('\n', '').replace('\r', '') + ctx.logger.info("kubever :"+kubever) + weaveURL=('https://cloud.weave.works/k8s/net?k8s-version={0}'.format(kubever)) + ctx.logger.info("weaveURL:" + weaveURL) + weaveCommand4=subprocess.Popen(["kubectl","apply","-f",weaveURL],stdout=subprocess.PIPE) + weaveResult= weaveCommand4.communicate()[0] + ctx.logger.info("weaveResult :"+weaveResult) diff --git a/TOSCA/kubernetes-cluster-TOSCA/scripts/kubernetes_master/start.py b/TOSCA/kubernetes-cluster-TOSCA/scripts/kubernetes_master/start.py new file mode 100644 index 0000000000..9a9fd8f11a --- /dev/null +++ b/TOSCA/kubernetes-cluster-TOSCA/scripts/kubernetes_master/start.py @@ -0,0 +1,153 @@ +#!/usr/bin/env python + +# ============LICENSE_START========================================== +# =================================================================== +# Copyright (c) 2017 AT&T +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#============LICENSE_END============================================ + +#This script will be execute on master host. This script will check whether Kube-DNS is running, and set secrets in cloudify. + +import os +import subprocess +import pip +try: + import yaml +except ImportError: + pip.main(['install', 'pyyaml']) + import yaml + +from cloudify import ctx +from cloudify.exceptions import RecoverableError +from cloudify import manager + + +def execute_command(_command): + + ctx.logger.debug('_command {0}.'.format(_command)) + + subprocess_args = { + 'args': _command.split(), + 'stdout': subprocess.PIPE, + 'stderr': subprocess.PIPE + } + + ctx.logger.debug('subprocess_args {0}.'.format(subprocess_args)) + + process = subprocess.Popen(**subprocess_args) + output, error = process.communicate() + + ctx.logger.debug('command: {0} '.format(_command)) + ctx.logger.debug('output: {0} '.format(output)) + ctx.logger.debug('error: {0} '.format(error)) + ctx.logger.debug('process.returncode: {0} '.format(process.returncode)) + + if process.returncode: + ctx.logger.error('Running `{0}` returns error.'.format(_command)) + return False + + return output + + +def check_kubedns_status(_get_pods): + + ctx.logger.debug('get_pods: {0} '.format(_get_pods)) + + for pod_line in _get_pods.split('\n'): + ctx.logger.debug('pod_line: {0} '.format(pod_line)) + try: + _namespace, _name, _ready, _status, _restarts, _age = pod_line.split() + except ValueError: + pass + else: + if 'kube-dns' in _name and 'Running' not in _status: + return False + elif 'kube-dns' in _name and 'Running' in _status: + return True + return False + + +if __name__ == '__main__': + + cfy_client = manager.get_rest_client() + + # Checking if the Kubernetes DNS service is running (last step). + admin_file_dest = os.path.join(os.path.expanduser('~'), 'admin.conf') + os.environ['KUBECONFIG'] = admin_file_dest + get_pods = execute_command('kubectl get pods --all-namespaces') + if not check_kubedns_status(get_pods): + raise RecoverableError('kube-dns not Running') + + # Storing the K master configuration. + kubernetes_master_config = {} + with open(admin_file_dest, 'r') as outfile: + try: + kubernetes_master_config = yaml.load(outfile) + except yaml.YAMLError as e: + RecoverableError( + 'Unable to read Kubernetes Admin file: {0}: {1}'.format( + admin_file_dest, str(e))) + ctx.instance.runtime_properties['configuration_file_content'] = \ + kubernetes_master_config + + clusters = kubernetes_master_config.get('clusters') + _clusters = {} + for cluster in clusters: + __name = cluster.get('name') + _cluster = cluster.get('cluster', {}) + _secret_key = '%s_certificate_authority_data' % __name + if cfy_client and not len(cfy_client.secrets.list(key=_secret_key)) == 1: + cfy_client.secrets.create(key=_secret_key, value=_cluster.get('certificate-authority-data')) + ctx.logger.info('Set secret: {0}.'.format(_secret_key)) + else: + cfy_client.secrets.update(key=_secret_key, value=_cluster.get('certificate-authority-data')) + ctx.instance.runtime_properties['%s_certificate_authority_data' % __name] = _cluster.get('certificate-authority-data') + _clusters[__name] = _cluster + del __name + + contexts = kubernetes_master_config.get('contexts') + _contexts = {} + for context in contexts: + __name = context.get('name') + _context = context.get('context', {}) + _contexts[__name] = _context + del __name + + users = kubernetes_master_config.get('users') + _users = {} + for user in users: + __name = user.get('name') + _user = user.get('user', {}) + _secret_key = '%s_client_certificate_data' % __name + if cfy_client and not len(cfy_client.secrets.list(key=_secret_key)) == 1: + cfy_client.secrets.create(key=_secret_key, value=_user.get('client-certificate-data')) + ctx.logger.info('Set secret: {0}.'.format(_secret_key)) + else: + cfy_client.secrets.update(key=_secret_key, value=_user.get('client-certificate-data')) + _secret_key = '%s_client_key_data' % __name + if cfy_client and not len(cfy_client.secrets.list(key=_secret_key)) == 1: + cfy_client.secrets.create(key=_secret_key, value=_user.get('client-key-data')) + ctx.logger.info('Set secret: {0}.'.format(_secret_key)) + else: + cfy_client.secrets.update(key=_secret_key, value=_user.get('client-key-data')) + ctx.instance.runtime_properties['%s_client_certificate_data' % __name] = _user.get('client-certificate-data') + ctx.instance.runtime_properties['%s_client_key_data' % __name] = _user.get('client-key-data') + _users[__name] = _user + del __name + + ctx.instance.runtime_properties['kubernetes'] = { + 'clusters': _clusters, + 'contexts': _contexts, + 'users': _users + } diff --git a/TOSCA/kubernetes-cluster-TOSCA/scripts/kubernetes_node/configure.py b/TOSCA/kubernetes-cluster-TOSCA/scripts/kubernetes_node/configure.py new file mode 100644 index 0000000000..c08fa7017d --- /dev/null +++ b/TOSCA/kubernetes-cluster-TOSCA/scripts/kubernetes_node/configure.py @@ -0,0 +1,88 @@ +#!/usr/bin/env python + +# ============LICENSE_START========================================== +# =================================================================== +# Copyright (c) 2017 AT&T +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#============LICENSE_END============================================ + +# Afther K8s master up and running. This script will be triggered in each worker nodes. It will join the nodes, and mount the NFS directory. + +import subprocess +from cloudify import ctx +from cloudify.exceptions import NonRecoverableError + +START_COMMAND = 'sudo kubeadm join --token {0} {1}:{2}' + + +def execute_command(_command): + + ctx.logger.debug('_command {0}.'.format(_command)) + + subprocess_args = { + 'args': _command.split(), + 'stdout': subprocess.PIPE, + 'stderr': subprocess.PIPE + } + + ctx.logger.debug('subprocess_args {0}.'.format(subprocess_args)) + + process = subprocess.Popen(**subprocess_args) + output, error = process.communicate() + + ctx.logger.debug('command: {0} '.format(_command)) + ctx.logger.debug('output: {0} '.format(output)) + ctx.logger.debug('error: {0} '.format(error)) + ctx.logger.debug('process.returncode: {0} '.format(process.returncode)) + + if process.returncode: + ctx.logger.error('Running `{0}` returns error.'.format(_command)) + return False + + return output + + +if __name__ == '__main__': + + hostname = execute_command('hostname') + ctx.instance.runtime_properties['hostname'] = hostname.rstrip('\n') + + # Get the master cluster info. + masters = \ + [x for x in ctx.instance.relationships if + x.target.instance.runtime_properties.get( + 'KUBERNETES_MASTER', False)] + if len(masters) != 1: + raise NonRecoverableError( + 'Currently, a Kubernetes node must have a ' + 'dependency on one Kubernetes master.') + master = masters[0] + bootstrap_token = \ + master.target.instance.runtime_properties['bootstrap_token'] + master_ip = \ + master.target.instance.runtime_properties['master_ip'] + master_port = \ + master.target.instance.runtime_properties['master_port'] + + # Join the cluster. + cniCommand1=subprocess.Popen(["sudo", "sysctl", 'net.bridge.bridge-nf-call-iptables=1'], stdout=subprocess.PIPE) + join_command = \ + 'sudo kubeadm join --token {0} {1}:{2}'.format( + bootstrap_token, master_ip, master_port) + execute_command(join_command) + + #mount + mount_command=\ + 'sudo mount -t nfs -o proto=tcp,port=2049 {0}:/dockerdata-nfs /dockerdata-nfs'.format(master_ip) + execute_command(mount_command)
\ No newline at end of file diff --git a/TOSCA/kubernetes-cluster-TOSCA/scripts/nfs.sh b/TOSCA/kubernetes-cluster-TOSCA/scripts/nfs.sh new file mode 100644 index 0000000000..c4ea3581bb --- /dev/null +++ b/TOSCA/kubernetes-cluster-TOSCA/scripts/nfs.sh @@ -0,0 +1,29 @@ +#!/bin/sh + +# ============LICENSE_START========================================== +# =================================================================== +# Copyright (c) 2017 AT&T +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#============LICENSE_END============================================ + +# this script will set the NFS server on k8s master. + +mkdir -p /dockerdata-nfs +chmod 777 /dockerdata-nfs +yum -y install nfs-utils +systemctl enable nfs-server.service +systemctl start nfs-server.service +echo "/dockerdata-nfs *(rw,no_root_squash,no_subtree_check)" |sudo tee --append /etc/exports +echo "/home/centos/dockerdata-nfs /dockerdata-nfs none bind 0 0" |sudo tee --append /etc/fstab +exportfs -a
\ No newline at end of file diff --git a/TOSCA/kubernetes-cluster-TOSCA/scripts/tasks.py b/TOSCA/kubernetes-cluster-TOSCA/scripts/tasks.py new file mode 100644 index 0000000000..cb2b3a0c85 --- /dev/null +++ b/TOSCA/kubernetes-cluster-TOSCA/scripts/tasks.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python + +# ============LICENSE_START========================================== +# =================================================================== +# Copyright (c) 2017 AT&T +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#============LICENSE_END============================================ + +# here we define some tasks + +from fabric.api import run + + +def label_node(labels, hostname): + if labels: + label_list = [] + for key, value in labels.items(): + label_pair_string = '%s=%s' % (key, value) + label_list.append(label_pair_string) + label_string = ' '.join(label_list) + command = 'kubectl label nodes %s %s' % (hostname, label_string) + run(command) + + +def stop_node(hostname): + command = 'kubectl drain %s' % (hostname) + run(command) + + +def delete_node(hostname): + command = 'kubectl delete no %s' % (hostname) + run(command) diff --git a/docs/OOM Project Description/oom_project_description.rst b/docs/OOM Project Description/oom_project_description.rst index 18309ca74c..ba9de5f1f7 100644 --- a/docs/OOM Project Description/oom_project_description.rst +++ b/docs/OOM Project Description/oom_project_description.rst @@ -5,6 +5,10 @@ ONAP Operations Manager Project ############################### +.. contents:: + :depth: 3 +.. + Introduction ============ @@ -22,46 +26,80 @@ its life cycle while using hardware resources efficiently. Quick Start Guide ================= -Once a kubernetes environment is available (check out `ONAP on Kubernetes <https://wiki.onap.org/display/DW/ONAP+on+Kubernetes>`__ if you're -getting started) and the deployment artifacts have been customized for your location, ONAP is ready to be installed. +Pre-requisites +-------------- + +* Your Kubernetes environment must be available. For more information see, `ONAP on Kubernetes <https://wiki.onap.org/display/DW/ONAP+on+Kubernetes>`__. +* Deployment artifacts are customized for your location. + +**Step 1** + +Review and optionally change configuration parameters: + +Setup the `/oom/kubernetes/config/onap-parameters.yaml <https://gerrit.onap.org/r/gitweb?p=oom.git;a=blob;f=kubernetes/config/onap-parameters.yaml;h=7ddaf4d4c3dccf2fad515265f0da9c31ec0e64b1;hb=refs/heads/master>`__ file with key-value pairs specific to your OpenStack environment. + +OR + +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. + +**Step 2** + +In-order to be able to support multiple ONAP instances within a single kubernetes environment, a configuration set is required. To do this, execute 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:: + + oom/kubernetes/config/createConfig.sh -n onap + +Where: + +* onap' refers to the name of the instance. This serves as the Namespace prefix for each deployed ONAP component (for example, onap-mso). + +**Step 3** + +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 functions: + +* Creating the namespaces used to encapsulate the ONAP components, and +* Creating the services, pods and containers within each of these namespaces that provide the core functionality of ONAP. + +Before you execute the createAll.bash. script, 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 need editing to match your environment and deployment into the default namespace. + +To deploy the containers and create your ONAP system, execute the following command:: + + oom/kubernetes/oneclick/createAll.bash -n onap + +Additional information on usage of createAll.bash +------------------------------------------------- + +Namespaces provide isolation between ONAP components as ONAP release 1.0 contains duplicate application (for example, mariadb) and port usage. -The first step is to setup -the \ `/oom/kubernetes/config/onap-parameters.yaml <https://gerrit.onap.org/r/gitweb?p=oom.git;a=blob;f=kubernetes/config/onap-parameters.yaml;h=7ddaf4d4c3dccf2fad515265f0da9c31ec0e64b1;hb=refs/heads/master>`__ -file 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. +As such createAll.bash requires the user to enter a namespace prefix string that can be used to separate multiple deployments of onap. The result will be set of 10 namespaces (for example, onap-sdc, onap-aai, onap-mso, onap-message-router, onap-robot, onap-vid, onap-sdnc, onap-portal, onap-policy, onap-appc) being created within the kubernetes environment. -In-order to be able to support multiple ONAP instances within a single 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.:: +Deploying multiple ONAP instances within the same Kubernetes cluster +-------------------------------------------------------------------- - > ./createConfig.sh -n onapTrial +To deploy multiple ONAP instances, you must specify the number of Instances you would like to create in a Kubernetes cluster using createAllbash. -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 -functions: +This is currently required due to the use of NodePort ranges. NodePorts allow external IP:Port access to containers that are running inside a Kubernetes cluster. -- Creating the namespaces used to encapsulate the ONAP components, and +To create multiple instances of an ONAP deployment in the cluster, use the following commands:: + + oom/kubernetes/config/createConfig.sh -n onap + + oom/kubernetes/oneclick/createAll.bash -n onap -i 2 + +Where: -- Creating the services, pods and containers within each of these - namespaces that provide the core functionality of ONAP. +* 'onap' refers to the name of the instance. +* ‘i 2’ refers to the number of instances of an ONAP deployment in the cluster. -To deploy the containers and create your ONAP system enter:: +To delete a deployed instance +----------------------------- - > ./createAll.bash -n onapTrial +To delete a deployed instance, use the following command:: + + oom/kubernetes/oneclick/deleteAll.bash -n onap + +**Note**: Deleting the runtime containers does not remove the configuration created in step 2. -Namespaces provide isolation between ONAP components as ONAP release 1.0 -contains duplicate application (e.g. mariadb) and port usage. As -such createAll.bash requires the user to enter a namespace prefix string -that can be used to separate multiple deployments of onap. The result -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 -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 need editing to match your environment and deployment into the -default namespace before running createAll.bash. +For more information on OOM project documentation, refer to `Quick Start Guide on Wiki <https://wiki.onap.org/display/DW/ONAP+Operations+Manager+Project#ONAPOperationsManagerProject-QuickStartGuide>`__. Demo Video ---------- diff --git a/docs/OOM User Guide/oom_user_guide.rst b/docs/OOM User Guide/oom_user_guide.rst index ee3b2f1430..00ebccbfa3 100644 --- a/docs/OOM User Guide/oom_user_guide.rst +++ b/docs/OOM User Guide/oom_user_guide.rst @@ -10,10 +10,10 @@ Introduction ============ 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. @@ -21,10 +21,10 @@ OOM ensures that ONAP is easily deployable and maintainable throughout 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 @@ -34,14 +34,14 @@ deployment options for OOM: 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 @@ -50,42 +50,42 @@ OOM deployments of ONAP provide many benefits: 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 @@ -125,7 +125,7 @@ stopped and deleted. These life-cycle operations are managed by 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 @@ -137,7 +137,7 @@ ONAP Components to Kubernetes Object Relationships 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. @@ -152,7 +152,7 @@ The relationship between these objects is shown in the following figure: .. 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 @@ -181,15 +181,15 @@ OOM works with both physical and virtual worker machines.  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. @@ -197,13 +197,13 @@ 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). @@ -213,7 +213,7 @@ Persistent Volumes 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>`__) @@ -231,7 +231,7 @@ OOM Networking with Kubernetes 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: @@ -378,8 +378,8 @@ Kubernetes Deployment Specifications for ONAP 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. @@ -473,20 +473,20 @@ specification for a mariadb pod. 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 @@ -501,14 +501,14 @@ this pod is found. 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: @@ -614,7 +614,7 @@ relationships need to be specified. 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 @@ -656,7 +656,7 @@ mso namespace. 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**:: @@ -725,16 +725,16 @@ is the contents of the file: 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. @@ -768,10 +768,10 @@ Development Deployments 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. @@ -786,20 +786,20 @@ will enhance these deployment specifications as follows: 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 @@ -807,44 +807,29 @@ the \ `/oom/kubernetes/config/onap-parameters.yaml <https://gerrit.onap.org/r/g 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. @@ -854,7 +839,7 @@ 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 @@ -873,7 +858,7 @@ that can be used to separate multiple deployments of onap. The result 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. @@ -891,16 +876,16 @@ integration will be done: 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 @@ -925,9 +910,9 @@ A message sequence chart of the registration process: 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. diff --git a/docs/release-notes.rst b/docs/release-notes.rst index 928d5dc8ec..f3e3d8f790 100644 --- a/docs/release-notes.rst +++ b/docs/release-notes.rst @@ -24,16 +24,16 @@ The main goal of the Amsterdam release was to: **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. @@ -45,7 +45,7 @@ The main goal of the Amsterdam release was to: **Security Issues** - N/A + N/A **Upgrade Notes** diff --git a/kubernetes/Makefile b/kubernetes/Makefile new file mode 100644 index 0000000000..4cf97059ac --- /dev/null +++ b/kubernetes/Makefile @@ -0,0 +1,47 @@ +PARENT_CHART := onap +COMMON_CHARTS_DIR := common +SETUP_CHARTS_DIR := setup +# FIXME OOM-765 +ROOT_DIR := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST)))) +OUTPUT_DIR := $(ROOT_DIR)/dist +PACKAGE_DIR := $(OUTPUT_DIR)/packages +SECRET_DIR := $(OUTPUT_DIR)/secrets + +EXCLUDES := $(SETUP_CHARTS_DIR) $(COMMON_CHARTS_DIR) config oneclick readiness test dist $(PARENT_CHART) dcae +HELM_CHARTS := $(filter-out $(EXCLUDES), $(patsubst %/.,%,$(wildcard */.))) $(PARENT_CHART) + +.PHONY: $(EXCLUDES) $(HELM_CHARTS) + +all: $(COMMON_CHARTS_DIR) $(SETUP_CHARTS_DIR) $(HELM_CHARTS) + +common: + @echo "\n[$@]" + @make package-$@ + +setup: + @echo "\n[$@]" + @make package-$@ + +$(HELM_CHARTS): + @echo "\n[$@]" + @make package-$@ + +make-%: + @if [ -f $*/Makefile ]; then make -C $*; fi + +dep-%: make-% + @if [ -f $*/requirements.yaml ]; then helm dep up $*; fi + +lint-%: dep-% + @if [ -f $*/Chart.yaml ]; then helm lint $*; fi + +package-%: lint-% + @mkdir -p $(PACKAGE_DIR) + @if [ -f $*/Chart.yaml ]; then helm package -d $(PACKAGE_DIR) $*; fi + +clean: + @rm -f */requirements.lock + @rm -f *tgz */charts/*tgz + @rm -rf $(PACKAGE_DIR) +%: + @:
\ No newline at end of file diff --git a/kubernetes/README_HELM b/kubernetes/README_HELM index c1d5fdf432..0f65120397 100644 --- a/kubernetes/README_HELM +++ b/kubernetes/README_HELM @@ -3,7 +3,7 @@ Prerequisites: - 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. diff --git a/kubernetes/config/docker/init/src/config/aaf/data/ecomp.cql b/kubernetes/aaf/resources/config/aaf-cs-data/ecomp.cql index 6fddf65001..6fddf65001 100644 --- a/kubernetes/config/docker/init/src/config/aaf/data/ecomp.cql +++ b/kubernetes/aaf/resources/config/aaf-cs-data/ecomp.cql diff --git a/kubernetes/config/docker/init/src/config/aaf/data/identities.dat b/kubernetes/aaf/resources/config/aaf-cs-data/identities.dat index 98bf99a3d1..98bf99a3d1 100644 --- a/kubernetes/config/docker/init/src/config/aaf/data/identities.dat +++ b/kubernetes/aaf/resources/config/aaf-cs-data/identities.dat diff --git a/kubernetes/config/docker/init/src/config/aaf/data/identities.idx b/kubernetes/aaf/resources/config/aaf-cs-data/identities.idx Binary files differindex 78fc0a5693..78fc0a5693 100644 --- a/kubernetes/config/docker/init/src/config/aaf/data/identities.idx +++ b/kubernetes/aaf/resources/config/aaf-cs-data/identities.idx diff --git a/kubernetes/config/docker/init/src/config/aaf/data/init.cql b/kubernetes/aaf/resources/config/aaf-cs-data/init.cql index 81700f830c..81700f830c 100644 --- a/kubernetes/config/docker/init/src/config/aaf/data/init.cql +++ b/kubernetes/aaf/resources/config/aaf-cs-data/init.cql diff --git a/kubernetes/config/docker/init/src/config/aaf/data2/identities.dat b/kubernetes/aaf/resources/config/aaf-data/identities.dat index 95eb51d1be..95eb51d1be 100644 --- a/kubernetes/config/docker/init/src/config/aaf/data2/identities.dat +++ b/kubernetes/aaf/resources/config/aaf-data/identities.dat diff --git a/kubernetes/aaf/templates/aaf-configmap.yaml b/kubernetes/aaf/templates/aaf-configmap.yaml new file mode 100644 index 0000000000..b6e494df46 --- /dev/null +++ b/kubernetes/aaf/templates/aaf-configmap.yaml @@ -0,0 +1,9 @@ +#{{ if not .Values.disableAafAaf }} +apiVersion: v1 +kind: ConfigMap +metadata: + name: aaf-data-configmap + namespace: {{ .Values.nsPrefix }} +data: +{{ (.Files.Glob "resources/config/aaf-data/*").AsConfig | indent 2 }} +#{{ end }} diff --git a/kubernetes/aaf/templates/aaf-cs-deployment.yaml b/kubernetes/aaf/templates/aaf-cs-deployment.yaml index acd6a7aeb6..817f876f6f 100644 --- a/kubernetes/aaf/templates/aaf-cs-deployment.yaml +++ b/kubernetes/aaf/templates/aaf-cs-deployment.yaml @@ -3,9 +3,9 @@ apiVersion: extensions/v1beta1 kind: Deployment metadata: name: aaf-cs - namespace: "{{ .Values.nsPrefix }}-aaf" + namespace: "{{ .Values.nsPrefix }}" spec: - replicas: 1 + replicas: {{ .Values.aafcsReplicas }} selector: matchLabels: app: aaf-cs @@ -31,8 +31,8 @@ spec: 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 }} diff --git a/kubernetes/aaf/templates/aaf-deployment.yaml b/kubernetes/aaf/templates/aaf-deployment.yaml index 6664f18886..c084cd36b6 100644 --- a/kubernetes/aaf/templates/aaf-deployment.yaml +++ b/kubernetes/aaf/templates/aaf-deployment.yaml @@ -5,8 +5,9 @@ metadata: labels: app: aaf name: aaf - namespace: "{{ .Values.nsPrefix }}-aaf" + namespace: "{{ .Values.nsPrefix }}" spec: + replicas: {{ .Values.aafReplicas }} selector: matchLabels: app: aaf @@ -48,8 +49,8 @@ spec: 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 }} diff --git a/kubernetes/aaf/templates/aaf-secret.yaml b/kubernetes/aaf/templates/aaf-secret.yaml new file mode 100644 index 0000000000..4b6984ab38 --- /dev/null +++ b/kubernetes/aaf/templates/aaf-secret.yaml @@ -0,0 +1,10 @@ +#{{ if not .Values.disableAafAafCs }} +apiVersion: v1 +kind: Secret +metadata: + name: aaf-cs-data-secret + namespace: {{ .Values.nsPrefix }} +type: Opaque +data: +{{ (.Files.Glob "resources/config/aaf-cs-data/*").AsSecrets | indent 2 }} +#{{ end }} diff --git a/kubernetes/aaf/templates/all-services.yaml b/kubernetes/aaf/templates/all-services.yaml index be04180089..0a06d1dd3c 100644 --- a/kubernetes/aaf/templates/all-services.yaml +++ b/kubernetes/aaf/templates/all-services.yaml @@ -3,7 +3,7 @@ apiVersion: v1 kind: Service metadata: name: aaf-cs - namespace: "{{ .Values.nsPrefix }}-aaf" + namespace: "{{ .Values.nsPrefix }}" labels: app: aaf-cs spec: @@ -26,7 +26,7 @@ apiVersion: v1 kind: Service metadata: name: aaf-authz-service - namespace: "{{ .Values.nsPrefix }}-aaf" + namespace: "{{ .Values.nsPrefix }}" labels: app: aaf-authz-service spec: diff --git a/kubernetes/aaf/values.yaml b/kubernetes/aaf/values.yaml index a8589a30dd..eac5d00e19 100644 --- a/kubernetes/aaf/values.yaml +++ b/kubernetes/aaf/values.yaml @@ -1,8 +1,10 @@ nsPrefix: onap pullPolicy: Always nodePortPrefix: 302 +aafcsReplicas: 1 +aafReplicas: 1 image: - readiness: oomk8s/readiness-check:1.0.0 + readiness: oomk8s/readiness-check:1.1.0 aafImage: nexus3.onap.org:10001/onap/aaf/authz-service aafVersion: latest csImage: nexus3.onap.org:10001/library/cassandra diff --git a/kubernetes/config/docker/init/src/config/aai/aai-data/chef-config/dev/.knife/solo.rb b/kubernetes/aai/resources/config/aai-data/chef-config/dev/.knife/solo.rb index 3d903adcc5..3d903adcc5 100644 --- a/kubernetes/config/docker/init/src/config/aai/aai-data/chef-config/dev/.knife/solo.rb +++ b/kubernetes/aai/resources/config/aai-data/chef-config/dev/.knife/solo.rb diff --git a/kubernetes/config/docker/init/src/config/aai/aai-data/environments/README.md b/kubernetes/aai/resources/config/aai-data/environments/README.md index 3fa254d25a..3fa254d25a 100644 --- a/kubernetes/config/docker/init/src/config/aai/aai-data/environments/README.md +++ b/kubernetes/aai/resources/config/aai-data/environments/README.md diff --git a/kubernetes/config/docker/init/src/config/aai/aai-data/environments/simpledemo.json b/kubernetes/aai/resources/config/aai-data/environments/simpledemo.json index 99edba2bed..7b299f7a39 100644 --- a/kubernetes/config/docker/init/src/config/aai/aai-data/environments/simpledemo.json +++ b/kubernetes/aai/resources/config/aai-data/environments/simpledemo.json @@ -33,16 +33,16 @@ "PROJECT_HOME": "/opt/app/aai-traversal", "LOGROOT": "/opt/aai/logroot", "JAVA_HOME": "/usr/lib/jvm/java-8-openjdk-amd64", - "AAI_SERVER_URL_BASE": "https://aai-service.onap-aai:8443/aai/", - "AAI_SERVER_URL": "https://aai-service.onap-aai:8443/aai/v11/", - "AAI_GLOBAL_CALLBACK_URL": "https://aai-service.onap-aai:8443/aai/", + "AAI_SERVER_URL_BASE": "https://aai-servicei.{{.Values.nsPrefix}}:8443/aai/", + "AAI_SERVER_URL": "https://aai-service.{{.Values.nsPrefix}}:8443/aai/v11/", + "AAI_GLOBAL_CALLBACK_URL": "https://aai-service.{{.Values.nsPrefix}}:8443/aai/", "AAI_TRUSTSTORE_FILENAME": "aai_keystore", "AAI_TRUSTSTORE_PASSWD_X": "OBF:1vn21ugu1saj1v9i1v941sar1ugw1vo0", "AAI_KEYSTORE_FILENAME": "aai_keystore", "AAI_KEYSTORE_PASSWD_X": "OBF:1vn21ugu1saj1v9i1v941sar1ugw1vo0", - "APPLICATION_SERVERS": "aai-service.onap-aai", + "APPLICATION_SERVERS": "aai-service.{{.Values.nsPrefix}}", "AAI_DMAAP_PROTOCOL": "http", - "AAI_DMAAP_HOST_PORT": "dmaap.onap-message-router:3904", + "AAI_DMAAP_HOST_PORT": "dmaap.{{.Values.nsPrefix}}:3904", "AAI_DMAAP_TOPIC_NAME": "AAI-EVENT", "AAI_NOTIFICATION_EVENT_DEFAULT_EVENT_STATUS": "UNPROCESSED", "AAI_NOTIFICATION_EVENT_DEFAULT_EVENT_TYPE": "AAI-EVENT", @@ -54,11 +54,11 @@ "AAI_NOTIFICATION_CURRENT_VERSION": "v11", "RESOURCE_VERSION_ENABLE_FLAG": "true", "TXN_HBASE_TABLE_NAME": "aailogging.dev", - "TXN_ZOOKEEPER_QUORUM": "hbase.onap-aai", + "TXN_ZOOKEEPER_QUORUM": "hbase.{{.Values.nsPrefix}}", "TXN_ZOOKEEPER_PROPERTY_CLIENTPORT": "2181", "TXN_HBASE_ZOOKEEPER_ZNODE_PARENT": "/hbase", "AAI_WORKLOAD_PREFERRED_ROUTE_KEY": "MR1", - "STORAGE_HOSTNAME": "hbase.onap-aai", + "STORAGE_HOSTNAME": "hbase.{{.Values.nsPrefix}}", "STORAGE_HBASE_TABLE": "aaigraph.dev", "STORAGE_HBASE_ZOOKEEPER_ZNODE_PARENT": "/hbase", "DB_CACHE_CLEAN_WAIT": "20", @@ -85,16 +85,16 @@ "PROJECT_HOME": "/opt/app/aai-resources", "LOGROOT": "/opt/aai/logroot", "JAVA_HOME": "/usr/lib/jvm/java-8-openjdk-amd64", - "AAI_SERVER_URL_BASE": "https://aai-service.onap-aai:8443/aai/", - "AAI_SERVER_URL": "https://aai-service.onap-aai:8443/aai/v11/", - "AAI_GLOBAL_CALLBACK_URL": "https://aai-service.onap-aai:8443/aai/", + "AAI_SERVER_URL_BASE": "https://aai-service.{{.Values.nsPrefix}}:8443/aai/", + "AAI_SERVER_URL": "https://aai-service.{{.Values.nsPrefix}}:8443/aai/v11/", + "AAI_GLOBAL_CALLBACK_URL": "https://aai-service.{{.Values.nsPrefix}}:8443/aai/", "AAI_TRUSTSTORE_FILENAME": "aai_keystore", "AAI_TRUSTSTORE_PASSWD_X": "OBF:1vn21ugu1saj1v9i1v941sar1ugw1vo0", "AAI_KEYSTORE_FILENAME": "aai_keystore", "AAI_KEYSTORE_PASSWD_X": "OBF:1vn21ugu1saj1v9i1v941sar1ugw1vo0", - "APPLICATION_SERVERS": "aai-service.onap-aai", + "APPLICATION_SERVERS": "aai-service.{{.Values.nsPrefix}}", "AAI_DMAAP_PROTOCOL": "http", - "AAI_DMAAP_HOST_PORT": "dmaap.onap-message-router:3904", + "AAI_DMAAP_HOST_PORT": "dmaap.{{.Values.nsPrefix}}:3904", "AAI_DMAAP_TOPIC_NAME": "AAI-EVENT", "AAI_NOTIFICATION_EVENT_DEFAULT_EVENT_STATUS": "UNPROCESSED", "AAI_NOTIFICATION_EVENT_DEFAULT_EVENT_TYPE": "AAI-EVENT", @@ -106,11 +106,11 @@ "AAI_NOTIFICATION_CURRENT_VERSION": "v11", "RESOURCE_VERSION_ENABLE_FLAG": "true", "TXN_HBASE_TABLE_NAME": "aailogging.dev", - "TXN_ZOOKEEPER_QUORUM": "hbase.onap-aai", + "TXN_ZOOKEEPER_QUORUM": "hbase.{{.Values.nsPrefix}}", "TXN_ZOOKEEPER_PROPERTY_CLIENTPORT": "2181", "TXN_HBASE_ZOOKEEPER_ZNODE_PARENT": "/hbase", "AAI_WORKLOAD_PREFERRED_ROUTE_KEY": "MR1", - "STORAGE_HOSTNAME": "hbase.onap-aai", + "STORAGE_HOSTNAME": "hbase.{{.Values.nsPrefix}}", "STORAGE_HBASE_TABLE": "aaigraph.dev", "STORAGE_HBASE_ZOOKEEPER_ZNODE_PARENT": "/hbase", "DB_CACHE_CLEAN_WAIT": "20", diff --git a/kubernetes/config/docker/init/src/config/aai/aai-data/environments/solo.json b/kubernetes/aai/resources/config/aai-data/environments/solo.json index ac83173908..ac83173908 100644 --- a/kubernetes/config/docker/init/src/config/aai/aai-data/environments/solo.json +++ b/kubernetes/aai/resources/config/aai-data/environments/solo.json diff --git a/kubernetes/config/docker/init/src/config/aai/data-router/appconfig/auth/client-cert-onap.p12 b/kubernetes/aai/resources/config/data-router/appconfig/auth/client-cert-onap.p12 Binary files differindex dbf4fcacec..dbf4fcacec 100644 --- a/kubernetes/config/docker/init/src/config/aai/data-router/appconfig/auth/client-cert-onap.p12 +++ b/kubernetes/aai/resources/config/data-router/appconfig/auth/client-cert-onap.p12 diff --git a/kubernetes/config/docker/init/src/config/aai/data-router/appconfig/auth/data-router_policy.json b/kubernetes/aai/resources/config/data-router/appconfig/auth/data-router_policy.json index 1b4a6b0868..1b4a6b0868 100644 --- a/kubernetes/config/docker/init/src/config/aai/data-router/appconfig/auth/data-router_policy.json +++ b/kubernetes/aai/resources/config/data-router/appconfig/auth/data-router_policy.json diff --git a/kubernetes/config/docker/init/src/config/aai/data-router/appconfig/auth/tomcat_keystore b/kubernetes/aai/resources/config/data-router/appconfig/auth/tomcat_keystore Binary files differindex 9eec841aa2..9eec841aa2 100644 --- a/kubernetes/config/docker/init/src/config/aai/data-router/appconfig/auth/tomcat_keystore +++ b/kubernetes/aai/resources/config/data-router/appconfig/auth/tomcat_keystore diff --git a/kubernetes/config/docker/init/src/config/aai/data-router/appconfig/data-router.properties b/kubernetes/aai/resources/config/data-router/appconfig/data-router.properties index e69de29bb2..e69de29bb2 100644 --- a/kubernetes/config/docker/init/src/config/aai/data-router/appconfig/data-router.properties +++ b/kubernetes/aai/resources/config/data-router/appconfig/data-router.properties diff --git a/kubernetes/config/docker/init/src/config/aai/data-router/appconfig/model/aai_oxm_v10.xml b/kubernetes/aai/resources/config/data-router/appconfig/model/aai_oxm_v10.xml index 7eddd10179..7eddd10179 100644 --- a/kubernetes/config/docker/init/src/config/aai/data-router/appconfig/model/aai_oxm_v10.xml +++ b/kubernetes/aai/resources/config/data-router/appconfig/model/aai_oxm_v10.xml diff --git a/kubernetes/config/docker/init/src/config/aai/data-router/appconfig/model/aai_oxm_v11.xml b/kubernetes/aai/resources/config/data-router/appconfig/model/aai_oxm_v11.xml index ecf163e097..ecf163e097 100644 --- a/kubernetes/config/docker/init/src/config/aai/data-router/appconfig/model/aai_oxm_v11.xml +++ b/kubernetes/aai/resources/config/data-router/appconfig/model/aai_oxm_v11.xml diff --git a/kubernetes/config/docker/init/src/config/aai/data-router/appconfig/model/aai_oxm_v8.xml b/kubernetes/aai/resources/config/data-router/appconfig/model/aai_oxm_v8.xml index 3ed2ea531f..3ed2ea531f 100644 --- a/kubernetes/config/docker/init/src/config/aai/data-router/appconfig/model/aai_oxm_v8.xml +++ b/kubernetes/aai/resources/config/data-router/appconfig/model/aai_oxm_v8.xml diff --git a/kubernetes/config/docker/init/src/config/aai/data-router/appconfig/model/aai_oxm_v9.xml b/kubernetes/aai/resources/config/data-router/appconfig/model/aai_oxm_v9.xml index 87a3d656e5..87a3d656e5 100644 --- a/kubernetes/config/docker/init/src/config/aai/data-router/appconfig/model/aai_oxm_v9.xml +++ b/kubernetes/aai/resources/config/data-router/appconfig/model/aai_oxm_v9.xml diff --git a/kubernetes/config/docker/init/src/config/aai/data-router/dynamic/conf/entity-event-policy.xml b/kubernetes/aai/resources/config/data-router/dynamic/conf/entity-event-policy.xml index e995053f12..e995053f12 100644 --- a/kubernetes/config/docker/init/src/config/aai/data-router/dynamic/conf/entity-event-policy.xml +++ b/kubernetes/aai/resources/config/data-router/dynamic/conf/entity-event-policy.xml diff --git a/kubernetes/config/docker/init/src/config/aai/data-router/dynamic/routes/entity-event.route b/kubernetes/aai/resources/config/data-router/dynamic/routes/entity-event.route index 81e1cf9877..293688ecd4 100644 --- a/kubernetes/config/docker/init/src/config/aai/data-router/dynamic/routes/entity-event.route +++ b/kubernetes/aai/resources/config/data-router/dynamic/routes/entity-event.route @@ -1,4 +1,4 @@ <route xmlns="http://camel.apache.org/schema/spring" trace="true"> - <from uri="event-bus:mybus/?eventTopic=AAI-EVENT&groupName=datarouter&groupId=datarouter&url=http://dmaap.onap-message-router:3904"/> + <from uri="event-bus:mybus/?eventTopic=AAI-EVENT&groupName=datarouter&groupId=datarouter&url=http://dmaap.{{.Values.nsPrefix}}:3904"/> <to uri="bean:entityEventPolicy?method=process"/> </route> diff --git a/kubernetes/config/docker/init/src/config/aai/elasticsearch/config/elasticsearch.yml b/kubernetes/aai/resources/config/elasticsearch/config/elasticsearch.yml index 21e29df84b..21e29df84b 100644 --- a/kubernetes/config/docker/init/src/config/aai/elasticsearch/config/elasticsearch.yml +++ b/kubernetes/aai/resources/config/elasticsearch/config/elasticsearch.yml diff --git a/kubernetes/config/docker/init/src/config/aai/haproxy/haproxy.cfg b/kubernetes/aai/resources/config/haproxy/haproxy.cfg index d7773270a4..6e6f489470 100644 --- a/kubernetes/config/docker/init/src/config/aai/haproxy/haproxy.cfg +++ b/kubernetes/aai/resources/config/haproxy/haproxy.cfg @@ -95,7 +95,7 @@ backend IST_Default_8447 balance roundrobin http-request set-header X-Forwarded-Port %[src_port] http-response set-header Strict-Transport-Security max-age=16000000;\ includeSubDomains;\ preload; - server aai-resources.onap-aai aai-resources.onap-aai:8447 port 8447 ssl verify none + server aai-resources.{{.Values.nsPrefix}} aai-resources.{{.Values.nsPrefix}}:8447 port 8447 ssl verify none ####################### # BACKEND 8446######### @@ -105,7 +105,7 @@ backend IST_AAI_8446 balance roundrobin http-request set-header X-Forwarded-Port %[src_port] http-response set-header Strict-Transport-Security max-age=16000000;\ includeSubDomains;\ preload; - server aai-traversal.onap-aai aai-traversal.onap-aai:8446 port 8446 ssl verify none + server aai-traversal.{{.Values.nsPrefix}} aai-traversal.{{.Values.nsPrefix}}:8446 port 8446 ssl verify none listen IST_AAI_STATS mode http diff --git a/kubernetes/aai/resources/config/log/filebeat/filebeat.yml b/kubernetes/aai/resources/config/log/filebeat/filebeat.yml new file mode 100644 index 0000000000..89c6932577 --- /dev/null +++ b/kubernetes/aai/resources/config/log/filebeat/filebeat.yml @@ -0,0 +1,41 @@ +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}}: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 diff --git a/kubernetes/aai/resources/model-loader/conf/logback.xml b/kubernetes/aai/resources/config/log/model-loader/logback.xml index d512d3b91c..d512d3b91c 100644 --- a/kubernetes/aai/resources/model-loader/conf/logback.xml +++ b/kubernetes/aai/resources/config/log/model-loader/logback.xml diff --git a/kubernetes/aai/resources/resources/conf/logback.xml b/kubernetes/aai/resources/config/log/resources/logback.xml index 6cfc293f46..6cfc293f46 100644 --- a/kubernetes/aai/resources/resources/conf/logback.xml +++ b/kubernetes/aai/resources/config/log/resources/logback.xml diff --git a/kubernetes/aai/resources/search-data-service/conf/logback.xml b/kubernetes/aai/resources/config/log/search-data-service/logback.xml index 14ed4142fe..14ed4142fe 100644 --- a/kubernetes/aai/resources/search-data-service/conf/logback.xml +++ b/kubernetes/aai/resources/config/log/search-data-service/logback.xml diff --git a/kubernetes/aai/resources/sparky-be/conf/logback.xml b/kubernetes/aai/resources/config/log/sparky-be/logback.xml index c1b99c183f..c1b99c183f 100644 --- a/kubernetes/aai/resources/sparky-be/conf/logback.xml +++ b/kubernetes/aai/resources/config/log/sparky-be/logback.xml diff --git a/kubernetes/aai/resources/traversal/conf/logback.xml b/kubernetes/aai/resources/config/log/traversal/logback.xml index fb8d8a53bf..fb8d8a53bf 100644 --- a/kubernetes/aai/resources/traversal/conf/logback.xml +++ b/kubernetes/aai/resources/config/log/traversal/logback.xml diff --git a/kubernetes/config/docker/init/src/config/aai/model-loader/appconfig/auth/aai-os-cert.p12 b/kubernetes/aai/resources/config/model-loader/appconfig/auth/aai-os-cert.p12 Binary files differindex ee57120fa0..ee57120fa0 100644 --- a/kubernetes/config/docker/init/src/config/aai/model-loader/appconfig/auth/aai-os-cert.p12 +++ b/kubernetes/aai/resources/config/model-loader/appconfig/auth/aai-os-cert.p12 diff --git a/kubernetes/config/docker/init/src/config/aai/model-loader/appconfig/model-loader.properties b/kubernetes/aai/resources/config/model-loader/appconfig/model-loader.properties index 58b80d8d98..5d61fbaaae 100644 --- a/kubernetes/config/docker/init/src/config/aai/model-loader/appconfig/model-loader.properties +++ b/kubernetes/aai/resources/config/model-loader/appconfig/model-loader.properties @@ -1,6 +1,6 @@ # Model Loader Distribution Client Configuration ml.distribution.ACTIVE_SERVER_TLS_AUTH=false -ml.distribution.ASDC_ADDRESS=sdc-be.onap-sdc:8443 +ml.distribution.ASDC_ADDRESS=sdc-be.{{.Values.nsPrefix}}:8443 ml.distribution.CONSUMER_GROUP=aai-ml-group ml.distribution.CONSUMER_ID=aai-ml ml.distribution.ENVIRONMENT_NAME=AUTO @@ -13,7 +13,7 @@ ml.distribution.USER=aai ml.distribution.ARTIFACT_TYPES=MODEL_INVENTORY_PROFILE,MODEL_QUERY_SPEC,VNF_CATALOG # Model Loader AAI REST Client Configuration -ml.aai.BASE_URL=https://aai-service.onap-aai:8443 +ml.aai.BASE_URL=https://aai-service.{{.Values.nsPrefix}}:8443 ml.aai.MODEL_URL=/aai/v10/service-design-and-creation/models/model/ ml.aai.NAMED_QUERY_URL=/aai/v10/service-design-and-creation/named-queries/named-query/ ml.aai.VNF_IMAGE_URL=/aai/v8/service-design-and-creation/vnf-images diff --git a/kubernetes/config/docker/init/src/config/aai/search-data-service/appconfig/analysis-config.json b/kubernetes/aai/resources/config/search-data-service/appconfig/analysis-config.json index f98ea3799b..f98ea3799b 100644 --- a/kubernetes/config/docker/init/src/config/aai/search-data-service/appconfig/analysis-config.json +++ b/kubernetes/aai/resources/config/search-data-service/appconfig/analysis-config.json diff --git a/kubernetes/config/docker/init/src/config/aai/search-data-service/appconfig/auth/search_policy.json b/kubernetes/aai/resources/config/search-data-service/appconfig/auth/search_policy.json index 72d8902fbe..72d8902fbe 100644 --- a/kubernetes/config/docker/init/src/config/aai/search-data-service/appconfig/auth/search_policy.json +++ b/kubernetes/aai/resources/config/search-data-service/appconfig/auth/search_policy.json diff --git a/kubernetes/config/docker/init/src/config/aai/search-data-service/appconfig/auth/tomcat_keystore b/kubernetes/aai/resources/config/search-data-service/appconfig/auth/tomcat_keystore Binary files differindex 9eec841aa2..9eec841aa2 100644 --- a/kubernetes/config/docker/init/src/config/aai/search-data-service/appconfig/auth/tomcat_keystore +++ b/kubernetes/aai/resources/config/search-data-service/appconfig/auth/tomcat_keystore diff --git a/kubernetes/config/docker/init/src/config/aai/search-data-service/appconfig/elastic-search.properties b/kubernetes/aai/resources/config/search-data-service/appconfig/elastic-search.properties index 006fc6ee02..c19667ad3c 100644 --- a/kubernetes/config/docker/init/src/config/aai/search-data-service/appconfig/elastic-search.properties +++ b/kubernetes/aai/resources/config/search-data-service/appconfig/elastic-search.properties @@ -1,5 +1,5 @@ # ElasticSearch Configuration es.cluster-name=ES_AAI -es.ip-address=elasticsearch.onap-aai +es.ip-address=aai-elasticsearch.{{.Values.nsPrefix}} es.http-port=9200 diff --git a/kubernetes/config/docker/init/src/config/aai/search-data-service/appconfig/filter-config.json b/kubernetes/aai/resources/config/search-data-service/appconfig/filter-config.json index e2d5285824..e2d5285824 100644 --- a/kubernetes/config/docker/init/src/config/aai/search-data-service/appconfig/filter-config.json +++ b/kubernetes/aai/resources/config/search-data-service/appconfig/filter-config.json diff --git a/kubernetes/config/docker/init/src/config/aai/sparky-be/appconfig/aai.properties b/kubernetes/aai/resources/config/sparky-be/appconfig/aai.properties index 3b4542889e..aaca346760 100644 --- a/kubernetes/config/docker/init/src/config/aai/sparky-be/appconfig/aai.properties +++ b/kubernetes/aai/resources/config/sparky-be/appconfig/aai.properties @@ -6,7 +6,7 @@ # # The ip address/hostname and port to the desired AAI instance # -aai.rest.host=aai-service.onap-aai +aai.rest.host=aai-service.{{.Values.nsPrefix}} aai.rest.port=8443 ############################## REST ############################## @@ -84,4 +84,4 @@ aai.ssl.truststore.type=jks aai.taskProcessor.maxConcurrentWorkers=5 aai.taskProcessor.transactionRateControllerEnabled=false aai.taskProcessor.numSamplesPerThreadForRunningAverage=100 -aai.taskProcessor.targetTPS=100
\ No newline at end of file +aai.taskProcessor.targetTPS=100 diff --git a/kubernetes/config/docker/init/src/config/aai/sparky-be/appconfig/auth/aai-os-cert.p12 b/kubernetes/aai/resources/config/sparky-be/appconfig/auth/aai-os-cert.p12 Binary files differindex ee57120fa0..ee57120fa0 100644 --- a/kubernetes/config/docker/init/src/config/aai/sparky-be/appconfig/auth/aai-os-cert.p12 +++ b/kubernetes/aai/resources/config/sparky-be/appconfig/auth/aai-os-cert.p12 diff --git a/kubernetes/config/docker/init/src/config/aai/sparky-be/appconfig/auth/client-cert-onap.p12 b/kubernetes/aai/resources/config/sparky-be/appconfig/auth/client-cert-onap.p12 Binary files differindex dbf4fcacec..dbf4fcacec 100644 --- a/kubernetes/config/docker/init/src/config/aai/sparky-be/appconfig/auth/client-cert-onap.p12 +++ b/kubernetes/aai/resources/config/sparky-be/appconfig/auth/client-cert-onap.p12 diff --git a/kubernetes/config/docker/init/src/config/aai/sparky-be/appconfig/auth/inventory-ui-keystore b/kubernetes/aai/resources/config/sparky-be/appconfig/auth/inventory-ui-keystore Binary files differindex efa01f8d79..efa01f8d79 100644 --- a/kubernetes/config/docker/init/src/config/aai/sparky-be/appconfig/auth/inventory-ui-keystore +++ b/kubernetes/aai/resources/config/sparky-be/appconfig/auth/inventory-ui-keystore diff --git a/kubernetes/config/docker/init/src/config/aai/sparky-be/appconfig/elasticsearch.properties b/kubernetes/aai/resources/config/sparky-be/appconfig/elasticsearch.properties index 82b5af39ab..99aea27d9e 100644 --- a/kubernetes/config/docker/init/src/config/aai/sparky-be/appconfig/elasticsearch.properties +++ b/kubernetes/aai/resources/config/sparky-be/appconfig/elasticsearch.properties @@ -7,7 +7,7 @@ # The ip address/hostname and port to the desired AAI instance # For development it's recommended to use a local instance of ES # -elasticsearch.ipAddress=elasticsearch.onap-aai +elasticsearch.ipAddress=aai-elasticsearch.{{.Values.nsPrefix}} elasticsearch.httpPort=9200 elasticsearch.javaApiPort=8443 @@ -69,4 +69,4 @@ elasticsearch.taskProcessor.maxConcurrentWorkers=5 elasticsearch.taskProcessor.transactionRateControllerEnabled=false elasticsearch.taskProcessor.numSamplesPerThreadForRunningAverage=100 elasticsearch.taskProcessor.targetTPS=100 -elasticsearch.clusterName=ES_AAI_LOCALHOST
\ No newline at end of file +elasticsearch.clusterName=ES_AAI_LOCALHOST diff --git a/kubernetes/config/docker/init/src/config/aai/sparky-be/appconfig/model/aai_oxm_v9.xml b/kubernetes/aai/resources/config/sparky-be/appconfig/model/aai_oxm_v9.xml index 6337c32edc..6337c32edc 100644 --- a/kubernetes/config/docker/init/src/config/aai/sparky-be/appconfig/model/aai_oxm_v9.xml +++ b/kubernetes/aai/resources/config/sparky-be/appconfig/model/aai_oxm_v9.xml diff --git a/kubernetes/config/docker/init/src/config/aai/sparky-be/appconfig/portal/portal-authentication.properties b/kubernetes/aai/resources/config/sparky-be/appconfig/portal/portal-authentication.properties index 0873fc1c61..0873fc1c61 100644 --- a/kubernetes/config/docker/init/src/config/aai/sparky-be/appconfig/portal/portal-authentication.properties +++ b/kubernetes/aai/resources/config/sparky-be/appconfig/portal/portal-authentication.properties diff --git a/kubernetes/config/docker/init/src/config/aai/sparky-be/appconfig/portal/portal.properties b/kubernetes/aai/resources/config/sparky-be/appconfig/portal/portal.properties index 33d91cf88a..90147362b0 100644 --- a/kubernetes/config/docker/init/src/config/aai/sparky-be/appconfig/portal/portal.properties +++ b/kubernetes/aai/resources/config/sparky-be/appconfig/portal/portal.properties @@ -7,10 +7,10 @@ portal.api.impl.class = org.openecomp.sparky.security.portal.PortalRestAPIServic # Instance of ECOMP Portal where the app has been on-boarded # use insecure http for dev purposes to avoid self-signed certificate -ecomp_rest_url = http://portalapps.onap-portal:8989/ONAPPORTAL/auxapi +ecomp_rest_url = http://portalapps.{{.Values.nsPrefix}}:8989/ONAPPORTAL/auxapi # Standard global logon page -ecomp_redirect_url = http://portalapps.onap-portal:8989/ONAPPORTAL/login.htm +ecomp_redirect_url = http://portalapps.{{.Values.nsPrefix}}:8989/ONAPPORTAL/login.htm # Name of cookie to extract on login request csp_cookie_name = EPService diff --git a/kubernetes/config/docker/init/src/config/aai/sparky-be/appconfig/roles.config b/kubernetes/aai/resources/config/sparky-be/appconfig/roles.config index b8313bd378..b8313bd378 100644 --- a/kubernetes/config/docker/init/src/config/aai/sparky-be/appconfig/roles.config +++ b/kubernetes/aai/resources/config/sparky-be/appconfig/roles.config diff --git a/kubernetes/config/docker/init/src/config/aai/sparky-be/appconfig/search-service.properties b/kubernetes/aai/resources/config/sparky-be/appconfig/search-service.properties index 5f4985a5f2..57e34759d3 100644 --- a/kubernetes/config/docker/init/src/config/aai/sparky-be/appconfig/search-service.properties +++ b/kubernetes/aai/resources/config/sparky-be/appconfig/search-service.properties @@ -6,7 +6,7 @@ # # The ip address/hostname and port to the desired Search Data Service instance # -search-service.ipAddress=search-data-service.onap-aai +search-service.ipAddress=search-data-service.{{.Values.nsPrefix}} search-service.httpPort=9509 ############################## Indexes ############################## @@ -29,4 +29,4 @@ search-service.type=default ############################## Certs ############################## search-service.ssl.cert-name=client-cert-onap.p12 search-service.ssl.keystore-password=OBF:1y0q1uvc1uum1uvg1pil1pjl1uuq1uvk1uuu1y10 -search-service.ssl.keystore=tomcat_keystore
\ No newline at end of file +search-service.ssl.keystore=tomcat_keystore diff --git a/kubernetes/config/docker/init/src/config/aai/sparky-be/appconfig/suggestive-search.properties b/kubernetes/aai/resources/config/sparky-be/appconfig/suggestive-search.properties index b82baffc14..b82baffc14 100644 --- a/kubernetes/config/docker/init/src/config/aai/sparky-be/appconfig/suggestive-search.properties +++ b/kubernetes/aai/resources/config/sparky-be/appconfig/suggestive-search.properties diff --git a/kubernetes/config/docker/init/src/config/aai/sparky-be/appconfig/synchronizer.properties b/kubernetes/aai/resources/config/sparky-be/appconfig/synchronizer.properties index 0b84f06abe..0b84f06abe 100644 --- a/kubernetes/config/docker/init/src/config/aai/sparky-be/appconfig/synchronizer.properties +++ b/kubernetes/aai/resources/config/sparky-be/appconfig/synchronizer.properties diff --git a/kubernetes/aai/templates/aai-deployment-configmap.yaml b/kubernetes/aai/templates/aai-deployment-configmap.yaml new file mode 100644 index 0000000000..6684555bd0 --- /dev/null +++ b/kubernetes/aai/templates/aai-deployment-configmap.yaml @@ -0,0 +1,9 @@ +#{{ if not .Values.disableAaiAaiService }} +apiVersion: v1 +kind: ConfigMap +metadata: + name: aai-deployment-configmap + namespace: {{ .Values.nsPrefix }} +data: +{{ tpl (.Files.Glob "resources/config/haproxy/*").AsConfig . | indent 2 }} +#{{ end }} diff --git a/kubernetes/aai/templates/aai-deployment.yaml b/kubernetes/aai/templates/aai-deployment.yaml index a65cf44cba..db6da6403c 100644 --- a/kubernetes/aai/templates/aai-deployment.yaml +++ b/kubernetes/aai/templates/aai-deployment.yaml @@ -3,8 +3,9 @@ apiVersion: extensions/v1beta1 kind: Deployment metadata: name: aai-service - namespace: "{{ .Values.nsPrefix }}-aai" + namespace: "{{ .Values.nsPrefix }}" spec: + replicas: {{ .Values.aaiServiceReplicas }} selector: matchLabels: app: aai-service @@ -42,6 +43,7 @@ spec: - mountPath: /dev/log name: aai-service-log - mountPath: /usr/local/etc/haproxy/haproxy.cfg + subPath: haproxy.cfg name: haproxy-cfg ports: - containerPort: 8080 @@ -59,8 +61,8 @@ spec: 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" diff --git a/kubernetes/aai/templates/aai-filebeat-configmap.yaml b/kubernetes/aai/templates/aai-filebeat-configmap.yaml new file mode 100644 index 0000000000..2ca1ac2df5 --- /dev/null +++ b/kubernetes/aai/templates/aai-filebeat-configmap.yaml @@ -0,0 +1,9 @@ +#{{ if not .Values.disableAaiAaiResources }} +apiVersion: v1 +kind: ConfigMap +metadata: + name: aai-filebeat-configmap + namespace: {{ .Values.nsPrefix }} +data: +{{ tpl (.Files.Glob "resources/config/log/filebeat/*").AsConfig . | indent 2 }} +#{{ end }} diff --git a/kubernetes/aai/templates/aai-resources-deployment.yaml b/kubernetes/aai/templates/aai-resources-deployment.yaml index 7ff5e66ee2..c07214d958 100644 --- a/kubernetes/aai/templates/aai-resources-deployment.yaml +++ b/kubernetes/aai/templates/aai-resources-deployment.yaml @@ -3,8 +3,9 @@ apiVersion: extensions/v1beta1 kind: Deployment metadata: name: aai-resources - namespace: "{{ .Values.nsPrefix }}-aai" + namespace: "{{ .Values.nsPrefix }}" spec: + replicas: {{ .Values.aaiResourceReplicas }} selector: matchLabels: app: aai-resources @@ -50,7 +51,10 @@ spec: - 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 @@ -69,6 +73,7 @@ spec: imagePullPolicy: {{ .Values.pullPolicy }} volumeMounts: - mountPath: /usr/share/filebeat/filebeat.yml + subPath: filebeat.yml name: filebeat-conf - mountPath: /var/log/onap name: aai-resources-logs @@ -78,28 +83,23 @@ spec: - 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 }} diff --git a/kubernetes/aai/templates/aai-resources-traversal-configmap.yaml b/kubernetes/aai/templates/aai-resources-traversal-configmap.yaml new file mode 100644 index 0000000000..cdcaae6f64 --- /dev/null +++ b/kubernetes/aai/templates/aai-resources-traversal-configmap.yaml @@ -0,0 +1,33 @@ +#{{ if not .Values.disableAaiAaiResources }} +apiVersion: v1 +kind: ConfigMap +metadata: + name: aai-chef-config-configmap + namespace: {{ .Values.nsPrefix }} +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 }} +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 }} +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 }} +data: +{{ tpl (.Files.Glob "resources/config/log/traversal/logback.xml").AsConfig . | indent 2 }} +#{{ end }} diff --git a/kubernetes/aai/templates/aai-traversal-deployment.yaml b/kubernetes/aai/templates/aai-traversal-deployment.yaml index f659392935..84a0d0f289 100644 --- a/kubernetes/aai/templates/aai-traversal-deployment.yaml +++ b/kubernetes/aai/templates/aai-traversal-deployment.yaml @@ -3,8 +3,9 @@ apiVersion: extensions/v1beta1 kind: Deployment metadata: name: aai-traversal - namespace: "{{ .Values.nsPrefix }}-aai" + namespace: "{{ .Values.nsPrefix }}" spec: + replicas: {{ .Values.aaiTraversalReplicas }} selector: matchLabels: app: aai-traversal @@ -47,12 +48,15 @@ spec: - name: CHEF_GIT_URL value: http://gerrit.onap.org/r/aai - name: RESOURCES_HOSTNAME - value: aai-resources.{{ .Values.nsPrefix }}-aai + value: aai-resources.{{ .Values.nsPrefix }} volumeMounts: - 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 @@ -71,6 +75,7 @@ spec: imagePullPolicy: {{ .Values.pullPolicy }} volumeMounts: - mountPath: /usr/share/filebeat/filebeat.yml + subPath: filebeat.yml name: filebeat-conf - mountPath: /var/log/onap name: aai-traversal-logs @@ -80,28 +85,23 @@ spec: - 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 }} diff --git a/kubernetes/aai/templates/all-services.yaml b/kubernetes/aai/templates/all-services.yaml index 0cf62d0fec..01f24a7dd2 100644 --- a/kubernetes/aai/templates/all-services.yaml +++ b/kubernetes/aai/templates/all-services.yaml @@ -3,7 +3,7 @@ apiVersion: v1 kind: Service metadata: name: hbase - namespace: "{{ .Values.nsPrefix }}-aai" + namespace: "{{ .Values.nsPrefix }}" labels: app: hbase spec: @@ -32,7 +32,7 @@ apiVersion: v1 kind: Service metadata: name: aai-service - namespace: "{{ .Values.nsPrefix }}-aai" + namespace: "{{ .Values.nsPrefix }}" labels: app: aai-service annotations: @@ -184,6 +184,7 @@ spec: type: NodePort selector: app: aai-service + clusterIP: {{ .Values.aaiServiceClusterIp }} #{{ end }} #{{ if not .Values.disableAaiModelLoaderService }} --- @@ -191,7 +192,7 @@ apiVersion: v1 kind: Service metadata: name: model-loader-service - namespace: "{{ .Values.nsPrefix }}-aai" + namespace: "{{ .Values.nsPrefix }}" labels: app: model-loader-service spec: @@ -211,7 +212,7 @@ apiVersion: v1 kind: Service metadata: name: gremlin - namespace: "{{ .Values.nsPrefix }}-aai" + namespace: "{{ .Values.nsPrefix }}" labels: app: gremlin spec: @@ -226,16 +227,16 @@ spec: apiVersion: v1 kind: Service metadata: - name: elasticsearch - namespace: "{{ .Values.nsPrefix }}-aai" + name: aai-elasticsearch + namespace: "{{ .Values.nsPrefix }}" labels: - app: elasticsearch + app: aai-elasticsearch spec: ports: - - name: "elasticsearch-port" + - name: "aai-elasticsearch-port" port: 9200 selector: - app: elasticsearch + app: aai-elasticsearch clusterIP: None #{{ end }} #{{ if not .Values.disableAaiSearchDataService }} @@ -244,7 +245,7 @@ apiVersion: v1 kind: Service metadata: name: search-data-service - namespace: "{{ .Values.nsPrefix }}-aai" + namespace: "{{ .Values.nsPrefix }}" labels: app: search-data-service spec: @@ -261,7 +262,7 @@ apiVersion: v1 kind: Service metadata: name: aai-traversal - namespace: "{{ .Values.nsPrefix }}-aai" + namespace: "{{ .Values.nsPrefix }}" labels: app: aai-traversal spec: @@ -280,7 +281,7 @@ apiVersion: v1 kind: Service metadata: name: aai-resources - namespace: "{{ .Values.nsPrefix }}-aai" + namespace: "{{ .Values.nsPrefix }}" labels: app: aai-resources spec: @@ -299,7 +300,7 @@ apiVersion: v1 kind: Service metadata: name: sparky-be - namespace: "{{ .Values.nsPrefix }}-aai" + namespace: "{{ .Values.nsPrefix }}" labels: app: sparky-be spec: @@ -309,4 +310,4 @@ spec: selector: app: sparky-be clusterIP: None -#{{ end }}
\ No newline at end of file +#{{ end }} diff --git a/kubernetes/aai/templates/data-router-configmap.yaml b/kubernetes/aai/templates/data-router-configmap.yaml new file mode 100644 index 0000000000..3de38a740a --- /dev/null +++ b/kubernetes/aai/templates/data-router-configmap.yaml @@ -0,0 +1,59 @@ +#{{ if not .Values.disableAaiDataRouter }} +apiVersion: v1 +kind: ConfigMap +metadata: + name: aai-data-router-prop-configmap + namespace: {{ .Values.nsPrefix }} +data: +{{ tpl (.Files.Glob "resources/config/data-router/appconfig/data-router.properties").AsConfig . | indent 2 }} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: aai-data-router-model-v8-configmap + namespace: {{ .Values.nsPrefix }} +data: +{{ tpl (.Files.Glob "resources/config/data-router/appconfig/model/aai_oxm_v8.xml").AsConfig . | indent 2 }} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: aai-data-router-model-v9-configmap + namespace: {{ .Values.nsPrefix }} +data: +{{ tpl (.Files.Glob "resources/config/data-router/appconfig/model/aai_oxm_v9.xml").AsConfig . | indent 2 }} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: aai-data-router-model-v10-configmap + namespace: {{ .Values.nsPrefix }} +data: +{{ tpl (.Files.Glob "resources/config/data-router/appconfig/model/aai_oxm_v10.xml").AsConfig . | indent 2 }} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: aai-data-router-model-v11-configmap + namespace: {{ .Values.nsPrefix }} +data: +{{ tpl (.Files.Glob "resources/config/data-router/appconfig/model/aai_oxm_v11.xml").AsConfig . | indent 2 }} +--- +apiVersion: v1 +kind: Secret +metadata: + name: aai-data-router-secret + namespace: {{ .Values.nsPrefix }} +type: Opaque +data: +{{ tpl (.Files.Glob "resources/config/data-router/appconfig/auth/*").AsSecrets . | indent 2 }} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: aai-data-router-dynamic-configmap + namespace: {{ .Values.nsPrefix }} +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 }} diff --git a/kubernetes/aai/templates/data-router-deployment.yaml b/kubernetes/aai/templates/data-router-deployment.yaml index 6b3c024c2a..610ecb6e39 100644 --- a/kubernetes/aai/templates/data-router-deployment.yaml +++ b/kubernetes/aai/templates/data-router-deployment.yaml @@ -2,20 +2,43 @@ apiVersion: extensions/v1beta1 kind: Deployment metadata: - name: data-router - namespace: "{{ .Values.nsPrefix }}-aai" + name: aai-data-router + namespace: "{{ .Values.nsPrefix }}" spec: + replicas: {{ .Values.dataRouterReplicas }} selector: matchLabels: - app: data-router + app: aai-data-router template: metadata: labels: - app: data-router - name: data-router + app: aai-data-router + name: aai-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: aai-data-router-logs + mountPath: /logroot/ containers: - - name: data-router + - name: aai-data-router image: "{{ .Values.image.dataRouterImage }}:{{ .Values.image.dataRouterVersion }}" imagePullPolicy: {{ .Values.pullPolicy }} env: @@ -37,12 +60,31 @@ spec: - 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: aai-data-router-model-v8 + - mountPath: /opt/app/data-router/config/model/aai_oxm_v9.xml + subPath: aai_oxm_v9.xml + name: aai-data-router-model-v9 + - mountPath: /opt/app/data-router/config/model/aai_oxm_v10.xml + subPath: aai_oxm_v10.xml + name: aai-data-router-model-v10 + - mountPath: /opt/app/data-router/config/model/aai_oxm_v11.xml + subPath: aai_oxm_v11.xml + name: aai-data-router-model-v11 + - mountPath: /opt/app/data-router/config/auth + name: aai-data-router-auth + - mountPath: /opt/app/data-router/config/data-router.properties + name: aai-data-router-properties + subPath: data-router.properties + - mountPath: /opt/app/data-router/dynamic/routes/entity-event.route + subPath: entity-event.route + name: aai-data-router-dynamic-route + - mountPath: /opt/app/data-router/dynamic/conf/entity-event-policy.xml + subPath: entity-event-policy.xml + name: aai-data-router-dynamic-policy - mountPath: /logs/ - name: data-router-logs + name: aai-data-router-logs ports: - containerPort: 9502 readinessProbe: @@ -54,16 +96,34 @@ spec: - 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-logs + - name: aai-data-router-model-v8 + configMap: + name: aai-data-router-model-v8-configmap + - name: aai-data-router-model-v9 + configMap: + name: aai-data-router-model-v9-configmap + - name: aai-data-router-model-v10 + configMap: + name: aai-data-router-model-v10-configmap + - name: aai-data-router-model-v11 + configMap: + name: aai-data-router-model-v11-configmap + - name: aai-data-router-auth + secret: + secretName: aai-data-router-secret + - name: aai-data-router-properties + configMap: + name: aai-data-router-prop-configmap + - name: aai-data-router-dynamic-route + configMap: + name: aai-data-router-dynamic-configmap + - name: aai-data-router-dynamic-policy + configMap: + name: aai-data-router-dynamic-configmap + - name: aai-data-router-logs hostPath: - path: "/dockerdata-nfs/{{ .Values.nsPrefix }}/aai/data-router/logs/" + path: "/dockerdata-nfs/{{ .Values.nsPrefix }}/aai/data-router/logs" restartPolicy: Always imagePullSecrets: - name: "{{ .Values.nsPrefix }}-docker-registry-key" -#{{ end }}
\ No newline at end of file +#{{ end }} diff --git a/kubernetes/aai/templates/elasticsearch-configmap.yaml b/kubernetes/aai/templates/elasticsearch-configmap.yaml new file mode 100644 index 0000000000..56b02529bc --- /dev/null +++ b/kubernetes/aai/templates/elasticsearch-configmap.yaml @@ -0,0 +1,9 @@ +#{{ if not .Values.disableAaiElasticsearch }} +apiVersion: v1 +kind: ConfigMap +metadata: + name: aai-elasticsearch-configmap + namespace: {{ .Values.nsPrefix }} +data: +{{ tpl (.Files.Glob "resources/config/elasticsearch/config/elasticsearch.yml").AsConfig . | indent 2 }} +#{{ end }} diff --git a/kubernetes/aai/templates/elasticsearch-deployment.yaml b/kubernetes/aai/templates/elasticsearch-deployment.yaml index 680f942c52..1babb05897 100644 --- a/kubernetes/aai/templates/elasticsearch-deployment.yaml +++ b/kubernetes/aai/templates/elasticsearch-deployment.yaml @@ -2,21 +2,44 @@ apiVersion: extensions/v1beta1 kind: Deployment metadata: - name: elasticsearch - namespace: "{{ .Values.nsPrefix }}-aai" + name: aai-elasticsearch + namespace: "{{ .Values.nsPrefix }}" spec: + replicas: {{ .Values.elasticsearchReplicas }} selector: matchLabels: - app: elasticsearch + app: aai-elasticsearch template: metadata: labels: - app: elasticsearch - name: elasticsearch + app: aai-elasticsearch + name: aai-elasticsearch spec: - hostname: elasticsearch + 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: aai-elasticsearch containers: - - name: elasticsearch + - name: aai-elasticsearch image: "{{ .Values.image.elasticsearchImage }}:{{ .Values.image.elasticsearchVersion }}" imagePullPolicy: {{ .Values.pullPolicy }} ports: @@ -31,6 +54,7 @@ spec: 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 @@ -39,11 +63,11 @@ spec: 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/elasticsearch/data" imagePullSecrets: - name: "{{ .Values.nsPrefix }}-docker-registry-key" -#{{ end }}
\ No newline at end of file +#{{ end }} diff --git a/kubernetes/aai/templates/hbase-deployment.yaml b/kubernetes/aai/templates/hbase-deployment.yaml index fd8e10cc5a..f8ef61353c 100644 --- a/kubernetes/aai/templates/hbase-deployment.yaml +++ b/kubernetes/aai/templates/hbase-deployment.yaml @@ -2,9 +2,10 @@ apiVersion: extensions/v1beta1 kind: Deployment metadata: - name: hbase - namespace: "{{ .Values.nsPrefix }}-aai" + name: aai-hbase + namespace: "{{ .Values.nsPrefix }}" spec: + replicas: {{ .Values.hbaseReplicas }} selector: matchLabels: app: hbase @@ -12,7 +13,7 @@ spec: metadata: labels: app: hbase - name: hbase + name: aai-hbase spec: hostname: hbase containers: @@ -33,13 +34,18 @@ spec: 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 }} diff --git a/kubernetes/aai/templates/modelloader-deployment-configmap.yaml b/kubernetes/aai/templates/modelloader-deployment-configmap.yaml new file mode 100644 index 0000000000..9337f551b8 --- /dev/null +++ b/kubernetes/aai/templates/modelloader-deployment-configmap.yaml @@ -0,0 +1,26 @@ +#{{ if not .Values.disableAaiModelLoaderService }} +apiVersion: v1 +kind: ConfigMap +metadata: + name: aai-model-loader-prop-configmap + namespace: {{ .Values.nsPrefix }} +data: +{{ tpl (.Files.Glob "resources/config/model-loader/appconfig/model-loader.properties").AsConfig . | indent 2 }} +--- +apiVersion: v1 +kind: Secret +metadata: + name: aai-model-loader-secret + namespace: {{ .Values.nsPrefix }} +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 }} +data: +{{ tpl (.Files.Glob "resources/config/log/model-loader/logback.xml").AsConfig . | indent 2 }} +#{{ end }} diff --git a/kubernetes/aai/templates/modelloader-deployment.yaml b/kubernetes/aai/templates/modelloader-deployment.yaml index 7c2fddb7cf..e11df7c878 100644 --- a/kubernetes/aai/templates/modelloader-deployment.yaml +++ b/kubernetes/aai/templates/modelloader-deployment.yaml @@ -2,9 +2,10 @@ apiVersion: extensions/v1beta1 kind: Deployment metadata: - name: model-loader-service - namespace: "{{ .Values.nsPrefix }}-aai" + name: aai-model-loader-service + namespace: "{{ .Values.nsPrefix }}" spec: + replicas: {{ .Values.modelLoaderReplicas }} selector: matchLabels: app: model-loader-service @@ -12,7 +13,7 @@ spec: metadata: labels: app: model-loader-service - name: model-loader-service + name: aai-model-loader-service spec: containers: - name: model-loader-service @@ -25,8 +26,11 @@ spec: - 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 @@ -40,6 +44,7 @@ spec: 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 @@ -49,28 +54,23 @@ spec: - 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: aai-model-loader-prop-configmap + - name: aai-model-loader-auth-config + secret: + secretName: aai-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 }} diff --git a/kubernetes/aai/templates/search-data-service-configmap.yaml b/kubernetes/aai/templates/search-data-service-configmap.yaml new file mode 100644 index 0000000000..43d9da02e2 --- /dev/null +++ b/kubernetes/aai/templates/search-data-service-configmap.yaml @@ -0,0 +1,34 @@ +#{{ if not .Values.disableAaiSearchDataService }} +apiVersion: v1 +kind: ConfigMap +metadata: + name: aai-search-data-configmap + namespace: {{ .Values.nsPrefix }} +data: +{{ tpl (.Files.Glob "resources/config/search-data-service/appconfig/*").AsConfig . | indent 2 }} +--- +apiVersion: v1 +kind: Secret +metadata: + name: aai-search-data-keystone-secret + namespace: {{ .Values.nsPrefix }} +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 }} +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 }} +data: +{{ tpl (.Files.Glob "resources/config/log/search-data-service/logback.xml").AsConfig . | indent 2 }} +#{{ end }} diff --git a/kubernetes/aai/templates/search-data-service-deployment.yaml b/kubernetes/aai/templates/search-data-service-deployment.yaml index e1668456ba..fc5a0d2fe2 100644 --- a/kubernetes/aai/templates/search-data-service-deployment.yaml +++ b/kubernetes/aai/templates/search-data-service-deployment.yaml @@ -2,9 +2,10 @@ apiVersion: extensions/v1beta1 kind: Deployment metadata: - name: search-data-service - namespace: "{{ .Values.nsPrefix }}-aai" + name: aai-search-data-service + namespace: "{{ .Values.nsPrefix }}" spec: + replicas: {{ .Values.searchDataServiceReplicas }} selector: matchLabels: app: search-data-service @@ -12,7 +13,7 @@ spec: metadata: labels: app: search-data-service - name: search-data-service + name: aai-search-data-service spec: containers: - name: search-data-service @@ -29,8 +30,21 @@ spec: - 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 @@ -48,6 +62,7 @@ spec: 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 @@ -58,27 +73,25 @@ spec: hostPath: path: /etc/localtime - name: aai-search-data-service-config - hostPath: - path: "/dockerdata-nfs/{{ .Values.nsPrefix }}/aai/search-data-service/appconfig/" + configMap: + name: aai-search-data-configmap + - name: aai-search-data-service-auth-config + secret: + secretName: aai-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 }} diff --git a/kubernetes/aai/templates/sparky-be-deployment-configmap.yaml b/kubernetes/aai/templates/sparky-be-deployment-configmap.yaml new file mode 100644 index 0000000000..3a0c7fb556 --- /dev/null +++ b/kubernetes/aai/templates/sparky-be-deployment-configmap.yaml @@ -0,0 +1,42 @@ +#{{ if not .Values.disableAaiSparkyBe }} +apiVersion: v1 +kind: ConfigMap +metadata: + name: aai-sparky-be-configmap + namespace: {{ .Values.nsPrefix }} +data: +{{ tpl (.Files.Glob "resources/config/sparky-be/appconfig/*").AsConfig . | indent 2 }} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: aai-sparky-be-model-configmap + namespace: {{ .Values.nsPrefix }} +data: +{{ tpl (.Files.Glob "resources/config/sparky-be/appconfig/model/*").AsConfig . | indent 2 }} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: aai-sparky-be-portal-configmap + namespace: {{ .Values.nsPrefix }} +data: +{{ tpl (.Files.Glob "resources/config/sparky-be/appconfig/portal/*").AsConfig . | indent 2 }} +--- +apiVersion: v1 +kind: Secret +metadata: + name: aai-sparky-be-secret + namespace: {{ .Values.nsPrefix }} +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 }} +data: +{{ tpl (.Files.Glob "resources/config/log/sparky-be/logback.xml").AsConfig . | indent 2 }} +#{{ end }} diff --git a/kubernetes/aai/templates/sparky-be-deployment.yaml b/kubernetes/aai/templates/sparky-be-deployment.yaml index 484a87f5be..e73c7b393b 100644 --- a/kubernetes/aai/templates/sparky-be-deployment.yaml +++ b/kubernetes/aai/templates/sparky-be-deployment.yaml @@ -2,9 +2,10 @@ apiVersion: extensions/v1beta1 kind: Deployment metadata: - name: sparky-be - namespace: "{{ .Values.nsPrefix }}-aai" + name: aai-sparky-be + namespace: "{{ .Values.nsPrefix }}" spec: + replicas: {{ .Values.sparkyReplicas }} selector: matchLabels: app: sparky-be @@ -12,7 +13,7 @@ spec: metadata: labels: app: sparky-be - name: sparky-be + name: aai-sparky-be spec: containers: - name: sparky-be @@ -29,8 +30,30 @@ spec: - 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 @@ -48,6 +71,7 @@ spec: 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 @@ -58,27 +82,28 @@ spec: hostPath: path: /etc/localtime - name: aai-sparky-be-config - hostPath: - path: "/dockerdata-nfs/{{ .Values.nsPrefix }}/aai/sparky-be/appconfig/" + configMap: + name: aai-sparky-be-configmap + - name: aai-sparky-be-model-config + configMap: + name: aai-sparky-be-model-configmap + - name: aai-sparky-be-portal-config + configMap: + name: aai-sparky-be-portal-configmap + - name: aai-sparky-be-auth-config + secret: + secretName: aai-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 }} diff --git a/kubernetes/aai/values.yaml b/kubernetes/aai/values.yaml index ce625b7ab3..4cbd327dba 100644 --- a/kubernetes/aai/values.yaml +++ b/kubernetes/aai/values.yaml @@ -1,8 +1,21 @@ 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 +aaiServiceReplicas: 1 +aaiResourceReplicas: 1 +aaiTraversalReplicas: 1 +dataRouterReplicas: 1 +elasticsearchReplicas: 1 +hbaseReplicas: 1 +modelLoaderReplicas: 1 +searchDataServiceReplicas: 1 +sparkyReplicas: 1 image: - readiness: oomk8s/readiness-check:1.0.0 + readiness: oomk8s/readiness-check:1.1.0 aaiProxy: aaionap/haproxy aaiProxyVersion: 1.1.0 aaiHbaseImage: aaionap/hbase @@ -23,3 +36,4 @@ image: sparkyBeVersion: v1.1.0 gremlinServerImage: aaionap/gremlin-server filebeat: docker.elastic.co/beats/filebeat:5.5.0 + es_bb: busybox diff --git a/kubernetes/appc/resources/config/appc/opt/onap/sdnc/bin/installSdncDb.sh b/kubernetes/appc/resources/config/appc/opt/onap/sdnc/bin/installSdncDb.sh new file mode 100755 index 0000000000..75680bd942 --- /dev/null +++ b/kubernetes/appc/resources/config/appc/opt/onap/sdnc/bin/installSdncDb.sh @@ -0,0 +1,46 @@ +#!/bin/bash + +### +# ============LICENSE_START======================================================= +# openECOMP : SDN-C +# ================================================================================ +# Copyright (C) 2017 AT&T Intellectual Property. All rights +# reserved. +# ================================================================================ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============LICENSE_END========================================================= +### + +SDNC_HOME=${SDNC_HOME:-/opt/onap/sdnc} +MYSQL_PASSWD=${MYSQL_PASSWD:-openECOMP1.0} + +SDNC_DB_USER=${SDNC_DB_USER:-sdnctl} +SDNC_DB_PASSWD=${SDNC_DB_PASSWD:-gamma} +SDNC_DB_DATABASE=${SDN_DB_DATABASE:-sdnctl} + + +# Create tablespace and user account +mysql -h appc-dbhost.{{.Values.nsPrefix}} -u root -p${MYSQL_PASSWD} mysql <<-END +CREATE DATABASE ${SDNC_DB_DATABASE}; +CREATE USER '${SDNC_DB_USER}'@'localhost' IDENTIFIED BY '${SDNC_DB_PASSWD}'; +CREATE USER '${SDNC_DB_USER}'@'%' IDENTIFIED BY '${SDNC_DB_PASSWD}'; +GRANT ALL PRIVILEGES ON ${SDNC_DB_DATABASE}.* TO '${SDNC_DB_USER}'@'localhost' WITH GRANT OPTION; +GRANT ALL PRIVILEGES ON ${SDNC_DB_DATABASE}.* TO '${SDNC_DB_USER}'@'%' WITH GRANT OPTION; +commit; +END + +if [ -f ${SDNC_HOME}/data/odlsli.dump ] +then +mysql -h appc-dbhost.{{.Values.nsPrefix}} -u root -p${MYSQL_PASSWD} sdnctl < ${SDNC_HOME}/data/odlsli.dump +fi + diff --git a/kubernetes/appc/resources/config/appc/opt/onap/sdnc/bin/startODL.sh b/kubernetes/appc/resources/config/appc/opt/onap/sdnc/bin/startODL.sh new file mode 100755 index 0000000000..87c95ee3b3 --- /dev/null +++ b/kubernetes/appc/resources/config/appc/opt/onap/sdnc/bin/startODL.sh @@ -0,0 +1,67 @@ +#!/bin/bash + +### +# ============LICENSE_START======================================================= +# openECOMP : SDN-C +# ================================================================================ +# Copyright (C) 2017 AT&T Intellectual Property. All rights +# reserved. +# ================================================================================ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============LICENSE_END========================================================= +### + + +# Install SDN-C platform components if not already installed and start container + +ODL_HOME=${ODL_HOME:-/opt/opendaylight/current} +ODL_ADMIN_PASSWORD=${ODL_ADMIN_PASSWORD:-Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U} +SDNC_HOME=${SDNC_HOME:-/opt/onap/sdnc} +SLEEP_TIME=${SLEEP_TIME:-120} +MYSQL_PASSWD=${MYSQL_PASSWD:-openECOMP1.0} + +# +# Wait for database +# +echo "Waiting for mysql" +until mysql -h appc-dbhost.{{.Values.nsPrefix}} -u root -p${MYSQL_PASSWD} mysql &> /dev/null +do + printf "." + sleep 1 +done +echo -e "\nmysql ready" + +if [ ! -f ${SDNC_HOME}/.installed ] +then + echo "Installing SDN-C database" + ${SDNC_HOME}/bin/installSdncDb.sh + echo "Starting OpenDaylight" + ${ODL_HOME}/bin/start + echo "Waiting ${SLEEP_TIME} seconds for OpenDaylight to initialize" + sleep ${SLEEP_TIME} + echo "Installing SDN-C platform features" + ${SDNC_HOME}/bin/installFeatures.sh + if [ -x ${SDNC_HOME}/svclogic/bin/install.sh ] + then + echo "Installing directed graphs" + ${SDNC_HOME}/svclogic/bin/install.sh + fi + + + echo "Restarting OpenDaylight" + ${ODL_HOME}/bin/stop + echo "Installed at `date`" > ${SDNC_HOME}/.installed +fi + +exec ${ODL_HOME}/bin/karaf + diff --git a/kubernetes/config/docker/init/src/config/appc/conf/aaiclient.properties b/kubernetes/appc/resources/config/appc/opt/onap/sdnc/data/properties/aaiclient.properties index 67af3ff21c..9e29744bb3 100644 --- a/kubernetes/config/docker/init/src/config/appc/conf/aaiclient.properties +++ b/kubernetes/appc/resources/config/appc/opt/onap/sdnc/data/properties/aaiclient.properties @@ -39,7 +39,7 @@ org.onap.ccsdk.sli.adaptors.aai.application=openECOMP # # Configuration file for A&AI Client # -org.onap.ccsdk.sli.adaptors.aai.uri=https://aai-service.onap-aai:8443 +org.onap.ccsdk.sli.adaptors.aai.uri=https://aai-service.{{.Values.nsPrefix}}:8443 # query @@ -133,8 +133,8 @@ org.onap.ccsdk.sli.adaptors.aai.path.vnf.image.query=/aai/v11/service-design-and # UBB Notify org.onap.ccsdk.sli.adaptors.aai.path.notify=/aai/v11/actions/notify -org.onap.ccsdk.sli.adaptors.aai.notify.selflink.fqdn=https://aai-service.onap-aai:8443/restconf/config/L3SDN-API:services/layer3-service-list/{service-instance-id} -org.onap.ccsdk.sli.adaptors.aai.notify.selflink.avpn=https://aai-service.onap-aai:8443/restconf/config/L3AVPN-EVC-API:services/service-list/{service-instance-id}/service-data/avpn-logicalchannel-information +org.onap.ccsdk.sli.adaptors.aai.notify.selflink.fqdn=https://aai-service.{{.Values.nsPrefix}}:8443/restconf/config/L3SDN-API:services/layer3-service-list/{service-instance-id} +org.onap.ccsdk.sli.adaptors.aai.notify.selflink.avpn=https://aai-service.{{.Values.nsPrefix}}:8443/restconf/config/L3AVPN-EVC-API:services/service-list/{service-instance-id}/service-data/avpn-logicalchannel-information # Service org.onap.ccsdk.sli.adaptors.aai.path.service=/aai/v11/service-design-and-creation/services/service/{service-id} diff --git a/kubernetes/appc/resources/config/appc/opt/onap/sdnc/data/properties/dblib.properties b/kubernetes/appc/resources/config/appc/opt/onap/sdnc/data/properties/dblib.properties new file mode 100644 index 0000000000..6107a80416 --- /dev/null +++ b/kubernetes/appc/resources/config/appc/opt/onap/sdnc/data/properties/dblib.properties @@ -0,0 +1,38 @@ +### +# ============LICENSE_START======================================================= +# openECOMP : SDN-C +# ================================================================================ +# Copyright (C) 2017 AT&T Intellectual Property. All rights +# reserved. +# ================================================================================ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============LICENSE_END========================================================= +### + +# dblib.properrties +org.onap.ccsdk.sli.dbtype=jdbc + +org.onap.ccsdk.sli.jdbc.hosts=sdnctldb01 +org.onap.ccsdk.sli.jdbc.url=jdbc:mysql://appc-dbhost.{{.Values.nsPrefix}}:3306/sdnctl +org.onap.ccsdk.sli.jdbc.driver=org.mariadb.jdbc.Driver +org.onap.ccsdk.sli.jdbc.database=sdnctl +org.onap.ccsdk.sli.jdbc.user=sdnctl +org.onap.ccsdk.sli.jdbc.password=gamma +org.onap.ccsdk.sli.jdbc.connection.name=sdnctldb01 +org.onap.ccsdk.sli.jdbc.connection.timeout=50 +org.onap.ccsdk.sli.jdbc.request.timeout=100 +org.onap.ccsdk.sli.jdbc.limit.init=10 +org.onap.ccsdk.sli.jdbc.limit.min=10 +org.onap.ccsdk.sli.jdbc.limit.max=20 +org.onap.dblib.connection.recovery=false + diff --git a/kubernetes/appc/resources/config/appc/opt/onap/sdnc/data/properties/svclogic.properties b/kubernetes/appc/resources/config/appc/opt/onap/sdnc/data/properties/svclogic.properties new file mode 100644 index 0000000000..2954bb00a5 --- /dev/null +++ b/kubernetes/appc/resources/config/appc/opt/onap/sdnc/data/properties/svclogic.properties @@ -0,0 +1,30 @@ +### +# ============LICENSE_START======================================================= +# openECOMP : SDN-C +# ================================================================================ +# Copyright (C) 2017 AT&T Intellectual Property. All rights +# reserved. +# ================================================================================ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============LICENSE_END========================================================= +### + +org.onap.ccsdk.sli.dbtype = dblib +#Note : the next 4 fields are only used if org.onap.ccsdk.sli.dbtype = jdbc +org.onap.ccsdk.sli.jdbc.url=jdbc:mysql://appc-dbhost.{{.Values.nsPrefix}}:3306/sdnctl +org.onap.ccsdk.sli.jdbc.database=sdnctl +org.onap.ccsdk.sli.jdbc.user=sdnctl +org.onap.ccsdk.sli.jdbc.password=gamma + +org.xml.sax.driver=org.apache.xerces.parsers.SAXParser + diff --git a/kubernetes/appc/resources/config/appc/opt/onap/sdnc/svclogic/bin/showActiveGraphs.sh b/kubernetes/appc/resources/config/appc/opt/onap/sdnc/svclogic/bin/showActiveGraphs.sh new file mode 100755 index 0000000000..ceeea5914f --- /dev/null +++ b/kubernetes/appc/resources/config/appc/opt/onap/sdnc/svclogic/bin/showActiveGraphs.sh @@ -0,0 +1,30 @@ +### +# ============LICENSE_START======================================================= +# openECOMP : SDN-C +# ================================================================================ +# Copyright (C) 2017 AT&T Intellectual Property. All rights +# reserved. +# ================================================================================ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============LICENSE_END========================================================= +### + +MYSQL_USER=${MYSQL_USER:-sdnctl} +MYSQL_PWD=${MYSQL_PWD:-gamma} +MYSQL_DB=${MYSQL_DB:-sdnctl} +MYSQL_HOST=${MYSQL_HOST:-appc-dbhost.{{.Values.nsPrefix}}} + +mysql --user=${MYSQL_USER} --password=${MYSQL_PWD} --host=${MYSQL_HOST} ${MYSQL_DB} <<-END +SELECT module, rpc, version, mode from SVC_LOGIC where active='Y'; +END + diff --git a/kubernetes/appc/resources/config/appc/opt/onap/sdnc/svclogic/config/svclogic.properties b/kubernetes/appc/resources/config/appc/opt/onap/sdnc/svclogic/config/svclogic.properties new file mode 100644 index 0000000000..bcf321c947 --- /dev/null +++ b/kubernetes/appc/resources/config/appc/opt/onap/sdnc/svclogic/config/svclogic.properties @@ -0,0 +1,27 @@ +### +# ============LICENSE_START======================================================= +# openECOMP : SDN-C +# ================================================================================ +# Copyright (C) 2017 AT&T Intellectual Property. All rights +# reserved. +# ================================================================================ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============LICENSE_END========================================================= +### + +org.onap.ccsdk.sli.dbtype = jdbc +org.onap.ccsdk.sli.jdbc.url = jdbc:mysql://appc-sdnctldb01.{{.Values.nsPrefix}}:3306/sdnctl +org.onap.ccsdk.sli.jdbc.database = sdnctl +org.onap.ccsdk.sli.jdbc.user = sdnctl +org.onap.ccsdk.sli.jdbc.password = gamma + diff --git a/kubernetes/appc/resources/config/appc/opt/openecomp/appc/bin/installAppcDb.sh b/kubernetes/appc/resources/config/appc/opt/openecomp/appc/bin/installAppcDb.sh new file mode 100755 index 0000000000..526d6f94ae --- /dev/null +++ b/kubernetes/appc/resources/config/appc/opt/openecomp/appc/bin/installAppcDb.sh @@ -0,0 +1,54 @@ +### +# ============LICENSE_START======================================================= +# APPC +# ================================================================================ +# Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. +# ================================================================================ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============LICENSE_END========================================================= +### + +SDNC_HOME=${SDNC_HOME:-/opt/onap/sdnc} +APPC_HOME=${APPC_HOME:-/opt/openecomp/appc} +MYSQL_PASSWD=${MYSQL_PASSWD:-openECOMP1.0} + +APPC_DB_USER=${APPC_DB_USER:-appcctl} +APPC_DB_PASSWD=${APPC_DB_PASSWD:-appcctl} +APPC_DB_DATABASE=${SDN_DB_DATABASE:-appcctl} + + +# Create tablespace and user account +mysql -h appc-dbhost.{{.Values.nsPrefix}} -u root -p${MYSQL_PASSWD} mysql <<-END +CREATE DATABASE ${APPC_DB_DATABASE}; +CREATE USER '${APPC_DB_USER}'@'localhost' IDENTIFIED BY '${APPC_DB_PASSWD}'; +CREATE USER '${APPC_DB_USER}'@'%' IDENTIFIED BY '${APPC_DB_PASSWD}'; +GRANT ALL PRIVILEGES ON ${APPC_DB_DATABASE}.* TO '${APPC_DB_USER}'@'localhost' WITH GRANT OPTION; +GRANT ALL PRIVILEGES ON ${APPC_DB_DATABASE}.* TO '${APPC_DB_USER}'@'%' WITH GRANT OPTION; +commit; +END + +if [ -f ${APPC_HOME}/data/appcctl.dump ] +then + mysql -h appc-dbhost.{{.Values.nsPrefix}} -u root -p${MYSQL_PASSWD} appcctl < ${APPC_HOME}/data/appcctl.dump +fi + +if [ -f ${APPC_HOME}/data/sdnctl.dump ] +then + mysql -h appc-dbhost.{{.Values.nsPrefix}} -u root -p${MYSQL_PASSWD} sdnctl < ${APPC_HOME}/data/sdnctl.dump +fi + +if [ -f ${APPC_HOME}/data/sqlData.dump ] +then + mysql -h appc-dbhost.{{.Values.nsPrefix}} -u root -p${MYSQL_PASSWD} sdnctl < ${APPC_HOME}/data/sqlData.dump +fi + diff --git a/kubernetes/appc/resources/config/appc/opt/openecomp/appc/bin/startODL.sh b/kubernetes/appc/resources/config/appc/opt/openecomp/appc/bin/startODL.sh new file mode 100755 index 0000000000..ba4ff52147 --- /dev/null +++ b/kubernetes/appc/resources/config/appc/opt/openecomp/appc/bin/startODL.sh @@ -0,0 +1,106 @@ +#!/bin/bash + +### +# ============LICENSE_START======================================================= +# APPC +# ================================================================================ +# Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. +# ================================================================================ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============LICENSE_END========================================================= +# ECOMP is a trademark and service mark of AT&T Intellectual Property. +### + +# +# This script takes care of installing the SDNC & APPC platform components +# if not already installed, and starts the APPC Docker Container +# + +ODL_HOME=${ODL_HOME:-/opt/opendaylight/current} +ODL_ADMIN_PASSWORD=${ODL_ADMIN_PASSWORD:-Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U} +SDNC_HOME=${SDNC_HOME:-/opt/onap/sdnc} +APPC_HOME=${APPC_HOME:-/opt/openecomp/appc} +SLEEP_TIME=${SLEEP_TIME:-120} +MYSQL_PASSWD=${MYSQL_PASSWD:-openECOMP1.0} + +# +# Adding the DMAAP_TOPIC_ENV variable into APPC-ASDC-LISTENER properties +# +DMAAP_TOPIC_ENV=${DMAAP_TOPIC_ENV} + +if [ -z "$DMAAP_TOPIC_ENV" ] + then + echo "DMAAP_TOPIC_ENV shell variable is empty. Adding default value OS-ETE-DFW" + DMAAP_TOPIC_ENV="OS-ETE-DFW" + else + echo "DMAAP_TOPIC_ENV shell variable exists and it's $DMAAP_TOPIC_ENV" +fi + +echo "Adding a value to property appc.asdc.env in appc.properties for appc-asdc-listener feature" +echo "" >> $APPC_HOME/data/properties/appc.properties +echo "appc.asdc.env=$DMAAP_TOPIC_ENV" >> $APPC_HOME/data/properties/appc.properties +echo "" >> $APPC_HOME/data/properties/appc.properties + +# +# Wait for database to init properly +# +echo "Waiting for mysql" +until mysql -h appc-dbhost.{{.Values.nsPrefix}} -u root -p${MYSQL_PASSWD} mysql &> /dev/null +do + printf "." + sleep 1 +done +echo -e "\nmysql ready" + +if [ ! -f ${SDNC_HOME}/.installed ] +then + echo "Installing SDNC database" + ${SDNC_HOME}/bin/installSdncDb.sh + echo "Installing APPC database" + ${APPC_HOME}/bin/installAppcDb.sh + echo "Starting OpenDaylight" + ${ODL_HOME}/bin/start + echo "Waiting ${SLEEP_TIME} seconds for OpenDaylight to initialize" + sleep ${SLEEP_TIME} + echo "Inserting modified installFeatures.sh for sdnc" + rm ${SDNC_HOME}/bin/installFeatures.sh + cp ${APPC_HOME}/data/sdncInstallFeatures.sh ${SDNC_HOME}/bin/installFeatures.sh + echo "Installing SDNC platform features" + ${SDNC_HOME}/bin/installFeatures.sh + if [ -x ${SDNC_HOME}/svclogic/bin/install.sh ] + then + echo "Installing directed graphs" + ${SDNC_HOME}/svclogic/bin/install.sh + fi + + echo "Installing APPC platform features" + ${APPC_HOME}/bin/installFeatures.sh + if [ -x ${APPC_HOME}/svclogic/bin/install.sh ] + then + echo "Installing APPC DGs using platform-logic" + ${APPC_HOME}/svclogic/bin/install.sh + fi + + if [ -x ${APPC_HOME}/svclogic/bin/install-converted-dgs.sh ] + then + echo "Installing APPC JSON DGs converted to XML using dg-loader" + ${APPC_HOME}/svclogic/bin/install-converted-dgs.sh + fi + + echo "Restarting OpenDaylight" + ${ODL_HOME}/bin/stop + echo "Installed at `date`" > ${SDNC_HOME}/.installed +fi + +exec ${ODL_HOME}/bin/karaf + diff --git a/kubernetes/appc/resources/config/appc/opt/openecomp/appc/data/properties/aaiclient.properties b/kubernetes/appc/resources/config/appc/opt/openecomp/appc/data/properties/aaiclient.properties new file mode 100644 index 0000000000..9e29744bb3 --- /dev/null +++ b/kubernetes/appc/resources/config/appc/opt/openecomp/appc/data/properties/aaiclient.properties @@ -0,0 +1,248 @@ +### +# ============LICENSE_START======================================================= +# APPC +# ================================================================================ +# Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. +# ================================================================================ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============LICENSE_END========================================================= +### + +# +# Configuration file for A&AI Client +# + +# +# Certificate keystore and truststore +# +org.onap.ccsdk.sli.adaptors.aai.ssl.trust=/opt/openecomp/appc/data/stores/truststore.openecomp.client.jks +org.onap.ccsdk.sli.adaptors.aai.ssl.trust.psswd=adminadmin +org.onap.ccsdk.sli.adaptors.aai.host.certificate.ignore=true + +org.onap.ccsdk.sli.adaptors.aai.client.name=AAI +org.onap.ccsdk.sli.adaptors.aai.client.psswd=AAI + +org.onap.ccsdk.sli.adaptors.aai.application=openECOMP +#connection.timeout=1000 +#read.timeout=2000 + +# +# Configuration file for A&AI Client +# +org.onap.ccsdk.sli.adaptors.aai.uri=https://aai-service.{{.Values.nsPrefix}}:8443 + + +# query +org.onap.ccsdk.sli.adaptors.aai.path.query=/aai/v11/search/sdn-zone-query +org.onap.ccsdk.sli.adaptors.aai.query.nodes=/aai/v11/search/nodes-query?search-node-type={node-type}&filter={entity-identifier}:EQUALS:{entity-name} +org.onap.ccsdk.sli.adaptors.aai.query.generic=/aai/v11/search/generic-query?key={identifier}:{value}&start-node-type={start-node-type}&include=complex&depth=3 + +# named query +org.onap.ccsdk.sli.adaptors.aai.query.named=/aai/search/named-query + + +#update +org.onap.ccsdk.sli.adaptors.aai.update=/aai/v11/actions/update + +# vce +org.onap.ccsdk.sli.adaptors.aai.path.vce =/aai/v11/network/vces/vce/ +org.onap.ccsdk.sli.adaptors.aai.path.vces=/aai/v11/network/vces/ + +# vpe +org.onap.ccsdk.sli.adaptors.aai.path.vpe =/aai/v11/network/vpes/vpe/ +org.onap.ccsdk.sli.adaptors.aai.path.vpes=/aai/v11/network/vpes/ + +# customer +org.onap.ccsdk.sli.adaptors.aai.path.customer=/aai/v11/business/customers/customer/{customer-id} + +# service subscription +org.onap.ccsdk.sli.adaptors.aai.path.service.subscription=/aai/v11/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type} + +# service instance +org.onap.ccsdk.sli.adaptors.aai.path.svcinst=/aai/v11/business/customers/customer/{customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances +org.onap.ccsdk.sli.adaptors.aai.path.svcinst.query=/aai/v11/search/generic-query?key=service-instance.service-instance-id:{svc-instance-id}&start-node-type=service-instance&include=service-instance +org.onap.ccsdk.sli.adaptors.aai.path.service.instance=/aai/v11/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id} + +# complex +org.onap.ccsdk.sli.adaptors.aai.path.complexes=/aai/v11/cloud-infrastructure/complexes +org.onap.ccsdk.sli.adaptors.aai.path.complex=/aai/v11/cloud-infrastructure/complexes/complex/{physical-location-id} + +# tenant +org.onap.ccsdk.sli.adaptors.aai.path.tenant=/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id} +org.onap.ccsdk.sli.adaptors.aai.path.tenant.query=/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant?tenant-name={tenant-name} + +# vservers +org.onap.ccsdk.sli.adaptors.aai.path.vservers=/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/ +org.onap.ccsdk.sli.adaptors.aai.path.vserver=/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id} + +# vpls-pe +org.onap.ccsdk.sli.adaptors.aai.path.vpls.pes=/aai/v11/network/vpls-pes/ +org.onap.ccsdk.sli.adaptors.aai.path.vpls.pe =/aai/v11/network/vpls-pes/vpls-pe/ + +# ctag-pool +org.onap.ccsdk.sli.adaptors.aai.path.ctag.pools=/aai/v11/cloud-infrastructure/complexes/complex/{physical-location-id}/ctag-pools +org.onap.ccsdk.sli.adaptors.aai.path.ctag.pool=/aai/v11/cloud-infrastructure/complexes/complex/{physical-location-id}/ctag-pools/ctag-pool/{target-pe}/{availability-zone-name} + +# +#-------------- 1510 ---------------------- +# + +# pservers +org.onap.ccsdk.sli.adaptors.aai.path.pservers=/aai/v11/cloud-infrastructure/pservers +org.onap.ccsdk.sli.adaptors.aai.path.pserver=/aai/v11/cloud-infrastructure/pservers/pserver/{hostname} + +# generic-vnf +org.onap.ccsdk.sli.adaptors.aai.path.generic.vnfs=/aai/v11/network/generic-vnfs +org.onap.ccsdk.sli.adaptors.aai.path.generic.vnf=/aai/v11/network/generic-vnfs/generic-vnf/{vnf-id} + +# dvs-switch +org.onap.ccsdk.sli.adaptors.aai.path.dvsswitches=/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/dvs-switches +org.onap.ccsdk.sli.adaptors.aai.path.dvsswitch=/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/dvs-switches/dvs-switch/{switch-name} + +# L3 Networks +org.onap.ccsdk.sli.adaptors.aai.path.l3networks=/aai/v11/network/l3-networks +org.onap.ccsdk.sli.adaptors.aai.path.l3network=/aai/v11/network/l3-networks/l3-network/{network-id} +org.onap.ccsdk.sli.adaptors.aai.path.l3network.query.name=/aai/v11/network/l3-networks/l3-network?network-name={network-name} + +# P-Interfaces +org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterfaces=/aai/v11/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces +org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface=/aai/v11/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name} + +# Physical Link +org.onap.ccsdk.sli.adaptors.aai.path.physical.links=/aai/v11/network/physical-links +org.onap.ccsdk.sli.adaptors.aai.path.physical.link=/aai/v11/network/physical-links/physical-link/{link-name} + +# VPN Bindings +org.onap.ccsdk.sli.adaptors.aai.path.vpn.bindings=/aai/v11/network/vpn-bindings/ +org.onap.ccsdk.sli.adaptors.aai.path.vpn.binding=/aai/v11/network/vpn-bindings/vpn-binding/{vpn-id} + +# VNF IMAGES +org.onap.ccsdk.sli.adaptors.aai.path.vnf.images=/aai/v11/service-design-and-creation/vnf-images +org.onap.ccsdk.sli.adaptors.aai.path.vnf.image=/aai/v11/service-design-and-creation/vnf-images/vnf-image/{att-uuid} +org.onap.ccsdk.sli.adaptors.aai.path.vnf.image.query=/aai/v11/service-design-and-creation/vnf-images/vnf-image?application={application_model}&application-vendor={application_vendor} + +# UBB Notify +org.onap.ccsdk.sli.adaptors.aai.path.notify=/aai/v11/actions/notify +org.onap.ccsdk.sli.adaptors.aai.notify.selflink.fqdn=https://aai-service.{{.Values.nsPrefix}}:8443/restconf/config/L3SDN-API:services/layer3-service-list/{service-instance-id} +org.onap.ccsdk.sli.adaptors.aai.notify.selflink.avpn=https://aai-service.{{.Values.nsPrefix}}:8443/restconf/config/L3AVPN-EVC-API:services/service-list/{service-instance-id}/service-data/avpn-logicalchannel-information + +# Service +org.onap.ccsdk.sli.adaptors.aai.path.service=/aai/v11/service-design-and-creation/services/service/{service-id} +org.onap.ccsdk.sli.adaptors.aai.path.services=/aai/v11/service-design-and-creation/services + + +# +#-------------- 1604 ---------------------- +# + +# VNFC +org.onap.ccsdk.sli.adaptors.aai.path.vnfc=/aai/v11/network/vnfcs/vnfc/{vnfc-name} + +# class-of-service +org.onap.ccsdk.sli.adaptors.aai.path.class.of.service=/aai/v11/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id}/site-pairs/site-pair/{site-pair-id}/classes-of-service/class-of-service/{cos-id} + +# site-pair +org.onap.ccsdk.sli.adaptors.aai.path.site.pair=/aai/v11/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id}/site-pairs/site-pair/{site-pair-id} + +# routing-instance +org.onap.ccsdk.sli.adaptors.aai.path.routing.instance=/aai/v11/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id} + +# site-pair-set +org.onap.ccsdk.sli.adaptors.aai.path.site.pair.set=/aai/v11/network/site-pair-sets/site-pair-set/{site-pair-set-id} + +# license key resource +org.onap.ccsdk.sli.adaptors.aai.path.license.acquire=/aai/v11/actions/assignment/license-management/assignment-group-uuid/{assignment-group-uuid} +org.onap.ccsdk.sli.adaptors.aai.path.license=/aai/v11/license-management/license-key-resources/license-key-resource/{att-uuid} + +# logical-link +org.onap.ccsdk.sli.adaptors.aai.path.logical.link =/aai/v11/network/logical-links/logical-link/{link-name} + +# virtual-data-center +org.onap.ccsdk.sli.adaptors.aai.path.virtual.data.center=/aai/v11/cloud-infrastructure/virtual-data-centers/virtual-data-center/{vdc-id} + +# wan-connector +org.onap.ccsdk.sli.adaptors.aai.path.wan.connector=/aai/v11/business/connectors/connector/{resource-instance-id} + +# l-interface +org.onap.ccsdk.sli.adaptors.aai.path.lag.interface.l.interface=/aai/v11/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{lag-interface.interface-name}/l-interfaces/l-interface/{interface-name} +org.onap.ccsdk.sli.adaptors.aai.path.p.interface.l.interface=/aai/v11/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{p-interface.interface-name}/l-interfaces/l-interface/{interface-name} + +# l-interface pnf +org.onap.ccsdk.sli.adaptors.aai.path.lag.interface.l.interface.pnf=/aai/v11/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{lag-interface.interface-name}/l-interfaces/l-interface/{interface-name} +org.onap.ccsdk.sli.adaptors.aai.path.p.interface.l.interface.pnf=/aai/v11/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{p-interface.interface-name}/l-interfaces/l-interface/{interface-name} + +# subinterface +org.onap.ccsdk.sli.adaptors.aai.path.pnf.lag.interface.subinterface=/aai/v11/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{lag-interface.interface-name}/l-interfaces/l-interface/{interface-name} +org.onap.ccsdk.sli.adaptors.aai.path.pnf.p.interface.l.interface=/aai/v11/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{p-interface.interface-name}/l-interfaces/l-interface/{interface-name} + +# vlans +org.onap.ccsdk.sli.adaptors.aai.path.vlan=/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} +org.onap.ccsdk.sli.adaptors.aai.path.generic.vnf.vlan=/aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} + +# l3-interface-ipv4-address-list +org.onap.ccsdk.sli.adaptors.aai.path.l3.interface.ipv4.address.list=/aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +org.onap.ccsdk.sli.adaptors.aai.path.vlan.l3.interface.ipv4.address.list=/aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} + +# l3-interface-ipv6-address-list +org.onap.ccsdk.sli.adaptors.aai.path.l3.interface.ipv6.address.list=/aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +org.onap.ccsdk.sli.adaptors.aai.path.vlan.l3.interface.ipv6.address.list=/aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} + +# ipsec-configuration +org.onap.ccsdk.sli.adaptors.aai.path.ipsec.configuration=/aai/v11/network/ipsec-configurations/ipsec-configuration/{ipsec-configuration-id} + +# vig server +org.onap.ccsdk.sli.adaptors.aai.path.vig.server=/aai/v11/network/ipsec-configurations/ipsec-configuration/{ipsec-configuration-id}/vig-servers/vig-server/{vig-address-type} + +# l3-network +org.onap.ccsdk.sli.adaptors.aai.path.l3.network=/aai/v11/network/l3-networks/l3-network/{network-id} + +# subnet +org.onap.ccsdk.sli.adaptors.aai.path.subnet=/aai/v11/network/l3-networks/l3-network/{network-id}/subnets/subnet/{subnet-id} + +# multicast-configuration +org.onap.ccsdk.sli.adaptors.aai.path.multicast.configuration=/aai/v11/network/multicast-configurations/multicast-configuration/{multicast-configuration-id} + +# org.onap.ccsdk.sli.adaptors.aai.path.l.interface.ipv4.address.list +org.onap.ccsdk.sli.adaptors.aai.path.l3-interface.ipv4.address.list=/aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} + +# org.onap.ccsdk.sli.adaptors.aai.path.l.interface.vlan.ipv4.address.list +org.onap.ccsdk.sli.adaptors.aai.path.l3-interface.vlan.ipv4.address.list=/aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} + +# org.onap.ccsdk.sli.adaptors.aai.path.l.interface.ipv6.address.list +org.onap.ccsdk.sli.adaptors.aai.path.l3-interface.ipv6.address.list=/aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} + +# volume.group +org.onap.ccsdk.sli.adaptors.aai.path.volume.group=/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/volume-groups/volume-group/{volume-group-id} + +#cloud region +org.onap.ccsdk.sli.adaptors.aai.path.cloud.region=/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id} + +# vf-module +org.onap.ccsdk.sli.adaptors.aai.path.vf.module=/aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/vf-modules/vf-module/{vf-module-id} + +# l-interface through generic-vnf +org.onap.ccsdk.sli.adaptors.aai.path.generic.vnf.linterface=/aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name} + +# network-policy +org.onap.ccsdk.sli.adaptors.aai.path.network.policy=/aai/v11/network/network-policies/network-policy/{network-policy-id} + +# pnf +org.onap.ccsdk.sli.adaptors.aai.path.pnf=/aai/v11/network/pnfs/pnf/{pnf-name} + +# +# Formatting +# +org.onap.ccsdk.sli.adaptors.aai.param.format=filter=%s:%s +org.onap.ccsdk.sli.adaptors.aai.param.vnf_type=vnf-type +org.onap.ccsdk.sli.adaptors.aai.param.physical.location.id=physical-location-id +org.onap.ccsdk.sli.adaptors.aai.param.service.type=service-type diff --git a/kubernetes/config/docker/init/src/config/appc/conf/appc.properties b/kubernetes/appc/resources/config/appc/opt/openecomp/appc/data/properties/appc.properties index 3ac5aaee0b..de577c43cb 100644 --- a/kubernetes/config/docker/init/src/config/appc/conf/appc.properties +++ b/kubernetes/appc/resources/config/appc/opt/openecomp/appc/data/properties/appc.properties @@ -22,7 +22,7 @@ ### ### ### Properties for demo ### ### ### -appc.demo.poolMembers=dmaap.onap-message-router:3904 +appc.demo.poolMembers=dmaap.{{.Values.nsPrefix}}:3904 appc.demo.topic.read=APPC-CL appc.demo.topic.write=APPC-CL appc.demo.client.name=appcDemoEventListener @@ -33,7 +33,7 @@ appc.demo.threads.poolsize.max=2 appc.demo.provider.user=admin appc.demo.provider.pass=Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U appc.demo.provider.url=http://localhost:8181/restconf/operations/appc-provider -appc.provider.vfodl.url=http://admin:Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U@sdnhost.onap-appc:8282/restconf/config/network-topology:network-topology/topology/topology-netconf/node/NODE_NAME/yang-ext:mount/sample-plugin:sample-plugin/pg-streams/ +appc.provider.vfodl.url=http://admin:Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U@appc-sdnhost.{{.Values.nsPrefix}}:8282/restconf/config/network-topology:network-topology/topology/topology-netconf/node/NODE_NAME/yang-ext:mount/sample-plugin:sample-plugin/pg-streams/ # The properties right below are needed to properly call the Master DG to serve demo purposes appc.service.logic.module.name=APPC @@ -41,11 +41,11 @@ appc.topology.dg.method=topology-operation-all appc.topology.dg.version=2.0.0 # TEMP - Properties that might be needed to make the AAI-APPC connection -org.openecomp.appc.db.url.appcctl=jdbc:mysql://dbhost:3306/appcctl +org.openecomp.appc.db.url.appcctl=jdbc:mysql://appc-dbhost.{{.Values.nsPrefix}}:3306/appcctl org.openecomp.appc.db.user.appcctl=appcctl org.openecomp.appc.db.pass.appcctl=appcctl -org.openecomp.appc.db.url.sdnctl=jdbc:mysql://dbhost:3306/sdnctl +org.openecomp.appc.db.url.sdnctl=jdbc:mysql://appc-dbhost.{{.Values.nsPrefix}}:3306/sdnctl org.openecomp.appc.db.user.sdnctl=sdnctl org.openecomp.appc.db.pass.sdnctl=gamma @@ -74,11 +74,11 @@ provider1.tenant1.password=Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U # Property below is valid in appc-command-executor-core, appc-license-manager-core, appc-lifecycle-management-core, # appc-request-handler-core, appc-workflow-management-core (all from the appc-dispatcher package). -dmaap.poolMembers=dmaap.onap-message-router:3904 +dmaap.poolMembers=dmaap.{{.Values.nsPrefix}}:3904 # appc-event-listener-bundle properties (only defined in src/test of default.properties) -appc.LCM.poolMembers=dmaap.onap-message-router:3904 +appc.LCM.poolMembers=dmaap.{{.Values.nsPrefix}}:3904 appc.LCM.topic.read=APPC-LCM-READ appc.LCM.topic.write=APPC-LCM-WRITE appc.LCM.client.name=APPC-EVENT-LISTENER-TEST @@ -87,8 +87,8 @@ appc.LCM.provider.pass=Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U appc.LCM.provider.url=http://localhost:8181/restconf/operations/appc-provider-lcm # properties from appc-netconf-adapter-bundle, appc-dg-common, appc-dmaap-adapter-bundle -poolMembers=dmaap.onap-message-router:3904 -event.pool.members=dmaap.onap-message-router:3904 +poolMembers=dmaap.{{.Values.nsPrefix}}:3904 +event.pool.members=dmaap.{{.Values.nsPrefix}}:3904 restconf.user=admin restconf.pass=Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U @@ -106,7 +106,7 @@ test.url=http://api.appc.local/vm/9999999/test/99999999-9999-9999-9999-999999999 org.openecomp.appc.iaas.skiphypervisorcheck=true # Properties from default.properties in the src/test and src/main paths of appc-asdc-listener-bundle -appc.sdc.host=sdc-be.onap-sdc:8443 +appc.sdc.host=sdc-be.{{.Values.nsPrefix}}:8443 appc.sdc.env=APPC-ASDC-ENV appc.sdc.user=test appc.sdc.pass=test @@ -118,12 +118,12 @@ appc.sdc.provider.url=http://localhost:8181/restconf/operations/AsdcMessage:conf DCAE.dmaap.event.topic.write=EventSenderTest DCAE.dmaap.appc.username=test DCAE.dmaap.appc.password=test -DCAE.dmaap.event.pool.members=dmaap.onap-message-router:3904 +DCAE.dmaap.event.pool.members=dmaap.{{.Values.nsPrefix}}:3904 #OAM Listener appc.OAM.disabled=true appc.OAM.provider.url=http://localhost:8181/restconf/operations/appc-oam -appc.OAM.poolMembers=dmaap.onap-message-router:3904 +appc.OAM.poolMembers=dmaap.{{.Values.nsPrefix}}:3904 appc.OAM.service=ueb appc.OAM.topic.read=testOAM appc.OAM.topic.write=testOAM diff --git a/kubernetes/appc/resources/config/appc/opt/openecomp/appc/data/properties/dblib.properties b/kubernetes/appc/resources/config/appc/opt/openecomp/appc/data/properties/dblib.properties new file mode 100644 index 0000000000..888ee9f0d9 --- /dev/null +++ b/kubernetes/appc/resources/config/appc/opt/openecomp/appc/data/properties/dblib.properties @@ -0,0 +1,37 @@ +### +# ============LICENSE_START======================================================= +# APPC +# ================================================================================ +# Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. +# ================================================================================ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============LICENSE_END========================================================= +### + +# dblib.properrties +org.onap.ccsdk.sli.dbtype=jdbc + +org.onap.ccsdk.sli.jdbc.hosts=sdnctldb01 +org.onap.ccsdk.sli.jdbc.url=jdbc:mysql://appc-dbhost.{{.Values.nsPrefix}}:3306/sdnctl +org.onap.ccsdk.sli.jdbc.driver=org.mariadb.jdbc.Driver +org.onap.ccsdk.sli.jdbc.database=sdnctl +org.onap.ccsdk.sli.jdbc.user=sdnctl +org.onap.ccsdk.sli.jdbc.password=gamma +org.onap.ccsdk.sli.jdbc.connection.name=sdnctldb01 +org.onap.ccsdk.sli.jdbc.connection.timeout=50 +org.onap.ccsdk.sli.jdbc.request.timeout=100 +org.onap.ccsdk.sli.jdbc.limit.init=10 +org.onap.ccsdk.sli.jdbc.limit.min=10 +org.onap.ccsdk.sli.jdbc.limit.max=20 +org.onap.dblib.connection.recovery=false + diff --git a/kubernetes/appc/resources/config/appc/opt/openecomp/appc/data/properties/svclogic.properties b/kubernetes/appc/resources/config/appc/opt/openecomp/appc/data/properties/svclogic.properties new file mode 100644 index 0000000000..ea38616810 --- /dev/null +++ b/kubernetes/appc/resources/config/appc/opt/openecomp/appc/data/properties/svclogic.properties @@ -0,0 +1,29 @@ +### +# ============LICENSE_START======================================================= +# APPC +# ================================================================================ +# Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. +# ================================================================================ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============LICENSE_END========================================================= +### + +org.onap.ccsdk.sli.dbtype = dblib +#Note : the next 4 fields are only used if org.onap.ccsdk.sli.dbtype = jdbc +org.onap.ccsdk.sli.jdbc.url=jdbc:mysql://appc-dbhost.{{.Values.nsPrefix}}:3306/sdnctl +org.onap.ccsdk.sli.jdbc.database=sdnctl +org.onap.ccsdk.sli.jdbc.user=sdnctl +org.onap.ccsdk.sli.jdbc.password=gamma + +org.xml.sax.driver=org.apache.xerces.parsers.SAXParser + diff --git a/kubernetes/appc/resources/config/appc/opt/openecomp/appc/svclogic/bin/showActiveGraphs.sh b/kubernetes/appc/resources/config/appc/opt/openecomp/appc/svclogic/bin/showActiveGraphs.sh new file mode 100755 index 0000000000..5409d9e552 --- /dev/null +++ b/kubernetes/appc/resources/config/appc/opt/openecomp/appc/svclogic/bin/showActiveGraphs.sh @@ -0,0 +1,29 @@ +### +# ============LICENSE_START======================================================= +# APPC +# ================================================================================ +# Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. +# ================================================================================ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============LICENSE_END========================================================= +# ECOMP is a trademark and service mark of AT&T Intellectual Property. +### + +MYSQL_USER=${MYSQL_USER:-sdnctl} +MYSQL_PWD=${MYSQL_PWD:-gamma} +MYSQL_DB=${MYSQL_DB:-sdnctl} +MYSQL_HOST=${MYSQL_HOST:-appc-dbhost.{{.Values.nsPrefix}}} + +mysql --user=${MYSQL_USER} --password=${MYSQL_PWD} --host=${MYSQL_HOST} ${MYSQL_DB} <<-END +SELECT module, rpc, version, mode from SVC_LOGIC where active='Y'; +END diff --git a/kubernetes/appc/resources/config/appc/opt/openecomp/appc/svclogic/config/svclogic.properties b/kubernetes/appc/resources/config/appc/opt/openecomp/appc/svclogic/config/svclogic.properties new file mode 100644 index 0000000000..2f67a5822f --- /dev/null +++ b/kubernetes/appc/resources/config/appc/opt/openecomp/appc/svclogic/config/svclogic.properties @@ -0,0 +1,27 @@ +### +# ============LICENSE_START======================================================= +# APPC +# ================================================================================ +# Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. +# ================================================================================ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============LICENSE_END========================================================= +# ECOMP is a trademark and service mark of AT&T Intellectual Property. +### + +org.onap.ccsdk.sli.dbtype = jdbc +org.onap.ccsdk.sli.jdbc.url = jdbc:mysql://appc-sdnctldb01.{{.Values.nsPrefix}}:3306/sdnctl +org.onap.ccsdk.sli.jdbc.database = sdnctl +org.onap.ccsdk.sli.jdbc.user = sdnctl +org.onap.ccsdk.sli.jdbc.password = gamma + diff --git a/kubernetes/appc/resources/config/dgbuilder/svclogic.properties b/kubernetes/appc/resources/config/dgbuilder/svclogic.properties new file mode 100644 index 0000000000..8b0723b72b --- /dev/null +++ b/kubernetes/appc/resources/config/dgbuilder/svclogic.properties @@ -0,0 +1,5 @@ +org.onap.ccsdk.sli.dbtype=jdbc +org.onap.ccsdk.sli.jdbc.url=jdbc:mysql://appc-dbhost.{{.Values.nsPrefix}}:3306/sdnctl +org.onap.ccsdk.sli.jdbc.database=sdnctl +org.onap.ccsdk.sli.jdbc.user=sdnctl +org.onap.ccsdk.sli.jdbc.password=gamma diff --git a/kubernetes/appc/resources/config/log/filebeat/log4j/filebeat.yml b/kubernetes/appc/resources/config/log/filebeat/log4j/filebeat.yml new file mode 100644 index 0000000000..2cd63e1d98 --- /dev/null +++ b/kubernetes/appc/resources/config/log/filebeat/log4j/filebeat.yml @@ -0,0 +1,49 @@ +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.{{.Values.nsPrefix}}: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 diff --git a/kubernetes/config/docker/init/src/config/log/appc/org.ops4j.pax.logging.cfg b/kubernetes/appc/resources/config/log/org.ops4j.pax.logging.cfg index c582620fa8..c582620fa8 100644 --- a/kubernetes/config/docker/init/src/config/log/appc/org.ops4j.pax.logging.cfg +++ b/kubernetes/appc/resources/config/log/org.ops4j.pax.logging.cfg diff --git a/kubernetes/appc/resources/scripts/dgbuilder/createReleaseDir.sh b/kubernetes/appc/resources/scripts/dgbuilder/createReleaseDir.sh new file mode 100755 index 0000000000..d63687a644 --- /dev/null +++ b/kubernetes/appc/resources/scripts/dgbuilder/createReleaseDir.sh @@ -0,0 +1,129 @@ +#!/bin/bash +export PATH=$PATH:. +appDir=$(pwd) +if [ "$#" != 3 -a "$#" != 4 ] +then + echo "Usage $0 releaseDir loginId emailAddress [gitLocalRepository]" + echo "Note: Specify the gitLocalRepository path if you would want to be able to import flows from your local git repository" + exit +fi +if [ ! -e "releases" ] +then + mkdir releases +fi +releaseDir="$1" +name="Release $releaseDir" +loginId="$2" +emailid="$3" +dbHost="appc-dbhost.{{.Values.nsPrefix}}" +dbPort="3306" +dbName="sdnctl" +dbUser="sdnctl" +dbPassword="gamma" +gitLocalRepository="$4" + +lastPort=$(find "releases/" -name "customSettings.js" |xargs grep uiPort|cut -d: -f2|sed -e s/,//|sort|tail -1) +echo $lastPort|grep uiPort >/dev/null 2>&1 +if [ "$?" == "0" ] +then +lastPort=$(find "releases/" -name "customSettings.js" |xargs grep uiPort|cut -d: -f3|sed -e s/,//|sort|tail -1) +fi +#echo $lastPort +if [ "${lastPort}" == "" ] +then + lastPort="3099" +fi +let nextPort=$(expr $lastPort+1) +#echo $nextPort +if [ ! -e "releases/$releaseDir" ] +then +mkdir releases/$releaseDir +cd releases/$releaseDir +mkdir flows +mkdir flows/shared +mkdir flows/shared/backups +mkdir html +mkdir xml +mkdir lib +mkdir lib/flows +mkdir logs +mkdir conf +mkdir codecloud +customSettingsFile="customSettings.js" +if [ ! -e "./$customSettingsFile" ] +then + echo "module.exports = {" >$customSettingsFile + echo " 'name' : '$name'," >>$customSettingsFile + echo " 'emailAddress' :'$emailid'," >>$customSettingsFile + echo " 'uiPort' :$nextPort," >>$customSettingsFile + echo " 'mqttReconnectTime': 15000," >>$customSettingsFile + echo " 'serialReconnectTime' : 15000," >>$customSettingsFile + echo " 'debugMaxLength': 1000," >>$customSettingsFile + echo " 'htmlPath': 'releases/$releaseDir/html/'," >>$customSettingsFile + echo " 'xmlPath': 'releases/$releaseDir/xml/'," >>$customSettingsFile + echo " 'flowFile' : 'releases/$releaseDir/flows/flows.json'," >>$customSettingsFile + echo " 'sharedDir': 'releases/$releaseDir/flows/shared'," >>$customSettingsFile + echo " 'userDir' : 'releases/$releaseDir'," >>$customSettingsFile + echo " 'httpAuth': {user:'$loginId',pass:'cc03e747a6afbbcbf8be7668acfebee5'}," >>$customSettingsFile + echo " 'dbHost': '$dbHost'," >>$customSettingsFile + echo " 'dbPort': '$dbPort'," >>$customSettingsFile + echo " 'dbName': '$dbName'," >>$customSettingsFile + echo " 'dbUser': '$dbUser'," >>$customSettingsFile + echo " 'dbPassword': '$dbPassword'," >>$customSettingsFile + echo " 'gitLocalRepository': '$gitLocalRepository'" >>$customSettingsFile + echo " }" >>$customSettingsFile +fi + #echo "Created custom settings file $customSettingsFile" + echo "Done ....." +else + echo "ERROR:customSettings file $customSettingsFile already exists for $releaseDir" + exit +fi +#echo "Content of custom settings file" +#echo "============================================================================" +# cat $customSettingsFile +#echo "============================================================================" +svclogicPropFile="./conf/svclogic.properties" +if [ ! -d "${appDir}/yangFiles" ] +then + mkdir -p "${appDir}/yangFiles" +fi +if [ ! -d "${appDir}/generatedJS" ] +then + mkdir -p "${appDir}/generatedJS" +fi + +if [ ! -e "./$svclogicPropFile" ] +then + echo "org.onap.ccsdk.sli.dbtype=jdbc" >$svclogicPropFile + echo "org.onap.ccsdk.sli.jdbc.url=jdbc:mysql://appc-dbhost.{{.Values.nsPrefix}}:3306/sdnctl" >>$svclogicPropFile + echo "org.onap.ccsdk.sli.jdbc.database=sdnctl" >>$svclogicPropFile + echo "org.onap.ccsdk.sli.jdbc.user=sdnctl" >>$svclogicPropFile + echo "org.onap.ccsdk.sli.jdbc.password=gamma" >>$svclogicPropFile +fi +if [ ! -e "${appDir}/flowShareUsers.js" ] +then + echo "module.exports = {\"flowShareUsers\":" >${appDir}/flowShareUsers.js + echo " [" >>${appDir}/flowShareUsers.js + echo " ]" >>${appDir}/flowShareUsers.js + echo "}" >>${appDir}/flowShareUsers.js +fi +grep "$releaseDir" ${appDir}/flowShareUsers.js >/dev/null 2>&1 +if [ "$?" != "0" ] +then + num_of_lines=$(cat ${appDir}/flowShareUsers.js|wc -l) + if [ $num_of_lines -gt 4 ] + then + content=$(head -n -2 ${appDir}/flowShareUsers.js) + echo "${content}," > ${appDir}/flowShareUsers.js + else + content=$(head -n -2 ${appDir}/flowShareUsers.js) + echo "$content" > ${appDir}/flowShareUsers.js + fi + echo " {" >> ${appDir}/flowShareUsers.js + echo " \"name\" : \"$name\"," >> ${appDir}/flowShareUsers.js + echo " \"rootDir\" : \"$releaseDir\"" >> ${appDir}/flowShareUsers.js + echo " }" >> ${appDir}/flowShareUsers.js + echo " ]" >> ${appDir}/flowShareUsers.js + echo "}" >> ${appDir}/flowShareUsers.js +fi diff --git a/kubernetes/appc/resources/scripts/dgbuilder/customSettings.js b/kubernetes/appc/resources/scripts/dgbuilder/customSettings.js new file mode 100644 index 0000000000..40a624d44d --- /dev/null +++ b/kubernetes/appc/resources/scripts/dgbuilder/customSettings.js @@ -0,0 +1,38 @@ +module.exports={ + "name": "Release sdnc1.0", + "emailAddress": "dguser@onap.org", + "uiPort": 3100, + "mqttReconnectTime": 15000, + "serialReconnectTime": 15000, + "debugMaxLength": 1000, + "htmlPath": "releases/sdnc1.0/html/", + "xmlPath": "releases/sdnc1.0/xml/", + "flowFile": "releases/sdnc1.0/flows/flows.json", + "sharedDir": "releases/sdnc1.0/flows/shared", + "userDir": "releases/sdnc1.0", + "httpAuth": { + "user": "dguser", + "pass": "cc03e747a6afbbcbf8be7668acfebee5" + }, + "dbHost": "appc-dbhost.{{.Values.nsPrefix}}", + "dbPort": "3306", + "dbName": "sdnctl", + "dbUser": "sdnctl", + "dbPassword": "gamma", + "gitLocalRepository": "", + "httpRoot": "/", + "disableEditor": false, + "httpAdminRoot": "/", + "httpAdminAuth": { + "user": "dguser", + "pass": "cc03e747a6afbbcbf8be7668acfebee5" + }, + "httpNodeRoot": "/", + "httpNodeAuth": { + "user": "dguser", + "pass": "cc03e747a6afbbcbf8be7668acfebee5" + }, + "uiHost": "0.0.0.0", + "version": "0.9.1", + "performGitPull": "N" +} diff --git a/kubernetes/appc/templates/all-services.yaml b/kubernetes/appc/templates/all-services.yaml index 8f7ed19ae1..181cab9590 100644 --- a/kubernetes/appc/templates/all-services.yaml +++ b/kubernetes/appc/templates/all-services.yaml @@ -2,8 +2,8 @@ apiVersion: v1 kind: Service metadata: - name: dbhost - namespace: "{{ .Values.nsPrefix }}-appc" + name: appc-dbhost + namespace: "{{ .Values.nsPrefix }}" labels: app: appc-dbhost spec: @@ -17,8 +17,8 @@ spec: apiVersion: v1 kind: Service metadata: - name: sdnctldb01 - namespace: "{{ .Values.nsPrefix }}-appc" + name: appc-sdnctldb01 + namespace: "{{ .Values.nsPrefix }}" labels: app: appc-dbhost spec: @@ -31,8 +31,8 @@ spec: apiVersion: v1 kind: Service metadata: - name: sdnctldb02 - namespace: "{{ .Values.nsPrefix }}-appc" + name: appc-sdnctldb02 + namespace: "{{ .Values.nsPrefix }}" labels: app: appc-dbhost spec: @@ -47,8 +47,8 @@ spec: apiVersion: v1 kind: Service metadata: - name: sdnhost - namespace: "{{ .Values.nsPrefix }}-appc" + name: appc-sdnhost + namespace: "{{ .Values.nsPrefix }}" labels: app: appc spec: @@ -69,8 +69,8 @@ spec: apiVersion: v1 kind: Service metadata: - name: dgbuilder - namespace: "{{ .Values.nsPrefix }}-appc" + name: appc-dgbuilder + namespace: "{{ .Values.nsPrefix }}" labels: app: appc-dgbuilder spec: @@ -82,4 +82,4 @@ spec: type: NodePort selector: app: appc-dgbuilder -#{{ end }}
\ No newline at end of file +#{{ end }} diff --git a/kubernetes/appc/templates/appc-configmap.yaml b/kubernetes/appc/templates/appc-configmap.yaml new file mode 100644 index 0000000000..8d00842183 --- /dev/null +++ b/kubernetes/appc/templates/appc-configmap.yaml @@ -0,0 +1,73 @@ +#{{ if not .Values.disableAppcAppc }} +apiVersion: v1 +kind: ConfigMap +metadata: + name: appc-openecomp-appc-data-properties-configmap + namespace: {{ .Values.nsPrefix }} +data: +{{ tpl (.Files.Glob "resources/config/appc/opt/openecomp/appc/data/properties/*").AsConfig . | indent 2 }} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: appc-openecomp-appc-svclogic-config-configmap + namespace: {{ .Values.nsPrefix }} +data: +{{ tpl (.Files.Glob "resources/config/appc/opt/openecomp/appc/svclogic/config/svclogic.properties").AsConfig . | indent 2 }} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: appc-openecomp-appc-svclogic-bin-configmap + namespace: {{ .Values.nsPrefix }} +data: +{{ tpl (.Files.Glob "resources/config/appc/opt/openecomp/appc/svclogic/bin/showActiveGraphs.sh").AsConfig . | indent 2 }} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: appc-openecomp-appc-bin-configmap + namespace: {{ .Values.nsPrefix }} +data: +{{ tpl (.Files.Glob "resources/config/appc/opt/openecomp/appc/bin/*").AsConfig . | indent 2 }} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: appc-onap-sdnc-data-properties-configmap + namespace: {{ .Values.nsPrefix }} +data: +{{ tpl (.Files.Glob "resources/config/appc/opt/onap/sdnc/data/properties/*").AsConfig . | indent 2 }} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: appc-onap-sdnc-svclogic-config-configmap + namespace: {{ .Values.nsPrefix }} +data: +{{ tpl (.Files.Glob "resources/config/appc/opt/onap/sdnc/svclogic/config/svclogic.properties").AsConfig . | indent 2 }} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: appc-onap-sdnc-svclogic-bin-configmap + namespace: {{ .Values.nsPrefix }} +data: +{{ tpl (.Files.Glob "resources/config/appc/opt/onap/sdnc/svclogic/bin/showActiveGraphs.sh").AsConfig . | indent 2 }} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: appc-onap-sdnc-bin-configmap + namespace: {{ .Values.nsPrefix }} +data: +{{ tpl (.Files.Glob "resources/config/appc/opt/onap/sdnc/bin/*").AsConfig . | indent 2 }} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: appc-scripts-configmap + namespace: {{ .Values.nsPrefix }} +data: +{{ tpl (.Files.Glob "resources/scripts/*").AsConfig . | indent 2 }} +#{{ end }} diff --git a/kubernetes/appc/templates/appc-deployment.yaml b/kubernetes/appc/templates/appc-deployment.yaml index f4593b0d73..78bef5e22d 100644 --- a/kubernetes/appc/templates/appc-deployment.yaml +++ b/kubernetes/appc/templates/appc-deployment.yaml @@ -3,8 +3,9 @@ apiVersion: extensions/v1beta1 kind: Deployment metadata: name: appc - namespace: "{{ .Values.nsPrefix }}-appc" + namespace: "{{ .Values.nsPrefix }}" spec: + replicas: {{ .Values.appcReplicas }} selector: matchLabels: app: appc @@ -41,6 +42,8 @@ spec: value: /opt/openecomp/appc/data/properties - name: DMAAP_TOPIC_ENV value: SUCCESS + - name: MYSQL_HOST + value: appc-dbhost image: {{ .Values.image.appc }} imagePullPolicy: {{ .Values.pullPolicy }} name: appc-controller-container @@ -48,16 +51,56 @@ spec: - mountPath: /etc/localtime name: localtime readOnly: true + - mountPath: /opt/openecomp/appc/data/properties/dblib.properties + name: appc-openecomp-appc-data-properties + subPath: dblib.properties + - mountPath: /opt/openecomp/appc/data/properties/svclogic.properties + name: appc-openecomp-appc-data-properties + subPath: svclogic.properties - mountPath: /opt/openecomp/appc/data/properties/appc.properties - name: appc-properties + name: appc-openecomp-appc-data-properties + subPath: appc.properties - mountPath: /opt/openecomp/appc/data/properties/aaiclient.properties - name: appc-aaiclient-properties + name: appc-openecomp-appc-data-properties + subPath: aaiclient.properties + - mountPath: /opt/openecomp/appc/svclogic/config/svclogic.properties + name: appc-openecomp-appc-svclogic-config + subPath: svclogic.properties + - mountPath: /opt/openecomp/appc/svclogic/bin/showActiveGraphs.sh + name: appc-openecomp-appc-svclogic-bin + subPath: showActiveGraphs.sh + - mountPath: /opt/openecomp/appc/bin/startODL.sh + name: appc-openecomp-appc-bin + subPath: startODL.sh + - mountPath: /opt/openecomp/appc/bin/installAppcDb.sh + name: appc-openecomp-appc-bin + subPath: installAppcDb.sh + - mountPath: /opt/onap/sdnc/data/properties/dblib.properties + name: appc-onap-sdnc-data-properties + subPath: dblib.properties + - mountPath: /opt/onap/sdnc/data/properties/svclogic.properties + name: appc-onap-sdnc-data-properties + subPath: svclogic.properties - mountPath: /opt/onap/sdnc/data/properties/aaiclient.properties - name: sdnc-aaiclient-properties + name: appc-onap-sdnc-data-properties + subPath: aaiclient.properties + - mountPath: /opt/onap/sdnc/svclogic/config/svclogic.properties + name: appc-onap-sdnc-svclogic-config + subPath: svclogic.properties + - mountPath: /opt/onap/sdnc/svclogic/bin/showActiveGraphs.sh + name: appc-onap-sdnc-svclogic-bin + subPath: showActiveGraphs.sh + - mountPath: /opt/onap/sdnc/bin/startODL.sh + name: appc-onap-sdnc-bin + subPath: startODL.sh + - mountPath: /opt/onap/sdnc/bin/installSdncDb.sh + name: appc-onap-sdnc-bin + subPath: installSdncDb.sh - 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 @@ -72,6 +115,7 @@ spec: 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 @@ -81,24 +125,43 @@ spec: 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-openecomp-appc-data-properties + configMap: + name: appc-openecomp-appc-data-properties-configmap + - name: appc-openecomp-appc-svclogic-config + configMap: + name: appc-openecomp-appc-svclogic-config-configmap + - name: appc-openecomp-appc-svclogic-bin + configMap: + name: appc-openecomp-appc-svclogic-bin-configmap + defaultMode: 0755 + - name: appc-openecomp-appc-bin + configMap: + name: appc-openecomp-appc-bin-configmap + defaultMode: 0755 + - name: appc-onap-sdnc-data-properties + configMap: + name: appc-onap-sdnc-data-properties-configmap + - name: appc-onap-sdnc-svclogic-config + configMap: + name: appc-onap-sdnc-svclogic-config-configmap + - name: appc-onap-sdnc-svclogic-bin + configMap: + name: appc-onap-sdnc-svclogic-bin-configmap + defaultMode: 0755 + - name: appc-onap-sdnc-bin + configMap: + name: appc-onap-sdnc-bin-configmap + defaultMode: 0755 imagePullSecrets: - name: "{{ .Values.nsPrefix }}-docker-registry-key" #{{ end }} diff --git a/kubernetes/appc/templates/appc-dgbuilder-configmap.yaml b/kubernetes/appc/templates/appc-dgbuilder-configmap.yaml new file mode 100644 index 0000000000..f846c199a1 --- /dev/null +++ b/kubernetes/appc/templates/appc-dgbuilder-configmap.yaml @@ -0,0 +1,17 @@ +#{{ if not .Values.disableAppcAppc }} +apiVersion: v1 +kind: ConfigMap +metadata: + name: appc-dgbuilder-conf-configmap + namespace: {{ .Values.nsPrefix }} +data: +{{ tpl (.Files.Glob "resources/config/dgbuilder/*").AsConfig . | indent 2 }} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: appc-dgbuilder-scripts-configmap + namespace: {{ .Values.nsPrefix }} +data: +{{ tpl (.Files.Glob "resources/scripts/dgbuilder/*").AsConfig . | indent 2 }} +#{{ end }} diff --git a/kubernetes/appc/templates/appc-log-configmap.yaml b/kubernetes/appc/templates/appc-log-configmap.yaml new file mode 100644 index 0000000000..9e102e1b88 --- /dev/null +++ b/kubernetes/appc/templates/appc-log-configmap.yaml @@ -0,0 +1,17 @@ +#{{ if not .Values.disableAppcAppc }} +apiVersion: v1 +kind: ConfigMap +metadata: + name: appc-filebeat-configmap + namespace: {{ .Values.nsPrefix }} +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 }} +data: +{{ tpl (.Files.Glob "resources/config/log/*").AsConfig . | indent 2 }} +#{{ end }} diff --git a/kubernetes/appc/templates/appc-pv-pvc.yaml b/kubernetes/appc/templates/appc-pv-pvc.yaml index 1702ba8ecb..ff0f89af49 100644 --- a/kubernetes/appc/templates/appc-pv-pvc.yaml +++ b/kubernetes/appc/templates/appc-pv-pvc.yaml @@ -2,10 +2,10 @@ apiVersion: v1 kind: PersistentVolume metadata: - name: "{{ .Values.nsPrefix }}-appc-db" - namespace: "{{ .Values.nsPrefix }}-appc" + name: "{{ .Values.nsPrefix }}-appc" + namespace: "{{ .Values.nsPrefix }}" labels: - name: "{{ .Values.nsPrefix }}-appc-db" + name: "{{ .Values.nsPrefix }}-appc" spec: capacity: storage: 2Gi @@ -13,13 +13,13 @@ spec: - ReadWriteMany persistentVolumeReclaimPolicy: Retain hostPath: - path: /dockerdata-nfs/{{ .Values.nsPrefix }}/appc/data + path: {{ .Values.dataRootDir }}/{{ .Values.nsPrefix }}/appc/data --- kind: PersistentVolumeClaim apiVersion: v1 metadata: name: appc-db - namespace: "{{ .Values.nsPrefix }}-appc" + namespace: "{{ .Values.nsPrefix }}" spec: accessModes: - ReadWriteMany @@ -28,5 +28,5 @@ spec: storage: 2Gi selector: matchLabels: - name: "{{ .Values.nsPrefix }}-appc-db" -#{{ end }}
\ No newline at end of file + name: "{{ .Values.nsPrefix }}-appc" +#{{ end }} diff --git a/kubernetes/appc/templates/db-deployment.yaml b/kubernetes/appc/templates/db-deployment.yaml index 607a0df81f..41d9d5b520 100644 --- a/kubernetes/appc/templates/db-deployment.yaml +++ b/kubernetes/appc/templates/db-deployment.yaml @@ -3,8 +3,9 @@ apiVersion: extensions/v1beta1 kind: Deployment metadata: name: appc-dbhost - namespace: "{{ .Values.nsPrefix }}-appc" + namespace: "{{ .Values.nsPrefix }}" spec: + replicas: {{ .Values.dbReplicas }} selector: matchLabels: app: appc-dbhost @@ -45,4 +46,4 @@ spec: claimName: appc-db imagePullSecrets: - name: "{{ .Values.nsPrefix }}-docker-registry-key" -#{{ end }}
\ No newline at end of file +#{{ end }} diff --git a/kubernetes/appc/templates/dgbuilder-deployment.yaml b/kubernetes/appc/templates/dgbuilder-deployment.yaml index ed69c05f38..fe9a198aef 100644 --- a/kubernetes/appc/templates/dgbuilder-deployment.yaml +++ b/kubernetes/appc/templates/dgbuilder-deployment.yaml @@ -3,8 +3,9 @@ apiVersion: extensions/v1beta1 kind: Deployment metadata: name: appc-dgbuilder - namespace: "{{ .Values.nsPrefix }}-appc" + namespace: "{{ .Values.nsPrefix }}" spec: + replicas: {{ .Values.dgbuilderReplicas }} selector: matchLabels: app: appc-dgbuilder @@ -55,10 +56,29 @@ spec: - name: localtime mountPath: /etc/localtime readOnly: true + - name: dgbuilder-conf + mountPath: /opt/onap/sdnc/dgbuilder/releases/sdnc1.0/conf/svclogic.properties + subPath: svclogic.properties + - name: dgbuilder-conf + mountPath: /opt/onap/sdnc/dgbuilder/svclogic/svclogic.properties + subPath: svclogic.properties + - name: dgbuilder-scripts + mountPath: /opt/onap/sdnc/dgbuilder/createReleaseDir.sh + subPath: createReleaseDir.sh + - name: dgbuilder-scripts + mountPath: /opt/onap/sdnc/dgbuilder/releases/sdnc1.0/customSettings.js + subPath: customSettings.js volumes: - name: localtime hostPath: path: /etc/localtime + - name: dgbuilder-conf + configMap: + name: appc-dgbuilder-conf-configmap + - name: dgbuilder-scripts + configMap: + name: appc-dgbuilder-scripts-configmap + defaultMode: 0755 restartPolicy: Always imagePullSecrets: - name: "{{ .Values.nsPrefix }}-docker-registry-key" diff --git a/kubernetes/appc/values.yaml b/kubernetes/appc/values.yaml index 882267c41d..1a0cc51b71 100644 --- a/kubernetes/appc/values.yaml +++ b/kubernetes/appc/values.yaml @@ -1,9 +1,13 @@ nsPrefix: onap pullPolicy: Always nodePortPrefix: 302 +appcReplicas: 1 +dbReplicas: 1 +dgbuilderReplicas: 1 +dataRootDir: /dockerdata-nfs image: - readiness: oomk8s/readiness-check:1.0.0 + readiness: oomk8s/readiness-check:1.1.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 diff --git a/kubernetes/config/docker/init/src/config/clamp/mariadb/conf.d/conf1/my.cnf b/kubernetes/clamp/resources/config/mariadb/conf.d/conf1/my.cnf index 0be1bd7aa3..0be1bd7aa3 100644 --- a/kubernetes/config/docker/init/src/config/clamp/mariadb/conf.d/conf1/my.cnf +++ b/kubernetes/clamp/resources/config/mariadb/conf.d/conf1/my.cnf diff --git a/kubernetes/config/docker/init/src/config/clamp/mariadb/docker-entrypoint-initdb.d/bulkload/clds-create-db-objects.sql b/kubernetes/clamp/resources/config/mariadb/docker-entrypoint-initdb.d/bulkload/clds-create-db-objects.sql index 3312daf56f..3312daf56f 100644 --- a/kubernetes/config/docker/init/src/config/clamp/mariadb/docker-entrypoint-initdb.d/bulkload/clds-create-db-objects.sql +++ b/kubernetes/clamp/resources/config/mariadb/docker-entrypoint-initdb.d/bulkload/clds-create-db-objects.sql diff --git a/kubernetes/config/docker/init/src/config/clamp/mariadb/docker-entrypoint-initdb.d/bulkload/clds-stored-procedures.sql b/kubernetes/clamp/resources/config/mariadb/docker-entrypoint-initdb.d/bulkload/clds-stored-procedures.sql index 112cb2b55e..112cb2b55e 100644 --- a/kubernetes/config/docker/init/src/config/clamp/mariadb/docker-entrypoint-initdb.d/bulkload/clds-stored-procedures.sql +++ b/kubernetes/clamp/resources/config/mariadb/docker-entrypoint-initdb.d/bulkload/clds-stored-procedures.sql diff --git a/kubernetes/config/docker/init/src/config/clamp/mariadb/docker-entrypoint-initdb.d/drop/clds-drop-db-objects.sql b/kubernetes/clamp/resources/config/mariadb/docker-entrypoint-initdb.d/drop/clds-drop-db-objects.sql index 478eaf0e09..478eaf0e09 100644 --- a/kubernetes/config/docker/init/src/config/clamp/mariadb/docker-entrypoint-initdb.d/drop/clds-drop-db-objects.sql +++ b/kubernetes/clamp/resources/config/mariadb/docker-entrypoint-initdb.d/drop/clds-drop-db-objects.sql diff --git a/kubernetes/config/docker/init/src/config/clamp/mariadb/docker-entrypoint-initdb.d/load-sql-files-tests-automation.sh b/kubernetes/clamp/resources/config/mariadb/docker-entrypoint-initdb.d/load-sql-files-tests-automation.sh index 4924922c91..4924922c91 100644 --- a/kubernetes/config/docker/init/src/config/clamp/mariadb/docker-entrypoint-initdb.d/load-sql-files-tests-automation.sh +++ b/kubernetes/clamp/resources/config/mariadb/docker-entrypoint-initdb.d/load-sql-files-tests-automation.sh diff --git a/kubernetes/clamp/templates/all-services.yaml b/kubernetes/clamp/templates/all-services.yaml index 163ed58aa9..c9f4f5ed5f 100644 --- a/kubernetes/clamp/templates/all-services.yaml +++ b/kubernetes/clamp/templates/all-services.yaml @@ -3,7 +3,7 @@ apiVersion: v1 kind: Service metadata: name: clamp-mariadb - namespace: "{{ .Values.nsPrefix }}-clamp" + namespace: "{{ .Values.nsPrefix }}" labels: app: clamp-mariadb spec: @@ -20,7 +20,18 @@ apiVersion: v1 kind: Service metadata: name: clamp - namespace: "{{ .Values.nsPrefix }}-clamp" + namespace: "{{ .Values.nsPrefix }}" + annotations: + msb.onap.org/service-info: '[ + { + "serviceName": "clamp", + "version": "v1", + "url": "/restservices/clds/v1", + "protocol": "REST", + "port": "8080", + "visualRange":"1" + } + ]' spec: ports: - name: clamp diff --git a/kubernetes/clamp/templates/clamp-deployment.yaml b/kubernetes/clamp/templates/clamp-deployment.yaml index de9adaca81..2c2e13f994 100644 --- a/kubernetes/clamp/templates/clamp-deployment.yaml +++ b/kubernetes/clamp/templates/clamp-deployment.yaml @@ -5,8 +5,9 @@ metadata: labels: app: clamp name: clamp - namespace: "{{ .Values.nsPrefix }}-clamp" + namespace: "{{ .Values.nsPrefix }}" spec: + replicas: {{ .Values.clampReplicas }} selector: matchLabels: app: clamp @@ -35,8 +36,8 @@ spec: - env: - name: SPRING_APPLICATION_JSON value: '{ - "spring.datasource.camunda.url": "jdbc:mariadb:sequential://clamp-mariadb.{{ .Values.nsPrefix }}-clamp:3306/camundabpm?verifyServerCertificate=false&useSSL=false&requireSSL=false&autoReconnect=true&retriesAllDown=2147483647&failoverLoopRetries=2147483647", - "spring.datasource.cldsdb.url": "jdbc:mariadb:sequential://clamp-mariadb.{{ .Values.nsPrefix }}-clamp:3306/cldsdb4?verifyServerCertificate=false&useSSL=false&requireSSL=false&autoReconnect=true&retriesAllDown=2147483647&failoverLoopRetries=2147483647" + "spring.datasource.camunda.url": "jdbc:mariadb:sequential://clamp-mariadb.{{ .Values.nsPrefix }}:3306/camundabpm?verifyServerCertificate=false&useSSL=false&requireSSL=false&autoReconnect=true&retriesAllDown=2147483647&failoverLoopRetries=2147483647", + "spring.datasource.cldsdb.url": "jdbc:mariadb:sequential://clamp-mariadb.{{ .Values.nsPrefix }}:3306/cldsdb4?verifyServerCertificate=false&useSSL=false&requireSSL=false&autoReconnect=true&retriesAllDown=2147483647&failoverLoopRetries=2147483647" }' image: {{ .Values.image.clampImage }}:{{ .Values.image.clampVersion }} imagePullPolicy: {{ .Values.pullPolicy }} diff --git a/kubernetes/clamp/templates/clamp-mariadb-configmap.yaml b/kubernetes/clamp/templates/clamp-mariadb-configmap.yaml new file mode 100644 index 0000000000..9a5fd8f284 --- /dev/null +++ b/kubernetes/clamp/templates/clamp-mariadb-configmap.yaml @@ -0,0 +1,33 @@ +#{{ if not .Values.disableClampClampMariadb }} +apiVersion: v1 +kind: ConfigMap +metadata: + name: clamp-entrypoint-initdb-configmap + namespace: {{ .Values.nsPrefix }} +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 }} +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 }} +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 }} +data: +{{ tpl (.Files.Glob "resources/config/mariadb/conf.d/conf1/*").AsConfig . | indent 2 }} +#{{ end }} diff --git a/kubernetes/clamp/templates/clamp-mariadb-deployment.yaml b/kubernetes/clamp/templates/clamp-mariadb-deployment.yaml index 46a6433b7e..a12489ef63 100644 --- a/kubernetes/clamp/templates/clamp-mariadb-deployment.yaml +++ b/kubernetes/clamp/templates/clamp-mariadb-deployment.yaml @@ -3,9 +3,9 @@ apiVersion: extensions/v1beta1 kind: Deployment metadata: name: clamp-mariadb - namespace: "{{ .Values.nsPrefix }}-clamp" + namespace: "{{ .Values.nsPrefix }}" spec: - replicas: 1 + replicas: {{ .Values.clampMariaDbReplicas }} selector: matchLabels: app: clamp-mariadb @@ -25,9 +25,14 @@ spec: - 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 @@ -38,14 +43,20 @@ spec: 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 }} diff --git a/kubernetes/clamp/templates/clamp-pv-pvc.yaml b/kubernetes/clamp/templates/clamp-pv-pvc.yaml index 0d36141b6c..c542de6026 100644 --- a/kubernetes/clamp/templates/clamp-pv-pvc.yaml +++ b/kubernetes/clamp/templates/clamp-pv-pvc.yaml @@ -2,10 +2,10 @@ apiVersion: v1 kind: PersistentVolume metadata: - name: "{{ .Values.nsPrefix }}-clamp-db" - namespace: "{{ .Values.nsPrefix }}-clamp" + name: "{{ .Values.nsPrefix }}-clamp" + namespace: "{{ .Values.nsPrefix }}" labels: - name: "{{ .Values.nsPrefix }}-clamp-db" + name: "{{ .Values.nsPrefix }}-clamp" spec: capacity: storage: 2Gi @@ -13,13 +13,13 @@ spec: - ReadWriteMany persistentVolumeReclaimPolicy: Retain hostPath: - path: /dockerdata-nfs/{{ .Values.nsPrefix }}/clamp/mariadb/data + path: {{ .Values.dataRootDir }}/{{ .Values.nsPrefix }}/clamp/mariadb/data --- kind: PersistentVolumeClaim apiVersion: v1 metadata: name: clamp-db - namespace: "{{ .Values.nsPrefix }}-clamp" + namespace: "{{ .Values.nsPrefix }}" spec: accessModes: - ReadWriteMany @@ -28,5 +28,5 @@ spec: storage: 2Gi selector: matchLabels: - name: "{{ .Values.nsPrefix }}-clamp-db" -#{{ end }}
\ No newline at end of file + name: "{{ .Values.nsPrefix }}-clamp" +#{{ end }} diff --git a/kubernetes/clamp/values.yaml b/kubernetes/clamp/values.yaml index c522be071e..103472afd9 100644 --- a/kubernetes/clamp/values.yaml +++ b/kubernetes/clamp/values.yaml @@ -2,8 +2,11 @@ nsPrefix: onap pullPolicy: Always nodePortPrefix: 302 mysqlPassword: strong_pitchou +dataRootDir: /dockerdata-nfs +clampReplicas: 1 +clampMariaDbReplicas: 1 image: - readiness: oomk8s/readiness-check:1.0.0 + readiness: oomk8s/readiness-check:1.1.0 clampImage: nexus3.onap.org:10001/onap/clamp clampVersion: v1.1.0 mariadbImage: nexus3.onap.org:10001/mariadb diff --git a/kubernetes/cli/templates/all-service.yaml b/kubernetes/cli/templates/all-service.yaml index e848bfdc38..e928c67e6e 100644 --- a/kubernetes/cli/templates/all-service.yaml +++ b/kubernetes/cli/templates/all-service.yaml @@ -3,16 +3,20 @@ apiVersion: v1 kind: Service metadata: name: cli - namespace: "{{ .Values.nsPrefix }}-cli" + namespace: "{{ .Values.nsPrefix }}" labels: 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 }} diff --git a/kubernetes/cli/templates/cli-deployment.yaml b/kubernetes/cli/templates/cli-deployment.yaml index 3a702b9016..d4812fb783 100644 --- a/kubernetes/cli/templates/cli-deployment.yaml +++ b/kubernetes/cli/templates/cli-deployment.yaml @@ -5,7 +5,7 @@ metadata: labels: app: cli name: cli - namespace: "{{ .Values.nsPrefix }}-cli" + namespace: "{{ .Values.nsPrefix }}" spec: selector: matchLabels: @@ -25,6 +25,7 @@ spec: value: daemon ports: - containerPort: 80 + - containerPort: 8080 name: cli readinessProbe: tcpSocket: @@ -33,4 +34,4 @@ spec: periodSeconds: 10 imagePullSecrets: - name: "{{ .Values.nsPrefix }}-docker-registry-key" -#{{ end }}
\ No newline at end of file +#{{ end }} diff --git a/kubernetes/common/.helmignore b/kubernetes/common/.helmignore new file mode 100644 index 0000000000..f0c1319444 --- /dev/null +++ b/kubernetes/common/.helmignore @@ -0,0 +1,21 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*~ +# Various IDEs +.project +.idea/ +*.tmproj diff --git a/kubernetes/common/Chart.yaml b/kubernetes/common/Chart.yaml new file mode 100644 index 0000000000..aed57348e0 --- /dev/null +++ b/kubernetes/common/Chart.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +description: Common templates for inclusion in other charts +name: common +version: 2.0.0 diff --git a/kubernetes/common/templates/_name.tpl b/kubernetes/common/templates/_name.tpl new file mode 100644 index 0000000000..f6c221f15d --- /dev/null +++ b/kubernetes/common/templates/_name.tpl @@ -0,0 +1,15 @@ +{{/* + Expand the name of a chart. +*/}} +{{- define "common.name" -}} + {{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{/* + Create a default fully qualified application name. + Truncated at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). +*/}} +{{- define "common.fullname" -}} + {{- $name := default .Chart.Name .Values.nameOverride -}} + {{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}} +{{- end -}}
\ No newline at end of file diff --git a/kubernetes/common/templates/_namespace.tpl b/kubernetes/common/templates/_namespace.tpl new file mode 100644 index 0000000000..3da9fee7c1 --- /dev/null +++ b/kubernetes/common/templates/_namespace.tpl @@ -0,0 +1,10 @@ +{{/* + Resolve the namespace to apply to a chart. The default namespace suffix + is the name of the chart. This can be overridden if necessary (eg. for subcharts) + using the following value: + + - .Values.nsPrefix : override namespace prefix +*/}} +{{- define "common.namespace" -}} + {{- default .Release.Namespace .Values.nsPrefix -}} +{{- end -}} diff --git a/kubernetes/common/values.yaml b/kubernetes/common/values.yaml new file mode 100644 index 0000000000..112875753d --- /dev/null +++ b/kubernetes/common/values.yaml @@ -0,0 +1,31 @@ +################################################################# +# Global configuration default values that can be inherited by +# all subcharts. +################################################################# +global: + # Change to an unused port prefix range to prevent port conflicts + # with other instances running within the same k8s cluster + nodePortPrefix: 302 + + # image repositories + repository: nexus3.onap.org:10001 + repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ== + + # readiness check + readinessRepository: oomk8s + readinessImage: readiness-check:1.0.0 + + # logging agent + loggingRepository: docker.elastic.co + loggingImage: beats/filebeat:5.5.0 + + # image pull policy + pullPolicy: Always + + # default mount path root directory referenced + # by persistent volumes and log files + persistence: + mountPath: /dockerdata-nfs + + # flag to enable debugging - application support required + debugEnabled: true
\ No newline at end of file diff --git a/kubernetes/config/docker/init/config-init.sh b/kubernetes/config/docker/init/config-init.sh index 65acb46c2b..0e5fae082a 100755 --- a/kubernetes/config/docker/init/config-init.sh +++ b/kubernetes/config/docker/init/config-init.sh @@ -79,7 +79,6 @@ chmod -R 777 /config-init/$NAMESPACE/aai/sparky-be/logs/ 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 @@ -94,8 +93,8 @@ echo "Substituting configuration parameters" # replace the default 'onap' namespace qualification of K8s hostnames within the config files SED_NS_PATHS="/config-init/$NAMESPACE/" SED_NS_STRINGS=( - "s/\.onap-/\.${NAMESPACE}-/g" - "s/kubectl -n onap/kubectl -n ${NAMESPACE}/g" + "s/\.namespace-placeholder/\.${NAMESPACE}/g" + "s/kubectl -n namespace-placeholder/kubectl -n ${NAMESPACE}/g" ) SED_NS_STRING=$(concat_array "${SED_NS_STRINGS[@]}") find $SED_NS_PATHS -type f -exec sed -i -e "${SED_NS_STRING}" {} \; diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-auth/CHANGELOG.md b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-auth/CHANGELOG.md deleted file mode 100644 index c58a2742e8..0000000000 --- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-auth/CHANGELOG.md +++ /dev/null @@ -1,13 +0,0 @@ -ajsc-aai-auth CHANGELOG -======================= - -This file is used to list changes made in each version of the aai-resources-auth cookbook. - -0.1.0 ------ -- [your_name] - Initial release of aai-resources-auth - -- - - -Check the [Markdown Syntax Guide](http://daringfireball.net/projects/markdown/syntax) for help with Markdown. - -The [Github Flavored Markdown page](http://github.github.com/github-flavored-markdown/) describes the differences between markdown on github and standard markdown. diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-auth/README.md b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-auth/README.md deleted file mode 100644 index b5157ab7bd..0000000000 --- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-auth/README.md +++ /dev/null @@ -1,68 +0,0 @@ -aai-resources-auth Cookbook -====================== -TODO: Enter the cookbook description here. - -e.g. -This cookbook makes your favorite breakfast sandwich. - -Requirements ------------- -TODO: List your cookbook requirements. Be sure to include any requirements this cookbook has on platforms, libraries, other cookbooks, packages, operating systems, etc. - -e.g. -#### packages -- `toaster` - ajsc-aai-auth needs toaster to brown your bagel. - -Attributes ----------- -TODO: List your cookbook attributes here. - -e.g. -#### ajsc-aai-auth::default -<table> - <tr> - <th>Key</th> - <th>Type</th> - <th>Description</th> - <th>Default</th> - </tr> - <tr> - <td><tt>['ajsc-aai-auth']['bacon']</tt></td> - <td>Boolean</td> - <td>whether to include bacon</td> - <td><tt>true</tt></td> - </tr> -</table> - -Usage ------ -#### aai-resources-auth::default -TODO: Write usage instructions for each cookbook. - -e.g. -Just include `aai-resources-auth` in your node's `run_list`: - -```json -{ - "name":"my_node", - "run_list": [ - "recipe[ajsc-aai-auth]" - ] -} -``` - -Contributing ------------- -TODO: (optional) If this is a public cookbook, detail the process for contributing. If this is a private cookbook, remove this section. - -e.g. -1. Fork the repository on Github -2. Create a named feature branch (like `add_component_x`) -3. Write your change -4. Write tests for your change (if applicable) -5. Run the tests, ensuring they all pass -6. Submit a Pull Request using Github - -License and Authors -------------------- -Authors: TODO: List authors diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-auth/files/default/aai_keystore-dev b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-auth/files/default/aai_keystore-dev Binary files differdeleted file mode 100644 index 3eef13557c..0000000000 --- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-auth/files/default/aai_keystore-dev +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-auth/metadata.rb b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-auth/metadata.rb deleted file mode 100644 index 6b940b8e40..0000000000 --- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-auth/metadata.rb +++ /dev/null @@ -1,7 +0,0 @@ -name 'aai-resources-auth' -maintainer 'ATT' -maintainer_email '' -license 'All rights reserved' -description 'Installs/Configures aai-resources-auth' -long_description IO.read(File.join(File.dirname(__FILE__), 'README.md')) -version '1.0.0' diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-auth/recipes/aai-resources-aai-keystore.rb b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-auth/recipes/aai-resources-aai-keystore.rb deleted file mode 100644 index 3c55162a34..0000000000 --- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-auth/recipes/aai-resources-aai-keystore.rb +++ /dev/null @@ -1,8 +0,0 @@ -cookbook_file "#{node['aai-resources-config']['PROJECT_HOME']}/bundleconfig/etc/auth/aai_keystore" do - source "aai_keystore-#{node['aai-resources-config']['AAIENV']}" - owner 'aaiadmin' - group 'aaiadmin' - mode '0755' - action :create -end - diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/CHANGELOG.md b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/CHANGELOG.md deleted file mode 100644 index 8752651421..0000000000 --- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/CHANGELOG.md +++ /dev/null @@ -1,13 +0,0 @@ -aai-resources-config CHANGELOG -========================= - -This file is used to list changes made in each version of the ajsc-aai-config cookbook. - -0.1.0 ------ -- [your_name] - Initial release of ajsc-aai-config - -- - - -Check the [Markdown Syntax Guide](http://daringfireball.net/projects/markdown/syntax) for help with Markdown. - -The [Github Flavored Markdown page](http://github.github.com/github-flavored-markdown/) describes the differences between markdown on github and standard markdown. diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/README.md b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/README.md deleted file mode 100644 index b71fb908f8..0000000000 --- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/README.md +++ /dev/null @@ -1,68 +0,0 @@ -aai-resources-config Cookbook -======================== -TODO: Enter the cookbook description here. - -e.g. -This cookbook makes your favorite breakfast sandwich. - -Requirements ------------- -TODO: List your cookbook requirements. Be sure to include any requirements this cookbook has on platforms, libraries, other cookbooks, packages, operating systems, etc. - -e.g. -#### packages -- `toaster` - aai-resources-config needs toaster to brown your bagel. - -Attributes ----------- -TODO: List your cookbook attributes here. - -e.g. -#### ajsc-aai-config::default -<table> - <tr> - <th>Key</th> - <th>Type</th> - <th>Description</th> - <th>Default</th> - </tr> - <tr> - <td><tt>['ajsc-aai-config']['bacon']</tt></td> - <td>Boolean</td> - <td>whether to include bacon</td> - <td><tt>true</tt></td> - </tr> -</table> - -Usage ------ -#### ajsc-aai-config::default -TODO: Write usage instructions for each cookbook. - -e.g. -Just include `ajsc-aai-config` in your node's `run_list`: - -```json -{ - "name":"my_node", - "run_list": [ - "recipe[ajsc-aai-config]" - ] -} -``` - -Contributing ------------- -TODO: (optional) If this is a public cookbook, detail the process for contributing. If this is a private cookbook, remove this section. - -e.g. -1. Fork the repository on Github -2. Create a named feature branch (like `add_component_x`) -3. Write your change -4. Write tests for your change (if applicable) -5. Run the tests, ensuring they all pass -6. Submit a Pull Request using Github - -License and Authors -------------------- -Authors: TODO: List authors diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/attributes/aai-resources-config.rb b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/attributes/aai-resources-config.rb deleted file mode 100644 index 9d000ae967..0000000000 --- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/attributes/aai-resources-config.rb +++ /dev/null @@ -1,15 +0,0 @@ -node.default["aai-resources-config"]["AAIENV"] = 'devINT1' -node.default["aai-resources-config"]["PROJECT_HOME"] = '/opt/app/aai-resources' -node.default["aai-resources-config"]["LOGROOT"] = '/opt/aai/logroot' -node.default["aai-resources-config"]["JAVA_HOME"] = '/usr/lib/jvm/java-8-openjdk-amd64' -node.default["aai-resources-config"]["AAI_SERVER_URL_BASE"] = 'https://localhost:8443/aai/' -node.default["aai-resources-config"]["AAI_SERVER_URL"] = 'https://localhost:8443/aai/v11/' -node.default["aai-resources-config"]["AAI_GLOBAL_CALLBACK_URL"] = 'https://localhost:8443/aai/' -node.default["aai-resources-config"]["AAI_TRUSTSTORE_FILENAME"] = 'aai_keystore' -node.default["aai-resources-config"]["AAI_TRUSTSTORE_PASSWD_X"] = 'OBF:1vn21ugu1saj1v9i1v941sar1ugw1vo0' -node.default["aai-resources-config"]["AAI_KEYSTORE_FILENAME"] = 'aai_keystore' -node.default["aai-resources-config"]["AAI_KEYSTORE_PASSWD_X"] = 'OBF:1vn21ugu1saj1v9i1v941sar1ugw1vo0' -node.default["aai-resources-config"]["TXN_HBASE_TABLE_NAME"] = 'aailogging.dev' -node.default["aai-resources-config"]["TXN_ZOOKEEPER_QUORUM"] = 'localhost' -node.default["aai-resources-config"]["TXN_ZOOKEEPER_PROPERTY_CLIENTPORT"] = '2181' -node.default["aai-resources-config"]["TXN_HBASE_ZOOKEEPER_ZNODE_PARENT"] = '/hbase' diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/attributes/aaiEventDMaaPPublisher.rb b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/attributes/aaiEventDMaaPPublisher.rb deleted file mode 100644 index 91bc7bb682..0000000000 --- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/attributes/aaiEventDMaaPPublisher.rb +++ /dev/null @@ -1,3 +0,0 @@ -node.default["aai-resources-config"]["AAI_DMAAP_PROTOCOL"] = 'http' -node.default["aai-resources-config"]["AAI_DMAAP_HOST_PORT"] = 'localhost:3904' -node.default["aai-resources-config"]["AAI_DMAAP_TOPIC_NAME"] = 'AAI-EVENT' diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/attributes/preferredRoute.rb b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/attributes/preferredRoute.rb deleted file mode 100644 index 21eb295148..0000000000 --- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/attributes/preferredRoute.rb +++ /dev/null @@ -1 +0,0 @@ -node.default["aai-resources-config"]["AAI_WORKLOAD_PREFERRED_ROUTE_KEY"] = 'MR1'
\ No newline at end of file diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/attributes/titan-cached.rb b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/attributes/titan-cached.rb deleted file mode 100644 index 103583b645..0000000000 --- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/attributes/titan-cached.rb +++ /dev/null @@ -1,6 +0,0 @@ -node.default["aai-resources-config"]["STORAGE_HOSTNAME"] = 'localhost' -node.default["aai-resources-config"]["STORAGE_HBASE_TABLE"] = 'aaigraph.dev' -node.default["aai-resources-config"]["STORAGE_HBASE_ZOOKEEPER_ZNODE_PARENT"] = '/hbase' -node.default["aai-resources-config"]["DB_CACHE_CLEAN_WAIT"] = 20 -node.default["aai-resources-config"]["DB_CACHE_TIME"] = 180000 -node.default["aai-resources-config"]["DB_CACHE_SIZE"] = 0.3
\ No newline at end of file diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/attributes/titan-realtime.rb b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/attributes/titan-realtime.rb deleted file mode 100644 index c289a63ac0..0000000000 --- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/attributes/titan-realtime.rb +++ /dev/null @@ -1,3 +0,0 @@ -node.default["aai-resources-config"]["STORAGE_HOSTNAME"] = 'localhost' -node.default["aai-resources-config"]["STORAGE_HBASE_TABLE"] = 'aaigraph.dev' -node.default["aai-resources-config"]["STORAGE_HBASE_ZOOKEEPER_ZNODE_PARENT"] = '/hbase'
\ No newline at end of file diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/metadata.rb b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/metadata.rb deleted file mode 100644 index d32f4cff33..0000000000 --- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/metadata.rb +++ /dev/null @@ -1,7 +0,0 @@ -name 'aai-resources-config' -maintainer 'ATT' -maintainer_email '' -license 'All rights reserved' -description 'Installs/Configures aai-resources-config' -long_description IO.read(File.join(File.dirname(__FILE__), 'README.md')) -version '1.0.0' diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/recipes/aai-preferredRoute.rb b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/recipes/aai-preferredRoute.rb deleted file mode 100644 index b018237bab..0000000000 --- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/recipes/aai-preferredRoute.rb +++ /dev/null @@ -1,11 +0,0 @@ -['preferredRoute.txt'].each do |file| - template "#{node['aai-resources-config']['PROJECT_HOME']}/bundleconfig/etc/appprops/#{file}" do - source "aai-resources-config/preferredRoute.txt" - owner "aaiadmin" - group "aaiadmin" - mode "0644" - variables( -:AAI_WORKLOAD_PREFERRED_ROUTE_KEY => node["aai-resources-config"]["AAI_WORKLOAD_PREFERRED_ROUTE_KEY"] - ) - end -end
\ No newline at end of file diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/recipes/aai-resources-config.rb b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/recipes/aai-resources-config.rb deleted file mode 100644 index 13f34c25c2..0000000000 --- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/recipes/aai-resources-config.rb +++ /dev/null @@ -1,78 +0,0 @@ -################ -# Update aaiResourcesConfig.properties -################ -include_recipe 'aai-resources-config::createConfigDirectories' - -['aaiconfig.properties'].each do |file| - template "#{node['aai-resources-config']['PROJECT_HOME']}/bundleconfig/etc/appprops/#{file}" do - source "aai-resources-config/aaiconfig.properties" - owner "aaiadmin" - group "aaiadmin" - mode "0644" - variables( -:AAI_SERVER_URL_BASE => node["aai-resources-config"]["AAI_SERVER_URL_BASE"], -:AAI_SERVER_URL => node["aai-resources-config"]["AAI_SERVER_URL"], -:AAI_GLOBAL_CALLBACK_URL => node["aai-resources-config"]["AAI_GLOBAL_CALLBACK_URL"], -:AAI_TRUSTSTORE_FILENAME => node["aai-resources-config"]["AAI_TRUSTSTORE_FILENAME"], -:AAI_TRUSTSTORE_PASSWD_X => node["aai-resources-config"]["AAI_TRUSTSTORE_PASSWD_X"], -:AAI_KEYSTORE_FILENAME => node["aai-resources-config"]["AAI_KEYSTORE_FILENAME"], -:AAI_KEYSTORE_PASSWD_X => node["aai-resources-config"]["AAI_KEYSTORE_PASSWD_X"], -:APPLICATION_SERVERS => node["aai-resources-config"]["APPLICATION_SERVERS"], -:TXN_HBASE_TABLE_NAME => node["aai-resources-config"]["TXN_HBASE_TABLE_NAME"], -:TXN_ZOOKEEPER_QUORUM => node["aai-resources-config"]["TXN_ZOOKEEPER_QUORUM"], -:TXN_ZOOKEEPER_PROPERTY_CLIENTPORT => node["aai-resources-config"]["TXN_ZOOKEEPER_PROPERTY_CLIENTPORT"], -:TXN_HBASE_ZOOKEEPER_ZNODE_PARENT => node["aai-resources-config"]["TXN_HBASE_ZOOKEEPER_ZNODE_PARENT"], -:RESOURCE_VERSION_ENABLE_FLAG => node["aai-resources-config"]["RESOURCE_VERSION_ENABLE_FLAG"], - :AAI_NOTIFICATION_CURRENT_PACKAGE => node["aai-resources-config"]["AAI_NOTIFICATION_CURRENT_PACKAGE"], - :AAI_NOTIFICATION_CURRENT_VERSION => node["aai-resources-config"]["AAI_NOTIFICATION_CURRENT_VERSION"], - :AAI_NOTIFICATION_EVENT_DEFAULT_EVENT_STATUS => node["aai-resources-config"]["AAI_NOTIFICATION_EVENT_DEFAULT_EVENT_STATUS"], - :AAI_NOTIFICATION_EVENT_DEFAULT_EVENT_TYPE => node["aai-resources-config"]["AAI_NOTIFICATION_EVENT_DEFAULT_EVENT_TYPE"], - :AAI_NOTIFICATION_EVENT_DEFAULT_DOMAIN => node["aai-resources-config"]["AAI_NOTIFICATION_EVENT_DEFAULT_DOMAIN"], - :AAI_NOTIFICATION_EVENT_DEFAULT_SOURCE_NAME => node["aai-resources-config"]["AAI_NOTIFICATION_EVENT_DEFAULT_SOURCE_NAME"], - :AAI_NOTIFICATION_EVENT_DEFAULT_SEQUENCE_NUMBER => node["aai-resources-config"]["AAI_NOTIFICATION_EVENT_DEFAULT_SEQUENCE_NUMBER"], - :AAI_NOTIFICATION_EVENT_DEFAULT_SEVERITY => node["aai-resources-config"]["AAI_NOTIFICATION_EVENT_DEFAULT_SEVERITY"], - :AAI_NOTIFICATION_EVENT_DEFAULT_VERSION => node["aai-resources-config"]["AAI_NOTIFICATION_EVENT_DEFAULT_VERSION"], -:AAI_DEFAULT_API_VERSION => node["aai-resources-config"]["AAI_DEFAULT_API_VERSION"] - ) - end -end - -#remote_directory "/opt/mso/etc/ecomp/mso/config/" do -# source "mso-asdc-controller-config" -# #cookbook "default is current" -# files_mode "0700" -# files_owner "jboss" -# files_group "jboss" -# mode "0755" -# owner "jboss" -# group "jboss" -# overwrite true -# recursive true -# action :create -#end - - -################ -# Alternative example1 -# This updates all the timestamps -# Seting preserve never changes the timestamp when the file is changed -###### -# ruby_block "copy_recurse" do -# block do -# FileUtils.cp_r("#{Chef::Config[:file_cache_path]}/cookbooks/mso-config/files/default/mso-api-handler-config/.",\ -# "/opt/mso/etc/ecomp/mso/config/", :preserve => true) -# end -# action :run -# end - -################ -# Alternative example2 -###### -# Dir.glob("#{Chef::Config[:file_cache_path]}/cookbooks/mso-config/files/default/mso-api-handler-config/*").sort.each do |entry| -# cookbook_file "/opt/mso/etc/ecomp/mso/config/#{entry}" do -# source entry -# owner "root" -# group "root" -# mode 0755 -# end -# end diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/recipes/aaiEventDMaaPPublisher.rb b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/recipes/aaiEventDMaaPPublisher.rb deleted file mode 100644 index 1e626db3ab..0000000000 --- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/recipes/aaiEventDMaaPPublisher.rb +++ /dev/null @@ -1,14 +0,0 @@ -['aaiEventDMaaPPublisher.properties'].each do |file| - template "#{node['aai-resources-config']['PROJECT_HOME']}/bundleconfig/etc/appprops/#{file}" do - source "aai-resources-config/aaiEventDMaaPPublisher.properties" - owner "aaiadmin" - group "aaiadmin" - mode "0644" - variables( -:AAI_DMAAP_PROTOCOL => node["aai-resources-config"]["AAI_DMAAP_PROTOCOL"], -:AAI_DMAAP_HOST_PORT => node["aai-resources-config"]["AAI_DMAAP_HOST_PORT"], -:AAI_DMAAP_TOPIC_NAME => node["aai-resources-config"]["AAI_DMAAP_TOPIC_NAME"] - ) - end -end - diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/recipes/createConfigDirectories.rb b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/recipes/createConfigDirectories.rb deleted file mode 100644 index e944195e8c..0000000000 --- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/recipes/createConfigDirectories.rb +++ /dev/null @@ -1,44 +0,0 @@ -# Create or update the needed directories/links. -# If the directory already exists, it is updated to match -# -# LOGROOT should already be created by the SWM installation script -# It needs to run as root - -[ - "#{node['aai-resources-config']['LOGROOT']}/AAI-RES", - "#{node['aai-resources-config']['LOGROOT']}/AAI-RES/data", - "#{node['aai-resources-config']['LOGROOT']}/AAI-RES/misc", - "#{node['aai-resources-config']['LOGROOT']}/AAI-RES/ajsc-jetty" ].each do |path| - directory path do - owner 'aaiadmin' - group 'aaiadmin' - mode '0755' - recursive=true - action :create - end -end - -[ "#{node['aai-resources-config']['PROJECT_HOME']}/bundleconfig/etc/auth" ].each do |path| - directory path do - owner 'aaiadmin' - group 'aaiadmin' - mode '0777' - recursive=true - action :create - end -end -#Application logs -link "#{node['aai-resources-config']['PROJECT_HOME']}/logs" do - to "#{node['aai-resources-config']['LOGROOT']}/AAI-RES" - owner 'aaiadmin' - group 'aaiadmin' - mode '0755' -end - -#Make a link from /opt/app/aai-resources/scripts to /opt/app/aai-resources/bin -link "#{node['aai-resources-config']['PROJECT_HOME']}/scripts" do - to "#{node['aai-resources-config']['PROJECT_HOME']}/bin" - owner 'aaiadmin' - group 'aaiadmin' - mode '0755' -end diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/recipes/titan-cached.rb b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/recipes/titan-cached.rb deleted file mode 100644 index 53ada49d99..0000000000 --- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/recipes/titan-cached.rb +++ /dev/null @@ -1,17 +0,0 @@ -['titan-cached.properties'].each do |file| - template "#{node['aai-resources-config']['PROJECT_HOME']}/bundleconfig/etc/appprops/#{file}" do - source "aai-resources-config/titan-cached.properties" - owner "aaiadmin" - group "aaiadmin" - mode "0644" - variables( -:STORAGE_HOSTNAME => node["aai-resources-config"]["STORAGE_HOSTNAME"], -:STORAGE_HBASE_TABLE => node["aai-resources-config"]["STORAGE_HBASE_TABLE"], -:STORAGE_HBASE_ZOOKEEPER_ZNODE_PARENT => node["aai-resources-config"]["STORAGE_HBASE_ZOOKEEPER_ZNODE_PARENT"], -:DB_CACHE_CLEAN_WAIT => node["aai-resources-config"]["DB_CACHE_CLEAN_WAIT"], -:DB_CACHE_TIME => node["aai-resources-config"]["DB_CACHE_TIME"], -:DB_CACHE_SIZE => node["aai-resources-config"]["DB_CACHE_SIZE"] - ) - end -end - diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/recipes/titan-realtime.rb b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/recipes/titan-realtime.rb deleted file mode 100644 index c456eb3d5b..0000000000 --- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/recipes/titan-realtime.rb +++ /dev/null @@ -1,14 +0,0 @@ -['titan-realtime.properties'].each do |file| - template "#{node['aai-resources-config']['PROJECT_HOME']}/bundleconfig/etc/appprops/#{file}" do - source "aai-resources-config/titan-realtime.properties" - owner "aaiadmin" - group "aaiadmin" - mode "0644" - variables( -:STORAGE_HOSTNAME => node["aai-resources-config"]["STORAGE_HOSTNAME"], -:STORAGE_HBASE_TABLE => node["aai-resources-config"]["STORAGE_HBASE_TABLE"], -:STORAGE_HBASE_ZOOKEEPER_ZNODE_PARENT => node["aai-resources-config"]["STORAGE_HBASE_ZOOKEEPER_ZNODE_PARENT"] - ) - end -end - diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/templates/default/aai-resources-config/aaiEventDMaaPPublisher.properties b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/templates/default/aai-resources-config/aaiEventDMaaPPublisher.properties deleted file mode 100644 index 8ad92cdf44..0000000000 --- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/templates/default/aai-resources-config/aaiEventDMaaPPublisher.properties +++ /dev/null @@ -1,4 +0,0 @@ -Protocol=<%= @AAI_DMAAP_PROTOCOL %> -contenttype=application/json -host=<%= @AAI_DMAAP_HOST_PORT %> -topic=<%= @AAI_DMAAP_TOPIC_NAME %> diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/templates/default/aai-resources-config/aaiconfig.properties b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/templates/default/aai-resources-config/aaiconfig.properties deleted file mode 100644 index 37e5dcdeaa..0000000000 --- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/templates/default/aai-resources-config/aaiconfig.properties +++ /dev/null @@ -1,79 +0,0 @@ -#################################################################### -# REMEMBER TO THINK ABOUT ENVIRONMENTAL DIFFERENCES AND CHANGE THE -# TEMPLATE AND *ALL* DATAFILES -#################################################################### - -aai.config.checktime=1000 - -# this could come from siteconfig.pl? -aai.config.nodename=AutomaticallyOverwritten - - - -aai.auth.cspcookies_on=false -aai.dbmodel.filename=ex5.json - -aai.server.url.base=<%= @AAI_SERVER_URL_BASE %> -aai.server.url=<%= @AAI_SERVER_URL %> -aai.global.callback.url=<%= @AAI_GLOBAL_CALLBACK_URL %> - -aai.tools.enableBasicAuth=true -aai.tools.username=AAI -aai.tools.password=AAI - -aai.truststore.filename=<%= @AAI_TRUSTSTORE_FILENAME %> -aai.truststore.passwd.x=<%= @AAI_TRUSTSTORE_PASSWD_X %> -aai.keystore.filename=<%= @AAI_KEYSTORE_FILENAME %> -aai.keystore.passwd.x=<%= @AAI_KEYSTORE_PASSWD_X %> - - -aai.notification.current.version=<%= @AAI_NOTIFICATION_CURRENT_VERSION %> -aai.notificationEvent.default.status=<%= @AAI_NOTIFICATION_EVENT_DEFAULT_EVENT_STATUS %> -aai.notificationEvent.default.eventType=<%= @AAI_NOTIFICATION_EVENT_DEFAULT_EVENT_TYPE %> -aai.notificationEvent.default.domain=<%= @AAI_NOTIFICATION_EVENT_DEFAULT_DOMAIN %> -aai.notificationEvent.default.sourceName=<%= @AAI_NOTIFICATION_EVENT_DEFAULT_SOURCE_NAME %> -aai.notificationEvent.default.sequenceNumber=<%= @AAI_NOTIFICATION_EVENT_DEFAULT_SEQUENCE_NUMBER %> -aai.notificationEvent.default.severity=<%= @AAI_NOTIFICATION_EVENT_DEFAULT_SEVERITY %> -aai.notificationEvent.default.version=<%= @AAI_NOTIFICATION_EVENT_DEFAULT_VERSION %> -# This one lets us enable/disable resource-version checking on updates/deletes -aai.resourceversion.enableflag=<%= @RESOURCE_VERSION_ENABLE_FLAG %> -aai.logging.maxStackTraceEntries=10 -aai.default.api.version=<%= @AAI_DEFAULT_API_VERSION %> - - - -# Used by Model-processing code -aai.model.delete.sleep.per.vtx.msec=500 -aai.model.query.resultset.maxcount=50 -aai.model.query.timeout.sec=90 - -# Used by Data Grooming -aai.grooming.default.max.file=150 -aai.grooming.default.sleep.minutes=7 - -aai.model.proc.max.levels=50 -aai.edgeTag.proc.max.levels=50 - -# for transaction log -aai.logging.hbase.interceptor=true -aai.logging.hbase.enabled=true -aai.logging.hbase.logrequest=true -aai.logging.hbase.logresponse=true - -# for gremlin server -aai.server.rebind=g -hbase.table.name=<%= @TXN_HBASE_TABLE_NAME %> -hbase.table.timestamp.format=YYYYMMdd-HH:mm:ss:SSS -hbase.zookeeper.quorum=<%= @TXN_ZOOKEEPER_QUORUM %> -hbase.zookeeper.property.clientPort=<%= @TXN_ZOOKEEPER_PROPERTY_CLIENTPORT %> -hbase.zookeeper.znode.parent=<%= @TXN_HBASE_ZOOKEEPER_ZNODE_PARENT %> - -aai.logging.trace.enabled=true -aai.logging.trace.logrequest=false -aai.logging.trace.logresponse=false - - -aai.transaction.logging=true -aai.transaction.logging.get=false -aai.transaction.logging.post=false - diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/templates/default/aai-resources-config/preferredRoute.txt b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/templates/default/aai-resources-config/preferredRoute.txt deleted file mode 100644 index d09d49e34e..0000000000 --- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/templates/default/aai-resources-config/preferredRoute.txt +++ /dev/null @@ -1 +0,0 @@ -preferredRouteKey=<%= @AAI_WORKLOAD_PREFERRED_ROUTE_KEY %>
\ No newline at end of file diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/templates/default/aai-resources-config/titan-cached.properties b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/templates/default/aai-resources-config/titan-cached.properties deleted file mode 100644 index d6c9c2d893..0000000000 --- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/templates/default/aai-resources-config/titan-cached.properties +++ /dev/null @@ -1,13 +0,0 @@ -# the following parameters are not reloaded automatically and require a manual bounce -query.fast-property=true -storage.backend=hbase -storage.hostname=<%= @STORAGE_HOSTNAME %> -#schema.default=none -storage.lock.wait-time=300 -storage.hbase.table=<%= @STORAGE_HBASE_TABLE %> -storage.hbase.ext.zookeeper.znode.parent=<%= @STORAGE_HBASE_ZOOKEEPER_ZNODE_PARENT %> -#caching on -cache.db-cache = true -cache.db-cache-clean-wait = <%= @DB_CACHE_CLEAN_WAIT %> -cache.db-cache-time = <%= @DB_CACHE_TIME %> -cache.db-cache-size = <%= @DB_CACHE_SIZE %>
\ No newline at end of file diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/templates/default/aai-resources-config/titan-realtime.properties b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/templates/default/aai-resources-config/titan-realtime.properties deleted file mode 100644 index 2935cc1104..0000000000 --- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/templates/default/aai-resources-config/titan-realtime.properties +++ /dev/null @@ -1,13 +0,0 @@ -# the following parameters are not reloaded automatically and require a manual bounce -query.fast-property=true -storage.backend=hbase -storage.hostname=<%= @STORAGE_HOSTNAME %> -#schema.default=none -storage.lock.wait-time=300 -storage.hbase.table=<%= @STORAGE_HBASE_TABLE %> -storage.hbase.ext.zookeeper.znode.parent=<%= @STORAGE_HBASE_ZOOKEEPER_ZNODE_PARENT %> -# Setting db-cache to false ensure the fastest propagation of changes across servers -cache.db-cache = false -#cache.db-cache-clean-wait = 20 -#cache.db-cache-time = 180000 -#cache.db-cache-size = 0.5
\ No newline at end of file diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/runlist-aai-resources.json b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/runlist-aai-resources.json deleted file mode 100644 index 92c493d031..0000000000 --- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/runlist-aai-resources.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "run_list": [ - "recipe[aai-resources-config::createConfigDirectories]", - "recipe[aai-resources-auth::aai-resources-aai-keystore]", - "recipe[aai-resources-config::aaiEventDMaaPPublisher]", - "recipe[aai-resources-config::aai-resources-config]", - "recipe[aai-resources-config::titan-cached]", - "recipe[aai-resources-config::titan-realtime]", - "recipe[aai-resources-config::aai-preferredRoute]" - ] -} diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-auth/CHANGELOG.md b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-auth/CHANGELOG.md deleted file mode 100644 index c86d50bfc2..0000000000 --- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-auth/CHANGELOG.md +++ /dev/null @@ -1,13 +0,0 @@ -ajsc-aai-auth CHANGELOG -======================= - -This file is used to list changes made in each version of the aai-traversal-auth cookbook. - -0.1.0 ------ -- [your_name] - Initial release of aai-traversal-auth - -- - - -Check the [Markdown Syntax Guide](http://daringfireball.net/projects/markdown/syntax) for help with Markdown. - -The [Github Flavored Markdown page](http://github.github.com/github-flavored-markdown/) describes the differences between markdown on github and standard markdown. diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-auth/README.md b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-auth/README.md deleted file mode 100644 index 370816b9dd..0000000000 --- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-auth/README.md +++ /dev/null @@ -1,68 +0,0 @@ -aai-traversal-auth Cookbook -====================== -TODO: Enter the cookbook description here. - -e.g. -This cookbook makes your favorite breakfast sandwich. - -Requirements ------------- -TODO: List your cookbook requirements. Be sure to include any requirements this cookbook has on platforms, libraries, other cookbooks, packages, operating systems, etc. - -e.g. -#### packages -- `toaster` - ajsc-aai-auth needs toaster to brown your bagel. - -Attributes ----------- -TODO: List your cookbook attributes here. - -e.g. -#### ajsc-aai-auth::default -<table> - <tr> - <th>Key</th> - <th>Type</th> - <th>Description</th> - <th>Default</th> - </tr> - <tr> - <td><tt>['ajsc-aai-auth']['bacon']</tt></td> - <td>Boolean</td> - <td>whether to include bacon</td> - <td><tt>true</tt></td> - </tr> -</table> - -Usage ------ -#### aai-traversal-auth::default -TODO: Write usage instructions for each cookbook. - -e.g. -Just include `aai-traversal-auth` in your node's `run_list`: - -```json -{ - "name":"my_node", - "run_list": [ - "recipe[ajsc-aai-auth]" - ] -} -``` - -Contributing ------------- -TODO: (optional) If this is a public cookbook, detail the process for contributing. If this is a private cookbook, remove this section. - -e.g. -1. Fork the repository on Github -2. Create a named feature branch (like `add_component_x`) -3. Write your change -4. Write tests for your change (if applicable) -5. Run the tests, ensuring they all pass -6. Submit a Pull Request using Github - -License and Authors -------------------- -Authors: TODO: List authors diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-auth/files/default/aai_keystore-dev b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-auth/files/default/aai_keystore-dev Binary files differdeleted file mode 100644 index 3eef13557c..0000000000 --- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-auth/files/default/aai_keystore-dev +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-auth/metadata.rb b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-auth/metadata.rb deleted file mode 100644 index e6537493a1..0000000000 --- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-auth/metadata.rb +++ /dev/null @@ -1,7 +0,0 @@ -name 'aai-traversal-auth' -maintainer 'ATT' -maintainer_email '' -license 'All rights reserved' -description 'Installs/Configures aai-traversal-auth' -long_description IO.read(File.join(File.dirname(__FILE__), 'README.md')) -version '1.0.0' diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-auth/recipes/aai-traversal-aai-keystore.rb b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-auth/recipes/aai-traversal-aai-keystore.rb deleted file mode 100644 index c1b3f2800c..0000000000 --- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-auth/recipes/aai-traversal-aai-keystore.rb +++ /dev/null @@ -1,8 +0,0 @@ -cookbook_file "#{node['aai-traversal-config']['PROJECT_HOME']}/bundleconfig/etc/auth/aai_keystore" do - source "aai_keystore-#{node['aai-traversal-config']['AAIENV']}" - owner 'aaiadmin' - group 'aaiadmin' - mode '0755' - action :create -end - diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/CHANGELOG.md b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/CHANGELOG.md deleted file mode 100644 index 1e69e21832..0000000000 --- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/CHANGELOG.md +++ /dev/null @@ -1,13 +0,0 @@ -aai-traversal-config CHANGELOG -========================= - -This file is used to list changes made in each version of the ajsc-aai-config cookbook. - -0.1.0 ------ -- [your_name] - Initial release of ajsc-aai-config - -- - - -Check the [Markdown Syntax Guide](http://daringfireball.net/projects/markdown/syntax) for help with Markdown. - -The [Github Flavored Markdown page](http://github.github.com/github-flavored-markdown/) describes the differences between markdown on github and standard markdown. diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/README.md b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/README.md deleted file mode 100644 index 3e6fcc91f8..0000000000 --- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/README.md +++ /dev/null @@ -1,68 +0,0 @@ -aai-traversal-config Cookbook -======================== -TODO: Enter the cookbook description here. - -e.g. -This cookbook makes your favorite breakfast sandwich. - -Requirements ------------- -TODO: List your cookbook requirements. Be sure to include any requirements this cookbook has on platforms, libraries, other cookbooks, packages, operating systems, etc. - -e.g. -#### packages -- `toaster` - aai-traversal-config needs toaster to brown your bagel. - -Attributes ----------- -TODO: List your cookbook attributes here. - -e.g. -#### ajsc-aai-config::default -<table> - <tr> - <th>Key</th> - <th>Type</th> - <th>Description</th> - <th>Default</th> - </tr> - <tr> - <td><tt>['ajsc-aai-config']['bacon']</tt></td> - <td>Boolean</td> - <td>whether to include bacon</td> - <td><tt>true</tt></td> - </tr> -</table> - -Usage ------ -#### ajsc-aai-config::default -TODO: Write usage instructions for each cookbook. - -e.g. -Just include `ajsc-aai-config` in your node's `run_list`: - -```json -{ - "name":"my_node", - "run_list": [ - "recipe[ajsc-aai-config]" - ] -} -``` - -Contributing ------------- -TODO: (optional) If this is a public cookbook, detail the process for contributing. If this is a private cookbook, remove this section. - -e.g. -1. Fork the repository on Github -2. Create a named feature branch (like `add_component_x`) -3. Write your change -4. Write tests for your change (if applicable) -5. Run the tests, ensuring they all pass -6. Submit a Pull Request using Github - -License and Authors -------------------- -Authors: TODO: List authors diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/attributes/aai-traversal-config.rb b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/attributes/aai-traversal-config.rb deleted file mode 100644 index 33d3eb22ea..0000000000 --- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/attributes/aai-traversal-config.rb +++ /dev/null @@ -1,15 +0,0 @@ -node.default["aai-traversal-config"]["AAIENV"] = 'solo' -node.default["aai-traversal-config"]["PROJECT_HOME"] = '/opt/app/aai-traversal' -node.default["aai-traversal-config"]["LOGROOT"] = '/opt/aai/logroot' -node.default["aai-traversal-config"]["JAVA_HOME"] = '/usr/lib/jvm/java-8-openjdk-amd64' -node.default["aai-traversal-config"]["AAI_SERVER_URL_BASE"] = 'https://localhost:8443/aai/' -node.default["aai-traversal-config"]["AAI_SERVER_URL"] = 'https://localhost:8443/aai/v11/' -node.default["aai-traversal-config"]["AAI_GLOBAL_CALLBACK_URL"] = 'https://localhost:8443/aai/' -node.default["aai-traversal-config"]["AAI_TRUSTSTORE_FILENAME"] = 'aai_keystore' -node.default["aai-traversal-config"]["AAI_TRUSTSTORE_PASSWD_X"] = 'OBF:1vn21ugu1saj1v9i1v941sar1ugw1vo0' -node.default["aai-traversal-config"]["AAI_KEYSTORE_FILENAME"] = 'aai_keystore' -node.default["aai-traversal-config"]["AAI_KEYSTORE_PASSWD_X"] = 'OBF:1vn21ugu1saj1v9i1v941sar1ugw1vo0' -node.default["aai-traversal-config"]["TXN_HBASE_TABLE_NAME"] = 'aailogging.dev' -node.default["aai-traversal-config"]["TXN_ZOOKEEPER_QUORUM"] = 'localhost' -node.default["aai-traversal-config"]["TXN_ZOOKEEPER_PROPERTY_CLIENTPORT"] = '2181' -node.default["aai-traversal-config"]["TXN_HBASE_ZOOKEEPER_ZNODE_PARENT"] = '/hbase' diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/attributes/aaiEventDMaaPPublisher.rb b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/attributes/aaiEventDMaaPPublisher.rb deleted file mode 100644 index 7d20b30bad..0000000000 --- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/attributes/aaiEventDMaaPPublisher.rb +++ /dev/null @@ -1,3 +0,0 @@ -node.default["aai-traversal-config"]["AAI_DMAAP_PROTOCOL"] = 'http' -node.default["aai-traversal-config"]["AAI_DMAAP_HOST_PORT"] = 'localhost:3904' -node.default["aai-traversal-config"]["AAI_DMAAP_TOPIC_NAME"] = 'AAI-EVENT' diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/attributes/preferredRoute.rb b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/attributes/preferredRoute.rb deleted file mode 100644 index 21af6721ce..0000000000 --- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/attributes/preferredRoute.rb +++ /dev/null @@ -1 +0,0 @@ -node.default["aai-traversal-config"]["AAI_WORKLOAD_PREFERRED_ROUTE_KEY"] = 'MR1'
\ No newline at end of file diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/attributes/titan-cached.rb b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/attributes/titan-cached.rb deleted file mode 100644 index cb88f3c77a..0000000000 --- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/attributes/titan-cached.rb +++ /dev/null @@ -1,6 +0,0 @@ -node.default["aai-traversal-config"]["STORAGE_HOSTNAME"] = 'localhost' -node.default["aai-traversal-config"]["STORAGE_HBASE_TABLE"] = 'aaigraph.dev' -node.default["aai-traversal-config"]["STORAGE_HBASE_ZOOKEEPER_ZNODE_PARENT"] = '/hbase' -node.default["aai-traversal-config"]["DB_CACHE_CLEAN_WAIT"] = 20 -node.default["aai-traversal-config"]["DB_CACHE_TIME"] = 180000 -node.default["aai-traversal-config"]["DB_CACHE_SIZE"] = 0.3
\ No newline at end of file diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/attributes/titan-realtime.rb b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/attributes/titan-realtime.rb deleted file mode 100644 index f67c64631a..0000000000 --- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/attributes/titan-realtime.rb +++ /dev/null @@ -1,3 +0,0 @@ -node.default["aai-traversal-config"]["STORAGE_HOSTNAME"] = 'localhost' -node.default["aai-traversal-config"]["STORAGE_HBASE_TABLE"] = 'aaigraph.dev' -node.default["aai-traversal-config"]["STORAGE_HBASE_ZOOKEEPER_ZNODE_PARENT"] = '/hbase'
\ No newline at end of file diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/metadata.rb b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/metadata.rb deleted file mode 100644 index fd654fa5cf..0000000000 --- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/metadata.rb +++ /dev/null @@ -1,7 +0,0 @@ -name 'aai-traversal-config' -maintainer 'ATT' -maintainer_email '' -license 'All rights reserved' -description 'Installs/Configures aai-traversal-config' -long_description IO.read(File.join(File.dirname(__FILE__), 'README.md')) -version '1.0.0' diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/recipes/aai-preferredRoute.rb b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/recipes/aai-preferredRoute.rb deleted file mode 100644 index 2672e9bdb5..0000000000 --- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/recipes/aai-preferredRoute.rb +++ /dev/null @@ -1,11 +0,0 @@ -['preferredRoute.txt'].each do |file| - template "#{node['aai-traversal-config']['PROJECT_HOME']}/bundleconfig/etc/appprops/#{file}" do - source "aai-traversal-app-config/preferredRoute.txt" - owner "aaiadmin" - group "aaiadmin" - mode "0644" - variables( -:AAI_WORKLOAD_PREFERRED_ROUTE_KEY => node["aai-traversal-config"]["AAI_WORKLOAD_PREFERRED_ROUTE_KEY"] - ) - end -end
\ No newline at end of file diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/recipes/aai-traversal-config.rb b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/recipes/aai-traversal-config.rb deleted file mode 100644 index aae12d0d4f..0000000000 --- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/recipes/aai-traversal-config.rb +++ /dev/null @@ -1,77 +0,0 @@ -################ -# Update aaiGraphQueryConfig.properties -################ -include_recipe 'aai-traversal-config::createConfigDirectories' - -['aaiconfig.properties'].each do |file| - template "#{node['aai-traversal-config']['PROJECT_HOME']}/bundleconfig/etc/appprops/#{file}" do - source "aai-traversal-app-config/aaiconfig.properties" - owner "aaiadmin" - group "aaiadmin" - mode "0644" - variables( -:AAI_SERVER_URL_BASE => node["aai-traversal-config"]["AAI_SERVER_URL_BASE"], -:AAI_SERVER_URL => node["aai-traversal-config"]["AAI_SERVER_URL"], -:AAI_GLOBAL_CALLBACK_URL => node["aai-traversal-config"]["AAI_GLOBAL_CALLBACK_URL"], -:AAI_TRUSTSTORE_FILENAME => node["aai-traversal-config"]["AAI_TRUSTSTORE_FILENAME"], -:AAI_TRUSTSTORE_PASSWD_X => node["aai-traversal-config"]["AAI_TRUSTSTORE_PASSWD_X"], -:AAI_KEYSTORE_FILENAME => node["aai-traversal-config"]["AAI_KEYSTORE_FILENAME"], -:AAI_KEYSTORE_PASSWD_X => node["aai-traversal-config"]["AAI_KEYSTORE_PASSWD_X"], -:APPLICATION_SERVERS => node["aai-traversal-config"]["APPLICATION_SERVERS"], -:TXN_HBASE_TABLE_NAME => node["aai-traversal-config"]["TXN_HBASE_TABLE_NAME"], -:TXN_ZOOKEEPER_QUORUM => node["aai-traversal-config"]["TXN_ZOOKEEPER_QUORUM"], -:TXN_ZOOKEEPER_PROPERTY_CLIENTPORT => node["aai-traversal-config"]["TXN_ZOOKEEPER_PROPERTY_CLIENTPORT"], -:TXN_HBASE_ZOOKEEPER_ZNODE_PARENT => node["aai-traversal-config"]["TXN_HBASE_ZOOKEEPER_ZNODE_PARENT"], -:RESOURCE_VERSION_ENABLE_FLAG => node["aai-traversal-config"]["RESOURCE_VERSION_ENABLE_FLAG"], - :AAI_NOTIFICATION_CURRENT_VERSION => node["aai-traversal-config"]["AAI_NOTIFICATION_CURRENT_VERSION"], - :AAI_NOTIFICATION_EVENT_DEFAULT_EVENT_STATUS => node["aai-traversal-config"]["AAI_NOTIFICATION_EVENT_DEFAULT_EVENT_STATUS"], - :AAI_NOTIFICATION_EVENT_DEFAULT_EVENT_TYPE => node["aai-traversal-config"]["AAI_NOTIFICATION_EVENT_DEFAULT_EVENT_TYPE"], - :AAI_NOTIFICATION_EVENT_DEFAULT_DOMAIN => node["aai-traversal-config"]["AAI_NOTIFICATION_EVENT_DEFAULT_DOMAIN"], - :AAI_NOTIFICATION_EVENT_DEFAULT_SOURCE_NAME => node["aai-traversal-config"]["AAI_NOTIFICATION_EVENT_DEFAULT_SOURCE_NAME"], - :AAI_NOTIFICATION_EVENT_DEFAULT_SEQUENCE_NUMBER => node["aai-traversal-config"]["AAI_NOTIFICATION_EVENT_DEFAULT_SEQUENCE_NUMBER"], - :AAI_NOTIFICATION_EVENT_DEFAULT_SEVERITY => node["aai-traversal-config"]["AAI_NOTIFICATION_EVENT_DEFAULT_SEVERITY"], - :AAI_NOTIFICATION_EVENT_DEFAULT_VERSION => node["aai-traversal-config"]["AAI_NOTIFICATION_EVENT_DEFAULT_VERSION"], -:AAI_DEFAULT_API_VERSION => node["aai-traversal-config"]["AAI_DEFAULT_API_VERSION"] - ) - end -end - -#remote_directory "/opt/mso/etc/ecomp/mso/config/" do -# source "mso-asdc-controller-config" -# #cookbook "default is current" -# files_mode "0700" -# files_owner "jboss" -# files_group "jboss" -# mode "0755" -# owner "jboss" -# group "jboss" -# overwrite true -# recursive true -# action :create -#end - - -################ -# Alternative example1 -# This updates all the timestamps -# Seting preserve never changes the timestamp when the file is changed -###### -# ruby_block "copy_recurse" do -# block do -# FileUtils.cp_r("#{Chef::Config[:file_cache_path]}/cookbooks/mso-config/files/default/mso-api-handler-config/.",\ -# "/opt/mso/etc/ecomp/mso/config/", :preserve => true) -# end -# action :run -# end - -################ -# Alternative example2 -###### -# Dir.glob("#{Chef::Config[:file_cache_path]}/cookbooks/mso-config/files/default/mso-api-handler-config/*").sort.each do |entry| -# cookbook_file "/opt/mso/etc/ecomp/mso/config/#{entry}" do -# source entry -# owner "root" -# group "root" -# mode 0755 -# end -# end diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/recipes/aaiEventDMaaPPublisher.rb b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/recipes/aaiEventDMaaPPublisher.rb deleted file mode 100644 index 6b66a6d40b..0000000000 --- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/recipes/aaiEventDMaaPPublisher.rb +++ /dev/null @@ -1,14 +0,0 @@ -['aaiEventDMaaPPublisher.properties'].each do |file| - template "#{node['aai-traversal-config']['PROJECT_HOME']}/bundleconfig/etc/appprops/#{file}" do - source "aai-traversal-app-config/aaiEventDMaaPPublisher.properties" - owner "aaiadmin" - group "aaiadmin" - mode "0644" - variables( -:AAI_DMAAP_PROTOCOL => node["aai-traversal-config"]["AAI_DMAAP_PROTOCOL"], -:AAI_DMAAP_HOST_PORT => node["aai-traversal-config"]["AAI_DMAAP_HOST_PORT"], -:AAI_DMAAP_TOPIC_NAME => node["aai-traversal-config"]["AAI_DMAAP_TOPIC_NAME"] - ) - end -end - diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/recipes/createConfigDirectories.rb b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/recipes/createConfigDirectories.rb deleted file mode 100644 index 9739c1a876..0000000000 --- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/recipes/createConfigDirectories.rb +++ /dev/null @@ -1,44 +0,0 @@ -# Create or update the needed directories/links. -# If the directory already exists, it is updated to match -# -# LOGROOT should already be created by the SWM installation script -# It needs to run as root - -[ - "#{node['aai-traversal-config']['LOGROOT']}/AAI-GQ", - "#{node['aai-traversal-config']['LOGROOT']}/AAI-GQ/data", - "#{node['aai-traversal-config']['LOGROOT']}/AAI-GQ/misc", - "#{node['aai-traversal-config']['LOGROOT']}/AAI-GQ/ajsc-jetty" ].each do |path| - directory path do - owner 'aaiadmin' - group 'aaiadmin' - mode '0755' - recursive=true - action :create - end -end - -[ "#{node['aai-traversal-config']['PROJECT_HOME']}/bundleconfig/etc/auth" ].each do |path| - directory path do - owner 'aaiadmin' - group 'aaiadmin' - mode '0777' - recursive=true - action :create - end -end -#Application logs -link "#{node['aai-traversal-config']['PROJECT_HOME']}/logs" do - to "#{node['aai-traversal-config']['LOGROOT']}/AAI-GQ" - owner 'aaiadmin' - group 'aaiadmin' - mode '0755' -end - -#Make a link from /opt/app/aai-traversal/scripts to /opt/app/aai-traversal/bin -link "#{node['aai-traversal-config']['PROJECT_HOME']}/scripts" do - to "#{node['aai-traversal-config']['PROJECT_HOME']}/bin" - owner 'aaiadmin' - group 'aaiadmin' - mode '0755' -end diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/recipes/titan-cached.rb b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/recipes/titan-cached.rb deleted file mode 100644 index b00e6ba029..0000000000 --- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/recipes/titan-cached.rb +++ /dev/null @@ -1,17 +0,0 @@ -['titan-cached.properties'].each do |file| - template "#{node['aai-traversal-config']['PROJECT_HOME']}/bundleconfig/etc/appprops/#{file}" do - source "aai-traversal-app-config/titan-cached.properties" - owner "aaiadmin" - group "aaiadmin" - mode "0644" - variables( -:STORAGE_HOSTNAME => node["aai-traversal-config"]["STORAGE_HOSTNAME"], -:STORAGE_HBASE_TABLE => node["aai-traversal-config"]["STORAGE_HBASE_TABLE"], -:STORAGE_HBASE_ZOOKEEPER_ZNODE_PARENT => node["aai-traversal-config"]["STORAGE_HBASE_ZOOKEEPER_ZNODE_PARENT"], -:DB_CACHE_CLEAN_WAIT => node["aai-traversal-config"]["DB_CACHE_CLEAN_WAIT"], -:DB_CACHE_TIME => node["aai-traversal-config"]["DB_CACHE_TIME"], -:DB_CACHE_SIZE => node["aai-traversal-config"]["DB_CACHE_SIZE"] - ) - end -end - diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/recipes/titan-realtime.rb b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/recipes/titan-realtime.rb deleted file mode 100644 index cd6686ab2b..0000000000 --- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/recipes/titan-realtime.rb +++ /dev/null @@ -1,14 +0,0 @@ -['titan-realtime.properties'].each do |file| - template "#{node['aai-traversal-config']['PROJECT_HOME']}/bundleconfig/etc/appprops/#{file}" do - source "aai-traversal-app-config/titan-realtime.properties" - owner "aaiadmin" - group "aaiadmin" - mode "0644" - variables( -:STORAGE_HOSTNAME => node["aai-traversal-config"]["STORAGE_HOSTNAME"], -:STORAGE_HBASE_TABLE => node["aai-traversal-config"]["STORAGE_HBASE_TABLE"], -:STORAGE_HBASE_ZOOKEEPER_ZNODE_PARENT => node["aai-traversal-config"]["STORAGE_HBASE_ZOOKEEPER_ZNODE_PARENT"] - ) - end -end - diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/templates/default/aai-traversal-app-config/aaiEventDMaaPPublisher.properties b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/templates/default/aai-traversal-app-config/aaiEventDMaaPPublisher.properties deleted file mode 100644 index 8ad92cdf44..0000000000 --- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/templates/default/aai-traversal-app-config/aaiEventDMaaPPublisher.properties +++ /dev/null @@ -1,4 +0,0 @@ -Protocol=<%= @AAI_DMAAP_PROTOCOL %> -contenttype=application/json -host=<%= @AAI_DMAAP_HOST_PORT %> -topic=<%= @AAI_DMAAP_TOPIC_NAME %> diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/templates/default/aai-traversal-app-config/aaiconfig.properties b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/templates/default/aai-traversal-app-config/aaiconfig.properties deleted file mode 100644 index eadc72ac28..0000000000 --- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/templates/default/aai-traversal-app-config/aaiconfig.properties +++ /dev/null @@ -1,75 +0,0 @@ -#################################################################### -# REMEMBER TO THINK ABOUT ENVIRONMENTAL DIFFERENCES AND CHANGE THE -# TEMPLATE AND *ALL* DATAFILES -#################################################################### - -aai.config.checktime=1000 - -# this could come from siteconfig.pl? -aai.config.nodename=AutomaticallyOverwritten - -aai.tools.enableBasicAuth=true -aai.tools.username=AAI -aai.tools.password=AAI - -aai.auth.cspcookies_on=false -aai.dbmodel.filename=ex5.json - -aai.server.url.base=<%= @AAI_SERVER_URL_BASE %> -aai.server.url=<%= @AAI_SERVER_URL %> -aai.global.callback.url=<%= @AAI_GLOBAL_CALLBACK_URL %> - - -aai.truststore.filename=<%= @AAI_TRUSTSTORE_FILENAME %> -aai.truststore.passwd.x=<%= @AAI_TRUSTSTORE_PASSWD_X %> -aai.keystore.filename=<%= @AAI_KEYSTORE_FILENAME %> -aai.keystore.passwd.x=<%= @AAI_KEYSTORE_PASSWD_X %> - - -aai.notification.current.version=<%= @AAI_NOTIFICATION_CURRENT_VERSION %> -aai.notificationEvent.default.status=<%= @AAI_NOTIFICATION_EVENT_DEFAULT_EVENT_STATUS %> -aai.notificationEvent.default.eventType=<%= @AAI_NOTIFICATION_EVENT_DEFAULT_EVENT_TYPE %> -aai.notificationEvent.default.domain=<%= @AAI_NOTIFICATION_EVENT_DEFAULT_DOMAIN %> -aai.notificationEvent.default.sourceName=<%= @AAI_NOTIFICATION_EVENT_DEFAULT_SOURCE_NAME %> -aai.notificationEvent.default.sequenceNumber=<%= @AAI_NOTIFICATION_EVENT_DEFAULT_SEQUENCE_NUMBER %> -aai.notificationEvent.default.severity=<%= @AAI_NOTIFICATION_EVENT_DEFAULT_SEVERITY %> -aai.notificationEvent.default.version=<%= @AAI_NOTIFICATION_EVENT_DEFAULT_VERSION %> -# This one lets us enable/disable resource-version checking on updates/deletes -aai.resourceversion.enableflag=<%= @RESOURCE_VERSION_ENABLE_FLAG %> -aai.logging.maxStackTraceEntries=10 -aai.default.api.version=<%= @AAI_DEFAULT_API_VERSION %> - -# Used by Model-processing code -aai.model.delete.sleep.per.vtx.msec=500 -aai.model.query.resultset.maxcount=50 -aai.model.query.timeout.sec=90 - - -aai.model.proc.max.levels=50 -aai.edgeTag.proc.max.levels=50 - -# for transaction log -aai.logging.hbase.interceptor=true -aai.logging.hbase.enabled=true -aai.logging.hbase.logrequest=true -aai.logging.hbase.logresponse=true - -# for gremlin server -aai.server.rebind=g -hbase.table.name=<%= @TXN_HBASE_TABLE_NAME %> -hbase.table.timestamp.format=YYYYMMdd-HH:mm:ss:SSS -hbase.zookeeper.quorum=<%= @TXN_ZOOKEEPER_QUORUM %> -hbase.zookeeper.property.clientPort=<%= @TXN_ZOOKEEPER_PROPERTY_CLIENTPORT %> -hbase.zookeeper.znode.parent=<%= @TXN_HBASE_ZOOKEEPER_ZNODE_PARENT %> - - -aai.logging.trace.enabled=true -aai.logging.trace.logrequest=false -aai.logging.trace.logresponse=false - - -aai.transaction.logging=true -aai.transaction.logging.get=false -aai.transaction.logging.post=false - - diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/templates/default/aai-traversal-app-config/preferredRoute.txt b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/templates/default/aai-traversal-app-config/preferredRoute.txt deleted file mode 100644 index d09d49e34e..0000000000 --- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/templates/default/aai-traversal-app-config/preferredRoute.txt +++ /dev/null @@ -1 +0,0 @@ -preferredRouteKey=<%= @AAI_WORKLOAD_PREFERRED_ROUTE_KEY %>
\ No newline at end of file diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/templates/default/aai-traversal-app-config/titan-cached.properties b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/templates/default/aai-traversal-app-config/titan-cached.properties deleted file mode 100644 index d6c9c2d893..0000000000 --- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/templates/default/aai-traversal-app-config/titan-cached.properties +++ /dev/null @@ -1,13 +0,0 @@ -# the following parameters are not reloaded automatically and require a manual bounce -query.fast-property=true -storage.backend=hbase -storage.hostname=<%= @STORAGE_HOSTNAME %> -#schema.default=none -storage.lock.wait-time=300 -storage.hbase.table=<%= @STORAGE_HBASE_TABLE %> -storage.hbase.ext.zookeeper.znode.parent=<%= @STORAGE_HBASE_ZOOKEEPER_ZNODE_PARENT %> -#caching on -cache.db-cache = true -cache.db-cache-clean-wait = <%= @DB_CACHE_CLEAN_WAIT %> -cache.db-cache-time = <%= @DB_CACHE_TIME %> -cache.db-cache-size = <%= @DB_CACHE_SIZE %>
\ No newline at end of file diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/templates/default/aai-traversal-app-config/titan-realtime.properties b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/templates/default/aai-traversal-app-config/titan-realtime.properties deleted file mode 100644 index 2935cc1104..0000000000 --- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/templates/default/aai-traversal-app-config/titan-realtime.properties +++ /dev/null @@ -1,13 +0,0 @@ -# the following parameters are not reloaded automatically and require a manual bounce -query.fast-property=true -storage.backend=hbase -storage.hostname=<%= @STORAGE_HOSTNAME %> -#schema.default=none -storage.lock.wait-time=300 -storage.hbase.table=<%= @STORAGE_HBASE_TABLE %> -storage.hbase.ext.zookeeper.znode.parent=<%= @STORAGE_HBASE_ZOOKEEPER_ZNODE_PARENT %> -# Setting db-cache to false ensure the fastest propagation of changes across servers -cache.db-cache = false -#cache.db-cache-clean-wait = 20 -#cache.db-cache-time = 180000 -#cache.db-cache-size = 0.5
\ No newline at end of file diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/runlist-aai-traversal.json b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/runlist-aai-traversal.json deleted file mode 100644 index 98c61a74e3..0000000000 --- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/runlist-aai-traversal.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "run_list": [ - "recipe[aai-traversal-config::createConfigDirectories]", - "recipe[aai-traversal-auth::aai-traversal-aai-keystore]", - "recipe[aai-traversal-config::aaiEventDMaaPPublisher]", - "recipe[aai-traversal-config::titan-cached]", - "recipe[aai-traversal-config::titan-realtime]", - "recipe[aai-traversal-config::aai-traversal-config]", - "recipe[aai-traversal-config::aai-preferredRoute]" - ] -} diff --git a/kubernetes/config/docker/init/src/config/aai/etc/ssl/certs/ca-certificates.crt b/kubernetes/config/docker/init/src/config/aai/etc/ssl/certs/ca-certificates.crt deleted file mode 100755 index fe565a7d7d..0000000000 --- a/kubernetes/config/docker/init/src/config/aai/etc/ssl/certs/ca-certificates.crt +++ /dev/null @@ -1,4496 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIH0zCCBbugAwIBAgIIXsO3pkN/pOAwDQYJKoZIhvcNAQEFBQAwQjESMBAGA1UE -AwwJQUNDVlJBSVoxMRAwDgYDVQQLDAdQS0lBQ0NWMQ0wCwYDVQQKDARBQ0NWMQsw -CQYDVQQGEwJFUzAeFw0xMTA1MDUwOTM3MzdaFw0zMDEyMzEwOTM3MzdaMEIxEjAQ -BgNVBAMMCUFDQ1ZSQUlaMTEQMA4GA1UECwwHUEtJQUNDVjENMAsGA1UECgwEQUND -VjELMAkGA1UEBhMCRVMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCb -qau/YUqXry+XZpp0X9DZlv3P4uRm7x8fRzPCRKPfmt4ftVTdFXxpNRFvu8gMjmoY -HtiP2Ra8EEg2XPBjs5BaXCQ316PWywlxufEBcoSwfdtNgM3802/J+Nq2DoLSRYWo -G2ioPej0RGy9ocLLA76MPhMAhN9KSMDjIgro6TenGEyxCQ0jVn8ETdkXhBilyNpA -lHPrzg5XPAOBOp0KoVdDaaxXbXmQeOW1tDvYvEyNKKGno6e6Ak4l0Squ7a4DIrhr -IA8wKFSVf+DuzgpmndFALW4ir50awQUZ0m/A8p/4e7MCQvtQqR0tkw8jq8bBD5L/ -0KIV9VMJcRz/RROE5iZe+OCIHAr8Fraocwa48GOEAqDGWuzndN9wrqODJerWx5eH -k6fGioozl2A3ED6XPm4pFdahD9GILBKfb6qkxkLrQaLjlUPTAYVtjrs78yM2x/47 -4KElB0iryYl0/wiPgL/AlmXz7uxLaL2diMMxs0Dx6M/2OLuc5NF/1OVYm3z61PMO -m3WR5LpSLhl+0fXNWhn8ugb2+1KoS5kE3fj5tItQo05iifCHJPqDQsGH+tUtKSpa -cXpkatcnYGMN285J9Y0fkIkyF/hzQ7jSWpOGYdbhdQrqeWZ2iE9x6wQl1gpaepPl -uUsXQA+xtrn13k/c4LOsOxFwYIRKQ26ZIMApcQrAZQIDAQABo4ICyzCCAscwfQYI -KwYBBQUHAQEEcTBvMEwGCCsGAQUFBzAChkBodHRwOi8vd3d3LmFjY3YuZXMvZmls -ZWFkbWluL0FyY2hpdm9zL2NlcnRpZmljYWRvcy9yYWl6YWNjdjEuY3J0MB8GCCsG -AQUFBzABhhNodHRwOi8vb2NzcC5hY2N2LmVzMB0GA1UdDgQWBBTSh7Tj3zcnk1X2 -VuqB5TbMjB4/vTAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNKHtOPfNyeT -VfZW6oHlNsyMHj+9MIIBcwYDVR0gBIIBajCCAWYwggFiBgRVHSAAMIIBWDCCASIG -CCsGAQUFBwICMIIBFB6CARAAQQB1AHQAbwByAGkAZABhAGQAIABkAGUAIABDAGUA -cgB0AGkAZgBpAGMAYQBjAGkA8wBuACAAUgBhAO0AegAgAGQAZQAgAGwAYQAgAEEA -QwBDAFYAIAAoAEEAZwBlAG4AYwBpAGEAIABkAGUAIABUAGUAYwBuAG8AbABvAGcA -7QBhACAAeQAgAEMAZQByAHQAaQBmAGkAYwBhAGMAaQDzAG4AIABFAGwAZQBjAHQA -cgDzAG4AaQBjAGEALAAgAEMASQBGACAAUQA0ADYAMAAxADEANQA2AEUAKQAuACAA -QwBQAFMAIABlAG4AIABoAHQAdABwADoALwAvAHcAdwB3AC4AYQBjAGMAdgAuAGUA -czAwBggrBgEFBQcCARYkaHR0cDovL3d3dy5hY2N2LmVzL2xlZ2lzbGFjaW9uX2Mu -aHRtMFUGA1UdHwROMEwwSqBIoEaGRGh0dHA6Ly93d3cuYWNjdi5lcy9maWxlYWRt -aW4vQXJjaGl2b3MvY2VydGlmaWNhZG9zL3JhaXphY2N2MV9kZXIuY3JsMA4GA1Ud -DwEB/wQEAwIBBjAXBgNVHREEEDAOgQxhY2N2QGFjY3YuZXMwDQYJKoZIhvcNAQEF -BQADggIBAJcxAp/n/UNnSEQU5CmH7UwoZtCPNdpNYbdKl02125DgBS4OxnnQ8pdp -D70ER9m+27Up2pvZrqmZ1dM8MJP1jaGo/AaNRPTKFpV8M9xii6g3+CfYCS0b78gU -JyCpZET/LtZ1qmxNYEAZSUNUY9rizLpm5U9EelvZaoErQNV/+QEnWCzI7UiRfD+m -AM/EKXMRNt6GGT6d7hmKG9Ww7Y49nCrADdg9ZuM8Db3VlFzi4qc1GwQA9j9ajepD -vV+JHanBsMyZ4k0ACtrJJ1vnE5Bc5PUzolVt3OAJTS+xJlsndQAJxGJ3KQhfnlms -tn6tn1QwIgPBHnFk/vk4CpYY3QIUrCPLBhwepH2NDd4nQeit2hW3sCPdK6jT2iWH -7ehVRE2I9DZ+hJp4rPcOVkkO1jMl1oRQQmwgEh0q1b688nCBpHBgvgW1m54ERL5h -I6zppSSMEYCUWqKiuUnSwdzRp+0xESyeGabu4VXhwOrPDYTkF7eifKXeVSUG7szA -h1xA2syVP1XgNce4hL60Xc16gwFy7ofmXx2utYXGJt/mwZrpHgJHnyqobalbz+xF -d3+YJ5oyXSrjhO7FmGYvliAd3djDJ9ew+f7Zfc3Qn48LFFhRny+Lwzgt3uiP1o2H -pPVWQxaZLPSkVrQ0uGE3ycJYgBugl6H8WY3pEfbRD0tVNEYqi4Y7 ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIFtTCCA52gAwIBAgIIYY3HhjsBggUwDQYJKoZIhvcNAQEFBQAwRDEWMBQGA1UE -AwwNQUNFRElDT00gUm9vdDEMMAoGA1UECwwDUEtJMQ8wDQYDVQQKDAZFRElDT00x -CzAJBgNVBAYTAkVTMB4XDTA4MDQxODE2MjQyMloXDTI4MDQxMzE2MjQyMlowRDEW -MBQGA1UEAwwNQUNFRElDT00gUm9vdDEMMAoGA1UECwwDUEtJMQ8wDQYDVQQKDAZF -RElDT00xCzAJBgNVBAYTAkVTMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC -AgEA/5KV4WgGdrQsyFhIyv2AVClVYyT/kGWbEHV7w2rbYgIB8hiGtXxaOLHkWLn7 -09gtn70yN78sFW2+tfQh0hOR2QetAQXW8713zl9CgQr5auODAKgrLlUTY4HKRxx7 -XBZXehuDYAQ6PmXDzQHe3qTWDLqO3tkE7hdWIpuPY/1NFgu3e3eM+SW10W2ZEi5P -Grjm6gSSrj0RuVFCPYewMYWveVqc/udOXpJPQ/yrOq2lEiZmueIM15jO1FillUAK -t0SdE3QrwqXrIhWYENiLxQSfHY9g5QYbm8+5eaA9oiM/Qj9r+hwDezCNzmzAv+Yb -X79nuIQZ1RXve8uQNjFiybwCq0Zfm/4aaJQ0PZCOrfbkHQl/Sog4P75n/TSW9R28 -MHTLOO7VbKvU/PQAtwBbhTIWdjPp2KOZnQUAqhbm84F9b32qhm2tFXTTxKJxqvQU -fecyuB+81fFOvW8XAjnXDpVCOscAPukmYxHqC9FK/xidstd7LzrZlvvoHpKuE1XI -2Sf23EgbsCTBheN3nZqk8wwRHQ3ItBTutYJXCb8gWH8vIiPYcMt5bMlL8qkqyPyH -K9caUPgn6C9D4zq92Fdx/c6mUlv53U3t5fZvie27k5x2IXXwkkwp9y+cAS7+UEae -ZAwUswdbxcJzbPEHXEUkFDWug/FqTYl6+rPYLWbwNof1K1MCAwEAAaOBqjCBpzAP -BgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFKaz4SsrSbbXc6GqlPUB53NlTKxQ -MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUprPhKytJttdzoaqU9QHnc2VMrFAw -RAYDVR0gBD0wOzA5BgRVHSAAMDEwLwYIKwYBBQUHAgEWI2h0dHA6Ly9hY2VkaWNv -bS5lZGljb21ncm91cC5jb20vZG9jMA0GCSqGSIb3DQEBBQUAA4ICAQDOLAtSUWIm -fQwng4/F9tqgaHtPkl7qpHMyEVNEskTLnewPeUKzEKbHDZ3Ltvo/Onzqv4hTGzz3 -gvoFNTPhNahXwOf9jU8/kzJPeGYDdwdY6ZXIfj7QeQCM8htRM5u8lOk6e25SLTKe -I6RF+7YuE7CLGLHdztUdp0J/Vb77W7tH1PwkzQSulgUV1qzOMPPKC8W64iLgpq0i -5ALudBF/TP94HTXa5gI06xgSYXcGCRZj6hitoocf8seACQl1ThCojz2GuHURwCRi -ipZ7SkXp7FnFvmuD5uHorLUwHv4FB4D54SMNUI8FmP8sX+g7tq3PgbUhh8oIKiMn -MCArz+2UW6yyetLHKKGKC5tNSixthT8Jcjxn4tncB7rrZXtaAWPWkFtPF2Y9fwsZ -o5NjEFIqnxQWWOLcpfShFosOkYuByptZ+thrkQdlVV9SH686+5DdaaVbnG0OLLb6 -zqylfDJKZ0DcMDQj3dcEI2bw/FWAp/tmGYI1Z2JwOV5vx+qQQEQIHriy1tvuWacN -GHk0vFQYXlPKNFHtRQrmjseCNj6nOGOpMCwXEGCSn1WHElkQwg9naRHMTh5+Spqt -r0CodaxWkHS4oJyleW/c6RrIaQXpuvoDs3zk4E7Czp3otkYNbn5XOmeUwssfnHdK -Z05phkOTOPu220+DkdRgfks+KzgHVZhepA== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIGZjCCBE6gAwIBAgIPB35Sk3vgFeNX8GmMy+wMMA0GCSqGSIb3DQEBBQUAMHsx -CzAJBgNVBAYTAkNPMUcwRQYDVQQKDD5Tb2NpZWRhZCBDYW1lcmFsIGRlIENlcnRp -ZmljYWNpw7NuIERpZ2l0YWwgLSBDZXJ0aWPDoW1hcmEgUy5BLjEjMCEGA1UEAwwa -QUMgUmHDrXogQ2VydGljw6FtYXJhIFMuQS4wHhcNMDYxMTI3MjA0NjI5WhcNMzAw -NDAyMjE0MjAyWjB7MQswCQYDVQQGEwJDTzFHMEUGA1UECgw+U29jaWVkYWQgQ2Ft -ZXJhbCBkZSBDZXJ0aWZpY2FjacOzbiBEaWdpdGFsIC0gQ2VydGljw6FtYXJhIFMu -QS4xIzAhBgNVBAMMGkFDIFJhw616IENlcnRpY8OhbWFyYSBTLkEuMIICIjANBgkq -hkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAq2uJo1PMSCMI+8PPUZYILrgIem08kBeG -qentLhM0R7LQcNzJPNCNyu5LF6vQhbCnIwTLqKL85XXbQMpiiY9QngE9JlsYhBzL -fDe3fezTf3MZsGqy2IiKLUV0qPezuMDU2s0iiXRNWhU5cxh0T7XrmafBHoi0wpOQ -Y5fzp6cSsgkiBzPZkc0OnB8OIMfuuzONj8LSWKdf/WU34ojC2I+GdV75LaeHM/J4 -Ny+LvB2GNzmxlPLYvEqcgxhaBvzz1NS6jBUJJfD5to0EfhcSM2tXSExP2yYe68yQ -54v5aHxwD6Mq0Do43zeX4lvegGHTgNiRg0JaTASJaBE8rF9ogEHMYELODVoqDA+b -MMCm8Ibbq0nXl21Ii/kDwFJnmxL3wvIumGVC2daa49AZMQyth9VXAnow6IYm+48j -ilSH5L887uvDdUhfHjlvgWJsxS3EF1QZtzeNnDeRyPYL1epjb4OsOMLzP96a++Ej -YfDIJss2yKHzMI+ko6Kh3VOz3vCaMh+DkXkwwakfU5tTohVTP92dsxA7SH2JD/zt -A/X7JWR1DhcZDY8AFmd5ekD8LVkH2ZD6mq093ICK5lw1omdMEWux+IBkAC1vImHF -rEsm5VoQgpukg3s0956JkSCXjrdCx2bD0Omk1vUgjcTDlaxECp1bczwmPS9KvqfJ -pxAe+59QafMCAwEAAaOB5jCB4zAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQE -AwIBBjAdBgNVHQ4EFgQU0QnQ6dfOeXRU+Tows/RtLAMDG2gwgaAGA1UdIASBmDCB -lTCBkgYEVR0gADCBiTArBggrBgEFBQcCARYfaHR0cDovL3d3dy5jZXJ0aWNhbWFy -YS5jb20vZHBjLzBaBggrBgEFBQcCAjBOGkxMaW1pdGFjaW9uZXMgZGUgZ2FyYW50 -7WFzIGRlIGVzdGUgY2VydGlmaWNhZG8gc2UgcHVlZGVuIGVuY29udHJhciBlbiBs -YSBEUEMuMA0GCSqGSIb3DQEBBQUAA4ICAQBclLW4RZFNjmEfAygPU3zmpFmps4p6 -xbD/CHwso3EcIRNnoZUSQDWDg4902zNc8El2CoFS3UnUmjIz75uny3XlesuXEpBc -unvFm9+7OSPI/5jOCk0iAUgHforA1SBClETvv3eiiWdIG0ADBaGJ7M9i4z0ldma/ -Jre7Ir5v/zlXdLp6yQGVwZVR6Kss+LGGIOk/yzVb0hfpKv6DExdA7ohiZVvVO2Dp -ezy4ydV/NgIlqmjCMRW3MGXrfx1IebHPOeJCgBbT9ZMj/EyXyVo3bHwi2ErN0o42 -gzmRkBDI8ck1fj+404HGIGQatlDCIaR43NAvO2STdPCWkPHv+wlaNECW8DYSwaN0 -jJN+Qd53i+yG2dIPPy3RzECiiWZIHiCznCNZc6lEc7wkeZBWN7PGKX6jD/EpOe9+ -XCgycDWs2rjIdWb8m0w5R44bb5tNAlQiM+9hup4phO9OSzNHdpdqy35f/RWmnkJD -W2ZaiogN9xa5P1FlK2Zqi9E4UqLWRhH6/JocdJ6PlwsCT2TG9WjTSy3/pDceiz+/ -RL5hRqGEPQgnTIEgd4kI6mdAXmwIUV80WoyWaM3X94nCHNMyAK9Sy9NgWyo6R35r -MDOhYil/SrnhLecUIw4OGEfhefwVVdCx/CVxY3UzHCMrr1zZ7Ud3YA47Dx7SwNxk -BYn8eNZcLCZDqQ== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIFuzCCA6OgAwIBAgIIVwoRl0LE48wwDQYJKoZIhvcNAQELBQAwazELMAkGA1UE -BhMCSVQxDjAMBgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlzIFMucC5BLi8w -MzM1ODUyMDk2NzEnMCUGA1UEAwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290 -IENBMB4XDTExMDkyMjExMjIwMloXDTMwMDkyMjExMjIwMlowazELMAkGA1UEBhMC -SVQxDjAMBgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlzIFMucC5BLi8wMzM1 -ODUyMDk2NzEnMCUGA1UEAwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290IENB -MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAp8bEpSmkLO/lGMWwUKNv -UTufClrJwkg4CsIcoBh/kbWHuUA/3R1oHwiD1S0eiKD4j1aPbZkCkpAW1V8IbInX -4ay8IMKx4INRimlNAJZaby/ARH6jDuSRzVju3PvHHkVH3Se5CAGfpiEd9UEtL0z9 -KK3giq0itFZljoZUj5NDKd45RnijMCO6zfB9E1fAXdKDa0hMxKufgFpbOr3JpyI/ -gCczWw63igxdBzcIy2zSekciRDXFzMwujt0q7bd9Zg1fYVEiVRvjRuPjPdA1Yprb -rxTIW6HMiRvhMCb8oJsfgadHHwTrozmSBp+Z07/T6k9QnBn+locePGX2oxgkg4YQ -51Q+qDp2JE+BIcXjDwL4k5RHILv+1A7TaLndxHqEguNTVHnd25zS8gebLra8Pu2F -be8lEfKXGkJh90qX6IuxEAf6ZYGyojnP9zz/GPvG8VqLWeICrHuS0E4UT1lF9gxe -KF+w6D9Fz8+vm2/7hNN3WpVvrJSEnu68wEqPSpP4RCHiMUVhUE4Q2OM1fEwZtN4F -v6MGn8i1zeQf1xcGDXqVdFUNaBr8EBtiZJ1t4JWgw5QHVw0U5r0F+7if5t+L4sbn -fpb2U8WANFAoWPASUHEXMLrmeGO89LKtmyuy/uE5jF66CyCU3nuDuP/jVo23Eek7 -jPKxwV2dpAtMK9myGPW1n0sCAwEAAaNjMGEwHQYDVR0OBBYEFFLYiDrIn3hm7Ynz -ezhwlMkCAjbQMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUUtiIOsifeGbt -ifN7OHCUyQICNtAwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQAL -e3KHwGCmSUyIWOYdiPcUZEim2FgKDk8TNd81HdTtBjHIgT5q1d07GjLukD0R0i70 -jsNjLiNmsGe+b7bAEzlgqqI0JZN1Ut6nna0Oh4lScWoWPBkdg/iaKWW+9D+a2fDz -WochcYBNy+A4mz+7+uAwTc+G02UQGRjRlwKxK3JCaKygvU5a2hi/a5iB0P2avl4V -SM0RFbnAKVy06Ij3Pjaut2L9HmLecHgQHEhb2rykOLpn7VU+Xlff1ANATIGk0k9j -pwlCCRT8AKnCgHNPLsBA2RF7SOp6AsDT6ygBJlh0wcBzIm2Tlf05fbsq4/aC4yyX -X04fkZT6/iyj2HYauE2yOE+b+h1IYHkm4vP9qdCa6HCPSXrW5b0KDtst842/6+Ok -fcvHlXHo2qN8xcL4dJIEG4aspCJTQLas/kx2z/uUMsA1n3Y/buWQbqCmJqK4LL7R -K4X9p2jIugErsWx0Hbhzlefut8cl8ABMALJ+tguLHPPAUJ4lueAI3jZm/zel0btU -ZCzJJ7VLkn5l/9Mt4blOvH+kQSGQQXemOR/qnuOf0GZvBeyqdn6/axag67XH/JJU -LysRJyU3eExRarDzzFhdFPFqSBX/wge2sY0PjlxQRrM9vwGYT7JZVEc+NHt4bVaT -LnPqZih4zR0Uv6CPLy64Lo7yFIrM6bV8+2ydDKXhlg== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEU -MBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFs -IFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290 -MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFowbzELMAkGA1UEBhMCU0Ux -FDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRUcnVzdCBFeHRlcm5h -bCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0EgUm9v -dDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvt -H7xsD821+iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9 -uMq/NzgtHj6RQa1wVsfwTz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzX -mk6vBbOmcZSccbNQYArHE504B4YCqOmoaSYYkKtMsE8jqzpPhNjfzp/haW+710LX -a0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy2xSoRcRdKn23tNbE7qzN -E0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv77+ldU9U0 -WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYD -VR0PBAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0 -Jvf6xCZU7wO94CTLVBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRU -cnVzdCBBQjEmMCQGA1UECxMdQWRkVHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsx -IjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENBIFJvb3SCAQEwDQYJKoZIhvcN -AQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZlj7DYd7usQWxH -YINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5 -6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvC -Nr4TDea9Y355e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEX -c4g/VhsxOBi0cQ+azcgOno4uG+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5a -mnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIEGDCCAwCgAwIBAgIBATANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQGEwJTRTEU -MBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3 -b3JrMSEwHwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3QwHhcNMDAwNTMw -MTAzODMxWhcNMjAwNTMwMTAzODMxWjBlMQswCQYDVQQGEwJTRTEUMBIGA1UEChML -QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSEwHwYD -VQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3QwggEiMA0GCSqGSIb3DQEBAQUA -A4IBDwAwggEKAoIBAQCWltQhSWDia+hBBwzexODcEyPNwTXH+9ZOEQpnXvUGW2ul -CDtbKRY654eyNAbFvAWlA3yCyykQruGIgb3WntP+LVbBFc7jJp0VLhD7Bo8wBN6n -tGO0/7Gcrjyvd7ZWxbWroulpOj0OM3kyP3CCkplhbY0wCI9xP6ZIVxn4JdxLZlyl -dI+Yrsj5wAYi56xz36Uu+1LcsRVlIPo1Zmne3yzxbrww2ywkEtvrNTVokMsAsJch -PXQhI2U0K7t4WaPW4XY5mqRJjox0r26kmqPZm9I4XJuiGMx1I4S+6+JNM3GOGvDC -+Mcdoq0Dlyz4zyXG9rgkMbFjXZJ/Y/AlyVMuH79NAgMBAAGjgdIwgc8wHQYDVR0O -BBYEFJWxtPCUtr3H2tERCSG+wa9J/RB7MAsGA1UdDwQEAwIBBjAPBgNVHRMBAf8E -BTADAQH/MIGPBgNVHSMEgYcwgYSAFJWxtPCUtr3H2tERCSG+wa9J/RB7oWmkZzBl -MQswCQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFk -ZFRydXN0IFRUUCBOZXR3b3JrMSEwHwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENB -IFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBACxtZBsfzQ3duQH6lmM0MkhHma6X -7f1yFqZzR1r0693p9db7RcwpiURdv0Y5PejuvE1Uhh4dbOMXJ0PhiVYrqW9yTkkz -43J8KiOavD7/KCrto/8cI7pDVwlnTUtiBi34/2ydYB7YHEt9tTEv2dB8Xfjea4MY -eDdXL+gzB2ffHsdrKpV2ro9Xo/D0UrSpUwjP4E/TelOL/bscVjby/rK25Xa71SJl -pz/+0WatC7xrmYbvP33zGDLKe8bjq2RGlfgmadlVg3sslgf/WSxEo8bl6ancoWOA -WiFeIc9TVPC6b4nbqKqVz4vjccweGyBECMB6tkD9xOQ14R0WHNC8K47Wcdk= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIEFTCCAv2gAwIBAgIBATANBgkqhkiG9w0BAQUFADBkMQswCQYDVQQGEwJTRTEU -MBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3 -b3JrMSAwHgYDVQQDExdBZGRUcnVzdCBQdWJsaWMgQ0EgUm9vdDAeFw0wMDA1MzAx -MDQxNTBaFw0yMDA1MzAxMDQxNTBaMGQxCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtB -ZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQIE5ldHdvcmsxIDAeBgNV -BAMTF0FkZFRydXN0IFB1YmxpYyBDQSBSb290MIIBIjANBgkqhkiG9w0BAQEFAAOC -AQ8AMIIBCgKCAQEA6Rowj4OIFMEg2Dybjxt+A3S72mnTRqX4jsIMEZBRpS9mVEBV -6tsfSlbunyNu9DnLoblv8n75XYcmYZ4c+OLspoH4IcUkzBEMP9smcnrHAZcHF/nX -GCwwfQ56HmIexkvA/X1id9NEHif2P0tEs7c42TkfYNVRknMDtABp4/MUTu7R3AnP -dzRGULD4EfL+OHn3Bzn+UZKXC1sIXzSGAa2Il+tmzV7R/9x98oTaunet3IAIx6eH -1lWfl2royBFkuucZKT8Rs3iQhCBSWxHveNCD9tVIkNAwHM+A+WD+eeSI8t0A65RF -62WUaUC6wNW0uLp9BBGo6zEFlpROWCGOn9Bg/QIDAQABo4HRMIHOMB0GA1UdDgQW -BBSBPjfYkrAfd59ctKtzquf2NGAv+jALBgNVHQ8EBAMCAQYwDwYDVR0TAQH/BAUw -AwEB/zCBjgYDVR0jBIGGMIGDgBSBPjfYkrAfd59ctKtzquf2NGAv+qFopGYwZDEL -MAkGA1UEBhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQLExRBZGRU -cnVzdCBUVFAgTmV0d29yazEgMB4GA1UEAxMXQWRkVHJ1c3QgUHVibGljIENBIFJv -b3SCAQEwDQYJKoZIhvcNAQEFBQADggEBAAP3FUr4JNojVhaTdt02KLmuG7jD8WS6 -IBh4lSknVwW8fCr0uVFV2ocC3g8WFzH4qnkuCRO7r7IgGRLlk/lL+YPoRNWyQSW/ -iHVv/xD8SlTQX/D67zZzfRs2RcYhbbQVuE7PnFylPVoAjgbjPGsye/Kf8Lb93/Ao -GEjwxrzQvzSAlsJKsW2Ox5BF3i9nrEUEo3rcVZLJR2bYGozH7ZxOmuASu7VqTITh -4SINhwBk/ox9Yjllpu9CtoAlEmEBqCQTcAARJl/6NVDFSMwGR+gn2HCNX2TmoUQm -XiLsks3/QppEIW1cxeMiHV9HEufOX1362KqxMy3ZdvJOOjMMK7MtkAY= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIEHjCCAwagAwIBAgIBATANBgkqhkiG9w0BAQUFADBnMQswCQYDVQQGEwJTRTEU -MBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3 -b3JrMSMwIQYDVQQDExpBZGRUcnVzdCBRdWFsaWZpZWQgQ0EgUm9vdDAeFw0wMDA1 -MzAxMDQ0NTBaFw0yMDA1MzAxMDQ0NTBaMGcxCzAJBgNVBAYTAlNFMRQwEgYDVQQK -EwtBZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQIE5ldHdvcmsxIzAh -BgNVBAMTGkFkZFRydXN0IFF1YWxpZmllZCBDQSBSb290MIIBIjANBgkqhkiG9w0B -AQEFAAOCAQ8AMIIBCgKCAQEA5B6a/twJWoekn0e+EV+vhDTbYjx5eLfpMLXsDBwq -xBb/4Oxx64r1EW7tTw2R0hIYLUkVAcKkIhPHEWT/IhKauY5cLwjPcWqzZwFZ8V1G -87B4pfYOQnrjfxvM0PC3KP0q6p6zsLkEqv32x7SxuCqg+1jxGaBvcCV+PmlKfw8i -2O+tCBGaKZnhqkRFmhJePp1tUvznoD1oL/BLcHwTOK28FSXx1s6rosAx1i+f4P8U -WfyEk9mHfExUE+uf0S0R+Bg6Ot4l2ffTQO2kBhLEO+GRwVY18BTcZTYJbqukB8c1 -0cIDMzZbdSZtQvESa0NvS3GU+jQd7RNuyoB/mC9suWXY6QIDAQABo4HUMIHRMB0G -A1UdDgQWBBQ5lYtii1zJ1IC6WA+XPxUIQ8yYpzALBgNVHQ8EBAMCAQYwDwYDVR0T -AQH/BAUwAwEB/zCBkQYDVR0jBIGJMIGGgBQ5lYtii1zJ1IC6WA+XPxUIQ8yYp6Fr -pGkwZzELMAkGA1UEBhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQL -ExRBZGRUcnVzdCBUVFAgTmV0d29yazEjMCEGA1UEAxMaQWRkVHJ1c3QgUXVhbGlm -aWVkIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBABmrder4i2VhlRO6aQTv -hsoToMeqT2QbPxj2qC0sVY8FtzDqQmodwCVRLae/DLPt7wh/bDxGGuoYQ992zPlm -hpwsaPXpF/gxsxjE1kh9I0xowX67ARRvxdlu3rsEQmr49lx95dr6h+sNNVJn0J6X -dgWTP5XHAeZpVTh/EGGZyeNfpso+gmNIquIISD6q8rKFYqa0p9m9N5xotS1WfbC3 -P6CxB9bpT9zeRXEwMn8bLgn5v1Kh7sKAPgZcLlVAwRv1cEWw3F369nJad9Jjzc9Y -iQBCYz95OdBEsIJuQRno3eDBiFrRHnGTHyQwdOUeqN48Jzd/g66ed8/wMLH/S5no -xqE= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDTDCCAjSgAwIBAgIId3cGJyapsXwwDQYJKoZIhvcNAQELBQAwRDELMAkGA1UE -BhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVz -dCBDb21tZXJjaWFsMB4XDTEwMDEyOTE0MDYwNloXDTMwMTIzMTE0MDYwNlowRDEL -MAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZp -cm1UcnVzdCBDb21tZXJjaWFsMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC -AQEA9htPZwcroRX1BiLLHwGy43NFBkRJLLtJJRTWzsO3qyxPxkEylFf6EqdbDuKP -Hx6GGaeqtS25Xw2Kwq+FNXkyLbscYjfysVtKPcrNcV/pQr6U6Mje+SJIZMblq8Yr -ba0F8PrVC8+a5fBQpIs7R6UjW3p6+DM/uO+Zl+MgwdYoic+U+7lF7eNAFxHUdPAL -MeIrJmqbTFeurCA+ukV6BfO9m2kVrn1OIGPENXY6BwLJN/3HR+7o8XYdcxXyl6S1 -yHp52UKqK39c/s4mT6NmgTWvRLpUHhwwMmWd5jyTXlBOeuM61G7MGvv50jeuJCqr -VwMiKA1JdX+3KNp1v47j3A55MQIDAQABo0IwQDAdBgNVHQ4EFgQUnZPGU4teyq8/ -nx4P5ZmVvCT2lI8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwDQYJ -KoZIhvcNAQELBQADggEBAFis9AQOzcAN/wr91LoWXym9e2iZWEnStB03TX8nfUYG -XUPGhi4+c7ImfU+TqbbEKpqrIZcUsd6M06uJFdhrJNTxFq7YpFzUf1GO7RgBsZNj -vbz4YYCanrHOQnDiqX0GJX0nof5v7LMeJNrjS1UaADs1tDvZ110w/YETifLCBivt -Z8SOyUOyXGsViQK8YvxO8rUzqrJv0wqiUOP2O+guRMLbZjipM1ZI8W0bM40NjD9g -N53Tym1+NH4Nn3J2ixufcv1SNUFFApYvHLKac0khsUlHRUe072o0EclNmsxZt9YC -nlpOZbWUrhvfKbAW8b8Angc6F2S1BLUjIZkKlTuXfO8= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDTDCCAjSgAwIBAgIIfE8EORzUmS0wDQYJKoZIhvcNAQEFBQAwRDELMAkGA1UE -BhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVz -dCBOZXR3b3JraW5nMB4XDTEwMDEyOTE0MDgyNFoXDTMwMTIzMTE0MDgyNFowRDEL -MAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZp -cm1UcnVzdCBOZXR3b3JraW5nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC -AQEAtITMMxcua5Rsa2FSoOujz3mUTOWUgJnLVWREZY9nZOIG41w3SfYvm4SEHi3y -YJ0wTsyEheIszx6e/jarM3c1RNg1lho9Nuh6DtjVR6FqaYvZ/Ls6rnla1fTWcbua -kCNrmreIdIcMHl+5ni36q1Mr3Lt2PpNMCAiMHqIjHNRqrSK6mQEubWXLviRmVSRL -QESxG9fhwoXA3hA/Pe24/PHxI1Pcv2WXb9n5QHGNfb2V1M6+oF4nI979ptAmDgAp -6zxG8D1gvz9Q0twmQVGeFDdCBKNwV6gbh+0t+nvujArjqWaJGctB+d1ENmHP4ndG -yH329JKBNv3bNPFyfvMMFr20FQIDAQABo0IwQDAdBgNVHQ4EFgQUBx/S55zawm6i -QLSwelAQUHTEyL0wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwDQYJ -KoZIhvcNAQEFBQADggEBAIlXshZ6qML91tmbmzTCnLQyFE2npN/svqe++EPbkTfO -tDIuUFUaNU52Q3Eg75N3ThVwLofDwR1t3Mu1J9QsVtFSUzpE0nPIxBsFZVpikpzu -QY0x2+c06lkh1QF612S4ZDnNye2v7UsDSKegmQGA3GWjNq5lWUhPgkvIZfFXHeVZ -Lgo/bNjR9eUJtGxUAArgFU2HdW23WJZa3W3SAKD0m0i+wzekujbgfIeFlxoVot4u -olu9rxj5kFDNcFn4J2dHy8egBzp90SxdbBk6ZrV9/ZFvgrG+CJPbFEfxojfHRZ48 -x3evZKiT3/Zpg4Jg8klCNO1aAFSFHBY2kgxc+qatv9s= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIFRjCCAy6gAwIBAgIIbYwURrGmCu4wDQYJKoZIhvcNAQEMBQAwQTELMAkGA1UE -BhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVz -dCBQcmVtaXVtMB4XDTEwMDEyOTE0MTAzNloXDTQwMTIzMTE0MTAzNlowQTELMAkG -A1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MRwwGgYDVQQDDBNBZmZpcm1U -cnVzdCBQcmVtaXVtMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAxBLf -qV/+Qd3d9Z+K4/as4Tx4mrzY8H96oDMq3I0gW64tb+eT2TZwamjPjlGjhVtnBKAQ -JG9dKILBl1fYSCkTtuG+kU3fhQxTGJoeJKJPj/CihQvL9Cl/0qRY7iZNyaqoe5rZ -+jjeRFcV5fiMyNlI4g0WJx0eyIOFJbe6qlVBzAMiSy2RjYvmia9mx+n/K+k8rNrS -s8PhaJyJ+HoAVt70VZVs+7pk3WKL3wt3MutizCaam7uqYoNMtAZ6MMgpv+0GTZe5 -HMQxK9VfvFMSF5yZVylmd2EhMQcuJUmdGPLu8ytxjLW6OQdJd/zvLpKQBY0tL3d7 -70O/Nbua2Plzpyzy0FfuKE4mX4+QaAkvuPjcBukumj5Rp9EixAqnOEhss/n/fauG -V+O61oV4d7pD6kh/9ti+I20ev9E2bFhc8e6kGVQa9QPSdubhjL08s9NIS+LI+H+S -qHZGnEJlPqQewQcDWkYtuJfzt9WyVSHvutxMAJf7FJUnM7/oQ0dG0giZFmA7mn7S -5u046uwBHjxIVkkJx0w3AJ6IDsBz4W9m6XJHMD4Q5QsDyZpCAGzFlH5hxIrff4Ia -C1nEWTJ3s7xgaVY5/bQGeyzWZDbZvUjthB9+pSKPKrhC9IK31FOQeE4tGv2Bb0TX -OwF0lkLgAOIua+rF7nKsu7/+6qqo+Nz2snmKtmcCAwEAAaNCMEAwHQYDVR0OBBYE -FJ3AZ6YMItkm9UWrpmVSESfYRaxjMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/ -BAQDAgEGMA0GCSqGSIb3DQEBDAUAA4ICAQCzV00QYk465KzquByvMiPIs0laUZx2 -KI15qldGF9X1Uva3ROgIRL8YhNILgM3FEv0AVQVhh0HctSSePMTYyPtwni94loMg -Nt58D2kTiKV1NpgIpsbfrM7jWNa3Pt668+s0QNiigfV4Py/VpfzZotReBA4Xrf5B -8OWycvpEgjNC6C1Y91aMYj+6QrCcDFx+LmUmXFNPALJ4fqENmS2NuB2OosSw/WDQ -MKSOyARiqcTtNd56l+0OOF6SL5Nwpamcb6d9Ex1+xghIsV5n61EIJenmJWtSKZGc -0jlzCFfemQa0W50QBuHCAKi4HEoCChTQwUHK+4w1IX2COPKpVJEZNZOUbWo6xbLQ -u4mGk+ibyQ86p3q4ofB4Rvr8Ny/lioTz3/4E2aFooC8k4gmVBtWVyuEklut89pMF -u+1z6S3RdTnX5yTb2E5fQ4+e0BQ5v1VwSJlXMbSc7kqYA5YwH2AG7hsj/oFgIxpH -YoWlzBk0gG+zrBrjn/B7SK3VAdlntqlyk+otZrWyuOQ9PLLvTIzq6we/qzWaVYa8 -GKa1qF60g2xraUDTn9zxw2lrueFtCfTxqlB2Cnp9ehehVZZCmTEJ3WARjQUwfuaO -RtGdFNrHF+QFlozEJLUbzxQHskD4o55BhrwE0GuWyCqANP2/7waj3VjFhT0+j/6e -KeC2uAloGRwYQw== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIB/jCCAYWgAwIBAgIIdJclisc/elQwCgYIKoZIzj0EAwMwRTELMAkGA1UEBhMC -VVMxFDASBgNVBAoMC0FmZmlybVRydXN0MSAwHgYDVQQDDBdBZmZpcm1UcnVzdCBQ -cmVtaXVtIEVDQzAeFw0xMDAxMjkxNDIwMjRaFw00MDEyMzExNDIwMjRaMEUxCzAJ -BgNVBAYTAlVTMRQwEgYDVQQKDAtBZmZpcm1UcnVzdDEgMB4GA1UEAwwXQWZmaXJt -VHJ1c3QgUHJlbWl1bSBFQ0MwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQNMF4bFZ0D -0KF5Nbc6PJJ6yhUczWLznCZcBz3lVPqj1swS6vQUX+iOGasvLkjmrBhDeKzQN8O9 -ss0s5kfiGuZjuD0uL3jET9v0D6RoTFVya5UdThhClXjMNzyR4ptlKymjQjBAMB0G -A1UdDgQWBBSaryl6wBE1NSZRMADDav5A1a7WPDAPBgNVHRMBAf8EBTADAQH/MA4G -A1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAwNnADBkAjAXCfOHiFBar8jAQr9HX/Vs -aobgxCd05DhT1wV/GzTjxi+zygk8N53X57hG8f2h4nECMEJZh0PUUd+60wkyWs6I -flc9nF9Ca/UHLbXwgpP5WW+uZPpY5Yse42O+tYHNbwKMeQ== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDoDCCAoigAwIBAgIBMTANBgkqhkiG9w0BAQUFADBDMQswCQYDVQQGEwJKUDEc -MBoGA1UEChMTSmFwYW5lc2UgR292ZXJubWVudDEWMBQGA1UECxMNQXBwbGljYXRp -b25DQTAeFw0wNzEyMTIxNTAwMDBaFw0xNzEyMTIxNTAwMDBaMEMxCzAJBgNVBAYT -AkpQMRwwGgYDVQQKExNKYXBhbmVzZSBHb3Zlcm5tZW50MRYwFAYDVQQLEw1BcHBs -aWNhdGlvbkNBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAp23gdE6H -j6UG3mii24aZS2QNcfAKBZuOquHMLtJqO8F6tJdhjYq+xpqcBrSGUeQ3DnR4fl+K -f5Sk10cI/VBaVuRorChzoHvpfxiSQE8tnfWuREhzNgaeZCw7NCPbXCbkcXmP1G55 -IrmTwcrNwVbtiGrXoDkhBFcsovW8R0FPXjQilbUfKW1eSvNNcr5BViCH/OlQR9cw -FO5cjFW6WY2H/CPek9AEjP3vbb3QesmlOmpyM8ZKDQUXKi17safY1vC+9D/qDiht -QWEjdnjDuGWk81quzMKq2edY3rZ+nYVunyoKb58DKTCXKB28t89UKU5RMfkntigm -/qJj5kEW8DOYRwIDAQABo4GeMIGbMB0GA1UdDgQWBBRUWssmP3HMlEYNllPqa0jQ -k/5CdTAOBgNVHQ8BAf8EBAMCAQYwWQYDVR0RBFIwUKROMEwxCzAJBgNVBAYTAkpQ -MRgwFgYDVQQKDA/ml6XmnKzlm73mlL/lupwxIzAhBgNVBAsMGuOCouODl+ODquOC -seODvOOCt+ODp+ODs0NBMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQAD -ggEBADlqRHZ3ODrso2dGD/mLBqj7apAxzn7s2tGJfHrrLgy9mTLnsCTWw//1sogJ -hyzjVOGjprIIC8CFqMjSnHH2HZ9g/DgzE+Ge3Atf2hZQKXsvcJEPmbo0NI2VdMV+ -eKlmXb3KIXdCEKxmJj3ekav9FfBv7WxfEPjzFvYDio+nEhEMy/0/ecGc/WLuo89U -DNErXxc+4z6/wCs+CZv+iKZ+tJIX/COUgb1up8WMwusRRdv4QcmWdupwX3kSa+Sj -B1oF7ydJzyGfikwJcGapJsErEU4z0g781mzSDjJkaP+tBXhfAx2o45CsJOAPQKdL -rosot4LKGAfmt1t06SAZf7IbiVQ= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDdzCCAl+gAwIBAgIIXDPLYixfszIwDQYJKoZIhvcNAQELBQAwPDEeMBwGA1UE -AwwVQXRvcyBUcnVzdGVkUm9vdCAyMDExMQ0wCwYDVQQKDARBdG9zMQswCQYDVQQG -EwJERTAeFw0xMTA3MDcxNDU4MzBaFw0zMDEyMzEyMzU5NTlaMDwxHjAcBgNVBAMM -FUF0b3MgVHJ1c3RlZFJvb3QgMjAxMTENMAsGA1UECgwEQXRvczELMAkGA1UEBhMC -REUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCVhTuXbyo7LjvPpvMp -Nb7PGKw+qtn4TaA+Gke5vJrf8v7MPkfoepbCJI419KkM/IL9bcFyYie96mvr54rM -VD6QUM+A1JX76LWC1BTFtqlVJVfbsVD2sGBkWXppzwO3bw2+yj5vdHLqqjAqc2K+ -SZFhyBH+DgMq92og3AIVDV4VavzjgsG1xZ1kCWyjWZgHJ8cblithdHFsQ/H3NYkQ -4J7sVaE3IqKHBAUsR320HLliKWYoyrfhk/WklAOZuXCFteZI6o1Q/NnezG8HDt0L -cp2AMBYHlT8oDv3FdU9T1nSatCQujgKRz3bFmx5VdJx4IbHwLfELn8LVlhgf8FQi -eowHAgMBAAGjfTB7MB0GA1UdDgQWBBSnpQaxLKYJYO7Rl+lwrrw7GWzbITAPBgNV -HRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFKelBrEspglg7tGX6XCuvDsZbNshMBgG -A1UdIAQRMA8wDQYLKwYBBAGwLQMEAQEwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3 -DQEBCwUAA4IBAQAmdzTblEiGKkGdLD4GkGDEjKwLVLgfuXvTBznk+j57sj1O7Z8j -vZfza1zv7v1Apt+hk6EKhqzvINB5Ab149xnYJDE0BAGmuhWawyfc2E8PzBhj/5kP -DpFrdRbhIfzYJsdHt6bPWHJxfrrhTZVHO8mvbaG0weyJ9rQPOLXiZNwlz6bb65pc -maHFCN795trV1lpFDMS3wrUU77QR/w4VtfX128a961qn8FYiqTxlVMYVqL2Gns2D -lmh6cYGJ4Qvh6hEbaAjMaZ7snkGeRDImeuKHCnE96+RapNLbxc3G3mB/ufNPRJLv -KrcYPqcZ2Qt9sTdBQrC6YB3y/gkRsPCHe6ed ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIGFDCCA/ygAwIBAgIIU+w77vuySF8wDQYJKoZIhvcNAQEFBQAwUTELMAkGA1UE -BhMCRVMxQjBABgNVBAMMOUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1h -cHJvZmVzaW9uYWwgQ0lGIEE2MjYzNDA2ODAeFw0wOTA1MjAwODM4MTVaFw0zMDEy -MzEwODM4MTVaMFExCzAJBgNVBAYTAkVTMUIwQAYDVQQDDDlBdXRvcmlkYWQgZGUg -Q2VydGlmaWNhY2lvbiBGaXJtYXByb2Zlc2lvbmFsIENJRiBBNjI2MzQwNjgwggIi -MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKlmuO6vj78aI14H9M2uDDUtd9 -thDIAl6zQyrET2qyyhxdKJp4ERppWVevtSBC5IsP5t9bpgOSL/UR5GLXMnE42QQM -cas9UX4PB99jBVzpv5RvwSmCwLTaUbDBPLutN0pcyvFLNg4kq7/DhHf9qFD0sefG -L9ItWY16Ck6WaVICqjaY7Pz6FIMMNx/Jkjd/14Et5cS54D40/mf0PmbR0/RAz15i -NA9wBj4gGFrO93IbJWyTdBSTo3OxDqqHECNZXyAFGUftaI6SEspd/NYrspI8IM/h -X68gvqB2f3bl7BqGYTM+53u0P6APjqK5am+5hyZvQWyIplD9amML9ZMWGxmPsu2b -m8mQ9QEM3xk9Dz44I8kvjwzRAv4bVdZO0I08r0+k8/6vKtMFnXkIoctXMbScyJCy -Z/QYFpM6/EfY0XiWMR+6KwxfXZmtY4laJCB22N/9q06mIqqdXuYnin1oKaPnirja -EbsXLZmdEyRG98Xi2J+Of8ePdG1asuhy9azuJBCtLxTa/y2aRnFHvkLfuwHb9H/T -KI8xWVvTyQKmtFLKbpf7Q8UIJm+K9Lv9nyiqDdVF8xM6HdjAeI9BZzwelGSuewvF -6NkBiDkal4ZkQdU7hwxu+g/GvUgUvzlN1J5Bto+WHWOWk9mVBngxaJ43BjuAiUVh -OSPHG0SjFeUc+JIwuwIDAQABo4HvMIHsMBIGA1UdEwEB/wQIMAYBAf8CAQEwDgYD -VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRlzeurNR4APn7VdMActHNHDhpkLzCBpgYD -VR0gBIGeMIGbMIGYBgRVHSAAMIGPMC8GCCsGAQUFBwIBFiNodHRwOi8vd3d3LmZp -cm1hcHJvZmVzaW9uYWwuY29tL2NwczBcBggrBgEFBQcCAjBQHk4AUABhAHMAZQBv -ACAAZABlACAAbABhACAAQgBvAG4AYQBuAG8AdgBhACAANAA3ACAAQgBhAHIAYwBl -AGwAbwBuAGEAIAAwADgAMAAxADcwDQYJKoZIhvcNAQEFBQADggIBABd9oPm03cXF -661LJLWhAqvdpYhKsg9VSytXjDvlMd3+xDLx51tkljYyGOylMnfX40S2wBEqgLk9 -am58m9Ot/MPWo+ZkKXzR4Tgegiv/J2Wv+xYVxC5xhOW1//qkR71kMrv2JYSiJ0L1 -ILDCExARzRAVukKQKtJE4ZYm6zFIEv0q2skGz3QeqUvVhyj5eTSSPi5E6PaPT481 -PyWzOdxjKpBrIF/EUhJOlywqrJ2X3kjyo2bbwtKDlaZmp54lD+kLM5FlClrD2VQS -3a/DTg4fJl4N3LON7NWBcN7STyQF82xO9UxJZo3R/9ILJUFI/lGExkKvgATP0H5k -SeTy36LssUzAKh3ntLFlosS88Zj0qnAHY7S42jtM+kAiMFsRpvAFDsYCA0irhpuF -3dvd6qJ2gHN99ZwExEWN57kci57q13XRcrHedUTnQn3iV2t93Jm8PYMo6oCTjcVM -ZcFwgbg4/EMxsvYDNEeyrPsiBsse3RdHHF9mudMaotoRsaS8I8nkvof/uZS2+F0g -StRf571oe2XyFR7SOqkt6dhrJKyXWERHrVkY8SFlcN7ONGCoQPHzPKTDKCOM/icz -Q0CgFzzr6juwcqajuUpLXhZI9LK8yIySxZ2frHI2vDSANGupi5LAuBft7HZT9SQB -jLMi6Et8Vcad+qMUu2WFbm5PEn4KPJ2V ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJJ -RTESMBAGA1UEChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYD -VQQDExlCYWx0aW1vcmUgQ3liZXJUcnVzdCBSb290MB4XDTAwMDUxMjE4NDYwMFoX -DTI1MDUxMjIzNTkwMFowWjELMAkGA1UEBhMCSUUxEjAQBgNVBAoTCUJhbHRpbW9y -ZTETMBEGA1UECxMKQ3liZXJUcnVzdDEiMCAGA1UEAxMZQmFsdGltb3JlIEN5YmVy -VHJ1c3QgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKMEuyKr -mD1X6CZymrV51Cni4eiVgLGw41uOKymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjr -IZ3AQSsBUnuId9Mcj8e6uYi1agnnc+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeK -mpYcqWe4PwzV9/lSEy/CG9VwcPCPwBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSu -XmD+tqYF/LTdB1kC1FkYmGP1pWPgkAx9XbIGevOF6uvUA65ehD5f/xXtabz5OTZy -dc93Uk3zyZAsuT3lySNTPx8kmCFcB5kpvcY67Oduhjprl3RjM71oGDHweI12v/ye -jl0qhqdNkNwnGjkCAwEAAaNFMEMwHQYDVR0OBBYEFOWdWTCCR1jMrPoIVDaGezq1 -BE3wMBIGA1UdEwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3 -DQEBBQUAA4IBAQCFDF2O5G9RaEIFoN27TyclhAO992T9Ldcw46QQF+vaKSm2eT92 -9hkTI7gQCvlYpNRhcL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3Wgx -jkzSswF07r51XgdIGn9w/xZchMB5hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/oCr0 -Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsaY71k5h+3zvDyny67G7fyUIhz -ksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9HRCwBXbsdtTLS -R9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDUzCCAjugAwIBAgIBATANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJOTzEd -MBsGA1UECgwUQnV5cGFzcyBBUy05ODMxNjMzMjcxHTAbBgNVBAMMFEJ1eXBhc3Mg -Q2xhc3MgMiBDQSAxMB4XDTA2MTAxMzEwMjUwOVoXDTE2MTAxMzEwMjUwOVowSzEL -MAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBhc3MgQVMtOTgzMTYzMzI3MR0wGwYD -VQQDDBRCdXlwYXNzIENsYXNzIDIgQ0EgMTCCASIwDQYJKoZIhvcNAQEBBQADggEP -ADCCAQoCggEBAIs8B0XY9t/mx8q6jUPFR42wWsE425KEHK8T1A9vNkYgxC7McXA0 -ojTTNy7Y3Tp3L8DrKehc0rWpkTSHIln+zNvnma+WwajHQN2lFYxuyHyXA8vmIPLX -l18xoS830r7uvqmtqEyeIWZDO6i88wmjONVZJMHCR3axiFyCO7srpgTXjAePzdVB -HfCuuCkslFJgNJQ72uA40Z0zPhX0kzLFANq1KWYOOngPIVJfAuWSeyXTkh4vFZ2B -5J2O6O+JzhRMVB0cgRJNcKi+EAUXfh/RuFdV7c27UsKwHnjCTTZoy1YmwVLBvXb3 -WNVyfh9EdrsAiR0WnVE1703CVu9r4Iw7DekCAwEAAaNCMEAwDwYDVR0TAQH/BAUw -AwEB/zAdBgNVHQ4EFgQUP42aWYv8e3uco684sDntkHGA1sgwDgYDVR0PAQH/BAQD -AgEGMA0GCSqGSIb3DQEBBQUAA4IBAQAVGn4TirnoB6NLJzKyQJHyIdFkhb5jatLP -gcIV1Xp+DCmsNx4cfHZSldq1fyOhKXdlyTKdqC5Wq2B2zha0jX94wNWZUYN/Xtm+ -DKhQ7SLHrQVMdvvt7h5HZPb3J31cKA9FxVxiXqaakZG3Uxcu3K1gnZZkOb1naLKu -BctN518fV4bVIJwo+28TOPX2EZL2fZleHwzoq0QkKXJAPTZSr4xYkHPB7GEseaHs -h7U/2k3ZIQAw3pDaDtMaSKk+hQsUi4y8QZ5q9w5wwDX3OaJdZtB7WZ+oRxKaJyOk -LY4ng5IgodcVf/EuGO70SH8vf/GhGLWhC5SgYiAynB321O+/TIho ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEd -MBsGA1UECgwUQnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3Mg -Q2xhc3MgMiBSb290IENBMB4XDTEwMTAyNjA4MzgwM1oXDTQwMTAyNjA4MzgwM1ow -TjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBhc3MgQVMtOTgzMTYzMzI3MSAw -HgYDVQQDDBdCdXlwYXNzIENsYXNzIDIgUm9vdCBDQTCCAiIwDQYJKoZIhvcNAQEB -BQADggIPADCCAgoCggIBANfHXvfBB9R3+0Mh9PT1aeTuMgHbo4Yf5FkNuud1g1Lr -6hxhFUi7HQfKjK6w3Jad6sNgkoaCKHOcVgb/S2TwDCo3SbXlzwx87vFKu3MwZfPV -L4O2fuPn9Z6rYPnT8Z2SdIrkHJasW4DptfQxh6NR/Md+oW+OU3fUl8FVM5I+GC91 -1K2GScuVr1QGbNgGE41b/+EmGVnAJLqBcXmQRFBoJJRfuLMR8SlBYaNByyM21cHx -MlAQTn/0hpPshNOOvEu/XAFOBz3cFIqUCqTqc/sLUegTBxj6DvEr0VQVfTzh97QZ -QmdiXnfgolXsttlpF9U6r0TtSsWe5HonfOV116rLJeffawrbD02TTqigzXsu8lkB -arcNuAeBfos4GzjmCleZPe4h6KP1DBbdi+w0jpwqHAAVF41og9JwnxgIzRFo1clr -Us3ERo/ctfPYV3Me6ZQ5BL/T3jjetFPsaRyifsSP5BtwrfKi+fv3FmRmaZ9JUaLi -FRhnBkp/1Wy1TbMz4GHrXb7pmA8y1x1LPC5aAVKRCfLf6o3YBkBjqhHk/sM3nhRS -P/TizPJhk9H9Z2vXUq6/aKtAQ6BXNVN48FP4YUIHZMbXb5tMOA1jrGKvNouicwoN -9SG9dKpN6nIDSdvHXx1iY8f93ZHsM+71bbRuMGjeyNYmsHVee7QHIJihdjK4TWxP -AgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFMmAd+BikoL1Rpzz -uvdMw964o605MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAU18h -9bqwOlI5LJKwbADJ784g7wbylp7ppHR/ehb8t/W2+xUbP6umwHJdELFx7rxP462s -A20ucS6vxOOto70MEae0/0qyexAQH6dXQbLArvQsWdZHEIjzIVEpMMpghq9Gqx3t -OluwlN5E40EIosHsHdb9T7bWR9AUC8rmyrV7d35BH16Dx7aMOZawP5aBQW9gkOLo -+fsicdl9sz1Gv7SEr5AcD48Saq/v7h56rgJKihcrdv6sVIkkLE8/trKnToyokZf7 -KcZ7XC25y2a2t6hbElGFtQl+Ynhw/qlqYLYdDnkM/crqJIByw5c/8nerQyIKx+u2 -DISCLIBrQYoIwOula9+ZEsuK1V6ADJHgJgg2SMX6OBE1/yWDLfJ6v9r9jv6ly0Us -H8SIU653DtmadsWOLB2jutXsMq7Aqqz30XpN69QH4kj3Io6wpJ9qzo6ysmD0oyLQ -I+uUWnpp3Q+/QFesa1lQ2aOZ4W7+jQF5JyMV3pKdewlNWudLSDBaGOYKbeaP4NK7 -5t98biGCwWg5TbSYWGZizEqQXsP6JwSxeRV0mcy+rSDeJmAc61ZRpqPq5KM/p/9h -3PFaTWwyI0PurKju7koSCTxdccK+efrCh2gdC/1cacwG0Jp9VJkqyTkaGa9LKkPz -Y11aWOIv4x3kqdbQCtCev9eBCfHJxyYNrJgWVqA= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEd -MBsGA1UECgwUQnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3Mg -Q2xhc3MgMyBSb290IENBMB4XDTEwMTAyNjA4Mjg1OFoXDTQwMTAyNjA4Mjg1OFow -TjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBhc3MgQVMtOTgzMTYzMzI3MSAw -HgYDVQQDDBdCdXlwYXNzIENsYXNzIDMgUm9vdCBDQTCCAiIwDQYJKoZIhvcNAQEB -BQADggIPADCCAgoCggIBAKXaCpUWUOOV8l6ddjEGMnqb8RB2uACatVI2zSRHsJ8Y -ZLya9vrVediQYkwiL944PdbgqOkcLNt4EemOaFEVcsfzM4fkoF0LXOBXByow9c3E -N3coTRiR5r/VUv1xLXA+58bEiuPwKAv0dpihi4dVsjoT/Lc+JzeOIuOoTyrvYLs9 -tznDDgFHmV0ST9tD+leh7fmdvhFHJlsTmKtdFoqwNxxXnUX/iJY2v7vKB3tvh2PX -0DJq1l1sDPGzbjniazEuOQAnFN44wOwZZoYS6J1yFhNkUsepNxz9gjDthBgd9K5c -/3ATAOux9TN6S9ZV+AWNS2mw9bMoNlwUxFFzTWsL8TQH2xc519woe2v1n/MuwU8X -KhDzzMro6/1rqy6any2CbgTUUgGTLT2G/H783+9CHaZr77kgxve9oKeV/afmiSTY -zIw0bOIjL9kSGiG5VZFvC5F5GQytQIgLcOJ60g7YaEi7ghM5EFjp2CoHxhLbWNvS -O1UQRwUVZ2J+GGOmRj8JDlQyXr8NYnon74Do29lLBlo3WiXQCBJ31G8JUJc9yB3D -34xFMFbG02SrZvPAXpacw8Tvw3xrizp5f7NJzz3iiZ+gMEuFuZyUJHmPfWupRWgP -K9Dx2hzLabjKSWJtyNBjYt1gD1iqj6G8BaVmos8bdrKEZLFMOVLAMLrwjEsCsLa3 -AgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFEe4zf/lb+74suwv -Tg75JbCOPGvDMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAACAj -QTUEkMJAYmDv4jVM1z+s4jSQuKFvdvoWFqRINyzpkMLyPPgKn9iB5btb2iUspKdV -cSQy9sgL8rxq+JOssgfCX5/bzMiKqr5qb+FJEMwx14C7u8jYog5kV+qi9cKpMRXS -IGrs/CIBKM+GuIAeqcwRpTzyFrNHnfzSgCHEy9BHcEGhyoMZCCxt8l13nIoUE9Q2 -HJLw5QY33KbmkJs4j1xrG0aGQ0JfPgEHU1RdZX33inOhmlRaHylDFCfChQ+1iHsa -O5S3HWCntZznKWlXWpuTekMwGwPXYshApqr8ZORK15FTAaggiG6cX0S5y2CBNOxv -033aSF/rtJC8LakcC6wc1aJoIIAE1vyxjy+7SjENSoYc6+I2KSb12tjE8nVhz36u -dmNKekBlk4f4HoCMhuWG1o8O/FMsYOgWYRqiPkN7zTlgVGr18okmAWiDSKIz6MkE -kbIRNBE+6tBDGR8Dk5AM/1E9V/RBbuHLoL7ryWPNbczk+DaqaJ3tvV2XcEQNtg41 -3OEMXbugUZTLfhbrES+jkkXITHHZvMmZUldGL1DPvTVp9D0VzgalLA8+9oG6lLvD -u79leNKGef9JOxqDDPDeeOzI8k1MGt6CKfjBWtrt7uYnXuhF0J0cUahoq0Tj0Itq -4/g7u9xN12TyUb7mqqta6THuBrxzvxNiCp/HuZc= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIEDzCCAvegAwIBAgIBATANBgkqhkiG9w0BAQUFADBKMQswCQYDVQQGEwJTSzET -MBEGA1UEBxMKQnJhdGlzbGF2YTETMBEGA1UEChMKRGlzaWcgYS5zLjERMA8GA1UE -AxMIQ0EgRGlzaWcwHhcNMDYwMzIyMDEzOTM0WhcNMTYwMzIyMDEzOTM0WjBKMQsw -CQYDVQQGEwJTSzETMBEGA1UEBxMKQnJhdGlzbGF2YTETMBEGA1UEChMKRGlzaWcg -YS5zLjERMA8GA1UEAxMIQ0EgRGlzaWcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw -ggEKAoIBAQCS9jHBfYj9mQGp2HvycXXxMcbzdWb6UShGhJd4NLxs/LxFWYgmGErE -Nx+hSkS943EE9UQX4j/8SFhvXJ56CbpRNyIjZkMhsDxkovhqFQ4/61HhVKndBpnX -mjxUizkDPw/Fzsbrg3ICqB9x8y34dQjbYkzo+s7552oftms1grrijxaSfQUMbEYD -XcDtab86wYqg6I7ZuUUohwjstMoVvoLdtUSLLa2GDGhibYVW8qwUYzrG0ZmsNHhW -S8+2rT+MitcE5eN4TPWGqvWP+j1scaMtymfraHtuM6kMgiioTGohQBUgDCZbg8Kp -FhXAJIJdKxatymP2dACw30PEEGBWZ2NFAgMBAAGjgf8wgfwwDwYDVR0TAQH/BAUw -AwEB/zAdBgNVHQ4EFgQUjbJJaJ1yCCW5wCf1UJNWSEZx+Y8wDgYDVR0PAQH/BAQD -AgEGMDYGA1UdEQQvMC2BE2Nhb3BlcmF0b3JAZGlzaWcuc2uGFmh0dHA6Ly93d3cu -ZGlzaWcuc2svY2EwZgYDVR0fBF8wXTAtoCugKYYnaHR0cDovL3d3dy5kaXNpZy5z -ay9jYS9jcmwvY2FfZGlzaWcuY3JsMCygKqAohiZodHRwOi8vY2EuZGlzaWcuc2sv -Y2EvY3JsL2NhX2Rpc2lnLmNybDAaBgNVHSAEEzARMA8GDSuBHpGT5goAAAABAQEw -DQYJKoZIhvcNAQEFBQADggEBAF00dGFMrzvY/59tWDYcPQuBDRIrRhCA/ec8J9B6 -yKm2fnQwM6M6int0wHl5QpNt/7EpFIKrIYwvF/k/Ji/1WcbvgAa3mkkp7M5+cTxq -EEHA9tOasnxakZzArFvITV734VP/Q3f8nktnbNfzg9Gg4H8l37iYC5oyOGwwoPP/ -CBUz91BKez6jPiCp3C9WgArtQVCwyfTssuMmRAAOb54GvCKWU3BlxFAKRmukLyeB -EicTXxChds6KezfqwzlhA5WYOudsiCUI/HloDYd9Yvi0X/vF2Ey9WLw/Q1vUHgFN -PGO+I++MzVpQuGhU+QqZMxEA4Z7CRneC9VkGjCFMhwnN5ag= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIFaTCCA1GgAwIBAgIJAMMDmu5QkG4oMA0GCSqGSIb3DQEBBQUAMFIxCzAJBgNV -BAYTAlNLMRMwEQYDVQQHEwpCcmF0aXNsYXZhMRMwEQYDVQQKEwpEaXNpZyBhLnMu -MRkwFwYDVQQDExBDQSBEaXNpZyBSb290IFIxMB4XDTEyMDcxOTA5MDY1NloXDTQy -MDcxOTA5MDY1NlowUjELMAkGA1UEBhMCU0sxEzARBgNVBAcTCkJyYXRpc2xhdmEx -EzARBgNVBAoTCkRpc2lnIGEucy4xGTAXBgNVBAMTEENBIERpc2lnIFJvb3QgUjEw -ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCqw3j33Jijp1pedxiy3QRk -D2P9m5YJgNXoqqXinCaUOuiZc4yd39ffg/N4T0Dhf9Kn0uXKE5Pn7cZ3Xza1lK/o -OI7bm+V8u8yN63Vz4STN5qctGS7Y1oprFOsIYgrY3LMATcMjfF9DCCMyEtztDK3A -fQ+lekLZWnDZv6fXARz2m6uOt0qGeKAeVjGu74IKgEH3G8muqzIm1Cxr7X1r5OJe -IgpFy4QxTaz+29FHuvlglzmxZcfe+5nkCiKxLU3lSCZpq+Kq8/v8kiky6bM+TR8n -oc2OuRf7JT7JbvN32g0S9l3HuzYQ1VTW8+DiR0jm3hTaYVKvJrT1cU/J19IG32PK -/yHoWQbgCNWEFVP3Q+V8xaCJmGtzxmjOZd69fwX3se72V6FglcXM6pM6vpmumwKj -rckWtc7dXpl4fho5frLABaTAgqWjR56M6ly2vGfb5ipN0gTco65F97yLnByn1tUD -3AjLLhbKXEAz6GfDLuemROoRRRw1ZS0eRWEkG4IupZ0zXWX4Qfkuy5Q/H6MMMSRE -7cderVC6xkGbrPAXZcD4XW9boAo0PO7X6oifmPmvTiT6l7Jkdtqr9O3jw2Dv1fkC -yC2fg69naQanMVXVz0tv/wQFx1isXxYb5dKj6zHbHzMVTdDypVP1y+E9Tmgt2BLd -qvLmTZtJ5cUoobqwWsagtQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1Ud -DwEB/wQEAwIBBjAdBgNVHQ4EFgQUiQq0OJMa5qvum5EY+fU8PjXQ04IwDQYJKoZI -hvcNAQEFBQADggIBADKL9p1Kyb4U5YysOMo6CdQbzoaz3evUuii+Eq5FLAR0rBNR -xVgYZk2C2tXck8An4b58n1KeElb21Zyp9HWc+jcSjxyT7Ff+Bw+r1RL3D65hXlaA -SfX8MPWbTx9BLxyE04nH4toCdu0Jz2zBuByDHBb6lM19oMgY0sidbvW9adRtPTXo -HqJPYNcHKfyyo6SdbhWSVhlMCrDpfNIZTUJG7L399ldb3Zh+pE3McgODWF3vkzpB -emOqfDqo9ayk0d2iLbYq/J8BjuIQscTK5GfbVSUZP/3oNn6z4eGBrxEWi1CXYBmC -AMBrTXO40RMHPuq2MU/wQppt4hF05ZSsjYSVPCGvxdpHyN85YmLLW1AL14FABZyb -7bq2ix4Eb5YgOe2kfSnbSM6C3NQCjR0EMVrHS/BsYVLXtFHCgWzN4funodKSds+x -DzdYpPJScWc/DIh4gInByLUfkmO+p3qKViwaqKactV2zY9ATIKHrkWzQjX2v3wvk -F7mGnjixlAxYjOBVqjtjbZqJYLhkKpLGN/R+Q0O3c+gB53+XD9fyexn9GtePyfqF -a3qdnom2piiZk4hA9z7NUaPK6u95RyG1/jLix8NRb76AdPCkwzryT+lf3xkK8jsT -Q6wxpLPn6/wY1gGp8yqPNg7rtLG8t0zJa7+h89n07eLw4+1knj0vllJPgFOL ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIFaTCCA1GgAwIBAgIJAJK4iNuwisFjMA0GCSqGSIb3DQEBCwUAMFIxCzAJBgNV -BAYTAlNLMRMwEQYDVQQHEwpCcmF0aXNsYXZhMRMwEQYDVQQKEwpEaXNpZyBhLnMu -MRkwFwYDVQQDExBDQSBEaXNpZyBSb290IFIyMB4XDTEyMDcxOTA5MTUzMFoXDTQy -MDcxOTA5MTUzMFowUjELMAkGA1UEBhMCU0sxEzARBgNVBAcTCkJyYXRpc2xhdmEx -EzARBgNVBAoTCkRpc2lnIGEucy4xGTAXBgNVBAMTEENBIERpc2lnIFJvb3QgUjIw -ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCio8QACdaFXS1tFPbCw3Oe -NcJxVX6B+6tGUODBfEl45qt5WDza/3wcn9iXAng+a0EE6UG9vgMsRfYvZNSrXaNH -PWSb6WiaxswbP7q+sos0Ai6YVRn8jG+qX9pMzk0DIaPY0jSTVpbLTAwAFjxfGs3I -x2ymrdMxp7zo5eFm1tL7A7RBZckQrg4FY8aAamkw/dLukO8NJ9+flXP04SXabBbe -QTg06ov80egEFGEtQX6sx3dOy1FU+16SGBsEWmjGycT6txOgmLcRK7fWV8x8nhfR -yyX+hk4kLlYMeE2eARKmK6cBZW58Yh2EhN/qwGu1pSqVg8NTEQxzHQuyRpDRQjrO -QG6Vrf/GlK1ul4SOfW+eioANSW1z4nuSHsPzwfPrLgVv2RvPN3YEyLRa5Beny912 -H9AZdugsBbPWnDTYltxhh5EF5EQIM8HauQhl1K6yNg3ruji6DOWbnuuNZt2Zz9aJ -QfYEkoopKW1rOhzndX0CcQ7zwOe9yxndnWCywmZgtrEE7snmhrmaZkCo5xHtgUUD -i/ZnWejBBhG93c+AAk9lQHhcR1DIm+YfgXvkRKhbhZri3lrVx/k6RGZL5DJUfORs -nLMOPReisjQS1n6yqEm70XooQL6iFh/f5DcfEXP7kAplQ6INfPgGAVUzfbANuPT1 -rqVCV3w2EYx7XsQDnYx5nQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1Ud -DwEB/wQEAwIBBjAdBgNVHQ4EFgQUtZn4r7CU9eMg1gqtzk5WpC5uQu0wDQYJKoZI -hvcNAQELBQADggIBACYGXnDnZTPIgm7ZnBc6G3pmsgH2eDtpXi/q/075KMOYKmFM -tCQSin1tERT3nLXK5ryeJ45MGcipvXrA1zYObYVybqjGom32+nNjf7xueQgcnYqf -GopTpti72TVVsRHFqQOzVju5hJMiXn7B9hJSi+osZ7z+Nkz1uM/Rs0mSO9MpDpkb -lvdhuDvEK7Z4bLQjb/D907JedR+Zlais9trhxTF7+9FGs9K8Z7RiVLoJ92Owk6Ka -+elSLotgEqv89WBW7xBci8QaQtyDW2QOy7W81k/BfDxujRNt+3vrMNDcTa/F1bal -TFtxyegxvug4BkihGuLq0t4SOVga/4AOgnXmt8kHbA7v/zjxmHHEt38OFdAlab0i -nSvtBfZGR6ztwPDUO+Ls7pZbkBNOHlY667DvlruWIxG68kOGdGSVyCh13x01utI3 -gzhTODY7z2zp+WsO0PsE6E9312UBeIYMej4hYvF/Y3EMyZ9E26gnonW+boE+18Dr -G5gPcFw0sorMwIUY6256s/daoQe/qUKS82Ail+QUoQebTnbAjn39pCXHR+3/H3Os -zMOl6W8KjptlwlCFtaOgUxLMVYdh84GuEEZhvUQhuMI9dM9+JDX6HAcOmz0iyu8x -L4ysEr3vQCj8KWefshNPZiTEUxnpHikV7+ZtsH8tZ/3zbBt1RqPlShfppNcL ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIICCTCCAY+gAwIBAgIQaEpYcIBr8I8C+vbe6LCQkDAKBggqhkjOPQQDAzBGMQsw -CQYDVQQGEwJDTjEaMBgGA1UEChMRV29TaWduIENBIExpbWl0ZWQxGzAZBgNVBAMT -EkNBIFdvU2lnbiBFQ0MgUm9vdDAeFw0xNDExMDgwMDU4NThaFw00NDExMDgwMDU4 -NThaMEYxCzAJBgNVBAYTAkNOMRowGAYDVQQKExFXb1NpZ24gQ0EgTGltaXRlZDEb -MBkGA1UEAxMSQ0EgV29TaWduIEVDQyBSb290MHYwEAYHKoZIzj0CAQYFK4EEACID -YgAE4f2OuEMkq5Z7hcK6C62N4DrjJLnSsb6IOsq/Srj57ywvr1FQPEd1bPiUt5v8 -KB7FVMxjnRZLU8HnIKvNrCXSf4/CwVqCXjCLelTOA7WRf6qU0NGKSMyCBSah1VES -1ns2o0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E -FgQUqv3VWqP2h4syhf3RMluARZPzA7gwCgYIKoZIzj0EAwMDaAAwZQIxAOSkhLCB -1T2wdKyUpOgOPQB0TKGXa/kNUTyh2Tv0Daupn75OcsqF1NnstTJFGG+rrQIwfcf3 -aWMvoeGY7xMQ0Xk/0f7qO3/eVvSQsRUR2LIiFdAvwyYua/GRspBl9JrmkO5K ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIFjTCCA3WgAwIBAgIEGErM1jANBgkqhkiG9w0BAQsFADBWMQswCQYDVQQGEwJD -TjEwMC4GA1UECgwnQ2hpbmEgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9y -aXR5MRUwEwYDVQQDDAxDRkNBIEVWIFJPT1QwHhcNMTIwODA4MDMwNzAxWhcNMjkx -MjMxMDMwNzAxWjBWMQswCQYDVQQGEwJDTjEwMC4GA1UECgwnQ2hpbmEgRmluYW5j -aWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRUwEwYDVQQDDAxDRkNBIEVWIFJP -T1QwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDXXWvNED8fBVnVBU03 -sQ7smCuOFR36k0sXgiFxEFLXUWRwFsJVaU2OFW2fvwwbwuCjZ9YMrM8irq93VCpL -TIpTUnrD7i7es3ElweldPe6hL6P3KjzJIx1qqx2hp/Hz7KDVRM8Vz3IvHWOX6Jn5 -/ZOkVIBMUtRSqy5J35DNuF++P96hyk0g1CXohClTt7GIH//62pCfCqktQT+x8Rgp -7hZZLDRJGqgG16iI0gNyejLi6mhNbiyWZXvKWfry4t3uMCz7zEasxGPrb382KzRz -EpR/38wmnvFyXVBlWY9ps4deMm/DGIq1lY+wejfeWkU7xzbh72fROdOXW3NiGUgt -hxwG+3SYIElz8AXSG7Ggo7cbcNOIabla1jj0Ytwli3i/+Oh+uFzJlU9fpy25IGvP -a931DfSCt/SyZi4QKPaXWnuWFo8BGS1sbn85WAZkgwGDg8NNkt0yxoekN+kWzqot -aK8KgWU6cMGbrU1tVMoqLUuFG7OA5nBFDWteNfB/O7ic5ARwiRIlk9oKmSJgamNg -TnYGmE69g60dWIolhdLHZR4tjsbftsbhf4oEIRUpdPA+nJCdDC7xij5aqgwJHsfV -PKPtl8MeNPo4+QgO48BdK4PRVmrJtqhUUy54Mmc9gn900PvhtgVguXDbjgv5E1hv -cWAQUhC5wUEJ73IfZzF4/5YFjQIDAQABo2MwYTAfBgNVHSMEGDAWgBTj/i39KNAL -tbq2osS/BqoFjJP7LzAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAd -BgNVHQ4EFgQU4/4t/SjQC7W6tqLEvwaqBYyT+y8wDQYJKoZIhvcNAQELBQADggIB -ACXGumvrh8vegjmWPfBEp2uEcwPenStPuiB/vHiyz5ewG5zz13ku9Ui20vsXiObT -ej/tUxPQ4i9qecsAIyjmHjdXNYmEwnZPNDatZ8POQQaIxffu2Bq41gt/UP+TqhdL -jOztUmCypAbqTuv0axn96/Ua4CUqmtzHQTb3yHQFhDmVOdYLO6Qn+gjYXB74BGBS -ESgoA//vU2YApUo0FmZ8/Qmkrp5nGm9BC2sGE5uPhnEFtC+NiWYzKXZUmhH4J/qy -P5Hgzg0b8zAarb8iXRvTvyUFTeGSGn+ZnzxEk8rUQElsgIfXBDrDMlI1Dlb4pd19 -xIsNER9Tyx6yF7Zod1rg1MvIB671Oi6ON7fQAUtDKXeMOZePglr4UeWJoBjnaH9d -Ci77o0cOPaYjesYBx4/IXr9tgFa+iiS6M+qf4TIRnvHST4D2G0CvOJ4RUHlzEhLN -5mydLIhyPDCBBpEi6lmt2hkuIsKNuYyH4Ga8cyNfIWRjgEj1oDwYPZTISEEdQLpe -/v5WOaHIz16eGWRGENoXkbcFgKyLmZJ956LYBws2J+dIeWCKw9cTXPhyQN9Ky8+Z -AAoACxGV2lZFA4gKn2fQ1XmxqI1AbQ3CekD6819kR5LLU7m7Wc5P/dAVUwHY3+vZ -5nbv0CO7O6l5s9UCKc2Jo5YPSjXnTkLAdc0Hz+Ys63su ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDVTCCAj2gAwIBAgIESTMAATANBgkqhkiG9w0BAQUFADAyMQswCQYDVQQGEwJD -TjEOMAwGA1UEChMFQ05OSUMxEzARBgNVBAMTCkNOTklDIFJPT1QwHhcNMDcwNDE2 -MDcwOTE0WhcNMjcwNDE2MDcwOTE0WjAyMQswCQYDVQQGEwJDTjEOMAwGA1UEChMF -Q05OSUMxEzARBgNVBAMTCkNOTklDIFJPT1QwggEiMA0GCSqGSIb3DQEBAQUAA4IB -DwAwggEKAoIBAQDTNfc/c3et6FtzF8LRb+1VvG7q6KR5smzDo+/hn7E7SIX1mlwh -IhAsxYLO2uOabjfhhyzcuQxauohV3/2q2x8x6gHx3zkBwRP9SFIhxFXf2tizVHa6 -dLG3fdfA6PZZxU3Iva0fFNrfWEQlMhkqx35+jq44sDB7R3IJMfAw28Mbdim7aXZO -V/kbZKKTVrdvmW7bCgScEeOAH8tjlBAKqeFkgjH5jCftppkA9nCTGPihNIaj3XrC -GHn2emU1z5DrvTOTn1OrczvmmzQgLx3vqR1jGqCA2wMv+SYahtKNu6m+UjqHZ0gN -v7Sg2Ca+I19zN38m5pIEo3/PIKe38zrKy5nLAgMBAAGjczBxMBEGCWCGSAGG+EIB -AQQEAwIABzAfBgNVHSMEGDAWgBRl8jGtKvf33VKWCscCwQ7vptU7ETAPBgNVHRMB -Af8EBTADAQH/MAsGA1UdDwQEAwIB/jAdBgNVHQ4EFgQUZfIxrSr3991SlgrHAsEO -76bVOxEwDQYJKoZIhvcNAQEFBQADggEBAEs17szkrr/Dbq2flTtLP1se31cpolnK -OOK5Gv+e5m4y3R6u6jW39ZORTtpC4cMXYFDy0VwmuYK36m3knITnA3kXr5g9lNvH -ugDnuL8BV8F3RTIMO/G0HAiw/VGgod2aHRM2mm23xzy54cXZF/qD1T0VoDy7Hgvi -yJA/qIYM/PmLXoXLT1tLYhFHxUV8BS9BsZ4QaRuZluBVeftOhpm4lNqGOGqTo+fL -buXf6iFViZx9fX+Y9QCJ7uOEwFyWtcVG6kbghVW2G8kS1sHNzYDzAgE8yGnLRUhj -2JTQ7IUOO04RZfSCjKY9ri4ilAnIXOo8gV0WKgOXFlUJ24pBgp5mmxE= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIEHTCCAwWgAwIBAgIQToEtioJl4AsC7j41AkblPTANBgkqhkiG9w0BAQUFADCB -gTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G -A1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNV -BAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjEyMDEwMDAw -MDBaFw0yOTEyMzEyMzU5NTlaMIGBMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3Jl -YXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFDT01P -RE8gQ0EgTGltaXRlZDEnMCUGA1UEAxMeQ09NT0RPIENlcnRpZmljYXRpb24gQXV0 -aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ECLi3LjkRv3 -UcEbVASY06m/weaKXTuH+7uIzg3jLz8GlvCiKVCZrts7oVewdFFxze1CkU1B/qnI -2GqGd0S7WWaXUF601CxwRM/aN5VCaTwwxHGzUvAhTaHYujl8HJ6jJJ3ygxaYqhZ8 -Q5sVW7euNJH+1GImGEaaP+vB+fGQV+useg2L23IwambV4EajcNxo2f8ESIl33rXp -+2dtQem8Ob0y2WIC8bGoPW43nOIv4tOiJovGuFVDiOEjPqXSJDlqR6sA1KGzqSX+ -DT+nHbrTUcELpNqsOO9VUCQFZUaTNE8tja3G1CEZ0o7KBWFxB3NH5YoZEr0ETc5O -nKVIrLsm9wIDAQABo4GOMIGLMB0GA1UdDgQWBBQLWOWLxkwVN6RAqTCpIb5HNlpW -/zAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zBJBgNVHR8EQjBAMD6g -PKA6hjhodHRwOi8vY3JsLmNvbW9kb2NhLmNvbS9DT01PRE9DZXJ0aWZpY2F0aW9u -QXV0aG9yaXR5LmNybDANBgkqhkiG9w0BAQUFAAOCAQEAPpiem/Yb6dc5t3iuHXIY -SdOH5EOC6z/JqvWote9VfCFSZfnVDeFs9D6Mk3ORLgLETgdxb8CPOGEIqB6BCsAv -IC9Bi5HcSEW88cbeunZrM8gALTFGTO3nnc+IlP8zwFboJIYmuNg4ON8qa90SzMc/ -RxdMosIGlgnW2/4/PEZB31jiVg88O8EckzXZOFKs7sjsLjBOlDW0JB9LeGna8gI4 -zJVSk/BwJVmcIGfE7vmLV2H0knZ9P4SNVbfo5azV8fUZVqZa+5Acr5Pr5RzUZ5dd -BA6+C4OmF4O5MBKgxTMVBbkN+8cFduPYSo38NBejxiEovjBFMR7HeL5YYTisO+IB -ZQ== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIICiTCCAg+gAwIBAgIQH0evqmIAcFBUTAGem2OZKjAKBggqhkjOPQQDAzCBhTEL -MAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UE -BxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMT -IkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDgwMzA2MDAw -MDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdy -ZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09N -T0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlv -biBBdXRob3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQDR3svdcmCFYX7deSR -FtSrYpn1PlILBs5BAH+X4QokPB0BBO490o0JlwzgdeT6+3eKKvUDYEs2ixYjFq0J -cfRK9ChQtP6IHG4/bC8vCVlbpVsLM5niwz2J+Wos77LTBumjQjBAMB0GA1UdDgQW -BBR1cacZSBm8nZ3qQUfflMRId5nTeTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/ -BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjEA7wNbeqy3eApyt4jf/7VGFAkK+qDm -fQjGGoe9GKhzvSbKYAydzpmfz1wPMOG+FDHqAjAU9JM8SaczepBGR7NjfRObTrdv -GDeAU/7dIOA1mjbRxwG55tzd8/8dLDoWV9mSOdY= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIF2DCCA8CgAwIBAgIQTKr5yttjb+Af907YWwOGnTANBgkqhkiG9w0BAQwFADCB -hTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G -A1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNV -BAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTAwMTE5 -MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0IxGzAZBgNVBAgT -EkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMR -Q09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNh -dGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCR -6FSS0gpWsawNJN3Fz0RndJkrN6N9I3AAcbxT38T6KhKPS38QVr2fcHK3YX/JSw8X -pz3jsARh7v8Rl8f0hj4K+j5c+ZPmNHrZFGvnnLOFoIJ6dq9xkNfs/Q36nGz637CC -9BR++b7Epi9Pf5l/tfxnQ3K9DADWietrLNPtj5gcFKt+5eNu/Nio5JIk2kNrYrhV -/erBvGy2i/MOjZrkm2xpmfh4SDBF1a3hDTxFYPwyllEnvGfDyi62a+pGx8cgoLEf -Zd5ICLqkTqnyg0Y3hOvozIFIQ2dOciqbXL1MGyiKXCJ7tKuY2e7gUYPDCUZObT6Z -+pUX2nwzV0E8jVHtC7ZcryxjGt9XyD+86V3Em69FmeKjWiS0uqlWPc9vqv9JWL7w -qP/0uK3pN/u6uPQLOvnoQ0IeidiEyxPx2bvhiWC4jChWrBQdnArncevPDt09qZah -SL0896+1DSJMwBGB7FY79tOi4lu3sgQiUpWAk2nojkxl8ZEDLXB0AuqLZxUpaVIC -u9ffUGpVRr+goyhhf3DQw6KqLCGqR84onAZFdr+CGCe01a60y1Dma/RMhnEw6abf -Fobg2P9A3fvQQoh/ozM6LlweQRGBY84YcWsr7KaKtzFcOmpH4MN5WdYgGq/yapiq -crxXStJLnbsQ/LBMQeXtHT1eKJ2czL+zUdqnR+WEUwIDAQABo0IwQDAdBgNVHQ4E -FgQUu69+Aj36pvE8hI6t7jiY7NkyMtQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB -/wQFMAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAArx1UaEt65Ru2yyTUEUAJNMnMvl -wFTPoCWOAvn9sKIN9SCYPBMtrFaisNZ+EZLpLrqeLppysb0ZRGxhNaKatBYSaVqM -4dc+pBroLwP0rmEdEBsqpIt6xf4FpuHA1sj+nq6PK7o9mfjYcwlYRm6mnPTXJ9OV -2jeDchzTc+CiR5kDOF3VSXkAKRzH7JsgHAckaVd4sjn8OoSgtZx8jb8uk2Intzna -FxiuvTwJaP+EmzzV1gsD41eeFPfR60/IvYcjt7ZJQ3mFXLrrkguhxuhoqEwWsRqZ -CuhTLJK7oQkYdQxlqHvLI7cawiiFwxv/0Cti76R7CZGYZ4wUAc1oBmpjIXUDgIiK -boHGhfKppC3n9KUkEEeDys30jXlYsQab5xoq2Z0B15R97QNKyvDb6KkBPvVWmcke -jkk9u+UJueBPSZI9FoJAzMxZxuY67RIuaTxslbH9qh17f4a+Hg4yRvv7E491f0yL -S0Zj/gA0QHDBw7mh3aZw4gSzQbzpgJHqZJx64SIDqZxubw5lT2yHh17zbqD5daWb -QOhTsiedSrnAdyGN/4fy3ryM7xfft0kL0fJuMAsaDk527RH89elWsn2/x20Kk4yl -0MC2Hb46TpSi125sC8KKfPog88Tk5c0NqMuRkrF8hey1FGlmDoLnzc7ILaZRfyHB -NVOFBkpdn627G190 ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIEvTCCA6WgAwIBAgIBADANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJFVTEn -MCUGA1UEChMeQUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQL -ExpodHRwOi8vd3d3LmNoYW1iZXJzaWduLm9yZzEiMCAGA1UEAxMZQ2hhbWJlcnMg -b2YgQ29tbWVyY2UgUm9vdDAeFw0wMzA5MzAxNjEzNDNaFw0zNzA5MzAxNjEzNDRa -MH8xCzAJBgNVBAYTAkVVMScwJQYDVQQKEx5BQyBDYW1lcmZpcm1hIFNBIENJRiBB -ODI3NDMyODcxIzAhBgNVBAsTGmh0dHA6Ly93d3cuY2hhbWJlcnNpZ24ub3JnMSIw -IAYDVQQDExlDaGFtYmVycyBvZiBDb21tZXJjZSBSb290MIIBIDANBgkqhkiG9w0B -AQEFAAOCAQ0AMIIBCAKCAQEAtzZV5aVdGDDg2olUkfzIx1L4L1DZ77F1c2VHfRtb -unXF/KGIJPov7coISjlUxFF6tdpg6jg8gbLL8bvZkSM/SAFwdakFKq0fcfPJVD0d -BmpAPrMMhe5cG3nCYsS4No41XQEMIwRHNaqbYE6gZj3LJgqcQKH0XZi/caulAGgq -7YN6D6IUtdQis4CwPAxaUWktWBiP7Zme8a7ileb2R6jWDA+wWFjbw2Y3npuRVDM3 -0pQcakjJyfKl2qUMI/cjDpwyVV5xnIQFUZot/eZOKjRa3spAN2cMVCFVd9oKDMyX -roDclDZK9D7ONhMeU+SsTjoF7Nuucpw4i9A5O4kKPnf+dQIBA6OCAUQwggFAMBIG -A1UdEwEB/wQIMAYBAf8CAQwwPAYDVR0fBDUwMzAxoC+gLYYraHR0cDovL2NybC5j -aGFtYmVyc2lnbi5vcmcvY2hhbWJlcnNyb290LmNybDAdBgNVHQ4EFgQU45T1sU3p -26EpW1eLTXYGduHRooowDgYDVR0PAQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIA -BzAnBgNVHREEIDAegRxjaGFtYmVyc3Jvb3RAY2hhbWJlcnNpZ24ub3JnMCcGA1Ud -EgQgMB6BHGNoYW1iZXJzcm9vdEBjaGFtYmVyc2lnbi5vcmcwWAYDVR0gBFEwTzBN -BgsrBgEEAYGHLgoDATA+MDwGCCsGAQUFBwIBFjBodHRwOi8vY3BzLmNoYW1iZXJz -aWduLm9yZy9jcHMvY2hhbWJlcnNyb290Lmh0bWwwDQYJKoZIhvcNAQEFBQADggEB -AAxBl8IahsAifJ/7kPMa0QOx7xP5IV8EnNrJpY0nbJaHkb5BkAFyk+cefV/2icZd -p0AJPaxJRUXcLo0waLIJuvvDL8y6C98/d3tGfToSJI6WjzwFCm/SlCgdbQzALogi -1djPHRPH8EjX1wWnz8dHnjs8NMiAT9QUu/wNUPf6s+xCX6ndbcj0dc97wXImsQEc -XCz9ek60AcUFV7nnPKoF2YjpB0ZBzu9Bga5Y34OirsrXdx/nADydb47kMgkdTXg0 -eDQ8lJsm7U9xxhl6vSAiSFr+S30Dt+dYvsYyTnQeaN2oaFuzPu5ifdmA6Ap1erfu -tGWaIZDgqtCYvDi1czyL+Nw= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIExTCCA62gAwIBAgIBADANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJFVTEn -MCUGA1UEChMeQUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQL -ExpodHRwOi8vd3d3LmNoYW1iZXJzaWduLm9yZzEgMB4GA1UEAxMXR2xvYmFsIENo -YW1iZXJzaWduIFJvb3QwHhcNMDMwOTMwMTYxNDE4WhcNMzcwOTMwMTYxNDE4WjB9 -MQswCQYDVQQGEwJFVTEnMCUGA1UEChMeQUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgy -NzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1iZXJzaWduLm9yZzEgMB4G -A1UEAxMXR2xvYmFsIENoYW1iZXJzaWduIFJvb3QwggEgMA0GCSqGSIb3DQEBAQUA -A4IBDQAwggEIAoIBAQCicKLQn0KuWxfH2H3PFIP8T8mhtxOviteePgQKkotgVvq0 -Mi+ITaFgCPS3CU6gSS9J1tPfnZdan5QEcOw/Wdm3zGaLmFIoCQLfxS+EjXqXd7/s -QJ0lcqu1PzKY+7e3/HKE5TWH+VX6ox8Oby4o3Wmg2UIQxvi1RMLQQ3/bvOSiPGpV -eAp3qdjqGTK3L/5cPxvusZjsyq16aUXjlg9V9ubtdepl6DJWk0aJqCWKZQbua795 -B9Dxt6/tLE2Su8CoX6dnfQTyFQhwrJLWfQTSM/tMtgsL+xrJxI0DqX5c8lCrEqWh -z0hQpe/SyBoT+rB/sYIcd2oPX9wLlY/vQ37mRQklAgEDo4IBUDCCAUwwEgYDVR0T -AQH/BAgwBgEB/wIBDDA/BgNVHR8EODA2MDSgMqAwhi5odHRwOi8vY3JsLmNoYW1i -ZXJzaWduLm9yZy9jaGFtYmVyc2lnbnJvb3QuY3JsMB0GA1UdDgQWBBRDnDafsJ4w -TcbOX60Qq+UDpfqpFDAOBgNVHQ8BAf8EBAMCAQYwEQYJYIZIAYb4QgEBBAQDAgAH -MCoGA1UdEQQjMCGBH2NoYW1iZXJzaWducm9vdEBjaGFtYmVyc2lnbi5vcmcwKgYD -VR0SBCMwIYEfY2hhbWJlcnNpZ25yb290QGNoYW1iZXJzaWduLm9yZzBbBgNVHSAE -VDBSMFAGCysGAQQBgYcuCgEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly9jcHMuY2hh -bWJlcnNpZ24ub3JnL2Nwcy9jaGFtYmVyc2lnbnJvb3QuaHRtbDANBgkqhkiG9w0B -AQUFAAOCAQEAPDtwkfkEVCeR4e3t/mh/YV3lQWVPMvEYBZRqHN4fcNs+ezICNLUM -bKGKfKX0j//U2K0X1S0E0T9YgOKBWYi+wONGkyT+kL0mojAt6JcmVzWJdJYY9hXi -ryQZVgICsroPFOrGimbBhkVVi76SvpykBMdJPJ7oKXqJ1/6v/2j1pReQvayZzKWG -VwlnRtvWFsJG8eSpUPWP0ZIV018+xgBJOm5YstHRJw0lyDL4IBHNfTIzSJRUTN3c -ecQwn+uOuFW114hcxWokPbLTBQNRxgfvzBRydD1ucs4YKIxKoHflCStFREest2d/ -AYoFWpO+ocH/+OcOZ6RHSXZddZAa9SaP8A== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDfDCCAmSgAwIBAgIQayXaioidfLwPBbOxemFFRDANBgkqhkiG9w0BAQsFADBY -MQswCQYDVQQGEwJDTjEaMBgGA1UEChMRV29TaWduIENBIExpbWl0ZWQxLTArBgNV -BAMTJENlcnRpZmljYXRpb24gQXV0aG9yaXR5IG9mIFdvU2lnbiBHMjAeFw0xNDEx -MDgwMDU4NThaFw00NDExMDgwMDU4NThaMFgxCzAJBgNVBAYTAkNOMRowGAYDVQQK -ExFXb1NpZ24gQ0EgTGltaXRlZDEtMCsGA1UEAxMkQ2VydGlmaWNhdGlvbiBBdXRo -b3JpdHkgb2YgV29TaWduIEcyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC -AQEAvsXEoCKASU+/2YcRxlPhuw+9YH+v9oIOH9ywjj2X4FA8jzrvZjtFB5sg+OPX -JYY1kBaiXW8wGQiHC38Gsp1ij96vkqVg1CuAmlI/9ZqD6TRay9nVYlzmDuDfBpgO -gHzKtB0TiGsOqCR3A9DuW/PKaZE1OVbFbeP3PU9ekzgkyhjpJMuSA93MHD0JcOQg -5PGurLtzaaNjOg9FD6FKmsLRY6zLEPg95k4ot+vElbGs/V6r+kHLXZ1L3PR8du9n -fwB6jdKgGlxNIuG12t12s9R23164i5jIFFTMaxeSt+BKv0mUYQs4kI9dJGwlezt5 -2eJ+na2fmKEG/HgUYFf47oB3sQIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYD -VR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU+mCp62XF3RYUCE4MD42b4Pdkr2cwDQYJ -KoZIhvcNAQELBQADggEBAFfDejaCnI2Y4qtAqkePx6db7XznPWZaOzG73/MWM5H8 -fHulwqZm46qwtyeYP0nXYGdnPzZPSsvxFPpahygc7Y9BMsaV+X3avXtbwrAh449G -3CE4Q3RM+zD4F3LBMvzIkRfEzFg3TgvMWvchNSiDbGAtROtSjFA9tWwS1/oJu2yy -SrHFieT801LYYRf+epSEj3m2M1m6D8QL4nCgS3gu+sif/a+RZQp4OBXllxcU3fng -LDT4ONCEIgDAFFEYKwLcMFrw6AF8NTojrwjkr6qOKEJJLvD1mTS+7Q9LGOHSJDy7 -XUe3IfKN0QqZjuNuPq1w4I+5ysxugTH2e5x6eeRncRg= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDqDCCApCgAwIBAgIJAP7c4wEPyUj/MA0GCSqGSIb3DQEBBQUAMDQxCzAJBgNV -BAYTAkZSMRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hMB4X -DTA3MDYyOTE1MTMwNVoXDTI3MDYyOTE1MTMwNVowNDELMAkGA1UEBhMCRlIxEjAQ -BgNVBAoMCURoaW15b3RpczERMA8GA1UEAwwIQ2VydGlnbmEwggEiMA0GCSqGSIb3 -DQEBAQUAA4IBDwAwggEKAoIBAQDIaPHJ1tazNHUmgh7stL7qXOEm7RFHYeGifBZ4 -QCHkYJ5ayGPhxLGWkv8YbWkj4Sti993iNi+RB7lIzw7sebYs5zRLcAglozyHGxny -gQcPOJAZ0xH+hrTy0V4eHpbNgGzOOzGTtvKg0KmVEn2lmsxryIRWijOp5yIVUxbw -zBfsV1/pogqYCd7jX5xv3EjjhQsVWqa6n6xI4wmy9/Qy3l40vhx4XUJbzg4ij02Q -130yGLMLLGq/jj8UEYkgDncUtT2UCIf3JR7VsmAA7G8qKCVuKj4YYxclPz5EIBb2 -JsglrgVKtOdjLPOMFlN+XPsRGgjBRmKfIrjxwo1p3Po6WAbfAgMBAAGjgbwwgbkw -DwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUGu3+QTmQtCRZvgHyUtVF9lo53BEw -ZAYDVR0jBF0wW4AUGu3+QTmQtCRZvgHyUtVF9lo53BGhOKQ2MDQxCzAJBgNVBAYT -AkZSMRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hggkA/tzj -AQ/JSP8wDgYDVR0PAQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzANBgkqhkiG -9w0BAQUFAAOCAQEAhQMeknH2Qq/ho2Ge6/PAD/Kl1NqV5ta+aDY9fm4fTIrv0Q8h -bV6lUmPOEvjvKtpv6zf+EwLHyzs+ImvaYS5/1HI93TDhHkxAGYwP15zRgzB7mFnc -fca5DClMoTOi62c6ZYTTluLtdkVwj7Ur3vkj1kluPBS1xp81HlDQwY9qcEQCYsuu -HWhBp6pX6FOqB9IG9tUUBguRA3UsbHK1YZWaDYu5Def131TN3ubY1gkIl2PlwS6w -t0QmwCbAr1UwnjvVNioZBPRcHv/PLLf/0P2HQBHVESO7SMAhqaQoLf0V+LBOK/Qw -WyH8EZE0vkHve52Xdf+XlcCWWC/qu0bXu+TZLg== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIFnDCCA4SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJGUjET -MBEGA1UEChMKQ2VydGlub21pczEXMBUGA1UECxMOMDAwMiA0MzM5OTg5MDMxJjAk -BgNVBAMMHUNlcnRpbm9taXMgLSBBdXRvcml0w6kgUmFjaW5lMB4XDTA4MDkxNzA4 -Mjg1OVoXDTI4MDkxNzA4Mjg1OVowYzELMAkGA1UEBhMCRlIxEzARBgNVBAoTCkNl -cnRpbm9taXMxFzAVBgNVBAsTDjAwMDIgNDMzOTk4OTAzMSYwJAYDVQQDDB1DZXJ0 -aW5vbWlzIC0gQXV0b3JpdMOpIFJhY2luZTCCAiIwDQYJKoZIhvcNAQEBBQADggIP -ADCCAgoCggIBAJ2Fn4bT46/HsmtuM+Cet0I0VZ35gb5j2CN2DpdUzZlMGvE5x4jY -F1AMnmHawE5V3udauHpOd4cN5bjr+p5eex7Ezyh0x5P1FMYiKAT5kcOrJ3NqDi5N -8y4oH3DfVS9O7cdxbwlyLu3VMpfQ8Vh30WC8Tl7bmoT2R2FFK/ZQpn9qcSdIhDWe -rP5pqZ56XjUl+rSnSTV3lqc2W+HN3yNw2F1MpQiD8aYkOBOo7C+ooWfHpi2GR+6K -/OybDnT0K0kCe5B1jPyZOQE51kqJ5Z52qz6WKDgmi92NjMD2AR5vpTESOH2VwnHu -7XSu5DaiQ3XV8QCb4uTXzEIDS3h65X27uK4uIJPT5GHfceF2Z5c/tt9qc1pkIuVC -28+BA5PY9OMQ4HL2AHCs8MF6DwV/zzRpRbWT5BnbUhYjBYkOjUjkJW+zeL9i9Qf6 -lSTClrLooyPCXQP8w9PlfMl1I9f09bze5N/NgL+RiH2nE7Q5uiy6vdFrzPOlKO1E -nn1So2+WLhl+HPNbxxaOu2B9d2ZHVIIAEWBsMsGoOBvrbpgT1u449fCfDu/+MYHB -0iSVL1N6aaLwD4ZFjliCK0wi1F6g530mJ0jfJUaNSih8hp75mxpZuWW/Bd22Ql09 -5gBIgl4g9xGC3srYn+Y3RyYe63j3YcNBZFgCQfna4NH4+ej9Uji29YnfAgMBAAGj -WzBZMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBQN -jLZh2kS40RR9w759XkjwzspqsDAXBgNVHSAEEDAOMAwGCiqBegFWAgIAAQEwDQYJ -KoZIhvcNAQEFBQADggIBACQ+YAZ+He86PtvqrxyaLAEL9MW12Ukx9F1BjYkMTv9s -ov3/4gbIOZ/xWqndIlgVqIrTseYyCYIDbNc/CMf4uboAbbnW/FIyXaR/pDGUu7ZM -OH8oMDX/nyNTt7buFHAAQCvaR6s0fl6nVjBhK4tDrP22iCj1a7Y+YEq6QpA0Z43q -619FVDsXrIvkxmUP7tCMXWY5zjKn2BCXwH40nJ+U8/aGH88bc62UeYdocMMzpXDn -2NU4lG9jeeu/Cg4I58UvD0KgKxRA/yHgBcUn4YQRE7rWhh1BCxMjidPJC+iKunqj -o3M3NYB9Ergzd0A4wPpeMNLytqOx1qKVl4GbUu1pTP+A5FPbVFsDbVRfsbjvJL1v -nxHDx2TCDyhihWZeGnuyt++uNckZM6i4J9szVb9o4XVIRFb7zdNIu0eJOqxp9YDG -5ERQL1TEqkPFMTFYvZbF6nVsmnWxTfj3l/+WFvKXTej28xH5On2KOG4Ey+HTRRWq -pdEdnV1j6CTmNhTih60bWfVEm/vXd3wfAXBioSAaosUaKPQhA+4u2cGA6rnZgtZb -dsLLO7XSAPCjDuGtbkD326C00EauFddEwk01+dIL8hf2rGbVJLJP0RyZwG71fet0 -BLj5TXcJ17TPBzAJ8bgAVtkXFhYKK4bfjwEZGuW7gmP/vgt2Fl43N+bYdJeimUV5 ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIFkjCCA3qgAwIBAgIBATANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJGUjET -MBEGA1UEChMKQ2VydGlub21pczEXMBUGA1UECxMOMDAwMiA0MzM5OTg5MDMxHTAb -BgNVBAMTFENlcnRpbm9taXMgLSBSb290IENBMB4XDTEzMTAyMTA5MTcxOFoXDTMz -MTAyMTA5MTcxOFowWjELMAkGA1UEBhMCRlIxEzARBgNVBAoTCkNlcnRpbm9taXMx -FzAVBgNVBAsTDjAwMDIgNDMzOTk4OTAzMR0wGwYDVQQDExRDZXJ0aW5vbWlzIC0g -Um9vdCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANTMCQosP5L2 -fxSeC5yaah1AMGT9qt8OHgZbn1CF6s2Nq0Nn3rD6foCWnoR4kkjW4znuzuRZWJfl -LieY6pOod5tK8O90gC3rMB+12ceAnGInkYjwSond3IjmFPnVAy//ldu9n+ws+hQV -WZUKxkd8aRi5pwP5ynapz8dvtF4F/u7BUrJ1Mofs7SlmO/NKFoL21prbcpjp3vDF -TKWrteoB4owuZH9kb/2jJZOLyKIOSY008B/sWEUuNKqEUL3nskoTuLAPrjhdsKkb -5nPJWqHZZkCqqU2mNAKthH6yI8H7KsZn9DS2sJVqM09xRLWtwHkziOC/7aOgFLSc -CbAK42C++PhmiM1b8XcF4LVzbsF9Ri6OSyemzTUK/eVNfaoqoynHWmgE6OXWk6Ri -wsXm9E/G+Z8ajYJJGYrKWUM66A0ywfRMEwNvbqY/kXPLynNvEiCL7sCCeN5LLsJJ -wx3tFvYk9CcbXFcx3FXuqB5vbKziRcxXV4p1VxngtViZSTYxPDMBbRZKzbgqg4SG -m/lg0h9tkQPTYKbVPZrdd5A9NaSfD171UkRpucC63M9933zZxKyGIjK8e2uR73r4 -F2iw4lNVYC2vPsKD2NkJK/DAZNuHi5HMkesE/Xa0lZrmFAYb1TQdvtj/dBxThZng -WVJKYe2InmtJiUZ+IFrZ50rlau7SZRFDAgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIB -BjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTvkUz1pcMw6C8I6tNxIqSSaHh0 -2TAfBgNVHSMEGDAWgBTvkUz1pcMw6C8I6tNxIqSSaHh02TANBgkqhkiG9w0BAQsF -AAOCAgEAfj1U2iJdGlg+O1QnurrMyOMaauo++RLrVl89UM7g6kgmJs95Vn6RHJk/ -0KGRHCwPT5iVWVO90CLYiF2cN/z7ZMF4jIuaYAnq1fohX9B0ZedQxb8uuQsLrbWw -F6YSjNRieOpWauwK0kDDPAUwPk2Ut59KA9N9J0u2/kTO+hkzGm2kQtHdzMjI1xZS -g081lLMSVX3l4kLr5JyTCcBMWwerx20RoFAXlCOotQqSD7J6wWAsOMwaplv/8gzj -qh8c3LigkyfeY+N/IZ865Z764BNqdeuWXGKRlI5nU7aJ+BIJy29SWwNyhlCVCNSN -h4YVH5Uk2KRvms6knZtt0rJ2BobGVgjF6wnaNsIbW0G+YSrjcOa4pvi2WsS9Iff/ -ql+hbHY5ZtbqTFXhADObE5hjyW/QASAJN1LnDE8+zbz1X5YnpyACleAu6AdBBR8V -btaw5BngDwKTACdyxYvRVB9dSsNAl35VpnzBMwQUAR1JIGkLGZOdblgi90AMRgwj -Y/M50n92Uaf0yKHxDHYiI0ZSKS3io0EHVmmY0gUJvGnHWmHNj4FgFU2A3ZDifcRQ -8ow7bkrHxuaAKzyBvBGAFhAn1/DNP3nMcyrDflOR1m749fPH0FFNjkulW+YZFzvW -gQncItzujrnEj1PhZ7szuIgVRs/taTX/dQ1G885x4cVrhkIGuUE= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDkjCCAnqgAwIBAgIRAIW9S/PY2uNp9pTXX8OlRCMwDQYJKoZIhvcNAQEFBQAw -PTELMAkGA1UEBhMCRlIxETAPBgNVBAoTCENlcnRwbHVzMRswGQYDVQQDExJDbGFz -cyAyIFByaW1hcnkgQ0EwHhcNOTkwNzA3MTcwNTAwWhcNMTkwNzA2MjM1OTU5WjA9 -MQswCQYDVQQGEwJGUjERMA8GA1UEChMIQ2VydHBsdXMxGzAZBgNVBAMTEkNsYXNz -IDIgUHJpbWFyeSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANxQ -ltAS+DXSCHh6tlJw/W/uz7kRy1134ezpfgSN1sxvc0NXYKwzCkTsA18cgCSR5aiR -VhKC9+Ar9NuuYS6JEI1rbLqzAr3VNsVINyPi8Fo3UjMXEuLRYE2+L0ER4/YXJQyL -kcAbmXuZVg2v7tK8R1fjeUl7NIknJITesezpWE7+Tt9avkGtrAjFGA7v0lPubNCd -EgETjdyAYveVqUSISnFOYFWe2yMZeVYHDD9jC1yw4r5+FfyUM1hBOHTE4Y+L3yas -H7WLO7dDWWuwJKZtkIvEcupdM5i3y95ee++U8Rs+yskhwcWYAqqi9lt3m/V+llU0 -HGdpwPFC40es/CgcZlUCAwEAAaOBjDCBiTAPBgNVHRMECDAGAQH/AgEKMAsGA1Ud -DwQEAwIBBjAdBgNVHQ4EFgQU43Mt38sOKAze3bOkynm4jrvoMIkwEQYJYIZIAYb4 -QgEBBAQDAgEGMDcGA1UdHwQwMC4wLKAqoCiGJmh0dHA6Ly93d3cuY2VydHBsdXMu -Y29tL0NSTC9jbGFzczIuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQCnVM+IRBnL39R/ -AN9WM2K191EBkOvDP9GIROkkXe/nFL0gt5o8AP5tn9uQ3Nf0YtaLcF3n5QRIqWh8 -yfFC82x/xXp8HVGIutIKPidd3i1RTtMTZGnkLuPT55sJmabglZvOGtd/vjzOUrMR -FcEPF80Du5wlFbqidon8BvEY0JNLDnyCt6X09l/+7UCmnYR0ObncHoUW2ikbhiMA -ybuJfm6AiB4vFLQDJKgybwOaRywwvlbGp0ICcBvqQNi6BQNwB6SW//1IMwrh3KWB -kJtN3X3n57LNXMhqlfil9o3EXXgIvnsG1knPGTZQIy4I5p4FTUcY1Rbpsda2ENW7 -l7+ijrRU ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDDDCCAfSgAwIBAgIDAQAgMA0GCSqGSIb3DQEBBQUAMD4xCzAJBgNVBAYTAlBM -MRswGQYDVQQKExJVbml6ZXRvIFNwLiB6IG8uby4xEjAQBgNVBAMTCUNlcnR1bSBD -QTAeFw0wMjA2MTExMDQ2MzlaFw0yNzA2MTExMDQ2MzlaMD4xCzAJBgNVBAYTAlBM -MRswGQYDVQQKExJVbml6ZXRvIFNwLiB6IG8uby4xEjAQBgNVBAMTCUNlcnR1bSBD -QTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM6xwS7TT3zNJc4YPk/E -jG+AanPIW1H4m9LcuwBcsaD8dQPugfCI7iNS6eYVM42sLQnFdvkrOYCJ5JdLkKWo -ePhzQ3ukYbDYWMzhbGZ+nPMJXlVjhNWo7/OxLjBos8Q82KxujZlakE403Daaj4GI -ULdtlkIJ89eVgw1BS7Bqa/j8D35in2fE7SZfECYPCE/wpFcozo+47UX2bu4lXapu -Ob7kky/ZR6By6/qmW6/KUz/iDsaWVhFu9+lmqSbYf5VT7QqFiLpPKaVCjF62/IUg -AKpoC6EahQGcxEZjgoi2IrHu/qpGWX7PNSzVttpd90gzFFS269lvzs2I1qsb2pY7 -HVkCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEA -uI3O7+cUus/usESSbLQ5PqKEbq24IXfS1HeCh+YgQYHu4vgRt2PRFze+GXYkHAQa -TOs9qmdvLdTN/mUxcMUbpgIKumB7bVjCmkn+YzILa+M6wKyrO7Do0wlRjBCDxjTg -xSvgGrZgFCdsMneMvLJymM/NzD+5yCRCFNZX/OYmQ6kd5YCQzgNUKD73P9P4Te1q -CjqTE5s7FCMTY5w/0YcneeVMUeMBrYVdGjux1XMQpNPyvG5k9VpWkKjHDkx0Dy5x -O/fIR/RpbxXyEV6DHpx8Uq79AtoSqFlnGNu8cN2bsWntgM6JQEhqDjXKKWYVIZQs -6GAqm4VKQPNriiTsBhYscw== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDuzCCAqOgAwIBAgIDBETAMA0GCSqGSIb3DQEBBQUAMH4xCzAJBgNVBAYTAlBM -MSIwIAYDVQQKExlVbml6ZXRvIFRlY2hub2xvZ2llcyBTLkEuMScwJQYDVQQLEx5D -ZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxIjAgBgNVBAMTGUNlcnR1bSBU -cnVzdGVkIE5ldHdvcmsgQ0EwHhcNMDgxMDIyMTIwNzM3WhcNMjkxMjMxMTIwNzM3 -WjB+MQswCQYDVQQGEwJQTDEiMCAGA1UEChMZVW5pemV0byBUZWNobm9sb2dpZXMg -Uy5BLjEnMCUGA1UECxMeQ2VydHVtIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MSIw -IAYDVQQDExlDZXJ0dW0gVHJ1c3RlZCBOZXR3b3JrIENBMIIBIjANBgkqhkiG9w0B -AQEFAAOCAQ8AMIIBCgKCAQEA4/t9o3K6wvDJFIf1awFO4W5AB7ptJ11/91sts1rH -UV+rpDKmYYe2bg+G0jACl/jXaVehGDldamR5xgFZrDwxSjh80gTSSyjoIF87B6LM -TXPb865Px1bVWqeWifrzq2jUI4ZZJ88JJ7ysbnKDHDBy3+Ci6dLhdHUZvSqeexVU -BBvXQzmtVSjF4hq79MDkrjhJM8x2hZ85RdKknvISjFH4fOQtf/WsX+sWn7Et0brM -kUJ3TCXJkDhv2/DM+44el1k+1WBO5gUo7Ul5E0u6SNsv+XLTOcr+H9g0cvW0QM8x -AcPs3hEtF10fuFDRXhmnad4HMyjKUJX5p1TLVIZQRan5SQIDAQABo0IwQDAPBgNV -HRMBAf8EBTADAQH/MB0GA1UdDgQWBBQIds3LB/8k9sXN7buQvOKEN0Z19zAOBgNV -HQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQEFBQADggEBAKaorSLOAT2mo/9i0Eidi15y -sHhE49wcrwn9I0j6vSrEuVUEtRCjjSfeC4Jj0O7eDDd5QVsisrCaQVymcODU0HfL -I9MA4GxWL+FpDQ3Zqr8hgVDZBqWo/5U30Kr+4rP1mS1FhIrlQgnXdAIv94nYmem8 -J9RHjboNRhx3zxSkHLmkMcScKHQDNP8zGSal6Q10tz6XxnboJ5ajZt3hrvJBW8qY -VoNzcOSGGtIxQbovvi0TWnZvTuhOgQ4/WwMioBK+ZlgRSssDxLQqKi2WF+A5VLxI -03YnnZotBqbJ7DnSq9ufmgsnAjUpsUCV5/nonFWIGUbWtzT1fs45mtk48VH3Tyw= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIHTzCCBTegAwIBAgIJAKPaQn6ksa7aMA0GCSqGSIb3DQEBBQUAMIGuMQswCQYD -VQQGEwJFVTFDMEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0 -IHd3dy5jYW1lcmZpcm1hLmNvbS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3 -MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMuQS4xKTAnBgNVBAMTIENoYW1iZXJz -IG9mIENvbW1lcmNlIFJvb3QgLSAyMDA4MB4XDTA4MDgwMTEyMjk1MFoXDTM4MDcz -MTEyMjk1MFowga4xCzAJBgNVBAYTAkVVMUMwQQYDVQQHEzpNYWRyaWQgKHNlZSBj -dXJyZW50IGFkZHJlc3MgYXQgd3d3LmNhbWVyZmlybWEuY29tL2FkZHJlc3MpMRIw -EAYDVQQFEwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENhbWVyZmlybWEgUy5BLjEp -MCcGA1UEAxMgQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdCAtIDIwMDgwggIiMA0G -CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCvAMtwNyuAWko6bHiUfaN/Gh/2NdW9 -28sNRHI+JrKQUrpjOyhYb6WzbZSm891kDFX29ufyIiKAXuFixrYp4YFs8r/lfTJq -VKAyGVn+H4vXPWCGhSRv4xGzdz4gljUha7MI2XAuZPeEklPWDrCQiorjh40G072Q -DuKZoRuGDtqaCrsLYVAGUvGef3bsyw/QHg3PmTA9HMRFEFis1tPo1+XqxQEHd9ZR -5gN/ikilTWh1uem8nk4ZcfUyS5xtYBkL+8ydddy/Js2Pk3g5eXNeJQ7KXOt3EgfL -ZEFHcpOrUMPrCXZkNNI5t3YRCQ12RcSprj1qr7V9ZS+UWBDsXHyvfuK2GNnQm05a -Sd+pZgvMPMZ4fKecHePOjlO+Bd5gD2vlGts/4+EhySnB8esHnFIbAURRPHsl18Tl -UlRdJQfKFiC4reRB7noI/plvg6aRArBsNlVq5331lubKgdaX8ZSD6e2wsWsSaR6s -+12pxZjptFtYer49okQ6Y1nUCyXeG0+95QGezdIp1Z8XGQpvvwyQ0wlf2eOKNcx5 -Wk0ZN5K3xMGtr/R5JJqyAQuxr1yW84Ay+1w9mPGgP0revq+ULtlVmhduYJ1jbLhj -ya6BXBg14JC7vjxPNyK5fuvPnnchpj04gftI2jE9K+OJ9dC1vX7gUMQSibMjmhAx -hduub+84Mxh2EQIDAQABo4IBbDCCAWgwEgYDVR0TAQH/BAgwBgEB/wIBDDAdBgNV -HQ4EFgQU+SSsD7K1+HnA+mCIG8TZTQKeFxkwgeMGA1UdIwSB2zCB2IAU+SSsD7K1 -+HnA+mCIG8TZTQKeFxmhgbSkgbEwga4xCzAJBgNVBAYTAkVVMUMwQQYDVQQHEzpN -YWRyaWQgKHNlZSBjdXJyZW50IGFkZHJlc3MgYXQgd3d3LmNhbWVyZmlybWEuY29t -L2FkZHJlc3MpMRIwEAYDVQQFEwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENhbWVy -ZmlybWEgUy5BLjEpMCcGA1UEAxMgQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdCAt -IDIwMDiCCQCj2kJ+pLGu2jAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRV -HSAAMCowKAYIKwYBBQUHAgEWHGh0dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20w -DQYJKoZIhvcNAQEFBQADggIBAJASryI1wqM58C7e6bXpeHxIvj99RZJe6dqxGfwW -PJ+0W2aeaufDuV2I6A+tzyMP3iU6XsxPpcG1Lawk0lgH3qLPaYRgM+gQDROpI9CF -5Y57pp49chNyM/WqfcZjHwj0/gF/JM8rLFQJ3uIrbZLGOU8W6jx+ekbURWpGqOt1 -glanq6B8aBMz9p0w8G8nOSQjKpD9kCk18pPfNKXG9/jvjA9iSnyu0/VU+I22mlaH -FoI6M6taIgj3grrqLuBHmrS1RaMFO9ncLkVAO+rcf+g769HsJtg1pDDFOqxXnrN2 -pSB7+R5KBWIBpih1YJeSDW4+TTdDDZIVnBgizVGZoCkaPF+KMjNbMMeJL0eYD6MD -xvbxrN8y8NmBGuScvfaAFPDRLLmF9dijscilIeUcE5fuDr3fKanvNFNb0+RqE4QG -tjICxFKuItLcsiFCGtpA8CnJ7AoMXOLQusxI0zcKzBIKinmwPQN/aUv0NCB9szTq -jktk9T79syNnFQ0EuPAtwQlRPLJsFfClI9eDdOTlLsn+mCdCxqvGnrDQWzilm1De -fhiYtUU79nm06PcaewaD+9CL2rvHvRirCG88gGtAPxkZumWK5r7VXNM21+9AUiRg -OGcEMeyP84LG3rlV8zsxkVrctQgVrXYlCg17LofiDKYGvCYQbTed7N14jHyAxfDZ -d0jQ ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIID9zCCAt+gAwIBAgIESJ8AATANBgkqhkiG9w0BAQUFADCBijELMAkGA1UEBhMC -Q04xMjAwBgNVBAoMKUNoaW5hIEludGVybmV0IE5ldHdvcmsgSW5mb3JtYXRpb24g -Q2VudGVyMUcwRQYDVQQDDD5DaGluYSBJbnRlcm5ldCBOZXR3b3JrIEluZm9ybWF0 -aW9uIENlbnRlciBFViBDZXJ0aWZpY2F0ZXMgUm9vdDAeFw0xMDA4MzEwNzExMjVa -Fw0zMDA4MzEwNzExMjVaMIGKMQswCQYDVQQGEwJDTjEyMDAGA1UECgwpQ2hpbmEg -SW50ZXJuZXQgTmV0d29yayBJbmZvcm1hdGlvbiBDZW50ZXIxRzBFBgNVBAMMPkNo -aW5hIEludGVybmV0IE5ldHdvcmsgSW5mb3JtYXRpb24gQ2VudGVyIEVWIENlcnRp -ZmljYXRlcyBSb290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAm35z -7r07eKpkQ0H1UN+U8i6yjUqORlTSIRLIOTJCBumD1Z9S7eVnAztUwYyZmczpwA// -DdmEEbK40ctb3B75aDFk4Zv6dOtouSCV98YPjUesWgbdYavi7NifFy2cyjw1l1Vx -zUOFsUcW9SxTgHbP0wBkvUCZ3czY28Sf1hNfQYOL+Q2HklY0bBoQCxfVWhyXWIQ8 -hBouXJE0bhlffxdpxWXvayHG1VA6v2G5BY3vbzQ6sm8UY78WO5upKv23KzhmBsUs -4qpnHkWnjQRmQvaPK++IIGmPMowUc9orhpFjIpryp9vOiYurXccUwVswah+xt54u -gQEC7c+WXmPbqOY4twIDAQABo2MwYTAfBgNVHSMEGDAWgBR8cks5x8DbYqVPm6oY -NJKiyoOCWTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4E -FgQUfHJLOcfA22KlT5uqGDSSosqDglkwDQYJKoZIhvcNAQEFBQADggEBACrDx0M3 -j92tpLIM7twUbY8opJhJywyA6vPtI2Z1fcXTIWd50XPFtQO3WKwMVC/GVhMPMdoG -52U7HW8228gd+f2ABsqjPWYWqJ1MFn3AlUa1UeTiH9fqBk1jjZaM7+czV0I664zB -echNdn3e9rG3geCg+aF4RhcaVpjwTj2rHO3sOdwHSPdj/gauwqRcalsyiMXHM4Ws -ZkJHwlgkmeHlPuV1LI5D1l08eB6olYIpUNHRFrrvwb562bTYzB5MRuF3sTGrvSrI -zo9uoV1/A3U05K2JRVRevq4opbs/eHnrc7MKDf2+yfdWrPa37S+bISnHOLaVxATy -wy39FCqQmbkHzJ8= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDkzCCAnugAwIBAgIQFBOWgxRVjOp7Y+X8NId3RDANBgkqhkiG9w0BAQUFADA0 -MRMwEQYDVQQDEwpDb21TaWduIENBMRAwDgYDVQQKEwdDb21TaWduMQswCQYDVQQG -EwJJTDAeFw0wNDAzMjQxMTMyMThaFw0yOTAzMTkxNTAyMThaMDQxEzARBgNVBAMT -CkNvbVNpZ24gQ0ExEDAOBgNVBAoTB0NvbVNpZ24xCzAJBgNVBAYTAklMMIIBIjAN -BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA8ORUaSvTx49qROR+WCf4C9DklBKK -8Rs4OC8fMZwG1Cyn3gsqrhqg455qv588x26i+YtkbDqthVVRVKU4VbirgwTyP2Q2 -98CNQ0NqZtH3FyrV7zb6MBBC11PN+fozc0yz6YQgitZBJzXkOPqUm7h65HkfM/sb -2CEJKHxNGGleZIp6GZPKfuzzcuc3B1hZKKxC+cX/zT/npfo4sdAMx9lSGlPWgcxC -ejVb7Us6eva1jsz/D3zkYDaHL63woSV9/9JLEYhwVKZBqGdTUkJe5DSe5L6j7Kpi -Xd3DTKaCQeQzC6zJMw9kglcq/QytNuEMrkvF7zuZ2SOzW120V+x0cAwqTwIDAQAB -o4GgMIGdMAwGA1UdEwQFMAMBAf8wPQYDVR0fBDYwNDAyoDCgLoYsaHR0cDovL2Zl -ZGlyLmNvbXNpZ24uY28uaWwvY3JsL0NvbVNpZ25DQS5jcmwwDgYDVR0PAQH/BAQD -AgGGMB8GA1UdIwQYMBaAFEsBmz5WGmU2dst7l6qSBe4y5ygxMB0GA1UdDgQWBBRL -AZs+VhplNnbLe5eqkgXuMucoMTANBgkqhkiG9w0BAQUFAAOCAQEA0Nmlfv4pYEWd -foPPbrxHbvUanlR2QnG0PFg/LUAlQvaBnPGJEMgOqnhPOAlXsDzACPw1jvFIUY0M -cXS6hMTXcpuEfDhOZAYnKuGntewImbQKDdSFc8gS4TXt8QUxHXOZDOuWyt3T5oWq -8Ir7dcHyCTxlZWTzTNity4hp8+SDtwy9F1qWF8pb/627HOkthIDYIb6FUtnUdLlp -hbpN7Sgy6/lhSuTENh4Z3G+EER+V9YMoGKgzkkMn3V0TBEVPh9VGzT2ouvDzuFYk -Res3x+F2T3I5GN9+dHLHcy056mDmrRGiVod7w2ia/viMcKjfZTL0pECMocJEAw6U -AGegcQCCSA== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIEMjCCAxqgAwIBAgIBATANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQGEwJHQjEb -MBkGA1UECAwSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRow -GAYDVQQKDBFDb21vZG8gQ0EgTGltaXRlZDEhMB8GA1UEAwwYQUFBIENlcnRpZmlj -YXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAwMFoXDTI4MTIzMTIzNTk1OVowezEL -MAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UE -BwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxITAfBgNVBAMM -GEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEP -ADCCAQoCggEBAL5AnfRu4ep2hxxNRUSOvkbIgwadwSr+GB+O5AL686tdUIoWMQua -BtDFcCLNSS1UY8y2bmhGC1Pqy0wkwLxyTurxFa70VJoSCsN6sjNg4tqJVfMiWPPe -3M/vg4aijJRPn2jymJBGhCfHdr/jzDUsi14HZGWCwEiwqJH5YZ92IFCokcdmtet4 -YgNW8IoaE+oxox6gmf049vYnMlhvB/VruPsUK6+3qszWY19zjNoFmag4qMsXeDZR -rOme9Hg6jc8P2ULimAyrL58OAd7vn5lJ8S3frHRNG5i1R8XlKdH5kBjHYpy+g8cm -ez6KJcfA3Z3mNWgQIJ2P2N7Sw4ScDV7oL8kCAwEAAaOBwDCBvTAdBgNVHQ4EFgQU -oBEKIz6W8Qfs4q8p74Klf9AwpLQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQF -MAMBAf8wewYDVR0fBHQwcjA4oDagNIYyaHR0cDovL2NybC5jb21vZG9jYS5jb20v -QUFBQ2VydGlmaWNhdGVTZXJ2aWNlcy5jcmwwNqA0oDKGMGh0dHA6Ly9jcmwuY29t -b2RvLm5ldC9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2VzLmNybDANBgkqhkiG9w0BAQUF -AAOCAQEACFb8AvCb6P+k+tZ7xkSAzk/ExfYAWMymtrwUSWgEdujm7l3sAg9g1o1Q -GE8mTgHj5rCl7r+8dFRBv/38ErjHT1r0iWAFf2C3BUrz9vHCv8S5dIa2LX1rzNLz -Rt0vxuBqw8M0Ayx9lt1awg6nCpnBBYurDC/zXDrPbDdVCYfeU0BsWO/8tqtlbgT2 -G9w84FoVxp7Z8VlIMCFlA2zs6SFz7JsDoeA3raAVGI/6ugLOpyypEBMs1OUIJqsi -l2D4kF501KKaU73yqWjgom7C12yxow+ev+to51byrvLjKzg6CYG1a4XXvi3tPxq3 -smPi9WIsgtRqAEFQ8TmDn5XpNpaYbg== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIEPzCCAyegAwIBAgIBATANBgkqhkiG9w0BAQUFADB+MQswCQYDVQQGEwJHQjEb -MBkGA1UECAwSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRow -GAYDVQQKDBFDb21vZG8gQ0EgTGltaXRlZDEkMCIGA1UEAwwbU2VjdXJlIENlcnRp -ZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAwMFoXDTI4MTIzMTIzNTk1OVow -fjELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G -A1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxJDAiBgNV -BAMMG1NlY3VyZSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEB -BQADggEPADCCAQoCggEBAMBxM4KK0HDrc4eCQNUd5MvJDkKQ+d40uaG6EfQlhfPM -cm3ye5drswfxdySRXyWP9nQ95IDC+DwN879A6vfIUtFyb+/Iq0G4bi4XKpVpDM3S -HpR7LZQdqnXXs5jLrLxkU0C8j6ysNstcrbvd4JQX7NFc0L/vpZXJkMWwrPsbQ996 -CF23uPJAGysnnlDOXmWCiIxe004MeuoIkbY2qitC++rCoznl2yY4rYsK7hljxxwk -3wN42ubqwUcaCwtGCd0C/N7Lh1/XMGNooa7cMqG6vv5Eq2i2pRcV/b3Vp6ea5EQz -6YiO/O1R65NxTq0B50SOqy3LqP4BSUjwwN3HaNiS/j0CAwEAAaOBxzCBxDAdBgNV -HQ4EFgQUPNiTiMLAggnMAZkGkyDpnnAJY08wDgYDVR0PAQH/BAQDAgEGMA8GA1Ud -EwEB/wQFMAMBAf8wgYEGA1UdHwR6MHgwO6A5oDeGNWh0dHA6Ly9jcmwuY29tb2Rv -Y2EuY29tL1NlY3VyZUNlcnRpZmljYXRlU2VydmljZXMuY3JsMDmgN6A1hjNodHRw -Oi8vY3JsLmNvbW9kby5uZXQvU2VjdXJlQ2VydGlmaWNhdGVTZXJ2aWNlcy5jcmww -DQYJKoZIhvcNAQEFBQADggEBAIcBbSMdflsXfcFhMs+P5/OKlFlm4J4oqF7Tt/Q0 -5qo5spcWxYJvMqTpjOev/e/C6LlLqqP05tqNZSH7uoDrJiiFGv45jN5bBAS0VPmj -Z55B+glSzAVIqMk/IQQezkhr/IXownuvf7fM+F86/TXGDe+X3EyrEeFryzHRbPtI -gKvcnDe4IRRLDXE97IMzbtFuMhbsmMcWi1mmNKsFVy2T96oTy9IT4rcuO81rUBcJ -aD61JlfutuC23bkpgHl9j6PwpCikFcSF9CfUa7/lXORlAnZUtOM3ZiTTGWHIUhDl -izeauan5Hb/qmZJhlv8BzaFfDbxxvA6sCx1HRR3B7Hzs/Sk= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIEQzCCAyugAwIBAgIBATANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJHQjEb -MBkGA1UECAwSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRow -GAYDVQQKDBFDb21vZG8gQ0EgTGltaXRlZDElMCMGA1UEAwwcVHJ1c3RlZCBDZXJ0 -aWZpY2F0ZSBTZXJ2aWNlczAeFw0wNDAxMDEwMDAwMDBaFw0yODEyMzEyMzU5NTla -MH8xCzAJBgNVBAYTAkdCMRswGQYDVQQIDBJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAO -BgNVBAcMB1NhbGZvcmQxGjAYBgNVBAoMEUNvbW9kbyBDQSBMaW1pdGVkMSUwIwYD -VQQDDBxUcnVzdGVkIENlcnRpZmljYXRlIFNlcnZpY2VzMIIBIjANBgkqhkiG9w0B -AQEFAAOCAQ8AMIIBCgKCAQEA33FvNlhTWvI2VFeAxHQIIO0Yfyod5jWaHiWsnOWW -fnJSoBVC21ndZHoa0Lh73TkVvFVIxO06AOoxEbrycXQaZ7jPM8yoMa+j49d/vzMt -TGo87IvDktJTdyR0nAducPy9C1t2ul/y/9c3S0pgePfw+spwtOpZqqPOSC+pw7IL -fhdyFgymBwwbOM/JYrc/oJOlh0Hyt3BAd9i+FHzjqMB6juljatEPmsbS9Is6FARW -1O24zG71++IsWL1/T2sr92AkWCTOJu80kTrV44HQsvAEAtdbtz6SrGsSivnkBbA7 -kUlcsutT6vifR4buv5XAwAaf0lteERv0xwQ1KdJVXOTt6wIDAQABo4HJMIHGMB0G -A1UdDgQWBBTFe1i97doladL3WRaoszLAeydb9DAOBgNVHQ8BAf8EBAMCAQYwDwYD -VR0TAQH/BAUwAwEB/zCBgwYDVR0fBHwwejA8oDqgOIY2aHR0cDovL2NybC5jb21v -ZG9jYS5jb20vVHJ1c3RlZENlcnRpZmljYXRlU2VydmljZXMuY3JsMDqgOKA2hjRo -dHRwOi8vY3JsLmNvbW9kby5uZXQvVHJ1c3RlZENlcnRpZmljYXRlU2VydmljZXMu -Y3JsMA0GCSqGSIb3DQEBBQUAA4IBAQDIk4E7ibSvuIQSTI3S8NtwuleGFTQQuS9/ -HrCoiWChisJ3DFBKmwCL2Iv0QeLQg4pKHBQGsKNoBXAxMKdTmw7pSqBYaWcOrp32 -pSxBvzwGa+RZzG0Q8ZZvH9/0BAKkn0U+yNj6NkZEUD+Cl5EfKNsYEYwq5GWDVxIS -jBc/lDb+XbDABHcTuPQV1T84zJQ6VdCsmPW6AF/ghhmBeC8owH7TzEIK9a5QoNE+ -xqFx7D+gIIxmOom0jtTYsU0lR+4viMi14QVFwL4Ucd56/Y57fU0IlqUSc/Atyjcn -dBInTMu2l+nZrghtWjlA3QVHdWpaIbOjGM9O9y5Xt5hwXsjEeLBi ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDoTCCAomgAwIBAgILBAAAAAABD4WqLUgwDQYJKoZIhvcNAQEFBQAwOzEYMBYG -A1UEChMPQ3liZXJ0cnVzdCwgSW5jMR8wHQYDVQQDExZDeWJlcnRydXN0IEdsb2Jh -bCBSb290MB4XDTA2MTIxNTA4MDAwMFoXDTIxMTIxNTA4MDAwMFowOzEYMBYGA1UE -ChMPQ3liZXJ0cnVzdCwgSW5jMR8wHQYDVQQDExZDeWJlcnRydXN0IEdsb2JhbCBS -b290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA+Mi8vRRQZhP/8NN5 -7CPytxrHjoXxEnOmGaoQ25yiZXRadz5RfVb23CO21O1fWLE3TdVJDm71aofW0ozS -J8bi/zafmGWgE07GKmSb1ZASzxQG9Dvj1Ci+6A74q05IlG2OlTEQXO2iLb3VOm2y -HLtgwEZLAfVJrn5GitB0jaEMAs7u/OePuGtm839EAL9mJRQr3RAwHQeWP032a7iP -t3sMpTjr3kfb1V05/Iin89cqdPHoWqI7n1C6poxFNcJQZZXcY4Lv3b93TZxiyWNz -FtApD0mpSPCzqrdsxacwOUBdrsTiXSZT8M4cIwhhqJQZugRiQOwfOHB3EgZxpzAY -XSUnpQIDAQABo4GlMIGiMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/ -MB0GA1UdDgQWBBS2CHsNesysIEyGVjJez6tuhS1wVzA/BgNVHR8EODA2MDSgMqAw -hi5odHRwOi8vd3d3Mi5wdWJsaWMtdHJ1c3QuY29tL2NybC9jdC9jdHJvb3QuY3Js -MB8GA1UdIwQYMBaAFLYIew16zKwgTIZWMl7Pq26FLXBXMA0GCSqGSIb3DQEBBQUA -A4IBAQBW7wojoFROlZfJ+InaRcHUowAl9B8Tq7ejhVhpwjCt2BWKLePJzYFa+HMj -Wqd8BfP9IjsO0QbE2zZMcwSO5bAi5MXzLqXZI+O4Tkogp24CJJ8iYGd7ix1yCcUx -XOl5n4BHPa2hCwcUPUf/A2kaDAtE52Mlp3+yybh2hO0j9n0Hq0V+09+zv+mKts2o -omcrUtW3ZfA5TGOgkXmTUg9U3YO7n9GPp1Nzw8v/MOx8BLjYRB+TX3EJIrduPuoc -A06dGiBh+4E37F78CkWr1+cXVdCg6mCbpvbjjFspwgZgFJ0tl0ypkxWdYcQBX0jW -WL1WMRJOEcgh4LMRkWXbtKaIOM5V ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIEMzCCAxugAwIBAgIDCYPzMA0GCSqGSIb3DQEBCwUAME0xCzAJBgNVBAYTAkRF -MRUwEwYDVQQKDAxELVRydXN0IEdtYkgxJzAlBgNVBAMMHkQtVFJVU1QgUm9vdCBD -bGFzcyAzIENBIDIgMjAwOTAeFw0wOTExMDUwODM1NThaFw0yOTExMDUwODM1NTha -ME0xCzAJBgNVBAYTAkRFMRUwEwYDVQQKDAxELVRydXN0IEdtYkgxJzAlBgNVBAMM -HkQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgMjAwOTCCASIwDQYJKoZIhvcNAQEB -BQADggEPADCCAQoCggEBANOySs96R+91myP6Oi/WUEWJNTrGa9v+2wBoqOADER03 -UAifTUpolDWzU9GUY6cgVq/eUXjsKj3zSEhQPgrfRlWLJ23DEE0NkVJD2IfgXU42 -tSHKXzlABF9bfsyjxiupQB7ZNoTWSPOSHjRGICTBpFGOShrvUD9pXRl/RcPHAY9R -ySPocq60vFYJfxLLHLGvKZAKyVXMD9O0Gu1HNVpK7ZxzBCHQqr0ME7UAyiZsxGsM -lFqVlNpQmvH/pStmMaTJOKDfHR+4CS7zp+hnUquVH+BGPtikw8paxTGA6Eian5Rp -/hnd2HN8gcqW3o7tszIFZYQ05ub9VxC1X3a/L7AQDcUCAwEAAaOCARowggEWMA8G -A1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFP3aFMSfMN4hvR5COfyrYyNJ4PGEMA4G -A1UdDwEB/wQEAwIBBjCB0wYDVR0fBIHLMIHIMIGAoH6gfIZ6bGRhcDovL2RpcmVj -dG9yeS5kLXRydXN0Lm5ldC9DTj1ELVRSVVNUJTIwUm9vdCUyMENsYXNzJTIwMyUy -MENBJTIwMiUyMDIwMDksTz1ELVRydXN0JTIwR21iSCxDPURFP2NlcnRpZmljYXRl -cmV2b2NhdGlvbmxpc3QwQ6BBoD+GPWh0dHA6Ly93d3cuZC10cnVzdC5uZXQvY3Js -L2QtdHJ1c3Rfcm9vdF9jbGFzc18zX2NhXzJfMjAwOS5jcmwwDQYJKoZIhvcNAQEL -BQADggEBAH+X2zDI36ScfSF6gHDOFBJpiBSVYEQBrLLpME+bUMJm2H6NMLVwMeni -acfzcNsgFYbQDfC+rAF1hM5+n02/t2A7nPPKHeJeaNijnZflQGDSNiH+0LS4F9p0 -o3/U37CYAqxva2ssJSRyoWXuJVrl5jLn8t+rSfrzkGkj2wTZ51xY/GXUl77M/C4K -zCUqNQT4YJEVdT1B/yMfGchs64JTBKbkTCJNjYy6zltz7GRUUG3RnFX7acM2w4y8 -PIWmawomDeCTmGCufsYkl4phX5GOZpIJhzbNi5stPvZR1FDUWSi9g/LMKHtThm3Y -Johw1+qRzT65ysCQblrGXnRl11z+o+I= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIEQzCCAyugAwIBAgIDCYP0MA0GCSqGSIb3DQEBCwUAMFAxCzAJBgNVBAYTAkRF -MRUwEwYDVQQKDAxELVRydXN0IEdtYkgxKjAoBgNVBAMMIUQtVFJVU1QgUm9vdCBD -bGFzcyAzIENBIDIgRVYgMjAwOTAeFw0wOTExMDUwODUwNDZaFw0yOTExMDUwODUw -NDZaMFAxCzAJBgNVBAYTAkRFMRUwEwYDVQQKDAxELVRydXN0IEdtYkgxKjAoBgNV -BAMMIUQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgRVYgMjAwOTCCASIwDQYJKoZI -hvcNAQEBBQADggEPADCCAQoCggEBAJnxhDRwui+3MKCOvXwEz75ivJn9gpfSegpn -ljgJ9hBOlSJzmY3aFS3nBfwZcyK3jpgAvDw9rKFs+9Z5JUut8Mxk2og+KbgPCdM0 -3TP1YtHhzRnp7hhPTFiu4h7WDFsVWtg6uMQYZB7jM7K1iXdODL/ZlGsTl28So/6Z -qQTMFexgaDbtCHu39b+T7WYxg4zGcTSHThfqr4uRjRxWQa4iN1438h3Z0S0NL2lR -p75mpoo6Kr3HGrHhFPC+Oh25z1uxav60sUYgovseO3Dvk5h9jHOW8sXvhXCtKSb8 -HgQ+HKDYD8tSg2J87otTlZCpV6LqYQXY+U3EJ/pure3511H3a6UCAwEAAaOCASQw -ggEgMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNOUikxiEyoZLsyvcop9Ntea -HNxnMA4GA1UdDwEB/wQEAwIBBjCB3QYDVR0fBIHVMIHSMIGHoIGEoIGBhn9sZGFw -Oi8vZGlyZWN0b3J5LmQtdHJ1c3QubmV0L0NOPUQtVFJVU1QlMjBSb290JTIwQ2xh -c3MlMjAzJTIwQ0ElMjAyJTIwRVYlMjAyMDA5LE89RC1UcnVzdCUyMEdtYkgsQz1E -RT9jZXJ0aWZpY2F0ZXJldm9jYXRpb25saXN0MEagRKBChkBodHRwOi8vd3d3LmQt -dHJ1c3QubmV0L2NybC9kLXRydXN0X3Jvb3RfY2xhc3NfM19jYV8yX2V2XzIwMDku -Y3JsMA0GCSqGSIb3DQEBCwUAA4IBAQA07XtaPKSUiO8aEXUHL7P+PPoeUSbrh/Yp -3uDx1MYkCenBz1UbtDDZzhr+BlGmFaQt77JLvyAoJUnRpjZ3NOhk31KxEcdzes05 -nsKtjHEh8lprr988TlWvsoRlFIm5d8sqMb7Po23Pb0iUMkZv53GMoKaEGTcH8gNF -CSuGdXzfX2lXANtu2KZyIktQ1HWYVt+3GP9DQ1CuekR78HlR10M9p9OB0/DJT7na -xpeG0ILD5EJt/rDiZE4OJudANCa1CInXCGNjOCd1HjPqbqjdn5lPdE2BiYBL3ZqX -KVwvvoFBuYz/6n1gBp7N1z3TLqMVvKjmJuVvw9y4AyHqnxbxLFS1 ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIECTCCAvGgAwIBAgIQDV6ZCtadt3js2AdWO4YV2TANBgkqhkiG9w0BAQUFADBb -MQswCQYDVQQGEwJVUzEgMB4GA1UEChMXRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3Qx -ETAPBgNVBAsTCERTVCBBQ0VTMRcwFQYDVQQDEw5EU1QgQUNFUyBDQSBYNjAeFw0w -MzExMjAyMTE5NThaFw0xNzExMjAyMTE5NThaMFsxCzAJBgNVBAYTAlVTMSAwHgYD -VQQKExdEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdDERMA8GA1UECxMIRFNUIEFDRVMx -FzAVBgNVBAMTDkRTVCBBQ0VTIENBIFg2MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A -MIIBCgKCAQEAuT31LMmU3HWKlV1j6IR3dma5WZFcRt2SPp/5DgO0PWGSvSMmtWPu -ktKe1jzIDZBfZIGxqAgNTNj50wUoUrQBJcWVHAx+PhCEdc/BGZFjz+iokYi5Q1K7 -gLFViYsx+tC3dr5BPTCapCIlF3PoHuLTrCq9Wzgh1SpL11V94zpVvddtawJXa+ZH -fAjIgrrep4c9oW24MFbCswKBXy314powGCi4ZtPLAZZv6opFVdbgnf9nKxcCpk4a -ahELfrd755jWjHZvwTvbUJN+5dCOHze4vbrGn2zpfDPyMjwmR/onJALJfh1biEIT -ajV8fTXpLmaRcpPVMibEdPVTo7NdmvYJywIDAQABo4HIMIHFMA8GA1UdEwEB/wQF -MAMBAf8wDgYDVR0PAQH/BAQDAgHGMB8GA1UdEQQYMBaBFHBraS1vcHNAdHJ1c3Rk -c3QuY29tMGIGA1UdIARbMFkwVwYKYIZIAWUDAgEBATBJMEcGCCsGAQUFBwIBFjto -dHRwOi8vd3d3LnRydXN0ZHN0LmNvbS9jZXJ0aWZpY2F0ZXMvcG9saWN5L0FDRVMt -aW5kZXguaHRtbDAdBgNVHQ4EFgQUCXIGThhDD+XWzMNqizF7eI+og7gwDQYJKoZI -hvcNAQEFBQADggEBAKPYjtay284F5zLNAdMEA+V25FYrnJmQ6AgwbN99Pe7lv7Uk -QIRJ4dEorsTCOlMwiPH1d25Ryvr/ma8kXxug/fKshMrfqfBfBC6tFr8hlxCBPeP/ -h40y3JTlR4peahPJlJU90u7INJXQgNStMgiAVDzgvVJT11J8smk/f3rPanTK+gQq -nExaBqXpIK1FZg9p8d2/6eMyi/rgwYZNcjwu2JN4Cir42NInPRmJX1p7ijvMDNpR -rscL9yuwNwXsvFcj4jjSm2jzVhKIT0J8uDHEtdvkyCE06UgRNe76x5JXxZ805Mf2 -9w4LTJxoeHtxMcfrHuBnQfO3oKfN5XozNmr6mis= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDSjCCAjKgAwIBAgIQRK+wgNajJ7qJMDmGLvhAazANBgkqhkiG9w0BAQUFADA/ -MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT -DkRTVCBSb290IENBIFgzMB4XDTAwMDkzMDIxMTIxOVoXDTIxMDkzMDE0MDExNVow -PzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QgQ28uMRcwFQYDVQQD -Ew5EU1QgUm9vdCBDQSBYMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB -AN+v6ZdQCINXtMxiZfaQguzH0yxrMMpb7NnDfcdAwRgUi+DoM3ZJKuM/IUmTrE4O -rz5Iy2Xu/NMhD2XSKtkyj4zl93ewEnu1lcCJo6m67XMuegwGMoOifooUMM0RoOEq -OLl5CjH9UL2AZd+3UWODyOKIYepLYYHsUmu5ouJLGiifSKOeDNoJjj4XLh7dIN9b -xiqKqy69cK3FCxolkHRyxXtqqzTWMIn/5WgTe1QLyNau7Fqckh49ZLOMxt+/yUFw -7BZy1SbsOFU5Q9D8/RhcQPGX69Wam40dutolucbY38EVAjqr2m7xPi71XAicPNaD -aeQQmxkqtilX4+U9m5/wAl0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNV -HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMSnsaR7LHH62+FLkHX/xBVghYkQMA0GCSqG -SIb3DQEBBQUAA4IBAQCjGiybFwBcqR7uKGY3Or+Dxz9LwwmglSBd49lZRNI+DT69 -ikugdB/OEIKcdBodfpga3csTS7MgROSR6cz8faXbauX+5v3gTt23ADq1cEmv8uXr -AvHRAosZy5Q6XkjEGB5YGV8eAlrwDPGxrancWYaLbumR9YbK+rlmM6pZW87ipxZz -R8srzJmwN0jP41ZL9c8PDHIyh8bwRLtTcm1D9SZImlJnt1ir/md2cXjbDaJWFBM5 -JDGFoqgCWjBH4d1QB7wCCZAA62RjYJsWvIjJEubSfZGL+T0yjWW06XyxV3bqxbYo -Ob8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDnzCCAoegAwIBAgIBJjANBgkqhkiG9w0BAQUFADBxMQswCQYDVQQGEwJERTEc -MBoGA1UEChMTRGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0GA1UECxMWVC1UZWxlU2Vj -IFRydXN0IENlbnRlcjEjMCEGA1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBSb290IENB -IDIwHhcNOTkwNzA5MTIxMTAwWhcNMTkwNzA5MjM1OTAwWjBxMQswCQYDVQQGEwJE -RTEcMBoGA1UEChMTRGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0GA1UECxMWVC1UZWxl -U2VjIFRydXN0IENlbnRlcjEjMCEGA1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBSb290 -IENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCrC6M14IspFLEU -ha88EOQ5bzVdSq7d6mGNlUn0b2SjGmBmpKlAIoTZ1KXleJMOaAGtuU1cOs7TuKhC -QN/Po7qCWWqSG6wcmtoIKyUn+WkjR/Hg6yx6m/UTAtB+NHzCnjwAWav12gz1Mjwr -rFDa1sPeg5TKqAyZMg4ISFZbavva4VhYAUlfckE8FQYBjl2tqriTtM2e66foai1S -NNs671x1Udrb8zH57nGYMsRUFUQM+ZtV7a3fGAigo4aKSe5TBY8ZTNXeWHmb0moc -QqvF1afPaA+W5OFhmHZhyJF81j4A4pFQh+GdCuatl9Idxjp9y7zaAzTVjlsB9WoH -txa2bkp/AgMBAAGjQjBAMB0GA1UdDgQWBBQxw3kbuvVT1xfgiXotF2wKsyudMzAP -BgNVHRMECDAGAQH/AgEFMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOC -AQEAlGRZrTlk5ynrE/5aw4sTV8gEJPB0d8Bg42f76Ymmg7+Wgnxu1MM9756Abrsp -tJh6sTtU6zkXR34ajgv8HzFZMQSyzhfzLMdiNlXiItiJVbSYSKpk+tYcNthEeFpa -IzpXl/V6ME+un2pMSyuOoAPjPuCp1NJ70rOo4nI8rZ7/gFnkm0W09juwzTkZmDLl -6iFhkOQxIY40sfcvNUqFENrnijchvllj4PKFiDFT1FQUhXB59C4Gdyd1Lx+4ivn+ -xbrYNuSD7Odlt79jWvNGr4GUN9RBjNYj1h7P9WgbRGOiWrqnNVmh5XAFmw4jV5mU -Cm26OWMohpLzGITY+9HPBVZkVw== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUFADBl -MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 -d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJv -b3QgQ0EwHhcNMDYxMTEwMDAwMDAwWhcNMzExMTEwMDAwMDAwWjBlMQswCQYDVQQG -EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNl -cnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwggEi -MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtDhXO5EOAXLGH87dg+XESpa7c -JpSIqvTO9SA5KFhgDPiA2qkVlTJhPLWxKISKityfCgyDF3qPkKyK53lTXDGEKvYP -mDI2dsze3Tyoou9q+yHyUmHfnyDXH+Kx2f4YZNISW1/5WBg1vEfNoTb5a3/UsDg+ -wRvDjDPZ2C8Y/igPs6eD1sNuRMBhNZYW/lmci3Zt1/GiSw0r/wty2p5g0I6QNcZ4 -VYcgoc/lbQrISXwxmDNsIumH0DJaoroTghHtORedmTpyoeb6pNnVFzF1roV9Iq4/ -AUaG9ih5yLHa5FcXxH4cDrC0kqZWs72yl+2qp/C3xag/lRbQ/6GW6whfGHdPAgMB -AAGjYzBhMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQW -BBRF66Kv9JLLgjEtUYunpyGd823IDzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYun -pyGd823IDzANBgkqhkiG9w0BAQUFAAOCAQEAog683+Lt8ONyc3pklL/3cmbYMuRC -dWKuh+vy1dneVrOfzM4UKLkNl2BcEkxY5NM9g0lFWJc1aRqoR+pWxnmrEthngYTf -fwk8lOa4JiwgvT2zKIn3X/8i4peEH+ll74fg38FnSbNd67IJKusm7Xi+fT8r87cm -NW1fiQG2SVufAQWbqz0lwcy2f8Lxb4bG+mRo64EtlOtCt/qMHt1i8b5QZ7dsvfPx -H2sMNgcWfzd8qVttevESRmCD1ycEvkvOl77DZypoEd+A5wwzZr8TDRRu838fYxAe -+o0bJW1sj6W3YQGx0qMmoRBxna3iw/nDmVG3KwcIzi7mULKn+gpFL6Lw8g== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDljCCAn6gAwIBAgIQC5McOtY5Z+pnI7/Dr5r0SzANBgkqhkiG9w0BAQsFADBl -MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 -d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJv -b3QgRzIwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1MTIwMDAwWjBlMQswCQYDVQQG -EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNl -cnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzIwggEi -MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ5ygvUj82ckmIkzTz+GoeMVSA -n61UQbVH35ao1K+ALbkKz3X9iaV9JPrjIgwrvJUXCzO/GU1BBpAAvQxNEP4Htecc -biJVMWWXvdMX0h5i89vqbFCMP4QMls+3ywPgym2hFEwbid3tALBSfK+RbLE4E9Hp -EgjAALAcKxHad3A2m67OeYfcgnDmCXRwVWmvo2ifv922ebPynXApVfSr/5Vh88lA -bx3RvpO704gqu52/clpWcTs/1PPRCv4o76Pu2ZmvA9OPYLfykqGxvYmJHzDNw6Yu -YjOuFgJ3RFrngQo8p0Quebg/BLxcoIfhG69Rjs3sLPr4/m3wOnyqi+RnlTGNAgMB -AAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQW -BBTOw0q5mVXyuNtgv6l+vVa1lzan1jANBgkqhkiG9w0BAQsFAAOCAQEAyqVVjOPI -QW5pJ6d1Ee88hjZv0p3GeDgdaZaikmkuOGybfQTUiaWxMTeKySHMq2zNixya1r9I -0jJmwYrA8y8678Dj1JGG0VDjA9tzd29KOVPt3ibHtX2vK0LRdWLjSisCx1BL4Gni -lmwORGYQRI+tBev4eaymG+g3NJ1TyWGqolKvSnAWhsI6yLETcDbYz+70CjTVW0z9 -B5yiutkBclzzTcHdDrEcDcRjvq30FPuJ7KJBDkzMyFdA0G4Dqs0MjomZmWzwPDCv -ON9vvKO+KSAnq3T/EyJ43pdSVR6DtVQgA+6uwE9W3jfMw3+qBCe703e4YtsXfJwo -IhNzbM8m9Yop5w== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIICRjCCAc2gAwIBAgIQC6Fa+h3foLVJRK/NJKBs7DAKBggqhkjOPQQDAzBlMQsw -CQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cu -ZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3Qg -RzMwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1MTIwMDAwWjBlMQswCQYDVQQGEwJV -UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQu -Y29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzMwdjAQBgcq -hkjOPQIBBgUrgQQAIgNiAAQZ57ysRGXtzbg/WPuNsVepRC0FFfLvC/8QdJ+1YlJf -Zn4f5dwbRXkLzMZTCp2NXQLZqVneAlr2lSoOjThKiknGvMYDOAdfVdp+CW7if17Q -RSAPWXYQ1qAk8C3eNvJsKTmjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/ -BAQDAgGGMB0GA1UdDgQWBBTL0L2p4ZgFUaFNN6KDec6NHSrkhDAKBggqhkjOPQQD -AwNnADBkAjAlpIFFAmsSS3V0T8gj43DydXLefInwz5FyYZ5eEJJZVrmDxxDnOOlY -JjZ91eQ0hjkCMHw2U/Aw5WJjOpnitqM7mzT6HtoQknFekROn3aRukswy1vUhZscv -6pZjamVFkpUBtA== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBh -MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 -d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD -QTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAwMDAwMDBaMGExCzAJBgNVBAYTAlVT -MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j -b20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkqhkiG -9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsB -CSDMAZOnTjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97 -nh6Vfe63SKMI2tavegw5BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt -43C/dxC//AH2hdmoRBBYMql1GNXRor5H4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7P -T19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y7vrTC0LUq7dBMtoM1O/4 -gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQABo2MwYTAO -BgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbR -TLtm8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUw -DQYJKoZIhvcNAQEFBQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/Esr -hMAtudXH/vTBH1jLuG2cenTnmCmrEbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg -06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIttep3Sp+dWOIrWcBAI+0tKIJF -PnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886UAb3LujEV0ls -YSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk -CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDjjCCAnagAwIBAgIQAzrx5qcRqaC7KGSxHQn65TANBgkqhkiG9w0BAQsFADBh -MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 -d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBH -MjAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUxMjAwMDBaMGExCzAJBgNVBAYTAlVT -MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j -b20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEcyMIIBIjANBgkqhkiG -9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuzfNNNx7a8myaJCtSnX/RrohCgiN9RlUyfuI -2/Ou8jqJkTx65qsGGmvPrC3oXgkkRLpimn7Wo6h+4FR1IAWsULecYxpsMNzaHxmx -1x7e/dfgy5SDN67sH0NO3Xss0r0upS/kqbitOtSZpLYl6ZtrAGCSYP9PIUkY92eQ -q2EGnI/yuum06ZIya7XzV+hdG82MHauVBJVJ8zUtluNJbd134/tJS7SsVQepj5Wz -tCO7TG1F8PapspUwtP1MVYwnSlcUfIKdzXOS0xZKBgyMUNGPHgm+F6HmIcr9g+UQ -vIOlCsRnKPZzFBQ9RnbDhxSJITRNrw9FDKZJobq7nMWxM4MphQIDAQABo0IwQDAP -BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUTiJUIBiV -5uNu5g/6+rkS7QYXjzkwDQYJKoZIhvcNAQELBQADggEBAGBnKJRvDkhj6zHd6mcY -1Yl9PMWLSn/pvtsrF9+wX3N3KjITOYFnQoQj8kVnNeyIv/iPsGEMNKSuIEyExtv4 -NeF22d+mQrvHRAiGfzZ0JFrabA0UWTW98kndth/Jsw1HKj2ZL7tcu7XUIOGZX1NG -Fdtom/DzMNU+MeKNhJ7jitralj41E6Vf8PlwUHBHQRFXGU7Aj64GxJUTFy8bJZ91 -8rGOmaFvE7FBcf6IKshPECBV1/MUReXgRPTqh5Uykw7+U0b6LJ3/iyK5S9kJRaTe -pLiaWN0bfVKfjllDiIGknibVb63dDcY3fe0Dkhvld1927jyNxF1WW6LZZm6zNTfl -MrY= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIICPzCCAcWgAwIBAgIQBVVWvPJepDU1w6QP1atFcjAKBggqhkjOPQQDAzBhMQsw -CQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cu -ZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBHMzAe -Fw0xMzA4MDExMjAwMDBaFw0zODAxMTUxMjAwMDBaMGExCzAJBgNVBAYTAlVTMRUw -EwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20x -IDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEczMHYwEAYHKoZIzj0CAQYF -K4EEACIDYgAE3afZu4q4C/sLfyHS8L6+c/MzXRq8NOrexpu80JX28MzQC7phW1FG -fp4tn+6OYwwX7Adw9c+ELkCDnOg/QW07rdOkFFk2eJ0DQ+4QE2xy3q6Ip6FrtUPO -Z9wj/wMco+I+o0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAd -BgNVHQ4EFgQUs9tIpPmhxdiuNkHMEWNpYim8S8YwCgYIKoZIzj0EAwMDaAAwZQIx -AK288mw/EkrRLTnDCgmXc/SINoyIJ7vmiI1Qhadj+Z4y3maTD/HMsQmP3Wyr+mt/ -oAIwOWZbwmSNuJ5Q3KjVSaLtx9zRSX8XAbjIho9OjIgrqJqpisXRAL34VOKa5Vt8 -sycX ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBs -MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 -d3cuZGlnaWNlcnQuY29tMSswKQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5j -ZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAwMFoXDTMxMTExMDAwMDAwMFowbDEL -MAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3 -LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFuY2Ug -RVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm -+9S75S0tMqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTW -PNt0OKRKzE0lgvdKpVMSOO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEM -xChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFB -Ik5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQNAQTXKFx01p8VdteZOE3 -hzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUeh10aUAsg -EsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQF -MAMBAf8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaA -FLE+w2kD+L9HAdSYJhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3Nec -nzyIZgYIVyHbIUf4KmeqvxgydkAQV8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6z -eM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFpmyPInngiK3BD41VHMWEZ71jF -hS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkKmNEVX58Svnw2 -Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe -vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep -+OkuE6N36B9K ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIFkDCCA3igAwIBAgIQBZsbV56OITLiOQe9p3d1XDANBgkqhkiG9w0BAQwFADBi -MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 -d3cuZGlnaWNlcnQuY29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3Qg -RzQwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1MTIwMDAwWjBiMQswCQYDVQQGEwJV -UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQu -Y29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQwggIiMA0GCSqG -SIb3DQEBAQUAA4ICDwAwggIKAoICAQC/5pBzaN675F1KPDAiMGkz7MKnJS7JIT3y -ithZwuEppz1Yq3aaza57G4QNxDAf8xukOBbrVsaXbR2rsnnyyhHS5F/WBTxSD1If -xp4VpX6+n6lXFllVcq9ok3DCsrp1mWpzMpTREEQQLt+C8weE5nQ7bXHiLQwb7iDV -ySAdYyktzuxeTsiT+CFhmzTrBcZe7FsavOvJz82sNEBfsXpm7nfISKhmV1efVFiO -DCu3T6cw2Vbuyntd463JT17lNecxy9qTXtyOj4DatpGYQJB5w3jHtrHEtWoYOAMQ -jdjUN6QuBX2I9YI+EJFwq1WCQTLX2wRzKm6RAXwhTNS8rhsDdV14Ztk6MUSaM0C/ -CNdaSaTC5qmgZ92kJ7yhTzm1EVgX9yRcRo9k98FpiHaYdj1ZXUJ2h4mXaXpI8OCi -EhtmmnTK3kse5w5jrubU75KSOp493ADkRSWJtppEGSt+wJS00mFt6zPZxd9LBADM -fRyVw4/3IbKyEbe7f/LVjHAsQWCqsWMYRJUadmJ+9oCw++hkpjPRiQfhvbfmQ6QY -uKZ3AeEPlAwhHbJUKSWJbOUOUlFHdL4mrLZBdd56rF+NP8m800ERElvlEFDrMcXK -chYiCd98THU/Y+whX8QgUWtvsauGi0/C1kVfnSD8oR7FwI+isX4KJpn15GkvmB0t -9dmpsh3lGwIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB -hjAdBgNVHQ4EFgQU7NfjgtJxXWRM3y5nP+e6mK4cD08wDQYJKoZIhvcNAQEMBQAD -ggIBALth2X2pbL4XxJEbw6GiAI3jZGgPVs93rnD5/ZpKmbnJeFwMDF/k5hQpVgs2 -SV1EY+CtnJYYZhsjDT156W1r1lT40jzBQ0CuHVD1UvyQO7uYmWlrx8GnqGikJ9yd -+SeuMIW59mdNOj6PWTkiU0TryF0Dyu1Qen1iIQqAyHNm0aAFYF/opbSnr6j3bTWc -fFqK1qI4mfN4i/RN0iAL3gTujJtHgXINwBQy7zBZLq7gcfJW5GqXb5JQbZaNaHqa -sjYUegbyJLkJEVDXCLG4iXqEI2FCKeWjzaIgQdfRnGTZ6iahixTXTBmyUEFxPT9N -cCOGDErcgdLMMpSEDQgJlxxPwO5rIHQw0uA5NBCFIRUBCOhVMt5xSdkoF1BN5r5N -0XWs0Mr7QbhDparTwwVETyw2m+L64kW4I1NsBm9nVX9GtUw/bihaeSbSpKhil9Ie -4u1Ki7wb/UdKDd9nZn6yW0HQO+T0O/QEY+nvwlQAUaCKKsnOeMzV6ocEGLPOr0mI -r/OSmbaz5mEP0oUA51Aa5BuVnRmhuZyxm7EAHu/QD09CbMkKvO5D+jpxpchNJqU1 -/YldvIViHTLSoCtU7ZpXwdv6EM8Zt4tKG48BtieVU+i2iW1bvGjUI+iLUaJW+fCm -gKDWHrO8Dw9TdSmq6hN35N6MgSGtBxBHEa2HPQfRdbzP82Z+ ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIGSzCCBDOgAwIBAgIIamg+nFGby1MwDQYJKoZIhvcNAQELBQAwgbIxCzAJBgNV -BAYTAlRSMQ8wDQYDVQQHDAZBbmthcmExQDA+BgNVBAoMN0UtVHXEn3JhIEVCRyBC -aWxpxZ9pbSBUZWtub2xvamlsZXJpIHZlIEhpem1ldGxlcmkgQS7Fni4xJjAkBgNV -BAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBNZXJrZXppMSgwJgYDVQQDDB9FLVR1 -Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTEzMDMwNTEyMDk0OFoXDTIz -MDMwMzEyMDk0OFowgbIxCzAJBgNVBAYTAlRSMQ8wDQYDVQQHDAZBbmthcmExQDA+ -BgNVBAoMN0UtVHXEn3JhIEVCRyBCaWxpxZ9pbSBUZWtub2xvamlsZXJpIHZlIEhp -em1ldGxlcmkgQS7Fni4xJjAkBgNVBAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBN -ZXJrZXppMSgwJgYDVQQDDB9FLVR1Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5 -MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA4vU/kwVRHoViVF56C/UY -B4Oufq9899SKa6VjQzm5S/fDxmSJPZQuVIBSOTkHS0vdhQd2h8y/L5VMzH2nPbxH -D5hw+IyFHnSOkm0bQNGZDbt1bsipa5rAhDGvykPL6ys06I+XawGb1Q5KCKpbknSF -Q9OArqGIW66z6l7LFpp3RMih9lRozt6Plyu6W0ACDGQXwLWTzeHxE2bODHnv0ZEo -q1+gElIwcxmOj+GMB6LDu0rw6h8VqO4lzKRG+Bsi77MOQ7osJLjFLFzUHPhdZL3D -k14opz8n8Y4e0ypQBaNV2cvnOVPAmJ6MVGKLJrD3fY185MaeZkJVgkfnsliNZvcH -fC425lAcP9tDJMW/hkd5s3kc91r0E+xs+D/iWR+V7kI+ua2oMoVJl0b+SzGPWsut -dEcf6ZG33ygEIqDUD13ieU/qbIWGvaimzuT6w+Gzrt48Ue7LE3wBf4QOXVGUnhMM -ti6lTPk5cDZvlsouDERVxcr6XQKj39ZkjFqzAQqptQpHF//vkUAqjqFGOjGY5RH8 -zLtJVor8udBhmm9lbObDyz51Sf6Pp+KJxWfXnUYTTjF2OySznhFlhqt/7x3U+Lzn -rFpct1pHXFXOVbQicVtbC/DP3KBhZOqp12gKY6fgDT+gr9Oq0n7vUaDmUStVkhUX -U8u3Zg5mTPj5dUyQ5xJwx0UCAwEAAaNjMGEwHQYDVR0OBBYEFC7j27JJ0JxUeVz6 -Jyr+zE7S6E5UMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAULuPbsknQnFR5 -XPonKv7MTtLoTlQwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQAF -Nzr0TbdF4kV1JI+2d1LoHNgQk2Xz8lkGpD4eKexd0dCrfOAKkEh47U6YA5n+KGCR -HTAduGN8qOY1tfrTYXbm1gdLymmasoR6d5NFFxWfJNCYExL/u6Au/U5Mh/jOXKqY -GwXgAEZKgoClM4so3O0409/lPun++1ndYYRP0lSWE2ETPo+Aab6TR7U1Q9Jauz1c -77NCR807VRMGsAnb/WP2OogKmW9+4c4bU2pEZiNRCHu8W1Ki/QY3OEBhj0qWuJA3 -+GbHeJAAFS6LrVE1Uweoa2iu+U48BybNCAVwzDk/dr2l02cmAYamU9JgO3xDf1WK -vJUawSg5TB9D0pH0clmKuVb8P7Sd2nCcdlqMQ1DujjByTd//SffGqWfZbawCEeI6 -FiWnWAjLb1NBnEg4R2gz0dfHj9R0IdTDBZB6/86WiLEVKV0jq9BgoRJP3vQXzTLl -yb/IQ639Lo7xr+L0mPoSHyDYwKcMhcWQ9DstliaxLL5Mq+ux0orJ23gTDx4JnW2P -AJ8C2sH6H3p6CcRK5ogql5+Ji/03X186zjhZhkuvcQu02PJwT58yE+Owp1fl2tpD -y4Q08ijE6m30Ku/Ba3ba+367hTzSU8JNvnHhRdH9I2cNE3X7z2VnIp2usAnRCf8d -NL/+I5c30jn6PQ0GC7TbO6Orb1wdtn7os4I07QZcJA== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIF5zCCA8+gAwIBAgIITK9zQhyOdAIwDQYJKoZIhvcNAQEFBQAwgYAxODA2BgNV -BAMML0VCRyBFbGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sx -c8SxMTcwNQYDVQQKDC5FQkcgQmlsacWfaW0gVGVrbm9sb2ppbGVyaSB2ZSBIaXpt -ZXRsZXJpIEEuxZ4uMQswCQYDVQQGEwJUUjAeFw0wNjA4MTcwMDIxMDlaFw0xNjA4 -MTQwMDMxMDlaMIGAMTgwNgYDVQQDDC9FQkcgRWxla3Ryb25payBTZXJ0aWZpa2Eg -SGl6bWV0IFNhxJ9sYXnEsWPEsXPEsTE3MDUGA1UECgwuRUJHIEJpbGnFn2ltIFRl -a25vbG9qaWxlcmkgdmUgSGl6bWV0bGVyaSBBLsWeLjELMAkGA1UEBhMCVFIwggIi -MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDuoIRh0DpqZhAy2DE4f6en5f2h -4fuXd7hxlugTlkaDT7byX3JWbhNgpQGR4lvFzVcfd2NR/y8927k/qqk153nQ9dAk -tiHq6yOU/im/+4mRDGSaBUorzAzu8T2bgmmkTPiab+ci2hC6X5L8GCcKqKpE+i4s -tPtGmggDg3KriORqcsnlZR9uKg+ds+g75AxuetpX/dfreYteIAbTdgtsApWjluTL -dlHRKJ2hGvxEok3MenaoDT2/F08iiFD9rrbskFBKW5+VQarKD7JK/oCZTqNGFav4 -c0JqwmZ2sQomFd2TkuzbqV9UIlKRcF0T6kjsbgNs2d1s/OsNA/+mgxKb8amTD8Um -TDGyY5lhcucqZJnSuOl14nypqZoaqsNW2xCaPINStnuWt6yHd6i58mcLlEOzrz5z -+kI2sSXFCjEmN1ZnuqMLfdb3ic1nobc6HmZP9qBVFCVMLDMNpkGMvQQxahByCp0O -Lna9XvNRiYuoP1Vzv9s6xiQFlpJIqkuNKgPlV5EQ9GooFW5Hd4RcUXSfGenmHmMW -OeMRFeNYGkS9y8RsZteEBt8w9DeiQyJ50hBs37vmExH8nYQKE3vwO9D8owrXieqW -fo1IhR5kX9tUoqzVegJ5a9KK8GfaZXINFHDk6Y54jzJ0fFfy1tb0Nokb+Clsi7n2 -l9GkLqq+CxnCRelwXQIDAJ3Zo2MwYTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB -/wQEAwIBBjAdBgNVHQ4EFgQU587GT/wWZ5b6SqMHwQSny2re2kcwHwYDVR0jBBgw -FoAU587GT/wWZ5b6SqMHwQSny2re2kcwDQYJKoZIhvcNAQEFBQADggIBAJuYml2+ -8ygjdsZs93/mQJ7ANtyVDR2tFcU22NU57/IeIl6zgrRdu0waypIN30ckHrMk2pGI -6YNw3ZPX6bqz3xZaPt7gyPvT/Wwp+BVGoGgmzJNSroIBk5DKd8pNSe/iWtkqvTDO -TLKBtjDOWU/aWR1qeqRFsIImgYZ29fUQALjuswnoT4cCB64kXPBfrAowzIpAoHME -wfuJJPaaHFy3PApnNgUIMbOv2AFoKuB4j3TeuFGkjGwgPaL7s9QJ/XvCgKqTbCmY -Iai7FvOpEl90tYeY8pUm3zTvilORiF0alKM/fCL414i6poyWqD1SNGKfAB5UVUJn -xk1Gj7sURT0KlhaOEKGXmdXTMIXM3rRyt7yKPBgpaP3ccQfuJDlq+u2lrDgv+R4Q -DgZxGhBM/nV+/x5XOULK1+EVoVZVWRvRo68R2E7DpSvvkL/A7IITW43WciyTTo9q -Kd+FPNMN4KIYEsxVL0e3p5sC/kH2iExt2qkBR4NkJ2IQgtYSe14DHzSpyZH+r11t -hie3I6p1GMog57AP14kOpmciY/SDQSsGS7tY1dHXt7kQY9iJSrSq3RZj9W6+YKH4 -7ejWkE8axsWgKdOnIaj1Wjz3x0miIZpKlVIglnKaZsv30oZDfCK+lvm9AahH3eU7 -QPl1K5srRmSGjR70j/sHd9DqSaIcjVIUpgqT ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIFVjCCBD6gAwIBAgIQ7is969Qh3hSoYqwE893EATANBgkqhkiG9w0BAQUFADCB -8zELMAkGA1UEBhMCRVMxOzA5BgNVBAoTMkFnZW5jaWEgQ2F0YWxhbmEgZGUgQ2Vy -dGlmaWNhY2lvIChOSUYgUS0wODAxMTc2LUkpMSgwJgYDVQQLEx9TZXJ2ZWlzIFB1 -YmxpY3MgZGUgQ2VydGlmaWNhY2lvMTUwMwYDVQQLEyxWZWdldSBodHRwczovL3d3 -dy5jYXRjZXJ0Lm5ldC92ZXJhcnJlbCAoYykwMzE1MDMGA1UECxMsSmVyYXJxdWlh -IEVudGl0YXRzIGRlIENlcnRpZmljYWNpbyBDYXRhbGFuZXMxDzANBgNVBAMTBkVD -LUFDQzAeFw0wMzAxMDcyMzAwMDBaFw0zMTAxMDcyMjU5NTlaMIHzMQswCQYDVQQG -EwJFUzE7MDkGA1UEChMyQWdlbmNpYSBDYXRhbGFuYSBkZSBDZXJ0aWZpY2FjaW8g -KE5JRiBRLTA4MDExNzYtSSkxKDAmBgNVBAsTH1NlcnZlaXMgUHVibGljcyBkZSBD -ZXJ0aWZpY2FjaW8xNTAzBgNVBAsTLFZlZ2V1IGh0dHBzOi8vd3d3LmNhdGNlcnQu -bmV0L3ZlcmFycmVsIChjKTAzMTUwMwYDVQQLEyxKZXJhcnF1aWEgRW50aXRhdHMg -ZGUgQ2VydGlmaWNhY2lvIENhdGFsYW5lczEPMA0GA1UEAxMGRUMtQUNDMIIBIjAN -BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsyLHT+KXQpWIR4NA9h0X84NzJB5R -85iKw5K4/0CQBXCHYMkAqbWUZRkiFRfCQ2xmRJoNBD45b6VLeqpjt4pEndljkYRm -4CgPukLjbo73FCeTae6RDqNfDrHrZqJyTxIThmV6PttPB/SnCWDaOkKZx7J/sxaV -HMf5NLWUhdWZXqBIoH7nF2W4onW4HvPlQn2v7fOKSGRdghST2MDk/7NQcvJ29rNd -QlB50JQ+awwAvthrDk4q7D7SzIKiGGUzE3eeml0aE9jD2z3Il3rucO2n5nzbcc8t -lGLfbdb1OL4/pYUKGbio2Al1QnDE6u/LDsg0qBIimAy4E5S2S+zw0JDnJwIDAQAB -o4HjMIHgMB0GA1UdEQQWMBSBEmVjX2FjY0BjYXRjZXJ0Lm5ldDAPBgNVHRMBAf8E -BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUoMOLRKo3pUW/l4Ba0fF4 -opvpXY0wfwYDVR0gBHgwdjB0BgsrBgEEAfV4AQMBCjBlMCwGCCsGAQUFBwIBFiBo -dHRwczovL3d3dy5jYXRjZXJ0Lm5ldC92ZXJhcnJlbDA1BggrBgEFBQcCAjApGidW -ZWdldSBodHRwczovL3d3dy5jYXRjZXJ0Lm5ldC92ZXJhcnJlbCAwDQYJKoZIhvcN -AQEFBQADggEBAKBIW4IB9k1IuDlVNZyAelOZ1Vr/sXE7zDkJlF7W2u++AVtd0x7Y -/X1PzaBB4DSTv8vihpw3kpBWHNzrKQXlxJ7HNd+KDM3FIUPpqojlNcAZQmNaAl6k -SBg6hW/cnbw/nZzBh7h6YQjpdwt/cKt63dmXLGQehb+8dJahw3oS7AwaboMMPOhy -Rp/7SNVel+axofjk70YllJyJ22k4vuxcDlbHZVHlUIiIv0LVKz3l+bqeLrPK9HOS -Agu+TGbrIP65y7WZf+a2E/rKS03Z7lNGBjvGTq2TWoF+bCpLagVFjPIhpDGQh2xl -nJ2lYJU6Un/10asIbvPuW/mIPX64b24D5EI= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIEAzCCAuugAwIBAgIQVID5oHPtPwBMyonY43HmSjANBgkqhkiG9w0BAQUFADB1 -MQswCQYDVQQGEwJFRTEiMCAGA1UECgwZQVMgU2VydGlmaXRzZWVyaW1pc2tlc2t1 -czEoMCYGA1UEAwwfRUUgQ2VydGlmaWNhdGlvbiBDZW50cmUgUm9vdCBDQTEYMBYG -CSqGSIb3DQEJARYJcGtpQHNrLmVlMCIYDzIwMTAxMDMwMTAxMDMwWhgPMjAzMDEy -MTcyMzU5NTlaMHUxCzAJBgNVBAYTAkVFMSIwIAYDVQQKDBlBUyBTZXJ0aWZpdHNl -ZXJpbWlza2Vza3VzMSgwJgYDVQQDDB9FRSBDZXJ0aWZpY2F0aW9uIENlbnRyZSBS -b290IENBMRgwFgYJKoZIhvcNAQkBFglwa2lAc2suZWUwggEiMA0GCSqGSIb3DQEB -AQUAA4IBDwAwggEKAoIBAQDIIMDs4MVLqwd4lfNE7vsLDP90jmG7sWLqI9iroWUy -euuOF0+W2Ap7kaJjbMeMTC55v6kF/GlclY1i+blw7cNRfdCT5mzrMEvhvH2/UpvO -bntl8jixwKIy72KyaOBhU8E2lf/slLo2rpwcpzIP5Xy0xm90/XsY6KxX7QYgSzIw -WFv9zajmofxwvI6Sc9uXp3whrj3B9UiHbCe9nyV0gVWw93X2PaRka9ZP585ArQ/d -MtO8ihJTmMmJ+xAdTX7Nfh9WDSFwhfYggx/2uh8Ej+p3iDXE/+pOoYtNP2MbRMNE -1CV2yreN1x5KZmTNXMWcg+HCCIia7E6j8T4cLNlsHaFLAgMBAAGjgYowgYcwDwYD -VR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBLyWj7qVhy/ -zQas8fElyalL1BSZMEUGA1UdJQQ+MDwGCCsGAQUFBwMCBggrBgEFBQcDAQYIKwYB -BQUHAwMGCCsGAQUFBwMEBggrBgEFBQcDCAYIKwYBBQUHAwkwDQYJKoZIhvcNAQEF -BQADggEBAHv25MANqhlHt01Xo/6tu7Fq1Q+e2+RjxY6hUFaTlrg4wCQiZrxTFGGV -v9DHKpY5P30osxBAIWrEr7BSdxjhlthWXePdNl4dp1BUoMUq5KqMlIpPnTX/dqQG -E5Gion0ARD9V04I8GtVbvFZMIi5GQ4okQC3zErg7cBqklrkar4dBGmoYDQZPxz5u -uSlNDUmJEYcyW+ZLBMjkXOZ0c5RdFpgTlf7727FE5TpwrDdr5rMzcijJs1eg9gIW -iAYLtqZLICjU3j2LrTcFU3T+bsy8QxdxXvnFzBqpYe73dgzzcvRyrc9yAjYHR8/v -GVCJYMzpJJUPwssd8m92kMfMdcGWxZ0= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIEKjCCAxKgAwIBAgIEOGPe+DANBgkqhkiG9w0BAQUFADCBtDEUMBIGA1UEChML -RW50cnVzdC5uZXQxQDA+BgNVBAsUN3d3dy5lbnRydXN0Lm5ldC9DUFNfMjA0OCBp -bmNvcnAuIGJ5IHJlZi4gKGxpbWl0cyBsaWFiLikxJTAjBgNVBAsTHChjKSAxOTk5 -IEVudHJ1c3QubmV0IExpbWl0ZWQxMzAxBgNVBAMTKkVudHJ1c3QubmV0IENlcnRp -ZmljYXRpb24gQXV0aG9yaXR5ICgyMDQ4KTAeFw05OTEyMjQxNzUwNTFaFw0yOTA3 -MjQxNDE1MTJaMIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3d3d3 -LmVudHJ1c3QubmV0L0NQU18yMDQ4IGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxp -YWIuKTElMCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEG -A1UEAxMqRW50cnVzdC5uZXQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgKDIwNDgp -MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArU1LqRKGsuqjIAcVFmQq -K0vRvwtKTY7tgHalZ7d4QMBzQshowNtTK91euHaYNZOLGp18EzoOH1u3Hs/lJBQe -sYGpjX24zGtLA/ECDNyrpUAkAH90lKGdCCmziAv1h3edVc3kw37XamSrhRSGlVuX -MlBvPci6Zgzj/L24ScF2iUkZ/cCovYmjZy/Gn7xxGWC4LeksyZB2ZnuU4q941mVT -XTzWnLLPKQP5L6RQstRIzgUyVYr9smRMDuSYB3Xbf9+5CFVghTAp+XtIpGmG4zU/ -HoZdenoVve8AjhUiVBcAkCaTvA5JaJG/+EfTnZVCwQ5N328mz8MYIWJmQ3DW1cAH -4QIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNV -HQ4EFgQUVeSB0RGAvtiJuQijMfmhJAkWuXAwDQYJKoZIhvcNAQEFBQADggEBADub -j1abMOdTmXx6eadNl9cZlZD7Bh/KM3xGY4+WZiT6QBshJ8rmcnPyT/4xmf3IDExo -U8aAghOY+rat2l098c5u9hURlIIM7j+VrxGrD9cv3h8Dj1csHsm7mhpElesYT6Yf -zX1XEC+bBAlahLVu2B064dae0Wx5XnkcFMXj0EyTO2U87d89vqbllRrDtRnDvV5b -u/8j72gZyxKTJ1wDLW8w0B62GqzeWvfRqqgnpv55gcR5mTNXuhKwqeBCbJPKVt7+ -bYQLCIt+jerXmCHG8+c8eS9enNFMFY3h7CI3zJpDC5fcgJCNs2ebb0gIFVbPv/Er -fF6adulZkMV8gzURZVE= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIEkTCCA3mgAwIBAgIERWtQVDANBgkqhkiG9w0BAQUFADCBsDELMAkGA1UEBhMC -VVMxFjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xOTA3BgNVBAsTMHd3dy5lbnRydXN0 -Lm5ldC9DUFMgaXMgaW5jb3Jwb3JhdGVkIGJ5IHJlZmVyZW5jZTEfMB0GA1UECxMW -KGMpIDIwMDYgRW50cnVzdCwgSW5jLjEtMCsGA1UEAxMkRW50cnVzdCBSb290IENl -cnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA2MTEyNzIwMjM0MloXDTI2MTEyNzIw -NTM0MlowgbAxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMuMTkw -NwYDVQQLEzB3d3cuZW50cnVzdC5uZXQvQ1BTIGlzIGluY29ycG9yYXRlZCBieSBy -ZWZlcmVuY2UxHzAdBgNVBAsTFihjKSAyMDA2IEVudHJ1c3QsIEluYy4xLTArBgNV -BAMTJEVudHJ1c3QgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASIwDQYJ -KoZIhvcNAQEBBQADggEPADCCAQoCggEBALaVtkNC+sZtKm9I35RMOVcF7sN5EUFo -Nu3s/poBj6E4KPz3EEZmLk0eGrEaTsbRwJWIsMn/MYszA9u3g3s+IIRe7bJWKKf4 -4LlAcTfFy0cOlypowCKVYhXbR9n10Cv/gkvJrT7eTNuQgFA/CYqEAOwwCj0Yzfv9 -KlmaI5UXLEWeH25DeW0MXJj+SKfFI0dcXv1u5x609mhF0YaDW6KKjbHjKYD+JXGI -rb68j6xSlkuqUY3kEzEZ6E5Nn9uss2rVvDlUccp6en+Q3X0dgNmBu1kmwhH+5pPi -94DkZfs0Nw4pgHBNrziGLp5/V6+eF67rHMsoIV+2HNjnogQi+dPa2MsCAwEAAaOB -sDCBrTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zArBgNVHRAEJDAi -gA8yMDA2MTEyNzIwMjM0MlqBDzIwMjYxMTI3MjA1MzQyWjAfBgNVHSMEGDAWgBRo -kORnpKZTgMeGZqTx90tD+4S9bTAdBgNVHQ4EFgQUaJDkZ6SmU4DHhmak8fdLQ/uE -vW0wHQYJKoZIhvZ9B0EABBAwDhsIVjcuMTo0LjADAgSQMA0GCSqGSIb3DQEBBQUA -A4IBAQCT1DCw1wMgKtD5Y+iRDAUgqV8ZyntyTtSx29CW+1RaGSwMCPeyvIWonX9t -O1KzKtvn1ISMY/YPyyYBkVBs9F8U4pN0wBOeMDpQ47RgxRzwIkSNcUesyBrJ6Zua -AGAT/3B+XxFNSRuzFVJ7yVTav52Vr2ua2J7p8eRDjeIRRDq/r72DQnNSi6q7pynP -9WQcCk3RvKqsnyrQ/39/2n3qse0wJcGE2jTSW3iDVuycNsMm4hH2Z0kdkquM++v/ -eu6FSqdQgPCnXEqULl8FmTxSQeDNtGPPAUO6nIPcj2A781q0tHuu2guQOHXvgR1m -0vdXcDazv/wor3ElhVsT/h5/WrQ8 ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIC+TCCAoCgAwIBAgINAKaLeSkAAAAAUNCR+TAKBggqhkjOPQQDAzCBvzELMAkG -A1UEBhMCVVMxFjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3 -d3cuZW50cnVzdC5uZXQvbGVnYWwtdGVybXMxOTA3BgNVBAsTMChjKSAyMDEyIEVu -dHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ugb25seTEzMDEGA1UEAxMq -RW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRUMxMB4XDTEy -MTIxODE1MjUzNloXDTM3MTIxODE1NTUzNlowgb8xCzAJBgNVBAYTAlVTMRYwFAYD -VQQKEw1FbnRydXN0LCBJbmMuMSgwJgYDVQQLEx9TZWUgd3d3LmVudHJ1c3QubmV0 -L2xlZ2FsLXRlcm1zMTkwNwYDVQQLEzAoYykgMjAxMiBFbnRydXN0LCBJbmMuIC0g -Zm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxMzAxBgNVBAMTKkVudHJ1c3QgUm9vdCBD -ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEVDMTB2MBAGByqGSM49AgEGBSuBBAAi -A2IABIQTydC6bUF74mzQ61VfZgIaJPRbiWlH47jCffHyAsWfoPZb1YsGGYZPUxBt -ByQnoaD41UcZYUx9ypMn6nQM72+WCf5j7HBdNq1nd67JnXxVRDqiY1Ef9eNi1KlH -Bz7MIKNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0O -BBYEFLdj5xrdjekIplWDpOBqUEFlEUJJMAoGCCqGSM49BAMDA2cAMGQCMGF52OVC -R98crlOZF7ZvHH3hvxGU0QOIdeSNiaSKd0bebWHvAvX7td/M/k7//qnmpwIwW5nX -hTcGtXsI/esni0qU+eH6p44mCOh8kmhtc9hvJqwhAriZtyZBWyVgrtBIGu4G ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIEPjCCAyagAwIBAgIESlOMKDANBgkqhkiG9w0BAQsFADCBvjELMAkGA1UEBhMC -VVMxFjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50 -cnVzdC5uZXQvbGVnYWwtdGVybXMxOTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3Qs -IEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ugb25seTEyMDAGA1UEAxMpRW50cnVz -dCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzIwHhcNMDkwNzA3MTcy -NTU0WhcNMzAxMjA3MTc1NTU0WjCBvjELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUVu -dHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVnYWwt -dGVybXMxOTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0 -aG9yaXplZCB1c2Ugb25seTEyMDAGA1UEAxMpRW50cnVzdCBSb290IENlcnRpZmlj -YXRpb24gQXV0aG9yaXR5IC0gRzIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK -AoIBAQC6hLZy254Ma+KZ6TABp3bqMriVQRrJ2mFOWHLP/vaCeb9zYQYKpSfYs1/T -RU4cctZOMvJyig/3gxnQaoCAAEUesMfnmr8SVycco2gvCoe9amsOXmXzHHfV1IWN -cCG0szLni6LVhjkCsbjSR87kyUnEO6fe+1R9V77w6G7CebI6C1XiUJgWMhNcL3hW -wcKUs/Ja5CeanyTXxuzQmyWC48zCxEXFjJd6BmsqEZ+pCm5IO2/b1BEZQvePB7/1 -U1+cPvQXLOZprE4yTGJ36rfo5bs0vBmLrpxR57d+tVOxMyLlbc9wPBr64ptntoP0 -jaWvYkxN4FisZDQSA/i2jZRjJKRxAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAP -BgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqciZ60B7vfec7aVHUbI2fkBJmqzAN -BgkqhkiG9w0BAQsFAAOCAQEAeZ8dlsa2eT8ijYfThwMEYGprmi5ZiXMRrEPR9RP/ -jTkrwPK9T3CMqS/qF8QLVJ7UG5aYMzyorWKiAHarWWluBh1+xLlEjZivEtRh2woZ -Rkfz6/djwUAFQKXSt/S1mja/qYh2iARVBCuch38aNzx+LaUa2NSJXsq9rD1s2G2v -1fN2D807iDginWyTmsQ9v4IbZT+mD12q/OWyFcq1rca8PdCE6OoGcrBNOTJ4vz4R -nAuknZoh8/CbCzB428Hch0P+vGOaysXCHMnHjf87ElgI5rY97HosTvuDls4MPGmH -VHOkc8KT/1EQrBVUAdj8BbGJoX90g5pJ19xOe4pIb4tF9g== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJV -UzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2Vy -dGlmaWNhdGUgQXV0aG9yaXR5MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1 -MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoTB0VxdWlmYXgxLTArBgNVBAsTJEVx -dWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCBnzANBgkqhkiG9w0B -AQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPRfM6f -BeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+A -cJkVV5MW8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kC -AwEAAaOCAQkwggEFMHAGA1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQ -MA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlm -aWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoGA1UdEAQTMBGBDzIwMTgw -ODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvSspXXR9gj -IBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQF -MAMBAf8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUA -A4GBAFjOKer89961zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y -7qj/WsjTVbJmcVfewCHrPSqnI0kBBIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh -1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee9570+sB3c4 ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIICkDCCAfmgAwIBAgIBATANBgkqhkiG9w0BAQQFADBaMQswCQYDVQQGEwJVUzEc -MBoGA1UEChMTRXF1aWZheCBTZWN1cmUgSW5jLjEtMCsGA1UEAxMkRXF1aWZheCBT -ZWN1cmUgR2xvYmFsIGVCdXNpbmVzcyBDQS0xMB4XDTk5MDYyMTA0MDAwMFoXDTIw -MDYyMTA0MDAwMFowWjELMAkGA1UEBhMCVVMxHDAaBgNVBAoTE0VxdWlmYXggU2Vj -dXJlIEluYy4xLTArBgNVBAMTJEVxdWlmYXggU2VjdXJlIEdsb2JhbCBlQnVzaW5l -c3MgQ0EtMTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAuucXkAJlsTRVPEnC -UdXfp9E3j9HngXNBUmCbnaEXJnitx7HoJpQytd4zjTov2/KaelpzmKNc6fuKcxtc -58O/gGzNqfTWK8D3+ZmqY6KxRwIP1ORROhI8bIpaVIRw28HFkM9yRcuoWcDNM50/ -o5brhTMhHD4ePmBudpxnhcXIw2ECAwEAAaNmMGQwEQYJYIZIAYb4QgEBBAQDAgAH -MA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUvqigdHJQa0S3ySPY+6j/s1dr -aGwwHQYDVR0OBBYEFL6ooHRyUGtEt8kj2Puo/7NXa2hsMA0GCSqGSIb3DQEBBAUA -A4GBADDiAVGqx+pf2rnQZQ8w1j7aDRRJbpGTJxQx78T3LUX47Me/okENI7SS+RkA -Z70Br83gcfxaz2TE4JaY0KNA4gGK7ycH8WUBikQtBmV1UsCGECAhX2xrD2yuCRyv -8qIYNMR1pHMc8Y3c7635s3a0kr/clRAevsvIO1qEYBlWlKlV ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIICgjCCAeugAwIBAgIBBDANBgkqhkiG9w0BAQQFADBTMQswCQYDVQQGEwJVUzEc -MBoGA1UEChMTRXF1aWZheCBTZWN1cmUgSW5jLjEmMCQGA1UEAxMdRXF1aWZheCBT -ZWN1cmUgZUJ1c2luZXNzIENBLTEwHhcNOTkwNjIxMDQwMDAwWhcNMjAwNjIxMDQw -MDAwWjBTMQswCQYDVQQGEwJVUzEcMBoGA1UEChMTRXF1aWZheCBTZWN1cmUgSW5j -LjEmMCQGA1UEAxMdRXF1aWZheCBTZWN1cmUgZUJ1c2luZXNzIENBLTEwgZ8wDQYJ -KoZIhvcNAQEBBQADgY0AMIGJAoGBAM4vGbwXt3fek6lfWg0XTzQaDJj0ItlZ1MRo -RvC0NcWFAyDGr0WlIVFFQesWWDYyb+JQYmT5/VGcqiTZ9J2DKocKIdMSODRsjQBu -WqDZQu4aIZX5UkxVWsUPOE9G+m34LjXWHXzr4vCwdYDIqROsvojvOm6rXyo4YgKw -Env+j6YDAgMBAAGjZjBkMBEGCWCGSAGG+EIBAQQEAwIABzAPBgNVHRMBAf8EBTAD -AQH/MB8GA1UdIwQYMBaAFEp4MlIR21kWNl7fwRQ2QGpHfEyhMB0GA1UdDgQWBBRK -eDJSEdtZFjZe38EUNkBqR3xMoTANBgkqhkiG9w0BAQQFAAOBgQB1W6ibAxHm6VZM -zfmpTMANmvPMZWnmJXbMWbfWVMMdzZmsGd20hdXgPfxiIKeES1hl8eL5lSE/9dR+ -WB5Hh1Q+WKG1tfgq73HnvMP2sUlG4tega+VWeponmHxGYhTnyfxuAxJ5gDgdSIKN -/Bf+KpYrtWKmpj29f5JZzVoqgrI3eQ== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDVDCCAjygAwIBAgIDAjRWMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlVT -MRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9i -YWwgQ0EwHhcNMDIwNTIxMDQwMDAwWhcNMjIwNTIxMDQwMDAwWjBCMQswCQYDVQQG -EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEbMBkGA1UEAxMSR2VvVHJ1c3Qg -R2xvYmFsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2swYYzD9 -9BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEHCIjaWC9mOSm9BXiLnTjoBbdq -fnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlCGDUUna2YRpIuT8rxh0PBFpVXLVDv -iS2Aelet8u5fa9IAjbkU+BQVNdnARqN7csiRv8lVK83Qlz6cJmTM386DGXHKTubU -1XupGc1V3sjs0l44U+VcT4wt/lAjNvxm5suOpDkZALeVAjmRCw7+OC7RHQWa9k0+ -bw8HHa8sHo9gOeL6NlMTOdReJivbPagUvTLrGAMoUgRx5aszPeE4uwc2hGKceeoW -MPRfwCvocWvk+QIDAQABo1MwUTAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTA -ephojYn7qwVkDBF9qn1luMrMTjAfBgNVHSMEGDAWgBTAephojYn7qwVkDBF9qn1l -uMrMTjANBgkqhkiG9w0BAQUFAAOCAQEANeMpauUvXVSOKVCUn5kaFOSPeCpilKIn -Z57QzxpeR+nBsqTP3UEaBU6bS+5Kb1VSsyShNwrrZHYqLizz/Tt1kL/6cdjHPTfS -tQWVYrmm3ok9Nns4d0iXrKYgjy6myQzCsplFAMfOEVEiIuCl6rYVSAlk6l5PdPcF -PseKUgzbFbS9bZvlxrFUaKnjaZC2mqUPuLk/IH2uSrW4nOQdtqvmlKXBx4Ot2/Un -hw4EbNX/3aBd7YdStysVAq45pmp06drE57xNNB6pXE0zX5IJL4hmXXeXxx12E6nV -5fEWCRE11azbJHFwLJhWC9kXtNHjUStedejV0NxPNO3CBWaAocvmMw== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDZjCCAk6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBEMQswCQYDVQQGEwJVUzEW -MBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEdMBsGA1UEAxMUR2VvVHJ1c3QgR2xvYmFs -IENBIDIwHhcNMDQwMzA0MDUwMDAwWhcNMTkwMzA0MDUwMDAwWjBEMQswCQYDVQQG -EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEdMBsGA1UEAxMUR2VvVHJ1c3Qg -R2xvYmFsIENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDvPE1A -PRDfO1MA4Wf+lGAVPoWI8YkNkMgoI5kF6CsgncbzYEbYwbLVjDHZ3CB5JIG/NTL8 -Y2nbsSpr7iFY8gjpeMtvy/wWUsiRxP89c96xPqfCfWbB9X5SJBri1WeR0IIQ13hL -TytCOb1kLUCgsBDTOEhGiKEMuzozKmKY+wCdE1l/bztyqu6mD4b5BWHqZ38MN5aL -5mkWRxHCJ1kDs6ZgwiFAVvqgx306E+PsV8ez1q6diYD3Aecs9pYrEw15LNnA5IZ7 -S4wMcoKK+xfNAGw6EzywhIdLFnopsk/bHdQL82Y3vdj2V7teJHq4PIu5+pIaGoSe -2HSPqht/XvT+RSIhAgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE -FHE4NvICMVNHK266ZUapEBVYIAUJMB8GA1UdIwQYMBaAFHE4NvICMVNHK266ZUap -EBVYIAUJMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQUFAAOCAQEAA/e1K6td -EPx7srJerJsOflN4WT5CBP51o62sgU7XAotexC3IUnbHLB/8gTKY0UvGkpMzNTEv -/NgdRN3ggX+d6YvhZJFiCzkIjKx0nVnZellSlxG5FntvRdOW2TF9AjYPnDtuzywN -A0ZF66D0f0hExghAzN4bcLUprbqLOzRldRtxIR0sFAqwlpW41uryZfspuk/qkZN0 -abby/+Ea0AzRdoXLiiW9l14sbxWZJue2Kf8i7MkCx1YAzUm5s2x7UwQa4qjJqhIF -I8LO57sEAszAR6LkxCkvW0VXiVHuPOtSCP8HNR6fNWpHSlaY0VqFH4z1Ir+rzoPz -4iIprn2DQKi6bA== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDfDCCAmSgAwIBAgIQGKy1av1pthU6Y2yv2vrEoTANBgkqhkiG9w0BAQUFADBY -MQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjExMC8GA1UEAxMo -R2VvVHJ1c3QgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjEx -MjcwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMFgxCzAJBgNVBAYTAlVTMRYwFAYDVQQK -Ew1HZW9UcnVzdCBJbmMuMTEwLwYDVQQDEyhHZW9UcnVzdCBQcmltYXJ5IENlcnRp -ZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC -AQEAvrgVe//UfH1nrYNke8hCUy3f9oQIIGHWAVlqnEQRr+92/ZV+zmEwu3qDXwK9 -AWbK7hWNb6EwnL2hhZ6UOvNWiAAxz9juapYC2e0DjPt1befquFUWBRaa9OBesYjA -ZIVcFU2Ix7e64HXprQU9nceJSOC7KMgD4TCTZF5SwFlwIjVXiIrxlQqD17wxcwE0 -7e9GceBrAqg1cmuXm2bgyxx5X9gaBGgeRwLmnWDiNpcB3841kt++Z8dtd1k7j53W -kBWUvEI0EME5+bEnPn7WinXFsq+W06Lem+SYvn3h6YGttm/81w7a4DSwDRp35+MI -mO9Y+pyEtzavwt+s0vQQBnBxNQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4G -A1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQULNVQQZcVi/CPNmFbSvtr2ZnJM5IwDQYJ -KoZIhvcNAQEFBQADggEBAFpwfyzdtzRP9YZRqSa+S7iq8XEN3GHHoOo0Hnp3DwQ1 -6CePbJC/kRYkRj5KTs4rFtULUh38H2eiAkUxT87z+gOneZ1TatnaYzr4gNfTmeGl -4b7UVXGYNTq+k+qurUKykG/g/CFNNWMziUnWm07Kx+dOCQD32sfvmWKZd7aVIl6K -oKv0uHiYyjgZmclynnjNS6yvGaBzEi38wkG6gZHaFloxt/m0cYASSJlyc1pZU8Fj -UjPtp8nSOQJw+uCxQmYpqptR7TBUIhRf2asdweSU8Pj1K/fqynhG1riR/aYNKxoU -AT6A8EKglQdebc3MS6RFjasS6LPeWuWgfOgPIh1a6Vk= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIICrjCCAjWgAwIBAgIQPLL0SAoA4v7rJDteYD7DazAKBggqhkjOPQQDAzCBmDEL -MAkGA1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChj -KSAyMDA3IEdlb1RydXN0IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2 -MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0 -eSAtIEcyMB4XDTA3MTEwNTAwMDAwMFoXDTM4MDExODIzNTk1OVowgZgxCzAJBgNV -BAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAoYykgMjAw -NyBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNV -BAMTLUdlb1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBH -MjB2MBAGByqGSM49AgEGBSuBBAAiA2IABBWx6P0DFUPlrOuHNxFi79KDNlJ9RVcL -So17VDs6bl8VAsBQps8lL33KSLjHUGMcKiEIfJo22Av+0SbFWDEwKCXzXV2juLal -tJLtbCyf691DiaI8S0iRHVDsJt/WYC69IaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAO -BgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBVfNVdRVfslsq0DafwBo/q+EVXVMAoG -CCqGSM49BAMDA2cAMGQCMGSWWaboCd6LuvpaiIjwH5HTRqjySkwCY/tsXzjbLkGT -qQ7mndwxHLKgpxgceeHHNgIwOlavmnRs9vuD4DPTCF+hnMJbn0bWtsuRBmOiBucz -rD6ogRLQy7rQkgu2npaqBA+K ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIID/jCCAuagAwIBAgIQFaxulBmyeUtB9iepwxgPHzANBgkqhkiG9w0BAQsFADCB -mDELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsT -MChjKSAyMDA4IEdlb1RydXN0IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25s -eTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhv -cml0eSAtIEczMB4XDTA4MDQwMjAwMDAwMFoXDTM3MTIwMTIzNTk1OVowgZgxCzAJ -BgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAoYykg -MjAwOCBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0 -BgNVBAMTLUdlb1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg -LSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANziXmJYHTNXOTIz -+uvLh4yn1ErdBojqZI4xmKU4kB6Yzy5jK/BGvESyiaHAKAxJcCGVn2TAppMSAmUm -hsalifD614SgcK9PGpc/BkTVyetyEH3kMSj7HGHmKAdEc5IiaacDiGydY8hS2pgn -5whMcD60yRLBxWeDXTPzAxHsatBT4tG6NmCUgLthY2xbF37fQJQeqw3CIShwiP/W -JmxsYAQlTlV+fe+/lEjetx3dcI0FX4ilm/LC7urRQEFtYjgdVgbFA0dRIBn8exAL -DmKudlW/X3e+PkkBUz2YJQN2JFodtNuJ6nnltrM7P7pMKEF/BqxqjsHQ9gUdfeZC -huOl1UcCAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYw -HQYDVR0OBBYEFMR5yo6hTgMdHNxr2zFblD4/MH8tMA0GCSqGSIb3DQEBCwUAA4IB -AQAtxRPPVoB7eni9n64smefv2t+UXglpp+duaIy9cr5HqQ6XErhK8WTTOd8lNNTB -zU6B8A8ExCSzNJbGpqow32hhc9f5joWJ7w5elShKKiePEI4ufIbEAp7aDHdlDkQN -kv39sxY2+hENHYwOB4lqKVb3cvTdFZx3NWZXqxNT2I7BQMXXExZacse3aQHEerGD -AWh9jUGhlBjBJVz88P6DAod8DQ3PLghcSkANPuyBYeYk28rgDi0Hsj5W3I31QYUH -SJsMC8tJP33st/3LjWeJGqvtux6jAAgIFyqCXDFdRootD4abdNlF+9RAsXqqaC2G -spki4cErx5z481+oghLrGREt ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIFaDCCA1CgAwIBAgIBATANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQGEwJVUzEW -MBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEeMBwGA1UEAxMVR2VvVHJ1c3QgVW5pdmVy -c2FsIENBMB4XDTA0MDMwNDA1MDAwMFoXDTI5MDMwNDA1MDAwMFowRTELMAkGA1UE -BhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xHjAcBgNVBAMTFUdlb1RydXN0 -IFVuaXZlcnNhbCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKYV -VaCjxuAfjJ0hUNfBvitbtaSeodlyWL0AG0y/YckUHUWCq8YdgNY96xCcOq9tJPi8 -cQGeBvV8Xx7BDlXKg5pZMK4ZyzBIle0iN430SppyZj6tlcDgFgDgEB8rMQ7XlFTT -QjOgNB0eRXbdT8oYN+yFFXoZCPzVx5zw8qkuEKmS5j1YPakWaDwvdSEYfyh3peFh -F7em6fgemdtzbvQKoiFs7tqqhZJmr/Z6a4LauiIINQ/PQvE1+mrufislzDoR5G2v -c7J2Ha3QsnhnGqQ5HFELZ1aD/ThdDc7d8Lsrlh/eezJS/R27tQahsiFepdaVaH/w -mZ7cRQg+59IJDTWU3YBOU5fXtQlEIGQWFwMCTFMNaN7VqnJNk22CDtucvc+081xd -VHppCZbW2xHBjXWotM85yM48vCR85mLK4b19p71XZQvk/iXttmkQ3CgaRr0BHdCX -teGYO8A3ZNY9lO4L4fUorgtWv3GLIylBjobFS1J72HGrH4oVpjuDWtdYAVHGTEHZ -f9hBZ3KiKN9gg6meyHv8U3NyWfWTehd2Ds735VzZC1U0oqpbtWpU5xPKV+yXbfRe -Bi9Fi1jUIxaS5BZuKGNZMN9QAZxjiRqf2xeUgnA3wySemkfWWspOqGmJch+RbNt+ -nhutxx9z3SxPGWX9f5NAEC7S8O08ni4oPmkmM8V7AgMBAAGjYzBhMA8GA1UdEwEB -/wQFMAMBAf8wHQYDVR0OBBYEFNq7LqqwDLiIJlF0XG0D08DYj3rWMB8GA1UdIwQY -MBaAFNq7LqqwDLiIJlF0XG0D08DYj3rWMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG -9w0BAQUFAAOCAgEAMXjmx7XfuJRAyXHEqDXsRh3ChfMoWIawC/yOsjmPRFWrZIRc -aanQmjg8+uUfNeVE44B5lGiku8SfPeE0zTBGi1QrlaXv9z+ZhP015s8xxtxqv6fX -IwjhmF7DWgh2qaavdy+3YL1ERmrvl/9zlcGO6JP7/TG37FcREUWbMPEaiDnBTzyn -ANXH/KttgCJwpQzgXQQpAvvLoJHRfNbDflDVnVi+QTjruXU8FdmbyUqDWcDaU/0z -uzYYm4UPFd3uLax2k7nZAY1IEKj79TiG8dsKxr2EoyNB3tZ3b4XUhRxQ4K5RirqN -Pnbiucon8l+f725ZDQbYKxek0nxru18UGkiPGkzns0ccjkxFKyDuSN/n3QmOGKja -QI2SJhFTYXNd673nxE0pN2HrrDktZy4W1vUAg4WhzH92xH3kt0tm7wNFYGm2DFKW -koRepqO1pD4r2czYG0eq8kTaT/kD6PAUyz/zg97QwVTjt+gKN02LIFkDMBmhLMi9 -ER/frslKxfMnZmaGrGiR/9nmUxwPi1xpZQomyB40w11Re9epnAahNt3ViZS82eQt -DF4JbAiXfKM9fJP/P6EUp8+1Xevb2xzEdt+Iub1FBZUbrvxGakyvSOPOrg/Sfuvm -bJxPgWp6ZKy7PtXny3YuxadIwVyQD8vIP/rmMuGNG2+k5o7Y+SlIis5z/iw= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIFbDCCA1SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBHMQswCQYDVQQGEwJVUzEW -MBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVy -c2FsIENBIDIwHhcNMDQwMzA0MDUwMDAwWhcNMjkwMzA0MDUwMDAwWjBHMQswCQYD -VQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEgMB4GA1UEAxMXR2VvVHJ1 -c3QgVW5pdmVyc2FsIENBIDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC -AQCzVFLByT7y2dyxUxpZKeexw0Uo5dfR7cXFS6GqdHtXr0om/Nj1XqduGdt0DE81 -WzILAePb63p3NeqqWuDW6KFXlPCQo3RWlEQwAx5cTiuFJnSCegx2oG9NzkEtoBUG -FF+3Qs17j1hhNNwqCPkuwwGmIkQcTAeC5lvO0Ep8BNMZcyfwqph/Lq9O64ceJHdq -XbboW0W63MOhBW9Wjo8QJqVJwy7XQYci4E+GymC16qFjwAGXEHm9ADwSbSsVsaxL -se4YuU6W3Nx2/zu+z18DwPw76L5GG//aQMJS9/7jOvdqdzXQ2o3rXhhqMcceujwb -KNZrVMaqW9eiLBsZzKIC9ptZvTdrhrVtgrrY6slWvKk2WP0+GfPtDCapkzj4T8Fd -IgbQl+rhrcZV4IErKIM6+vR7IVEAvlI4zs1meaj0gVbi0IMJR1FbUGrP20gaXT73 -y/Zl92zxlfgCOzJWgjl6W70viRu/obTo/3+NjN8D8WBOWBFM66M/ECuDmgFz2ZRt -hAAnZqzwcEAJQpKtT5MNYQlRJNiS1QuUYbKHsu3/mjX/hVTK7URDrBs8FmtISgoc -QIgfksILAAX/8sgCSqSqqcyZlpwvWOB94b67B9xfBHJcMTTD7F8t4D1kkCLm0ey4 -Lt1ZrtmhN79UNdxzMk+MBB4zsslG8dhcyFVQyWi9qLo2CQIDAQABo2MwYTAPBgNV -HRMBAf8EBTADAQH/MB0GA1UdDgQWBBR281Xh+qQ2+/CfXGJx7Tz0RzgQKzAfBgNV -HSMEGDAWgBR281Xh+qQ2+/CfXGJx7Tz0RzgQKzAOBgNVHQ8BAf8EBAMCAYYwDQYJ -KoZIhvcNAQEFBQADggIBAGbBxiPz2eAubl/oz66wsCVNK/g7WJtAJDday6sWSf+z -dXkzoS9tcBc0kf5nfo/sm+VegqlVHy/c1FEHEv6sFj4sNcZj/NwQ6w2jqtB8zNHQ -L1EuxBRa3ugZ4T7GzKQp5y6EqgYweHZUcyiYWTjgAA1i00J9IZ+uPTqM1fp3DRgr -Fg5fNuH8KrUwJM/gYwx7WBr+mbpCErGR9Hxo4sjoryzqyX6uuyo9DRXcNJW2GHSo -ag/HtPQTxORb7QrSpJdMKu0vbBKJPfEncKpqA1Ihn0CoZ1Dy81of398j9tx4TuaY -T1U6U+Pv8vSfx3zYWK8pIpe44L2RLrB27FcRz+8pRPPphXpgY+RdM4kX2TGq2tbz -GDVyz4crL2MjhF2EjD9XoIj8mZEoJmmZ1I+XRL6O1UixpCgp8RW04eWe3fiPpm8m -1wk8OhwRDqZsN/etRIcsKMfYdIKz0G9KV7s1KSegi+ghp4dkNl3M2Basx7InQJJV -OCiNUW7dFGdTbHFcJoRNdVq2fmBWqU2t+5sel/MN2dKXVHfaPRK34B7vCAas+YWH -6aLcr34YEoP9VhdBLtUpgn2Z9DH2canPLAEnpQW5qrJITirvn5NSUZU8UnOOVkwX -QMAJKOSLakhT2+zNVVXxxvjpoixMptEmX36vWkzaH6byHCx+rgIW0lbQL1dTR+iS ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIB4TCCAYegAwIBAgIRKjikHJYKBN5CsiilC+g0mAIwCgYIKoZIzj0EAwIwUDEk -MCIGA1UECxMbR2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI0MRMwEQYDVQQKEwpH -bG9iYWxTaWduMRMwEQYDVQQDEwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoX -DTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMbR2xvYmFsU2lnbiBFQ0MgUm9vdCBD -QSAtIFI0MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQDEwpHbG9iYWxTaWdu -MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEuMZ5049sJQ6fLjkZHAOkrprlOQcJ -FspjsbmG+IpXwVfOQvpzofdlQv8ewQCybnMO/8ch5RikqtlxP6jUuc6MHaNCMEAw -DgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFFSwe61F -uOJAf/sKbvu+M8k8o4TVMAoGCCqGSM49BAMCA0gAMEUCIQDckqGgE6bPA7DmxCGX -kPoUVy0D7O48027KqGx2vKLeuwIgJ6iFJzWbVsaj8kfSt24bAgAXqmemFZHe+pTs -ewv4n4Q= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIICHjCCAaSgAwIBAgIRYFlJ4CYuu1X5CneKcflK2GwwCgYIKoZIzj0EAwMwUDEk -MCIGA1UECxMbR2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpH -bG9iYWxTaWduMRMwEQYDVQQDEwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoX -DTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMbR2xvYmFsU2lnbiBFQ0MgUm9vdCBD -QSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQDEwpHbG9iYWxTaWdu -MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAER0UOlvt9Xb/pOdEh+J8LttV7HpI6SFkc -8GIxLcB6KP4ap1yztsyX50XUWPrRd21DosCHZTQKH3rd6zwzocWdTaRvQZU4f8ke -hOvRnkmSh5SHDDqFSmafnVmTTZdhBoZKo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYD -VR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUPeYpSJvqB8ohREom3m7e0oPQn1kwCgYI -KoZIzj0EAwMDaAAwZQIxAOVpEslu28YxuglB4Zf4+/2a4n0Sye18ZNPLBSWLVtmg -515dTguDnFt2KaAJJiFqYgIwcdK1j1zqO+F4CYWodZI7yFz9SO8NdCKoCOJuxUnO -xwy8p2Fp8fc74SrL+SvzZpA3 ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkG -A1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jv -b3QgQ0ExGzAZBgNVBAMTEkdsb2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAw -MDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9i -YWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJHbG9iYWxT -aWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDaDuaZ -jc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavp -xy0Sy6scTHAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp -1Wrjsok6Vjk4bwY8iGlbKk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdG -snUOhugZitVtbNV4FpWi6cgKOOvyJBNPc1STE4U6G7weNLWLBYy5d4ux2x8gkasJ -U26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrXgzT/LCrBbBlDSgeF59N8 -9iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8E -BTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0B -AQUFAAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOz -yj1hTdNGCbM+w6DjY1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE -38NflNUVyRRBnMRddWQVDf9VMOyGj/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymP -AbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhHhm4qxFYxldBniYUr+WymXUad -DKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveCX4XSQRjbgbME -HMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDujCCAqKgAwIBAgILBAAAAAABD4Ym5g0wDQYJKoZIhvcNAQEFBQAwTDEgMB4G -A1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNp -Z24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMDYxMjE1MDgwMDAwWhcNMjExMjE1 -MDgwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMjETMBEG -A1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCASIwDQYJKoZI -hvcNAQEBBQADggEPADCCAQoCggEBAKbPJA6+Lm8omUVCxKs+IVSbC9N/hHD6ErPL -v4dfxn+G07IwXNb9rfF73OX4YJYJkhD10FPe+3t+c4isUoh7SqbKSaZeqKeMWhG8 -eoLrvozps6yWJQeXSpkqBy+0Hne/ig+1AnwblrjFuTosvNYSuetZfeLQBoZfXklq -tTleiDTsvHgMCJiEbKjNS7SgfQx5TfC4LcshytVsW33hoCmEofnTlEnLJGKRILzd -C9XZzPnqJworc5HGnRusyMvo4KD0L5CLTfuwNhv2GXqF4G3yYROIXJ/gkwpRl4pa -zq+r1feqCapgvdzZX99yqWATXgAByUr6P6TqBwMhAo6CygPCm48CAwEAAaOBnDCB -mTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUm+IH -V2ccHsBqBt5ZtJot39wZhi4wNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2NybC5n -bG9iYWxzaWduLm5ldC9yb290LXIyLmNybDAfBgNVHSMEGDAWgBSb4gdXZxwewGoG -3lm0mi3f3BmGLjANBgkqhkiG9w0BAQUFAAOCAQEAmYFThxxol4aR7OBKuEQLq4Gs -J0/WwbgcQ3izDJr86iw8bmEbTUsp9Z8FHSbBuOmDAGJFtqkIk7mpM0sYmsL4h4hO -291xNBrBVNpGP+DTKqttVCL1OmLNIG+6KYnX3ZHu01yiPqFbQfXf5WRDLenVOavS -ot+3i9DAgBkcRcAtjOj4LaR0VknFBbVPFd5uRHg5h6h+u/N5GJG79G+dwfCMNYxd -AfvDbbnvRG15RjF+Cv6pgsH/76tuIMRQyV+dTZsXjAzlAcmgQWpzU/qlULRuJQ/7 -TBj0/VLZjmmx6BEP3ojY+x1J96relc8geMJgEtslQIxq/H5COEBkEveegeGTLg== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4G -A1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2JhbFNp -Z24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMDkwMzE4MTAwMDAwWhcNMjkwMzE4 -MTAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMzETMBEG -A1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCASIwDQYJKoZI -hvcNAQEBBQADggEPADCCAQoCggEBAMwldpB5BngiFvXAg7aEyiie/QV2EcWtiHL8 -RgJDx7KKnQRfJMsuS+FggkbhUqsMgUdwbN1k0ev1LKMPgj0MK66X17YUhhB5uzsT -gHeMCOFJ0mpiLx9e+pZo34knlTifBtc+ycsmWQ1z3rDI6SYOgxXG71uL0gRgykmm -KPZpO/bLyCiR5Z2KYVc3rHQU3HTgOu5yLy6c+9C7v/U9AOEGM+iCK65TpjoWc4zd -QQ4gOsC0p6Hpsk+QLjJg6VfLuQSSaGjlOCZgdbKfd/+RFO+uIEn8rUAVSNECMWEZ -XriX7613t2Saer9fwRPvm2L7DWzgVGkWqQPabumDk3F2xmmFghcCAwEAAaNCMEAw -DgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFI/wS3+o -LkUkrk1Q+mOai97i3Ru8MA0GCSqGSIb3DQEBCwUAA4IBAQBLQNvAUKr+yAzv95ZU -RUm7lgAJQayzE4aGKAczymvmdLm6AC2upArT9fHxD4q/c2dKg8dEe3jgr25sbwMp -jjM5RcOO5LlXbKr8EpbsU8Yt5CRsuZRj+9xTaGdWPoO4zzUhw8lo/s7awlOqzJCK -6fBdRoyV3XpYKBovHd7NADdBj+1EbddTKJd+82cEHhXXipa0095MJ6RMG3NzdvQX -mcIfeg7jLQitChws/zyrVQ4PkX4268NXSb7hLi18YIvDQVETI53O9zJrlAGomecs -Mx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7rkpeDMdmztcpH -WD9f ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIHSTCCBTGgAwIBAgIJAMnN0+nVfSPOMA0GCSqGSIb3DQEBBQUAMIGsMQswCQYD -VQQGEwJFVTFDMEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0 -IHd3dy5jYW1lcmZpcm1hLmNvbS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3 -MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMuQS4xJzAlBgNVBAMTHkdsb2JhbCBD -aGFtYmVyc2lnbiBSb290IC0gMjAwODAeFw0wODA4MDExMjMxNDBaFw0zODA3MzEx -MjMxNDBaMIGsMQswCQYDVQQGEwJFVTFDMEEGA1UEBxM6TWFkcmlkIChzZWUgY3Vy -cmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNvbS9hZGRyZXNzKTESMBAG -A1UEBRMJQTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMuQS4xJzAl -BgNVBAMTHkdsb2JhbCBDaGFtYmVyc2lnbiBSb290IC0gMjAwODCCAiIwDQYJKoZI -hvcNAQEBBQADggIPADCCAgoCggIBAMDfVtPkOpt2RbQT2//BthmLN0EYlVJH6xed -KYiONWwGMi5HYvNJBL99RDaxccy9Wglz1dmFRP+RVyXfXjaOcNFccUMd2drvXNL7 -G706tcuto8xEpw2uIRU/uXpbknXYpBI4iRmKt4DS4jJvVpyR1ogQC7N0ZJJ0YPP2 -zxhPYLIj0Mc7zmFLmY/CDNBAspjcDahOo7kKrmCgrUVSY7pmvWjg+b4aqIG7HkF4 -ddPB/gBVsIdU6CeQNR1MM62X/JcumIS/LMmjv9GYERTtY/jKmIhYF5ntRQOXfjyG -HoiMvvKRhI9lNNgATH23MRdaKXoKGCQwoze1eqkBfSbW+Q6OWfH9GzO1KTsXO0G2 -Id3UwD2ln58fQ1DJu7xsepeY7s2MH/ucUa6LcL0nn3HAa6x9kGbo1106DbDVwo3V -yJ2dwW3Q0L9R5OP4wzg2rtandeavhENdk5IMagfeOx2YItaswTXbo6Al/3K1dh3e -beksZixShNBFks4c5eUzHdwHU1SjqoI7mjcv3N2gZOnm3b2u/GSFHTynyQbehP9r -6GsaPMWis0L7iwk+XwhSx2LE1AVxv8Rk5Pihg+g+EpuoHtQ2TS9x9o0o9oOpE9Jh -wZG7SMA0j0GMS0zbaRL/UJScIINZc+18ofLx/d33SdNDWKBWY8o9PeU1VlnpDsog -zCtLkykPAgMBAAGjggFqMIIBZjASBgNVHRMBAf8ECDAGAQH/AgEMMB0GA1UdDgQW -BBS5CcqcHtvTbDprru1U8VuTBjUuXjCB4QYDVR0jBIHZMIHWgBS5CcqcHtvTbDpr -ru1U8VuTBjUuXqGBsqSBrzCBrDELMAkGA1UEBhMCRVUxQzBBBgNVBAcTOk1hZHJp -ZCAoc2VlIGN1cnJlbnQgYWRkcmVzcyBhdCB3d3cuY2FtZXJmaXJtYS5jb20vYWRk -cmVzcykxEjAQBgNVBAUTCUE4Mjc0MzI4NzEbMBkGA1UEChMSQUMgQ2FtZXJmaXJt -YSBTLkEuMScwJQYDVQQDEx5HbG9iYWwgQ2hhbWJlcnNpZ24gUm9vdCAtIDIwMDiC -CQDJzdPp1X0jzjAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRVHSAAMCow -KAYIKwYBBQUHAgEWHGh0dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20wDQYJKoZI -hvcNAQEFBQADggIBAICIf3DekijZBZRG/5BXqfEv3xoNa/p8DhxJJHkn2EaqbylZ -UohwEurdPfWbU1Rv4WCiqAm57OtZfMY18dwY6fFn5a+6ReAJ3spED8IXDneRRXoz -X1+WLGiLwUePmJs9wOzL9dWCkoQ10b42OFZyMVtHLaoXpGNR6woBrX/sdZ7LoR/x -fxKxueRkf2fWIyr0uDldmOghp+G9PUIadJpwr2hsUF1Jz//7Dl3mLEfXgTpZALVz -a2Mg9jFFCDkO9HB+QHBaP9BrQql0PSgvAm11cpUJjUhjxsYjV5KTXjXBjfkK9yyd -Yhz2rXzdpjEetrHHfoUm+qRqtdpjMNHvkzeyZi99Bffnt0uYlDXA2TopwZ2yUDMd -SqlapskD7+3056huirRXhOukP9DuqqqHW2Pok+JrqNS4cnhrG+055F3Lm6qH1U9O -AP7Zap88MQ8oAgF9mOinsKJknnn4SPIVqczmyETrP3iZ8ntxPjzxmKfFGBI/5rso -M0LpRQp8bfKGeS/Fghl9CYl8slR2iK7ewfPM4W7bMdaTrpmg7yVqc5iJWzouE4ge -v8CSlDQb4ye3ix5vQv/n6TebUB0tovkC7stYWDpxvGjjqsGvHCgfotwjZT+B6q6Z -09gwzxMNTxXJhLynSC34MCN32EZLeW32jO06f2ARePTpm67VVMB0gNELQp/B ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIEADCCAuigAwIBAgIBADANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEh -MB8GA1UEChMYVGhlIEdvIERhZGR5IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBE -YWRkeSBDbGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA0MDYyOTE3 -MDYyMFoXDTM0MDYyOTE3MDYyMFowYzELMAkGA1UEBhMCVVMxITAfBgNVBAoTGFRo -ZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28gRGFkZHkgQ2xhc3Mg -MiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASAwDQYJKoZIhvcNAQEBBQADggEN -ADCCAQgCggEBAN6d1+pXGEmhW+vXX0iG6r7d/+TvZxz0ZWizV3GgXne77ZtJ6XCA -PVYYYwhv2vLM0D9/AlQiVBDYsoHUwHU9S3/Hd8M+eKsaA7Ugay9qK7HFiH7Eux6w -wdhFJ2+qN1j3hybX2C32qRe3H3I2TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXi -EqITLdiOr18SPaAIBQi2XKVlOARFmR6jYGB0xUGlcmIbYsUfb18aQr4CUWWoriMY -avx4A6lNf4DD+qta/KFApMoZFv6yyO9ecw3ud72a9nmYvLEHZ6IVDd2gWMZEewo+ -YihfukEHU1jPEX44dMX4/7VpkI+EdOqXG68CAQOjgcAwgb0wHQYDVR0OBBYEFNLE -sNKR1EwRcbNhyz2h/t2oatTjMIGNBgNVHSMEgYUwgYKAFNLEsNKR1EwRcbNhyz2h -/t2oatTjoWekZTBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYVGhlIEdvIERhZGR5 -IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRpZmlj -YXRpb24gQXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQAD -ggEBADJL87LKPpH8EsahB4yOd6AzBhRckB4Y9wimPQoZ+YeAEW5p5JYXMP80kWNy -OO7MHAGjHZQopDH2esRU1/blMVgDoszOYtuURXO1v0XJJLXVggKtI3lpjbi2Tc7P -TMozI+gciKqdi0FuFskg5YmezTvacPd+mSYgFFQlq25zheabIZ0KbIIOqPjCDPoQ -HmyW74cNxA9hi63ugyuV+I6ShHI56yDqg+2DzZduCLzrTia2cyvk0/ZM/iZx4mER -dEr/VxqHD3VILs9RaRegAhJhldXRQLIQTO7ErBBDpqWeCtWVYpoNz4iCxTIM5Cuf -ReYNnyicsbkqWletNw+vHX/bvZ8= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDxTCCAq2gAwIBAgIBADANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMCVVMx -EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoT -EUdvRGFkZHkuY29tLCBJbmMuMTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRp -ZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIz -NTk1OVowgYMxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6b25hMRMwEQYDVQQH -EwpTY290dHNkYWxlMRowGAYDVQQKExFHb0RhZGR5LmNvbSwgSW5jLjExMC8GA1UE -AxMoR28gRGFkZHkgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIw -DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL9xYgjx+lk09xvJGKP3gElY6SKD -E6bFIEMBO4Tx5oVJnyfq9oQbTqC023CYxzIBsQU+B07u9PpPL1kwIuerGVZr4oAH -/PMWdYA5UXvl+TW2dE6pjYIT5LY/qQOD+qK+ihVqf94Lw7YZFAXK6sOoBJQ7Rnwy -DfMAZiLIjWltNowRGLfTshxgtDj6AozO091GB94KPutdfMh8+7ArU6SSYmlRJQVh -GkSBjCypQ5Yj36w6gZoOKcUcqeldHraenjAKOc7xiID7S13MMuyFYkMlNAJWJwGR -tDtwKj9useiciAF9n9T521NtYJ2/LOdYq7hfRvzOxBsDPAnrSTFcaUaz4EcCAwEA -AaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYE -FDqahQcQZyi27/a9BUFuIMGU2g/eMA0GCSqGSIb3DQEBCwUAA4IBAQCZ21151fmX -WWcDYfF+OwYxdS2hII5PZYe096acvNjpL9DbWu7PdIxztDhC2gV7+AJ1uP2lsdeu -9tfeE8tTEH6KRtGX+rcuKxGrkLAngPnon1rpN5+r5N9ss4UXnT3ZJE95kTXWXwTr -gIOrmgIttRD02JDHBHNA7XIloKmf7J6raBKZV8aPEjoJpL1E/QYVN8Gb5DKj7Tjo -2GTzLH4U/ALqn83/B2gX2yKQOC16jdFU8WnjXzPKej17CuPKf1855eJ1usV2GDPO -LPAvTK33sefOT6jEm0pUBsV/fdUID+Ic/n4XuKxe9tQWskMJDE32p2u0mYRlynqI -4uJEvlz36hz1 ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIEMTCCAxmgAwIBAgIBADANBgkqhkiG9w0BAQUFADCBlTELMAkGA1UEBhMCR1Ix -RDBCBgNVBAoTO0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1 -dGlvbnMgQ2VydC4gQXV0aG9yaXR5MUAwPgYDVQQDEzdIZWxsZW5pYyBBY2FkZW1p -YyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25zIFJvb3RDQSAyMDExMB4XDTExMTIw -NjEzNDk1MloXDTMxMTIwMTEzNDk1MlowgZUxCzAJBgNVBAYTAkdSMUQwQgYDVQQK -EztIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25zIENl -cnQuIEF1dGhvcml0eTFAMD4GA1UEAxM3SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJl -c2VhcmNoIEluc3RpdHV0aW9ucyBSb290Q0EgMjAxMTCCASIwDQYJKoZIhvcNAQEB -BQADggEPADCCAQoCggEBAKlTAOMupvaO+mDYLZU++CwqVE7NuYRhlFhPjz2L5EPz -dYmNUeTDN9KKiE15HrcS3UN4SoqS5tdI1Q+kOilENbgH9mgdVc04UfCMJDGFr4PJ -fel3r+0ae50X+bOdOFAPplp5kYCvN66m0zH7tSYJnTxa71HFK9+WXesyHgLacEns -bgzImjeN9/E2YEsmLIKe0HjzDQ9jpFEw4fkrJxIH2Oq9GGKYsFk3fb7u8yBRQlqD -75O6aRXxYp2fmTmCobd0LovUxQt7L/DICto9eQqakxylKHJzkUOap9FNhYS5qXSP -FEDH3N6sQWRstBmbAmNtJGSPRLIl6s5ddAxjMlyNh+UCAwEAAaOBiTCBhjAPBgNV -HRMBAf8EBTADAQH/MAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQUppFC/RNhSiOeCKQp -5dgTBCPuQSUwRwYDVR0eBEAwPqA8MAWCAy5ncjAFggMuZXUwBoIELmVkdTAGggQu -b3JnMAWBAy5ncjAFgQMuZXUwBoEELmVkdTAGgQQub3JnMA0GCSqGSIb3DQEBBQUA -A4IBAQAf73lB4XtuP7KMhjdCSk4cNx6NZrokgclPEg8hwAOXhiVtXdMiKahsog2p -6z0GW5k6x8zDmjR/qw7IThzh+uTczQ2+vyT+bOdrwg3IBp5OjWEopmr95fZi6hg8 -TqBTnbI6nOulnJEWtk2C4AwFSKls9cz4y51JtPACpf1wA+2KIaWuE4ZJwzNzvoc7 -dIsXRSZMFpGD/md9zU1jZ/rzAxKWeAaNsWftjj++n08C9bMJL/NMh98qy5V8Acys -Nnq/onN694/BtZqhFLKPM58N7yLcZnuEvUUXBj08yrl3NI/K6s8/MT7jiOOASSXI -l7WdmplNsDz4SgCbZN2fOUvRJ9e4 ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDMDCCAhigAwIBAgICA+gwDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCSEsx -FjAUBgNVBAoTDUhvbmdrb25nIFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3Qg -Um9vdCBDQSAxMB4XDTAzMDUxNTA1MTMxNFoXDTIzMDUxNTA0NTIyOVowRzELMAkG -A1UEBhMCSEsxFjAUBgNVBAoTDUhvbmdrb25nIFBvc3QxIDAeBgNVBAMTF0hvbmdr -b25nIFBvc3QgUm9vdCBDQSAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC -AQEArP84tulmAknjorThkPlAj3n54r15/gK97iSSHSL22oVyaf7XPwnU3ZG1ApzQ -jVrhVcNQhrkpJsLj2aDxaQMoIIBFIi1WpztUlVYiWR8o3x8gPW2iNr4joLFutbEn -PzlTCeqrauh0ssJlXI6/fMN4hM2eFvz1Lk8gKgifd/PFHsSaUmYeSF7jEAaPIpjh -ZY4bXSNmO7ilMlHIhqqhqZ5/dpTCpmy3QfDVyAY45tQM4vM7TG1QjMSDJ8EThFk9 -nnV0ttgCXjqQesBCNnLsak3c78QA3xMYV18meMjWCnl3v/evt3a5pQuEF10Q6m/h -q5URX208o1xNg1vysxmKgIsLhwIDAQABoyYwJDASBgNVHRMBAf8ECDAGAQH/AgED -MA4GA1UdDwEB/wQEAwIBxjANBgkqhkiG9w0BAQUFAAOCAQEADkbVPK7ih9legYsC -mEEIjEy82tvuJxuC52pF7BaLT4Wg87JwvVqWuspube5Gi27nKi6Wsxkz67SfqLI3 -7piol7Yutmcn1KZJ/RyTZXaeQi/cImyaT/JaFTmxcdcrUehtHJjA2Sr0oYJ71clB -oiMBdDhViw+5LmeiIAQ32pwL0xch4I+XeTRvhEgCIDMb5jREn5Fw9IBehEPCKdJs -EhTkYY2sEJCehFC78JZvRZ+K88psT/oROhUVRsPNH4NbLUES7VBnQRM9IauUiqpO -fMGx+6fWtScvl6tu4B3i0RwsH0Ti/L6RoZz71ilTc4afU9hDDl3WY4JxHYB0yvbi -AmvZWg== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIEAjCCAuqgAwIBAgIFORFFEJQwDQYJKoZIhvcNAQEFBQAwgYUxCzAJBgNVBAYT -AkZSMQ8wDQYDVQQIEwZGcmFuY2UxDjAMBgNVBAcTBVBhcmlzMRAwDgYDVQQKEwdQ -TS9TR0ROMQ4wDAYDVQQLEwVEQ1NTSTEOMAwGA1UEAxMFSUdDL0ExIzAhBgkqhkiG -9w0BCQEWFGlnY2FAc2dkbi5wbS5nb3V2LmZyMB4XDTAyMTIxMzE0MjkyM1oXDTIw -MTAxNzE0MjkyMlowgYUxCzAJBgNVBAYTAkZSMQ8wDQYDVQQIEwZGcmFuY2UxDjAM -BgNVBAcTBVBhcmlzMRAwDgYDVQQKEwdQTS9TR0ROMQ4wDAYDVQQLEwVEQ1NTSTEO -MAwGA1UEAxMFSUdDL0ExIzAhBgkqhkiG9w0BCQEWFGlnY2FAc2dkbi5wbS5nb3V2 -LmZyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsh/R0GLFMzvABIaI -s9z4iPf930Pfeo2aSVz2TqrMHLmh6yeJ8kbpO0px1R2OLc/mratjUMdUC24SyZA2 -xtgv2pGqaMVy/hcKshd+ebUyiHDKcMCWSo7kVc0dJ5S/znIq7Fz5cyD+vfcuiWe4 -u0dzEvfRNWk68gq5rv9GQkaiv6GFGvm/5P9JhfejcIYyHF2fYPepraX/z9E0+X1b -F8bc1g4oa8Ld8fUzaJ1O/Id8NhLWo4DoQw1VYZTqZDdH6nfK0LJYBcNdfrGoRpAx -Vs5wKpayMLh35nnAvSk7/ZR3TL0gzUEl4C7HG7vupARB0l2tEmqKm0f7yd1GQOGd -PDPQtQIDAQABo3cwdTAPBgNVHRMBAf8EBTADAQH/MAsGA1UdDwQEAwIBRjAVBgNV -HSAEDjAMMAoGCCqBegF5AQEBMB0GA1UdDgQWBBSjBS8YYFDCiQrdKyFP/45OqDAx -NjAfBgNVHSMEGDAWgBSjBS8YYFDCiQrdKyFP/45OqDAxNjANBgkqhkiG9w0BAQUF -AAOCAQEABdwm2Pp3FURo/C9mOnTgXeQp/wYHE4RKq89toB9RlPhJy3Q2FLwV3duJ -L92PoF189RLrn544pEfMs5bZvpwlqwN+Mw+VgQ39FuCIvjfwbF3QMZsyK10XZZOY -YLxuj7GoPB7ZHPOpJkL5ZB3C55L29B5aqhlSXa/oovdgoPaN8In1buAKBQGVyYsg -Crpa/JosPL3Dt8ldeCUFP1YUmwza+zpI/pdpXsoQhvdOlgQITeywvl3cO45Pwf2a -NjSaTFR+FwNIlQgRHAdvhQh+XU3Endv7rs6y0bO4g2wdsrN58dhwmX7wEwLOXt1R -0982gaEbeC9xs/FZTEYYKKuF0mBWWg== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIFYDCCA0igAwIBAgIQCgFCgAAAAUUjyES1AAAAAjANBgkqhkiG9w0BAQsFADBK -MQswCQYDVQQGEwJVUzESMBAGA1UEChMJSWRlblRydXN0MScwJQYDVQQDEx5JZGVu -VHJ1c3QgQ29tbWVyY2lhbCBSb290IENBIDEwHhcNMTQwMTE2MTgxMjIzWhcNMzQw -MTE2MTgxMjIzWjBKMQswCQYDVQQGEwJVUzESMBAGA1UEChMJSWRlblRydXN0MScw -JQYDVQQDEx5JZGVuVHJ1c3QgQ29tbWVyY2lhbCBSb290IENBIDEwggIiMA0GCSqG -SIb3DQEBAQUAA4ICDwAwggIKAoICAQCnUBneP5k91DNG8W9RYYKyqU+PZ4ldhNlT -3Qwo2dfw/66VQ3KZ+bVdfIrBQuExUHTRgQ18zZshq0PirK1ehm7zCYofWjK9ouuU -+ehcCuz/mNKvcbO0U59Oh++SvL3sTzIwiEsXXlfEU8L2ApeN2WIrvyQfYo3fw7gp -S0l4PJNgiCL8mdo2yMKi1CxUAGc1bnO/AljwpN3lsKImesrgNqUZFvX9t++uP0D1 -bVoE/c40yiTcdCMbXTMTEl3EASX2MN0CXZ/g1Ue9tOsbobtJSdifWwLziuQkkORi -T0/Br4sOdBeo0XKIanoBScy0RnnGF7HamB4HWfp1IYVl3ZBWzvurpWCdxJ35UrCL -vYf5jysjCiN2O/cz4ckA82n5S6LgTrx+kzmEB/dEcH7+B1rlsazRGMzyNeVJSQjK -Vsk9+w8YfYs7wRPCTY/JTw436R+hDmrfYi7LNQZReSzIJTj0+kuniVyc0uMNOYZK -dHzVWYfCP04MXFL0PfdSgvHqo6z9STQaKPNBiDoT7uje/5kdX7rL6B7yuVBgwDHT -c+XvvqDtMwt0viAgxGds8AgDelWAf0ZOlqf0Hj7h9tgJ4TNkK2PXMl6f+cB7D3hv -l7yTmvmcEpB4eoCHFddydJxVdHixuuFucAS6T6C6aMN7/zHwcz09lCqxC0EOoP5N -iGVreTO01wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB -/zAdBgNVHQ4EFgQU7UQZwNPwBovupHu+QucmVMiONnYwDQYJKoZIhvcNAQELBQAD -ggIBAA2ukDL2pkt8RHYZYR4nKM1eVO8lvOMIkPkp165oCOGUAFjvLi5+U1KMtlwH -6oi6mYtQlNeCgN9hCQCTrQ0U5s7B8jeUeLBfnLOic7iPBZM4zY0+sLj7wM+x8uwt -LRvM7Kqas6pgghstO8OEPVeKlh6cdbjTMM1gCIOQ045U8U1mwF10A0Cj7oV+wh93 -nAbowacYXVKV7cndJZ5t+qntozo00Fl72u1Q8zW/7esUTTHHYPTa8Yec4kjixsU3 -+wYQ+nVZZjFHKdp2mhzpgq7vmrlR94gjmmmVYjzlVYA211QC//G5Xc7UI2/YRYRK -W2XviQzdFKcgyxilJbQN+QHwotL0AMh0jqEqSI5l2xPE4iUXfeu+h1sXIFRRk0pT -AwvsXcoz7WL9RccvW9xYoIA55vrX/hMUpu09lEpCdNTDd1lzzY9GvlU47/rokTLq -l1gEIt44w8y8bckzOmoKaT+gyOpyj4xjhiO9bTyWnpXgSUyqorkqG5w2gXjtw+hG -4iZZRHUe2XWJUc0QhJ1hYMtd+ZciTY6Y5uN/9lu7rs3KSoFrXgvzUeF0K+l+J6fZ -mUlO+KWA2yUPHGNiiskzZ2s8EIPGrd6ozRaOjfAHN3Gf8qv8QfXBi+wAN10J5U6A -7/qxXDgGpRtK4dw4LTzcqx+QGtVKnO7RcGzM7vRX+Bi6hG6H ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIFZjCCA06gAwIBAgIQCgFCgAAAAUUjz0Z8AAAAAjANBgkqhkiG9w0BAQsFADBN -MQswCQYDVQQGEwJVUzESMBAGA1UEChMJSWRlblRydXN0MSowKAYDVQQDEyFJZGVu -VHJ1c3QgUHVibGljIFNlY3RvciBSb290IENBIDEwHhcNMTQwMTE2MTc1MzMyWhcN -MzQwMTE2MTc1MzMyWjBNMQswCQYDVQQGEwJVUzESMBAGA1UEChMJSWRlblRydXN0 -MSowKAYDVQQDEyFJZGVuVHJ1c3QgUHVibGljIFNlY3RvciBSb290IENBIDEwggIi -MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2IpT8pEiv6EdrCvsnduTyP4o7 -ekosMSqMjbCpwzFrqHd2hCa2rIFCDQjrVVi7evi8ZX3yoG2LqEfpYnYeEe4IFNGy -RBb06tD6Hi9e28tzQa68ALBKK0CyrOE7S8ItneShm+waOh7wCLPQ5CQ1B5+ctMlS -bdsHyo+1W/CD80/HLaXIrcuVIKQxKFdYWuSNG5qrng0M8gozOSI5Cpcu81N3uURF -/YTLNiCBWS2ab21ISGHKTN9T0a9SvESfqy9rg3LvdYDaBjMbXcjaY8ZNzaxmMc3R -3j6HEDbhuaR672BQssvKplbgN6+rNBM5Jeg5ZuSYeqoSmJxZZoY+rfGwyj4GD3vw -EUs3oERte8uojHH01bWRNszwFcYr3lEXsZdMUD2xlVl8BX0tIdUAvwFnol57plzy -9yLxkA2T26pEUWbMfXYD62qoKjgZl3YNa4ph+bz27nb9cCvdKTz4Ch5bQhyLVi9V -GxyhLrXHFub4qjySjmm2AcG1hp2JDws4lFTo6tyePSW8Uybt1as5qsVATFSrsrTZ -2fjXctscvG29ZV/viDUqZi/u9rNl8DONfJhBaUYPQxxp+pu10GFqzcpL2UyQRqsV -WaFHVCkugyhfHMKiq3IXAAaOReyL4jM9f9oZRORicsPfIsbyVtTdX5Vy7W1f90gD -W/3FKqD2cyOEEBsB5wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/ -BAUwAwEB/zAdBgNVHQ4EFgQU43HgntinQtnbcZFrlJPrw6PRFKMwDQYJKoZIhvcN -AQELBQADggIBAEf63QqwEZE4rU1d9+UOl1QZgkiHVIyqZJnYWv6IAcVYpZmxI1Qj -t2odIFflAWJBF9MJ23XLblSQdf4an4EKwt3X9wnQW3IV5B4Jaj0z8yGa5hV+rVHV -DRDtfULAj+7AmgjVQdZcDiFpboBhDhXAuM/FSRJSzL46zNQuOAXeNf0fb7iAaJg9 -TaDKQGXSc3z1i9kKlT/YPyNtGtEqJBnZhbMX73huqVjRI9PHE+1yJX9dsXNw0H8G -lwmEKYBhHfpe/3OsoOOJuBxxFcbeMX8S3OFtm6/n6J91eEyrRjuazr8FGF1NFTwW -mhlQBJqymm9li1JfPFgEKCXAZmExfrngdbkaqIHWchezxQMxNRF4eKLg6TCMf4Df -WN88uieW4oA0beOY02QnrEh+KHdcxiVhJfiFDGX6xDIvpZgF5PgLZxYWxoK4Mhn5 -+bl53B/N66+rDt0b20XkeucC4pVd/GnwU2lhlXV5C15V5jgclKlZM57IcXR5f1GJ -tshquDDIajjDbp7hNxbqBWJMWxJH7ae0s1hWx0nzfxJoCTFx8G34Tkf71oXuxVhA -GaQdp/lLQzfcaFpPz+vCZHTetBXZ9FRUGi8c15dxVJCO2SCdUyt/q4/i6jC8UDfv -8Ue1fXwsBOxonbRJRBD0ckscZOf85muQ3Wl9af0AVqW3rLatt8o+Ae+c ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIF8TCCA9mgAwIBAgIQALC3WhZIX7/hy/WL1xnmfTANBgkqhkiG9w0BAQsFADA4 -MQswCQYDVQQGEwJFUzEUMBIGA1UECgwLSVpFTlBFIFMuQS4xEzARBgNVBAMMCkl6 -ZW5wZS5jb20wHhcNMDcxMjEzMTMwODI4WhcNMzcxMjEzMDgyNzI1WjA4MQswCQYD -VQQGEwJFUzEUMBIGA1UECgwLSVpFTlBFIFMuQS4xEzARBgNVBAMMCkl6ZW5wZS5j -b20wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDJ03rKDx6sp4boFmVq -scIbRTJxldn+EFvMr+eleQGPicPK8lVx93e+d5TzcqQsRNiekpsUOqHnJJAKClaO -xdgmlOHZSOEtPtoKct2jmRXagaKH9HtuJneJWK3W6wyyQXpzbm3benhB6QiIEn6H -LmYRY2xU+zydcsC8Lv/Ct90NduM61/e0aL6i9eOBbsFGb12N4E3GVFWJGjMxCrFX -uaOKmMPsOzTFlUFpfnXCPCDFYbpRR6AgkJOhkEvzTnyFRVSa0QUmQbC1TR0zvsQD -yCV8wXDbO/QJLVQnSKwv4cSsPsjLkkxTOTcj7NMB+eAJRE1NZMDhDVqHIrytG6P+ -JrUV86f8hBnp7KGItERphIPzidF0BqnMC9bC3ieFUCbKF7jJeodWLBoBHmy+E60Q -rLUk9TiRodZL2vG70t5HtfG8gfZZa88ZU+mNFctKy6lvROUbQc/hhqfK0GqfvEyN -BjNaooXlkDWgYlwWTvDjovoDGrQscbNYLN57C9saD+veIR8GdwYDsMnvmfzAuU8L -hij+0rnq49qlw0dpEuDb8PYZi+17cNcC1u2HGCgsBCRMd+RIihrGO5rUD8r6ddIB -QFqNeb+Lz0vPqhbBleStTIo+F5HUsWLlguWABKQDfo2/2n+iD5dPDNMN+9fR5XJ+ -HMh3/1uaD7euBUbl8agW7EekFwIDAQABo4H2MIHzMIGwBgNVHREEgagwgaWBD2lu -Zm9AaXplbnBlLmNvbaSBkTCBjjFHMEUGA1UECgw+SVpFTlBFIFMuQS4gLSBDSUYg -QTAxMzM3MjYwLVJNZXJjLlZpdG9yaWEtR2FzdGVpeiBUMTA1NSBGNjIgUzgxQzBB -BgNVBAkMOkF2ZGEgZGVsIE1lZGl0ZXJyYW5lbyBFdG9yYmlkZWEgMTQgLSAwMTAx -MCBWaXRvcmlhLUdhc3RlaXowDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC -AQYwHQYDVR0OBBYEFB0cZQ6o8iV7tJHP5LGx5r1VdGwFMA0GCSqGSIb3DQEBCwUA -A4ICAQB4pgwWSp9MiDrAyw6lFn2fuUhfGI8NYjb2zRlrrKvV9pF9rnHzP7MOeIWb -laQnIUdCSnxIOvVFfLMMjlF4rJUT3sb9fbgakEyrkgPH7UIBzg/YsfqikuFgba56 -awmqxinuaElnMIAkejEWOVt+8Rwu3WwJrfIxwYJOubv5vr8qhT/AQKM6WfxZSzwo -JNu0FXWuDYi6LnPAvViH5ULy617uHjAimcs30cQhbIHsvm0m5hzkQiCeR7Csg1lw -LDXWrzY0tM07+DKo7+N4ifuNRSzanLh+QBxh5z6ikixL8s36mLYp//Pye6kfLqCT -VyvehQP5aTfLnnhqBbTFMXiJ7HqnheG5ezzevh55hM6fcA5ZwjUukCox2eRFekGk -LhObNA5me0mrZJfQRsN5nXJQY6aYWwa9SG3YOYNw6DXwBdGqvOPbyALqfP2C2sJb -UjWumDqtujWTI6cfSN01RpiyEGjkpTHCClguGYEQyVB1/OpaFs4R1+7vUIgtYf8/ -QnMFlEPVjjxOAToZpR9GTnfQXeWBIiGH/pR9hNiTrdZoQ0iy2+tzJOeRf1SktoA+ -naM8THLCV8Sg1Mw4J87VBp6iSNnpn86CcDaTmjvfliHjWbcM2pE38P1ZWrOZyGls -QyYBNWNgVYkDOnXYukrZVP/u3oDYLdE41V4tC5h9Pmzb/CaIxw== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIE5jCCA86gAwIBAgIEO45L/DANBgkqhkiG9w0BAQUFADBdMRgwFgYJKoZIhvcN -AQkBFglwa2lAc2suZWUxCzAJBgNVBAYTAkVFMSIwIAYDVQQKExlBUyBTZXJ0aWZp -dHNlZXJpbWlza2Vza3VzMRAwDgYDVQQDEwdKdXVyLVNLMB4XDTAxMDgzMDE0MjMw -MVoXDTE2MDgyNjE0MjMwMVowXTEYMBYGCSqGSIb3DQEJARYJcGtpQHNrLmVlMQsw -CQYDVQQGEwJFRTEiMCAGA1UEChMZQVMgU2VydGlmaXRzZWVyaW1pc2tlc2t1czEQ -MA4GA1UEAxMHSnV1ci1TSzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB -AIFxNj4zB9bjMI0TfncyRsvPGbJgMUaXhvSYRqTCZUXP00B841oiqBB4M8yIsdOB -SvZiF3tfTQou0M+LI+5PAk676w7KvRhj6IAcjeEcjT3g/1tf6mTll+g/mX8MCgkz -ABpTpyHhOEvWgxutr2TC+Rx6jGZITWYfGAriPrsfB2WThbkasLnE+w0R9vXW+RvH -LCu3GFH+4Hv2qEivbDtPL+/40UceJlfwUR0zlv/vWT3aTdEVNMfqPxZIe5EcgEMP -PbgFPtGzlc3Yyg/CQ2fbt5PgIoIuvvVoKIO5wTtpeyDaTpxt4brNj3pssAki14sL -2xzVWiZbDcDq5WDQn/413z8CAwEAAaOCAawwggGoMA8GA1UdEwEB/wQFMAMBAf8w -ggEWBgNVHSAEggENMIIBCTCCAQUGCisGAQQBzh8BAQEwgfYwgdAGCCsGAQUFBwIC -MIHDHoHAAFMAZQBlACAAcwBlAHIAdABpAGYAaQBrAGEAYQB0ACAAbwBuACAAdgDk -AGwAagBhAHMAdABhAHQAdQBkACAAQQBTAC0AaQBzACAAUwBlAHIAdABpAGYAaQB0 -AHMAZQBlAHIAaQBtAGkAcwBrAGUAcwBrAHUAcwAgAGEAbABhAG0ALQBTAEsAIABz -AGUAcgB0AGkAZgBpAGsAYQBhAHQAaQBkAGUAIABrAGkAbgBuAGkAdABhAG0AaQBz -AGUAawBzMCEGCCsGAQUFBwIBFhVodHRwOi8vd3d3LnNrLmVlL2Nwcy8wKwYDVR0f -BCQwIjAgoB6gHIYaaHR0cDovL3d3dy5zay5lZS9qdXVyL2NybC8wHQYDVR0OBBYE -FASqekej5ImvGs8KQKcYP2/v6X2+MB8GA1UdIwQYMBaAFASqekej5ImvGs8KQKcY -P2/v6X2+MA4GA1UdDwEB/wQEAwIB5jANBgkqhkiG9w0BAQUFAAOCAQEAe8EYlFOi -CfP+JmeaUOTDBS8rNXiRTHyoERF5TElZrMj3hWVcRrs7EKACr81Ptcw2Kuxd/u+g -kcm2k298gFTsxwhwDY77guwqYHhpNjbRxZyLabVAyJRld/JXIWY7zoVAtjNjGr95 -HvxcHdMdkxuLDF2FvZkwMhgJkVLpfKG6/2SSmuz+Ne6ML678IIbsSt4beDI3poHS -na9aEhbKmVv8b20OxaAehsmR0FyYgl9jDIpaq9iVpszLita/ZEuOyoqysOkhMp6q -qIWYNIE5ITuoOlIyPfZrN4YGWhWY3PARZv40ILcD9EEQfTmEeZZyY7aWAuVrua0Z -TbvGRNs2yyqcjg== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIHqDCCBpCgAwIBAgIRAMy4579OKRr9otxmpRwsDxEwDQYJKoZIhvcNAQEFBQAw -cjELMAkGA1UEBhMCSFUxETAPBgNVBAcTCEJ1ZGFwZXN0MRYwFAYDVQQKEw1NaWNy -b3NlYyBMdGQuMRQwEgYDVQQLEwtlLVN6aWdubyBDQTEiMCAGA1UEAxMZTWljcm9z -ZWMgZS1Temlnbm8gUm9vdCBDQTAeFw0wNTA0MDYxMjI4NDRaFw0xNzA0MDYxMjI4 -NDRaMHIxCzAJBgNVBAYTAkhVMREwDwYDVQQHEwhCdWRhcGVzdDEWMBQGA1UEChMN -TWljcm9zZWMgTHRkLjEUMBIGA1UECxMLZS1Temlnbm8gQ0ExIjAgBgNVBAMTGU1p -Y3Jvc2VjIGUtU3ppZ25vIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw -ggEKAoIBAQDtyADVgXvNOABHzNuEwSFpLHSQDCHZU4ftPkNEU6+r+ICbPHiN1I2u -uO/TEdyB5s87lozWbxXGd36hL+BfkrYn13aaHUM86tnsL+4582pnS4uCzyL4ZVX+ -LMsvfUh6PXX5qqAnu3jCBspRwn5mS6/NoqdNAoI/gqyFxuEPkEeZlApxcpMqyabA -vjxWTHOSJ/FrtfX9/DAFYJLG65Z+AZHCabEeHXtTRbjcQR/Ji3HWVBTji1R4P770 -Yjtb9aPs1ZJ04nQw7wHb4dSrmZsqa/i9phyGI0Jf7Enemotb9HI6QMVJPqW+jqpx -62z69Rrkav17fVVA71hu5tnVvCSrwe+3AgMBAAGjggQ3MIIEMzBnBggrBgEFBQcB -AQRbMFkwKAYIKwYBBQUHMAGGHGh0dHBzOi8vcmNhLmUtc3ppZ25vLmh1L29jc3Aw -LQYIKwYBBQUHMAKGIWh0dHA6Ly93d3cuZS1zemlnbm8uaHUvUm9vdENBLmNydDAP -BgNVHRMBAf8EBTADAQH/MIIBcwYDVR0gBIIBajCCAWYwggFiBgwrBgEEAYGoGAIB -AQEwggFQMCgGCCsGAQUFBwIBFhxodHRwOi8vd3d3LmUtc3ppZ25vLmh1L1NaU1ov -MIIBIgYIKwYBBQUHAgIwggEUHoIBEABBACAAdABhAG4A+gBzAO0AdAB2AOEAbgB5 -ACAA6QByAHQAZQBsAG0AZQB6AOkAcwDpAGgAZQB6ACAA6QBzACAAZQBsAGYAbwBn -AGEAZADhAHMA4QBoAG8AegAgAGEAIABTAHoAbwBsAGcA4QBsAHQAYQB0APMAIABT -AHoAbwBsAGcA4QBsAHQAYQB0AOEAcwBpACAAUwB6AGEAYgDhAGwAeQB6AGEAdABh -ACAAcwB6AGUAcgBpAG4AdAAgAGsAZQBsAGwAIABlAGwAagDhAHIAbgBpADoAIABo -AHQAdABwADoALwAvAHcAdwB3AC4AZQAtAHMAegBpAGcAbgBvAC4AaAB1AC8AUwBa -AFMAWgAvMIHIBgNVHR8EgcAwgb0wgbqggbeggbSGIWh0dHA6Ly93d3cuZS1zemln -bm8uaHUvUm9vdENBLmNybIaBjmxkYXA6Ly9sZGFwLmUtc3ppZ25vLmh1L0NOPU1p -Y3Jvc2VjJTIwZS1Temlnbm8lMjBSb290JTIwQ0EsT1U9ZS1Temlnbm8lMjBDQSxP -PU1pY3Jvc2VjJTIwTHRkLixMPUJ1ZGFwZXN0LEM9SFU/Y2VydGlmaWNhdGVSZXZv -Y2F0aW9uTGlzdDtiaW5hcnkwDgYDVR0PAQH/BAQDAgEGMIGWBgNVHREEgY4wgYuB -EGluZm9AZS1zemlnbm8uaHWkdzB1MSMwIQYDVQQDDBpNaWNyb3NlYyBlLVN6aWdu -w7MgUm9vdCBDQTEWMBQGA1UECwwNZS1TemlnbsOzIEhTWjEWMBQGA1UEChMNTWlj -cm9zZWMgS2Z0LjERMA8GA1UEBxMIQnVkYXBlc3QxCzAJBgNVBAYTAkhVMIGsBgNV -HSMEgaQwgaGAFMegSXUWYYTbMUuE0vE3QJDvTtz3oXakdDByMQswCQYDVQQGEwJI -VTERMA8GA1UEBxMIQnVkYXBlc3QxFjAUBgNVBAoTDU1pY3Jvc2VjIEx0ZC4xFDAS -BgNVBAsTC2UtU3ppZ25vIENBMSIwIAYDVQQDExlNaWNyb3NlYyBlLVN6aWdubyBS -b290IENBghEAzLjnv04pGv2i3GalHCwPETAdBgNVHQ4EFgQUx6BJdRZhhNsxS4TS -8TdAkO9O3PcwDQYJKoZIhvcNAQEFBQADggEBANMTnGZjWS7KXHAM/IO8VbH0jgds -ZifOwTsgqRy7RlRw7lrMoHfqaEQn6/Ip3Xep1fvj1KcExJW4C+FEaGAHQzAxQmHl -7tnlJNUb3+FKG6qfx1/4ehHqE5MAyopYse7tDk2016g2JnzgOsHVV4Lxdbb9iV/a -86g4nzUGCM4ilb7N1fy+W955a9x6qWVmvrElWl/tftOsRm1M9DKHtCAE4Gx4sHfR -hUZLphK3dehKyVZs15KrnfVJONJPU+NVkBHbmJbGSfI+9J8b4PeI3CVimUTYc78/ -MPMMNz7UwiiAc7EBt51alhQBS6kRnSlqLtBdgcDPsiBDxwPgN05dCtxZICU= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIECjCCAvKgAwIBAgIJAMJ+QwRORz8ZMA0GCSqGSIb3DQEBCwUAMIGCMQswCQYD -VQQGEwJIVTERMA8GA1UEBwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0 -ZC4xJzAlBgNVBAMMHk1pY3Jvc2VjIGUtU3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0G -CSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5odTAeFw0wOTA2MTYxMTMwMThaFw0y -OTEyMzAxMTMwMThaMIGCMQswCQYDVQQGEwJIVTERMA8GA1UEBwwIQnVkYXBlc3Qx -FjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jvc2VjIGUtU3pp -Z25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5o -dTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOn4j/NjrdqG2KfgQvvP -kd6mJviZpWNwrZuuyjNAfW2WbqEORO7hE52UQlKavXWFdCyoDh2Tthi3jCyoz/tc -cbna7P7ofo/kLx2yqHWH2Leh5TvPmUpG0IMZfcChEhyVbUr02MelTTMuhTlAdX4U -fIASmFDHQWe4oIBhVKZsTh/gnQ4H6cm6M+f+wFUoLAKApxn1ntxVUwOXewdI/5n7 -N4okxFnMUBBjjqqpGrCEGob5X7uxUG6k0QrM1XF+H6cbfPVTbiJfyyvm1HxdrtbC -xkzlBQHZ7Vf8wSN5/PrIJIOV87VqUQHQd9bpEqH5GoP7ghu5sJf0dgYzQ0mg/wu1 -+rUCAwEAAaOBgDB+MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G -A1UdDgQWBBTLD8bfQkPMPcu1SCOhGnqmKrs0aDAfBgNVHSMEGDAWgBTLD8bfQkPM -Pcu1SCOhGnqmKrs0aDAbBgNVHREEFDASgRBpbmZvQGUtc3ppZ25vLmh1MA0GCSqG -SIb3DQEBCwUAA4IBAQDJ0Q5eLtXMs3w+y/w9/w0olZMEyL/azXm4Q5DwpL7v8u8h -mLzU1F0G9u5C7DBsoKqpyvGvivo/C3NqPuouQH4frlRheesuCDfXI/OMn74dseGk -ddug4lQUsbocKaQY9hK6ohQU4zE1yED/t+AFdlfBHFny+L/k7SViXITwfn4fs775 -tyERzAMBVnCnEJIeGzSBHq2cGsMEPO0CYdYeBvNfOofyK/FFh+U9rNHHV4S9a67c -2Pm2G2JwCz02yULyMtd6YebS2z3PyKnJm9zbWETXbzivf3jTo60adbocwTZ8jx5t -HMN1Rq41Bab2XD0h7lbwyYIiLXpUq3DDfSJlgnCW ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIEFTCCAv2gAwIBAgIGSUEs5AAQMA0GCSqGSIb3DQEBCwUAMIGnMQswCQYDVQQG -EwJIVTERMA8GA1UEBwwIQnVkYXBlc3QxFTATBgNVBAoMDE5ldExvY2sgS2Z0LjE3 -MDUGA1UECwwuVGFuw7pzw610dsOhbnlraWFkw7NrIChDZXJ0aWZpY2F0aW9uIFNl -cnZpY2VzKTE1MDMGA1UEAwwsTmV0TG9jayBBcmFueSAoQ2xhc3MgR29sZCkgRsWR -dGFuw7pzw610dsOhbnkwHhcNMDgxMjExMTUwODIxWhcNMjgxMjA2MTUwODIxWjCB -pzELMAkGA1UEBhMCSFUxETAPBgNVBAcMCEJ1ZGFwZXN0MRUwEwYDVQQKDAxOZXRM -b2NrIEtmdC4xNzA1BgNVBAsMLlRhbsO6c8OtdHbDoW55a2lhZMOzayAoQ2VydGlm -aWNhdGlvbiBTZXJ2aWNlcykxNTAzBgNVBAMMLE5ldExvY2sgQXJhbnkgKENsYXNz -IEdvbGQpIEbFkXRhbsO6c8OtdHbDoW55MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A -MIIBCgKCAQEAxCRec75LbRTDofTjl5Bu0jBFHjzuZ9lk4BqKf8owyoPjIMHj9DrT -lF8afFttvzBPhCf2nx9JvMaZCpDyD/V/Q4Q3Y1GLeqVw/HpYzY6b7cNGbIRwXdrz -AZAj/E4wqX7hJ2Pn7WQ8oLjJM2P+FpD/sLj916jAwJRDC7bVWaaeVtAkH3B5r9s5 -VA1lddkVQZQBr17s9o3x/61k/iCa11zr/qYfCGSji3ZVrR47KGAuhyXoqq8fxmRG -ILdwfzzeSNuWU7c5d+Qa4scWhHaXWy+7GRWF+GmF9ZmnqfI0p6m2pgP8b4Y9VHx2 -BJtr+UBdADTHLpl1neWIA6pN+APSQnbAGwIDAKiLo0UwQzASBgNVHRMBAf8ECDAG -AQH/AgEEMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUzPpnk/C2uNClwB7zU/2M -U9+D15YwDQYJKoZIhvcNAQELBQADggEBAKt/7hwWqZw8UQCgwBEIBaeZ5m8BiFRh -bvG5GK1Krf6BQCOUL/t1fC8oS2IkgYIL9WHxHG64YTjrgfpioTtaYtOUZcTh5m2C -+C8lcLIhJsFyUR+MLMOEkMNaj7rP9KdlpeuY0fsFskZ1FSNqb4VjMIDw1Z4fKRzC -bLBQWV2QWzuoDTDPv31/zvGdg73JRm4gpvlhUbohL3u+pRVjodSVh/GeufOJ8z2F -uLjbvrW5KfnaNwUASZQDhETnv0Mxz3WLJdH0pmT1kvarBes96aULNmLazAZfNou2 -XjG4Kvte9nHfRCaexOYNkbQudZWAUWpLMKawYqGT8ZvYzsRjdT9ZR7E= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIFSzCCBLSgAwIBAgIBaTANBgkqhkiG9w0BAQQFADCBmTELMAkGA1UEBhMCSFUx -ETAPBgNVBAcTCEJ1ZGFwZXN0MScwJQYDVQQKEx5OZXRMb2NrIEhhbG96YXRiaXp0 -b25zYWdpIEtmdC4xGjAYBgNVBAsTEVRhbnVzaXR2YW55a2lhZG9rMTIwMAYDVQQD -EylOZXRMb2NrIFV6bGV0aSAoQ2xhc3MgQikgVGFudXNpdHZhbnlraWFkbzAeFw05 -OTAyMjUxNDEwMjJaFw0xOTAyMjAxNDEwMjJaMIGZMQswCQYDVQQGEwJIVTERMA8G -A1UEBxMIQnVkYXBlc3QxJzAlBgNVBAoTHk5ldExvY2sgSGFsb3phdGJpenRvbnNh -Z2kgS2Z0LjEaMBgGA1UECxMRVGFudXNpdHZhbnlraWFkb2sxMjAwBgNVBAMTKU5l -dExvY2sgVXpsZXRpIChDbGFzcyBCKSBUYW51c2l0dmFueWtpYWRvMIGfMA0GCSqG -SIb3DQEBAQUAA4GNADCBiQKBgQCx6gTsIKAjwo84YM/HRrPVG/77uZmeBNwcf4xK -gZjupNTKihe5In+DCnVMm8Bp2GQ5o+2So/1bXHQawEfKOml2mrriRBf8TKPV/riX -iK+IA4kfpPIEPsgHC+b5sy96YhQJRhTKZPWLgLViqNhr1nGTLbO/CVRY7QbrqHvc -Q7GhaQIDAQABo4ICnzCCApswEgYDVR0TAQH/BAgwBgEB/wIBBDAOBgNVHQ8BAf8E -BAMCAAYwEQYJYIZIAYb4QgEBBAQDAgAHMIICYAYJYIZIAYb4QgENBIICURaCAk1G -SUdZRUxFTSEgRXplbiB0YW51c2l0dmFueSBhIE5ldExvY2sgS2Z0LiBBbHRhbGFu -b3MgU3pvbGdhbHRhdGFzaSBGZWx0ZXRlbGVpYmVuIGxlaXJ0IGVsamFyYXNvayBh -bGFwamFuIGtlc3p1bHQuIEEgaGl0ZWxlc2l0ZXMgZm9seWFtYXRhdCBhIE5ldExv -Y2sgS2Z0LiB0ZXJtZWtmZWxlbG9zc2VnLWJpenRvc2l0YXNhIHZlZGkuIEEgZGln -aXRhbGlzIGFsYWlyYXMgZWxmb2dhZGFzYW5hayBmZWx0ZXRlbGUgYXogZWxvaXJ0 -IGVsbGVub3J6ZXNpIGVsamFyYXMgbWVndGV0ZWxlLiBBeiBlbGphcmFzIGxlaXJh -c2EgbWVndGFsYWxoYXRvIGEgTmV0TG9jayBLZnQuIEludGVybmV0IGhvbmxhcGph -biBhIGh0dHBzOi8vd3d3Lm5ldGxvY2submV0L2RvY3MgY2ltZW4gdmFneSBrZXJo -ZXRvIGF6IGVsbGVub3J6ZXNAbmV0bG9jay5uZXQgZS1tYWlsIGNpbWVuLiBJTVBP -UlRBTlQhIFRoZSBpc3N1YW5jZSBhbmQgdGhlIHVzZSBvZiB0aGlzIGNlcnRpZmlj -YXRlIGlzIHN1YmplY3QgdG8gdGhlIE5ldExvY2sgQ1BTIGF2YWlsYWJsZSBhdCBo -dHRwczovL3d3dy5uZXRsb2NrLm5ldC9kb2NzIG9yIGJ5IGUtbWFpbCBhdCBjcHNA -bmV0bG9jay5uZXQuMA0GCSqGSIb3DQEBBAUAA4GBAATbrowXr/gOkDFOzT4JwG06 -sPgzTEdM43WIEJessDgVkcYplswhwG08pXTP2IKlOcNl40JwuyKQ433bNXbhoLXa -n3BukxowOR0w2y7jfLKRstE3Kfq51hdcR0/jHTjrn9V7lagonhVK0dHQKwCXoOKS -NitjrFgBazMpUIaD8QFI ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIFTzCCBLigAwIBAgIBaDANBgkqhkiG9w0BAQQFADCBmzELMAkGA1UEBhMCSFUx -ETAPBgNVBAcTCEJ1ZGFwZXN0MScwJQYDVQQKEx5OZXRMb2NrIEhhbG96YXRiaXp0 -b25zYWdpIEtmdC4xGjAYBgNVBAsTEVRhbnVzaXR2YW55a2lhZG9rMTQwMgYDVQQD -EytOZXRMb2NrIEV4cHJlc3N6IChDbGFzcyBDKSBUYW51c2l0dmFueWtpYWRvMB4X -DTk5MDIyNTE0MDgxMVoXDTE5MDIyMDE0MDgxMVowgZsxCzAJBgNVBAYTAkhVMREw -DwYDVQQHEwhCdWRhcGVzdDEnMCUGA1UEChMeTmV0TG9jayBIYWxvemF0Yml6dG9u -c2FnaSBLZnQuMRowGAYDVQQLExFUYW51c2l0dmFueWtpYWRvazE0MDIGA1UEAxMr -TmV0TG9jayBFeHByZXNzeiAoQ2xhc3MgQykgVGFudXNpdHZhbnlraWFkbzCBnzAN -BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA6+ywbGGKIyWvYCDj2Z/8kwvbXY2wobNA -OoLO/XXgeDIDhlqGlZHtU/qdQPzm6N3ZW3oDvV3zOwzDUXmbrVWg6dADEK8KuhRC -2VImESLH0iDMgqSaqf64gXadarfSNnU+sYYJ9m5tfk63euyucYT2BDMIJTLrdKwW -RMbkQJMdf60CAwEAAaOCAp8wggKbMBIGA1UdEwEB/wQIMAYBAf8CAQQwDgYDVR0P -AQH/BAQDAgAGMBEGCWCGSAGG+EIBAQQEAwIABzCCAmAGCWCGSAGG+EIBDQSCAlEW -ggJNRklHWUVMRU0hIEV6ZW4gdGFudXNpdHZhbnkgYSBOZXRMb2NrIEtmdC4gQWx0 -YWxhbm9zIFN6b2xnYWx0YXRhc2kgRmVsdGV0ZWxlaWJlbiBsZWlydCBlbGphcmFz -b2sgYWxhcGphbiBrZXN6dWx0LiBBIGhpdGVsZXNpdGVzIGZvbHlhbWF0YXQgYSBO -ZXRMb2NrIEtmdC4gdGVybWVrZmVsZWxvc3NlZy1iaXp0b3NpdGFzYSB2ZWRpLiBB -IGRpZ2l0YWxpcyBhbGFpcmFzIGVsZm9nYWRhc2FuYWsgZmVsdGV0ZWxlIGF6IGVs -b2lydCBlbGxlbm9yemVzaSBlbGphcmFzIG1lZ3RldGVsZS4gQXogZWxqYXJhcyBs -ZWlyYXNhIG1lZ3RhbGFsaGF0byBhIE5ldExvY2sgS2Z0LiBJbnRlcm5ldCBob25s -YXBqYW4gYSBodHRwczovL3d3dy5uZXRsb2NrLm5ldC9kb2NzIGNpbWVuIHZhZ3kg -a2VyaGV0byBheiBlbGxlbm9yemVzQG5ldGxvY2submV0IGUtbWFpbCBjaW1lbi4g -SU1QT1JUQU5UISBUaGUgaXNzdWFuY2UgYW5kIHRoZSB1c2Ugb2YgdGhpcyBjZXJ0 -aWZpY2F0ZSBpcyBzdWJqZWN0IHRvIHRoZSBOZXRMb2NrIENQUyBhdmFpbGFibGUg -YXQgaHR0cHM6Ly93d3cubmV0bG9jay5uZXQvZG9jcyBvciBieSBlLW1haWwgYXQg -Y3BzQG5ldGxvY2submV0LjANBgkqhkiG9w0BAQQFAAOBgQAQrX/XDDKACtiG8XmY -ta3UzbM2xJZIwVzNmtkFLp++UOv0JhQQLdRmF/iewSf98e3ke0ugbLWrmldwpu2g -pO0u9f38vf5NNwgMvOOWgyL1SRt/Syu0VMGAfJlOHdCM7tCs5ZL6dVb+ZKATj7i4 -Fp1hBWeAyNDYpQcCNJgEjTME1A== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIGfTCCBWWgAwIBAgICAQMwDQYJKoZIhvcNAQEEBQAwga8xCzAJBgNVBAYTAkhV -MRAwDgYDVQQIEwdIdW5nYXJ5MREwDwYDVQQHEwhCdWRhcGVzdDEnMCUGA1UEChMe -TmV0TG9jayBIYWxvemF0Yml6dG9uc2FnaSBLZnQuMRowGAYDVQQLExFUYW51c2l0 -dmFueWtpYWRvazE2MDQGA1UEAxMtTmV0TG9jayBLb3pqZWd5em9pIChDbGFzcyBB -KSBUYW51c2l0dmFueWtpYWRvMB4XDTk5MDIyNDIzMTQ0N1oXDTE5MDIxOTIzMTQ0 -N1owga8xCzAJBgNVBAYTAkhVMRAwDgYDVQQIEwdIdW5nYXJ5MREwDwYDVQQHEwhC -dWRhcGVzdDEnMCUGA1UEChMeTmV0TG9jayBIYWxvemF0Yml6dG9uc2FnaSBLZnQu -MRowGAYDVQQLExFUYW51c2l0dmFueWtpYWRvazE2MDQGA1UEAxMtTmV0TG9jayBL -b3pqZWd5em9pIChDbGFzcyBBKSBUYW51c2l0dmFueWtpYWRvMIIBIjANBgkqhkiG -9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvHSMD7tM9DceqQWC2ObhbHDqeLVu0ThEDaiD -zl3S1tWBxdRL51uUcCbbO51qTGL3cfNk1mE7PetzozfZz+qMkjvN9wfcZnSX9EUi -3fRc4L9t875lM+QVOr/bmJBVOMTtplVjC7B4BPTjbsE/jvxReB+SnoPC/tmwqcm8 -WgD/qaiYdPv2LD4VOQ22BFWoDpggQrOxJa1+mm9dU7GrDPzr4PN6s6iz/0b2Y6LY -Oph7tqyF/7AlT3Rj5xMHpQqPBffAZG9+pyeAlt7ULoZgx2srXnN7F+eRP2QM2Esi -NCubMvJIH5+hCoR64sKtlz2O1cH5VqNQ6ca0+pii7pXmKgOM3wIDAQABo4ICnzCC -ApswDgYDVR0PAQH/BAQDAgAGMBIGA1UdEwEB/wQIMAYBAf8CAQQwEQYJYIZIAYb4 -QgEBBAQDAgAHMIICYAYJYIZIAYb4QgENBIICURaCAk1GSUdZRUxFTSEgRXplbiB0 -YW51c2l0dmFueSBhIE5ldExvY2sgS2Z0LiBBbHRhbGFub3MgU3pvbGdhbHRhdGFz -aSBGZWx0ZXRlbGVpYmVuIGxlaXJ0IGVsamFyYXNvayBhbGFwamFuIGtlc3p1bHQu -IEEgaGl0ZWxlc2l0ZXMgZm9seWFtYXRhdCBhIE5ldExvY2sgS2Z0LiB0ZXJtZWtm -ZWxlbG9zc2VnLWJpenRvc2l0YXNhIHZlZGkuIEEgZGlnaXRhbGlzIGFsYWlyYXMg -ZWxmb2dhZGFzYW5hayBmZWx0ZXRlbGUgYXogZWxvaXJ0IGVsbGVub3J6ZXNpIGVs -amFyYXMgbWVndGV0ZWxlLiBBeiBlbGphcmFzIGxlaXJhc2EgbWVndGFsYWxoYXRv -IGEgTmV0TG9jayBLZnQuIEludGVybmV0IGhvbmxhcGphbiBhIGh0dHBzOi8vd3d3 -Lm5ldGxvY2submV0L2RvY3MgY2ltZW4gdmFneSBrZXJoZXRvIGF6IGVsbGVub3J6 -ZXNAbmV0bG9jay5uZXQgZS1tYWlsIGNpbWVuLiBJTVBPUlRBTlQhIFRoZSBpc3N1 -YW5jZSBhbmQgdGhlIHVzZSBvZiB0aGlzIGNlcnRpZmljYXRlIGlzIHN1YmplY3Qg -dG8gdGhlIE5ldExvY2sgQ1BTIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5uZXRs -b2NrLm5ldC9kb2NzIG9yIGJ5IGUtbWFpbCBhdCBjcHNAbmV0bG9jay5uZXQuMA0G -CSqGSIb3DQEBBAUAA4IBAQBIJEb3ulZv+sgoA0BO5TE5ayZrU3/b39/zcT0mwBQO -xmd7I6gMc90Bu8bKbjc5VdXHjFYgDigKDtIqpLBJUsY4B/6+CgmM0ZjPytoUMaFP -0jn8DxEsQ8Pdq5PHVT5HfBgaANzze9jyf1JsIPQLX2lS9O74silg6+NJMSEN1rUQ -QeJBCWziGppWS3cC9qCbmieH6FUpccKQn0V4GuEVZD3QDtigdp+uxdAu6tYPVuxk -f1qbFFgBJ34TUMdrKuZoPL9coAob4Q566eKAw+np9v1sEZ7Q5SgnK1QyQhSCdeZK -8CtmdWOMovsEPoMOmzbwGOQmIMOM8CgHrTwXZoi1/baI ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIG0TCCBbmgAwIBAgIBezANBgkqhkiG9w0BAQUFADCByTELMAkGA1UEBhMCSFUx -ETAPBgNVBAcTCEJ1ZGFwZXN0MScwJQYDVQQKEx5OZXRMb2NrIEhhbG96YXRiaXp0 -b25zYWdpIEtmdC4xGjAYBgNVBAsTEVRhbnVzaXR2YW55a2lhZG9rMUIwQAYDVQQD -EzlOZXRMb2NrIE1pbm9zaXRldHQgS296amVneXpvaSAoQ2xhc3MgUUEpIFRhbnVz -aXR2YW55a2lhZG8xHjAcBgkqhkiG9w0BCQEWD2luZm9AbmV0bG9jay5odTAeFw0w -MzAzMzAwMTQ3MTFaFw0yMjEyMTUwMTQ3MTFaMIHJMQswCQYDVQQGEwJIVTERMA8G -A1UEBxMIQnVkYXBlc3QxJzAlBgNVBAoTHk5ldExvY2sgSGFsb3phdGJpenRvbnNh -Z2kgS2Z0LjEaMBgGA1UECxMRVGFudXNpdHZhbnlraWFkb2sxQjBABgNVBAMTOU5l -dExvY2sgTWlub3NpdGV0dCBLb3pqZWd5em9pIChDbGFzcyBRQSkgVGFudXNpdHZh -bnlraWFkbzEeMBwGCSqGSIb3DQEJARYPaW5mb0BuZXRsb2NrLmh1MIIBIjANBgkq -hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx1Ilstg91IRVCacbvWy5FPSKAtt2/Goq -eKvld/Bu4IwjZ9ulZJm53QE+b+8tmjwi8F3JV6BVQX/yQ15YglMxZc4e8ia6AFQe -r7C8HORSjKAyr7c3sVNnaHRnUPYtLmTeriZ539+Zhqurf4XsoPuAzPS4DB6TRWO5 -3Lhbm+1bOdRfYrCnjnxmOCyqsQhjF2d9zL2z8cM/z1A57dEZgxXbhxInlrfa6uWd -vLrqOU+L73Sa58XQ0uqGURzk/mQIKAR5BevKxXEOC++r6uwSEaEYBTJp0QwsGj0l -mT+1fMptsK6ZmfoIYOcZwvK9UdPM0wKswREMgM6r3JSda6M5UzrWhQIDAMV9o4IC -wDCCArwwEgYDVR0TAQH/BAgwBgEB/wIBBDAOBgNVHQ8BAf8EBAMCAQYwggJ1Bglg -hkgBhvhCAQ0EggJmFoICYkZJR1lFTEVNISBFemVuIHRhbnVzaXR2YW55IGEgTmV0 -TG9jayBLZnQuIE1pbm9zaXRldHQgU3pvbGdhbHRhdGFzaSBTemFiYWx5emF0YWJh -biBsZWlydCBlbGphcmFzb2sgYWxhcGphbiBrZXN6dWx0LiBBIG1pbm9zaXRldHQg -ZWxla3Ryb25pa3VzIGFsYWlyYXMgam9naGF0YXMgZXJ2ZW55ZXN1bGVzZW5laywg -dmFsYW1pbnQgZWxmb2dhZGFzYW5hayBmZWx0ZXRlbGUgYSBNaW5vc2l0ZXR0IFN6 -b2xnYWx0YXRhc2kgU3phYmFseXphdGJhbiwgYXogQWx0YWxhbm9zIFN6ZXJ6b2Rl -c2kgRmVsdGV0ZWxla2JlbiBlbG9pcnQgZWxsZW5vcnplc2kgZWxqYXJhcyBtZWd0 -ZXRlbGUuIEEgZG9rdW1lbnR1bW9rIG1lZ3RhbGFsaGF0b2sgYSBodHRwczovL3d3 -dy5uZXRsb2NrLmh1L2RvY3MvIGNpbWVuIHZhZ3kga2VyaGV0b2sgYXogaW5mb0Bu -ZXRsb2NrLm5ldCBlLW1haWwgY2ltZW4uIFdBUk5JTkchIFRoZSBpc3N1YW5jZSBh -bmQgdGhlIHVzZSBvZiB0aGlzIGNlcnRpZmljYXRlIGFyZSBzdWJqZWN0IHRvIHRo -ZSBOZXRMb2NrIFF1YWxpZmllZCBDUFMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3 -Lm5ldGxvY2suaHUvZG9jcy8gb3IgYnkgZS1tYWlsIGF0IGluZm9AbmV0bG9jay5u -ZXQwHQYDVR0OBBYEFAlqYhaSsFq7VQ7LdTI6MuWyIckoMA0GCSqGSIb3DQEBBQUA -A4IBAQCRalCc23iBmz+LQuM7/KbD7kPgz/PigDVJRXYC4uMvBcXxKufAQTPGtpvQ -MznNwNuhrWw3AkxYQTvyl5LGSKjN5Yo5iWH5Upfpvfb5lHTocQ68d4bDBsxafEp+ -NFAwLvt/MpqNPfMgW/hqyobzMUwsWYACff44yTB1HLdV47yfuqhthCgFdbOLDcCR -VCHnpgu0mfVRQdzNo0ci2ccBgcTcR08m6h/t280NmPSjnLRzMkqWmf68f8glWPhY -83ZmiVSkpj7EUFy6iRiCdUgh0k8T6GB+B3bbELVR5qq5aKrN9p2QdRLqOBrKROi3 -macqaJVmlaut74nLYKkGEsaUR+ko ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIID5jCCAs6gAwIBAgIQV8szb8JcFuZHFhfjkDFo4DANBgkqhkiG9w0BAQUFADBi -MQswCQYDVQQGEwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMu -MTAwLgYDVQQDEydOZXR3b3JrIFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3Jp -dHkwHhcNMDYxMjAxMDAwMDAwWhcNMjkxMjMxMjM1OTU5WjBiMQswCQYDVQQGEwJV -UzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMuMTAwLgYDVQQDEydO -ZXR3b3JrIFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0GCSqG -SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDkvH6SMG3G2I4rC7xGzuAnlt7e+foS0zwz -c7MEL7xxjOWftiJgPl9dzgn/ggwbmlFQGiaJ3dVhXRncEg8tCqJDXRfQNJIg6nPP -OCwGJgl6cvf6UDL4wpPTaaIjzkGxzOTVHzbRijr4jGPiFFlp7Q3Tf2vouAPlT2rl -mGNpSAW+Lv8ztumXWWn4Zxmuk2GWRBXTcrA/vGp97Eh/jcOrqnErU2lBUzS1sLnF -BgrEsEX1QV1uiUV7PTsmjHTC5dLRfbIR1PtYMiKagMnc/Qzpf14Dl847ABSHJ3A4 -qY5usyd2mFHgBeMhqxrVhSI8KbWaFsWAqPS7azCPL0YCorEMIuDTAgMBAAGjgZcw -gZQwHQYDVR0OBBYEFCEwyfsA106Y2oeqKtCnLrFAMadMMA4GA1UdDwEB/wQEAwIB -BjAPBgNVHRMBAf8EBTADAQH/MFIGA1UdHwRLMEkwR6BFoEOGQWh0dHA6Ly9jcmwu -bmV0c29sc3NsLmNvbS9OZXR3b3JrU29sdXRpb25zQ2VydGlmaWNhdGVBdXRob3Jp -dHkuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQC7rkvnt1frf6ott3NHhWrB5KUd5Oc8 -6fRZZXe1eltajSU24HqXLjjAV2CDmAaDn7l2em5Q4LqILPxFzBiwmZVRDuwduIj/ -h1AcgsLj4DKAv6ALR8jDMe+ZZzKATxcheQxpXN5eNK4CtSbqUN9/GGUsyfJj4akH -/nxxH2szJGoeBfcFaMBqEssuXmHLrijTfsK0ZpEmXzwuJF/LWA/rKOyvEZbz3Htv -wKeI8lN3s2Berq4o2jUsbzRF0ybh3uxbTydrFny9RAQYgrOJeRcQcT16ohZO9QHN -pGxlaKFJdlxDydi8NmdspZS11My5vWo1ViHe2MPr+8ukYEywVaCge1ey ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIID8TCCAtmgAwIBAgIQQT1yx/RrH4FDffHSKFTfmjANBgkqhkiG9w0BAQUFADCB -ijELMAkGA1UEBhMCQ0gxEDAOBgNVBAoTB1dJU2VLZXkxGzAZBgNVBAsTEkNvcHly -aWdodCAoYykgMjAwNTEiMCAGA1UECxMZT0lTVEUgRm91bmRhdGlvbiBFbmRvcnNl -ZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBHbG9iYWwgUm9vdCBHQSBDQTAeFw0w -NTEyMTExNjAzNDRaFw0zNzEyMTExNjA5NTFaMIGKMQswCQYDVQQGEwJDSDEQMA4G -A1UEChMHV0lTZUtleTEbMBkGA1UECxMSQ29weXJpZ2h0IChjKSAyMDA1MSIwIAYD -VQQLExlPSVNURSBGb3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBX -SVNlS2V5IEdsb2JhbCBSb290IEdBIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A -MIIBCgKCAQEAy0+zAJs9Nt350UlqaxBJH+zYK7LG+DKBKUOVTJoZIyEVRd7jyBxR -VVuuk+g3/ytr6dTqvirdqFEr12bDYVxgAsj1znJ7O7jyTmUIms2kahnBAbtzptf2 -w93NvKSLtZlhuAGio9RN1AU9ka34tAhxZK9w8RxrfvbDd50kc3vkDIzh2TbhmYsF -mQvtRTEJysIA2/dyoJaqlYfQjse2YXMNdmaM3Bu0Y6Kff5MTMPGhJ9vZ/yxViJGg -4E8HsChWjBgbl0SOid3gF27nKu+POQoxhILYQBRJLnpB5Kf+42TMwVlxSywhp1t9 -4B3RLoGbw9ho972WG6xwsRYUC9tguSYBBQIDAQABo1EwTzALBgNVHQ8EBAMCAYYw -DwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUswN+rja8sHnR3JQmthG+IbJphpQw -EAYJKwYBBAGCNxUBBAMCAQAwDQYJKoZIhvcNAQEFBQADggEBAEuh/wuHbrP5wUOx -SPMowB0uyQlB+pQAHKSkq0lPjz0e701vvbyk9vImMMkQyh2I+3QZH4VFvbBsUfk2 -ftv1TDI6QU9bR8/oCy22xBmddMVHxjtqD6wU2zz0c5ypBd8A3HR4+vg1YFkCExh8 -vPtNsCBtQ7tgMHpnM1zFmdH4LTlSc/uMqpclXHLZCB6rTjzjgTGfA6b7wP4piFXa -hNVQA7bihKOmNqoROgHhGEvWRGizPflTdISzRpFGlgC3gCy24eMQ4tui5yiPAZZi -Fj4A4xylNoEYokxSdsARo27mHbrjWr42U8U+dY+GaSlYU7Wcu2+fXMUY7N0v4ZjJ -/L7fCg0= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDtTCCAp2gAwIBAgIQdrEgUnTwhYdGs/gjGvbCwDANBgkqhkiG9w0BAQsFADBt -MQswCQYDVQQGEwJDSDEQMA4GA1UEChMHV0lTZUtleTEiMCAGA1UECxMZT0lTVEUg -Rm91bmRhdGlvbiBFbmRvcnNlZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBHbG9i -YWwgUm9vdCBHQiBDQTAeFw0xNDEyMDExNTAwMzJaFw0zOTEyMDExNTEwMzFaMG0x -CzAJBgNVBAYTAkNIMRAwDgYDVQQKEwdXSVNlS2V5MSIwIAYDVQQLExlPSVNURSBG -b3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5IEdsb2Jh -bCBSb290IEdCIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2Be3 -HEokKtaXscriHvt9OO+Y9bI5mE4nuBFde9IllIiCFSZqGzG7qFshISvYD06fWvGx -WuR51jIjK+FTzJlFXHtPrby/h0oLS5daqPZI7H17Dc0hBt+eFf1Biki3IPShehtX -1F1Q/7pn2COZH8g/497/b1t3sWtuuMlk9+HKQUYOKXHQuSP8yYFfTvdv37+ErXNk -u7dCjmn21HYdfp2nuFeKUWdy19SouJVUQHMD9ur06/4oQnc/nSMbsrY9gBQHTC5P -99UKFg29ZkM3fiNDecNAhvVMKdqOmq0NpQSHiB6F4+lT1ZvIiwNjeOvgGUpuuy9r -M2RYk61pv48b74JIxwIDAQABo1EwTzALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUw -AwEB/zAdBgNVHQ4EFgQUNQ/INmNe4qPs+TtmFc5RUuORmj0wEAYJKwYBBAGCNxUB -BAMCAQAwDQYJKoZIhvcNAQELBQADggEBAEBM+4eymYGQfp3FsLAmzYh7KzKNbrgh -cViXfa43FK8+5/ea4n32cZiZBKpDdHij40lhPnOMTZTg+XHEthYOU3gf1qKHLwI5 -gSk8rxWYITD+KJAAjNHhy/peyP34EEY7onhCkRd0VQreUGdNZtGn//3ZwLWoo4rO -ZvUPQ82nK1d7Y0Zqqi5S2PTt4W2tKZB4SLrhI6qjiey1q5bAtEuiHZeeevJuQHHf -aPFlTc58Bd9TZaml8LGXBHAVRgOY1NK/VLSgWH1Sb9pWJmLU2NuJMW8c8CLC02Ic -Nc1MaRVUGpCY3useX8p3x8uOPUNpnJpY0CQ73xtAln41rYHHTnG6iBM= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIJhjCCB26gAwIBAgIBCzANBgkqhkiG9w0BAQsFADCCAR4xPjA8BgNVBAMTNUF1 -dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIFJhaXogZGVsIEVzdGFkbyBWZW5lem9s -YW5vMQswCQYDVQQGEwJWRTEQMA4GA1UEBxMHQ2FyYWNhczEZMBcGA1UECBMQRGlz -dHJpdG8gQ2FwaXRhbDE2MDQGA1UEChMtU2lzdGVtYSBOYWNpb25hbCBkZSBDZXJ0 -aWZpY2FjaW9uIEVsZWN0cm9uaWNhMUMwQQYDVQQLEzpTdXBlcmludGVuZGVuY2lh -IGRlIFNlcnZpY2lvcyBkZSBDZXJ0aWZpY2FjaW9uIEVsZWN0cm9uaWNhMSUwIwYJ -KoZIhvcNAQkBFhZhY3JhaXpAc3VzY2VydGUuZ29iLnZlMB4XDTEwMTIyODE2NTEw -MFoXDTIwMTIyNTIzNTk1OVowgdExJjAkBgkqhkiG9w0BCQEWF2NvbnRhY3RvQHBy -b2NlcnQubmV0LnZlMQ8wDQYDVQQHEwZDaGFjYW8xEDAOBgNVBAgTB01pcmFuZGEx -KjAoBgNVBAsTIVByb3ZlZWRvciBkZSBDZXJ0aWZpY2Fkb3MgUFJPQ0VSVDE2MDQG -A1UEChMtU2lzdGVtYSBOYWNpb25hbCBkZSBDZXJ0aWZpY2FjaW9uIEVsZWN0cm9u -aWNhMQswCQYDVQQGEwJWRTETMBEGA1UEAxMKUFNDUHJvY2VydDCCAiIwDQYJKoZI -hvcNAQEBBQADggIPADCCAgoCggIBANW39KOUM6FGqVVhSQ2oh3NekS1wwQYalNo9 -7BVCwfWMrmoX8Yqt/ICV6oNEolt6Vc5Pp6XVurgfoCfAUFM+jbnADrgV3NZs+J74 -BCXfgI8Qhd19L3uA3VcAZCP4bsm+lU/hdezgfl6VzbHvvnpC2Mks0+saGiKLt38G -ieU89RLAu9MLmV+QfI4tL3czkkohRqipCKzx9hEC2ZUWno0vluYC3XXCFCpa1sl9 -JcLB/KpnheLsvtF8PPqv1W7/U0HU9TI4seJfxPmOEO8GqQKJ/+MMbpfg353bIdD0 -PghpbNjU5Db4g7ayNo+c7zo3Fn2/omnXO1ty0K+qP1xmk6wKImG20qCZyFSTXai2 -0b1dCl53lKItwIKOvMoDKjSuc/HUtQy9vmebVOvh+qBa7Dh+PsHMosdEMXXqP+UH -0quhJZb25uSgXTcYOWEAM11G1ADEtMo88aKjPvM6/2kwLkDd9p+cJsmWN63nOaK/ -6mnbVSKVUyqUtd+tFjiBdWbjxywbk5yqjKPK2Ww8F22c3HxT4CAnQzb5EuE8XL1m -v6JpIzi4mWCZDlZTOpx+FIywBm/xhnaQr/2v/pDGj59/i5IjnOcVdo/Vi5QTcmn7 -K2FjiO/mpF7moxdqWEfLcU8UC17IAggmosvpr2uKGcfLFFb14dq12fy/czja+eev -bqQ34gcnAgMBAAGjggMXMIIDEzASBgNVHRMBAf8ECDAGAQH/AgEBMDcGA1UdEgQw -MC6CD3N1c2NlcnRlLmdvYi52ZaAbBgVghl4CAqASDBBSSUYtRy0yMDAwNDAzNi0w -MB0GA1UdDgQWBBRBDxk4qpl/Qguk1yeYVKIXTC1RVDCCAVAGA1UdIwSCAUcwggFD -gBStuyIdxuDSAaj9dlBSk+2YwU2u06GCASakggEiMIIBHjE+MDwGA1UEAxM1QXV0 -b3JpZGFkIGRlIENlcnRpZmljYWNpb24gUmFpeiBkZWwgRXN0YWRvIFZlbmV6b2xh -bm8xCzAJBgNVBAYTAlZFMRAwDgYDVQQHEwdDYXJhY2FzMRkwFwYDVQQIExBEaXN0 -cml0byBDYXBpdGFsMTYwNAYDVQQKEy1TaXN0ZW1hIE5hY2lvbmFsIGRlIENlcnRp -ZmljYWNpb24gRWxlY3Ryb25pY2ExQzBBBgNVBAsTOlN1cGVyaW50ZW5kZW5jaWEg -ZGUgU2VydmljaW9zIGRlIENlcnRpZmljYWNpb24gRWxlY3Ryb25pY2ExJTAjBgkq -hkiG9w0BCQEWFmFjcmFpekBzdXNjZXJ0ZS5nb2IudmWCAQowDgYDVR0PAQH/BAQD -AgEGME0GA1UdEQRGMESCDnByb2NlcnQubmV0LnZloBUGBWCGXgIBoAwMClBTQy0w -MDAwMDKgGwYFYIZeAgKgEgwQUklGLUotMzE2MzUzNzMtNzB2BgNVHR8EbzBtMEag -RKBChkBodHRwOi8vd3d3LnN1c2NlcnRlLmdvYi52ZS9sY3IvQ0VSVElGSUNBRE8t -UkFJWi1TSEEzODRDUkxERVIuY3JsMCOgIaAfhh1sZGFwOi8vYWNyYWl6LnN1c2Nl -cnRlLmdvYi52ZTA3BggrBgEFBQcBAQQrMCkwJwYIKwYBBQUHMAGGG2h0dHA6Ly9v -Y3NwLnN1c2NlcnRlLmdvYi52ZTBBBgNVHSAEOjA4MDYGBmCGXgMBAjAsMCoGCCsG -AQUFBwIBFh5odHRwOi8vd3d3LnN1c2NlcnRlLmdvYi52ZS9kcGMwDQYJKoZIhvcN -AQELBQADggIBACtZ6yKZu4SqT96QxtGGcSOeSwORR3C7wJJg7ODU523G0+1ng3dS -1fLld6c2suNUvtm7CpsR72H0xpkzmfWvADmNg7+mvTV+LFwxNG9s2/NkAZiqlCxB -3RWGymspThbASfzXg0gTB1GEMVKIu4YXx2sviiCtxQuPcD4quxtxj7mkoP3Yldmv -Wb8lK5jpY5MvYB7Eqvh39YtsL+1+LrVPQA3uvFd359m21D+VJzog1eWuq2w1n8Gh -HVnchIHuTQfiSLaeS5UtQbHh6N5+LwUeaO6/u5BlOsju6rEYNxxik6SgMexxbJHm -pHmJWhSnFFAFTKQAVzAswbVhltw+HoSvOULP5dAssSS830DD7X9jSr3hTxJkhpXz -sOfIt+FTvZLm8wyWuevo5pLtp4EJFAv8lXrPj9Y0TzYS3F7RNHXGRoAvlQSMx4bE -qCaJqD8Zm4G7UaRKhqsLEQ+xrmNTbSjq3TNWOByyrYDT13K9mmyZY+gAu0F2Bbdb -mRiKw7gSXFbPVgx96OLP7bx0R/vu0xdOIk9W/1DzLuY5poLWccret9W6aAjtmcz9 -opLLabid+Qqkpj5PkygqYWwHJgD/ll9ohri4zspV4KuxPX+Y1zMOWj3YeMLEYC/H -YvBhkdI4sPaeVdtAgAUSM84dkpvRabP/v/GSCmE1P93+hvS84Bpxs2Km ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIF0DCCBLigAwIBAgIEOrZQizANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJC -TTEZMBcGA1UEChMQUXVvVmFkaXMgTGltaXRlZDElMCMGA1UECxMcUm9vdCBDZXJ0 -aWZpY2F0aW9uIEF1dGhvcml0eTEuMCwGA1UEAxMlUXVvVmFkaXMgUm9vdCBDZXJ0 -aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wMTAzMTkxODMzMzNaFw0yMTAzMTcxODMz -MzNaMH8xCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMSUw -IwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYDVQQDEyVR -dW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG -9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv2G1lVO6V/z68mcLOhrfEYBklbTRvM16z/Yp -li4kVEAkOPcahdxYTMukJ0KX0J+DisPkBgNbAKVRHnAEdOLB1Dqr1607BxgFjv2D -rOpm2RgbaIr1VxqYuvXtdj182d6UajtLF8HVj71lODqV0D1VNk7feVcxKh7YWWVJ -WCCYfqtffp/p1k3sg3Spx2zY7ilKhSoGFPlU5tPaZQeLYzcS19Dsw3sgQUSj7cug -F+FxZc4dZjH3dgEZyH0DWLaVSR2mEiboxgx24ONmy+pdpibu5cxfvWenAScOospU -xbF6lR1xHkopigPcakXBpBlebzbNw6Kwt/5cOOJSvPhEQ+aQuwIDAQABo4ICUjCC -Ak4wPQYIKwYBBQUHAQEEMTAvMC0GCCsGAQUFBzABhiFodHRwczovL29jc3AucXVv -dmFkaXNvZmZzaG9yZS5jb20wDwYDVR0TAQH/BAUwAwEB/zCCARoGA1UdIASCAREw -ggENMIIBCQYJKwYBBAG+WAABMIH7MIHUBggrBgEFBQcCAjCBxxqBxFJlbGlhbmNl -IG9uIHRoZSBRdW9WYWRpcyBSb290IENlcnRpZmljYXRlIGJ5IGFueSBwYXJ0eSBh -c3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJsZSBzdGFuZGFy -ZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRpZmljYXRpb24gcHJh -Y3RpY2VzLCBhbmQgdGhlIFF1b1ZhZGlzIENlcnRpZmljYXRlIFBvbGljeS4wIgYI -KwYBBQUHAgEWFmh0dHA6Ly93d3cucXVvdmFkaXMuYm0wHQYDVR0OBBYEFItLbe3T -KbkGGew5Oanwl4Rqy+/fMIGuBgNVHSMEgaYwgaOAFItLbe3TKbkGGew5Oanwl4Rq -y+/foYGEpIGBMH8xCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBMaW1p -dGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYD -VQQDEyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggQ6tlCL -MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAitQUtf70mpKnGdSk -fnIYj9lofFIk3WdvOXrEql494liwTXCYhGHoG+NpGA7O+0dQoE7/8CQfvbLO9Sf8 -7C9TqnN7Az10buYWnuulLsS/VidQK2K6vkscPFVcQR0kvoIgR13VRH56FmjffU1R -cHhXHTMe/QKZnAzNCgVPx7uOpHX6Sm2xgI4JVrmcGmD+XcHXetwReNDWXcG31a0y -mQM6isxUJTkxgXsTIlG6Rmyhu576BGxJJnSP0nPrzDCi5upZIof4l/UO/erMkqQW -xFIY6iHOsfHmhIHluqmGKPJDWl0Snawe2ajlCmqnf6CHKc/yiU3U7MXi5nrQNiOK -SnQ2+Q== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIFYDCCA0igAwIBAgIUeFhfLq0sGUvjNwc1NBMotZbUZZMwDQYJKoZIhvcNAQEL -BQAwSDELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAc -BgNVBAMTFVF1b1ZhZGlzIFJvb3QgQ0EgMSBHMzAeFw0xMjAxMTIxNzI3NDRaFw00 -MjAxMTIxNzI3NDRaMEgxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM -aW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDEgRzMwggIiMA0GCSqG -SIb3DQEBAQUAA4ICDwAwggIKAoICAQCgvlAQjunybEC0BJyFuTHK3C3kEakEPBtV -wedYMB0ktMPvhd6MLOHBPd+C5k+tR4ds7FtJwUrVu4/sh6x/gpqG7D0DmVIB0jWe -rNrwU8lmPNSsAgHaJNM7qAJGr6Qc4/hzWHa39g6QDbXwz8z6+cZM5cOGMAqNF341 -68Xfuw6cwI2H44g4hWf6Pser4BOcBRiYz5P1sZK0/CPTz9XEJ0ngnjybCKOLXSoh -4Pw5qlPafX7PGglTvF0FBM+hSo+LdoINofjSxxR3W5A2B4GbPgb6Ul5jxaYA/qXp -UhtStZI5cgMJYr2wYBZupt0lwgNm3fME0UDiTouG9G/lg6AnhF4EwfWQvTA9xO+o -abw4m6SkltFi2mnAAZauy8RRNOoMqv8hjlmPSlzkYZqn0ukqeI1RPToV7qJZjqlc -3sX5kCLliEVx3ZGZbHqfPT2YfF72vhZooF6uCyP8Wg+qInYtyaEQHeTTRCOQiJ/G -KubX9ZqzWB4vMIkIG1SitZgj7Ah3HJVdYdHLiZxfokqRmu8hqkkWCKi9YSgxyXSt -hfbZxbGL0eUQMk1fiyA6PEkfM4VZDdvLCXVDaXP7a3F98N/ETH3Goy7IlXnLc6KO -Tk0k+17kBL5yG6YnLUlamXrXXAkgt3+UuU/xDRxeiEIbEbfnkduebPRq34wGmAOt -zCjvpUfzUwIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB -BjAdBgNVHQ4EFgQUo5fW816iEOGrRZ88F2Q87gFwnMwwDQYJKoZIhvcNAQELBQAD -ggIBABj6W3X8PnrHX3fHyt/PX8MSxEBd1DKquGrX1RUVRpgjpeaQWxiZTOOtQqOC -MTaIzen7xASWSIsBx40Bz1szBpZGZnQdT+3Btrm0DWHMY37XLneMlhwqI2hrhVd2 -cDMT/uFPpiN3GPoajOi9ZcnPP/TJF9zrx7zABC4tRi9pZsMbj/7sPtPKlL92CiUN -qXsCHKnQO18LwIE6PWThv6ctTr1NxNgpxiIY0MWscgKCP6o6ojoilzHdCGPDdRS5 -YCgtW2jgFqlmgiNR9etT2DGbe+m3nUvriBbP+V04ikkwj+3x6xn0dxoxGE1nVGwv -b2X52z3sIexe9PSLymBlVNFxZPT5pqOBMzYzcfCkeF9OrYMh3jRJjehZrJ3ydlo2 -8hP0r+AJx2EqbPfgna67hkooby7utHnNkDPDs3b69fBsnQGQ+p6Q9pxyz0fawx/k -NSBT8lTR32GDpgLiJTjehTItXnOQUl1CxM49S+H5GYQd1aJQzEH7QRTDvdbJWqNj -ZgKAvQU6O0ec7AAmTPWIUb+oI38YB7AL7YsmoWTTYUrrXJ/es69nA7Mf3W1daWhp -q1467HxpvMc7hU6eFbm0FU/DlXpY18ls6Wy58yljXrQs8C097Vpl4KlbQMJImYFt -nh8GKjwStIsPm6Ik8KaN1nrgS7ZklmOVhMJKzRwuJIczYOXD ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIFtzCCA5+gAwIBAgICBQkwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0x -GTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJv -b3QgQ0EgMjAeFw0wNjExMjQxODI3MDBaFw0zMTExMjQxODIzMzNaMEUxCzAJBgNV -BAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMRswGQYDVQQDExJRdW9W -YWRpcyBSb290IENBIDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCa -GMpLlA0ALa8DKYrwD4HIrkwZhR0In6spRIXzL4GtMh6QRr+jhiYaHv5+HBg6XJxg -Fyo6dIMzMH1hVBHL7avg5tKifvVrbxi3Cgst/ek+7wrGsxDp3MJGF/hd/aTa/55J -WpzmM+Yklvc/ulsrHHo1wtZn/qtmUIttKGAr79dgw8eTvI02kfN/+NsRE8Scd3bB -rrcCaoF6qUWD4gXmuVbBlDePSHFjIuwXZQeVikvfj8ZaCuWw419eaxGrDPmF60Tp -+ARz8un+XJiM9XOva7R+zdRcAitMOeGylZUtQofX1bOQQ7dsE/He3fbE+Ik/0XX1 -ksOR1YqI0JDs3G3eicJlcZaLDQP9nL9bFqyS2+r+eXyt66/3FsvbzSUr5R/7mp/i -Ucw6UwxI5g69ybR2BlLmEROFcmMDBOAENisgGQLodKcftslWZvB1JdxnwQ5hYIiz -PtGo/KPaHbDRsSNU30R2be1B2MGyIrZTHN81Hdyhdyox5C315eXbyOD/5YDXC2Og -/zOhD7osFRXql7PSorW+8oyWHhqPHWykYTe5hnMz15eWniN9gqRMgeKh0bpnX5UH -oycR7hYQe7xFSkyyBNKr79X9DFHOUGoIMfmR2gyPZFwDwzqLID9ujWc9Otb+fVuI -yV77zGHcizN300QyNQliBJIWENieJ0f7OyHj+OsdWwIDAQABo4GwMIGtMA8GA1Ud -EwEB/wQFMAMBAf8wCwYDVR0PBAQDAgEGMB0GA1UdDgQWBBQahGK8SEwzJQTU7tD2 -A8QZRtGUazBuBgNVHSMEZzBlgBQahGK8SEwzJQTU7tD2A8QZRtGUa6FJpEcwRTEL -MAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMT -ElF1b1ZhZGlzIFJvb3QgQ0EgMoICBQkwDQYJKoZIhvcNAQEFBQADggIBAD4KFk2f -BluornFdLwUvZ+YTRYPENvbzwCYMDbVHZF34tHLJRqUDGCdViXh9duqWNIAXINzn -g/iN/Ae42l9NLmeyhP3ZRPx3UIHmfLTJDQtyU/h2BwdBR5YM++CCJpNVjP4iH2Bl -fF/nJrP3MpCYUNQ3cVX2kiF495V5+vgtJodmVjB3pjd4M1IQWK4/YY7yarHvGH5K -WWPKjaJW1acvvFYfzznB4vsKqBUsfU16Y8Zsl0Q80m/DShcK+JDSV6IZUaUtl0Ha -B0+pUNqQjZRG4T7wlP0QADj1O+hA4bRuVhogzG9Yje0uRY/W6ZM/57Es3zrWIozc -hLsib9D45MY56QSIPMO661V6bYCZJPVsAfv4l7CUW+v90m/xd2gNNWQjrLhVoQPR -TUIZ3Ph1WVaj+ahJefivDrkRoHy3au000LYmYjgahwz46P0u05B/B5EqHdZ+XIWD -mbA4CD/pXvk1B+TJYm5Xf6dQlfe6yJvmjqIBxdZmv3lh8zwc4bmCXF2gw+nYSL0Z -ohEUGW6yhhtoPkg3Goi3XZZenMfvJ2II4pEZXNLxId26F0KCl3GBUzGpn/Z9Yr9y -4aOTHcyKJloJONDO1w2AFrR4pTqHTI2KpdVGl/IsELm8VCLAAVBpQ570su9t+Oza -8eOx79+Rj1QqCyXBJhnEUhAFZdWCEOrCMc0u ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIFYDCCA0igAwIBAgIURFc0JFuBiZs18s64KztbpybwdSgwDQYJKoZIhvcNAQEL -BQAwSDELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAc -BgNVBAMTFVF1b1ZhZGlzIFJvb3QgQ0EgMiBHMzAeFw0xMjAxMTIxODU5MzJaFw00 -MjAxMTIxODU5MzJaMEgxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM -aW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDIgRzMwggIiMA0GCSqG -SIb3DQEBAQUAA4ICDwAwggIKAoICAQChriWyARjcV4g/Ruv5r+LrI3HimtFhZiFf -qq8nUeVuGxbULX1QsFN3vXg6YOJkApt8hpvWGo6t/x8Vf9WVHhLL5hSEBMHfNrMW -n4rjyduYNM7YMxcoRvynyfDStNVNCXJJ+fKH46nafaF9a7I6JaltUkSs+L5u+9ym -c5GQYaYDFCDy54ejiK2toIz/pgslUiXnFgHVy7g1gQyjO/Dh4fxaXc6AcW34Sas+ -O7q414AB+6XrW7PFXmAqMaCvN+ggOp+oMiwMzAkd056OXbxMmO7FGmh77FOm6RQ1 -o9/NgJ8MSPsc9PG/Srj61YxxSscfrf5BmrODXfKEVu+lV0POKa2Mq1W/xPtbAd0j -IaFYAI7D0GoT7RPjEiuA3GfmlbLNHiJuKvhB1PLKFAeNilUSxmn1uIZoL1NesNKq -IcGY5jDjZ1XHm26sGahVpkUG0CM62+tlXSoREfA7T8pt9DTEceT/AFr2XK4jYIVz -8eQQsSWu1ZK7E8EM4DnatDlXtas1qnIhO4M15zHfeiFuuDIIfR0ykRVKYnLP43eh -vNURG3YBZwjgQQvD6xVu+KQZ2aKrr+InUlYrAoosFCT5v0ICvybIxo/gbjh9Uy3l -7ZizlWNof/k19N+IxWA1ksB8aRxhlRbQ694Lrz4EEEVlWFA4r0jyWbYW8jwNkALG -cC4BrTwV1wIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB -BjAdBgNVHQ4EFgQU7edvdlq/YOxJW8ald7tyFnGbxD0wDQYJKoZIhvcNAQELBQAD -ggIBAJHfgD9DCX5xwvfrs4iP4VGyvD11+ShdyLyZm3tdquXK4Qr36LLTn91nMX66 -AarHakE7kNQIXLJgapDwyM4DYvmL7ftuKtwGTTwpD4kWilhMSA/ohGHqPHKmd+RC -roijQ1h5fq7KpVMNqT1wvSAZYaRsOPxDMuHBR//47PERIjKWnML2W2mWeyAMQ0Ga -W/ZZGYjeVYg3UQt4XAoeo0L9x52ID8DyeAIkVJOviYeIyUqAHerQbj5hLja7NQ4n -lv1mNDthcnPxFlxHBlRJAHpYErAK74X9sbgzdWqTHBLmYF5vHX/JHyPLhGGfHoJE -+V+tYlUkmlKY7VHnoX6XOuYvHxHaU4AshZ6rNRDbIl9qxV6XU/IyAgkwo1jwDQHV -csaxfGl7w/U2Rcxhbl5MlMVerugOXou/983g7aEOGzPuVBj+D77vfoRrQ+NwmNtd -dbINWQeFFSM51vHfqSYP1kjHs6Yi9TM3WpVHn3u6GBVv/9YUZINJ0gpnIdsPNWNg -KCLjsZWDzYWm3S8P52dSbrsvhXz1SnPnxT7AvSESBT/8twNJAlvIJebiVDj1eYeM -HVOyToV7BjjHLPj4sHKNJeV3UvQDHEimUF+IIDBu8oJDqz2XhOdT+yHBTw8imoa4 -WSr2Rz0ZiC3oheGe7IUIarFsNMkd7EgrO3jtZsSOeWmD3n+M ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIGnTCCBIWgAwIBAgICBcYwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0x -GTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJv -b3QgQ0EgMzAeFw0wNjExMjQxOTExMjNaFw0zMTExMjQxOTA2NDRaMEUxCzAJBgNV -BAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMRswGQYDVQQDExJRdW9W -YWRpcyBSb290IENBIDMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDM -V0IWVJzmmNPTTe7+7cefQzlKZbPoFog02w1ZkXTPkrgEQK0CSzGrvI2RaNggDhoB -4hp7Thdd4oq3P5kazethq8Jlph+3t723j/z9cI8LoGe+AaJZz3HmDyl2/7FWeUUr -H556VOijKTVopAFPD6QuN+8bv+OPEKhyq1hX51SGyMnzW9os2l2ObjyjPtr7guXd -8lyyBTNvijbO0BNO/79KDDRMpsMhvVAEVeuxu537RR5kFd5VAYwCdrXLoT9Cabwv -vWhDFlaJKjdhkf2mrk7AyxRllDdLkgbvBNDInIjbC3uBr7E9KsRlOni27tyAsdLT -mZw67mtaa7ONt9XOnMK+pUsvFrGeaDsGb659n/je7Mwpp5ijJUMv7/FfJuGITfhe -btfZFG4ZM2mnO4SJk8RTVROhUXhA+LjJou57ulJCg54U7QVSWllWp5f8nT8KKdjc -T5EOE7zelaTfi5m+rJsziO+1ga8bxiJTyPbH7pcUsMV8eFLI8M5ud2CEpukqdiDt -WAEXMJPpGovgc2PZapKUSU60rUqFxKMiMPwJ7Wgic6aIDFUhWMXhOp8q3crhkODZ -c6tsgLjoC2SToJyMGf+z0gzskSaHirOi4XCPLArlzW1oUevaPwV/izLmE1xr/l9A -4iLItLRkT9a6fUg+qGkM17uGcclzuD87nSVL2v9A6wIDAQABo4IBlTCCAZEwDwYD -VR0TAQH/BAUwAwEB/zCB4QYDVR0gBIHZMIHWMIHTBgkrBgEEAb5YAAMwgcUwgZMG -CCsGAQUFBwICMIGGGoGDQW55IHVzZSBvZiB0aGlzIENlcnRpZmljYXRlIGNvbnN0 -aXR1dGVzIGFjY2VwdGFuY2Ugb2YgdGhlIFF1b1ZhZGlzIFJvb3QgQ0EgMyBDZXJ0 -aWZpY2F0ZSBQb2xpY3kgLyBDZXJ0aWZpY2F0aW9uIFByYWN0aWNlIFN0YXRlbWVu -dC4wLQYIKwYBBQUHAgEWIWh0dHA6Ly93d3cucXVvdmFkaXNnbG9iYWwuY29tL2Nw -czALBgNVHQ8EBAMCAQYwHQYDVR0OBBYEFPLAE+CCQz777i9nMpY1XNu4ywLQMG4G -A1UdIwRnMGWAFPLAE+CCQz777i9nMpY1XNu4ywLQoUmkRzBFMQswCQYDVQQGEwJC -TTEZMBcGA1UEChMQUXVvVmFkaXMgTGltaXRlZDEbMBkGA1UEAxMSUXVvVmFkaXMg -Um9vdCBDQSAzggIFxjANBgkqhkiG9w0BAQUFAAOCAgEAT62gLEz6wPJv92ZVqyM0 -7ucp2sNbtrCD2dDQ4iH782CnO11gUyeim/YIIirnv6By5ZwkajGxkHon24QRiSem -d1o417+shvzuXYO8BsbRd2sPbSQvS3pspweWyuOEn62Iix2rFo1bZhfZFvSLgNLd -+LJ2w/w4E6oM3kJpK27zPOuAJ9v1pkQNn1pVWQvVDVJIxa6f8i+AxeoyUDUSly7B -4f/xI4hROJ/yZlZ25w9Rl6VSDE1JUZU2Pb+iSwwQHYaZTKrzchGT5Or2m9qoXadN -t54CrnMAyNojA+j56hl0YgCUyyIgvpSnWbWCar6ZeXqp8kokUvd0/bpO5qgdAm6x -DYBEwa7TIzdfu4V8K5Iu6H6li92Z4b8nby1dqnuH/grdS/yO9SbkbnBCbjPsMZ57 -k8HkyWkaPcBrTiJt7qtYTcbQQcEr6k8Sh17rRdhs9ZgC06DYVYoGmRmioHfRMJ6s -zHXug/WwYjnPbFfiTNKRCw51KBuav/0aQ/HKd/s7j2G4aSgWQgRecCocIdiP4b0j -Wy10QJLZYxkNc91pvGJHvOB0K7Lrfb5BG7XARsWhIstfTsEokt4YutUqKLsRixeT -mJlglFwjz1onl14LBQaTNx47aTbrqZ5hHY8y2o4M1nQ+ewkk2gF3R8Q7zTSMmfXK -4SVhM7JZG+Ju1zdXtg2pEto= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIFYDCCA0igAwIBAgIULvWbAiin23r/1aOp7r0DoM8Sah0wDQYJKoZIhvcNAQEL -BQAwSDELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAc -BgNVBAMTFVF1b1ZhZGlzIFJvb3QgQ0EgMyBHMzAeFw0xMjAxMTIyMDI2MzJaFw00 -MjAxMTIyMDI2MzJaMEgxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM -aW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDMgRzMwggIiMA0GCSqG -SIb3DQEBAQUAA4ICDwAwggIKAoICAQCzyw4QZ47qFJenMioKVjZ/aEzHs286IxSR -/xl/pcqs7rN2nXrpixurazHb+gtTTK/FpRp5PIpM/6zfJd5O2YIyC0TeytuMrKNu -FoM7pmRLMon7FhY4futD4tN0SsJiCnMK3UmzV9KwCoWdcTzeo8vAMvMBOSBDGzXR -U7Ox7sWTaYI+FrUoRqHe6okJ7UO4BUaKhvVZR74bbwEhELn9qdIoyhA5CcoTNs+c -ra1AdHkrAj80//ogaX3T7mH1urPnMNA3I4ZyYUUpSFlob3emLoG+B01vr87ERROR -FHAGjx+f+IdpsQ7vw4kZ6+ocYfx6bIrc1gMLnia6Et3UVDmrJqMz6nWB2i3ND0/k -A9HvFZcba5DFApCTZgIhsUfei5pKgLlVj7WiL8DWM2fafsSntARE60f75li59wzw -eyuxwHApw0BiLTtIadwjPEjrewl5qW3aqDCYz4ByA4imW0aucnl8CAMhZa634Ryl -sSqiMd5mBPfAdOhx3v89WcyWJhKLhZVXGqtrdQtEPREoPHtht+KPZ0/l7DxMYIBp -VzgeAVuNVejH38DMdyM0SXV89pgR6y3e7UEuFAUCf+D+IOs15xGsIs5XPd7JMG0Q -A4XN8f+MFrXBsj6IbGB/kE+V9/YtrQE5BwT6dYB9v0lQ7e/JxHwc64B+27bQ3RP+ -ydOc17KXqQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB -BjAdBgNVHQ4EFgQUxhfQvKjqAkPyGwaZXSuQILnXnOQwDQYJKoZIhvcNAQELBQAD -ggIBADRh2Va1EodVTd2jNTFGu6QHcrxfYWLopfsLN7E8trP6KZ1/AvWkyaiTt3px -KGmPc+FSkNrVvjrlt3ZqVoAh313m6Tqe5T72omnHKgqwGEfcIHB9UqM+WXzBusnI -FUBhynLWcKzSt/Ac5IYp8M7vaGPQtSCKFWGafoaYtMnCdvvMujAWzKNhxnQT5Wvv -oxXqA/4Ti2Tk08HS6IT7SdEQTXlm66r99I0xHnAUrdzeZxNMgRVhvLfZkXdxGYFg -u/BYpbWcC/ePIlUnwEsBbTuZDdQdm2NnL9DuDcpmvJRPpq3t/O5jrFc/ZSXPsoaP -0Aj/uHYUbt7lJ+yreLVTubY/6CD50qi+YUbKh4yE8/nxoGibIh6BJpsQBJFxwAYf -3KDTuVan45gtf4Od34wrnDKOMpTwATwiKp9Dwi7DmDkHOHv8XgBCH/MyJnmDhPbl -8MFREsALHgQjDFSlTC9JxUrRtm5gDWv8a4uFJGS3iQ6rJUdbPM9+Sb3H6QrG2vd+ -DhcI00iX0HGS8A85PjRqHH3Y8iKuu2n0M7SmSFXRDw4m6Oy2Cy2nhTXN/VnIn9HN -PlopNLk9hM6xZdRZkZFWdSHBd575euFgndOtBBj0fOtek49TSiIp+EgrPk2GrFt/ -ywaZWWDYWGWVjUTR939+J399roD1B0y2PpxxVJkES/1Y+Zj0 ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDYTCCAkmgAwIBAgIQCgEBAQAAAnwAAAAKAAAAAjANBgkqhkiG9w0BAQUFADA6 -MRkwFwYDVQQKExBSU0EgU2VjdXJpdHkgSW5jMR0wGwYDVQQLExRSU0EgU2VjdXJp -dHkgMjA0OCBWMzAeFw0wMTAyMjIyMDM5MjNaFw0yNjAyMjIyMDM5MjNaMDoxGTAX -BgNVBAoTEFJTQSBTZWN1cml0eSBJbmMxHTAbBgNVBAsTFFJTQSBTZWN1cml0eSAy -MDQ4IFYzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAt49VcdKA3Xtp -eafwGFAyPGJn9gqVB93mG/Oe2dJBVGutn3y+Gc37RqtBaB4Y6lXIL5F4iSj7Jylg -/9+PjDvJSZu1pJTOAeo+tWN7fyb9Gd3AIb2E0S1PRsNO3Ng3OTsor8udGuorryGl -wSMiuLgbWhOHV4PR8CDn6E8jQrAApX2J6elhc5SYcSa8LWrg903w8bYqODGBDSnh -AMFRD0xS+ARaqn1y07iHKrtjEAMqs6FPDVpeRrc9DvV07Jmf+T0kgYim3WBU6JU2 -PcYJk5qjEoAAVZkZR73QpXzDuvsf9/UP+Ky5tfQ3mBMY3oVbtwyCO4dvlTlYMNpu -AWgXIszACwIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB -BjAfBgNVHSMEGDAWgBQHw1EwpKrpRa41JPr/JCwz0LGdjDAdBgNVHQ4EFgQUB8NR -MKSq6UWuNST6/yQsM9CxnYwwDQYJKoZIhvcNAQEFBQADggEBAF8+hnZuuDU8TjYc -HnmYv/3VEhF5Ug7uMYm83X/50cYVIeiKAVQNOvtUudZj1LGqlk2iQk3UUx+LEN5/ -Zb5gEydxiKRz44Rj0aRV4VCT5hsOedBnvEbIvz8XDZXmxpBp3ue0L96VfdASPz0+ -f00/FGj1EVDVwfSQpQgdMWD/YIwjVAqv/qFuxdF6Kmh4zx6CCiC0H63lhbJqaHVO -rSU3lIW+vaHU6rcMSzyd6BIA8F+sDeGscGNz9395nzIlQnQFgCi/vcEkllgVsRch -6YlL2weIZ/QVrXA+L02FO8K32/6YaCOJ4XQP3vTFhGMpG8zLB8kApKnXwiJPZ9d3 -7CAFYd4= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIGizCCBXOgAwIBAgIEO0XlaDANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJF -UzEfMB0GA1UEChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UECxMGUEtJ -R1ZBMScwJQYDVQQDEx5Sb290IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmEwHhcN -MDEwNzA2MTYyMjQ3WhcNMjEwNzAxMTUyMjQ3WjBoMQswCQYDVQQGEwJFUzEfMB0G -A1UEChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UECxMGUEtJR1ZBMScw -JQYDVQQDEx5Sb290IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmEwggEiMA0GCSqG -SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDGKqtXETcvIorKA3Qdyu0togu8M1JAJke+ -WmmmO3I2F0zo37i7L3bhQEZ0ZQKQUgi0/6iMweDHiVYQOTPvaLRfX9ptI6GJXiKj -SgbwJ/BXufjpTjJ3Cj9BZPPrZe52/lSqfR0grvPXdMIKX/UIKFIIzFVd0g/bmoGl -u6GzwZTNVOAydTGRGmKy3nXiz0+J2ZGQD0EbtFpKd71ng+CT516nDOeB0/RSrFOy -A8dEJvt55cs0YFAQexvba9dHq198aMpunUEDEO5rmXteJajCq+TA81yc477OMUxk -Hl6AovWDfgzWyoxVjr7gvkkHD6MkQXpYHYTqWBLI4bft75PelAgxAgMBAAGjggM7 -MIIDNzAyBggrBgEFBQcBAQQmMCQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnBr -aS5ndmEuZXMwEgYDVR0TAQH/BAgwBgEB/wIBAjCCAjQGA1UdIASCAiswggInMIIC -IwYKKwYBBAG/VQIBADCCAhMwggHoBggrBgEFBQcCAjCCAdoeggHWAEEAdQB0AG8A -cgBpAGQAYQBkACAAZABlACAAQwBlAHIAdABpAGYAaQBjAGEAYwBpAPMAbgAgAFIA -YQDtAHoAIABkAGUAIABsAGEAIABHAGUAbgBlAHIAYQBsAGkAdABhAHQAIABWAGEA -bABlAG4AYwBpAGEAbgBhAC4ADQAKAEwAYQAgAEQAZQBjAGwAYQByAGEAYwBpAPMA -bgAgAGQAZQAgAFAAcgDhAGMAdABpAGMAYQBzACAAZABlACAAQwBlAHIAdABpAGYA -aQBjAGEAYwBpAPMAbgAgAHEAdQBlACAAcgBpAGcAZQAgAGUAbAAgAGYAdQBuAGMA -aQBvAG4AYQBtAGkAZQBuAHQAbwAgAGQAZQAgAGwAYQAgAHAAcgBlAHMAZQBuAHQA -ZQAgAEEAdQB0AG8AcgBpAGQAYQBkACAAZABlACAAQwBlAHIAdABpAGYAaQBjAGEA -YwBpAPMAbgAgAHMAZQAgAGUAbgBjAHUAZQBuAHQAcgBhACAAZQBuACAAbABhACAA -ZABpAHIAZQBjAGMAaQDzAG4AIAB3AGUAYgAgAGgAdAB0AHAAOgAvAC8AdwB3AHcA -LgBwAGsAaQAuAGcAdgBhAC4AZQBzAC8AYwBwAHMwJQYIKwYBBQUHAgEWGWh0dHA6 -Ly93d3cucGtpLmd2YS5lcy9jcHMwHQYDVR0OBBYEFHs100DSHHgZZu90ECjcPk+y -eAT8MIGVBgNVHSMEgY0wgYqAFHs100DSHHgZZu90ECjcPk+yeAT8oWykajBoMQsw -CQYDVQQGEwJFUzEfMB0GA1UEChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0G -A1UECxMGUEtJR1ZBMScwJQYDVQQDEx5Sb290IENBIEdlbmVyYWxpdGF0IFZhbGVu -Y2lhbmGCBDtF5WgwDQYJKoZIhvcNAQEFBQADggEBACRhTvW1yEICKrNcda3Fbcrn -lD+laJWIwVTAEGmiEi8YPyVQqHxK6sYJ2fR1xkDar1CdPaUWu20xxsdzCkj+IHLt -b8zog2EWRpABlUt9jppSCS/2bxzkoXHPjCpaF3ODR00PNvsETUlR4hTJZGH71BTg -9J63NI8KJr2XXPR5OkowGcytT6CYirQxlyric21+eLj4iIlPsSKRZEv1UN4D2+XF -ducTZnV+ZfsBn5OHiJ35Rld8TWCvmHMTI6QgkYH60GFmuH3Rr9ZvHmw96RH9qfmC -IoaZM3Fa6hlXPZHNqcCjbgcTpsnt+GijnsNacgmHKNHEc8RzGF9QdRYxn7fofMM= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIEezCCA2OgAwIBAgIQNxkY5lNUfBq1uMtZWts1tzANBgkqhkiG9w0BAQUFADCB -rjELMAkGA1UEBhMCREUxIDAeBgNVBAgTF0JhZGVuLVd1ZXJ0dGVtYmVyZyAoQlcp -MRIwEAYDVQQHEwlTdHV0dGdhcnQxKTAnBgNVBAoTIERldXRzY2hlciBTcGFya2Fz -c2VuIFZlcmxhZyBHbWJIMT4wPAYDVQQDEzVTLVRSVVNUIEF1dGhlbnRpY2F0aW9u -IGFuZCBFbmNyeXB0aW9uIFJvb3QgQ0EgMjAwNTpQTjAeFw0wNTA2MjIwMDAwMDBa -Fw0zMDA2MjEyMzU5NTlaMIGuMQswCQYDVQQGEwJERTEgMB4GA1UECBMXQmFkZW4t -V3VlcnR0ZW1iZXJnIChCVykxEjAQBgNVBAcTCVN0dXR0Z2FydDEpMCcGA1UEChMg -RGV1dHNjaGVyIFNwYXJrYXNzZW4gVmVybGFnIEdtYkgxPjA8BgNVBAMTNVMtVFJV -U1QgQXV0aGVudGljYXRpb24gYW5kIEVuY3J5cHRpb24gUm9vdCBDQSAyMDA1OlBO -MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2bVKwdMz6tNGs9HiTNL1 -toPQb9UY6ZOvJ44TzbUlNlA0EmQpoVXhOmCTnijJ4/Ob4QSwI7+Vio5bG0F/WsPo -TUzVJBY+h0jUJ67m91MduwwA7z5hca2/OnpYH5Q9XIHV1W/fuJvS9eXLg3KSwlOy -ggLrra1fFi2SU3bxibYs9cEv4KdKb6AwajLrmnQDaHgTncovmwsdvs91DSaXm8f1 -XgqfeN+zvOyauu9VjxuapgdjKRdZYgkqeQd3peDRF2npW932kKvimAoA0SVtnteF -hy+S8dF2g08LOlk3KC8zpxdQ1iALCvQm+Z845y2kuJuJja2tyWp9iRe79n+Ag3rm -7QIDAQABo4GSMIGPMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgEG -MCkGA1UdEQQiMCCkHjAcMRowGAYDVQQDExFTVFJvbmxpbmUxLTIwNDgtNTAdBgNV -HQ4EFgQUD8oeXHngovMpttKFswtKtWXsa1IwHwYDVR0jBBgwFoAUD8oeXHngovMp -ttKFswtKtWXsa1IwDQYJKoZIhvcNAQEFBQADggEBAK8B8O0ZPCjoTVy7pWMciDMD -pwCHpB8gq9Yc4wYfl35UvbfRssnV2oDsF9eK9XvCAPbpEW+EoFolMeKJ+aQAPzFo -LtU96G7m1R08P7K9n3frndOMusDXtk3sU5wPBG7qNWdX4wple5A64U8+wwCSersF -iXOMy6ZNwPv2AtawB6MDwidAnwzkhYItr5pCHdDHjfhA7p0GVxzZotiAFP7hYy0y -h9WUUpY6RsZxlj33mA6ykaqP2vROJAA5VeitF7nTNCtKqUDMFypVZUF0Qn71wK/I -k63yGFs9iQzbRzkk+OBM8h+wPQrKBU6JIRrjKpms/H+h8Q8bHz2eBIPdltkdOpQ= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIID2DCCAsCgAwIBAgIQYFbFSyNAW2TU7SXa2dYeHjANBgkqhkiG9w0BAQsFADCB -hTELMAkGA1UEBhMCREUxKTAnBgNVBAoTIERldXRzY2hlciBTcGFya2Fzc2VuIFZl -cmxhZyBHbWJIMScwJQYDVQQLEx5TLVRSVVNUIENlcnRpZmljYXRpb24gU2Vydmlj -ZXMxIjAgBgNVBAMTGVMtVFJVU1QgVW5pdmVyc2FsIFJvb3QgQ0EwHhcNMTMxMDIy -MDAwMDAwWhcNMzgxMDIxMjM1OTU5WjCBhTELMAkGA1UEBhMCREUxKTAnBgNVBAoT -IERldXRzY2hlciBTcGFya2Fzc2VuIFZlcmxhZyBHbWJIMScwJQYDVQQLEx5TLVRS -VVNUIENlcnRpZmljYXRpb24gU2VydmljZXMxIjAgBgNVBAMTGVMtVFJVU1QgVW5p -dmVyc2FsIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCo -4wvfETeFgpq1bGZ8YT/ARxodRuOwVWTluII5KAd+F//0m4rwkYHqOD8heGxI7Gsv -otOKcrKn19nqf7TASWswJYmM67fVQGGY4tw8IJLNZUpynxqOjPolFb/zIYMoDYuv -WRGCQ1ybTSVRf1gYY2A7s7WKi1hjN0hIkETCQN1d90NpKZhcEmVeq5CSS2bf1XUS -U1QYpt6K1rtXAzlZmRgFDPn9FcaQZEYXgtfCSkE9/QC+V3IYlHcbU1qJAfYzcg6T -OtzoHv0FBda8c+CI3KtP7LUYhk95hA5IKmYq3TLIeGXIC51YAQVx7YH1aBduyw20 -S9ih7K446xxYL6FlAzQvAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0P -AQH/BAQDAgEGMB0GA1UdDgQWBBSafdfr639UmEUptCCrbQuWIxmkwjANBgkqhkiG -9w0BAQsFAAOCAQEATpYS2353XpInniEXGIJ22D+8pQkEZoiJrdtVszNqxmXEj03z -MjbceQSWqXcy0Zf1GGuMuu3OEdBEx5LxtESO7YhSSJ7V/Vn4ox5R+wFS5V/let2q -JE8ii912RvaloA812MoPmLkwXSBvwoEevb3A/hXTOCoJk5gnG5N70Cs0XmilFU/R -UsOgyqCDRR319bdZc11ZAY+qwkcvFHHVKeMQtUeTJcwjKdq3ctiR1OwbSIoi5MEq -9zpok59FGW5Dt8z+uJGaYRo2aWNkkijzb2GShROfyQcsi1fc65551cLeCNVUsldO -KjKNoeI60RAgIjl9NEVvcTvDHfz/sk+o4vYwHg== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDbTCCAlWgAwIBAgIBATANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQGEwJKUDEr -MCkGA1UEChMiSmFwYW4gQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcywgSW5jLjEcMBoG -A1UEAxMTU2VjdXJlU2lnbiBSb290Q0ExMTAeFw0wOTA0MDgwNDU2NDdaFw0yOTA0 -MDgwNDU2NDdaMFgxCzAJBgNVBAYTAkpQMSswKQYDVQQKEyJKYXBhbiBDZXJ0aWZp -Y2F0aW9uIFNlcnZpY2VzLCBJbmMuMRwwGgYDVQQDExNTZWN1cmVTaWduIFJvb3RD -QTExMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA/XeqpRyQBTvLTJsz -i1oURaTnkBbR31fSIRCkF/3frNYfp+TbfPfs37gD2pRY/V1yfIw/XwFndBWW4wI8 -h9uuywGOwvNmxoVF9ALGOrVisq/6nL+k5tSAMJjzDbaTj6nU2DbysPyKyiyhFTOV -MdrAG/LuYpmGYz+/3ZMqg6h2uRMft85OQoWPIucuGvKVCbIFtUROd6EgvanyTgp9 -UK31BQ1FT0Zx/Sg+U/sE2C3XZR1KG/rPO7AxmjVuyIsG0wCR8pQIZUyxNAYAeoni -8McDWc/V1uinMrPmmECGxc0nEovMe863ETxiYAcjPitAbpSACW22s293bzUIUPsC -h8U+iQIDAQABo0IwQDAdBgNVHQ4EFgQUW/hNT7KlhtQ60vFjmqC+CfZXt94wDgYD -VR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEB -AKChOBZmLqdWHyGcBvod7bkixTgm2E5P7KN/ed5GIaGHd48HCJqypMWvDzKYC3xm -KbabfSVSSUOrTC4rbnpwrxYO4wJs+0LmGJ1F2FXI6Dvd5+H0LgscNFxsWEr7jIhQ -X5Ucv+2rIrVls4W6ng+4reV6G4pQOh29Dbx7VFALuUKvVaAYga1lme++5Jy/xIWr -QbJUb9wlze144o4MjQlJ3WN7WmmWAiGovVJZ6X01y8hSyn+B/tlr0/cR7SXf+Of5 -pPpyl4RTDaXQMhhRdlkUbA/r7F+AjHVDg8OFmP9Mni0N5HeDk061lgeLKBObjBmN -QSdJQO7e5iNEOdyhIta6A/I= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDuDCCAqCgAwIBAgIQDPCOXAgWpa1Cf/DrJxhZ0DANBgkqhkiG9w0BAQUFADBI -MQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24x -FzAVBgNVBAMTDlNlY3VyZVRydXN0IENBMB4XDTA2MTEwNzE5MzExOFoXDTI5MTIz -MTE5NDA1NVowSDELMAkGA1UEBhMCVVMxIDAeBgNVBAoTF1NlY3VyZVRydXN0IENv -cnBvcmF0aW9uMRcwFQYDVQQDEw5TZWN1cmVUcnVzdCBDQTCCASIwDQYJKoZIhvcN -AQEBBQADggEPADCCAQoCggEBAKukgeWVzfX2FI7CT8rU4niVWJxB4Q2ZQCQXOZEz -Zum+4YOvYlyJ0fwkW2Gz4BERQRwdbvC4u/jep4G6pkjGnx29vo6pQT64lO0pGtSO -0gMdA+9tDWccV9cGrcrI9f4Or2YlSASWC12juhbDCE/RRvgUXPLIXgGZbf2IzIao -wW8xQmxSPmjL8xk037uHGFaAJsTQ3MBv396gwpEWoGQRS0S8Hvbn+mPeZqx2pHGj -7DaUaHp3pLHnDi+BeuK1cobvomuL8A/b01k/unK8RCSc43Oz969XL0Imnal0ugBS -8kvNU3xHCzaFDmapCJcWNFfBZveA4+1wVMeT4C4oFVmHursCAwEAAaOBnTCBmjAT -BgkrBgEEAYI3FAIEBh4EAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB -/zAdBgNVHQ4EFgQUQjK2FvoE/f5dS3rD/fdMQB1aQ68wNAYDVR0fBC0wKzApoCeg -JYYjaHR0cDovL2NybC5zZWN1cmV0cnVzdC5jb20vU1RDQS5jcmwwEAYJKwYBBAGC -NxUBBAMCAQAwDQYJKoZIhvcNAQEFBQADggEBADDtT0rhWDpSclu1pqNlGKa7UTt3 -6Z3q059c4EVlew3KW+JwULKUBRSuSceNQQcSc5R+DCMh/bwQf2AQWnL1mA6s7Ll/ -3XpvXdMc9P+IBWlCqQVxyLesJugutIxq/3HcuLHfmbx8IVQr5Fiiu1cprp6poxkm -D5kuCLDv/WnPmRoJjeOnnyvJNjR7JLN4TJUXpAYmHrZkUjZfYGfZnMUFdAvnZyPS -CPyI6a6Lf+Ew9Dd+/cYy2i2eRDAwbO4H3tI0/NL/QPZL9GZGBlSm8jIKYyYwa5vR -3ItHuuG51WLQoqD0ZwV4KWMabwTW+MZMo5qxN7SN5ShLHZ4swrhovO0C7jE= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDvDCCAqSgAwIBAgIQB1YipOjUiolN9BPI8PjqpTANBgkqhkiG9w0BAQUFADBK -MQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24x -GTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwgQ0EwHhcNMDYxMTA3MTk0MjI4WhcNMjkx -MjMxMTk1MjA2WjBKMQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3Qg -Q29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwgQ0EwggEiMA0GCSqG -SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvNS7YrGxVaQZx5RNoJLNP2MwhR/jxYDiJ -iQPpvepeRlMJ3Fz1Wuj3RSoC6zFh1ykzTM7HfAo3fg+6MpjhHZevj8fcyTiW89sa -/FHtaMbQbqR8JNGuQsiWUGMu4P51/pinX0kuleM5M2SOHqRfkNJnPLLZ/kG5VacJ -jnIFHovdRIWCQtBJwB1g8NEXLJXr9qXBkqPFwqcIYA1gBBCWeZ4WNOaptvolRTnI -HmX5k/Wq8VLcmZg9pYYaDDUz+kulBAYVHDGA76oYa8J719rO+TMg1fW9ajMtgQT7 -sFzUnKPiXB3jqUJ1XnvUd+85VLrJChgbEplJL4hL/VBi0XPnj3pDAgMBAAGjgZ0w -gZowEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQF -MAMBAf8wHQYDVR0OBBYEFK9EBMJBfkiD2045AuzshHrmzsmkMDQGA1UdHwQtMCsw -KaAnoCWGI2h0dHA6Ly9jcmwuc2VjdXJldHJ1c3QuY29tL1NHQ0EuY3JsMBAGCSsG -AQQBgjcVAQQDAgEAMA0GCSqGSIb3DQEBBQUAA4IBAQBjGghAfaReUw132HquHw0L -URYD7xh8yOOvaliTFGCRsoTciE6+OYo68+aCiV0BN7OrJKQVDpI1WkpEXk5X+nXO -H0jOZvQ8QCaSmGwb7iRGDBezUqXbpZGRzzfTb+cnCDpOGR86p1hcF895P4vkp9Mm -I50mD1hp/Ed+stCNi5O/KU9DaXR2Z0vPB4zmAve14bRDtUstFJ/53CYNv6ZHdAbY -iNE6KTCEztI5gGIbqMdXSbxqVVFnFUq+NQfk1XWYN3kwFNspnWzFacxHVaIw98xc -f8LDmBxrThaA63p4ZUWiABqvDA1VZDRIuJK58bRQKfJPIx/abKwfROHdI3hRW8cW ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDfTCCAmWgAwIBAgIBADANBgkqhkiG9w0BAQUFADBgMQswCQYDVQQGEwJKUDEl -MCMGA1UEChMcU0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEqMCgGA1UECxMh -U2VjdXJpdHkgQ29tbXVuaWNhdGlvbiBFViBSb290Q0ExMB4XDTA3MDYwNjAyMTIz -MloXDTM3MDYwNjAyMTIzMlowYDELMAkGA1UEBhMCSlAxJTAjBgNVBAoTHFNFQ09N -IFRydXN0IFN5c3RlbXMgQ08uLExURC4xKjAoBgNVBAsTIVNlY3VyaXR5IENvbW11 -bmljYXRpb24gRVYgUm9vdENBMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC -ggEBALx/7FebJOD+nLpCeamIivqA4PUHKUPqjgo0No0c+qe1OXj/l3X3L+SqawSE -RMqm4miO/VVQYg+kcQ7OBzgtQoVQrTyWb4vVog7P3kmJPdZkLjjlHmy1V4qe70gO -zXppFodEtZDkBp2uoQSXWHnvIEqCa4wiv+wfD+mEce3xDuS4GBPMVjZd0ZoeUWs5 -bmB2iDQL87PRsJ3KYeJkHcFGB7hj3R4zZbOOCVVSPbW9/wfrrWFVGCypaZhKqkDF -MxRldAD5kd6vA0jFQFTcD4SQaCDFkpbcLuUCRarAX1T4bepJz11sS6/vmsJWXMY1 -VkJqMF/Cq/biPT+zyRGPMUzXn0kCAwEAAaNCMEAwHQYDVR0OBBYEFDVK9U2vP9eC -OKyrcWUXdYydVZPmMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0G -CSqGSIb3DQEBBQUAA4IBAQCoh+ns+EBnXcPBZsdAS5f8hxOQWsTvoMpfi7ent/HW -tWS3irO4G8za+6xmiEHO6Pzk2x6Ipu0nUBsCMCRGef4Eh3CXQHPRwMFXGZpppSeZ -q51ihPZRwSzJIxXYKLerJRO1RuGGAv8mjMSIkh1W/hln8lXkgKNrnKt34VFxDSDb -EJrbvXZ5B3eZKK2aXtqxT0QsNY6llsf9g/BYxnnWmHyojf6GPgcWkuF75x3sM3Z+ -Qi5KhfmRiWiEA4Glm5q+4zfFVKtWOxgtQaQM+ELbmaDgcm+7XeEWT1MKZPlO9L9O -VL14bIjqv5wTJMJwaaJ/D8g8rQjJsJhAoyrniIPtd490 ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDdzCCAl+gAwIBAgIBADANBgkqhkiG9w0BAQsFADBdMQswCQYDVQQGEwJKUDEl -MCMGA1UEChMcU0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEnMCUGA1UECxMe -U2VjdXJpdHkgQ29tbXVuaWNhdGlvbiBSb290Q0EyMB4XDTA5MDUyOTA1MDAzOVoX -DTI5MDUyOTA1MDAzOVowXTELMAkGA1UEBhMCSlAxJTAjBgNVBAoTHFNFQ09NIFRy -dXN0IFN5c3RlbXMgQ08uLExURC4xJzAlBgNVBAsTHlNlY3VyaXR5IENvbW11bmlj -YXRpb24gUm9vdENBMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANAV -OVKxUrO6xVmCxF1SrjpDZYBLx/KWvNs2l9amZIyoXvDjChz335c9S672XewhtUGr -zbl+dp+++T42NKA7wfYxEUV0kz1XgMX5iZnK5atq1LXaQZAQwdbWQonCv/Q4EpVM -VAX3NuRFg3sUZdbcDE3R3n4MqzvEFb46VqZab3ZpUql6ucjrappdUtAtCms1FgkQ -hNBqyjoGADdH5H5XTz+L62e4iKrFvlNVspHEfbmwhRkGeC7bYRr6hfVKkaHnFtWO -ojnflLhwHyg/i/xAXmODPIMqGplrz95Zajv8bxbXH/1KEOtOghY6rCcMU/Gt1SSw -awNQwS08Ft1ENCcadfsCAwEAAaNCMEAwHQYDVR0OBBYEFAqFqXdlBZh8QIH4D5cs -OPEK7DzPMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3 -DQEBCwUAA4IBAQBMOqNErLlFsceTfsgLCkLfZOoc7llsCLqJX2rKSpWeeo8HxdpF -coJxDjrSzG+ntKEju/Ykn8sX/oymzsLS28yN/HH8AynBbF0zX2S2ZTuJbxh2ePXc -okgfGT+Ok+vx+hfuzU7jBBJV1uXk3fs+BXziHV7Gp7yXT2g69ekuCkO2r1dcYmh8 -t/2jioSgrGK+KwmHNPBqAbubKVY8/gA3zyNs8U6qtnRGEmyR7jTV7JqR50S+kDFy -1UkC9gLl9B/rfNmWVan/7Ir5mUf/NVoCqgTLiluHcSmRvaS0eg29mvVXIwAHIRc/ -SjnRBUkLp7Y3gaVdjKozXoEofKd9J+sAro03 ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDWjCCAkKgAwIBAgIBADANBgkqhkiG9w0BAQUFADBQMQswCQYDVQQGEwJKUDEY -MBYGA1UEChMPU0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21t -dW5pY2F0aW9uIFJvb3RDQTEwHhcNMDMwOTMwMDQyMDQ5WhcNMjMwOTMwMDQyMDQ5 -WjBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMPU0VDT00gVHJ1c3QubmV0MScwJQYD -VQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEwggEiMA0GCSqGSIb3 -DQEBAQUAA4IBDwAwggEKAoIBAQCzs/5/022x7xZ8V6UMbXaKL0u/ZPtM7orw8yl8 -9f/uKuDp6bpbZCKamm8sOiZpUQWZJtzVHGpxxpp9Hp3dfGzGjGdnSj74cbAZJ6kJ -DKaVv0uMDPpVmDvY6CKhS3E4eayXkmmziX7qIWgGmBSWh9JhNrxtJ1aeV+7AwFb9 -Ms+k2Y7CI9eNqPPYJayX5HA49LY6tJ07lyZDo6G8SVlyTCMwhwFY9k6+HGhWZq/N -QV3Is00qVUarH9oe4kA92819uZKAnDfdDJZkndwi92SL32HeFZRSFaB9UslLqCHJ -xrHty8OVYNEP8Ktw+N/LTX7s1vqr2b1/VPKl6Xn62dZ2JChzAgMBAAGjPzA9MB0G -A1UdDgQWBBSgc0mZaNyFW2XjmygvV5+9M7wHSDALBgNVHQ8EBAMCAQYwDwYDVR0T -AQH/BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAaECpqLvkT115swW1F7NgE+vG -kl3g0dNq/vu+m22/xwVtWSDEHPC32oRYAmP6SBbvT6UL90qY8j+eG61Ha2POCEfr -Uj94nK9NrvjVT8+amCoQQTlSxN3Zmw7vkwGusi7KaEIkQmywszo+zenaSMQVy+n5 -Bw+SUEmK3TGXX8npN6o7WWWXlDLJs58+OmJYxUmtYg5xpTKqL8aJdkNAExNnPaJU -JRDL8Try2frbSVa7pv6nQTXD4IhhyYjH3zYQIphZ6rBK+1YWc26sTfcioU+tHXot -RSflMMFe8toTyyVCUZVHA4xsIcx0Qu1T/zOLjw9XARYvz6buyXAiFL39vmwLAw== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDIDCCAgigAwIBAgIBJDANBgkqhkiG9w0BAQUFADA5MQswCQYDVQQGEwJGSTEP -MA0GA1UEChMGU29uZXJhMRkwFwYDVQQDExBTb25lcmEgQ2xhc3MxIENBMB4XDTAx -MDQwNjEwNDkxM1oXDTIxMDQwNjEwNDkxM1owOTELMAkGA1UEBhMCRkkxDzANBgNV -BAoTBlNvbmVyYTEZMBcGA1UEAxMQU29uZXJhIENsYXNzMSBDQTCCASIwDQYJKoZI -hvcNAQEBBQADggEPADCCAQoCggEBALWJHytPZwp5/8Ue+H887dF+2rDNbS82rDTG -29lkFwhjMDMiikzujrsPDUJVyZ0upe/3p4zDq7mXy47vPxVnqIJyY1MPQYx9EJUk -oVqlBvqSV536pQHydekfvFYmUk54GWVYVQNYwBSujHxVX3BbdyMGNpfzJLWaRpXk -3w0LBUXl0fIdgrvGE+D+qnr9aTCU89JFhfzyMlsy3uhsXR/LpCJ0sICOXZT3BgBL -qdReLjVQCfOAl/QMF6452F/NM8EcyonCIvdFEu1eEpOdY6uCLrnrQkFEy0oaAIIN -nvmLVz5MxxftLItyM19yejhW1ebZrgUaHXVFsculJRwSVzb9IjcCAwEAAaMzMDEw -DwYDVR0TAQH/BAUwAwEB/zARBgNVHQ4ECgQIR+IMi/ZTiFIwCwYDVR0PBAQDAgEG -MA0GCSqGSIb3DQEBBQUAA4IBAQCLGrLJXWG04bkruVPRsoWdd44W7hE928Jj2VuX -ZfsSZ9gqXLar5V7DtxYvyOirHYr9qxp81V9jz9yw3Xe5qObSIjiHBxTZ/75Wtf0H -DjxVyhbMp6Z3N/vbXB9OWQaHowND9Rart4S9Tu+fMTfwRvFAttEMpWT4Y14h21VO -TzF2nBBhjrZTOqMRvq9tfB69ri3iDGnHhVNoomG6xT60eVR4ngrHAr5i0RGCS2Uv -kVrCqIexVmiUefkl98HVrhq4uz2PqYo4Ffdz0Fpg0YCw8NzVUM1O7pJIae2yIx4w -zMiUyLb1O4Z/P6Yun/Y+LLWSlj7fLJOK/4GMDw9ZIRlXvVWa ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDIDCCAgigAwIBAgIBHTANBgkqhkiG9w0BAQUFADA5MQswCQYDVQQGEwJGSTEP -MA0GA1UEChMGU29uZXJhMRkwFwYDVQQDExBTb25lcmEgQ2xhc3MyIENBMB4XDTAx -MDQwNjA3Mjk0MFoXDTIxMDQwNjA3Mjk0MFowOTELMAkGA1UEBhMCRkkxDzANBgNV -BAoTBlNvbmVyYTEZMBcGA1UEAxMQU29uZXJhIENsYXNzMiBDQTCCASIwDQYJKoZI -hvcNAQEBBQADggEPADCCAQoCggEBAJAXSjWdyvANlsdE+hY3/Ei9vX+ALTU74W+o -Z6m/AxxNjG8yR9VBaKQTBME1DJqEQ/xcHf+Js+gXGM2RX/uJ4+q/Tl18GybTdXnt -5oTjV+WtKcT0OijnpXuENmmz/V52vaMtmdOQTiMofRhj8VQ7Jp12W5dCsv+u8E7s -3TmVToMGf+dJQMjFAbJUWmYdPfz56TwKnoG4cPABi+QjVHzIrviQHgCWctRUz2Ej -vOr7nQKV0ba5cTppCD8PtOFCx4j1P5iop7oc4HFx71hXgVB6XGt0Rg6DA5jDjqhu -8nYybieDwnPz3BjotJPqdURrBGAgcVeHnfO+oJAjPYok4doh28MCAwEAAaMzMDEw -DwYDVR0TAQH/BAUwAwEB/zARBgNVHQ4ECgQISqCqWITTXjwwCwYDVR0PBAQDAgEG -MA0GCSqGSIb3DQEBBQUAA4IBAQBazof5FnIVV0sd2ZvnoiYw7JNn39Yt0jSv9zil -zqsWuasvfDXLrNAPtEwr/IDva4yRXzZ299uzGxnq9LIR/WFxRL8oszodv7ND6J+/ -3DEIcbCdjdY0RzKQxmUk96BKfARzjzlvF4xytb1LyHr4e4PDKE6cCepnP7JnBBvD -FNr450kkkdAdavphOe9r5yF1BgfYErQhIHBCcYHaPJo2vqZbDWpsmh+Re/n570K6 -Tk6ezAyNlNzZRZxe7EJQY670XcSxEtzKO6gunRRaBXW37Ndj4ro1tgQIkejanZz2 -ZrUYrAqmVCY0M9IbwdR/GjqOC6oybtv8TyWf2TLHllpwrN9M ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIFcDCCA1igAwIBAgIEAJiWjTANBgkqhkiG9w0BAQsFADBYMQswCQYDVQQGEwJO -TDEeMBwGA1UECgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSkwJwYDVQQDDCBTdGFh -dCBkZXIgTmVkZXJsYW5kZW4gRVYgUm9vdCBDQTAeFw0xMDEyMDgxMTE5MjlaFw0y -MjEyMDgxMTEwMjhaMFgxCzAJBgNVBAYTAk5MMR4wHAYDVQQKDBVTdGFhdCBkZXIg -TmVkZXJsYW5kZW4xKTAnBgNVBAMMIFN0YWF0IGRlciBOZWRlcmxhbmRlbiBFViBS -b290IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA48d+ifkkSzrS -M4M1LGns3Amk41GoJSt5uAg94JG6hIXGhaTK5skuU6TJJB79VWZxXSzFYGgEt9nC -UiY4iKTWO0Cmws0/zZiTs1QUWJZV1VD+hq2kY39ch/aO5ieSZxeSAgMs3NZmdO3d -Z//BYY1jTw+bbRcwJu+r0h8QoPnFfxZpgQNH7R5ojXKhTbImxrpsX23Wr9GxE46p -rfNeaXUmGD5BKyF/7otdBwadQ8QpCiv8Kj6GyzyDOvnJDdrFmeK8eEEzduG/L13l -pJhQDBXd4Pqcfzho0LKmeqfRMb1+ilgnQ7O6M5HTp5gVXJrm0w912fxBmJc+qiXb -j5IusHsMX/FjqTf5m3VpTCgmJdrV8hJwRVXj33NeN/UhbJCONVrJ0yPr08C+eKxC -KFhmpUZtcALXEPlLVPxdhkqHz3/KRawRWrUgUY0viEeXOcDPusBCAUCZSCELa6fS -/ZbV0b5GnUngC6agIk440ME8MLxwjyx1zNDFjFE7PZQIZCZhfbnDZY8UnCHQqv0X -cgOPvZuM5l5Tnrmd74K74bzickFbIZTTRTeU0d8JOV3nI6qaHcptqAqGhYqCvkIH -1vI4gnPah1vlPNOePqc7nvQDs/nxfRN0Av+7oeX6AHkcpmZBiFxgV6YuCcS6/ZrP -px9Aw7vMWgpVSzs4dlG4Y4uElBbmVvMCAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB -/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFP6rAJCYniT8qcwaivsnuL8wbqg7 -MA0GCSqGSIb3DQEBCwUAA4ICAQDPdyxuVr5Os7aEAJSrR8kN0nbHhp8dB9O2tLsI -eK9p0gtJ3jPFrK3CiAJ9Brc1AsFgyb/E6JTe1NOpEyVa/m6irn0F3H3zbPB+po3u -2dfOWBfoqSmuc0iH55vKbimhZF8ZE/euBhD/UcabTVUlT5OZEAFTdfETzsemQUHS -v4ilf0X8rLiltTMMgsT7B/Zq5SWEXwbKwYY5EdtYzXc7LMJMD16a4/CrPmEbUCTC -wPTxGfARKbalGAKb12NMcIxHowNDXLldRqANb/9Zjr7dn3LDWyvfjFvO5QxGbJKy -CqNMVEIYFRIYvdr8unRu/8G2oGTYqV9Vrp9canaW2HNnh/tNf1zuacpzEPuKqf2e -vTY4SUmH9A4U8OmHuD+nT3pajnnUk+S7aFKErGzp85hwVXIy+TSrK0m1zSBi5Dp6 -Z2Orltxtrpfs/J92VoguZs9btsmksNcFuuEnL5O7Jiqik7Ab846+HUCjuTaPPoIa -Gl6I6lD4WeKDRikL40Rc4ZW2aZCaFG+XroHPaO+Zmr615+F/+PoTRxZMzG0IQOeL -eG9QgkRQP2YGiqtDhFZKDyAthg710tvSeopLzaXoTvFeJiUBWSOgftL2fiFX1ye8 -FVdMpEbB4IMeDExNH08GGeL5qPQ6gqGyeUN51q1veieQA6TqJIc/2b3Z6fJfUEkc -7uzXLg== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDujCCAqKgAwIBAgIEAJiWijANBgkqhkiG9w0BAQUFADBVMQswCQYDVQQGEwJO -TDEeMBwGA1UEChMVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSYwJAYDVQQDEx1TdGFh -dCBkZXIgTmVkZXJsYW5kZW4gUm9vdCBDQTAeFw0wMjEyMTcwOTIzNDlaFw0xNTEy -MTYwOTE1MzhaMFUxCzAJBgNVBAYTAk5MMR4wHAYDVQQKExVTdGFhdCBkZXIgTmVk -ZXJsYW5kZW4xJjAkBgNVBAMTHVN0YWF0IGRlciBOZWRlcmxhbmRlbiBSb290IENB -MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmNK1URF6gaYUmHFtvszn -ExvWJw56s2oYHLZhWtVhCb/ekBPHZ+7d89rFDBKeNVU+LCeIQGv33N0iYfXCxw71 -9tV2U02PjLwYdjeFnejKScfST5gTCaI+Ioicf9byEGW07l8Y1Rfj+MX94p2i71MO -hXeiD+EwR+4A5zN9RGcaC1Hoi6CeUJhoNFIfLm0B8mBF8jHrqTFoKbt6QZ7GGX+U -tFE5A3+y3qcym7RHjm+0Sq7lr7HcsBthvJly3uSJt3omXdozSVtSnA71iq3DuD3o -BmrC1SoLbHuEvVYFy4ZlkuxEK7COudxwC0barbxjiDn622r+I/q85Ej0ZytqERAh -SQIDAQABo4GRMIGOMAwGA1UdEwQFMAMBAf8wTwYDVR0gBEgwRjBEBgRVHSAAMDww -OgYIKwYBBQUHAgEWLmh0dHA6Ly93d3cucGtpb3ZlcmhlaWQubmwvcG9saWNpZXMv -cm9vdC1wb2xpY3kwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSofeu8Y6R0E3QA -7Jbg0zTBLL9s+DANBgkqhkiG9w0BAQUFAAOCAQEABYSHVXQ2YcG70dTGFagTtJ+k -/rvuFbQvBgwp8qiSpGEN/KtcCFtREytNwiphyPgJWPwtArI5fZlmgb9uXJVFIGzm -eafR2Bwp/MIgJ1HI8XxdNGdphREwxgDS1/PTfLbwMVcoEoJz6TMvplW0C5GUR5z6 -u3pCMuiufi3IvKwUv9kP2Vv8wfl6leF9fpb8cbDCTMjfRTTJzg3ynGQI0DvDKcWy -7ZAEwbEpkcUwb8GpcjPM/l0WFywRaed+/sWDCN+83CI6LiBpIzlWYGeQiy52OfsR -iJf2fL1LuCAWZwWN4jvBcj+UlTfHXbme2JOhF4//DGYVwSR8MnwDHTuhWEUykw== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIFyjCCA7KgAwIBAgIEAJiWjDANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJO -TDEeMBwGA1UECgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSswKQYDVQQDDCJTdGFh -dCBkZXIgTmVkZXJsYW5kZW4gUm9vdCBDQSAtIEcyMB4XDTA4MDMyNjExMTgxN1oX -DTIwMDMyNTExMDMxMFowWjELMAkGA1UEBhMCTkwxHjAcBgNVBAoMFVN0YWF0IGRl -ciBOZWRlcmxhbmRlbjErMCkGA1UEAwwiU3RhYXQgZGVyIE5lZGVybGFuZGVuIFJv -b3QgQ0EgLSBHMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMVZ5291 -qj5LnLW4rJ4L5PnZyqtdj7U5EILXr1HgO+EASGrP2uEGQxGZqhQlEq0i6ABtQ8Sp -uOUfiUtnvWFI7/3S4GCI5bkYYCjDdyutsDeqN95kWSpGV+RLufg3fNU254DBtvPU -Z5uW6M7XxgpT0GtJlvOjCwV3SPcl5XCsMBQgJeN/dVrlSPhOewMHBPqCYYdu8DvE -pMfQ9XQ+pV0aCPKbJdL2rAQmPlU6Yiile7Iwr/g3wtG61jj99O9JMDeZJiFIhQGp -5Rbn3JBV3w/oOM2ZNyFPXfUib2rFEhZgF1XyZWampzCROME4HYYEhLoaJXhena/M -UGDWE4dS7WMfbWV9whUYdMrhfmQpjHLYFhN9C0lK8SgbIHRrxT3dsKpICT0ugpTN -GmXZK4iambwYfp/ufWZ8Pr2UuIHOzZgweMFvZ9C+X+Bo7d7iscksWXiSqt8rYGPy -5V6548r6f1CGPqI0GAwJaCgRHOThuVw+R7oyPxjMW4T182t0xHJ04eOLoEq9jWYv -6q012iDTiIJh8BIitrzQ1aTsr1SIJSQ8p22xcik/Plemf1WvbibG/ufMQFxRRIEK -eN5KzlW/HdXZt1bv8Hb/C3m1r737qWmRRpdogBQ2HbN/uymYNqUg+oJgYjOk7Na6 -B6duxc8UpufWkjTYgfX8HV2qXB72o007uPc5AgMBAAGjgZcwgZQwDwYDVR0TAQH/ -BAUwAwEB/zBSBgNVHSAESzBJMEcGBFUdIAAwPzA9BggrBgEFBQcCARYxaHR0cDov -L3d3dy5wa2lvdmVyaGVpZC5ubC9wb2xpY2llcy9yb290LXBvbGljeS1HMjAOBgNV -HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJFoMocVHYnitfGsNig0jQt8YojrMA0GCSqG -SIb3DQEBCwUAA4ICAQCoQUpnKpKBglBu4dfYszk78wIVCVBR7y29JHuIhjv5tLyS -CZa59sCrI2AGeYwRTlHSeYAz+51IvuxBQ4EffkdAHOV6CMqqi3WtFMTC6GY8ggen -5ieCWxjmD27ZUD6KQhgpxrRW/FYQoAUXvQwjf/ST7ZwaUb7dRUG/kSS0H4zpX897 -IZmflZ85OkYcbPnNe5yQzSipx6lVu6xiNGI1E0sUOlWDuYaNkqbG9AclVMwWVxJK -gnjIFNkXgiYtXSAfea7+1HAWFpWD2DU5/1JddRwWxRNVz0fMdWVSSt7wsKfkCpYL -+63C4iWEst3kvX5ZbJvw8NjnyvLplzh+ib7M+zkXYT9y2zqR2GUBGR2tUKRXCnxL -vJxxcypFURmFzI79R6d0lR2o0a9OF7FpJsKqeFdbxU2n5Z4FF5TKsl+gSRiNNOkm -bEgeqmiSBeGCc1qb3AdbCG19ndeNIdn8FCCqwkXfP+cAslHkwvgFuXkajDTznlvk -N1trSt8sV4pAWja63XVECDdCcAz+3F4hoKOKwJCcaNpQ5kUQR3i2TtJlycM33+FC -Y7BXN0Ute4qcvwXqZVUz9zkQxSgqIXobisQk+T8VyJoVIPVVYpbtbZNQvOSqeK3Z -ywplh6ZmwcSBo3c6WB4L7oOLnR7SUqTMHW+wmG2UMbX4cQrcufx9MmDm66+KAQ== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIFdDCCA1ygAwIBAgIEAJiiOTANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJO -TDEeMBwGA1UECgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSswKQYDVQQDDCJTdGFh -dCBkZXIgTmVkZXJsYW5kZW4gUm9vdCBDQSAtIEczMB4XDTEzMTExNDExMjg0MloX -DTI4MTExMzIzMDAwMFowWjELMAkGA1UEBhMCTkwxHjAcBgNVBAoMFVN0YWF0IGRl -ciBOZWRlcmxhbmRlbjErMCkGA1UEAwwiU3RhYXQgZGVyIE5lZGVybGFuZGVuIFJv -b3QgQ0EgLSBHMzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL4yolQP -cPssXFnrbMSkUeiFKrPMSjTysF/zDsccPVMeiAho2G89rcKezIJnByeHaHE6n3WW -IkYFsO2tx1ueKt6c/DrGlaf1F2cY5y9JCAxcz+bMNO14+1Cx3Gsy8KL+tjzk7FqX -xz8ecAgwoNzFs21v0IJyEavSgWhZghe3eJJg+szeP4TrjTgzkApyI/o1zCZxMdFy -KJLZWyNtZrVtB0LrpjPOktvA9mxjeM3KTj215VKb8b475lRgsGYeCasH/lSJEULR -9yS6YHgamPfJEf0WwTUaVHXvQ9Plrk7O53vDxk5hUUurmkVLoR9BvUhTFXFkC4az -5S6+zqQbwSmEorXLCCN2QyIkHxcE1G6cxvx/K2Ya7Irl1s9N9WMJtxU51nus6+N8 -6U78dULI7ViVDAZCopz35HCz33JvWjdAidiFpNfxC95DGdRKWCyMijmev4SH8RY7 -Ngzp07TKbBlBUgmhHbBqv4LvcFEhMtwFdozL92TkA1CvjJFnq8Xy7ljY3r735zHP -bMk7ccHViLVlvMDoFxcHErVc0qsgk7TmgoNwNsXNo42ti+yjwUOH5kPiNL6VizXt -BznaqB16nzaeErAMZRKQFWDZJkBE41ZgpRDUajz9QdwOWke275dhdU/Z/seyHdTt -XUmzqWrLZoQT1Vyg3N9udwbRcXXIV2+vD3dbAgMBAAGjQjBAMA8GA1UdEwEB/wQF -MAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRUrfrHkleuyjWcLhL75Lpd -INyUVzANBgkqhkiG9w0BAQsFAAOCAgEAMJmdBTLIXg47mAE6iqTnB/d6+Oea31BD -U5cqPco8R5gu4RV78ZLzYdqQJRZlwJ9UXQ4DO1t3ApyEtg2YXzTdO2PCwyiBwpwp -LiniyMMB8jPqKqrMCQj3ZWfGzd/TtiunvczRDnBfuCPRy5FOCvTIeuXZYzbB1N/8 -Ipf3YF3qKS9Ysr1YvY2WTxB1v0h7PVGHoTx0IsL8B3+A3MSs/mrBcDCw6Y5p4ixp -gZQJut3+TcCDjJRYwEYgr5wfAvg1VUkvRtTA8KCWAg8zxXHzniN9lLf9OtMJgwYh -/WA9rjLA0u6NpvDntIJ8CsxwyXmA+P5M9zWEGYox+wrZ13+b8KKaa8MFSu1BYBQw -0aoRQm7TIwIEC8Zl3d1Sd9qBa7Ko+gE4uZbqKmxnl4mUnrzhVNXkanjvSr0rmj1A -fsbAddJu+2gw7OyLnflJNZoaLNmzlTnVHpL3prllL+U9bTpITAjc5CgSKL59NVzq -4BZ+Extq1z7XnvwtdbLBFNUjA9tbbws+eC8N3jONFrdI54OagQ97wUNNVQQXOEpR -1VmiiXTTn74eS9fGbbeIJG9gkaSChVtWQbzQRKtqE77RLFi3EjNYsjdj3BP1lB0/ -QFH1T/U67cjF68IeHRaVesd+QnGTbksVtzDfqu1XhUisHWrdOWnk4Xl4vs4Fv6EM -94B7IWcnMFk= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIEDzCCAvegAwIBAgIBADANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJVUzEl -MCMGA1UEChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UECxMp -U3RhcmZpZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQw -NjI5MTczOTE2WhcNMzQwNjI5MTczOTE2WjBoMQswCQYDVQQGEwJVUzElMCMGA1UE -ChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UECxMpU3RhcmZp -ZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEgMA0GCSqGSIb3 -DQEBAQUAA4IBDQAwggEIAoIBAQC3Msj+6XGmBIWtDBFk385N78gDGIc/oav7PKaf -8MOh2tTYbitTkPskpD6E8J7oX+zlJ0T1KKY/e97gKvDIr1MvnsoFAZMej2YcOadN -+lq2cwQlZut3f+dZxkqZJRRU6ybH838Z1TBwj6+wRir/resp7defqgSHo9T5iaU0 -X9tDkYI22WY8sbi5gv2cOj4QyDvvBmVmepsZGD3/cVE8MC5fvj13c7JdBmzDI1aa -K4UmkhynArPkPw2vCHmCuDY96pzTNbO8acr1zJ3o/WSNF4Azbl5KXZnJHoe0nRrA -1W4TNSNe35tfPe/W93bC6j67eA0cQmdrBNj41tpvi/JEoAGrAgEDo4HFMIHCMB0G -A1UdDgQWBBS/X7fRzt0fhvRbVazc1xDCDqmI5zCBkgYDVR0jBIGKMIGHgBS/X7fR -zt0fhvRbVazc1xDCDqmI56FspGowaDELMAkGA1UEBhMCVVMxJTAjBgNVBAoTHFN0 -YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xMjAwBgNVBAsTKVN0YXJmaWVsZCBD -bGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8w -DQYJKoZIhvcNAQEFBQADggEBAAWdP4id0ckaVaGsafPzWdqbAYcaT1epoXkJKtv3 -L7IezMdeatiDh6GX70k1PncGQVhiv45YuApnP+yz3SFmH8lU+nLMPUxA2IGvd56D -eruix/U0F47ZEUD0/CwqTRV/p2JdLiXTAAsgGh1o+Re49L2L7ShZ3U0WixeDyLJl -xy16paq8U4Zt3VekyvggQQto8PT7dL5WXXp59fkdheMtlb71cZBDzI0fmgAKhynp -VSJYACPq4xJDKVtHCN2MQWplBqjlIapBtJUhlbl90TSrE9atvNziPTnNvT51cKEY -WQPJIrSPnNVeKtelttQKbfi3QBFGmh95DmK/D5fs4C8fF5Q= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIID3TCCAsWgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBjzELMAkGA1UEBhMCVVMx -EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoT -HFN0YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xMjAwBgNVBAMTKVN0YXJmaWVs -ZCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAw -MFoXDTM3MTIzMTIzNTk1OVowgY8xCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6 -b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFyZmllbGQgVGVj -aG5vbG9naWVzLCBJbmMuMTIwMAYDVQQDEylTdGFyZmllbGQgUm9vdCBDZXJ0aWZp -Y2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC -ggEBAL3twQP89o/8ArFvW59I2Z154qK3A2FWGMNHttfKPTUuiUP3oWmb3ooa/RMg -nLRJdzIpVv257IzdIvpy3Cdhl+72WoTsbhm5iSzchFvVdPtrX8WJpRBSiUZV9Lh1 -HOZ/5FSuS/hVclcCGfgXcVnrHigHdMWdSL5stPSksPNkN3mSwOxGXn/hbVNMYq/N -Hwtjuzqd+/x5AJhhdM8mgkBj87JyahkNmcrUDnXMN/uLicFZ8WJ/X7NfZTD4p7dN -dloedl40wOiWVpmKs/B/pM293DIxfJHP4F8R+GuqSVzRmZTRouNjWwl2tVZi4Ut0 -HZbUJtQIBFnQmA4O5t78w+wfkPECAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAO -BgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFHwMMh+n2TB/xH1oo2Kooc6rB1snMA0G -CSqGSIb3DQEBCwUAA4IBAQARWfolTwNvlJk7mh+ChTnUdgWUXuEok21iXQnCoKjU -sHU48TRqneSfioYmUeYs0cYtbpUgSpIB7LiKZ3sx4mcujJUDJi5DnUox9g61DLu3 -4jd/IroAow57UvtruzvE03lRTs2Q9GcHGcg8RnoNAX3FWOdt5oUwF5okxBDgBPfg -8n/Uqgr/Qh037ZTlZFkSIHc40zI+OIF1lnP6aI+xy84fxez6nH7PfrHxBy22/L/K -pL/QlwVKvOoYKAKQvVR4CSFx09F9HdkWsKlhPdAKACL8x3vLCWRFCztAgfd9fDL1 -mMpYjn0q7pBZc2T5NnReJaH1ZgUufzkVqSr7UIuOhWn0 ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIID7zCCAtegAwIBAgIBADANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UEBhMCVVMx -EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoT -HFN0YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xOzA5BgNVBAMTMlN0YXJmaWVs -ZCBTZXJ2aWNlcyBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5 -MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgZgxCzAJBgNVBAYTAlVTMRAwDgYD -VQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFy -ZmllbGQgVGVjaG5vbG9naWVzLCBJbmMuMTswOQYDVQQDEzJTdGFyZmllbGQgU2Vy -dmljZXMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZI -hvcNAQEBBQADggEPADCCAQoCggEBANUMOsQq+U7i9b4Zl1+OiFOxHz/Lz58gE20p -OsgPfTz3a3Y4Y9k2YKibXlwAgLIvWX/2h/klQ4bnaRtSmpDhcePYLQ1Ob/bISdm2 -8xpWriu2dBTrz/sm4xq6HZYuajtYlIlHVv8loJNwU4PahHQUw2eeBGg6345AWh1K -Ts9DkTvnVtYAcMtS7nt9rjrnvDH5RfbCYM8TWQIrgMw0R9+53pBlbQLPLJGmpufe -hRhJfGZOozptqbXuNC66DQO4M99H67FrjSXZm86B0UVGMpZwh94CDklDhbZsc7tk -6mFBrMnUVN+HL8cisibMn1lUaJ/8viovxFUcdUBgF4UCVTmLfwUCAwEAAaNCMEAw -DwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJxfAN+q -AdcwKziIorhtSpzyEZGDMA0GCSqGSIb3DQEBCwUAA4IBAQBLNqaEd2ndOxmfZyMI -bw5hyf2E3F/YNoHN2BtBLZ9g3ccaaNnRbobhiCPPE95Dz+I0swSdHynVv/heyNXB -ve6SbzJ08pGCL72CQnqtKrcgfU28elUSwhXqvfdqlS5sdJ/PHLTyxQGjhdByPq1z -qwubdQxtRbeOlKyWN7Wg0I8VRw7j6IPdj/3vQQF3zCepYoUz8jcI73HPdwbeyBkd -iEDPfUYd/x7H4c7/I9vG+o1VTqkC50cRRj70/b17KSa7qWFiNyi2LSr2EIZkyXCn -0q23KXB56jzaYyWf/Wi3MOxw+3WKt21gZ7IeyLnp2KhvAotnDU0mV3HaIPzBSlCN -sSi6 ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIHyTCCBbGgAwIBAgIBATANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJJTDEW -MBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwg -Q2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNh -dGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0NjM2WhcNMzYwOTE3MTk0NjM2WjB9 -MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMi -U2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMgU3Rh -cnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUA -A4ICDwAwggIKAoICAQDBiNsJvGxGfHiflXu1M5DycmLWwTYgIiRezul38kMKogZk -pMyONvg45iPwbm2xPN1yo4UcodM9tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rf -OQVSWff0G0ZDpNKFhdLDcfN1YjS6LIp/Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/C -Ji/6tRYccjV3yjxd5srhJosaNnZcAdt0FCX+7bWgiA/deMotHweXMAEtcnn6RtYT -Kqi5pquDSR3l8u/d5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt2PZE4XNi -HzvEvqBTViVsUQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMM -Av+Z6+hsTXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w -+2OqqGwaVLRcJXrJosmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+ -Gkhpi8KWTRoSsmkXwQqQ1vp5Iki/untp+HDH+no32NgN0nZPV/+Qt+OR0t3vwmC3 -Zzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVcUjyJthkqcwEKDwOzEmDyei+B -26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT37uMdBNSSwID -AQABo4ICUjCCAk4wDAYDVR0TBAUwAwEB/zALBgNVHQ8EBAMCAa4wHQYDVR0OBBYE -FE4L7xqkQFulF2mHMMo0aEPQQa7yMGQGA1UdHwRdMFswLKAqoCiGJmh0dHA6Ly9j -ZXJ0LnN0YXJ0Y29tLm9yZy9zZnNjYS1jcmwuY3JsMCugKaAnhiVodHRwOi8vY3Js -LnN0YXJ0Y29tLm9yZy9zZnNjYS1jcmwuY3JsMIIBXQYDVR0gBIIBVDCCAVAwggFM -BgsrBgEEAYG1NwEBATCCATswLwYIKwYBBQUHAgEWI2h0dHA6Ly9jZXJ0LnN0YXJ0 -Y29tLm9yZy9wb2xpY3kucGRmMDUGCCsGAQUFBwIBFilodHRwOi8vY2VydC5zdGFy -dGNvbS5vcmcvaW50ZXJtZWRpYXRlLnBkZjCB0AYIKwYBBQUHAgIwgcMwJxYgU3Rh -cnQgQ29tbWVyY2lhbCAoU3RhcnRDb20pIEx0ZC4wAwIBARqBl0xpbWl0ZWQgTGlh -YmlsaXR5LCByZWFkIHRoZSBzZWN0aW9uICpMZWdhbCBMaW1pdGF0aW9ucyogb2Yg -dGhlIFN0YXJ0Q29tIENlcnRpZmljYXRpb24gQXV0aG9yaXR5IFBvbGljeSBhdmFp -bGFibGUgYXQgaHR0cDovL2NlcnQuc3RhcnRjb20ub3JnL3BvbGljeS5wZGYwEQYJ -YIZIAYb4QgEBBAQDAgAHMDgGCWCGSAGG+EIBDQQrFilTdGFydENvbSBGcmVlIFNT -TCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTANBgkqhkiG9w0BAQUFAAOCAgEAFmyZ -9GYMNPXQhV59CuzaEE44HF7fpiUFS5Eyweg78T3dRAlbB0mKKctmArexmvclmAk8 -jhvh3TaHK0u7aNM5Zj2gJsfyOZEdUauCe37Vzlrk4gNXcGmXCPleWKYK34wGmkUW -FjgKXlf2Ysd6AgXmvB618p70qSmD+LIU424oh0TDkBreOKk8rENNZEXO3SipXPJz -ewT4F+irsfMuXGRuczE6Eri8sxHkfY+BUZo7jYn0TZNmezwD7dOaHZrzZVD1oNB1 -ny+v8OqCQ5j4aZyJecRDjkZy42Q2Eq/3JR44iZB3fsNrarnDy0RLrHiQi+fHLB5L -EUTINFInzQpdn4XBidUaePKVEFMy3YCEZnXZtWgo+2EuvoSoOMCZEoalHmdkrQYu -L6lwhceWD3yJZfWOQ1QOq92lgDmUYMA0yZZwLKMS9R9Ie70cfmu3nZD0Ijuu+Pwq -yvqCUqDvr0tVk+vBtfAii6w0TiYiBKGHLHVKt+V9E9e4DGTANtLJL4YSjCMJwRuC -O3NJo2pXh5Tl1njFmUNj403gdy3hZZlyaQQaRwnmDwFWJPsfvw55qVguucQJAX6V -um0ABj6y6koQOdjQK/W/7HW/lwLFCRsI3FU34oH7N4RDYiDK51ZLZer+bMEkkySh -NOsF/5oirpt9P/FlUQqmMGqz9IgcgA38corog14= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIHhzCCBW+gAwIBAgIBLTANBgkqhkiG9w0BAQsFADB9MQswCQYDVQQGEwJJTDEW -MBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwg -Q2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNh -dGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0NjM3WhcNMzYwOTE3MTk0NjM2WjB9 -MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMi -U2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMgU3Rh -cnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUA -A4ICDwAwggIKAoICAQDBiNsJvGxGfHiflXu1M5DycmLWwTYgIiRezul38kMKogZk -pMyONvg45iPwbm2xPN1yo4UcodM9tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rf -OQVSWff0G0ZDpNKFhdLDcfN1YjS6LIp/Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/C -Ji/6tRYccjV3yjxd5srhJosaNnZcAdt0FCX+7bWgiA/deMotHweXMAEtcnn6RtYT -Kqi5pquDSR3l8u/d5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt2PZE4XNi -HzvEvqBTViVsUQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMM -Av+Z6+hsTXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w -+2OqqGwaVLRcJXrJosmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+ -Gkhpi8KWTRoSsmkXwQqQ1vp5Iki/untp+HDH+no32NgN0nZPV/+Qt+OR0t3vwmC3 -Zzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVcUjyJthkqcwEKDwOzEmDyei+B -26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT37uMdBNSSwID -AQABo4ICEDCCAgwwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYD -VR0OBBYEFE4L7xqkQFulF2mHMMo0aEPQQa7yMB8GA1UdIwQYMBaAFE4L7xqkQFul -F2mHMMo0aEPQQa7yMIIBWgYDVR0gBIIBUTCCAU0wggFJBgsrBgEEAYG1NwEBATCC -ATgwLgYIKwYBBQUHAgEWImh0dHA6Ly93d3cuc3RhcnRzc2wuY29tL3BvbGljeS5w -ZGYwNAYIKwYBBQUHAgEWKGh0dHA6Ly93d3cuc3RhcnRzc2wuY29tL2ludGVybWVk -aWF0ZS5wZGYwgc8GCCsGAQUFBwICMIHCMCcWIFN0YXJ0IENvbW1lcmNpYWwgKFN0 -YXJ0Q29tKSBMdGQuMAMCAQEagZZMaW1pdGVkIExpYWJpbGl0eSwgcmVhZCB0aGUg -c2VjdGlvbiAqTGVnYWwgTGltaXRhdGlvbnMqIG9mIHRoZSBTdGFydENvbSBDZXJ0 -aWZpY2F0aW9uIEF1dGhvcml0eSBQb2xpY3kgYXZhaWxhYmxlIGF0IGh0dHA6Ly93 -d3cuc3RhcnRzc2wuY29tL3BvbGljeS5wZGYwEQYJYIZIAYb4QgEBBAQDAgAHMDgG -CWCGSAGG+EIBDQQrFilTdGFydENvbSBGcmVlIFNTTCBDZXJ0aWZpY2F0aW9uIEF1 -dGhvcml0eTANBgkqhkiG9w0BAQsFAAOCAgEAjo/n3JR5fPGFf59Jb2vKXfuM/gTF -wWLRfUKKvFO3lANmMD+x5wqnUCBVJX92ehQN6wQOQOY+2IirByeDqXWmN3PH/UvS -Ta0XQMhGvjt/UfzDtgUx3M2FIk5xt/JxXrAaxrqTi3iSSoX4eA+D/i+tLPfkpLst -0OcNOrg+zvZ49q5HJMqjNTbOx8aHmNrs++myziebiMMEofYLWWivydsQD032ZGNc -pRJvkrKTlMeIFw6Ttn5ii5B/q06f/ON1FE8qMt9bDeD1e5MNq6HPh+GlBEXoPBKl -CcWw0bdT82AUuoVpaiF8H3VhFyAXe2w7QSlc4axa0c2Mm+tgHRns9+Ww2vl5GKVF -P0lDV9LdJNUso/2RjSe15esUBppMeyG7Oq0wBhjA2MFrLH9ZXF2RsXAiV+uKa0hK -1Q8p7MZAwC+ITGgBF3f0JBlPvfrhsiAhS90a2Cl9qrjeVOwhVYBsHvUwyKMQ5bLm -KhQxw4UtjJixhlpPiVktucf3HMiKf8CdBUrmQk9io20ppB+Fq9vlgcitKj1MXVuE -JnHEhV5xJMqlG2zYYdMa4FTbzrqpMrUi9nNBCV24F10OD5mQ1kfabwo6YigUZ4LZ -8dCAWZvLMdibD4x3TrVoivJs9iQOLWxwxXPR3hTQcY+203sC9uO41Alua551hDnm -fyWl8kgAwKQB2j8= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIFYzCCA0ugAwIBAgIBOzANBgkqhkiG9w0BAQsFADBTMQswCQYDVQQGEwJJTDEW -MBQGA1UEChMNU3RhcnRDb20gTHRkLjEsMCoGA1UEAxMjU3RhcnRDb20gQ2VydGlm -aWNhdGlvbiBBdXRob3JpdHkgRzIwHhcNMTAwMTAxMDEwMDAxWhcNMzkxMjMxMjM1 -OTAxWjBTMQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRkLjEsMCoG -A1UEAxMjU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgRzIwggIiMA0G -CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2iTZbB7cgNr2Cu+EWIAOVeq8Oo1XJ -JZlKxdBWQYeQTSFgpBSHO839sj60ZwNq7eEPS8CRhXBF4EKe3ikj1AENoBB5uNsD -vfOpL9HG4A/LnooUCri99lZi8cVytjIl2bLzvWXFDSxu1ZJvGIsAQRSCb0AgJnoo -D/Uefyf3lLE3PbfHkffiAez9lInhzG7TNtYKGXmu1zSCZf98Qru23QumNK9LYP5/ -Q0kGi4xDuFby2X8hQxfqp0iVAXV16iulQ5XqFYSdCI0mblWbq9zSOdIxHWDirMxW -RST1HFSr7obdljKF+ExP6JV2tgXdNiNnvP8V4so75qbsO+wmETRIjfaAKxojAuuK -HDp2KntWFhxyKrOq42ClAJ8Em+JvHhRYW6Vsi1g8w7pOOlz34ZYrPu8HvKTlXcxN -nw3h3Kq74W4a7I/htkxNeXJdFzULHdfBR9qWJODQcqhaX2YtENwvKhOuJv4KHBnM -0D4LnMgJLvlblnpHnOl68wVQdJVznjAJ85eCXuaPOQgeWeU1FEIT/wCc976qUM/i -UUjXuG+v+E5+M5iSFGI6dWPPe/regjupuznixL0sAA7IF6wT700ljtizkC+p2il9 -Ha90OrInwMEePnWjFqmveiJdnxMaz6eg6+OGCtP95paV1yPIN93EfKo2rJgaErHg -TuixO/XWb/Ew1wIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQE -AwIBBjAdBgNVHQ4EFgQUS8W0QGutHLOlHGVuRjaJhwUMDrYwDQYJKoZIhvcNAQEL -BQADggIBAHNXPyzVlTJ+N9uWkusZXn5T50HsEbZH77Xe7XRcxfGOSeD8bpkTzZ+K -2s06Ctg6Wgk/XzTQLwPSZh0avZyQN8gMjgdalEVGKua+etqhqaRpEpKwfTbURIfX -UfEpY9Z1zRbkJ4kd+MIySP3bmdCPX1R0zKxnNBFi2QwKN4fRoxdIjtIXHfbX/dtl -6/2o1PXWT6RbdejF0mCy2wl+JYt7ulKSnj7oxXehPOBKc2thz4bcQ///If4jXSRK -9dNtD2IEBVeC2m6kMyV5Sy5UGYvMLD0w6dEG/+gyRr61M3Z3qAFdlsHB1b6uJcDJ -HgoJIIihDsnzb02CVAAgp9KP5DlUFy6NHrgbuxu9mk47EDTcnIhT76IxW1hPkWLI -wpqazRVdOKnWvvgTtZ8SafJQYqz7Fzf07rh1Z2AQ+4NQ+US1dZxAF7L+/XldblhY -XzD8AK6vM8EOTmy6p6ahfzLbOOCxchcKK5HsamMm7YnUeMx0HgX4a/6ManY5Ka5l -IxKVCCIcl85bBu4M4ru8H0ST9tg4RQUh7eStqxK2A6RCLi3ECToDZ2mEmuFZkIoo -hdVddLHRDiBYmxOlsGOm7XtH/UVVMKTumtTm4ofvmMkyghEpIrwACjFeLQ/Ajulr -so8uBtjRkcfGEvRM/TAXw8HaOFvjqermobp573PYtlNXLfbQ4ddI ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIFujCCA6KgAwIBAgIJALtAHEP1Xk+wMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNV -BAYTAkNIMRUwEwYDVQQKEwxTd2lzc1NpZ24gQUcxHzAdBgNVBAMTFlN3aXNzU2ln -biBHb2xkIENBIC0gRzIwHhcNMDYxMDI1MDgzMDM1WhcNMzYxMDI1MDgzMDM1WjBF -MQswCQYDVQQGEwJDSDEVMBMGA1UEChMMU3dpc3NTaWduIEFHMR8wHQYDVQQDExZT -d2lzc1NpZ24gR29sZCBDQSAtIEcyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -CgKCAgEAr+TufoskDhJuqVAtFkQ7kpJcyrhdhJJCEyq8ZVeCQD5XJM1QiyUqt2/8 -76LQwB8CJEoTlo8jE+YoWACjR8cGp4QjK7u9lit/VcyLwVcfDmJlD909Vopz2q5+ -bbqBHH5CjCA12UNNhPqE21Is8w4ndwtrvxEvcnifLtg+5hg3Wipy+dpikJKVyh+c -6bM8K8vzARO/Ws/BtQpgvd21mWRTuKCWs2/iJneRjOBiEAKfNA+k1ZIzUd6+jbqE -emA8atufK+ze3gE/bk3lUIbLtK/tREDFylqM2tIrfKjuvqblCqoOpd8FUrdVxyJd -MmqXl2MT28nbeTZ7hTpKxVKJ+STnnXepgv9VHKVxaSvRAiTysybUa9oEVeXBCsdt -MDeQKuSeFDNeFhdVxVu1yzSJkvGdJo+hB9TGsnhQ2wwMC3wLjEHXuendjIj3o02y -MszYF9rNt85mndT9Xv+9lz4pded+p2JYryU0pUHHPbwNUMoDAw8IWh+Vc3hiv69y -FGkOpeUDDniOJihC8AcLYiAQZzlG+qkDzAQ4embvIIO1jEpWjpEA/I5cgt6IoMPi -aG59je883WX0XaxR7ySArqpWl2/5rX3aYT+YdzylkbYcjCbaZaIJbcHiVOO5ykxM -gI93e2CaHt+28kgeDrpOVG2Y4OGiGqJ3UM/EY5LsRxmd6+ZrzsECAwEAAaOBrDCB -qTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUWyV7 -lqRlUX64OfPAeGZe6Drn8O4wHwYDVR0jBBgwFoAUWyV7lqRlUX64OfPAeGZe6Drn -8O4wRgYDVR0gBD8wPTA7BglghXQBWQECAQEwLjAsBggrBgEFBQcCARYgaHR0cDov -L3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIBACe6 -45R88a7A3hfm5djV9VSwg/S7zV4Fe0+fdWavPOhWfvxyeDgD2StiGwC5+OlgzczO -UYrHUDFu4Up+GC9pWbY9ZIEr44OE5iKHjn3g7gKZYbge9LgriBIWhMIxkziWMaa5 -O1M/wySTVltpkuzFwbs4AOPsF6m43Md8AYOfMke6UiI0HTJ6CVanfCU2qT1L2sCC -bwq7EsiHSycR+R4tx5M/nttfJmtS2S6K8RTGRI0Vqbe/vd6mGu6uLftIdxf+u+yv -GPUqUfA5hJeVbG4bwyvEdGB5JbAKJ9/fXtI5z0V9QkvfsywexcZdylU6oJxpmo/a -77KwPJ+HbBIrZXAVUjEaJM9vMSNQH4xPjyPDdEFjHFWoFN0+4FFQz/EbMFYOkrCC -hdiDyyJkvC24JdVUorgG6q2SpCSgwYa1ShNqR88uC1aVVMvOmttqtKay20EIhid3 -92qgQmwLOM7XdVAyksLfKzAiSNDVQTglXaTpXZ/GlHXQRf0wl0OPkKsKx4ZzYEpp -Ld6leNcG2mqeSz53OiATIgHQv2ieY2BrNU0LbbqhPcCT4H8js1WtciVORvnSFu+w -ZMEBnunKoGqYDs/YYPIvSbjkQuE4NRb0yG5P94FW6LqjviOvrv1vA+ACOzB2+htt -Qc8Bsem4yWb02ybzOqR08kkkW8mw0FfB+j564ZfJ ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIFwTCCA6mgAwIBAgIITrIAZwwDXU8wDQYJKoZIhvcNAQEFBQAwSTELMAkGA1UE -BhMCQ0gxFTATBgNVBAoTDFN3aXNzU2lnbiBBRzEjMCEGA1UEAxMaU3dpc3NTaWdu -IFBsYXRpbnVtIENBIC0gRzIwHhcNMDYxMDI1MDgzNjAwWhcNMzYxMDI1MDgzNjAw -WjBJMQswCQYDVQQGEwJDSDEVMBMGA1UEChMMU3dpc3NTaWduIEFHMSMwIQYDVQQD -ExpTd2lzc1NpZ24gUGxhdGludW0gQ0EgLSBHMjCCAiIwDQYJKoZIhvcNAQEBBQAD -ggIPADCCAgoCggIBAMrfogLi2vj8Bxax3mCq3pZcZB/HL37PZ/pEQtZ2Y5Wu669y -IIpFR4ZieIbWIDkm9K6j/SPnpZy1IiEZtzeTIsBQnIJ71NUERFzLtMKfkr4k2Htn -IuJpX+UFeNSH2XFwMyVTtIc7KZAoNppVRDBopIOXfw0enHb/FZ1glwCNioUD7IC+ -6ixuEFGSzH7VozPY1kneWCqv9hbrS3uQMpe5up1Y8fhXSQQeol0GcN1x2/ndi5ob -jM89o03Oy3z2u5yg+gnOI2Ky6Q0f4nIoj5+saCB9bzuohTEJfwvH6GXp43gOCWcw -izSC+13gzJ2BbWLuCB4ELE6b7P6pT1/9aXjvCR+htL/68++QHkwFix7qepF6w9fl -+zC8bBsQWJj3Gl/QKTIDE0ZNYWqFTFJ0LwYfexHihJfGmfNtf9dng34TaNhxKFrY -zt3oEBSa/m0jh26OWnA81Y0JAKeqvLAxN23IhBQeW71FYyBrS3SMvds6DsHPWhaP -pZjydomyExI7C3d3rLvlPClKknLKYRorXkzig3R3+jVIeoVNjZpTxN94ypeRSCtF -KwH3HBqi7Ri6Cr2D+m+8jVeTO9TUps4e8aCxzqv9KyiaTxvXw3LbpMS/XUz13XuW -ae5ogObnmLo2t/5u7Su9IPhlGdpVCX4l3P5hYnL5fhgC72O00Puv5TtjjGePAgMB -AAGjgawwgakwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0O -BBYEFFCvzAeHFUdvOMW0ZdHelarp35zMMB8GA1UdIwQYMBaAFFCvzAeHFUdvOMW0 -ZdHelarp35zMMEYGA1UdIAQ/MD0wOwYJYIV0AVkBAQEBMC4wLAYIKwYBBQUHAgEW -IGh0dHA6Ly9yZXBvc2l0b3J5LnN3aXNzc2lnbi5jb20vMA0GCSqGSIb3DQEBBQUA -A4ICAQAIhab1Fgz8RBrBY+D5VUYI/HAcQiiWjrfFwUF1TglxeeVtlspLpYhg0DB0 -uMoI3LQwnkAHFmtllXcBrqS3NQuB2nEVqXQXOHtYyvkv+8Bldo1bAbl93oI9ZLi+ -FHSjClTTLJUYFzX1UWs/j6KWYTl4a0vlpqD4U99REJNi54Av4tHgvI42Rncz7Lj7 -jposiU0xEQ8mngS7twSNC/K5/FqdOxa3L8iYq/6KUFkuozv8KV2LwUvJ4ooTHbG/ -u0IdUt1O2BReEMYxB+9xJ/cbOQncguqLs5WGXv312l0xpuAxtpTmREl0xRbl9x8D -YSjFyMsSoEJL+WuICI20MhjzdZ/EfwBPBZWcoxcCw7NTm6ogOSkrZvqdr16zktK1 -puEa+S1BaYEUtLS17Yk9zvupnTVCRLEcFHOBzyoBNZox1S2PbYTfgE1X4z/FhHXa -icYwu+uPyyIIoK6q8QNsOktNCaUOcsZWayFCTiMlFGiudgp8DAdwZPmaL/YFOSbG -DI8Zf0NebvRbFS/bYV3mZy8/CJT5YLSYMdp08YSTcU1f+2BY0fvEwW2JorsgH51x -kcsymxM9Pn2SUjWskpSi0xjCfMfqr3YFFt1nJ8J+HAciIfNAChs0B0QTwoRqjt8Z -Wr9/6x3iGjjRXK9HkmuAtTClyY3YqzGBH9/CZjfTk6mFhnll0g== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIFvTCCA6WgAwIBAgIITxvUL1S7L0swDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UE -BhMCQ0gxFTATBgNVBAoTDFN3aXNzU2lnbiBBRzEhMB8GA1UEAxMYU3dpc3NTaWdu -IFNpbHZlciBDQSAtIEcyMB4XDTA2MTAyNTA4MzI0NloXDTM2MTAyNTA4MzI0Nlow -RzELMAkGA1UEBhMCQ0gxFTATBgNVBAoTDFN3aXNzU2lnbiBBRzEhMB8GA1UEAxMY -U3dpc3NTaWduIFNpbHZlciBDQSAtIEcyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8A -MIICCgKCAgEAxPGHf9N4Mfc4yfjDmUO8x/e8N+dOcbpLj6VzHVxumK4DV644N0Mv -Fz0fyM5oEMF4rhkDKxD6LHmD9ui5aLlV8gREpzn5/ASLHvGiTSf5YXu6t+WiE7br -YT7QbNHm+/pe7R20nqA1W6GSy/BJkv6FCgU+5tkL4k+73JU3/JHpMjUi0R86TieF -nbAVlDLaYQ1HTWBCrpJH6INaUFjpiou5XaHc3ZlKHzZnu0jkg7Y360g6rw9njxcH -6ATK72oxh9TAtvmUcXtnZLi2kUpCe2UuMGoM9ZDulebyzYLs2aFK7PayS+VFheZt -eJMELpyCbTapxDFkH4aDCyr0NQp4yVXPQbBH6TCfmb5hqAaEuSh6XzjZG6k4sIN/ -c8HDO0gqgg8hm7jMqDXDhBuDsz6+pJVpATqJAHgE2cn0mRmrVn5bi4Y5FZGkECwJ -MoBgs5PAKrYYC51+jUnyEEp/+dVGLxmSo5mnJqy7jDzmDrxHB9xzUfFwZC8I+bRH -HTBsROopN4WSaGa8gzj+ezku01DwH/teYLappvonQfGbGHLy9YR0SslnxFSuSGTf -jNFusB3hB48IHpmccelM2KX3RxIfdNFRnobzwqIjQAtz20um53MGjMGg6cFZrEb6 -5i/4z3GcRm25xBWNOHkDRUjvxF3XCO6HOSKGsg0PWEP3calILv3q1h8CAwEAAaOB -rDCBqTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU -F6DNweRBtjpbO8tFnb0cwpj6hlgwHwYDVR0jBBgwFoAUF6DNweRBtjpbO8tFnb0c -wpj6hlgwRgYDVR0gBD8wPTA7BglghXQBWQEDAQEwLjAsBggrBgEFBQcCARYgaHR0 -cDovL3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIB -AHPGgeAn0i0P4JUw4ppBf1AsX19iYamGamkYDHRJ1l2E6kFSGG9YrVBWIGrGvShp -WJHckRE1qTodvBqlYJ7YH39FkWnZfrt4csEGDyrOj4VwYaygzQu4OSlWhDJOhrs9 -xCrZ1x9y7v5RoSJBsXECYxqCsGKrXlcSH9/L3XWgwF15kIwb4FDm3jH+mHtwX6WQ -2K34ArZv02DdQEsixT2tOnqfGhpHkXkzuoLcMmkDlm4fS/Bx/uNncqCxv1yL5PqZ -IseEuRuNI5c/7SXgz2W79WEE790eslpBIlqhn10s6FvJbakMDHiqYMZWjwFaDGi8 -aRl5xB9+lwW/xekkUV7U1UtT7dkjWjYDZaPBA61BMPNGG4WQr2W11bHkFlt4dR2X -em1ZqSqPe97Dh4kQmUlzeMg9vVE1dCrV8X5pGyq7O70luJpaPXJhkGaH7gzWTdQR -dAtq/gsD/KNVV4n+SsuuWxcFyPKNIzFTONItaj+CuY0IavdeQXRuwxF+B6wpYJE/ -OMpXEA29MC/HpeZBoNquBYeaoKRlbEwJDIm6uNO5wJOKMPqN5ZprFQFOZ6raYlY+ -hAhm0sQ2fac+EPyI4NSA5QC9qvNOBqN6avlicuMJT+ubDgEj8Z+7fNzcbBGXJbLy -tGMU0gYqZ4yD9c7qB9iaah7s5Aq7KkzrCWA5zspi2C5u ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIF2TCCA8GgAwIBAgIQXAuFXAvnWUHfV8w/f52oNjANBgkqhkiG9w0BAQUFADBk -MQswCQYDVQQGEwJjaDERMA8GA1UEChMIU3dpc3Njb20xJTAjBgNVBAsTHERpZ2l0 -YWwgQ2VydGlmaWNhdGUgU2VydmljZXMxGzAZBgNVBAMTElN3aXNzY29tIFJvb3Qg -Q0EgMTAeFw0wNTA4MTgxMjA2MjBaFw0yNTA4MTgyMjA2MjBaMGQxCzAJBgNVBAYT -AmNoMREwDwYDVQQKEwhTd2lzc2NvbTElMCMGA1UECxMcRGlnaXRhbCBDZXJ0aWZp -Y2F0ZSBTZXJ2aWNlczEbMBkGA1UEAxMSU3dpc3Njb20gUm9vdCBDQSAxMIICIjAN -BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0LmwqAzZuz8h+BvVM5OAFmUgdbI9 -m2BtRsiMMW8Xw/qabFbtPMWRV8PNq5ZJkCoZSx6jbVfd8StiKHVFXqrWW/oLJdih -FvkcxC7mlSpnzNApbjyFNDhhSbEAn9Y6cV9Nbc5fuankiX9qUvrKm/LcqfmdmUc/ -TilftKaNXXsLmREDA/7n29uj/x2lzZAeAR81sH8A25Bvxn570e56eqeqDFdvpG3F -EzuwpdntMhy0XmeLVNxzh+XTF3xmUHJd1BpYwdnP2IkCb6dJtDZd0KTeByy2dbco -kdaXvij1mB7qWybJvbCXc9qukSbraMH5ORXWZ0sKbU/Lz7DkQnGMU3nn7uHbHaBu -HYwadzVcFh4rUx80i9Fs/PJnB3r1re3WmquhsUvhzDdf/X/NTa64H5xD+SpYVUNF -vJbNcA78yeNmuk6NO4HLFWR7uZToXTNShXEuT46iBhFRyePLoW4xCGQMwtI89Tbo -19AOeCMgkckkKmUpWyL3Ic6DXqTz3kvTaI9GdVyDCW4pa8RwjPWd1yAv/0bSKzjC -L3UcPX7ape8eYIVpQtPM+GP+HkM5haa2Y0EQs3MevNP6yn0WR+Kn1dCjigoIlmJW -bjTb2QK5MHXjBNLnj8KwEUAKrNVxAmKLMb7dxiNYMUJDLXT5xp6mig/p/r+D5kNX -JLrvRjSq1xIBOO0CAwEAAaOBhjCBgzAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0hBBYw -FDASBgdghXQBUwABBgdghXQBUwABMBIGA1UdEwEB/wQIMAYBAf8CAQcwHwYDVR0j -BBgwFoAUAyUv3m+CATpcLNwroWm1Z9SM0/0wHQYDVR0OBBYEFAMlL95vggE6XCzc -K6FptWfUjNP9MA0GCSqGSIb3DQEBBQUAA4ICAQA1EMvspgQNDQ/NwNurqPKIlwzf -ky9NfEBWMXrrpA9gzXrzvsMnjgM+pN0S734edAY8PzHyHHuRMSG08NBsl9Tpl7Ik -Vh5WwzW9iAUPWxAaZOHHgjD5Mq2eUCzneAXQMbFamIp1TpBcahQq4FJHgmDmHtqB -sfsUC1rxn9KVuj7QG9YVHaO+htXbD8BJZLsuUBlL0iT43R4HVtA4oJVwIHaM190e -3p9xxCPvgxNcoyQVTSlAPGrEqdi3pkSlDfTgnXceQHAm/NrZNuR55LU/vJtlvrsR -ls/bxig5OgjOR1tTWsWZ/l2p3e9M1MalrQLmjAcSHm8D0W+go/MpvRLHUKKwf4ip -mXeascClOS5cfGniLLDqN2qk4Vrh9VDlg++luyqI54zb/W1elxmofmZ1a3Hqv7HH -b6D0jqTsNFFbjCYDcKF31QESVwA12yPeDooomf2xEG9L/zgtYE4snOtnta1J7ksf -rK/7DZBaZmBwXarNeNQk7shBoJMBkpxqnvy5JMWzFYJ+vq6VK+uxwNrjAWALXmms -hFZhvnEX/h0TD/7Gh0Xp/jKgGg0TpJRVcaUWi7rKibCyx/yP2FS1k2Kdzs9Z+z0Y -zirLNRWCXf9UIltxUvu3yf5gmwBBZPCqKuy2QkPOiWaByIufOVQDJdMWNY6E0F/6 -MBr1mmz0DlP5OlvRHA== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIF2TCCA8GgAwIBAgIQHp4o6Ejy5e/DfEoeWhhntjANBgkqhkiG9w0BAQsFADBk -MQswCQYDVQQGEwJjaDERMA8GA1UEChMIU3dpc3Njb20xJTAjBgNVBAsTHERpZ2l0 -YWwgQ2VydGlmaWNhdGUgU2VydmljZXMxGzAZBgNVBAMTElN3aXNzY29tIFJvb3Qg -Q0EgMjAeFw0xMTA2MjQwODM4MTRaFw0zMTA2MjUwNzM4MTRaMGQxCzAJBgNVBAYT -AmNoMREwDwYDVQQKEwhTd2lzc2NvbTElMCMGA1UECxMcRGlnaXRhbCBDZXJ0aWZp -Y2F0ZSBTZXJ2aWNlczEbMBkGA1UEAxMSU3dpc3Njb20gUm9vdCBDQSAyMIICIjAN -BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAlUJOhJ1R5tMJ6HJaI2nbeHCOFvEr -jw0DzpPMLgAIe6szjPTpQOYXTKueuEcUMncy3SgM3hhLX3af+Dk7/E6J2HzFZ++r -0rk0X2s682Q2zsKwzxNoysjL67XiPS4h3+os1OD5cJZM/2pYmLcX5BtS5X4HAB1f -2uY+lQS3aYg5oUFgJWFLlTloYhyxCwWJwDaCFCE/rtuh/bxvHGCGtlOUSbkrRsVP -ACu/obvLP+DHVxxX6NZp+MEkUp2IVd3Chy50I9AU/SpHWrumnf2U5NGKpV+GY3aF -y6//SSj8gO1MedK75MDvAe5QQQg1I3ArqRa0jG6F6bYRzzHdUyYb3y1aSgJA/MTA -tukxGggo5WDDH8SQjhBiYEQN7Aq+VRhxLKX0srwVYv8c474d2h5Xszx+zYIdkeNL -6yxSNLCK/RJOlrDrcH+eOfdmQrGrrFLadkBXeyq96G4DsguAhYidDMfCd7Camlf0 -uPoTXGiTOmekl9AbmbeGMktg2M7v0Ax/lZ9vh0+Hio5fCHyqW/xavqGRn1V9TrAL -acywlKinh/LTSlDcX3KwFnUey7QYYpqwpzmqm59m2I2mbJYV4+by+PGDYmy7Velh -k6M99bFXi08jsJvllGov34zflVEpYKELKeRcVVi3qPyZ7iVNTA6z00yPhOgpD/0Q -VAKFyPnlw4vP5w8CAwEAAaOBhjCBgzAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0hBBYw -FDASBgdghXQBUwIBBgdghXQBUwIBMBIGA1UdEwEB/wQIMAYBAf8CAQcwHQYDVR0O -BBYEFE0mICKJS9PVpAqhb97iEoHF8TwuMB8GA1UdIwQYMBaAFE0mICKJS9PVpAqh -b97iEoHF8TwuMA0GCSqGSIb3DQEBCwUAA4ICAQAyCrKkG8t9voJXiblqf/P0wS4R -fbgZPnm3qKhyN2abGu2sEzsOv2LwnN+ee6FTSA5BesogpxcbtnjsQJHzQq0Qw1zv -/2BZf82Fo4s9SBwlAjxnffUy6S8w5X2lejjQ82YqZh6NM4OKb3xuqFp1mrjX2lhI -REeoTPpMSQpKwhI3qEAMw8jh0FcNlzKVxzqfl9NX+Ave5XLzo9v/tdhZsnPdTSpx -srpJ9csc1fV5yJmz/MFMdOO0vSk3FQQoHt5FRnDsr7p4DooqzgB53MBfGWcsa0vv -aGgLQ+OswWIJ76bdZWGgr4RVSJFSHMYlkSrQwSIjYVmvRRGFHQEkNI/Ps/8XciAT -woCqISxxOQ7Qj1zB09GOInJGTB2Wrk9xseEFKZZZ9LuedT3PDTcNYtsmjGOpI99n -Bjx8Oto0QuFmtEYE3saWmA9LSHokMnWRn6z3aOkquVVlzl1h0ydw2Df+n7mvoC5W -t6NlUe07qxS/TFED6F+KBZvuim6c779o+sjaC+NCydAXFJy3SuCvkychVSa1ZC+N -8f+mQAWFBVzKBxlcCxMoTFh/wqXvRdpg065lYZ1Tg3TCrvJcwhbtkj6EPnNgiLx2 -9CzP0H1907he0ZESEOnN3col49XtmS++dYFLJPlFRpTJKSFTnCZFqhMX5OfNeOI5 -wSsSnqaeG8XmDtkx2Q== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIF4DCCA8igAwIBAgIRAPL6ZOJ0Y9ON/RAdBB92ylgwDQYJKoZIhvcNAQELBQAw -ZzELMAkGA1UEBhMCY2gxETAPBgNVBAoTCFN3aXNzY29tMSUwIwYDVQQLExxEaWdp -dGFsIENlcnRpZmljYXRlIFNlcnZpY2VzMR4wHAYDVQQDExVTd2lzc2NvbSBSb290 -IEVWIENBIDIwHhcNMTEwNjI0MDk0NTA4WhcNMzEwNjI1MDg0NTA4WjBnMQswCQYD -VQQGEwJjaDERMA8GA1UEChMIU3dpc3Njb20xJTAjBgNVBAsTHERpZ2l0YWwgQ2Vy -dGlmaWNhdGUgU2VydmljZXMxHjAcBgNVBAMTFVN3aXNzY29tIFJvb3QgRVYgQ0Eg -MjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMT3HS9X6lds93BdY7Bx -UglgRCgzo3pOCvrY6myLURYaVa5UJsTMRQdBTxB5f3HSek4/OE6zAMaVylvNwSqD -1ycfMQ4jFrclyxy0uYAyXhqdk/HoPGAsp15XGVhRXrwsVgu42O+LgrQ8uMIkqBPH -oCE2G3pXKSinLr9xJZDzRINpUKTk4RtiGZQJo/PDvO/0vezbE53PnUgJUmfANykR -HvvSEaeFGHR55E+FFOtSN+KxRdjMDUN/rhPSays/p8LiqG12W0OfvrSdsyaGOx9/ -5fLoZigWJdBLlzin5M8J0TbDC77aO0RYjb7xnglrPvMyxyuHxuxenPaHZa0zKcQv -idm5y8kDnftslFGXEBuGCxobP/YCfnvUxVFkKJ3106yDgYjTdLRZncHrYTNaRdHL -OdAGalNgHa/2+2m8atwBz735j9m9W8E6X47aD0upm50qKGsaCnw8qyIL5XctcfaC -NYGu+HuB5ur+rPQam3Rc6I8k9l2dRsQs0h4rIWqDJ2dVSqTjyDKXZpBy2uPUZC5f -46Fq9mDU5zXNysRojddxyNMkM3OxbPlq4SjbX8Y96L5V5jcb7STZDxmPX2MYWFCB -UWVv8p9+agTnNCRxunZLWB4ZvRVgRaoMEkABnRDixzgHcgplwLa7JSnaFp6LNYth -7eVxV4O1PHGf40+/fh6Bn0GXAgMBAAGjgYYwgYMwDgYDVR0PAQH/BAQDAgGGMB0G -A1UdIQQWMBQwEgYHYIV0AVMCAgYHYIV0AVMCAjASBgNVHRMBAf8ECDAGAQH/AgED -MB0GA1UdDgQWBBRF2aWBbj2ITY1x0kbBbkUe88SAnTAfBgNVHSMEGDAWgBRF2aWB -bj2ITY1x0kbBbkUe88SAnTANBgkqhkiG9w0BAQsFAAOCAgEAlDpzBp9SSzBc1P6x -XCX5145v9Ydkn+0UjrgEjihLj6p7jjm02Vj2e6E1CqGdivdj5eu9OYLU43otb98T -PLr+flaYC/NUn81ETm484T4VvwYmneTwkLbUwp4wLh/vx3rEUMfqe9pQy3omywC0 -Wqu1kx+AiYQElY2NfwmTv9SoqORjbdlk5LgpWgi/UOGED1V7XwgiG/W9mR4U9s70 -WBCCswo9GcG/W6uqmdjyMb3lOGbcWAXH7WMaLgqXfIeTK7KK4/HsGOV1timH59yL -Gn602MnTihdsfSlEvoqq9X46Lmgxk7lq2prg2+kupYTNHAq4Sgj5nPFhJpiTt3tm -7JFe3VE/23MPrQRYCd0EApUKPtN236YQHoA96M2kZNEzx5LH4k5E4wnJTsJdhw4S -nr8PyQUQ3nqjsTzyP6WqJ3mtMX0f/fwZacXduT98zca0wjAefm6S139hdlqP65VN -vBFuIXxZN5nQBrz5Bm0yFqXZaajh3DyAHmBR3NdUIR7KYndP+tiPsys6DXhyyWhB -WkdKwqPrGtcKqzwyVcgKEZzfdNbwQBUdyLmPtTbFr/giuMod89a2GQ+fYWVq6nTI -fI/DT11lgh/ZDYnadXL77/FHZxOzyNEZiCcmmpl5fx7kLD977vHeTYuWl8PVP3wb -I+2ksx0WckNLIOFZfsLorSa/ovc= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUx -KzApBgNVBAoMIlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAd -BgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNl -YyBHbG9iYWxSb290IENsYXNzIDIwHhcNMDgxMDAxMTA0MDE0WhcNMzMxMDAxMjM1 -OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lzdGVtcyBFbnRlcnBy -aXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBDZW50 -ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDIwggEiMA0G -CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCqX9obX+hzkeXaXPSi5kfl82hVYAUd -AqSzm1nzHoqvNK38DcLZSBnuaY/JIPwhqgcZ7bBcrGXHX+0CfHt8LRvWurmAwhiC -FoT6ZrAIxlQjgeTNuUk/9k9uN0goOA/FvudocP05l03Sx5iRUKrERLMjfTlH6VJi -1hKTXrcxlkIF+3anHqP1wvzpesVsqXFP6st4vGCvx9702cu+fjOlbpSD8DT6Iavq -jnKgP6TeMFvvhk1qlVtDRKgQFRzlAVfFmPHmBiiRqiDFt1MmUUOyCxGVWOHAD3bZ -wI18gfNycJ5v/hqO2V81xrJvNHy+SE/iWjnX2J14np+GPgNeGYtEotXHAgMBAAGj -QjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS/ -WSA2AHmgoCJrjNXyYdK4LMuCSjANBgkqhkiG9w0BAQsFAAOCAQEAMQOiYQsfdOhy -NsZt+U2e+iKo4YFWz827n+qrkRk4r6p8FU3ztqONpfSO9kSpp+ghla0+AGIWiPAC -uvxhI+YzmzB6azZie60EI4RYZeLbK4rnJVM3YlNfvNoBYimipidx5joifsFvHZVw -IEoHNN/q/xWA5brXethbdXwFeilHfkCoMRN3zUA7tFFHei4R40cR3p1m0IvVVGb6 -g1XqfMIpiRvpb7PO4gWEyS8+eIVibslfwXhjdFjASBgMmTnrpMwatXlajRWc2BQN -9noHV8cigwUtPJslJj0Ys6lDfMjIq2SPDqO/nBudMNva0Bkuqjzx+zOAduTNrRlP -BSeOE6Fuwg== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUx -KzApBgNVBAoMIlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAd -BgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNl -YyBHbG9iYWxSb290IENsYXNzIDMwHhcNMDgxMDAxMTAyOTU2WhcNMzMxMDAxMjM1 -OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lzdGVtcyBFbnRlcnBy -aXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBDZW50 -ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwggEiMA0G -CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC9dZPwYiJvJK7genasfb3ZJNW4t/zN -8ELg63iIVl6bmlQdTQyK9tPPcPRStdiTBONGhnFBSivwKixVA9ZIw+A5OO3yXDw/ -RLyTPWGrTs0NvvAgJ1gORH8EGoel15YUNpDQSXuhdfsaa3Ox+M6pCSzyU9XDFES4 -hqX2iys52qMzVNn6chr3IhUciJFrf2blw2qAsCTz34ZFiP0Zf3WHHx+xGwpzJFu5 -ZeAsVMhg02YXP+HMVDNzkQI6pn97djmiH5a2OK61yJN0HZ65tOVgnS9W0eDrXltM -EnAMbEQgqxHY9Bn20pxSN+f6tsIxO0rUFJmtxxr1XV/6B7h8DR/Wgx6zAgMBAAGj -QjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS1 -A/d2O2GCahKqGFPrAyGUv/7OyjANBgkqhkiG9w0BAQsFAAOCAQEAVj3vlNW92nOy -WL6ukK2YJ5f+AbGwUgC4TeQbIXQbfsDuXmkqJa9c1h3a0nnJ85cp4IaH3gRZD/FZ -1GSFS5mvJQQeyUapl96Cshtwn5z2r3Ex3XsFpSzTucpH9sry9uetuUg/vBa3wW30 -6gmv7PO15wWeph6KU1HWk4HMdJP2udqmJQV0eVp+QD6CSyYRMG7hP0HHRwA11fXT -91Q+gT3aSWqas+8QPebrb9HIIkfLzM8BMZLZGOMivgkeGj5asuRrDFR6fUNOuIml -e9eiPZaGzPImNC1qkp2aGtAw4l1OBLBfiyB+d8E9lYLRRpo7PHi4b6HQDWSieB4p -TpPDpFQUWw== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIEqjCCA5KgAwIBAgIOSkcAAQAC5aBd1j8AUb8wDQYJKoZIhvcNAQEFBQAwdjEL -MAkGA1UEBhMCREUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxIjAgBgNV -BAsTGVRDIFRydXN0Q2VudGVyIENsYXNzIDMgQ0ExJTAjBgNVBAMTHFRDIFRydXN0 -Q2VudGVyIENsYXNzIDMgQ0EgSUkwHhcNMDYwMTEyMTQ0MTU3WhcNMjUxMjMxMjI1 -OTU5WjB2MQswCQYDVQQGEwJERTEcMBoGA1UEChMTVEMgVHJ1c3RDZW50ZXIgR21i -SDEiMCAGA1UECxMZVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMyBDQTElMCMGA1UEAxMc -VEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMyBDQSBJSTCCASIwDQYJKoZIhvcNAQEBBQAD -ggEPADCCAQoCggEBALTgu1G7OVyLBMVMeRwjhjEQY0NVJz/GRcekPewJDRoeIMJW -Ht4bNwcwIi9v8Qbxq63WyKthoy9DxLCyLfzDlml7forkzMA5EpBCYMnMNWju2l+Q -Vl/NHE1bWEnrDgFPZPosPIlY2C8u4rBo6SI7dYnWRBpl8huXJh0obazovVkdKyT2 -1oQDZogkAHhg8fir/gKya/si+zXmFtGt9i4S5Po1auUZuV3bOx4a+9P/FRQI2Alq -ukWdFHlgfa9Aigdzs5OW03Q0jTo3Kd5c7PXuLjHCINy+8U9/I1LZW+Jk2ZyqBwi1 -Rb3R0DHBq1SfqdLDYmAD8bs5SpJKPQq5ncWg/jcCAwEAAaOCATQwggEwMA8GA1Ud -EwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTUovyfs8PYA9NX -XAek0CSnwPIA1DCB7QYDVR0fBIHlMIHiMIHfoIHcoIHZhjVodHRwOi8vd3d3LnRy -dXN0Y2VudGVyLmRlL2NybC92Mi90Y19jbGFzc18zX2NhX0lJLmNybIaBn2xkYXA6 -Ly93d3cudHJ1c3RjZW50ZXIuZGUvQ049VEMlMjBUcnVzdENlbnRlciUyMENsYXNz -JTIwMyUyMENBJTIwSUksTz1UQyUyMFRydXN0Q2VudGVyJTIwR21iSCxPVT1yb290 -Y2VydHMsREM9dHJ1c3RjZW50ZXIsREM9ZGU/Y2VydGlmaWNhdGVSZXZvY2F0aW9u -TGlzdD9iYXNlPzANBgkqhkiG9w0BAQUFAAOCAQEANmDkcPcGIEPZIxpC8vijsrlN -irTzwppVMXzEO2eatN9NDoqTSheLG43KieHPOh6sHfGcMrSOWXaiQYUlN6AT0PV8 -TtXqluJucsG7Kv5sbviRmEb8yRtXW+rIGjs/sFGYPAfaLFkB2otE6OF0/ado3VS6 -g0bsyEa1+K+XwDsJHI/OcpY9M1ZwvJbL2NV9IJqDnxrcOfHFcqMRA/07QlIp2+gB -95tejNaNhk4Z+rwcvsUhpYeeeC422wlxo3I0+GzjBgnyXlal092Y+tTmBvTwtiBj -S+opvaqCZh77gaqnN60TGOaSw4HBM7uIHqHn4rS9MWwOUT1v+5ZWgOI2F9Hc5A== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIEPTCCAyWgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBvzE/MD0GA1UEAww2VMOc -UktUUlVTVCBFbGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sx -c8SxMQswCQYDVQQGEwJUUjEPMA0GA1UEBwwGQW5rYXJhMV4wXAYDVQQKDFVUw5xS -S1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUgQmlsacWfaW0gR8O8dmVubGnEn2kg -SGl6bWV0bGVyaSBBLsWeLiAoYykgQXJhbMSxayAyMDA3MB4XDTA3MTIyNTE4Mzcx -OVoXDTE3MTIyMjE4MzcxOVowgb8xPzA9BgNVBAMMNlTDnFJLVFJVU1QgRWxla3Ry -b25payBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsTELMAkGA1UEBhMC -VFIxDzANBgNVBAcMBkFua2FyYTFeMFwGA1UECgxVVMOcUktUUlVTVCBCaWxnaSDE -sGxldGnFn2ltIHZlIEJpbGnFn2ltIEfDvHZlbmxpxJ9pIEhpem1ldGxlcmkgQS7F -ni4gKGMpIEFyYWzEsWsgMjAwNzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC -ggEBAKu3PgqMyKVYFeaK7yc9SrToJdPNM8Ig3BnuiD9NYvDdE3ePYakqtdTyuTFY -KTsvP2qcb3N2Je40IIDu6rfwxArNK4aUyeNgsURSsloptJGXg9i3phQvKUmi8wUG -+7RP2qFsmmaf8EMJyupyj+sA1zU511YXRxcw9L6/P8JorzZAwan0qafoEGsIiveG -HtyaKhUG9qPw9ODHFNRRf8+0222vR5YXm3dx2KdxnSQM9pQ/hTEST7ruToK4uT6P -IzdezKKqdfcYbwnTrqdUKDT74eA7YH2gvnmJhsifLfkKS8RQouf9eRbHegsYz85M -733WB2+Y8a+xwXrXgTW4qhe04MsCAwEAAaNCMEAwHQYDVR0OBBYEFCnFkKslrxHk -Yb+j/4hhkeYO/pyBMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0G -CSqGSIb3DQEBBQUAA4IBAQAQDdr4Ouwo0RSVgrESLFF6QSU2TJ/sPx+EnWVUXKgW -AkD6bho3hO9ynYYKVZ1WKKxmLNA6VpM0ByWtCLCPyA8JWcqdmBzlVPi5RX9ql2+I -aE1KBiY3iAIOtsbWcpnOa3faYjGkVh+uX4132l32iPwa2Z61gfAyuOOI0JzzaqC5 -mxRZNTZPz/OOXl0XrRWV2N2y1RVuAE6zS89mlOTgzbUF2mNXi+WzqtvALhyQRNsa -XRik7r4EW5nVcV9VZWRi1aKbBFmGyGJ353yCRWo9F7/snXUMrqNvWtMvmDb08PUZ -qxFdyKbjKlhqQgnDvZImZjINXQhVdP+MmNAKpoRq0Tl9 ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIFQTCCAymgAwIBAgICDL4wDQYJKoZIhvcNAQELBQAwUTELMAkGA1UEBhMCVFcx -EjAQBgNVBAoTCVRBSVdBTi1DQTEQMA4GA1UECxMHUm9vdCBDQTEcMBoGA1UEAxMT -VFdDQSBHbG9iYWwgUm9vdCBDQTAeFw0xMjA2MjcwNjI4MzNaFw0zMDEyMzExNTU5 -NTlaMFExCzAJBgNVBAYTAlRXMRIwEAYDVQQKEwlUQUlXQU4tQ0ExEDAOBgNVBAsT -B1Jvb3QgQ0ExHDAaBgNVBAMTE1RXQ0EgR2xvYmFsIFJvb3QgQ0EwggIiMA0GCSqG -SIb3DQEBAQUAA4ICDwAwggIKAoICAQCwBdvI64zEbooh745NnHEKH1Jw7W2CnJfF -10xORUnLQEK1EjRsGcJ0pDFfhQKX7EMzClPSnIyOt7h52yvVavKOZsTuKwEHktSz -0ALfUPZVr2YOy+BHYC8rMjk1Ujoog/h7FsYYuGLWRyWRzvAZEk2tY/XTP3VfKfCh -MBwqoJimFb3u/Rk28OKRQ4/6ytYQJ0lM793B8YVwm8rqqFpD/G2Gb3PpN0Wp8DbH -zIh1HrtsBv+baz4X7GGqcXzGHaL3SekVtTzWoWH1EfcFbx39Eb7QMAfCKbAJTibc -46KokWofwpFFiFzlmLhxpRUZyXx1EcxwdE8tmx2RRP1WKKD+u4ZqyPpcC1jcxkt2 -yKsi2XMPpfRaAok/T54igu6idFMqPVMnaR1sjjIsZAAmY2E2TqNGtz99sy2sbZCi -laLOz9qC5wc0GZbpuCGqKX6mOL6OKUohZnkfs8O1CWfe1tQHRvMq2uYiN2DLgbYP -oA/pyJV/v1WRBXrPPRXAb94JlAGD1zQbzECl8LibZ9WYkTunhHiVJqRaCPgrdLQA -BDzfuBSO6N+pjWxnkjMdwLfS7JLIvgm/LCkFbwJrnu+8vyq8W8BQj0FwcYeyTbcE -qYSjMq+u7msXi7Kx/mzhkIyIqJdIzshNy/MGz19qCkKxHh53L46g5pIOBvwFItIm -4TFRfTLcDwIDAQABoyMwITAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB -/zANBgkqhkiG9w0BAQsFAAOCAgEAXzSBdu+WHdXltdkCY4QWwa6gcFGn90xHNcgL -1yg9iXHZqjNB6hQbbCEAwGxCGX6faVsgQt+i0trEfJdLjbDorMjupWkEmQqSpqsn -LhpNgb+E1HAerUf+/UqdM+DyucRFCCEK2mlpc3INvjT+lIutwx4116KD7+U4x6WF -H6vPNOw/KP4M8VeGTslV9xzU2KV9Bnpv1d8Q34FOIWWxtuEXeZVFBs5fzNxGiWNo -RI2T9GRwoD2dKAXDOXC4Ynsg/eTb6QihuJ49CcdP+yz4k3ZB3lLg4VfSnQO8d57+ -nile98FRYB/e2guyLXW3Q0iT5/Z5xoRdgFlglPx4mI88k1HtQJAH32RjJMtOcQWh -15QaiDLxInQirqWm2BJpTGCjAu4r7NRjkgtevi92a6O2JryPA9gK8kxkRr05YuWW -6zRjESjMlfGt7+/cgFhI6Uu46mWs6fyAtbXIRfmswZ/ZuepiiI7E8UuDEq3mi4TW -nsLrgxifarsbJGAzcMzs9zLzXNl5fe+epP7JI8Mk7hWSsT2RTyaGvWZzJBPqpK5j -wa19hAM8EHiGG3njxPPyBJUgriOCxLM6AGK/5jYk4Ve6xx6QddVfP5VhK8E7zeWz -aGHQRiapIVJpLesux+t3zqY6tQMzT3bR51xUAV3LePTJDL/PEo4XLSNolOer/qmy -KwbQBM0= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDezCCAmOgAwIBAgIBATANBgkqhkiG9w0BAQUFADBfMQswCQYDVQQGEwJUVzES -MBAGA1UECgwJVEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFU -V0NBIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDgwODI4MDcyNDMz -WhcNMzAxMjMxMTU1OTU5WjBfMQswCQYDVQQGEwJUVzESMBAGA1UECgwJVEFJV0FO -LUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NBIFJvb3QgQ2VydGlm -aWNhdGlvbiBBdXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -AQCwfnK4pAOU5qfeCTiRShFAh6d8WWQUe7UREN3+v9XAu1bihSX0NXIP+FPQQeFE -AcK0HMMxQhZHhTMidrIKbw/lJVBPhYa+v5guEGcevhEFhgWQxFnQfHgQsIBct+HH -K3XLfJ+utdGdIzdjp9xCoi2SBBtQwXu4PhvJVgSLL1KbralW6cH/ralYhzC2gfeX -RfwZVzsrb+RH9JlF/h3x+JejiB03HFyP4HYlmlD4oFT/RJB2I9IyxsOrBr/8+7/z -rX2SYgJbKdM1o5OaQ2RgXbL6Mv87BK9NQGr5x+PvI/1ry+UPizgN7gr8/g+YnzAx -3WxSZfmLgb4i4RxYA7qRG4kHAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV -HRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqOFsmjd6LWvJPelSDGRjjCDWmujANBgkq -hkiG9w0BAQUFAAOCAQEAPNV3PdrfibqHDAhUaiBQkr6wQT25JmSDCi/oQMCXKCeC -MErJk/9q56YAf4lCmtYR5VPOL8zy2gXE/uJQxDqGfczafhAJO5I1KlOy/usrBdls -XebQ79NqZp4VKIV66IIArB6nCWlWQtNoURi+VJq/REG6Sb4gumlc7rh3zc5sH62D -lhh9DrUUOYTxKOkto557HnpyWoOzeW/vtPzQCqVYT0bf+215WfKEIlKuD8z7fDvn -aspHYcN6+NOSBB+4IIThNlQWx0DeO4pz3N/GCUzf7Nr/1FNCocnyYh0igzyXxfkZ -YiesZSLX0zzG5Y6yU8xJzrww/nsOM5D77dIUkR8Hrw== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIFcjCCA1qgAwIBAgIQH51ZWtcvwgZEpYAIaeNe9jANBgkqhkiG9w0BAQUFADA/ -MQswCQYDVQQGEwJUVzEwMC4GA1UECgwnR292ZXJubWVudCBSb290IENlcnRpZmlj -YXRpb24gQXV0aG9yaXR5MB4XDTAyMTIwNTEzMjMzM1oXDTMyMTIwNTEzMjMzM1ow -PzELMAkGA1UEBhMCVFcxMDAuBgNVBAoMJ0dvdmVybm1lbnQgUm9vdCBDZXJ0aWZp -Y2F0aW9uIEF1dGhvcml0eTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB -AJoluOzMonWoe/fOW1mKydGGEghU7Jzy50b2iPN86aXfTEc2pBsBHH8eV4qNw8XR -IePaJD9IK/ufLqGU5ywck9G/GwGHU5nOp/UKIXZ3/6m3xnOUT0b3EEk3+qhZSV1q -gQdW8or5BtD3cCJNtLdBuTK4sfCxw5w/cP1T3YGq2GN49thTbqGsaoQkclSGxtKy -yhwOeYHWtXBiCAEuTk8O1RGvqa/lmr/czIdtJuTJV6L7lvnM4T9TjGxMfptTCAts -F/tnyMKtsc2AtJfcdgEWFelq16TheEfOhtX7MfP6Mb40qij7cEwdScevLJ1tZqa2 -jWR+tSBqnTuBto9AAGdLiYa4zGX+FVPpBMHWXx1E1wovJ5pGfaENda1UhhXcSTvx -ls4Pm6Dso3pdvtUqdULle96ltqqvKKyskKw4t9VoNSZ63Pc78/1Fm9G7Q3hub/FC -VGqY8A2tl+lSXunVanLeavcbYBT0peS2cWeqH+riTcFCQP5nRhc4L0c/cZyu5SHK -YS1tB6iEfC3uUSXxY5Ce/eFXiGvviiNtsea9P63RPZYLhY3Naye7twWb7LuRqQoH -EgKXTiCQ8P8NHuJBO9NAOueNXdpm5AKwB1KYXA6OM5zCppX7VRluTI6uSw+9wThN -Xo+EHWbNxWCWtFJaBYmOlXqYwZE8lSOyDvR5tMl8wUohAgMBAAGjajBoMB0GA1Ud -DgQWBBTMzO/MKWCkO7GStjz6MmKPrCUVOzAMBgNVHRMEBTADAQH/MDkGBGcqBwAE -MTAvMC0CAQAwCQYFKw4DAhoFADAHBgVnKgMAAAQUA5vwIhP/lSg209yewDL7MTqK -UWUwDQYJKoZIhvcNAQEFBQADggIBAECASvomyc5eMN1PhnR2WPWus4MzeKR6dBcZ -TulStbngCnRiqmjKeKBMmo4sIy7VahIkv9Ro04rQ2JyftB8M3jh+Vzj8jeJPXgyf -qzvS/3WXy6TjZwj/5cAWtUgBfen5Cv8b5Wppv3ghqMKnI6mGq3ZW6A4M9hPdKmaK -ZEk9GhiHkASfQlK3T8v+R0F2Ne//AHY2RTKbxkaFXeIksB7jSJaYV0eUVXoPQbFE -JPPB/hprv4j9wabak2BegUqZIJxIZhm1AHlUD7gsL0u8qV1bYH+Mh6XgUmMqvtg7 -hUAV/h62ZT/FS9p+tXo1KaMuephgIqP0fSdOLeq0dDzpD6QzDxARvBMB1uUO07+1 -EqLhRSPAzAhuYbeJq4PjJB7mXQfnHyA+z2fI56wwbSdLaG5LKlwCCDTb+HbkZ6Mm -nD+iMsJKxYEYMRBWqoTvLQr/uB930r+lWKBi5NdLkXWNiYCYfm3LU05er/ayl4WX -udpVBrkk7tfGOB5jGxI7leFYrPLfhNVfmS8NVVvmONsuP3LpSIXLuykTjx44Vbnz -ssQwmSNOXfJIoRIM3BKQCZBUkQM8R+XVyWXgt0t97EfTsws+rZ7QdAAO671RrcDe -LMDDav7v3Aun+kbfYNucpllQdSNpc5Oy+fwC00fmcc4QAu4njIT/rEUNE1yDMuAl -pYYsfPQS ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIFODCCAyCgAwIBAgIRAJW+FqD3LkbxezmCcvqLzZYwDQYJKoZIhvcNAQEFBQAw -NzEUMBIGA1UECgwLVGVsaWFTb25lcmExHzAdBgNVBAMMFlRlbGlhU29uZXJhIFJv -b3QgQ0EgdjEwHhcNMDcxMDE4MTIwMDUwWhcNMzIxMDE4MTIwMDUwWjA3MRQwEgYD -VQQKDAtUZWxpYVNvbmVyYTEfMB0GA1UEAwwWVGVsaWFTb25lcmEgUm9vdCBDQSB2 -MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMK+6yfwIaPzaSZVfp3F -VRaRXP3vIb9TgHot0pGMYzHw7CTww6XScnwQbfQ3t+XmfHnqjLWCi65ItqwA3GV1 -7CpNX8GH9SBlK4GoRz6JI5UwFpB/6FcHSOcZrr9FZ7E3GwYq/t75rH2D+1665I+X -Z75Ljo1kB1c4VWk0Nj0TSO9P4tNmHqTPGrdeNjPUtAa9GAH9d4RQAEX1jF3oI7x+ -/jXh7VB7qTCNGdMJjmhnXb88lxhTuylixcpecsHHltTbLaC0H2kD7OriUPEMPPCs -81Mt8Bz17Ww5OXOAFshSsCPN4D7c3TxHoLs1iuKYaIu+5b9y7tL6pe0S7fyYGKkm -dtwoSxAgHNN/Fnct7W+A90m7UwW7XWjH1Mh1Fj+JWov3F0fUTPHSiXk+TT2YqGHe -Oh7S+F4D4MHJHIzTjU3TlTazN19jY5szFPAtJmtTfImMMsJu7D0hADnJoWjiUIMu -sDor8zagrC/kb2HCUQk5PotTubtn2txTuXZZNp1D5SDgPTJghSJRt8czu90VL6R4 -pgd7gUY2BIbdeTXHlSw7sKMXNeVzH7RcWe/a6hBle3rQf5+ztCo3O3CLm1u5K7fs -slESl1MpWtTwEhDcTwK7EpIvYtQ/aUN8Ddb8WHUBiJ1YFkveupD/RwGJBmr2X7KQ -arMCpgKIv7NHfirZ1fpoeDVNAgMBAAGjPzA9MA8GA1UdEwEB/wQFMAMBAf8wCwYD -VR0PBAQDAgEGMB0GA1UdDgQWBBTwj1k4ALP1j5qWDNXr+nuqF+gTEjANBgkqhkiG -9w0BAQUFAAOCAgEAvuRcYk4k9AwI//DTDGjkk0kiP0Qnb7tt3oNmzqjMDfz1mgbl -dxSR651Be5kqhOX//CHBXfDkH1e3damhXwIm/9fH907eT/j3HEbAek9ALCI18Bmx -0GtnLLCo4MBANzX2hFxc469CeP6nyQ1Q6g2EdvZR74NTxnr/DlZJLo961gzmJ1Tj -TQpgcmLNkQfWpb/ImWvtxBnmq0wROMVvMeJuScg/doAmAyYp4Db29iBT4xdwNBed -Y2gea+zDTYa4EzAvXUYNR0PVG6pZDrlcjQZIrXSHX8f8MVRBE+LHIQ6e4B4N4cB7 -Q4WQxYpYxmUKeFfyxiMPAdkgS94P+5KFdSpcc41teyWRyu5FrgZLAMzTsVlQ2jqI -OylDRl6XK1TOU2+NSueW+r9xDkKLfP0ooNBIytrEgUy7onOTJsjrDNYmiLbAJM+7 -vVvrdX3pCI6GMyx5dwlppYn8s3CQh3aP0yK7Qs69cwsgJirQmz1wHiRszYd2qReW -t88NkvuOGKmYSdGe/mBEciG5Ge3C9THxOUiIkCR1VBatzvT4aRRkOfujuLpwQMcn -HL/EVlP6Y2XQ8xwOFvVrhlhNGNTkDY6lnVuR3HYkUD/GKvvZt5y11ubQ2egZixVx -SK236thZiNSQvxaz2emsWWFUyBy6ysHK4bkgTI86k4mloMy/0/Z1pHWWbVY= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDZzCCAk+gAwIBAgIQGx+ttiD5JNM2a/fH8YygWTANBgkqhkiG9w0BAQUFADBF -MQswCQYDVQQGEwJHQjEYMBYGA1UEChMPVHJ1c3RpcyBMaW1pdGVkMRwwGgYDVQQL -ExNUcnVzdGlzIEZQUyBSb290IENBMB4XDTAzMTIyMzEyMTQwNloXDTI0MDEyMTEx -MzY1NFowRTELMAkGA1UEBhMCR0IxGDAWBgNVBAoTD1RydXN0aXMgTGltaXRlZDEc -MBoGA1UECxMTVHJ1c3RpcyBGUFMgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQAD -ggEPADCCAQoCggEBAMVQe547NdDfxIzNjpvto8A2mfRC6qc+gIMPpqdZh8mQRUN+ -AOqGeSoDvT03mYlmt+WKVoaTnGhLaASMk5MCPjDSNzoiYYkchU59j9WvezX2fihH -iTHcDnlkH5nSW7r+f2C/revnPDgpai/lkQtV/+xvWNUtyd5MZnGPDNcE2gfmHhjj -vSkCqPoc4Vu5g6hBSLwacY3nYuUtsuvffM/bq1rKMfFMIvMFE/eC+XN5DL7XSxzA -0RU8k0Fk0ea+IxciAIleH2ulrG6nS4zto3Lmr2NNL4XSFDWaLk6M6jKYKIahkQlB -OrTh4/L68MkKokHdqeMDx4gVOxzUGpTXn2RZEm0CAwEAAaNTMFEwDwYDVR0TAQH/ -BAUwAwEB/zAfBgNVHSMEGDAWgBS6+nEleYtXQSUhhgtx67JkDoshZzAdBgNVHQ4E -FgQUuvpxJXmLV0ElIYYLceuyZA6LIWcwDQYJKoZIhvcNAQEFBQADggEBAH5Y//01 -GX2cGE+esCu8jowU/yyg2kdbw++BLa8F6nRIW/M+TgfHbcWzk88iNVy2P3UnXwmW -zaD+vkAMXBJV+JOCyinpXj9WV4s4NvdFGkwozZ5BuO1WTISkQMi4sKUraXAEasP4 -1BIy+Q7DsdwyhEQsb8tGD+pmQQ9P8Vilpg0ND2HepZ5dfWWhPBfnqFVO76DH7cZE -f1T1o+CP8HxVIo8ptoGj4W1OLBuAZ+ytIJ8MYmHVl/9D7S3B2l0pKoU/rGXuhg8F -jZBf3+6f9L/uHfuY5H+QK4R4EA5sSVPvFVtlRkpdr7r7OnIdzfYliB6XzCGcKQEN -ZetX2fNXlrtIzYE= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIFFzCCA/+gAwIBAgIBETANBgkqhkiG9w0BAQUFADCCASsxCzAJBgNVBAYTAlRS -MRgwFgYDVQQHDA9HZWJ6ZSAtIEtvY2FlbGkxRzBFBgNVBAoMPlTDvHJraXllIEJp -bGltc2VsIHZlIFRla25vbG9qaWsgQXJhxZ90xLFybWEgS3VydW11IC0gVMOcQsSw -VEFLMUgwRgYDVQQLDD9VbHVzYWwgRWxla3Ryb25payB2ZSBLcmlwdG9sb2ppIEFy -YcWfdMSxcm1hIEVuc3RpdMO8c8O8IC0gVUVLQUUxIzAhBgNVBAsMGkthbXUgU2Vy -dGlmaWthc3lvbiBNZXJrZXppMUowSAYDVQQDDEFUw5xCxLBUQUsgVUVLQUUgS8O2 -ayBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsSAtIFPDvHLDvG0gMzAe -Fw0wNzA4MjQxMTM3MDdaFw0xNzA4MjExMTM3MDdaMIIBKzELMAkGA1UEBhMCVFIx -GDAWBgNVBAcMD0dlYnplIC0gS29jYWVsaTFHMEUGA1UECgw+VMO8cmtpeWUgQmls -aW1zZWwgdmUgVGVrbm9sb2ppayBBcmHFn3TEsXJtYSBLdXJ1bXUgLSBUw5xCxLBU -QUsxSDBGBgNVBAsMP1VsdXNhbCBFbGVrdHJvbmlrIHZlIEtyaXB0b2xvamkgQXJh -xZ90xLFybWEgRW5zdGl0w7xzw7wgLSBVRUtBRTEjMCEGA1UECwwaS2FtdSBTZXJ0 -aWZpa2FzeW9uIE1lcmtlemkxSjBIBgNVBAMMQVTDnELEsFRBSyBVRUtBRSBLw7Zr -IFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxIC0gU8O8csO8bSAzMIIB -IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAim1L/xCIOsP2fpTo6iBkcK4h -gb46ezzb8R1Sf1n68yJMlaCQvEhOEav7t7WNeoMojCZG2E6VQIdhn8WebYGHV2yK -O7Rm6sxA/OOqbLLLAdsyv9Lrhc+hDVXDWzhXcLh1xnnRFDDtG1hba+818qEhTsXO -fJlfbLm4IpNQp81McGq+agV/E5wrHur+R84EpW+sky58K5+eeROR6Oqeyjh1jmKw -lZMq5d/pXpduIF9fhHpEORlAHLpVK/swsoHvhOPc7Jg4OQOFCKlUAwUp8MmPi+oL -hmUZEdPpCSPeaJMDyTYcIW7OjGbxmTDY17PDHfiBLqi9ggtm/oLL4eAagsNAgQID -AQABo0IwQDAdBgNVHQ4EFgQUvYiHyY/2pAoLquvF/pEjnatKijIwDgYDVR0PAQH/ -BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAB18+kmP -NOm3JpIWmgV050vQbTlswyb2zrgxvMTfvCr4N5EY3ATIZJkrGG2AA1nJrvhY0D7t -wyOfaTyGOBye79oneNGEN3GKPEs5z35FBtYt2IpNeBLWrcLTy9LQQfMmNkqblWwM -7uXRQydmwYj3erMgbOqwaSvHIOgMA8RBBZniP+Rr+KCGgceExh/VS4ESshYhLBOh -gLJeDEoTniDYYkCrkOpkSi+sDQESeUWoL4cZaMjihccwsnX5OD+ywJO0a+IDRM5n -oN+J1q2MdqMTw5RhK2vZbMEHCiIHhWyFJEapvj+LeISCfiQMnf2BN+MlqO02TpUs -yZyQ2uypQjyttgI= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIEJzCCAw+gAwIBAgIHAI4X/iQggTANBgkqhkiG9w0BAQsFADCBsTELMAkGA1UE -BhMCVFIxDzANBgNVBAcMBkFua2FyYTFNMEsGA1UECgxEVMOcUktUUlVTVCBCaWxn -aSDEsGxldGnFn2ltIHZlIEJpbGnFn2ltIEfDvHZlbmxpxJ9pIEhpem1ldGxlcmkg -QS7Fni4xQjBABgNVBAMMOVTDnFJLVFJVU1QgRWxla3Ryb25payBTZXJ0aWZpa2Eg -SGl6bWV0IFNhxJ9sYXnEsWPEsXPEsSBINTAeFw0xMzA0MzAwODA3MDFaFw0yMzA0 -MjgwODA3MDFaMIGxMQswCQYDVQQGEwJUUjEPMA0GA1UEBwwGQW5rYXJhMU0wSwYD -VQQKDERUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUgQmlsacWfaW0gR8O8 -dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLjFCMEAGA1UEAww5VMOcUktUUlVTVCBF -bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxIEg1MIIB -IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApCUZ4WWe60ghUEoI5RHwWrom -/4NZzkQqL/7hzmAD/I0Dpe3/a6i6zDQGn1k19uwsu537jVJp45wnEFPzpALFp/kR -Gml1bsMdi9GYjZOHp3GXDSHHmflS0yxjXVW86B8BSLlg/kJK9siArs1mep5Fimh3 -4khon6La8eHBEJ/rPCmBp+EyCNSgBbGM+42WAA4+Jd9ThiI7/PS98wl+d+yG6w8z -5UNP9FR1bSmZLmZaQ9/LXMrI5Tjxfjs1nQ/0xVqhzPMggCTTV+wVunUlm+hkS7M0 -hO8EuPbJbKoCPrZV4jI3X/xml1/N1p7HIL9Nxqw/dV8c7TKcfGkAaZHjIxhT6QID -AQABo0IwQDAdBgNVHQ4EFgQUVpkHHtOsDGlktAxQR95DLL4gwPswDgYDVR0PAQH/ -BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAJ5FdnsX -SDLyOIspve6WSk6BGLFRRyDN0GSxDsnZAdkJzsiZ3GglE9Rc8qPoBP5yCccLqh0l -VX6Wmle3usURehnmp349hQ71+S4pL+f5bFgWV1Al9j4uPqrtd3GqqpmWRgqujuwq -URawXs3qZwQcWDD1YIq9pr1N5Za0/EKJAWv2cMhQOQwt1WbZyNKzMrcbGW3LM/nf -peYVhDfwwvJllpKQd/Ct9JDpEXjXk4nAPQu6KfTomZ1yju2dL+6SfaHx/126M2CF -Yv4HAqGEVka+lgqaE9chTLd8B59OTj+RdPsnnRHM3eaxynFNExc5JsUpISuTKWqW -+qtB4Uu2NQvAmxU= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIEJjCCAw6gAwIBAgIGfaHyZeyKMA0GCSqGSIb3DQEBCwUAMIGxMQswCQYDVQQG -EwJUUjEPMA0GA1UEBwwGQW5rYXJhMU0wSwYDVQQKDERUw5xSS1RSVVNUIEJpbGdp -IMSwbGV0acWfaW0gdmUgQmlsacWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBB -LsWeLjFCMEAGA1UEAww5VMOcUktUUlVTVCBFbGVrdHJvbmlrIFNlcnRpZmlrYSBI -aXptZXQgU2HEn2xhecSxY8Sxc8SxIEg2MB4XDTEzMTIxODA5MDQxMFoXDTIzMTIx -NjA5MDQxMFowgbExCzAJBgNVBAYTAlRSMQ8wDQYDVQQHDAZBbmthcmExTTBLBgNV -BAoMRFTDnFJLVFJVU1QgQmlsZ2kgxLBsZXRpxZ9pbSB2ZSBCaWxpxZ9pbSBHw7x2 -ZW5sacSfaSBIaXptZXRsZXJpIEEuxZ4uMUIwQAYDVQQDDDlUw5xSS1RSVVNUIEVs -ZWt0cm9uaWsgU2VydGlmaWthIEhpem1ldCBTYcSfbGF5xLFjxLFzxLEgSDYwggEi -MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCdsGjW6L0UlqMACprx9MfMkU1x -eHe59yEmFXNRFpQJRwXiM/VomjX/3EsvMsew7eKC5W/a2uqsxgbPJQ1BgfbBOCK9 -+bGlprMBvD9QFyv26WZV1DOzXPhDIHiTVRZwGTLmiddk671IUP320EEDwnS3/faA -z1vFq6TWlRKb55cTMgPp1KtDWxbtMyJkKbbSk60vbNg9tvYdDjTu0n2pVQ8g9P0p -u5FbHH3GQjhtQiht1AH7zYiXSX6484P4tZgvsycLSF5W506jM7NE1qXyGJTtHB6p -lVxiSvgNZ1GpryHV+DKdeboaX+UEVU0TRv/yz3THGmNtwx8XEsMeED5gCLMxAgMB -AAGjQjBAMB0GA1UdDgQWBBTdVRcT9qzoSCHK77Wv0QAy7Z6MtTAOBgNVHQ8BAf8E -BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAb1gNl0Oq -FlQ+v6nfkkU/hQu7VtMMUszIv3ZnXuaqs6fvuay0EBQNdH49ba3RfdCaqaXKGDsC -QC4qnFAUi/5XfldcEQlLNkVS9z2sFP1E34uXI9TDwe7UU5X+LEr+DXCqu4svLcsy -o4LyVN/Y8t3XSHLuSqMplsNEzm61kod2pLv0kmzOLBQJZo6NrRa1xxsJYTvjIKID -gI6tflEATseWhvtDmHd9KMeP2Cpu54Rvl0EpABZeTeIT6lnAY2c6RPuY/ATTMHKm -9ocJV612ph1jmv3XZch4gyt1O6VbuA1df74jrlZVlFjvH4GMKrLN5ptjnhi85WsG -tAuYSyher4hYyw== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIICjzCCAhWgAwIBAgIQXIuZxVqUxdJxVt7NiYDMJjAKBggqhkjOPQQDAzCBiDEL -MAkGA1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNl -eSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMT -JVVTRVJUcnVzdCBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTAwMjAx -MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgT -Ck5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVUaGUg -VVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBFQ0MgQ2VydGlm -aWNhdGlvbiBBdXRob3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQarFRaqflo -I+d61SRvU8Za2EurxtW20eZzca7dnNYMYf3boIkDuAUU7FfO7l0/4iGzzvfUinng -o4N+LZfQYcTxmdwlkWOrfzCjtHDix6EznPO/LlxTsV+zfTJ/ijTjeXmjQjBAMB0G -A1UdDgQWBBQ64QmG1M8ZwpZ2dEl23OA1xmNjmjAOBgNVHQ8BAf8EBAMCAQYwDwYD -VR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjA2Z6EWCNzklwBBHU6+4WMB -zzuqQhFkoJ2UOQIReVx7Hfpkue4WQrO/isIJxOzksU0CMQDpKmFHjFJKS04YcPbW -RNZu9YO6bVi9JNlWSOrvxKJGgYhqOkbRqZtNyWHa0V1Xahg= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIF3jCCA8agAwIBAgIQAf1tMPyjylGoG7xkDjUDLTANBgkqhkiG9w0BAQwFADCB -iDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0pl -cnNleSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNV -BAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTAw -MjAxMDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UEBhMCVVMxEzARBgNV -BAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVU -aGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBSU0EgQ2Vy -dGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK -AoICAQCAEmUXNg7D2wiz0KxXDXbtzSfTTK1Qg2HiqiBNCS1kCdzOiZ/MPans9s/B -3PHTsdZ7NygRK0faOca8Ohm0X6a9fZ2jY0K2dvKpOyuR+OJv0OwWIJAJPuLodMkY -tJHUYmTbf6MG8YgYapAiPLz+E/CHFHv25B+O1ORRxhFnRghRy4YUVD+8M/5+bJz/ -Fp0YvVGONaanZshyZ9shZrHUm3gDwFA66Mzw3LyeTP6vBZY1H1dat//O+T23LLb2 -VN3I5xI6Ta5MirdcmrS3ID3KfyI0rn47aGYBROcBTkZTmzNg95S+UzeQc0PzMsNT -79uq/nROacdrjGCT3sTHDN/hMq7MkztReJVni+49Vv4M0GkPGw/zJSZrM233bkf6 -c0Plfg6lZrEpfDKEY1WJxA3Bk1QwGROs0303p+tdOmw1XNtB1xLaqUkL39iAigmT -Yo61Zs8liM2EuLE/pDkP2QKe6xJMlXzzawWpXhaDzLhn4ugTncxbgtNMs+1b/97l -c6wjOy0AvzVVdAlJ2ElYGn+SNuZRkg7zJn0cTRe8yexDJtC/QV9AqURE9JnnV4ee -UB9XVKg+/XRjL7FQZQnmWEIuQxpMtPAlR1n6BB6T1CZGSlCBst6+eLf8ZxXhyVeE -Hg9j1uliutZfVS7qXMYoCAQlObgOK6nyTJccBz8NUvXt7y+CDwIDAQABo0IwQDAd -BgNVHQ4EFgQUU3m/WqorSs9UgOHYm8Cd8rIDZsswDgYDVR0PAQH/BAQDAgEGMA8G -A1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAFzUfA3P9wF9QZllDHPF -Up/L+M+ZBn8b2kMVn54CVVeWFPFSPCeHlCjtHzoBN6J2/FNQwISbxmtOuowhT6KO -VWKR82kV2LyI48SqC/3vqOlLVSoGIG1VeCkZ7l8wXEskEVX/JJpuXior7gtNn3/3 -ATiUFJVDBwn7YKnuHKsSjKCaXqeYalltiz8I+8jRRa8YFWSQEg9zKC7F4iRO/Fjs -8PRF/iKz6y+O0tlFYQXBl2+odnKPi4w2r78NBc5xjeambx9spnFixdjQg3IM8WcR -iQycE0xyNN+81XHfqnHd4blsjDwSXWXavVcStkNr/+XeTWYRUc+ZruwXtuhxkYze -Sf7dNXGiFSeUHM9h4ya7b6NnJSFd5t0dCy5oGzuCr+yDZ4XUmFF0sbmZgIn/f3gZ -XHlKYC6SQK5MNyosycdiyA5d9zZbyuAlJQG03RoHnHcAP9Dc1ew91Pq7P8yF1m9/ -qS3fuQL39ZeatTXaw2ewh0qpKJ4jjv9cJ2vhsE/zB+4ALtRZh8tSQZXq9EfX7mRB -VXyNWQKV3WKdwrnuWih0hKWbt5DHDAff9Yk2dDLWKMGwsAvgnEzDHNb842m1R0aB -L6KCq9NjRHDEjf8tM7qtj3u1cIiuPhnPQCjY/MiQu12ZIvVS5ljFH4gxQ+6IHdfG -jjxDah2nGN59PRbxYvnKkKj9 ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIEojCCA4qgAwIBAgIQRL4Mi1AAJLQR0zYlJWfJiTANBgkqhkiG9w0BAQUFADCB -rjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2Ug -Q2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExho -dHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xNjA0BgNVBAMTLVVUTi1VU0VSRmlyc3Qt -Q2xpZW50IEF1dGhlbnRpY2F0aW9uIGFuZCBFbWFpbDAeFw05OTA3MDkxNzI4NTBa -Fw0xOTA3MDkxNzM2NThaMIGuMQswCQYDVQQGEwJVUzELMAkGA1UECBMCVVQxFzAV -BgNVBAcTDlNhbHQgTGFrZSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5l -dHdvcmsxITAfBgNVBAsTGGh0dHA6Ly93d3cudXNlcnRydXN0LmNvbTE2MDQGA1UE -AxMtVVROLVVTRVJGaXJzdC1DbGllbnQgQXV0aGVudGljYXRpb24gYW5kIEVtYWls -MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsjmFpPJ9q0E7YkY3rs3B -YHW8OWX5ShpHornMSMxqmNVNNRm5pELlzkniii8efNIxB8dOtINknS4p1aJkxIW9 -hVE1eaROaJB7HHqkkqgX8pgV8pPMyaQylbsMTzC9mKALi+VuG6JG+ni8om+rWV6l -L8/K2m2qL+usobNqqrcuZzWLeeEeaYji5kbNoKXqvgvOdjp6Dpvq/NonWz1zHyLm -SGHGTPNpsaguG7bUMSAsvIKKjqQOpdeJQ/wWWq8dcdcRWdq6hw2v+vPhwvCkxWeM -1tZUOt4KpLoDd7NlyP0e03RiqhjKaJMeoYV+9Udly/hNVyh00jT/MLbu9mIwFIws -6wIDAQABo4G5MIG2MAsGA1UdDwQEAwIBxjAPBgNVHRMBAf8EBTADAQH/MB0GA1Ud -DgQWBBSJgmd9xJ0mcABLtFBIfN49rgRufTBYBgNVHR8EUTBPME2gS6BJhkdodHRw -Oi8vY3JsLnVzZXJ0cnVzdC5jb20vVVROLVVTRVJGaXJzdC1DbGllbnRBdXRoZW50 -aWNhdGlvbmFuZEVtYWlsLmNybDAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUH -AwQwDQYJKoZIhvcNAQEFBQADggEBALFtYV2mGn98q0rkMPxTbyUkxsrt4jFcKw7u -7mFVbwQ+zznexRtJlOTrIEy05p5QLnLZjfWqo7NK2lYcYJeA3IKirUq9iiv/Cwm0 -xtcgBEXkzYABurorbs6q15L+5K/r9CYdFip/bDCVNy8zEqx/3cfREYxRmLLQo5HQ -rfafnoOTHh1CuEava2bwm3/q4wMC5QJRwarVNZ1yQAOJujEdxRBoUp7fooXFXAim -eOZTT7Hot9MUnpOmw2TjrH5xzbyf6QMbzPvprDHBr3wVdAKZw7JHpsIyYdfHb0gk -USeh1YdV8nuPmD0Wnu51tvjQjvLzxq4oW6fw8zYX/MMF08oDSlQ= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIEdDCCA1ygAwIBAgIQRL4Mi1AAJLQR0zYq/mUK/TANBgkqhkiG9w0BAQUFADCB -lzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2Ug -Q2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExho -dHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xHzAdBgNVBAMTFlVUTi1VU0VSRmlyc3Qt -SGFyZHdhcmUwHhcNOTkwNzA5MTgxMDQyWhcNMTkwNzA5MTgxOTIyWjCBlzELMAkG -A1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEe -MBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8v -d3d3LnVzZXJ0cnVzdC5jb20xHzAdBgNVBAMTFlVUTi1VU0VSRmlyc3QtSGFyZHdh -cmUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCx98M4P7Sof885glFn -0G2f0v9Y8+efK+wNiVSZuTiZFvfgIXlIwrthdBKWHTxqctU8EGc6Oe0rE81m65UJ -M6Rsl7HoxuzBdXmcRl6Nq9Bq/bkqVRcQVLMZ8Jr28bFdtqdt++BxF2uiiPsA3/4a -MXcMmgF6sTLjKwEHOG7DpV4jvEWbe1DByTCP2+UretNb+zNAHqDVmBe8i4fDidNd -oI6yqqr2jmmIBsX6iSHzCJ1pLgkzmykNRg+MzEk0sGlRvfkGzWitZky8PqxhvQqI -DsjfPe58BEydCl5rkdbux+0ojatNh4lz0G6k0B4WixThdkQDf2Os5M1JnMWS9Ksy -oUhbAgMBAAGjgbkwgbYwCwYDVR0PBAQDAgHGMA8GA1UdEwEB/wQFMAMBAf8wHQYD -VR0OBBYEFKFyXyYbKJhDlV0HN9WFlp1L0sNFMEQGA1UdHwQ9MDswOaA3oDWGM2h0 -dHA6Ly9jcmwudXNlcnRydXN0LmNvbS9VVE4tVVNFUkZpcnN0LUhhcmR3YXJlLmNy -bDAxBgNVHSUEKjAoBggrBgEFBQcDAQYIKwYBBQUHAwUGCCsGAQUFBwMGBggrBgEF -BQcDBzANBgkqhkiG9w0BAQUFAAOCAQEARxkP3nTGmZev/K0oXnWO6y1n7k57K9cM -//bey1WiCuFMVGWTYGufEpytXoMs61quwOQt9ABjHbjAbPLPSbtNk28Gpgoiskli -CE7/yMgUsogWXecB5BKV5UU0s4tpvc+0hY91UZ59Ojg6FEgSxvunOxqNDYJAB+gE -CJChicsZUN/KHAG8HQQZexB2lzvukJDKxA4fFm517zP4029bHpbj4HR3dHuKom4t -3XbWOTCC8KucUvIqx69JXn7HaOWCgchqJ/kniCrVWFCVH/A7HFe7fRQ5YiuayZSS -KqMiDP+JJn1fIytH1xUdqWqeUQ0qUZ6B+dQ7XnASfxAynB67nfhmqA== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDhDCCAwqgAwIBAgIQL4D+I4wOIg9IZxIokYesszAKBggqhkjOPQQDAzCByjEL -MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZW -ZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2ln -biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJp -U2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9y -aXR5IC0gRzQwHhcNMDcxMTA1MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCByjELMAkG -A1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJp -U2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2lnbiwg -SW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2ln -biBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5 -IC0gRzQwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAASnVnp8Utpkmw4tXNherJI9/gHm -GUo9FANL+mAnINmDiWn6VMaaGF5VKmTeBvaNSjutEDxlPZCIBIngMGGzrl0Bp3ve -fLK+ymVhAIau2o970ImtTR1ZmkGxvEeA3J5iw/mjgbIwga8wDwYDVR0TAQH/BAUw -AwEB/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJ -aW1hZ2UvZ2lmMCEwHzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYj -aHR0cDovL2xvZ28udmVyaXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFLMW -kf3upm7ktS5Jj4d4gYDs5bG1MAoGCCqGSM49BAMDA2gAMGUCMGYhDBgmYFo4e1ZC -4Kf8NoRRkSAsdk1DPcQdhCPQrNZ8NQbOzWm9kA3bbEhCHQ6qQgIxAJw9SDkjOVga -FRJZap7v1VmyHVIsmXHNxynfGyphe3HR3vPA5Q06Sqotp9iGKt0uEA== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIE0zCCA7ugAwIBAgIQGNrRniZ96LtKIVjNzGs7SjANBgkqhkiG9w0BAQUFADCB -yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL -ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJp -U2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxW -ZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0 -aG9yaXR5IC0gRzUwHhcNMDYxMTA4MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCByjEL -MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZW -ZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2ln -biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJp -U2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9y -aXR5IC0gRzUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvJAgIKXo1 -nmAMqudLO07cfLw8RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKzj/i5Vbex -t0uz/o9+B1fs70PbZmIVYc9gDaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIz -SdhDY2pSS9KP6HBRTdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQG -BO+QueQA5N06tRn/Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+ -rCpSx4/VBEnkjWNHiDxpg8v+R70rfk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/ -NIeWiu5T6CUVAgMBAAGjgbIwga8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8E -BAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEwHzAH -BgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVy -aXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFH/TZafC3ey78DAJ80M5+gKv -MzEzMA0GCSqGSIb3DQEBBQUAA4IBAQCTJEowX2LP2BqYLz3q3JktvXf2pXkiOOzE -p6B4Eq1iDkVwZMXnl2YtmAl+X6/WzChl8gGqCBpH3vn5fJJaCGkgDdk+bW48DW7Y -5gaRQBi5+MHt39tBquCWIMnNZBU4gcmU7qKEKQsTb47bDN0lAtukixlE0kF6BWlK -WE9gyn6CagsCqiUXObXbf+eEZSqVir2G3l6BFoMtEMze/aiCKm0oHw0LxOXnGiYZ -4fQRbxC1lfznQgUy286dUV4otp6F01vvpX1FQHKOtw5rDgb7MzVIcbidJ4vEZV8N -hnacRHr2lVz2XTIIM6RUthg/aFzyQkqFOFSDX9HoLPKsEdao7WNq ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIEuTCCA6GgAwIBAgIQQBrEZCGzEyEDDrvkEhrFHTANBgkqhkiG9w0BAQsFADCB -vTELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL -ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwOCBWZXJp -U2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MTgwNgYDVQQDEy9W -ZXJpU2lnbiBVbml2ZXJzYWwgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAe -Fw0wODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIG9MQswCQYDVQQGEwJVUzEX -MBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0 -IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAyMDA4IFZlcmlTaWduLCBJbmMuIC0gRm9y -IGF1dGhvcml6ZWQgdXNlIG9ubHkxODA2BgNVBAMTL1ZlcmlTaWduIFVuaXZlcnNh -bCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEF -AAOCAQ8AMIIBCgKCAQEAx2E3XrEBNNti1xWb/1hajCMj1mCOkdeQmIN65lgZOIzF -9uVkhbSicfvtvbnazU0AtMgtc6XHaXGVHzk8skQHnOgO+k1KxCHfKWGPMiJhgsWH -H26MfF8WIFFE0XBPV+rjHOPMee5Y2A7Cs0WTwCznmhcrewA3ekEzeOEz4vMQGn+H -LL729fdC4uW/h2KJXwBL38Xd5HVEMkE6HnFuacsLdUYI0crSK5XQz/u5QGtkjFdN -/BMReYTtXlT2NJ8IAfMQJQYXStrxHXpma5hgZqTZ79IugvHw7wnqRMkVauIDbjPT -rJ9VAMf2CGqUuV/c4DPxhGD5WycRtPwW8rtWaoAljQIDAQABo4GyMIGvMA8GA1Ud -EwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMG0GCCsGAQUFBwEMBGEwX6FdoFsw -WTBXMFUWCWltYWdlL2dpZjAhMB8wBwYFKw4DAhoEFI/l0xqGrI2Oa8PPgGrUSBgs -exkuMCUWI2h0dHA6Ly9sb2dvLnZlcmlzaWduLmNvbS92c2xvZ28uZ2lmMB0GA1Ud -DgQWBBS2d/ppSEefUxLVwuoHMnYH0ZcHGTANBgkqhkiG9w0BAQsFAAOCAQEASvj4 -sAPmLGd75JR3Y8xuTPl9Dg3cyLk1uXBPY/ok+myDjEedO2Pzmvl2MpWRsXe8rJq+ -seQxIcaBlVZaDrHC1LGmWazxY8u4TB1ZkErvkBYoH1quEPuBUDgMbMzxPcP1Y+Oz -4yHJJDnp/RVmRvQbEdBNc6N9Rvk97ahfYtTxP/jgdFcrGJ2BtMQo2pSXpXDrrB2+ -BxHw1dvd5Yzw1TKwg+ZX4o+/vqGqvz0dtdQ46tewXDpPaj+PwGZsY6rp2aQW9IHR -lRQOfc2VNNnSj3BzgXucfr2YYdhFh5iQxeuGMMY1v/D/w1WIg0vvBZIGcfK4mJO3 -7M2CYfE45k+XmCpajQ== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIICPDCCAaUCED9pHoGc8JpK83P/uUii5N0wDQYJKoZIhvcNAQEFBQAwXzELMAkG -A1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFz -cyAxIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2 -MDEyOTAwMDAwMFoXDTI4MDgwMjIzNTk1OVowXzELMAkGA1UEBhMCVVMxFzAVBgNV -BAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAxIFB1YmxpYyBQcmlt -YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUAA4GN -ADCBiQKBgQDlGb9to1ZhLZlIcfZn3rmN67eehoAKkQ76OCWvRoiC5XOooJskXQ0f -zGVuDLDQVoQYh5oGmxChc9+0WDlrbsH2FdWoqD+qEgaNMax/sDTXjzRniAnNFBHi -TkVWaR94AoDa3EeRKbs2yWNcxeDXLYd7obcysHswuiovMaruo2fa2wIDAQABMA0G -CSqGSIb3DQEBBQUAA4GBAFgVKTk8d6PaXCUDfGD67gmZPCcQcMgMCeazh88K4hiW -NWLMv5sneYlfycQJ9M61Hd8qveXbhpxoJeUwfLaJFf5n0a3hUKw8fGJLj7qE1xIV -Gx/KXQ/BUpQqEZnae88MNhPVNdwQGVnqlMEAv3WP2fr9dgTbYruQagPZRjXZ+Hxb ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDAjCCAmsCEEzH6qqYPnHTkxD4PTqJkZIwDQYJKoZIhvcNAQEFBQAwgcExCzAJ -BgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xh -c3MgMSBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcy -MTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3Jp -emVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMB4X -DTk4MDUxODAwMDAwMFoXDTI4MDgwMTIzNTk1OVowgcExCzAJBgNVBAYTAlVTMRcw -FQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgMSBQdWJsaWMg -UHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEo -YykgMTk5OCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5 -MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMIGfMA0GCSqGSIb3DQEB -AQUAA4GNADCBiQKBgQCq0Lq+Fi24g9TK0g+8djHKlNgdk4xWArzZbxpvUjZudVYK -VdPfQ4chEWWKfo+9Id5rMj8bhDSVBZ1BNeuS65bdqlk/AVNtmU/t5eIqWpDBucSm -Fc/IReumXY6cPvBkJHalzasab7bYe1FhbqZ/h8jit+U03EGI6glAvnOSPWvndQID -AQABMA0GCSqGSIb3DQEBBQUAA4GBAKlPww3HZ74sy9mozS11534Vnjty637rXC0J -h9ZrbWB85a7FkCMMXErQr7Fd88e2CtvgFZMN3QO8x3aKtd1Pw5sTdbgBwObJW2ul -uIncrKTdcu1OofdPvAbT6shkdHvClUGcZXNY8ZCaPGqxmMnEh7zPRW1F4m4iP/68 -DzFc6PLZ ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIEGjCCAwICEQCLW3VWhFSFCwDPrzhIzrGkMA0GCSqGSIb3DQEBBQUAMIHKMQsw -CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZl -cmlTaWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWdu -LCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlT -aWduIENsYXNzIDEgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3Jp -dHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQswCQYD -VQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlT -aWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJ -bmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWdu -IENsYXNzIDEgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg -LSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAN2E1Lm0+afY8wR4 -nN493GwTFtl63SRRZsDHJlkNrAYIwpTRMx/wgzUfbhvI3qpuFU5UJ+/EbRrsC+MO -8ESlV8dAWB6jRx9x7GD2bZTIGDnt/kIYVt/kTEkQeE4BdjVjEjbdZrwBBDajVWjV -ojYJrKshJlQGrT/KFOCsyq0GHZXi+J3x4GD/wn91K0zM2v6HmSHquv4+VNfSWXjb -PG7PoBMAGrgnoeS+Z5bKoMWznN3JdZ7rMJpfo83ZrngZPyPpXNspva1VyBtUjGP2 -6KbqxzcSXKMpHgLZ2x87tNcPVkeBFQRKr4Mn0cVYiMHd9qqnoxjaaKptEVHhv2Vr -n5Z20T0CAwEAATANBgkqhkiG9w0BAQUFAAOCAQEAq2aN17O6x5q25lXQBfGfMY1a -qtmqRiYPce2lrVNWYgFHKkTp/j90CxObufRNG7LRX7K20ohcs5/Ny9Sn2WCVhDr4 -wTcdYcrnsMXlkdpUpqwxga6X3s0IrLjAl4B/bnKk52kTlWUfxJM8/XmPBNQ+T+r3 -ns7NZ3xPZQL/kYVUc8f/NveGLezQXk//EZ9yBta4GvFMDSZl4kSAHsef493oCtrs -pSCAaWihT37ha88HQfqDjrw43bAuEbFrskLMmrz5SCJ5ShkPshw+IHTZasO+8ih4 -E1Z5T21Q6huwtVexN2ZYI/PcD98Kh8TvhgXVOBRgmaNL3gaWcSzy27YfpO8/7g== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDAzCCAmwCEQC5L2DMiJ+hekYJuFtwbIqvMA0GCSqGSIb3DQEBBQUAMIHBMQsw -CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xPDA6BgNVBAsTM0Ns -YXNzIDIgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBH -MjE6MDgGA1UECxMxKGMpIDE5OTggVmVyaVNpZ24sIEluYy4gLSBGb3IgYXV0aG9y -aXplZCB1c2Ugb25seTEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1c3QgTmV0d29yazAe -Fw05ODA1MTgwMDAwMDBaFw0yODA4MDEyMzU5NTlaMIHBMQswCQYDVQQGEwJVUzEX -MBUGA1UEChMOVmVyaVNpZ24sIEluYy4xPDA6BgNVBAsTM0NsYXNzIDIgUHVibGlj -IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMjE6MDgGA1UECxMx -KGMpIDE5OTggVmVyaVNpZ24sIEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25s -eTEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1c3QgTmV0d29yazCBnzANBgkqhkiG9w0B -AQEFAAOBjQAwgYkCgYEAp4gBIXQs5xoD8JjhlzwPIQjxnNuX6Zr8wgQGE75fUsjM -HiwSViy4AWkszJkfrbCWrnkE8hM5wXuYuggs6MKEEyyqaekJ9MepAqRCwiNPStjw -DqL7MWzJ5m+ZJwf15vRMeJ5t60aG+rmGyVTyssSv1EYcWskVMP8NbPUtDm3Of3cC -AwEAATANBgkqhkiG9w0BAQUFAAOBgQByLvl/0fFx+8Se9sVeUYpAmLho+Jscg9ji -nb3/7aHmZuovCfTK1+qlK5X2JGCGTUQug6XELaDTrnhpb3LabK4I8GOSN+a7xDAX -rXfMSTWqz9iP0b63GJZHc2pUIjRkLbYWm1lbtFFZOrMLFPQS32eg9K0yZF6xRnIn -jBJ7xUS0rg== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIEGTCCAwECEGFwy0mMX5hFKeewptlQW3owDQYJKoZIhvcNAQEFBQAwgcoxCzAJ -BgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjEfMB0GA1UECxMWVmVy -aVNpZ24gVHJ1c3QgTmV0d29yazE6MDgGA1UECxMxKGMpIDE5OTkgVmVyaVNpZ24s -IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTFFMEMGA1UEAxM8VmVyaVNp -Z24gQ2xhc3MgMiBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0 -eSAtIEczMB4XDTk5MTAwMTAwMDAwMFoXDTM2MDcxNjIzNTk1OVowgcoxCzAJBgNV -BAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjEfMB0GA1UECxMWVmVyaVNp -Z24gVHJ1c3QgTmV0d29yazE6MDgGA1UECxMxKGMpIDE5OTkgVmVyaVNpZ24sIElu -Yy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTFFMEMGA1UEAxM8VmVyaVNpZ24g -Q2xhc3MgMiBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAt -IEczMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArwoNwtUs22e5LeWU -J92lvuCwTY+zYVY81nzD9M0+hsuiiOLh2KRpxbXiv8GmR1BeRjmL1Za6tW8UvxDO -JxOeBUebMXoT2B/Z0wI3i60sR/COgQanDTAM6/c8DyAd3HJG7qUCyFvDyVZpTMUY -wZF7C9UTAJu878NIPkZgIIUq1ZC2zYugzDLdt/1AVbJQHFauzI13TccgTacxdu9o -koqQHgiBVrKtaaNS0MscxCM9H5n+TOgWY47GCI72MfbS+uV23bUckqNJzc0BzWjN -qWm6o+sdDZykIKbBoMXRRkwXbdKsZj+WjOCE1Db/IlnF+RFgqF8EffIa9iVCYQ/E -Srg+iQIDAQABMA0GCSqGSIb3DQEBBQUAA4IBAQA0JhU8wI1NQ0kdvekhktdmnLfe -xbjQ5F1fdiLAJvmEOjr5jLX77GDx6M4EsMjdpwOPMPOY36TmpDHf0xwLRtxyID+u -7gU8pDM/CzmscHhzS5kr3zDCVLCoO1Wh/hYozUK9dG6A2ydEp85EXdQbkJgNHkKU -sQAsBNB0owIFImNjzYO1+8FtYmtpdf1dcEG59b98377BMnMiIYtYgXsVkXq642RI -sH/7NiXaldDxJBQX3RiAa0YjOVT1jmIJBB2UkKab5iXiQkWquJCtvgiPqQtCGJTP -cjnhsUPgKM+351psE2tJs//jGHyJizNdrDPXp/naOlXJWBD5qu9ats9LS98q ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIICPDCCAaUCEHC65B0Q2Sk0tjjKewPMur8wDQYJKoZIhvcNAQECBQAwXzELMAkG -A1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFz -cyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2 -MDEyOTAwMDAwMFoXDTI4MDgwMTIzNTk1OVowXzELMAkGA1UEBhMCVVMxFzAVBgNV -BAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAzIFB1YmxpYyBQcmlt -YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUAA4GN -ADCBiQKBgQDJXFme8huKARS0EN8EQNvjV69qRUCPhAwL0TPZ2RHP7gJYHyX3KqhE -BarsAx94f56TuZoAqiN91qyFomNFx3InzPRMxnVx0jnvT0Lwdd8KkMaOIG+YD/is -I19wKTakyYbnsZogy1Olhec9vn2a/iRFM9x2Fe0PonFkTGUugWhFpwIDAQABMA0G -CSqGSIb3DQEBAgUAA4GBALtMEivPLCYATxQT3ab7/AoRhIzzKBxnki98tsX63/Do -lbwdj2wsqFHMc9ikwFPwTtYmwHYBV4GSXiHx0bH/59AhWM1pF+NEHJwZRDmJXNyc -AA9WjQKZ7aKQRUzkuxCkPfAyAw7xzvjoyVGM5mKf5p/AfbdynMk2OmufTqj/ZA1k ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDAjCCAmsCEH3Z/gfPqB63EHln+6eJNMYwDQYJKoZIhvcNAQEFBQAwgcExCzAJ -BgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xh -c3MgMyBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcy -MTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3Jp -emVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMB4X -DTk4MDUxODAwMDAwMFoXDTI4MDgwMTIzNTk1OVowgcExCzAJBgNVBAYTAlVTMRcw -FQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgMyBQdWJsaWMg -UHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEo -YykgMTk5OCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5 -MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMIGfMA0GCSqGSIb3DQEB -AQUAA4GNADCBiQKBgQDMXtERXVxp0KvTuWpMmR9ZmDCOFoUgRm1HP9SFIIThbbP4 -pO0M8RcPO/mn+SXXwc+EY/J8Y8+iR/LGWzOOZEAEaMGAuWQcRXfH2G71lSk8UOg0 -13gfqLptQ5GVj0VXXn7F+8qkBOvqlzdUMG+7AUcyM83cV5tkaWH4mx0ciU9cZwID -AQABMA0GCSqGSIb3DQEBBQUAA4GBAFFNzb5cy5gZnBWyATl4Lk0PZ3BwmcYQWpSk -U01UbSuvDV1Ai2TT1+7eVmGSX6bEHRBhNtMsJzzoKQm5EWR0zLVznxxIqbxhAe7i -F6YM40AIOw7n60RzKprxaZLvcRTDOaxxp5EJb+RxBrO6WVcmeQD2+A2iMzAo1KpY -oJ2daZH9 ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIEGjCCAwICEQCbfgZJoz5iudXukEhxKe9XMA0GCSqGSIb3DQEBBQUAMIHKMQsw -CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZl -cmlTaWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWdu -LCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlT -aWduIENsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3Jp -dHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQswCQYD -VQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlT -aWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJ -bmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWdu -IENsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg -LSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMu6nFL8eB8aHm8b -N3O9+MlrlBIwT/A2R/XQkQr1F8ilYcEWQE37imGQ5XYgwREGfassbqb1EUGO+i2t -KmFZpGcmTNDovFJbcCAEWNF6yaRpvIMXZK0Fi7zQWM6NjPXr8EJJC52XJ2cybuGu -kxUccLwgTS8Y3pKI6GyFVxEa6X7jJhFUokWWVYPKMIno3Nij7SqAP395ZVc+FSBm -CC+Vk7+qRy+oRpfwEuL+wgorUeZ25rdGt+INpsyow0xZVYnm6FNcHOqd8GIWC6fJ -Xwzw3sJ2zq/3avL6QaaiMxTJ5Xpj055iN9WFZZ4O5lMkdBteHRJTW8cs54NJOxWu -imi5V5cCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEAERSWwauSCPc/L8my/uRan2Te -2yFPhpk0djZX3dAVL8WtfxUfN2JzPtTnX84XA9s1+ivbrmAJXx5fj267Cz3qWhMe -DGBvtcC1IyIuBwvLqXTLR7sdwdela8wv0kL9Sd2nic9TutoAWii/gt/4uhMdUIaC -/Y4wjylGsB49Ndo4YhYYSq3mtlFs3q9i6wHQHiT+eo8SGhJouPtmmRQURVyu565p -F4ErWjfJXir0xuKhXFSbplQAz/DxwceYMBo7Nhbbo27q/a2ywtrvAkcTisDxszGt -TxzhT5yvDwyd93gN2PQ1VoDat20Xj50egWTh/sVFuq1ruQp6Tk9LhO5L8X3dEQ== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIICPDCCAaUCEDyRMcsf9tAbDpq40ES/Er4wDQYJKoZIhvcNAQEFBQAwXzELMAkG -A1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFz -cyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2 -MDEyOTAwMDAwMFoXDTI4MDgwMjIzNTk1OVowXzELMAkGA1UEBhMCVVMxFzAVBgNV -BAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAzIFB1YmxpYyBQcmlt -YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUAA4GN -ADCBiQKBgQDJXFme8huKARS0EN8EQNvjV69qRUCPhAwL0TPZ2RHP7gJYHyX3KqhE -BarsAx94f56TuZoAqiN91qyFomNFx3InzPRMxnVx0jnvT0Lwdd8KkMaOIG+YD/is -I19wKTakyYbnsZogy1Olhec9vn2a/iRFM9x2Fe0PonFkTGUugWhFpwIDAQABMA0G -CSqGSIb3DQEBBQUAA4GBABByUqkFFBkyCEHwxWsKzH4PIRnN5GfcX6kb5sroc50i -2JhucwNhkcV8sEVAbkSdjbCxlnRhLQ2pRdKkkirWmnWXbj9T/UWZYB2oK0z5XqcJ -2HUw19JlYD1n1khVdWk/kfVIC0dpImmClr7JyDiGSnoscxlIaU5rfGW/D/xwzoiQ ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDojCCAoqgAwIBAgIQE4Y1TR0/BvLB+WUF1ZAcYjANBgkqhkiG9w0BAQUFADBr -MQswCQYDVQQGEwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMmVmlzYSBJbnRl -cm5hdGlvbmFsIFNlcnZpY2UgQXNzb2NpYXRpb24xHDAaBgNVBAMTE1Zpc2EgZUNv -bW1lcmNlIFJvb3QwHhcNMDIwNjI2MDIxODM2WhcNMjIwNjI0MDAxNjEyWjBrMQsw -CQYDVQQGEwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMmVmlzYSBJbnRlcm5h -dGlvbmFsIFNlcnZpY2UgQXNzb2NpYXRpb24xHDAaBgNVBAMTE1Zpc2EgZUNvbW1l -cmNlIFJvb3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvV95WHm6h -2mCxlCfLF9sHP4CFT8icttD0b0/Pmdjh28JIXDqsOTPHH2qLJj0rNfVIsZHBAk4E -lpF7sDPwsRROEW+1QK8bRaVK7362rPKgH1g/EkZgPI2h4H3PVz4zHvtH8aoVlwdV -ZqW1LS7YgFmypw23RuwhY/81q6UCzyr0TP579ZRdhE2o8mCP2w4lPJ9zcc+U30rq -299yOIzzlr3xF7zSujtFWsan9sYXiwGd/BmoKoMWuDpI/k4+oKsGGelT84ATB+0t -vz8KPFUgOSwsAGl0lUq8ILKpeeUYiZGo3BxN77t+Nwtd/jmliFKMAGzsGHxBvfaL -dXe6YJ2E5/4tAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQD -AgEGMB0GA1UdDgQWBBQVOIMPPyw/cDMezUb+B4wg4NfDtzANBgkqhkiG9w0BAQUF -AAOCAQEAX/FBfXxcCLkr4NWSR/pnXKUTwwMhmytMiUbPWU3J/qVAtmPN3XEolWcR -zCSs00Rsca4BIGsDoo8Ytyk6feUWYFN4PMCvFYP3j1IzJL1kk5fui/fbGKhtcbP3 -LBfQdCVp9/5rPJS+TUtBjE7ic9DjkCJzQ83z7+pzzkWKsKZJ/0x9nXGIxHYdkFsd -7v3M9+79YKWxehZx0RbQfBI8bGmX265fOZpwLwU8GUYEmSA20GBuYQa7FkKMcPcw -++DbZqMAAb3mLNqRX6BGi01qnD093QVG/na/oAo85ADmJ7f/hC3euiInlhBx6yLt -398znM/jra6O1I7mT1GvFpLgXPYHDw== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIEvTCCA6WgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBhTELMAkGA1UEBhMCVVMx -IDAeBgNVBAoMF1dlbGxzIEZhcmdvIFdlbGxzU2VjdXJlMRwwGgYDVQQLDBNXZWxs -cyBGYXJnbyBCYW5rIE5BMTYwNAYDVQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMgUm9v -dCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDcxMjEzMTcwNzU0WhcNMjIxMjE0 -MDAwNzU0WjCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoMF1dlbGxzIEZhcmdvIFdl -bGxzU2VjdXJlMRwwGgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYwNAYDVQQD -DC1XZWxsc1NlY3VyZSBQdWJsaWMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkw -ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDub7S9eeKPCCGeOARBJe+r -WxxTkqxtnt3CxC5FlAM1iGd0V+PfjLindo8796jE2yljDpFoNoqXjopxaAkH5OjU -Dk/41itMpBb570OYj7OeUt9tkTmPOL13i0Nj67eT/DBMHAGTthP796EfvyXhdDcs -HqRePGj4S78NuR4uNuip5Kf4D8uCdXw1LSLWwr8L87T8bJVhHlfXBIEyg1J55oNj -z7fLY4sR4r1e6/aN7ZVyKLSsEmLpSjPmgzKuBXWVvYSV2ypcm44uDLiBK0HmOFaf -SZtsdvqKXfcBeYF8wYNABf5x/Qw/zE5gCQ5lRxAvAcAFP4/4s0HvWkJ+We/Slwxl -AgMBAAGjggE0MIIBMDAPBgNVHRMBAf8EBTADAQH/MDkGA1UdHwQyMDAwLqAsoCqG -KGh0dHA6Ly9jcmwucGtpLndlbGxzZmFyZ28uY29tL3dzcHJjYS5jcmwwDgYDVR0P -AQH/BAQDAgHGMB0GA1UdDgQWBBQmlRkQ2eihl5H/3BnZtQQ+0nMKajCBsgYDVR0j -BIGqMIGngBQmlRkQ2eihl5H/3BnZtQQ+0nMKaqGBi6SBiDCBhTELMAkGA1UEBhMC -VVMxIDAeBgNVBAoMF1dlbGxzIEZhcmdvIFdlbGxzU2VjdXJlMRwwGgYDVQQLDBNX -ZWxscyBGYXJnbyBCYW5rIE5BMTYwNAYDVQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMg -Um9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHmCAQEwDQYJKoZIhvcNAQEFBQADggEB -ALkVsUSRzCPIK0134/iaeycNzXK7mQDKfGYZUMbVmO2rvwNa5U3lHshPcZeG1eMd -/ZDJPHV3V3p9+N701NX3leZ0bh08rnyd2wIDBSxxSyU+B+NemvVmFymIGjifz6pB -A4SXa5M4esowRBskRDPQ5NHcKDj0E0M1NSljqHyita04pO2t/caaH/+Xc/77szWn -k4bGdpEA5qxRFsQnMlzbc9qlk1eOPm01JghZ1edE13YgY+esE2fDbbFwRnzVlhE9 -iW9dqKHrjQrawx0zbKPqZxmamX9LPYNRKh3KL4YMon4QLSvUFpULB6ouFJJJtylv -2G0xffX8oRAHh84vWdw+WNs= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIFdjCCA16gAwIBAgIQXmjWEXGUY1BWAGjzPsnFkTANBgkqhkiG9w0BAQUFADBV -MQswCQYDVQQGEwJDTjEaMBgGA1UEChMRV29TaWduIENBIExpbWl0ZWQxKjAoBgNV -BAMTIUNlcnRpZmljYXRpb24gQXV0aG9yaXR5IG9mIFdvU2lnbjAeFw0wOTA4MDgw -MTAwMDFaFw0zOTA4MDgwMTAwMDFaMFUxCzAJBgNVBAYTAkNOMRowGAYDVQQKExFX -b1NpZ24gQ0EgTGltaXRlZDEqMCgGA1UEAxMhQ2VydGlmaWNhdGlvbiBBdXRob3Jp -dHkgb2YgV29TaWduMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAvcqN -rLiRFVaXe2tcesLea9mhsMMQI/qnobLMMfo+2aYpbxY94Gv4uEBf2zmoAHqLoE1U -fcIiePyOCbiohdfMlZdLdNiefvAA5A6JrkkoRBoQmTIPJYhTpA2zDxIIFgsDcScc -f+Hb0v1naMQFXQoOXXDX2JegvFNBmpGN9J42Znp+VsGQX+axaCA2pIwkLCxHC1l2 -ZjC1vt7tj/id07sBMOby8w7gLJKA84X5KIq0VC6a7fd2/BVoFutKbOsuEo/Uz/4M -x1wdC34FMr5esAkqQtXJTpCzWQ27en7N1QhatH/YHGkR+ScPewavVIMYe+HdVHpR -aG53/Ma/UkpmRqGyZxq7o093oL5d//xWC0Nyd5DKnvnyOfUNqfTq1+ezEC8wQjch -zDBwyYaYD8xYTYO7feUapTeNtqwylwA6Y3EkHp43xP901DfA4v6IRmAR3Qg/UDar -uHqklWJqbrDKaiFaafPz+x1wOZXzp26mgYmhiMU7ccqjUu6Du/2gd/Tkb+dC221K -mYo0SLwX3OSACCK28jHAPwQ+658geda4BmRkAjHXqc1S+4RFaQkAKtxVi8QGRkvA -Sh0JWzko/amrzgD5LkhLJuYwTKVYyrREgk/nkR4zw7CT/xH8gdLKH3Ep3XZPkiWv -HYG3Dy+MwwbMLyejSuQOmbp8HkUff6oZRZb9/D0CAwEAAaNCMEAwDgYDVR0PAQH/ -BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFOFmzw7R8bNLtwYgFP6H -EtX2/vs+MA0GCSqGSIb3DQEBBQUAA4ICAQCoy3JAsnbBfnv8rWTjMnvMPLZdRtP1 -LOJwXcgu2AZ9mNELIaCJWSQBnfmvCX0KI4I01fx8cpm5o9dU9OpScA7F9dY74ToJ -MuYhOZO9sxXqT2r09Ys/L3yNWC7F4TmgPsc9SnOeQHrAK2GpZ8nzJLmzbVUsWh2e -JXLOC62qx1ViC777Y7NhRCOjy+EaDveaBk3e1CNOIZZbOVtXHS9dCF4Jef98l7VN -g64N1uajeeAz0JmWAjCnPv/So0M/BVoG6kQC2nz4SNAzqfkHx5Xh9T71XXG68pWp -dIhhWeO/yloTunK0jF02h+mmxTwTv97QRCbut+wucPrXnbes5cVAWubXbHssw1ab -R80LzvobtCHXt2a49CUwi1wNuepnsvRtrtWhnk/Yn+knArAdBtaP4/tIEp9/EaEQ -PkxROpaw0RPxx9gmrjrKkcRpnd8BKWRRb2jaFOwIQZeQjdCygPLPwj2/kWjFgGce -xGATVdVhmVd8upUPYUk6ynW8yQqTP2cOEvIo4jEbwFcW3wh8GcF+Dx+FHgo2fFt+ -J7x6v+Db9NpSvd4MVHAxkUOVyLzwPt0JfjBkUO1/AaQzZ01oT74V77D2AhGiGxMl -OtzCWfHjXEa7ZywCRuoeSKbmW9m1vFGikpbbqsY3Iqb+zCB0oy2pLmvLwIIRIbWT -ee5Ehr7XHuQe+w== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIFWDCCA0CgAwIBAgIQUHBrzdgT/BtOOzNy0hFIjTANBgkqhkiG9w0BAQsFADBG -MQswCQYDVQQGEwJDTjEaMBgGA1UEChMRV29TaWduIENBIExpbWl0ZWQxGzAZBgNV -BAMMEkNBIOayg+mAmuagueivgeS5pjAeFw0wOTA4MDgwMTAwMDFaFw0zOTA4MDgw -MTAwMDFaMEYxCzAJBgNVBAYTAkNOMRowGAYDVQQKExFXb1NpZ24gQ0EgTGltaXRl -ZDEbMBkGA1UEAwwSQ0Eg5rKD6YCa5qC56K+B5LmmMIICIjANBgkqhkiG9w0BAQEF -AAOCAg8AMIICCgKCAgEA0EkhHiX8h8EqwqzbdoYGTufQdDTc7WU1/FDWiD+k8H/r -D195L4mx/bxjWDeTmzj4t1up+thxx7S8gJeNbEvxUNUqKaqoGXqW5pWOdO2XCld1 -9AXbbQs5uQF/qvbW2mzmBeCkTVL829B0txGMe41P/4eDrv8FAxNXUDf+jJZSEExf -v5RxadmWPgxDT74wwJ85dE8GRV2j1lY5aAfMh09Qd5Nx2UQIsYo06Yms25tO4dnk -UkWMLhQfkWsZHWgpLFbE4h4TV2TwYeO5Ed+w4VegG63XX9Gv2ystP9Bojg/qnw+L -NVgbExz03jWhCl3W6t8Sb8D7aQdGctyB9gQjF+BNdeFyb7Ao65vh4YOhn0pdr8yb -+gIgthhid5E7o9Vlrdx8kHccREGkSovrlXLp9glk3Kgtn3R46MGiCWOc76DbT52V -qyBPt7D3h1ymoOQ3OMdc4zUPLK2jgKLsLl3Az+2LBcLmc272idX10kaO6m1jGx6K -yX2m+Jzr5dVjhU1zZmkR/sgO9MHHZklTfuQZa/HpelmjbX7FF+Ynxu8b22/8DU0G -AbQOXDBGVWCvOGU6yke6rCzMRh+yRpY/8+0mBe53oWprfi1tWFxK1I5nuPHa1UaK -J/kR8slC/k7e3x9cxKSGhxYzoacXGKUN5AXlK8IrC6KVkLn9YDxOiT7nnO4fuwEC -AwEAAaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0O -BBYEFOBNv9ybQV0T6GTwp+kVpOGBwboxMA0GCSqGSIb3DQEBCwUAA4ICAQBqinA4 -WbbaixjIvirTthnVZil6Xc1bL3McJk6jfW+rtylNpumlEYOnOXOvEESS5iVdT2H6 -yAa+Tkvv/vMx/sZ8cApBWNromUuWyXi8mHwCKe0JgOYKOoICKuLJL8hWGSbueBwj -/feTZU7n85iYr83d2Z5AiDEoOqsuC7CsDCT6eiaY8xJhEPRdF/d+4niXVOKM6Cm6 -jBAyvd0zaziGfjk9DgNyp115j0WKWa5bIW4xRtVZjc8VX90xJc/bYNaBRHIpAlf2 -ltTW/+op2znFuCyKGo3Oy+dCMYYFaA6eFN0AkLppRQjbbpCBhqcqBT/mhDn4t/lX -X0ykeVoQDF7Va/81XwVRHmyjdanPUIPTfPRm94KNPQx96N97qA4bLJyuQHCH2u2n -FoJavjVsIE4iYdm8UXrNemHcSxH5/mc0zy4EZmFcV5cjjPOGG0jfKq+nwf/Yjj4D -u9gqsPoUJbJRa4ZDhS4HIxaAjUz7tGM7zMN07RujHv41D198HRaG9Q7DlfEvr10l -O1Hm13ZBONFLAzkopR6RctR9q5czxNM+4Gm2KHmgCY0c0f9BckgG/Jou5yD5m6Le -ie2uPAmvylezkolwQOQvT8Jwg0DXJCxr5wkf09XHwQj02w47HAcLQxGEIYbpgNR1 -2KvxAmLBsX5VYc8T1yaw15zLKYs4SgsOkI26oQ== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIEMDCCAxigAwIBAgIQUJRs7Bjq1ZxN1ZfvdY+grTANBgkqhkiG9w0BAQUFADCB -gjELMAkGA1UEBhMCVVMxHjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEk -MCIGA1UEChMbWFJhbXAgU2VjdXJpdHkgU2VydmljZXMgSW5jMS0wKwYDVQQDEyRY -UmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQxMTAxMTcx -NDA0WhcNMzUwMTAxMDUzNzE5WjCBgjELMAkGA1UEBhMCVVMxHjAcBgNVBAsTFXd3 -dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2VjdXJpdHkgU2Vy -dmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBB -dXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCYJB69FbS6 -38eMpSe2OAtp87ZOqCwuIR1cRN8hXX4jdP5efrRKt6atH67gBhbim1vZZ3RrXYCP -KZ2GG9mcDZhtdhAoWORlsH9KmHmf4MMxfoArtYzAQDsRhtDLooY2YKTVMIJt2W7Q -DxIEM5dfT2Fa8OT5kavnHTu86M/0ay00fOJIYRyO82FEzG+gSqmUsE3a56k0enI4 -qEHMPJQRfevIpoy3hsvKMzvZPTeL+3o+hiznc9cKV6xkmxnr9A8ECIqsAxcZZPRa -JSKNNCyy9mgdEm3Tih4U2sSPpuIjhdV6Db1q4Ons7Be7QhtnqiXtRYMh/MHJfNVi -PvryxS3T/dRlAgMBAAGjgZ8wgZwwEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0P -BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFMZPoj0GY4QJnM5i5ASs -jVy16bYbMDYGA1UdHwQvMC0wK6ApoCeGJWh0dHA6Ly9jcmwueHJhbXBzZWN1cml0 -eS5jb20vWEdDQS5jcmwwEAYJKwYBBAGCNxUBBAMCAQEwDQYJKoZIhvcNAQEFBQAD -ggEBAJEVOQMBG2f7Shz5CmBbodpNl2L5JFMn14JkTpAuw0kbK5rc/Kh4ZzXxHfAR -vbdI4xD2Dd8/0sm2qlWkSLoC295ZLhVbO50WfUfXN+pfTXYSNrsf16GBBEYgoyxt -qZ4Bfj8pzgCT3/3JknOJiWSe5yvkHJEs0rnOfc5vMZnT5r7SHpDwCRR5XCOrTdLa -IR9NmXmd4c8nnxCbHIgNsIpkQTG4DmyQJKSbXHGPurt+HBvbaoAPIbzp26a3QPSy -i6mx5O+aGtA9aZnuqCij4Tyz8LIRnM98QObd50N9otg6tamN8jSZxNQQ4Qb9CYQQ -O+7ETPTsJ3xCwnR8gooJybQDJbw= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDODCCAiCgAwIBAgIGIAYFFnACMA0GCSqGSIb3DQEBBQUAMDsxCzAJBgNVBAYT -AlJPMREwDwYDVQQKEwhjZXJ0U0lHTjEZMBcGA1UECxMQY2VydFNJR04gUk9PVCBD -QTAeFw0wNjA3MDQxNzIwMDRaFw0zMTA3MDQxNzIwMDRaMDsxCzAJBgNVBAYTAlJP -MREwDwYDVQQKEwhjZXJ0U0lHTjEZMBcGA1UECxMQY2VydFNJR04gUk9PVCBDQTCC -ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALczuX7IJUqOtdu0KBuqV5Do -0SLTZLrTk+jUrIZhQGpgV2hUhE28alQCBf/fm5oqrl0Hj0rDKH/v+yv6efHHrfAQ -UySQi2bJqIirr1qjAOm+ukbuW3N7LBeCgV5iLKECZbO9xSsAfsT8AzNXDe3i+s5d -RdY4zTW2ssHQnIFKquSyAVwdj1+ZxLGt24gh65AIgoDzMKND5pCCrlUoSe1b16kQ -OA7+j0xbm0bqQfWwCHTD0IgztnzXdN/chNFDDnU5oSVAKOp4yw4sLjmdjItuFhwv -JoIQ4uNllAoEwF73XVv4EOLQunpL+943AAAaWyjj0pxzPjKHmKHJUS/X3qwzs08C -AwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAcYwHQYDVR0O -BBYEFOCMm9slSbPxfIbWskKHC9BroNnkMA0GCSqGSIb3DQEBBQUAA4IBAQA+0hyJ -LjX8+HXd5n9liPRyTMks1zJO890ZeUe9jjtbkw9QSSQTaxQGcu8J06Gh40CEyecY -MnQ8SG4Pn0vU9x7Tk4ZkVJdjclDVVc/6IJMCopvDI5NOFlV2oHB5bc0hH88vLbwZ -44gx+FkagQnIl6Z0x2DEW8xXjrJ1/RsCCdtZb3KTafcxQdaIOL+Hsr0Wefmq5L6I -Jd1hJyMctTEHBDa0GpC9oHRxUIltvBTjD4au8as+x6AJzKNI0eDbZOeStc+vckNw -i/nDhDwTqn6Sm1dTk/pwwpEOMfmbZ13pljheX7NzTogVZ96edhBiIL5VaZVDADlN -9u6wWk5JRFRYX0KD ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIFsDCCA5igAwIBAgIQFci9ZUdcr7iXAF7kBtK8nTANBgkqhkiG9w0BAQUFADBe -MQswCQYDVQQGEwJUVzEjMCEGA1UECgwaQ2h1bmdod2EgVGVsZWNvbSBDby4sIEx0 -ZC4xKjAoBgNVBAsMIWVQS0kgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAe -Fw0wNDEyMjAwMjMxMjdaFw0zNDEyMjAwMjMxMjdaMF4xCzAJBgNVBAYTAlRXMSMw -IQYDVQQKDBpDaHVuZ2h3YSBUZWxlY29tIENvLiwgTHRkLjEqMCgGA1UECwwhZVBL -SSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkqhkiG9w0BAQEF -AAOCAg8AMIICCgKCAgEA4SUP7o3biDN1Z82tH306Tm2d0y8U82N0ywEhajfqhFAH -SyZbCUNsIZ5qyNUD9WBpj8zwIuQf5/dqIjG3LBXy4P4AakP/h2XGtRrBp0xtInAh -ijHyl3SJCRImHJ7K2RKilTza6We/CKBk49ZCt0Xvl/T29de1ShUCWH2YWEtgvM3X -DZoTM1PRYfl61dd4s5oz9wCGzh1NlDivqOx4UXCKXBCDUSH3ET00hl7lSM2XgYI1 -TBnsZfZrxQWh7kcT1rMhJ5QQCtkkO7q+RBNGMD+XPNjX12ruOzjjK9SXDrkb5wdJ -fzcq+Xd4z1TtW0ado4AOkUPB1ltfFLqfpo0kR0BZv3I4sjZsN/+Z0V0OWQqraffA -sgRFelQArr5T9rXn4fg8ozHSqf4hUmTFpmfwdQcGlBSBVcYn5AGPF8Fqcde+S/uU -WH1+ETOxQvdibBjWzwloPn9s9h6PYq2lY9sJpx8iQkEeb5mKPtf5P0B6ebClAZLS -nT0IFaUQAS2zMnaolQ2zepr7BxB4EW/hj8e6DyUadCrlHJhBmd8hh+iVBmoKs2pH -dmX2Os+PYhcZewoozRrSgx4hxyy/vv9haLdnG7t4TY3OZ+XkwY63I2binZB1NJip -NiuKmpS5nezMirH4JYlcWrYvjB9teSSnUmjDhDXiZo1jDiVN1Rmy5nk3pyKdVDEC -AwEAAaNqMGgwHQYDVR0OBBYEFB4M97Zn8uGSJglFwFU5Lnc/QkqiMAwGA1UdEwQF -MAMBAf8wOQYEZyoHAAQxMC8wLQIBADAJBgUrDgMCGgUAMAcGBWcqAwAABBRFsMLH -ClZ87lt4DJX5GFPBphzYEDANBgkqhkiG9w0BAQUFAAOCAgEACbODU1kBPpVJufGB -uvl2ICO1J2B01GqZNF5sAFPZn/KmsSQHRGoqxqWOeBLoR9lYGxMqXnmbnwoqZ6Yl -PwZpVnPDimZI+ymBV3QGypzqKOg4ZyYr8dW1P2WT+DZdjo2NQCCHGervJ8A9tDkP -JXtoUHRVnAxZfVo9QZQlUgjgRywVMRnVvwdVxrsStZf0X4OFunHB2WyBEXYKCrC/ -gpf36j36+uwtqSiUO1bd0lEursC9CBWMd1I0ltabrNMdjmEPNXubrjlpC2JgQCA2 -j6/7Nu4tCEoduL+bXPjqpRugc6bY+G7gMwRfaKonh+3ZwZCc7b3jajWvY9+rGNm6 -5ulK6lCKD2GTHuItGeIwlDWSXQ62B68ZgI9HkFFLLk3dheLSClIKF5r8GrBQAuUB -o2M3IUxExJtRmREOc5wGj1QupyheRDmHVi03vYVElOEMSyycw5KFNGHLD7ibSkNS -/jQ6fbjpKdx2qcgw+BRxgMYeNkh0IkFch4LoGHGLQYlE535YW6i4jRPpp2zDR+2z -Gp1iro2C6pSe3VkQw63d4k3jMdXH7OjysP6SHhYKGvzZ8/gntsm+HbRsZJB/9OTE -W9c3rkIO3aQab3yIVMUWbuF6aC74Or8NpDyJO3inTmODBCEIZ43ygknQW/2xzQ+D -hNQ+IIX3Sj0rnP0qCglN6oH4EZw= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIEIDCCAwigAwIBAgIQNE7VVyDV7exJ9C/ON9srbTANBgkqhkiG9w0BAQUFADCB -qTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMf -Q2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIw -MDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNV -BAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwHhcNMDYxMTE3MDAwMDAwWhcNMzYw -NzE2MjM1OTU5WjCBqTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5j -LjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYG -A1UECxMvKGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl -IG9ubHkxHzAdBgNVBAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwggEiMA0GCSqG -SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCsoPD7gFnUnMekz52hWXMJEEUMDSxuaPFs -W0hoSVk3/AszGcJ3f8wQLZU0HObrTQmnHNK4yZc2AreJ1CRfBsDMRJSUjQJib+ta -3RGNKJpchJAQeg29dGYvajig4tVUROsdB58Hum/u6f1OCyn1PoSgAfGcq/gcfomk -6KHYcWUNo1F77rzSImANuVud37r8UVsLr5iy6S7pBOhih94ryNdOwUxkHt3Ph1i6 -Sk/KaAcdHJ1KxtUvkcx8cXIcxcBn6zL9yZJclNqFwJu/U30rCfSMnZEfl2pSy94J -NqR32HuHUETVPm4pafs5SSYeCaWAe0At6+gnhcn+Yf1+5nyXHdWdAgMBAAGjQjBA -MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBR7W0XP -r87Lev0xkhpqtvNG61dIUDANBgkqhkiG9w0BAQUFAAOCAQEAeRHAS7ORtvzw6WfU -DW5FvlXok9LOAz/t2iWwHVfLHjp2oEzsUHboZHIMpKnxuIvW1oeEuzLlQRHAd9mz -YJ3rG9XRbkREqaYB7FViHXe4XI5ISXycO1cRrK1zN44veFyQaEfZYGDm/Ac9IiAX -xPcW6cTYcvnIc3zfFi8VqT79aie2oetaupgf1eNNZAqdE8hhuvU5HIe6uL17In/2 -/qxAeeWsEG89jxt5dovEN7MhGITlNgDrYyCZuen+MwS7QcjBAvlEYyCegc5C09Y/ -LHbTY5xZ3Y+m4Q6gLkH3LpVHz7z9M/P2C2F+fpErgUfCJzDupxBdN49cOSvkBPB7 -jVaMaA== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIICiDCCAg2gAwIBAgIQNfwmXNmET8k9Jj1Xm67XVjAKBggqhkjOPQQDAzCBhDEL -MAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjE4MDYGA1UECxMvKGMp -IDIwMDcgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxJDAi -BgNVBAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EgLSBHMjAeFw0wNzExMDUwMDAw -MDBaFw0zODAxMTgyMzU5NTlaMIGEMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMdGhh -d3RlLCBJbmMuMTgwNgYDVQQLEy8oYykgMjAwNyB0aGF3dGUsIEluYy4gLSBGb3Ig -YXV0aG9yaXplZCB1c2Ugb25seTEkMCIGA1UEAxMbdGhhd3RlIFByaW1hcnkgUm9v -dCBDQSAtIEcyMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEotWcgnuVnfFSeIf+iha/ -BebfowJPDQfGAFG6DAJSLSKkQjnE/o/qycG+1E3/n3qe4rF8mq2nhglzh9HnmuN6 -papu+7qzcMBniKI11KOasf2twu8x+qi58/sIxpHR+ymVo0IwQDAPBgNVHRMBAf8E -BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUmtgAMADna3+FGO6Lts6K -DPgR4bswCgYIKoZIzj0EAwMDaQAwZgIxAN344FdHW6fmCsO99YCKlzUNG4k8VIZ3 -KMqh9HneteY4sPBlcIx/AlTCv//YoT7ZzwIxAMSNlPzcU9LcnXgWHxUzI1NS41ox -XZ3Krr0TKUQNJ1uo52icEvdYPy5yAlejj6EULg== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIEKjCCAxKgAwIBAgIQYAGXt0an6rS0mtZLL/eQ+zANBgkqhkiG9w0BAQsFADCB -rjELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMf -Q2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIw -MDggdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxJDAiBgNV -BAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EgLSBHMzAeFw0wODA0MDIwMDAwMDBa -Fw0zNzEyMDEyMzU5NTlaMIGuMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMdGhhd3Rl -LCBJbmMuMSgwJgYDVQQLEx9DZXJ0aWZpY2F0aW9uIFNlcnZpY2VzIERpdmlzaW9u -MTgwNgYDVQQLEy8oYykgMjAwOCB0aGF3dGUsIEluYy4gLSBGb3IgYXV0aG9yaXpl -ZCB1c2Ugb25seTEkMCIGA1UEAxMbdGhhd3RlIFByaW1hcnkgUm9vdCBDQSAtIEcz -MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsr8nLPvb2FvdeHsbnndm -gcs+vHyu86YnmjSjaDFxODNi5PNxZnmxqWWjpYvVj2AtP0LMqmsywCPLLEHd5N/8 -YZzic7IilRFDGF/Eth9XbAoFWCLINkw6fKXRz4aviKdEAhN0cXMKQlkC+BsUa0Lf -b1+6a4KinVvnSr0eAXLbS3ToO39/fR8EtCab4LRarEc9VbjXsCZSKAExQGbY2SS9 -9irY7CFJXJv2eul/VTV+lmuNk5Mny5K76qxAwJ/C+IDPXfRa3M50hqY+bAtTyr2S -zhkGcuYMXDhpxwTWvGzOW/b3aJzcJRVIiKHpqfiYnODz1TEoYRFsZ5aNOZnLwkUk -OQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNV -HQ4EFgQUrWyqlGCc7eT/+j4KdCtjA/e2Wb8wDQYJKoZIhvcNAQELBQADggEBABpA -2JVlrAmSicY59BDlqQ5mU1143vokkbvnRFHfxhY0Cu9qRFHqKweKA3rD6z8KLFIW -oCtDuSWQP3CpMyVtRRooOyfPqsMpQhvfO0zAMzRbQYi/aytlryjvsvXDqmbOe1bu -t8jLZ8HJnBoYuMTDSQPxYA5QzUbF83d597YV4Djbxy8ooAw/dyZ02SUS2jHaGh7c -KUGRIjxpp7sC8rZcJwOJ9Abqm+RyguOhCcHpABnTPtRwa7pxpqpYrvS76Wy274fM -m7v/OeZWYdMKp8RcTGB7BXcmer/YB1IsYvdwY9k5vG8cwnncdimvzsUsZAReiDZu -MdRAGmI0Nj81Aa6sY6A= ------END CERTIFICATE----- diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/aai-hbase-health.json b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/aai-hbase-health.json index 07828431fc..1d23b88e0f 100644 --- a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/aai-hbase-health.json +++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/aai-hbase-health.json @@ -5,7 +5,7 @@ { "id": "hbase-aai", "name": "HBase Health Check", - "http": "http://hbase.onap-aai:8080/status/cluster", + "http": "http://hbase.namespace-placeholder:8080/status/cluster", "method": "GET", "header": { "Cache-Control": ["no-cache"], diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/aai-search-data-service-health.json b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/aai-search-data-service-health.json index b1877c7424..bf8830f0df 100644 --- a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/aai-search-data-service-health.json +++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/aai-search-data-service-health.json @@ -5,7 +5,7 @@ { "id": "elasticsearch", "name": "Search Data Service Document Store", - "http": "http://elasticsearch.onap-aai:9200/_cat/indices?v", + "http": "http://aai-elasticsearch.namespace-placeholder:9200/_cat/indices?v", "interval": "15s", "timeout": "1s" }, @@ -18,7 +18,7 @@ { "id": "search-data-service-availability", "name": "Search Data Service Availability", - "script": "curl -k --cert /consul/config/certs/client-cert-onap.crt.pem --cert-type PEM --key /consul/config/bin/client-cert-onap.key.pem --key-type PEM https://search-data-service.onap-aai:9509/services/search-data-service/v1/jaxrsExample/jaxrs-services/echo/up 2>&1 | grep 'Up'", + "script": "curl -k --cert /consul/config/certs/client-cert-onap.crt.pem --cert-type PEM --key /consul/config/bin/client-cert-onap.key.pem --key-type PEM https://search-data-service.namespace-placeholder:9509/services/search-data-service/v1/jaxrsExample/jaxrs-services/echo/up 2>&1 | grep 'Up'", "interval": "15s" }, { diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/aai-services-health.json b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/aai-services-health.json index 35f9371e8d..99d964e7d8 100644 --- a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/aai-services-health.json +++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/aai-services-health.json @@ -5,7 +5,7 @@ { "id": "aai-service", "name": "Core A&AI", - "http": "https://aai-service.onap-aai:8443/aai/util/echo", + "http": "https://aai-service.namespace-placeholder:8443/aai/util/echo", "header": { "Authorization": ["Basic QUFJOkFBSQ=="], "X-TransactionId": ["ConsulHealthCheck"], @@ -18,7 +18,7 @@ { "id": "aai-resources", "name": "Resources Microservice", - "http": "https://aai-resources.onap-aai:8447/aai/util/echo", + "http": "https://aai-resources.namespace-placeholder:8447/aai/util/echo", "header": { "Authorization": ["Basic QUFJOkFBSQ=="], "X-TransactionId": ["ConsulHealthCheck"], @@ -31,7 +31,7 @@ { "id": "aai-traversal", "name": "Traversal Microservice", - "http": "https://aai-traversal.onap-aai:8446/aai/util/echo", + "http": "https://aai-traversal.namespace-placeholder:8446/aai/util/echo", "header": { "Authorization": ["Basic QUFJOkFBSQ=="], "X-TransactionId": ["ConsulHealthCheck"], diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/appc-dbbuilder.json b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/appc-dbbuilder.json index ec5539060f..a6c3467855 100644 --- a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/appc-dbbuilder.json +++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/appc-dbbuilder.json @@ -5,7 +5,7 @@ { "id": "appc-dgbuilder", "name": "APPC-Dgbuilder Server Health Check", - "http": "http://dgbuilder.onap-appc:3000/", + "http": "http://appc-dgbuilder.namespace-placeholder:3000/", "method": "HEAD", "header": { "Authorization": ["Basic ZGd1c2VyOnRlc3QxMjM="], diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/appc-sdnctldb01-healthcheck.json b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/appc-sdnctldb01-healthcheck.json index 52ffdc0b6d..31f1b253f6 100644 --- a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/appc-sdnctldb01-healthcheck.json +++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/appc-sdnctldb01-healthcheck.json @@ -3,9 +3,9 @@ "name": "Health Check: APPC-SDN-CTL-DB-01", "checks": [ { - "id": "sdnctldb01.onap-appc", + "id": "appc-sdnctldb01.namespace-placeholder", "name": "APPC SDNCTLDB01 Health Check", - "tcp": "sdnctldb01.onap-appc:3306", + "tcp": "appc-sdnctldb01.namespace-placeholder:3306", "interval": "10s", "timeout": "1s" } diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/appc-sdnctldb02-healthcheck.json b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/appc-sdnctldb02-healthcheck.json index d6ac666ff4..559e5a8cfe 100644 --- a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/appc-sdnctldb02-healthcheck.json +++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/appc-sdnctldb02-healthcheck.json @@ -3,9 +3,9 @@ "name": "Health Check: APPC-SDN-CTL-DB-02", "checks": [ { - "id": "sdnctldb02.onap-appc", + "id": "appc-sdnctldb02.namespace-placeholder", "name": "APPC SDNCTLDB02 Health Check", - "tcp": "sdnctldb02.onap-appc:3306", + "tcp": "appc-sdnctldb02.namespace-placeholder:3306", "interval": "10s", "timeout": "1s" } diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/appc-sdnhost.json b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/appc-sdnhost.json new file mode 100644 index 0000000000..09b50077d7 --- /dev/null +++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/appc-sdnhost.json @@ -0,0 +1,22 @@ +{ + "service": { + "name": "Health Check: APPC - SDN Host", + "checks": [ + { + "id": "appc-sdnhost", + "name": "APPC SDN Host Health Check", + "http": "http://appc-sdnhost.namespace-placeholder:8282/apidoc/explorer/index.html", + "method": "HEAD", + "header": { + "Authorization": ["Basic YWRtaW46S3A4Yko0U1hzek0wV1hsaGFrM2VIbGNzZTJnQXc4NHZhb0dHbUp2VXkyVQ=="], + "Cache-Control": ["no-cache"], + "Content-Type": ["application/json"], + "Accept": ["application/json"] + }, + "tls_skip_verify": true, + "interval": "15s", + "timeout": "1s" + } + ] + } +} diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/log-elastic-search.json b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/log-elastic-search.json new file mode 100644 index 0000000000..3586f58932 --- /dev/null +++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/log-elastic-search.json @@ -0,0 +1,23 @@ +{ + "service": { + "name": "Health Check: Log - Elastic Search", + "checks": [ + { + "id": "log-elasticsearch-server", + "name": "Log Elastic Search Health Check", + "http": "http://elasticsearch.namespace-placeholder: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.namespace-placeholder:9300", + "interval": "15s", + "timeout": "1s" + } + ] + } +} diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/log-kibana.json b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/log-kibana.json new file mode 100644 index 0000000000..7fda31f8c0 --- /dev/null +++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/log-kibana.json @@ -0,0 +1,16 @@ +{ + "service": { + "name": "Health Check: Log - Kibana", + "checks": [ + { + "id": "log-kibana-server", + "name": "Log kibana Health Check", + "http": "http://kibana.namespace-placeholder:5601/status", + "method": "HEAD", + "tls_skip_verify": true, + "interval": "15s", + "timeout": "1s" + } + ] + } +} diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/log-logstash.json b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/log-logstash.json new file mode 100644 index 0000000000..e8e6236359 --- /dev/null +++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/log-logstash.json @@ -0,0 +1,95 @@ +{ + "service": { + "name": "Health Check: Log - Log Stash", + "checks": [ + { + "id": "log-logstash-internal-server-gi", + "name": "Log Stash Health Check - General Information", + "http": "http://logstashinternal.namespace-placeholder: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.namespace-placeholder: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.namespace-placeholder: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.namespace-placeholder: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.namespace-placeholder: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.namespace-placeholder: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.namespace-placeholder: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.namespace-placeholder: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.namespace-placeholder: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.namespace-placeholder:5044", + "interval": "15s", + "timeout": "1s" + } + ] + } +} diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/mr-dmaap-health.json b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/mr-dmaap-health.json index bd01bc5d95..dddd9692b9 100644 --- a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/mr-dmaap-health.json +++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/mr-dmaap-health.json @@ -2,7 +2,7 @@ "service": { "name": "Health Check: Message Router - DMaaP", "check": { - "http": "http://dmaap.onap-message-router:3904/topics", + "http": "http://dmaap.namespace-placeholder:3904/topics", "interval": "30s", "timeout": "1s" } diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/msb-health.json b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/msb-health.json index a5738b3277..02e7dc47f4 100644 --- a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/msb-health.json +++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/msb-health.json @@ -3,34 +3,34 @@ "name": "Health Check: MSB", "checks": [ { - "id": "msb-eag.onap-msb", + "id": "msb-eag.namespace-placeholder", "name": "MSB eag Health Check", - "http": "http://msb-eag.onap-msb:80/iui/microservices/default.html", + "http": "http://msb-eag.namespace-placeholder:80/iui/microservices/default.html", "method": "HEAD", "tls_skip_verify": true, "interval": "15s", "timeout": "1s" }, { - "id": "msb-iag.onap-msb", + "id": "msb-iag.namespace-placeholder", "name": "MSB iag Health Check", - "http": "http://msb-iag.onap-msb:80/iui/microservices/default.html", + "http": "http://msb-iag.namespace-placeholder:80/iui/microservices/default.html", "method": "HEAD", "tls_skip_verify": true, "interval": "15s", "timeout": "1s" }, { - "id": "msb-consul.onap-msb", + "id": "msb-consul.namespace-placeholder", "name": "MSB consul Health Check", - "tcp": "msb-consul.onap-msb:8500", + "tcp": "msb-consul.namespace-placeholder:8500", "interval": "15s", "timeout": "1s" }, { - "id": "msb-discovery.onap-msb", + "id": "msb-discovery.namespace-placeholder", "name": "MSB discovery Health Check", - "tcp": "msb-discovery.onap-msb:10081", + "tcp": "msb-discovery.namespace-placeholder:10081", "interval": "15s", "timeout": "1s" } diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/multicloud-health-check.json b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/multicloud-health-check.json new file mode 100644 index 0000000000..760077c543 --- /dev/null +++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/multicloud-health-check.json @@ -0,0 +1,63 @@ +{ + "service": { + "name": "Health Check: MULTICLOUD", + "checks": [ + { + "id": "framework", + "name": "Framework Health Check", + "http": "http://framework.namespace-placeholder:9001/api/multicloud/v0/swagger.json", + "method": "HEAD", + "header": { + "Cache-Control": ["no-cache"], + "Content-Type": ["application/json"], + "Accept": ["application/json"] + }, + "tls_skip_verify": true, + "interval": "15s", + "timeout": "1s" + }, + { + "id": "multicloud-ocata", + "name": "Multicloud Ocata Health Check", + "http": "http://multicloud-ocata.namespace-placeholder:9006/api/multicloud-ocata/v0/swagger.json", + "method": "HEAD", + "header": { + "Cache-Control": ["no-cache"], + "Content-Type": ["application/json"], + "Accept": ["application/json"] + }, + "tls_skip_verify": true, + "interval": "15s", + "timeout": "1s" + }, + { + "id": "multicloud-vio", + "name": "Multicloud Vio Health Check", + "http": "http://multicloud-vio.namespace-placeholder:9004/api/multicloud-vio/v0/swagger.json", + "method": "HEAD", + "header": { + "Cache-Control": ["no-cache"], + "Content-Type": ["application/json"], + "Accept": ["application/json"] + }, + "tls_skip_verify": true, + "interval": "15s", + "timeout": "1s" + }, + { + "id": "multicloud-windriver", + "name": "Multicloud Windriver Health Check", + "http": "http://multicloud-windriver.namespace-placeholder:9005/api/multicloud-titanium_cloud/v0/swagger.json", + "method": "HEAD", + "header": { + "Cache-Control": ["no-cache"], + "Content-Type": ["application/json"], + "Accept": ["application/json"] + }, + "tls_skip_verify": true, + "interval": "15s", + "timeout": "1s" + } + ] + } +} diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/aai-search-storage-write-script.sh b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/aai-search-storage-write-script.sh index 26e13913a0..fce0a63015 100755 --- a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/aai-search-storage-write-script.sh +++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/aai-search-storage-write-script.sh @@ -1,6 +1,6 @@ -if curl -s -X PUT http://elasticsearch.onap-aai:9200/searchhealth/stats/testwrite -d @/consul/config/scripts/aai-search-storage-write-doc.txt | grep '\"created\":true'; then - if curl -s -X DELETE http://elasticsearch.onap-aai:9200/searchhealth/stats/testwrite | grep '\"failed\":0'; then - if curl -s -X GET http://elasticsearch.onap-aai:9200/searchhealth/stats/testwrite | grep '\"found\":false'; then +if curl -s -X PUT http://elasticsearch.namespace-placeholder:9200/searchhealth/stats/testwrite -d @/consul/config/scripts/aai-search-storage-write-doc.txt | grep '\"created\":true'; then + if curl -s -X DELETE http://elasticsearch.namespace-placeholder:9200/searchhealth/stats/testwrite | grep '\"failed\":0'; then + if curl -s -X GET http://elasticsearch.namespace-placeholder:9200/searchhealth/stats/testwrite | grep '\"found\":false'; then echo Successful PUT, DELETE, GET from Search Document Storage 2>&1 exit 0 else diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/appc-dbhost-script.sh b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/appc-dbhost-script.sh index 4a78c315ba..9abfd49ca7 100755 --- a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/appc-dbhost-script.sh +++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/appc-dbhost-script.sh @@ -1,6 +1,6 @@ -APPC_DBHOST_POD=$(/consul/config/bin/kubectl -n onap-appc get pod | grep -o "appc-dbhost-[^[:space:]]*") +APPC_DBHOST_POD=$(/consul/config/bin/kubectl -n namespace-placeholder get pod | grep -o "appc-dbhost-[^[:space:]]*") if [ -n "$APPC_DBHOST_POD" ]; then - if /consul/config/bin/kubectl -n onap-appc exec -it $APPC_DBHOST_POD -- ./healthcheck.sh |grep -i "mysqld is alive"; then + if /consul/config/bin/kubectl -n namespace-placeholder exec -it $APPC_DBHOST_POD -- ./healthcheck.sh |grep -i "mysqld is alive"; then echo Success. APPC DBHost is running. 2>&1 exit 0 else diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/data-router-script.sh b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/data-router-script.sh index 53cd5886f9..2c7a949987 100755 --- a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/data-router-script.sh +++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/data-router-script.sh @@ -1,8 +1,8 @@ -NAME=$(/consul/config/bin/kubectl -n onap-aai get pod | grep -o "data-router[^[:space:]]*") +NAME=$(/consul/config/bin/kubectl -n namespace-placeholder get pod | grep -o "data-router[^[:space:]]*") if [ -n "$NAME" ]; then - if /consul/config/bin/kubectl -n onap-aai exec -it $NAME -- ps -efww | grep 'java' | grep 'data-router' > /dev/null; then + if /consul/config/bin/kubectl -n namespace-placeholder exec -it $NAME -- ps -efww | grep 'java' | grep 'data-router' > /dev/null; then echo Success. Synapse process is running. 2>&1 exit 0 diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/gremlin-script.sh b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/gremlin-script.sh index c1766f8a2a..e55c90fdc1 100755 --- a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/gremlin-script.sh +++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/gremlin-script.sh @@ -1,8 +1,8 @@ -NAME=$(/consul/config/bin/kubectl -n onap-aai get pod | grep -o "gremlin[^[:space:]]*") +NAME=$(/consul/config/bin/kubectl -n namespace-placeholder get pod | grep -o "gremlin[^[:space:]]*") if [ -n "$NAME" ]; then - if /consul/config/bin/kubectl -n onap-aai exec -it $NAME -- ps -efww | grep 'java' | grep 'gremlin-server' > /dev/null; then + if /consul/config/bin/kubectl -n namespace-placeholder exec -it $NAME -- ps -efww | grep 'java' | grep 'gremlin-server' > /dev/null; then echo Success. Gremlin Server process is running. 2>&1 exit 0 diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/model-loader-script.sh b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/model-loader-script.sh index 1c93ecb38e..9f4f4a843d 100755 --- a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/model-loader-script.sh +++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/model-loader-script.sh @@ -1,8 +1,8 @@ -NAME=$(/consul/config/bin/kubectl -n onap-aai get pod | grep -o "model-loader[^[:space:]]*") +NAME=$(/consul/config/bin/kubectl -n namespace-placeholder get pod | grep -o "model-loader[^[:space:]]*") if [ -n "$NAME" ]; then - if /consul/config/bin/kubectl -n onap-aai exec -it $NAME -- ps -efww | grep 'java' | grep 'model-loader' > /dev/null; then + if /consul/config/bin/kubectl -n namespace-placeholder exec -it $NAME -- ps -efww | grep 'java' | grep 'model-loader' > /dev/null; then echo Success. Model Loader process is running. 2>&1 exit 0 diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/mr-kafka-health.sh b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/mr-kafka-health.sh index 317c2a699c..cde6e8f335 100755 --- a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/mr-kafka-health.sh +++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/mr-kafka-health.sh @@ -1,6 +1,6 @@ -kafkapod=$(/consul/config/bin/kubectl -n onap-message-router get pod | grep -o "global-kafka-[^[:space:]]*") +kafkapod=$(/consul/config/bin/kubectl -n namespace-placeholder get pod | grep -o "global-kafka-[^[:space:]]*") if [ -n "$kafkapod" ]; then - if /consul/config/bin/kubectl -n onap-message-router exec -it $kafkapod -- ps ef | grep -i kafka; then + if /consul/config/bin/kubectl -n namespace-placeholder exec -it $kafkapod -- ps ef | grep -i kafka; then echo Success. Kafka process is running. 2>&1 exit 0 else diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/mr-zookeeper-health.sh b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/mr-zookeeper-health.sh index 3da456c05a..2534fcba9e 100755 --- a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/mr-zookeeper-health.sh +++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/mr-zookeeper-health.sh @@ -1,6 +1,6 @@ -zkpod=$(/consul/config/bin/kubectl -n onap-message-router get pod | grep -o "zookeeper-[^[:space:]]*") +zkpod=$(/consul/config/bin/kubectl -n namespace-placeholder get pod | grep -o "zookeeper-[^[:space:]]*") if [ -n "$zkpod" ]; then - if /consul/config/bin/kubectl -n onap-message-router exec -it $zkpod -- ps ef | grep -i zookeeper; then + if /consul/config/bin/kubectl -n namespace-placeholder exec -it $zkpod -- ps ef | grep -i zookeeper; then echo Success. Zookeeper process is running. 2>&1 exit 0 else diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/mso-api-script.sh b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/mso-api-script.sh index ba0afc0dce..459d2e2b34 100755 --- a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/mso-api-script.sh +++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/mso-api-script.sh @@ -1,5 +1,5 @@ ## Query the health check API. -HEALTH_CHECK_ENDPOINT="http://mso.onap-mso.svc.cluster.local:8080/ecomp/mso/infra/healthcheck" +HEALTH_CHECK_ENDPOINT="http://mso.namespace-placeholder:8080/ecomp/mso/infra/healthcheck" HEALTH_CHECK_RESPONSE=$(curl -s $HEALTH_CHECK_ENDPOINT) READY=$(echo $HEALTH_CHECK_RESPONSE | grep "Application ready") diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/mso-camunda-script.sh b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/mso-camunda-script.sh index 254a0445ce..8342843dd8 100755 --- a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/mso-camunda-script.sh +++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/mso-camunda-script.sh @@ -1,5 +1,5 @@ ## Query the health check API. -HEALTH_CHECK_ENDPOINT="http://mso.onap-mso.svc.cluster.local:8080/mso/healthcheck" +HEALTH_CHECK_ENDPOINT="http://mso.namespace-placeholder:8080/mso/healthcheck" HEALTH_CHECK_RESPONSE=$(curl -s $HEALTH_CHECK_ENDPOINT) READY=$(echo $HEALTH_CHECK_RESPONSE | grep "Application ready") diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/mso-jra-script.sh b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/mso-jra-script.sh index 29ffd8fe4c..c88ebe5a49 100755 --- a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/mso-jra-script.sh +++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/mso-jra-script.sh @@ -1,5 +1,5 @@ ## Query the health check API. -HEALTH_CHECK_ENDPOINT="http://mso.onap-mso.svc.cluster.local:8080/networks/rest/healthcheck" +HEALTH_CHECK_ENDPOINT="http://mso.namespace-placeholder:8080/networks/rest/healthcheck" HEALTH_CHECK_RESPONSE=$(curl -s $HEALTH_CHECK_ENDPOINT) READY=$(echo $HEALTH_CHECK_RESPONSE | grep "Application ready") diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/mso-mariadb-script.sh b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/mso-mariadb-script.sh index 84b22206e0..cabaa4bc29 100755 --- a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/mso-mariadb-script.sh +++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/mso-mariadb-script.sh @@ -1,7 +1,7 @@ -NAME=$(/consul/config/bin/kubectl -n onap-mso get pod | grep -o "mariadb[^[:space:]]*") +NAME=$(/consul/config/bin/kubectl -n namespace-placeholder get pod | grep -o "mso-mariadb[^[:space:]]*") if [ -n "$NAME" ]; then - if /consul/config/bin/kubectl -n onap-mso exec -it $NAME -- bash -c 'mysqladmin status -u root -p$MYSQL_ROOT_PASSWORD' > /dev/null; then + if /consul/config/bin/kubectl -n namespace-placeholder exec -it $NAME -- bash -c 'mysqladmin status -u root -p$MYSQL_ROOT_PASSWORD' > /dev/null; then echo Success. mariadb process is running. 2>&1 exit 0 else diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/sdc-be-script.sh b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/sdc-be-script.sh index f460a3f116..66f35d9437 100755 --- a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/sdc-be-script.sh +++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/sdc-be-script.sh @@ -1,5 +1,5 @@ ## Query the health check API. -HEALTH_CHECK_ENDPOINT="http://sdc-fe.onap-sdc:8181/sdc1/rest/healthCheck" +HEALTH_CHECK_ENDPOINT="http://sdc-fe.namespace-placeholder:8181/sdc1/rest/healthCheck" HEALTH_CHECK_RESPONSE=$(curl -s $HEALTH_CHECK_ENDPOINT) ## Strip out the ON_BOARDING section from the response XML (otherwise we will diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/sdc-cs-script.sh b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/sdc-cs-script.sh index 31cd8d3fa6..cd50120581 100755 --- a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/sdc-cs-script.sh +++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/sdc-cs-script.sh @@ -1,5 +1,5 @@ ## Query the health check API. -HEALTH_CHECK_ENDPOINT="http://sdc-fe.onap-sdc:8181/sdc1/rest/healthCheck" +HEALTH_CHECK_ENDPOINT="http://sdc-fe.namespace-placeholder:8181/sdc1/rest/healthCheck" HEALTH_CHECK_RESPONSE=$(curl -s $HEALTH_CHECK_ENDPOINT) ## Strip out the ON_BOARDING section from the response XML (otherwise we will diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/sdc-fe-script.sh b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/sdc-fe-script.sh index 6a1d035ecd..9799c31201 100755 --- a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/sdc-fe-script.sh +++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/sdc-fe-script.sh @@ -1,5 +1,5 @@ ## Query the health check API. -HEALTH_CHECK_ENDPOINT="http://sdc-fe.onap-sdc:8181/sdc1/rest/healthCheck" +HEALTH_CHECK_ENDPOINT="http://sdc-fe.namespace-placeholder:8181/sdc1/rest/healthCheck" HEALTH_CHECK_RESPONSE=$(curl -s $HEALTH_CHECK_ENDPOINT) ## Strip out the ON_BOARDING section from the response XML (otherwise we will diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/sdc-titan-script.sh b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/sdc-titan-script.sh index 6993402653..bfa2068f29 100755 --- a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/sdc-titan-script.sh +++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/sdc-titan-script.sh @@ -1,5 +1,5 @@ ## Query the health check API. -HEALTH_CHECK_ENDPOINT="http://sdc-fe.onap-sdc:8181/sdc1/rest/healthCheck" +HEALTH_CHECK_ENDPOINT="http://sdc-fe.namespace-placeholder:8181/sdc1/rest/healthCheck" HEALTH_CHECK_RESPONSE=$(curl -s $HEALTH_CHECK_ENDPOINT) ## Strip out the ON_BOARDING section from the response XML (otherwise we will diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/sdnc-dbhost-script.sh b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/sdnc-dbhost-script.sh index 6bb07f80eb..8a523ce0b5 100755 --- a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/sdnc-dbhost-script.sh +++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/sdnc-dbhost-script.sh @@ -1,6 +1,6 @@ -SDNC_DBHOST_POD=$(/consul/config/bin/kubectl -n onap-sdnc get pod | grep -o "sdnc-dbhost-[^[:space:]]*") +SDNC_DBHOST_POD=$(/consul/config/bin/kubectl -n namespace-placeholder get pod | grep -o "sdnc-dbhost-[^[:space:]]*") if [ -n "$SDNC_DBHOST_POD" ]; then - if /consul/config/bin/kubectl -n onap-sdnc exec -it $SDNC_DBHOST_POD -- ./healthcheck.sh |grep -i "mysqld is alive"; then + if /consul/config/bin/kubectl -n namespace-placeholder exec -it $SDNC_DBHOST_POD -- ./healthcheck.sh |grep -i "mysqld is alive"; then echo Success. SDNC DBHost is running. 2>&1 exit 0 else diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/search-data-service-availability.sh b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/search-data-service-availability.sh index fc0b04a72b..ef96cca6a3 100755 --- a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/search-data-service-availability.sh +++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/search-data-service-availability.sh @@ -1,6 +1,6 @@ #!/bin/sh -SEARCH_SERVICE_NAME="search-data-service.onap-aai" +SEARCH_SERVICE_NAME="search-data-service.namespace-placeholder" SEARCH_SERVICE_PORT=9509 HEALTH_CHECK_INDEX="healthcheck" diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/sparky-be-script.sh b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/sparky-be-script.sh index fe265ba2b0..0791c5811d 100755 --- a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/sparky-be-script.sh +++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/sparky-be-script.sh @@ -1,8 +1,8 @@ -NAME=$(/consul/config/bin/kubectl -n onap-aai get pod | grep -o "sparky-be[^[:space:]]*") +NAME=$(/consul/config/bin/kubectl -n namespace-placeholder get pod | grep -o "aai-sparky-be[^[:space:]]*") if [ -n "$NAME" ]; then - if /consul/config/bin/kubectl -n onap-aai exec -it $NAME -- ps -efww | grep 'java' | grep 'sparky' > /dev/null; then + if /consul/config/bin/kubectl -n namespace-placeholder exec -it $NAME -- ps -efww | grep 'java' | grep 'sparky' > /dev/null; then echo Success. UI Backend Service process is running. 2>&1 exit 0 diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/tabular-db-availability.sh b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/tabular-db-availability.sh index da9d8a5d82..ebec49769c 100755 --- a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/tabular-db-availability.sh +++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/tabular-db-availability.sh @@ -1,6 +1,6 @@ # Query the Hbase service for the cluster status. -GET_CLUSTER_STATUS_RESPONSE=$(curl -si -X GET -H "Accept: text/xml" http://hbase.onap-aai:8080/status/cluster) +GET_CLUSTER_STATUS_RESPONSE=$(curl -si -X GET -H "Accept: text/xml" http://aai-hbase.namespace-placeholder:8080/status/cluster) if [ -z "$GET_CLUSTER_STATUS_RESPONSE" ]; then echo "Tabular store is unreachable." diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/vid-mariadb-script.sh b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/vid-mariadb-script.sh index c87686f764..96c7969fac 100644 --- a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/vid-mariadb-script.sh +++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/vid-mariadb-script.sh @@ -1,7 +1,7 @@ -NAME=$(/consul/config/bin/kubectl -n onap-vid get pod | grep -o "vid-mariadb[^[:space:]]*") +NAME=$(/consul/config/bin/kubectl -n namespace-placeholder get pod | grep -o "vid-mariadb[^[:space:]]*") if [ -n "$NAME" ]; then - if /consul/config/bin/kubectl -n onap-vid exec -it $NAME -- bash -c 'mysqladmin status -u root -p$MYSQL_ROOT_PASSWORD' > /dev/null; then + if /consul/config/bin/kubectl -n namespace-placeholder exec -it $NAME -- bash -c 'mysqladmin status -u root -p$MYSQL_ROOT_PASSWORD' > /dev/null; then echo Success. mariadb process is running. 2>&1 exit 0 else diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/sdc-health.json b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/sdc-health.json index 849e199589..374dcdfd62 100644 --- a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/sdc-health.json +++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/sdc-health.json @@ -33,7 +33,7 @@ { "id": "sdc-catalog-healthcheck", "name": "SDC Catalog Health Check", - "http": "https://sdc-be.onap-sdc:8443/asdc/v1/catalog/services", + "http": "https://sdc-be.namespace-placeholder:8443/asdc/v1/catalog/services", "header": { "Authorization": ["Basic dmlkOktwOGJKNFNYc3pNMFdYbGhhazNlSGxjc2UyZ0F3ODR2YW9HR21KdlV5MlU="], "X-ECOMP-InstanceID": ["VID"], diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/sdnc-dgbuilder.json b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/sdnc-dgbuilder.json index 051c4abb3a..6c293995eb 100644 --- a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/sdnc-dgbuilder.json +++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/sdnc-dgbuilder.json @@ -5,7 +5,7 @@ { "id": "sdnc-dgbuilder", "name": "SDNC-DGbuilder Health Check", - "http": "http://sdnc-dgbuilder.onap-sdnc:3000/", + "http": "http://sdnc-dgbuilder.namespace-placeholder:3000/", "method": "HEAD", "header": { "Authorization": ["Basic ZGd1c2VyOnRlc3QxMjM="], diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/sdnc-health.json b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/sdnc-health.json index fc26d2e192..a127aa1d27 100644 --- a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/sdnc-health.json +++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/sdnc-health.json @@ -5,7 +5,7 @@ { "id": "odl-api-healthcheck", "name": "SDNC API Health Check", - "http": "http://sdnhost.onap-sdnc:8282/restconf/operations/SLI-API:healthcheck", + "http": "http://sdnhost.namespace-placeholder:8282/restconf/operations/SLI-API:healthcheck", "method": "POST", "header": { "Authorization": ["Basic YWRtaW46S3A4Yko0U1hzek0wV1hsaGFrM2VIbGNzZTJnQXc4NHZhb0dHbUp2VXkyVQ=="], diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/sdnc-portal-health.json b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/sdnc-portal-health.json index 3ecc1b3f53..07f2bb7b95 100644 --- a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/sdnc-portal-health.json +++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/sdnc-portal-health.json @@ -5,7 +5,7 @@ { "id": "sdnc-portal", "name": "SDNC Portal Health Check", - "http": "http://sdnc-portal.onap-sdnc:8843/login", + "http": "http://sdnc-portal.namespace-placeholder:8843/login", "method": "HEAD", "header": { "Cache-Control": ["no-cache"], diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/sdnc-sdnctldb01-healthcheck.json b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/sdnc-sdnctldb01-healthcheck.json index 321852e805..6b859c0894 100644 --- a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/sdnc-sdnctldb01-healthcheck.json +++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/sdnc-sdnctldb01-healthcheck.json @@ -3,9 +3,9 @@ "name": "Health Check: SDNC-SDN-CTL-DB-01", "checks": [ { - "id": "sdnctldb01.onap-sdnc", + "id": "sdnctldb01.namespace-placeholder", "name": "SDNC SDNCTLDB01 Health Check", - "tcp": "sdnctldb01.onap-sdnc:3306", + "tcp": "sdnctldb01.namespace-placeholder:3306", "interval": "10s", "timeout": "1s" } diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/sdnc-sdnctldb02-healthcheck.json b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/sdnc-sdnctldb02-healthcheck.json index 106a2069bb..c6ad3beb93 100644 --- a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/sdnc-sdnctldb02-healthcheck.json +++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/sdnc-sdnctldb02-healthcheck.json @@ -3,9 +3,9 @@ "name": "Health Check: SDNC-SDN-CTL-DB-02", "checks": [ { - "id": "sdnctldb02.onap-sdnc", + "id": "sdnctldb02.namespace-placeholder", "name": "SDNC SDNCTLDB02 Health Check", - "tcp": "sdnctldb02.onap-sdnc:3306", + "tcp": "sdnctldb02.namespace-placeholder:3306", "interval": "10s", "timeout": "1s" } diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/sdnc-sdnhost.json b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/sdnc-sdnhost.json new file mode 100644 index 0000000000..9494810081 --- /dev/null +++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/sdnc-sdnhost.json @@ -0,0 +1,22 @@ +{ + "service": { + "name": "Health Check: SDNC - SDN Host", + "checks": [ + { + "id": "sdnc-sdnhost", + "name": "SDNC SDN Host Health Check", + "http": "http://sdnhost.namespace-placeholder:8282/apidoc/explorer/index.html", + "method": "HEAD", + "header": { + "Authorization": ["Basic YWRtaW46S3A4Yko0U1hzek0wV1hsaGFrM2VIbGNzZTJnQXc4NHZhb0dHbUp2VXkyVQ=="], + "Cache-Control": ["no-cache"], + "Content-Type": ["application/json"], + "Accept": ["application/json"] + }, + "tls_skip_verify": true, + "interval": "15s", + "timeout": "1s" + } + ] + } +} diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/vfc-health.json b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/vfc-health.json index c7f83a8bfe..abc9e7f6b4 100644 --- a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/vfc-health.json +++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/vfc-health.json @@ -3,107 +3,107 @@ "name": "Health Check: VFC", "checks": [ { - "id": "vfc-catalog.onap-vfc", + "id": "vfc-catalog.namespace-placeholder", "name": "VFC catalog Health Check", - "tcp": "vfc-catalog.onap-vfc:8806", + "tcp": "vfc-catalog.namespace-placeholder:8806", "interval": "15s", "timeout": "1s" }, { - "id": "vfc-emsdriver.onap-vfc", + "id": "vfc-emsdriver.namespace-placeholder", "name": "VFC emsdriver Health Check", - "tcp": "vfc-emsdriver.onap-vfc:8206", + "tcp": "vfc-emsdriver.namespace-placeholder:8206", "interval": "15s", "timeout": "1s" }, { - "id": "vfc-gvnfmdriver.onap-vfc", + "id": "vfc-gvnfmdriver.namespace-placeholder", "name": "VFC gvnfmdriver Health Check", - "tcp": "vfc-gvnfmdriver.onap-vfc:8484", + "tcp": "vfc-gvnfmdriver.namespace-placeholder:8484", "interval": "15s", "timeout": "1s" }, { - "id": "vfc-hwvnfmdriver.onap-vfc", + "id": "vfc-hwvnfmdriver.namespace-placeholder", "name": "VFC hwvnfmdriver Health Check", - "tcp": "vfc-hwvnfmdriver.onap-vfc:8482", + "tcp": "vfc-hwvnfmdriver.namespace-placeholder:8482", "interval": "15s", "timeout": "1s" }, { - "id": "vfc-jujudriver.onap-vfc", + "id": "vfc-jujudriver.namespace-placeholder", "name": "VFC jujudriver Health Check", - "tcp": "vfc-jujudriver.onap-vfc:8483", + "tcp": "vfc-jujudriver.namespace-placeholder:8483", "interval": "15s", "timeout": "1s" }, { - "id": "vfc-nokiavnfmdriver.onap-vfc", + "id": "vfc-nokiavnfmdriver.namespace-placeholder", "name": "VFC nokiavnfmdriver Health Check", - "tcp": "vfc-nokiavnfmdriver.onap-vfc:8486", + "tcp": "vfc-nokiavnfmdriver.namespace-placeholder:8486", "interval": "15s", "timeout": "1s" }, { - "id": "vfc-nslcm.onap-vfc", + "id": "vfc-nslcm.namespace-placeholder", "name": "VFC nslcm Health Check", - "tcp": "vfc-nslcm.onap-vfc:8403", + "tcp": "vfc-nslcm.namespace-placeholder:8403", "interval": "15s", "timeout": "1s" }, { - "id": "vfc-resmgr.onap-vfc", + "id": "vfc-resmgr.namespace-placeholder", "name": "VFC resmgr Health Check", - "tcp": "vfc-resmgr.onap-vfc:8480", + "tcp": "vfc-resmgr.namespace-placeholder:8480", "interval": "15s", "timeout": "1s" }, { - "id": "vfc-vnflcm.onap-vfc", + "id": "vfc-vnflcm.namespace-placeholder", "name": "VFC vnflcm Health Check", - "tcp": "vfc-vnflcm.onap-vfc:8801", + "tcp": "vfc-vnflcm.namespace-placeholder:8801", "interval": "15s", "timeout": "1s" }, { - "id": "vfc-vnfmgr.onap-vfc", + "id": "vfc-vnfmgr.namespace-placeholder", "name": "VFC vnfmgr Health Check", - "tcp": "vfc-vnfmgr.onap-vfc:8803", + "tcp": "vfc-vnfmgr.namespace-placeholder:8803", "interval": "15s", "timeout": "1s" }, { - "id": "vfc-vnfres.onap-vfc", + "id": "vfc-vnfres.namespace-placeholder", "name": "VFC vnfres Health Check", - "tcp": "vfc-vnfres.onap-vfc:8802", + "tcp": "vfc-vnfres.namespace-placeholder:8802", "interval": "15s", "timeout": "1s" }, { - "id": "vfc-workflow.onap-vfc", + "id": "vfc-workflow.namespace-placeholder", "name": "VFC workflow Health Check", - "tcp": "vfc-workflow.onap-vfc:10550", + "tcp": "vfc-workflow.namespace-placeholder:10550", "interval": "15s", "timeout": "1s" }, { - "id": "vfc-workflowengineactiviti.onap-vfc", + "id": "vfc-workflowengineactiviti.namespace-placeholder", "name": "VFC workflow-engine Health Check", - "tcp": "vfc-workflowengineactiviti.onap-vfc:8080", + "tcp": "vfc-workflowengineactiviti.namespace-placeholder:8080", "interval": "15s", "timeout": "1s" }, { - "id": "vfc-ztesdncdriver.onap-vfc", + "id": "vfc-ztesdncdriver.namespace-placeholder", "name": "VFC ztesdncdriver Health Check", - "tcp": "vfc-ztesdncdriver.onap-vfc:8411", + "tcp": "vfc-ztesdncdriver.namespace-placeholder:8411", "interval": "15s", "timeout": "1s" }, { - "id": "vfc-ztevnfmdriver.onap-vfc", + "id": "vfc-ztevnfmdriver.namespace-placeholder", "name": "VFC ztevnfmdriver Health Check", - "tcp": "vfc-ztevnfmdriver.onap-vfc:8410", + "tcp": "vfc-ztevnfmdriver.namespace-placeholder:8410", "interval": "15s", "timeout": "1s" } diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/vid-health.json b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/vid-health.json index 8a2a4dca9b..39d71c4e5e 100644 --- a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/vid-health.json +++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/vid-health.json @@ -5,7 +5,7 @@ { "id": "vid-server", "name": "VID Server Health Check", - "http": "http://vid-server.onap-vid:8080/vid/healthCheck", + "http": "http://vid-server.namespace-placeholder:8080/vid/healthCheck", "method": "GET", "header": { "Authorization": ["Basic YWRtaW46S3A4Yko0U1hzek0wV1hsaGFrM2VIbGNzZTJnQXc4NHZhb0dHbUp2VXkyVQ=="], diff --git a/kubernetes/config/docker/init/src/config/dcae/message-router/dmaap/MsgRtrApi.properties b/kubernetes/config/docker/init/src/config/dcae/message-router/dmaap/MsgRtrApi.properties index 8c6f50dc67..2f37755d88 100644 --- a/kubernetes/config/docker/init/src/config/dcae/message-router/dmaap/MsgRtrApi.properties +++ b/kubernetes/config/docker/init/src/config/dcae/message-router/dmaap/MsgRtrApi.properties @@ -15,9 +15,9 @@ ## ## Both Cambria and Kafka make use of Zookeeper. ## -config.zk.servers=zookeeper.onap-dcae:2181 +config.zk.servers=zookeeper.namespace-placeholder:2181 #config.zk.servers=172.17.0.1:2181 -#dmaap.onap-dcae:2181 +#dmaap.namespace-placeholder:2181 #10.208.128.229:2181 #config.zk.root=/fe3c/cambria/config @@ -30,9 +30,9 @@ config.zk.servers=zookeeper.onap-dcae:2181 ## configurations (after removing "kafka.") ## if you want to change request.required.acks it can take this one value #kafka.metadata.broker.list=localhost:9092,localhost:9093 -kafka.metadata.broker.list=kafka.onap-dcae:9092 +kafka.metadata.broker.list=kafka.namespace-placeholder:9092 #kafka.metadata.broker.list=172.17.0.1:9092 -#dmaap.onap-dcae:9092 +#dmaap.namespace-placeholder:9092 #10.208.128.229:9092 ##kafka.request.required.acks=-1 #kafka.client.zookeeper=${config.zk.servers} diff --git a/kubernetes/config/docker/init/src/config/log/filebeat/log4j/filebeat.yml b/kubernetes/config/docker/init/src/config/log/filebeat/log4j/filebeat.yml index 79c9a08a79..f15c2bb8e1 100644 --- a/kubernetes/config/docker/init/src/config/log/filebeat/log4j/filebeat.yml +++ b/kubernetes/config/docker/init/src/config/log/filebeat/log4j/filebeat.yml @@ -29,7 +29,7 @@ output.logstash: #List of logstash server ip addresses with port number. #But, in our case, this will be the loadbalancer IP address. #For the below property to work the loadbalancer or logstash should expose 5044 port to listen the filebeat events or port in the property should be changed appropriately. - hosts: ["logstash.onap-log:5044"] + hosts: ["logstash.namespace-placeholder:5044"] #If enable will do load balancing among availabe Logstash, automatically. loadbalance: true diff --git a/kubernetes/config/docker/init/src/config/log/filebeat/logback/filebeat.yml b/kubernetes/config/docker/init/src/config/log/filebeat/logback/filebeat.yml index f316b866af..7b78c9ba46 100644 --- a/kubernetes/config/docker/init/src/config/log/filebeat/logback/filebeat.yml +++ b/kubernetes/config/docker/init/src/config/log/filebeat/logback/filebeat.yml @@ -21,7 +21,7 @@ output.logstash: #List of logstash server ip addresses with port number. #But, in our case, this will be the loadbalancer IP address. #For the below property to work the loadbalancer or logstash should expose 5044 port to listen the filebeat events or port in the property should be changed appropriately. - hosts: ["logstash.onap-log:5044"] + hosts: ["logstash.namespace-placeholder:5044"] #If enable will do load balancing among availabe Logstash, automatically. loadbalance: true diff --git a/kubernetes/config/docker/init/src/config/log/policy/drools/logback.xml b/kubernetes/config/docker/init/src/config/log/policy/drools/logback.xml deleted file mode 100644 index 2b6d11e962..0000000000 --- a/kubernetes/config/docker/init/src/config/log/policy/drools/logback.xml +++ /dev/null @@ -1,152 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?>
-<!--
- ============LICENSE_START=======================================================
- policy-management
- ================================================================================
- Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- ================================================================================
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- ============LICENSE_END=========================================================
- -->
-<configuration debug="true" scan="true" scanPeriod="3 seconds">
- <!--<jmxConfigurator /> -->
- <!-- specify the base path of the log directory -->
- <property name="logDir" value="/var/log/onap" />
- <!-- specify the component name -->
- <property name="componentName" value="policy" />
- <!-- specify the sub component name -->
- <property name="subComponentName" value="drools" />
- <!-- The directories where logs are written -->
- <property name="logDirectory" value="${logDir}/${componentName}/${subComponentName}" />
- <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" />
- <!-- log file names -->
- <property name="errorLogName" value="error" />
- <property name="metricsLogName" value="metrics" />
- <property name="auditLogName" value="audit" />
- <property name="debugLogName" value="debug" />
- <property name="queueSize" value="256" />
- <property name="maxFileSize" value="50MB" />
- <property name="maxHistory" value="30" />
- <property name="totalSizeCap" value="10GB" />
- <!-- Example evaluator filter applied against console appender -->
- <appender class="ch.qos.logback.core.ConsoleAppender" name="STDOUT">
- <encoder>
- <pattern>${pattern}</pattern>
- </encoder>
- </appender>
- <!-- ============================================================================ -->
- <!-- EELF Appenders -->
- <!-- ============================================================================ -->
- <!-- The EELFAppender is used to record events to the general application
- log -->
- <!-- EELF Audit Appender. This appender is used to record audit engine
- related logging events. The audit logger and appender are specializations
- of the EELF application root logger and appender. This can be used to segregate
- Policy engine events from other components, or it can be eliminated to record
- these events as part of the application root log. -->
- <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="EELFAudit">
- <file>${logDirectory}/${auditLogName}.log</file>
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <fileNamePattern>${logDirectory}/${auditLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
- <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
- <maxFileSize>${maxFileSize}</maxFileSize>
- </timeBasedFileNamingAndTriggeringPolicy>
- <maxHistory>${maxHistory}</maxHistory>
- <totalSizeCap>${totalSizeCap}</totalSizeCap>
- </rollingPolicy>
- <encoder>
- <pattern>${pattern}</pattern>
- </encoder>
- </appender>
- <appender class="ch.qos.logback.classic.AsyncAppender" name="asyncEELFAudit">
- <queueSize>${queueSize}</queueSize>
- <appender-ref ref="EELFAudit" />
- </appender>
- <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="EELFMetrics">
- <file>${logDirectory}/${metricsLogName}.log</file>
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <fileNamePattern>${logDirectory}/${metricsLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
- <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
- <maxFileSize>${maxFileSize}</maxFileSize>
- </timeBasedFileNamingAndTriggeringPolicy>
- <maxHistory>${maxHistory}</maxHistory>
- <totalSizeCap>${totalSizeCap}</totalSizeCap>
- </rollingPolicy>
- <encoder>
- <pattern>${pattern}</pattern>
- </encoder>
- </appender>
- <appender class="ch.qos.logback.classic.AsyncAppender" name="asyncEELFMetrics">
- <queueSize>${queueSize}</queueSize>
- <appender-ref ref="EELFMetrics" />
- </appender>
- <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="EELFError">
- <file>${logDirectory}/${errorLogName}.log</file>
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <fileNamePattern>${logDirectory}/${errorLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
- <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
- <maxFileSize>${maxFileSize}</maxFileSize>
- </timeBasedFileNamingAndTriggeringPolicy>
- <maxHistory>${maxHistory}</maxHistory>
- <totalSizeCap>${totalSizeCap}</totalSizeCap>
- </rollingPolicy>
- <encoder>
- <pattern>${pattern}</pattern>
- </encoder>
- <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
- <level>INFO</level>
- </filter>
- </appender>
- <appender class="ch.qos.logback.classic.AsyncAppender" name="asyncEELFError">
- <queueSize>${queueSize}</queueSize>
- <appender-ref ref="EELFError" />
- </appender>
- <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="EELFDebug">
- <file>${logDirectory}/${debugLogName}.log</file>
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <fileNamePattern>${logDirectory}/${debugLogName}.%i.log.zip</fileNamePattern>
- <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
- <maxFileSize>${maxFileSize}</maxFileSize>
- </timeBasedFileNamingAndTriggeringPolicy>
- <maxHistory>${maxHistory}</maxHistory>
- <totalSizeCap>${totalSizeCap}</totalSizeCap>
- </rollingPolicy>
- <encoder>
- <pattern>${pattern}</pattern>
- </encoder>
- </appender>
- <appender class="ch.qos.logback.classic.AsyncAppender" name="asyncEELFDebug">
- <queueSize>${queueSize}</queueSize>
- <appender-ref ref="EELFDebug" />
- <includeCallerData>true</includeCallerData>
- </appender>
- <!-- ============================================================================ -->
- <!-- EELF loggers -->
- <!-- ============================================================================ -->
- <logger additivity="false" level="info" name="com.att.eelf.audit">
- <appender-ref ref="asyncEELFAudit" />
- </logger>
- <logger additivity="false" level="info" name="com.att.eelf.metrics">
- <appender-ref ref="asyncEELFMetrics" />
- </logger>
- <logger additivity="false" level="info" name="com.att.eelf.error">
- <appender-ref ref="asyncEELFError" />
- </logger>
- <logger additivity="false" level="debug" name="com.att.eelf.debug">
- <appender-ref ref="asyncEELFDebug" />
- </logger>
- <root level="INFO">
- <appender-ref ref="asyncEELFDebug" />
- <appender-ref ref="asyncEELFError" />
- </root>
-</configuration>
\ No newline at end of file diff --git a/kubernetes/config/docker/init/src/config/message-router/dmaap/MsgRtrApi.properties b/kubernetes/config/docker/init/src/config/message-router/dmaap/MsgRtrApi.properties index d912179121..db8d911248 100755 --- a/kubernetes/config/docker/init/src/config/message-router/dmaap/MsgRtrApi.properties +++ b/kubernetes/config/docker/init/src/config/message-router/dmaap/MsgRtrApi.properties @@ -15,9 +15,9 @@ ## ## Both Cambria and Kafka make use of Zookeeper. ## -config.zk.servers=zookeeper.onap-message-router:2181 +config.zk.servers=zookeeper.namespace-placeholder:2181 #config.zk.servers=172.17.0.1:2181 -#dmaap.onap-message-router:2181 +#dmaap.namespace-placeholder:2181 #10.208.128.229:2181 #config.zk.root=/fe3c/cambria/config @@ -30,9 +30,9 @@ config.zk.servers=zookeeper.onap-message-router:2181 ## configurations (after removing "kafka.") ## if you want to change request.required.acks it can take this one value #kafka.metadata.broker.list=localhost:9092,localhost:9093 -kafka.metadata.broker.list=global-kafka.onap-message-router:9092 +kafka.metadata.broker.list=global-kafka.namespace-placeholder:9092 #kafka.metadata.broker.list=172.17.0.1:9092 -#dmaap.onap-message-router:9092 +#dmaap.namespace-placeholder:9092 #10.208.128.229:9092 ##kafka.request.required.acks=-1 #kafka.client.zookeeper=${config.zk.servers} diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/aria_log.00000001 b/kubernetes/config/docker/init/src/config/policy/mariadb/data/aria_log.00000001 Binary files differdeleted file mode 100644 index 8608ff7c73..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/aria_log.00000001 +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/aria_log_control b/kubernetes/config/docker/init/src/config/policy/mariadb/data/aria_log_control Binary files differdeleted file mode 100644 index 9ae850a6a0..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/aria_log_control +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/debian-10.0.flag b/kubernetes/config/docker/init/src/config/policy/mariadb/data/debian-10.0.flag deleted file mode 100644 index e69de29bb2..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/debian-10.0.flag +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/firstrun b/kubernetes/config/docker/init/src/config/policy/mariadb/data/firstrun deleted file mode 100644 index e69de29bb2..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/firstrun +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/ib_logfile0 b/kubernetes/config/docker/init/src/config/policy/mariadb/data/ib_logfile0 Binary files differdeleted file mode 100644 index cc8b741fc4..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/ib_logfile0 +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/ib_logfile1 b/kubernetes/config/docker/init/src/config/policy/mariadb/data/ib_logfile1 Binary files differdeleted file mode 100644 index 274bba07cf..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/ib_logfile1 +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/ibdata1 b/kubernetes/config/docker/init/src/config/policy/mariadb/data/ibdata1 Binary files differdeleted file mode 100644 index 3920f04824..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/ibdata1 +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/log/db.opt b/kubernetes/config/docker/init/src/config/policy/mariadb/data/log/db.opt deleted file mode 100644 index d8429c4e0d..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/log/db.opt +++ /dev/null @@ -1,2 +0,0 @@ -default-character-set=latin1 -default-collation=latin1_swedish_ci diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/multi-master.info b/kubernetes/config/docker/init/src/config/policy/mariadb/data/multi-master.info deleted file mode 100644 index e69de29bb2..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/multi-master.info +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/column_stats.MYD b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/column_stats.MYD deleted file mode 100644 index e69de29bb2..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/column_stats.MYD +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/column_stats.MYI b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/column_stats.MYI Binary files differdeleted file mode 100644 index 9ff5ed6cd2..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/column_stats.MYI +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/column_stats.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/column_stats.frm Binary files differdeleted file mode 100644 index fefc7eb21e..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/column_stats.frm +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/columns_priv.MYD b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/columns_priv.MYD deleted file mode 100644 index e69de29bb2..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/columns_priv.MYD +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/columns_priv.MYI b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/columns_priv.MYI Binary files differdeleted file mode 100644 index f261e282b7..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/columns_priv.MYI +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/columns_priv.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/columns_priv.frm Binary files differdeleted file mode 100644 index faa4a8a87c..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/columns_priv.frm +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/db.MYD b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/db.MYD deleted file mode 100644 index e69de29bb2..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/db.MYD +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/db.MYI b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/db.MYI Binary files differdeleted file mode 100644 index 628c578248..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/db.MYI +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/db.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/db.frm Binary files differdeleted file mode 100644 index 1ab1f59765..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/db.frm +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/event.MYD b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/event.MYD deleted file mode 100644 index e69de29bb2..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/event.MYD +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/event.MYI b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/event.MYI Binary files differdeleted file mode 100644 index fc4d47f02d..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/event.MYI +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/event.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/event.frm Binary files differdeleted file mode 100644 index 9089087ecf..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/event.frm +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/func.MYD b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/func.MYD deleted file mode 100644 index e69de29bb2..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/func.MYD +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/func.MYI b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/func.MYI Binary files differdeleted file mode 100644 index b0ddde112f..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/func.MYI +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/func.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/func.frm Binary files differdeleted file mode 100644 index 42aca49552..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/func.frm +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/general_log.CSM b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/general_log.CSM Binary files differdeleted file mode 100644 index 8d08b8db90..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/general_log.CSM +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/general_log.CSV b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/general_log.CSV deleted file mode 100644 index e69de29bb2..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/general_log.CSV +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/general_log.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/general_log.frm Binary files differdeleted file mode 100644 index 919bb7ff2b..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/general_log.frm +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/gtid_slave_pos.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/gtid_slave_pos.frm Binary files differdeleted file mode 100644 index d09f1d4c61..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/gtid_slave_pos.frm +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/gtid_slave_pos.ibd b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/gtid_slave_pos.ibd Binary files differdeleted file mode 100644 index b74a0af6dd..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/gtid_slave_pos.ibd +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/help_category.MYD b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/help_category.MYD Binary files differdeleted file mode 100644 index 360a41a527..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/help_category.MYD +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/help_category.MYI b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/help_category.MYI Binary files differdeleted file mode 100644 index c381776201..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/help_category.MYI +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/help_category.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/help_category.frm Binary files differdeleted file mode 100644 index e9dc205bc0..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/help_category.frm +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/help_keyword.MYD b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/help_keyword.MYD Binary files differdeleted file mode 100644 index 570509bbc5..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/help_keyword.MYD +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/help_keyword.MYI b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/help_keyword.MYI Binary files differdeleted file mode 100644 index 36715cf3f8..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/help_keyword.MYI +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/help_keyword.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/help_keyword.frm Binary files differdeleted file mode 100644 index 999eec1ee4..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/help_keyword.frm +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/help_relation.MYD b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/help_relation.MYD Binary files differdeleted file mode 100644 index f963ea5cbe..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/help_relation.MYD +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/help_relation.MYI b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/help_relation.MYI Binary files differdeleted file mode 100644 index 53190af9c8..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/help_relation.MYI +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/help_relation.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/help_relation.frm Binary files differdeleted file mode 100644 index 6eef95a38f..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/help_relation.frm +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/help_topic.MYD b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/help_topic.MYD Binary files differdeleted file mode 100644 index ad4c19e684..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/help_topic.MYD +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/help_topic.MYI b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/help_topic.MYI Binary files differdeleted file mode 100644 index d8ef966307..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/help_topic.MYI +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/help_topic.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/help_topic.frm Binary files differdeleted file mode 100644 index 3b59b25043..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/help_topic.frm +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/host.MYD b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/host.MYD deleted file mode 100644 index e69de29bb2..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/host.MYD +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/host.MYI b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/host.MYI Binary files differdeleted file mode 100644 index 2a1cfcb35f..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/host.MYI +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/host.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/host.frm Binary files differdeleted file mode 100644 index 62ae8cd164..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/host.frm +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/index_stats.MYD b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/index_stats.MYD deleted file mode 100644 index e69de29bb2..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/index_stats.MYD +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/index_stats.MYI b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/index_stats.MYI Binary files differdeleted file mode 100644 index 05be1c8824..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/index_stats.MYI +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/index_stats.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/index_stats.frm Binary files differdeleted file mode 100644 index e4cf7e0097..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/index_stats.frm +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/innodb_index_stats.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/innodb_index_stats.frm Binary files differdeleted file mode 100644 index ed0f019b3e..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/innodb_index_stats.frm +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/innodb_index_stats.ibd b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/innodb_index_stats.ibd Binary files differdeleted file mode 100644 index daac102f2f..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/innodb_index_stats.ibd +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/innodb_table_stats.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/innodb_table_stats.frm Binary files differdeleted file mode 100644 index 64e3af3a5d..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/innodb_table_stats.frm +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/innodb_table_stats.ibd b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/innodb_table_stats.ibd Binary files differdeleted file mode 100644 index 7716fcc485..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/innodb_table_stats.ibd +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/plugin.MYD b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/plugin.MYD deleted file mode 100644 index e69de29bb2..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/plugin.MYD +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/plugin.MYI b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/plugin.MYI Binary files differdeleted file mode 100644 index 5e741be58b..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/plugin.MYI +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/plugin.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/plugin.frm Binary files differdeleted file mode 100644 index 7f57bf2285..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/plugin.frm +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/proc.MYD b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/proc.MYD deleted file mode 100644 index e69de29bb2..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/proc.MYD +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/proc.MYI b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/proc.MYI Binary files differdeleted file mode 100644 index 253b7c730b..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/proc.MYI +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/proc.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/proc.frm Binary files differdeleted file mode 100644 index a7c27b092b..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/proc.frm +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/procs_priv.MYD b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/procs_priv.MYD deleted file mode 100644 index e69de29bb2..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/procs_priv.MYD +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/procs_priv.MYI b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/procs_priv.MYI Binary files differdeleted file mode 100644 index 62aca26c23..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/procs_priv.MYI +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/procs_priv.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/procs_priv.frm Binary files differdeleted file mode 100644 index 03a6ce60cc..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/procs_priv.frm +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/proxies_priv.MYD b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/proxies_priv.MYD deleted file mode 100644 index 5d8c536113..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/proxies_priv.MYD +++ /dev/null @@ -1 +0,0 @@ -ÿlocalhost root VUÚXÿae9df72d0f92 root VUÚX
\ No newline at end of file diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/proxies_priv.MYI b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/proxies_priv.MYI Binary files differdeleted file mode 100644 index 8ad2f00877..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/proxies_priv.MYI +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/proxies_priv.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/proxies_priv.frm Binary files differdeleted file mode 100644 index 194540fa8a..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/proxies_priv.frm +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/roles_mapping.MYD b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/roles_mapping.MYD deleted file mode 100644 index e69de29bb2..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/roles_mapping.MYD +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/roles_mapping.MYI b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/roles_mapping.MYI Binary files differdeleted file mode 100644 index adcba590dd..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/roles_mapping.MYI +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/roles_mapping.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/roles_mapping.frm Binary files differdeleted file mode 100644 index c3d60e7e1f..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/roles_mapping.frm +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/servers.MYD b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/servers.MYD deleted file mode 100644 index e69de29bb2..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/servers.MYD +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/servers.MYI b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/servers.MYI Binary files differdeleted file mode 100644 index c44463f03f..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/servers.MYI +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/servers.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/servers.frm Binary files differdeleted file mode 100644 index 88922438df..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/servers.frm +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/slow_log.CSM b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/slow_log.CSM Binary files differdeleted file mode 100644 index 8d08b8db90..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/slow_log.CSM +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/slow_log.CSV b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/slow_log.CSV deleted file mode 100644 index e69de29bb2..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/slow_log.CSV +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/slow_log.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/slow_log.frm Binary files differdeleted file mode 100644 index 35095395f9..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/slow_log.frm +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/table_stats.MYD b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/table_stats.MYD deleted file mode 100644 index e69de29bb2..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/table_stats.MYD +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/table_stats.MYI b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/table_stats.MYI Binary files differdeleted file mode 100644 index 0d26cd38bc..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/table_stats.MYI +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/table_stats.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/table_stats.frm Binary files differdeleted file mode 100644 index 6bac5bddc8..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/table_stats.frm +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/tables_priv.MYD b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/tables_priv.MYD deleted file mode 100644 index e69de29bb2..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/tables_priv.MYD +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/tables_priv.MYI b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/tables_priv.MYI Binary files differdeleted file mode 100644 index 610ffef58f..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/tables_priv.MYI +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/tables_priv.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/tables_priv.frm Binary files differdeleted file mode 100644 index 008358b564..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/tables_priv.frm +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone.MYD b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone.MYD deleted file mode 100644 index e69de29bb2..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone.MYD +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone.MYI b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone.MYI Binary files differdeleted file mode 100644 index 99242f2217..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone.MYI +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone.frm Binary files differdeleted file mode 100644 index 5e091a235b..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone.frm +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone_leap_second.MYD b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone_leap_second.MYD deleted file mode 100644 index e69de29bb2..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone_leap_second.MYD +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone_leap_second.MYI b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone_leap_second.MYI Binary files differdeleted file mode 100644 index 806384388e..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone_leap_second.MYI +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone_leap_second.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone_leap_second.frm Binary files differdeleted file mode 100644 index ae89ff5940..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone_leap_second.frm +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone_name.MYD b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone_name.MYD deleted file mode 100644 index e69de29bb2..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone_name.MYD +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone_name.MYI b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone_name.MYI Binary files differdeleted file mode 100644 index 46e949ceef..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone_name.MYI +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone_name.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone_name.frm Binary files differdeleted file mode 100644 index a9e7942d50..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone_name.frm +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone_transition.MYD b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone_transition.MYD deleted file mode 100644 index e69de29bb2..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone_transition.MYD +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone_transition.MYI b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone_transition.MYI Binary files differdeleted file mode 100644 index a98b680dd1..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone_transition.MYI +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone_transition.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone_transition.frm Binary files differdeleted file mode 100644 index 58743dcd03..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone_transition.frm +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone_transition_type.MYD b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone_transition_type.MYD deleted file mode 100644 index e69de29bb2..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone_transition_type.MYD +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone_transition_type.MYI b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone_transition_type.MYI Binary files differdeleted file mode 100644 index d4f0bc126d..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone_transition_type.MYI +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone_transition_type.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone_transition_type.frm Binary files differdeleted file mode 100644 index 7d0229c3f9..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone_transition_type.frm +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/user.MYD b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/user.MYD Binary files differdeleted file mode 100644 index 107af559b1..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/user.MYD +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/user.MYI b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/user.MYI Binary files differdeleted file mode 100644 index c6eb47dad2..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/user.MYI +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/user.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/user.frm Binary files differdeleted file mode 100644 index 9e5f937d02..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/user.frm +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/accounts.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/accounts.frm Binary files differdeleted file mode 100644 index 76257e5c82..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/accounts.frm +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/cond_instances.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/cond_instances.frm Binary files differdeleted file mode 100644 index 746f90ded7..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/cond_instances.frm +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/db.opt b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/db.opt deleted file mode 100644 index 4ed6015f9c..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/db.opt +++ /dev/null @@ -1,2 +0,0 @@ -default-character-set=utf8 -default-collation=utf8_general_ci diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_stages_current.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_stages_current.frm Binary files differdeleted file mode 100644 index 55206140d9..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_stages_current.frm +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_stages_history.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_stages_history.frm Binary files differdeleted file mode 100644 index ff098a6954..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_stages_history.frm +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_stages_history_long.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_stages_history_long.frm Binary files differdeleted file mode 100644 index 7c8057626e..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_stages_history_long.frm +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_stages_summary_by_account_by_event_name.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_stages_summary_by_account_by_event_name.frm Binary files differdeleted file mode 100644 index e550bc8e8f..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_stages_summary_by_account_by_event_name.frm +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_stages_summary_by_host_by_event_name.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_stages_summary_by_host_by_event_name.frm Binary files differdeleted file mode 100644 index 07b01595dd..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_stages_summary_by_host_by_event_name.frm +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_stages_summary_by_thread_by_event_name.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_stages_summary_by_thread_by_event_name.frm Binary files differdeleted file mode 100644 index 953423d11e..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_stages_summary_by_thread_by_event_name.frm +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_stages_summary_by_user_by_event_name.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_stages_summary_by_user_by_event_name.frm Binary files differdeleted file mode 100644 index ee203b42a4..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_stages_summary_by_user_by_event_name.frm +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_stages_summary_global_by_event_name.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_stages_summary_global_by_event_name.frm Binary files differdeleted file mode 100644 index 17695dfdf7..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_stages_summary_global_by_event_name.frm +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_statements_current.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_statements_current.frm Binary files differdeleted file mode 100644 index f1c697dd92..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_statements_current.frm +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_statements_history.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_statements_history.frm Binary files differdeleted file mode 100644 index a22f24552c..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_statements_history.frm +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_statements_history_long.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_statements_history_long.frm Binary files differdeleted file mode 100644 index 90184ae324..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_statements_history_long.frm +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_statements_summary_by_account_by_event_name.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_statements_summary_by_account_by_event_name.frm Binary files differdeleted file mode 100644 index 6d96ec64f6..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_statements_summary_by_account_by_event_name.frm +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_statements_summary_by_digest.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_statements_summary_by_digest.frm Binary files differdeleted file mode 100644 index bd5d1be7af..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_statements_summary_by_digest.frm +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_statements_summary_by_host_by_event_name.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_statements_summary_by_host_by_event_name.frm Binary files differdeleted file mode 100644 index a4cbc467dc..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_statements_summary_by_host_by_event_name.frm +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_statements_summary_by_thread_by_event_name.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_statements_summary_by_thread_by_event_name.frm Binary files differdeleted file mode 100644 index 2463e3f9e0..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_statements_summary_by_thread_by_event_name.frm +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_statements_summary_by_user_by_event_name.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_statements_summary_by_user_by_event_name.frm Binary files differdeleted file mode 100644 index 8e1e1b49be..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_statements_summary_by_user_by_event_name.frm +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_statements_summary_global_by_event_name.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_statements_summary_global_by_event_name.frm Binary files differdeleted file mode 100644 index 0866d50e2b..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_statements_summary_global_by_event_name.frm +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_waits_current.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_waits_current.frm Binary files differdeleted file mode 100644 index e511ca188c..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_waits_current.frm +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_waits_history.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_waits_history.frm Binary files differdeleted file mode 100644 index 0ccd30e689..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_waits_history.frm +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_waits_history_long.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_waits_history_long.frm Binary files differdeleted file mode 100644 index 6d80113cc9..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_waits_history_long.frm +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_waits_summary_by_account_by_event_name.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_waits_summary_by_account_by_event_name.frm Binary files differdeleted file mode 100644 index 1e866b6765..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_waits_summary_by_account_by_event_name.frm +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_waits_summary_by_host_by_event_name.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_waits_summary_by_host_by_event_name.frm Binary files differdeleted file mode 100644 index 2da5615afc..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_waits_summary_by_host_by_event_name.frm +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_waits_summary_by_instance.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_waits_summary_by_instance.frm Binary files differdeleted file mode 100644 index 8830264e9e..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_waits_summary_by_instance.frm +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_waits_summary_by_thread_by_event_name.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_waits_summary_by_thread_by_event_name.frm Binary files differdeleted file mode 100644 index d72308ce21..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_waits_summary_by_thread_by_event_name.frm +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_waits_summary_by_user_by_event_name.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_waits_summary_by_user_by_event_name.frm Binary files differdeleted file mode 100644 index 787a3a5184..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_waits_summary_by_user_by_event_name.frm +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_waits_summary_global_by_event_name.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_waits_summary_global_by_event_name.frm Binary files differdeleted file mode 100644 index f690713d5f..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_waits_summary_global_by_event_name.frm +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/file_instances.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/file_instances.frm Binary files differdeleted file mode 100644 index 85836660f1..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/file_instances.frm +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/file_summary_by_event_name.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/file_summary_by_event_name.frm Binary files differdeleted file mode 100644 index 591f0e9559..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/file_summary_by_event_name.frm +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/file_summary_by_instance.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/file_summary_by_instance.frm Binary files differdeleted file mode 100644 index 9f5807ed05..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/file_summary_by_instance.frm +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/host_cache.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/host_cache.frm Binary files differdeleted file mode 100644 index be7423dd1f..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/host_cache.frm +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/hosts.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/hosts.frm Binary files differdeleted file mode 100644 index c6aa503830..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/hosts.frm +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/mutex_instances.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/mutex_instances.frm Binary files differdeleted file mode 100644 index cca04529d2..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/mutex_instances.frm +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/objects_summary_global_by_type.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/objects_summary_global_by_type.frm Binary files differdeleted file mode 100644 index 2fa0064147..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/objects_summary_global_by_type.frm +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/performance_timers.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/performance_timers.frm Binary files differdeleted file mode 100644 index f7e1660bfc..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/performance_timers.frm +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/rwlock_instances.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/rwlock_instances.frm Binary files differdeleted file mode 100644 index 135277b762..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/rwlock_instances.frm +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/session_account_connect_attrs.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/session_account_connect_attrs.frm Binary files differdeleted file mode 100644 index d73a80e510..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/session_account_connect_attrs.frm +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/session_connect_attrs.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/session_connect_attrs.frm Binary files differdeleted file mode 100644 index 31c74757c0..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/session_connect_attrs.frm +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/setup_actors.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/setup_actors.frm Binary files differdeleted file mode 100644 index 276443fc21..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/setup_actors.frm +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/setup_consumers.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/setup_consumers.frm Binary files differdeleted file mode 100644 index 80f6dd0766..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/setup_consumers.frm +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/setup_instruments.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/setup_instruments.frm Binary files differdeleted file mode 100644 index fd83053749..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/setup_instruments.frm +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/setup_objects.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/setup_objects.frm Binary files differdeleted file mode 100644 index 89ae59bb69..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/setup_objects.frm +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/setup_timers.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/setup_timers.frm Binary files differdeleted file mode 100644 index 7058356474..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/setup_timers.frm +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/socket_instances.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/socket_instances.frm Binary files differdeleted file mode 100644 index 20963dc4db..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/socket_instances.frm +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/socket_summary_by_event_name.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/socket_summary_by_event_name.frm Binary files differdeleted file mode 100644 index 739b5d5308..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/socket_summary_by_event_name.frm +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/socket_summary_by_instance.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/socket_summary_by_instance.frm Binary files differdeleted file mode 100644 index 649c26f176..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/socket_summary_by_instance.frm +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/table_io_waits_summary_by_index_usage.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/table_io_waits_summary_by_index_usage.frm Binary files differdeleted file mode 100644 index 0fb793b39b..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/table_io_waits_summary_by_index_usage.frm +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/table_io_waits_summary_by_table.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/table_io_waits_summary_by_table.frm Binary files differdeleted file mode 100644 index ffe51b38f7..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/table_io_waits_summary_by_table.frm +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/table_lock_waits_summary_by_table.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/table_lock_waits_summary_by_table.frm Binary files differdeleted file mode 100644 index e771595e4f..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/table_lock_waits_summary_by_table.frm +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/threads.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/threads.frm Binary files differdeleted file mode 100644 index 121dfd3dce..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/threads.frm +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/users.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/users.frm Binary files differdeleted file mode 100644 index 6bb88f3e0c..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/users.frm +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/support/db.opt b/kubernetes/config/docker/init/src/config/policy/mariadb/data/support/db.opt deleted file mode 100644 index d8429c4e0d..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/support/db.opt +++ /dev/null @@ -1,2 +0,0 @@ -default-character-set=latin1 -default-collation=latin1_swedish_ci diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/support/db_version.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/support/db_version.frm Binary files differdeleted file mode 100644 index 29d4a206f2..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/support/db_version.frm +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/support/db_version.ibd b/kubernetes/config/docker/init/src/config/policy/mariadb/data/support/db_version.ibd Binary files differdeleted file mode 100644 index c331218a4a..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/support/db_version.ibd +++ /dev/null diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/xacml/db.opt b/kubernetes/config/docker/init/src/config/policy/mariadb/data/xacml/db.opt deleted file mode 100644 index d8429c4e0d..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/xacml/db.opt +++ /dev/null @@ -1,2 +0,0 @@ -default-character-set=latin1 -default-collation=latin1_swedish_ci diff --git a/kubernetes/config/docker/init/src/config/policy/opt/policy/config/pe/push-policies.sh b/kubernetes/config/docker/init/src/config/policy/opt/policy/config/pe/push-policies.sh deleted file mode 100644 index 7a71639595..0000000000 --- a/kubernetes/config/docker/init/src/config/policy/opt/policy/config/pe/push-policies.sh +++ /dev/null @@ -1,121 +0,0 @@ -#! /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' - diff --git a/kubernetes/config/docker/init/src/config/robot/eteshare/config/vm_properties.py b/kubernetes/config/docker/init/src/config/robot/eteshare/config/vm_properties.py index 387a14451d..1b96b3a001 100755 --- a/kubernetes/config/docker/init/src/config/robot/eteshare/config/vm_properties.py +++ b/kubernetes/config/docker/init/src/config/robot/eteshare/config/vm_properties.py @@ -1,77 +1,77 @@ # File generated from /opt/config # -GLOBAL_INJECTED_AAI1_IP_ADDR = "aai-service.onap-aai" +GLOBAL_INJECTED_AAI1_IP_ADDR = "aai-service.namespace-placeholder" GLOBAL_INJECTED_AAI2_IP_ADDR = "N/A" -GLOBAL_INJECTED_APPC_IP_ADDR = "sdnhost.onap-appc" +GLOBAL_INJECTED_APPC_IP_ADDR = "appc-sdnhost.namespace-placeholder" GLOBAL_INJECTED_ARTIFACTS_VERSION = "1.1.0-SNAPSHOT" -GLOBAL_INJECTED_CLAMP_IP_ADDR = "clamp.onap-clamp" +GLOBAL_INJECTED_CLAMP_IP_ADDR = "clamp.namespace-placeholder" GLOBAL_INJECTED_CLOUD_ENV = "openstack" -GLOBAL_INJECTED_DCAE_IP_ADDR = "dcae-controller.onap-dcae" +GLOBAL_INJECTED_DCAE_IP_ADDR = "dcae-controller.namespace-placeholder" GLOBAL_INJECTED_DNS_IP_ADDR = "10.0.100.1" GLOBAL_INJECTED_DOCKER_VERSION = "1.1-STAGING-latest" #GLOBAL_INJECTED_EXTERNAL_DNS = "N/A" GLOBAL_INJECTED_GERRIT_BRANCH = "master" GLOBAL_INJECTED_KEYSTONE = "OPENSTACK_KEYSTONE_IP_HERE" -GLOBAL_INJECTED_MR_IP_ADDR = "dmaap.onap-message-router" -GLOBAL_INJECTED_MSO_IP_ADDR = "mso.onap-mso" +GLOBAL_INJECTED_MR_IP_ADDR = "dmaap.namespace-placeholder" +GLOBAL_INJECTED_MSO_IP_ADDR = "mso.namespace-placeholder" GLOBAL_INJECTED_NETWORK = "OPENSTACK_NETWORK_ID_WITH_ONAP_ROUTE_HERE" GLOBAL_INJECTED_NEXUS_DOCKER_REPO = "nexus3.onap.org:10001" GLOBAL_INJECTED_NEXUS_PASSWORD = "docker" GLOBAL_INJECTED_NEXUS_REPO = "https://nexus.onap.org/content/sites/raw" GLOBAL_INJECTED_NEXUS_USERNAME = "docker" -GLOBAL_INJECTED_OPENO_IP_ADDR = "msb-iag.onap-msb" +GLOBAL_INJECTED_OPENO_IP_ADDR = "msb-iag.namespace-placeholder" GLOBAL_INJECTED_OPENSTACK_PASSWORD = "OPENSTACK_PASSWORD_HERE" GLOBAL_INJECTED_OPENSTACK_TENANT_ID = "OPENSTACK_TENANT_ID_HERE" GLOBAL_INJECTED_OPENSTACK_USERNAME = "OPENSTACK_USERNAME_HERE" -GLOBAL_INJECTED_POLICY_IP_ADDR = "pypdp.onap-policy" -GLOBAL_INJECTED_POLICY_HEALTHCHECK_IP_ADDR = "drools.onap-policy" -GLOBAL_INJECTED_PORTAL_IP_ADDR = "portalapps.onap-portal" +GLOBAL_INJECTED_POLICY_IP_ADDR = "pypdp.namespace-placeholder" +GLOBAL_INJECTED_POLICY_HEALTHCHECK_IP_ADDR = "drools.namespace-placeholder" +GLOBAL_INJECTED_PORTAL_IP_ADDR = "portalapps.namespace-placeholder" GLOBAL_INJECTED_REGION = "OPENSTACK_REGION_HERE" GLOBAL_INJECTED_REMOTE_REPO = "http://gerrit.onap.org/r/testsuite/properties.git" -GLOBAL_INJECTED_SDC_IP_ADDR = "sdc-be.onap-sdc" -GLOBAL_INJECTED_SDC_FE_IP_ADDR = "sdc-fe.onap-sdc" -GLOBAL_INJECTED_SDC_BE_IP_ADDR = "sdc-be.onap-sdc" -GLOBAL_INJECTED_SDNC_IP_ADDR = "sdnhost.onap-sdnc" -GLOBAL_INJECTED_SDNC_PORTAL_IP_ADDR = "sdnc-portal.onap-sdnc" -GLOBAL_INJECTED_SO_IP_ADDR = "mso.onap-mso" -GLOBAL_INJECTED_VID_IP_ADDR = "vid-server.onap-vid" +GLOBAL_INJECTED_SDC_IP_ADDR = "sdc-be.namespace-placeholder" +GLOBAL_INJECTED_SDC_FE_IP_ADDR = "sdc-fe.namespace-placeholder" +GLOBAL_INJECTED_SDC_BE_IP_ADDR = "sdc-be.namespace-placeholder" +GLOBAL_INJECTED_SDNC_IP_ADDR = "sdnhost.namespace-placeholder" +GLOBAL_INJECTED_SDNC_PORTAL_IP_ADDR = "sdnc-portal.namespace-placeholder" +GLOBAL_INJECTED_SO_IP_ADDR = "mso.namespace-placeholder" +GLOBAL_INJECTED_VID_IP_ADDR = "vid-server.namespace-placeholder" GLOBAL_INJECTED_VM_FLAVOR = "OPENSTACK_FLAVOUR_MEDIUM_HERE" GLOBAL_INJECTED_VM_IMAGE_NAME = "UBUNTU_14_IMAGE_NAME_HERE" GLOBAL_INJECTED_PUBLIC_NET_ID = "OPENSTACK_PUBLIC_NET_ID_HERE" GLOBAL_INJECTED_PROPERTIES = { - "GLOBAL_INJECTED_AAI1_IP_ADDR" : "aai-service.onap-aai", - "GLOBAL_INJECTED_APPC_IP_ADDR" : "sdnhost.onap-appc", + "GLOBAL_INJECTED_AAI1_IP_ADDR" : "aai-service.namespace-placeholder", + "GLOBAL_INJECTED_APPC_IP_ADDR" : "appc-sdnhost.namespace-placeholder", "GLOBAL_INJECTED_ARTIFACTS_VERSION" : "1.1.0-SNAPSHOT", - "GLOBAL_INJECTED_CLAMP_IP_ADDR" : "clamp.onap-clamp", + "GLOBAL_INJECTED_CLAMP_IP_ADDR" : "clamp.namespace-placeholder", "GLOBAL_INJECTED_CLOUD_ENV" : "openstack", - "GLOBAL_INJECTED_DCAE_IP_ADDR" : "dcae-controller.onap-dcae", + "GLOBAL_INJECTED_DCAE_IP_ADDR" : "dcae-controller.namespace-placeholder", "GLOBAL_INJECTED_DNS_IP_ADDR" : "10.0.100.1", "GLOBAL_INJECTED_DOCKER_VERSION" : "1.1-STAGING-latest", "GLOBAL_INJECTED_GERRIT_BRANCH" : "master", "GLOBAL_INJECTED_KEYSTONE" : "OPENSTACK_KEYSTONE_IP_HERE", - "GLOBAL_INJECTED_MR_IP_ADDR" : "dmaap.onap-message-router", - "GLOBAL_INJECTED_MSO_IP_ADDR" : "mso.onap-mso", + "GLOBAL_INJECTED_MR_IP_ADDR" : "dmaap.namespace-placeholder", + "GLOBAL_INJECTED_MSO_IP_ADDR" : "mso.namespace-placeholder", "GLOBAL_INJECTED_NETWORK" : "OPENSTACK_NETWORK_ID_WITH_ONAP_ROUTE_HERE", "GLOBAL_INJECTED_NEXUS_DOCKER_REPO" : "nexus3.onap.org:10001", "GLOBAL_INJECTED_NEXUS_PASSWORD" : "docker", "GLOBAL_INJECTED_NEXUS_REPO" : "https://nexus.onap.org/content/sites/raw", "GLOBAL_INJECTED_NEXUS_USERNAME" : "docker", - "GLOBAL_INJECTED_OPENO_IP_ADDR" : "msb-iag.onap-msb", + "GLOBAL_INJECTED_OPENO_IP_ADDR" : "msb-iag.namespace-placeholder", "GLOBAL_INJECTED_OPENSTACK_PASSWORD" : "OPENSTACK_PASSWORD_HERE", "GLOBAL_INJECTED_OPENSTACK_TENANT_ID" : "OPENSTACK_TENANT_ID_HERE", "GLOBAL_INJECTED_OPENSTACK_USERNAME" : "OPENSTACK_USERNAME_HERE", - "GLOBAL_INJECTED_POLICY_IP_ADDR" : "pypdp.onap-policy", - "GLOBAL_INJECTED_POLICY_HEALTHCHECK_IP_ADDR" : "drools.onap-policy", - "GLOBAL_INJECTED_PORTAL_IP_ADDR" : "portalapps.onap-portal", + "GLOBAL_INJECTED_POLICY_IP_ADDR" : "pypdp.namespace-placeholder", + "GLOBAL_INJECTED_POLICY_HEALTHCHECK_IP_ADDR" : "drools.namespace-placeholder", + "GLOBAL_INJECTED_PORTAL_IP_ADDR" : "portalapps.namespace-placeholder", "GLOBAL_INJECTED_REGION" : "OPENSTACK_REGION_HERE", "GLOBAL_INJECTED_REMOTE_REPO" : "http://gerrit.onap.org/r/testsuite/properties.git", - "GLOBAL_INJECTED_SDC_FE_IP_ADDR" : "sdc-fe.onap-sdc", - "GLOBAL_INJECTED_SDC_BE_IP_ADDR" : "sdc-be.onap-sdc", - "GLOBAL_INJECTED_SDNC_IP_ADDR" : "sdnhost.onap-sdnc", - "GLOBAL_INJECTED_SDNC_PORTAL_IP_ADDR" : "sdnc-portal.onap-sdnc", - "GLOBAL_INJECTED_SO_IP_ADDR" : "mso.onap-mso", - "GLOBAL_INJECTED_VID_IP_ADDR" : "vid-server.onap-vid", + "GLOBAL_INJECTED_SDC_FE_IP_ADDR" : "sdc-fe.namespace-placeholder", + "GLOBAL_INJECTED_SDC_BE_IP_ADDR" : "sdc-be.namespace-placeholder", + "GLOBAL_INJECTED_SDNC_IP_ADDR" : "sdnhost.namespace-placeholder", + "GLOBAL_INJECTED_SDNC_PORTAL_IP_ADDR" : "sdnc-portal.namespace-placeholder", + "GLOBAL_INJECTED_SO_IP_ADDR" : "mso.namespace-placeholder", + "GLOBAL_INJECTED_VID_IP_ADDR" : "vid-server.namespace-placeholder", "GLOBAL_INJECTED_VM_FLAVOR" : "OPENSTACK_FLAVOUR_MEDIUM_HERE", "GLOBAL_INJECTED_VM_IMAGE_NAME" : "UBUNTU_14_IMAGE_NAME_HERE", "GLOBAL_INJECTED_PUBLIC_NET_ID" : "OPENSTACK_PUBLIC_NET_ID_HERE" diff --git a/kubernetes/config/onap-parameters.yaml b/kubernetes/config/onap-parameters.yaml index 6f84d0f354..3910b60786 100644 --- a/kubernetes/config/onap-parameters.yaml +++ b/kubernetes/config/onap-parameters.yaml @@ -12,4 +12,4 @@ OPENSTACK_KEYSTONE_URL: "" OPENSTACK_FLAVOUR_MEDIUM: "" OPENSTACK_SERVICE_TENANT_NAME: "" DMAAP_TOPIC: "" -DEMO_ARTIFACTS_VERSION: ""
\ No newline at end of file +DEMO_ARTIFACTS_VERSION: "" diff --git a/kubernetes/config/prepull_docker.sh b/kubernetes/config/prepull_docker.sh index e456c3e016..ef46334197 100755 --- a/kubernetes/config/prepull_docker.sh +++ b/kubernetes/config/prepull_docker.sh @@ -101,33 +101,32 @@ do #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 diff --git a/kubernetes/config/templates/pod.yaml b/kubernetes/config/templates/pod.yaml index 217478bb4d..38d27ee6e1 100644 --- a/kubernetes/config/templates/pod.yaml +++ b/kubernetes/config/templates/pod.yaml @@ -14,7 +14,7 @@ metadata: spec: containers: - name: {{ .Chart.Name }} - image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" + image: "{{ .Values.image.repository }}" imagePullPolicy: {{ .Values.image.pullPolicy }} envFrom: - configMapRef: @@ -25,7 +25,7 @@ spec: fieldRef: fieldPath: metadata.namespace - name: NAMESPACE_PREFIX - value: {{ .Values.nsPrefix }} + value: {{ .Values.nsPrefix }} - name: DOCKER_SHARE_PATH value: {{ .Values.dockerSharePath }} volumeMounts: @@ -35,4 +35,4 @@ spec: - name: config-init-root hostPath: path: {{ .Values.dockerSharePath }} - restartPolicy: Never
\ No newline at end of file + restartPolicy: Never diff --git a/kubernetes/config/values.yaml b/kubernetes/config/values.yaml index 7cfa985c60..243996d2d7 100644 --- a/kubernetes/config/values.yaml +++ b/kubernetes/config/values.yaml @@ -2,7 +2,5 @@ nsPrefix: onap dockerSharePath: /dockerdata-nfs image: - repository: oomk8s/config-init - #master => Beijing (major release uprev) - tag: 2.0.0-SNAPSHOT - pullPolicy: Always
\ No newline at end of file + repository: oomk8s/config-init:2.0.0-SNAPSHOT + pullPolicy: Always diff --git a/kubernetes/consul/Chart.yaml b/kubernetes/consul/Chart.yaml index 318234db06..2d2d7ba82c 100644 --- a/kubernetes/consul/Chart.yaml +++ b/kubernetes/consul/Chart.yaml @@ -1,4 +1,4 @@ apiVersion: v1 -description: A Helm chart for Consul +description: ONAP Consul Heath Monitor name: consul version: 1.1.0 diff --git a/kubernetes/consul/templates/consul-agent-deployment.yaml b/kubernetes/consul/templates/consul-agent-deployment.yaml index aa8e096f6a..a2bbe6636f 100644 --- a/kubernetes/consul/templates/consul-agent-deployment.yaml +++ b/kubernetes/consul/templates/consul-agent-deployment.yaml @@ -5,8 +5,9 @@ metadata: labels: app: consul-agent name: consul-agent - namespace: "{{ .Values.nsPrefix }}-consul" + namespace: "{{ .Values.nsPrefix }}" spec: + replicas: {{ .Values.consulAgentReplicas }} selector: matchLabels: app: consul-agent @@ -19,7 +20,7 @@ spec: containers: - image: "{{ .Values.consulimageRegistry }}:{{ .Values.consuldockerTag }}" command: ["/usr/local/bin/docker-entrypoint.sh"] - args: ["agent","-client","0.0.0.0","-enable-script-checks","-join","consul-server.{{ .Values.nsPrefix }}-consul"] + args: ["agent","-client","0.0.0.0","-enable-script-checks","-join","consul-server.{{ .Values.nsPrefix }}"] name: consul-server volumeMounts: - mountPath: /consul/config @@ -28,4 +29,4 @@ spec: - hostPath: path: {{ .Values.rootHostPath }}/{{ .Values.nsPrefix }}/consul/consul-agent-config name: consul-agent-config -#{{ end }}
\ No newline at end of file +#{{ end }} diff --git a/kubernetes/consul/templates/consul-server-deployment.yaml b/kubernetes/consul/templates/consul-server-deployment.yaml index a2feb9f6a3..6aafee4cb2 100644 --- a/kubernetes/consul/templates/consul-server-deployment.yaml +++ b/kubernetes/consul/templates/consul-server-deployment.yaml @@ -5,9 +5,9 @@ metadata: labels: app: consul-server name: consul-server - namespace: "{{ .Values.nsPrefix }}-consul" + namespace: "{{ .Values.nsPrefix }}" spec: - replicas: 3 + replicas: {{ .Values.consulServerReplicas }} selector: matchLabels: app: consul-server @@ -20,7 +20,7 @@ spec: containers: - image: "{{ .Values.consulimageRegistry }}:{{ .Values.consuldockerTag }}" command: ["/usr/local/bin/docker-entrypoint.sh"] - args: ["agent","-server","-client","0.0.0.0","-enable-script-checks","-bootstrap-expect=3","-ui","-join","consul-server.{{ .Values.nsPrefix }}-consul"] + args: ["agent","-server","-client","0.0.0.0","-enable-script-checks","-bootstrap-expect=3","-ui","-join","consul-server.{{ .Values.nsPrefix }}"] name: consul-server volumeMounts: - mountPath: /consul/config @@ -29,4 +29,4 @@ spec: - hostPath: path: {{ .Values.rootHostPath }}/{{ .Values.nsPrefix }}/consul/consul-server-config name: consul-server-config -#{{ end }}
\ No newline at end of file +#{{ end }} diff --git a/kubernetes/consul/templates/consul-server-service.yaml b/kubernetes/consul/templates/consul-server-service.yaml index 3dd801664c..a1e0801eab 100644 --- a/kubernetes/consul/templates/consul-server-service.yaml +++ b/kubernetes/consul/templates/consul-server-service.yaml @@ -5,7 +5,7 @@ metadata: labels: app: consul-server name: consul-server - namespace: "{{ .Values.nsPrefix }}-consul" + namespace: "{{ .Values.nsPrefix }}" spec: ports: - name: consul-ui diff --git a/kubernetes/consul/values.yaml b/kubernetes/consul/values.yaml index 89f3ecd0a7..a6909d7d21 100644 --- a/kubernetes/consul/values.yaml +++ b/kubernetes/consul/values.yaml @@ -3,5 +3,7 @@ nodePortPrefix: 302 consuldockerTag: "latest" rootHostPath: "/dockerdata-nfs" consulimageRegistry: "docker.io/consul" +consulAgentReplicas: 1 +consulServerReplicas: 3 service: type: NodePort diff --git a/kubernetes/dcae/templates/all-services.yaml b/kubernetes/dcae/templates/all-services.yaml index b0170734dd..9423e43560 100644 --- a/kubernetes/dcae/templates/all-services.yaml +++ b/kubernetes/dcae/templates/all-services.yaml @@ -3,7 +3,7 @@ apiVersion: v1 kind: Service metadata: name: zookeeper - namespace: "{{ .Values.nsPrefix }}-dcae" + namespace: "{{ .Values.nsPrefix }}" labels: app: zookeeper spec: @@ -20,7 +20,7 @@ apiVersion: v1 kind: Service metadata: name: kafka - namespace: "{{ .Values.nsPrefix }}-dcae" + namespace: "{{ .Values.nsPrefix }}" labels: app: kafka spec: @@ -37,7 +37,7 @@ apiVersion: v1 kind: Service metadata: name: dmaap - namespace: "{{ .Values.nsPrefix }}-dcae" + namespace: "{{ .Values.nsPrefix }}" labels: app: dmaap version: 1.1.0 @@ -60,7 +60,7 @@ apiVersion: v1 kind: Service metadata: name: zldciad4vipstg00 - namespace: "{{ .Values.nsPrefix }}-dcae" + namespace: "{{ .Values.nsPrefix }}" labels: app: dcae-pgaas spec: @@ -82,7 +82,7 @@ metadata: app: dcae-collector-common-event version: latest name: dcae-collector-common-event - namespace: "{{ .Values.nsPrefix }}-dcae" + namespace: "{{ .Values.nsPrefix }}" spec: ports: - name: dcae-ce1 @@ -110,7 +110,7 @@ metadata: app: dcae-collector-dmaapbc version: latest name: dcae-collector-dmaapbc - namespace: "{{ .Values.nsPrefix }}-dcae" + namespace: "{{ .Values.nsPrefix }}" spec: ports: - name: dcae-bc1 diff --git a/kubernetes/dcae/templates/cdap0-dep.yaml b/kubernetes/dcae/templates/cdap0-dep.yaml index 37d7d58a16..208e1ef9a5 100644 --- a/kubernetes/dcae/templates/cdap0-dep.yaml +++ b/kubernetes/dcae/templates/cdap0-dep.yaml @@ -7,7 +7,7 @@ metadata: labels: app: cdap0 name: cdap0 - namespace: "{{ .Values.nsPrefix }}-dcae" + namespace: "{{ .Values.nsPrefix }}" spec: selector: matchLabels: diff --git a/kubernetes/dcae/templates/cdap1-dep.yaml b/kubernetes/dcae/templates/cdap1-dep.yaml index 7529777038..8aa7721a0d 100644 --- a/kubernetes/dcae/templates/cdap1-dep.yaml +++ b/kubernetes/dcae/templates/cdap1-dep.yaml @@ -7,7 +7,7 @@ metadata: labels: app: cdap1 name: cdap1 - namespace: "{{ .Values.nsPrefix }}-dcae" + namespace: "{{ .Values.nsPrefix }}" spec: selector: matchLabels: diff --git a/kubernetes/dcae/templates/cdap2-dep.yaml b/kubernetes/dcae/templates/cdap2-dep.yaml index d146894e56..119b8ff32c 100644 --- a/kubernetes/dcae/templates/cdap2-dep.yaml +++ b/kubernetes/dcae/templates/cdap2-dep.yaml @@ -7,7 +7,7 @@ metadata: labels: app: cdap2 name: cdap2 - namespace: "{{ .Values.nsPrefix }}-dcae" + namespace: "{{ .Values.nsPrefix }}" spec: selector: matchLabels: diff --git a/kubernetes/dcae/templates/dcae-collector-common-event.yaml b/kubernetes/dcae/templates/dcae-collector-common-event.yaml index aa51f140ff..a370151695 100644 --- a/kubernetes/dcae/templates/dcae-collector-common-event.yaml +++ b/kubernetes/dcae/templates/dcae-collector-common-event.yaml @@ -3,7 +3,7 @@ apiVersion: extensions/v1beta1 kind: Deployment metadata: name: dcae-collector-common-event - namespace: "{{ .Values.nsPrefix }}-dcae" + namespace: "{{ .Values.nsPrefix }}" spec: selector: matchLabels: @@ -37,4 +37,4 @@ spec: path: /dockerdata-nfs/{{ .Values.nsPrefix }}/dcae/common-event/config imagePullSecrets: - name: "{{ .Values.nsPrefix }}-docker-registry-key" -#{{ end }}
\ No newline at end of file +#{{ end }} diff --git a/kubernetes/dcae/templates/dcae-collector-dmaapbc.yaml b/kubernetes/dcae/templates/dcae-collector-dmaapbc.yaml index 5de893b867..85f671e998 100644 --- a/kubernetes/dcae/templates/dcae-collector-dmaapbc.yaml +++ b/kubernetes/dcae/templates/dcae-collector-dmaapbc.yaml @@ -3,7 +3,7 @@ apiVersion: extensions/v1beta1 kind: Deployment metadata: name: dcae-collector-dmaapbc - namespace: "{{ .Values.nsPrefix }}-dcae" + namespace: "{{ .Values.nsPrefix }}" spec: selector: matchLabels: @@ -36,4 +36,4 @@ spec: path: /dockerdata-nfs/{{ .Values.nsPrefix }}/dcae/dmaapbc/config imagePullSecrets: - name: "{{ .Values.nsPrefix }}-docker-registry-key" -#{{ end }}
\ No newline at end of file +#{{ end }} diff --git a/kubernetes/dcae/templates/dcae-controller.yaml b/kubernetes/dcae/templates/dcae-controller.yaml index 30f3afb907..e4642c93ef 100644 --- a/kubernetes/dcae/templates/dcae-controller.yaml +++ b/kubernetes/dcae/templates/dcae-controller.yaml @@ -6,7 +6,7 @@ metadata: app: dcae-controller version: latest name: dcae-controller - namespace: "{{ .Values.nsPrefix }}-dcae" + namespace: "{{ .Values.nsPrefix }}" spec: ports: - name: dcae-con1 @@ -27,7 +27,7 @@ apiVersion: extensions/v1beta1 kind: Deployment metadata: name: dcae-controller - namespace: "{{ .Values.nsPrefix }}-dcae" + namespace: "{{ .Values.nsPrefix }}" spec: selector: matchLabels: @@ -60,4 +60,4 @@ spec: path: /dockerdata-nfs/{{ .Values.nsPrefix }}/dcae/dcae-controller/config imagePullSecrets: - name: "{{ .Values.nsPrefix }}-docker-registry-key" -#{{ end }}
\ No newline at end of file +#{{ end }} diff --git a/kubernetes/dcae/templates/dcae-dmaap.yaml b/kubernetes/dcae/templates/dcae-dmaap.yaml index 46c2e65b46..85453119a6 100644 --- a/kubernetes/dcae/templates/dcae-dmaap.yaml +++ b/kubernetes/dcae/templates/dcae-dmaap.yaml @@ -3,7 +3,7 @@ apiVersion: extensions/v1beta1 kind: Deployment metadata: name: dmaap - namespace: "{{ .Values.nsPrefix }}-dcae" + namespace: "{{ .Values.nsPrefix }}" spec: selector: matchLabels: diff --git a/kubernetes/dcae/templates/dcae-kafka.yaml b/kubernetes/dcae/templates/dcae-kafka.yaml index de18137235..d2652721a1 100644 --- a/kubernetes/dcae/templates/dcae-kafka.yaml +++ b/kubernetes/dcae/templates/dcae-kafka.yaml @@ -3,7 +3,7 @@ apiVersion: extensions/v1beta1 kind: Deployment metadata: name: kafka - namespace: "{{ .Values.nsPrefix }}-dcae" + namespace: "{{ .Values.nsPrefix }}" spec: selector: matchLabels: @@ -42,7 +42,7 @@ spec: periodSeconds: 10 env: - name: KAFKA_ZOOKEEPER_CONNECT - value: "zookeeper.{{ .Values.nsPrefix }}-dcae:2181" + value: "zookeeper.{{ .Values.nsPrefix }}" - name: KAFKA_ADVERTISED_HOST_NAME value: "kafka" - name: KAFKA_BROKER_ID diff --git a/kubernetes/dcae/templates/dcae-zookeeper.yaml b/kubernetes/dcae/templates/dcae-zookeeper.yaml index 189a03952d..9c2d8c7eba 100644 --- a/kubernetes/dcae/templates/dcae-zookeeper.yaml +++ b/kubernetes/dcae/templates/dcae-zookeeper.yaml @@ -3,7 +3,7 @@ apiVersion: extensions/v1beta1 kind: Deployment metadata: name: zookeeper - namespace: "{{ .Values.nsPrefix }}-dcae" + namespace: "{{ .Values.nsPrefix }}" spec: selector: matchLabels: @@ -30,4 +30,4 @@ spec: path: /dockerdata-nfs/{{ .Values.nsPrefix }}/dcae/message-router/dcae-startup-vm-message-router/docker_files/data-zookeeper imagePullSecrets: - name: "{{ .Values.nsPrefix }}-docker-registry-key" -#{{ end }}
\ No newline at end of file +#{{ end }} diff --git a/kubernetes/dcae/templates/pgaas.yaml b/kubernetes/dcae/templates/pgaas.yaml index 788de60231..16abade9ea 100644 --- a/kubernetes/dcae/templates/pgaas.yaml +++ b/kubernetes/dcae/templates/pgaas.yaml @@ -7,7 +7,7 @@ metadata: labels: app: dcae-pgaas name: dcae-pgaas - namespace: "{{ .Values.nsPrefix }}-dcae" + namespace: "{{ .Values.nsPrefix }}" spec: replicas: 1 selector: @@ -46,4 +46,4 @@ spec: path: /dockerdata-nfs/{{ .Values.nsPrefix }}/dcae/pgaas/tools imagePullSecrets: - name: "{{ .Values.nsPrefix }}-docker-registry-key" -#{{ end }}
\ No newline at end of file +#{{ end }} diff --git a/kubernetes/dcae/values.yaml b/kubernetes/dcae/values.yaml index ae41f83248..87552927ec 100644 --- a/kubernetes/dcae/values.yaml +++ b/kubernetes/dcae/values.yaml @@ -2,7 +2,7 @@ nsPrefix: onap pullPolicy: Always nodePortPrefix: 302 image: - readiness: oomk8s/readiness-check:1.0.0 + readiness: oomk8s/readiness-check:1.1.0 pgaas: oomk8s/pgaas:1 cdapfs: oomk8s/cdap-fs:1.0.0 cdap: oomk8s/cdap:1.0.7 diff --git a/kubernetes/dcaegen2/templates/pod.yaml b/kubernetes/dcaegen2/templates/pod.yaml index ffb3716ecf..1cf5d9b08d 100644 --- a/kubernetes/dcaegen2/templates/pod.yaml +++ b/kubernetes/dcaegen2/templates/pod.yaml @@ -3,7 +3,7 @@ apiVersion: v1 kind: Pod metadata: name: {{ .Chart.Name }} - namespace: "{{ .Values.nsPrefix }}-dcaegen2" + namespace: "{{ .Values.nsPrefix }}" spec: containers: - name: {{ .Chart.Name }} @@ -27,4 +27,4 @@ spec: imagePullSecrets: - name: "{{ .Values.nsPrefix }}-docker-registry-key" restartPolicy: Never -#{{ end }}
\ No newline at end of file +#{{ end }} diff --git a/kubernetes/esr/templates/all-services.yaml b/kubernetes/esr/templates/all-services.yaml index 68f0db7516..5fbb70604c 100644 --- a/kubernetes/esr/templates/all-services.yaml +++ b/kubernetes/esr/templates/all-services.yaml @@ -5,7 +5,7 @@ metadata: labels: app: esr-esrserver name: esr-esrserver - namespace: "{{ .Values.nsPrefix }}-esr" + namespace: "{{ .Values.nsPrefix }}" annotations: msb.onap.org/service-info: '[ { @@ -14,6 +14,7 @@ metadata: "url": "/api/aai-esr-server/v1", "protocol": "REST", "port": "{{.Values.esrserver.port}}", + "enable_ssl": true, "visualRange":"1" } ]' @@ -32,7 +33,7 @@ metadata: labels: app: esr-esrgui name: esr-esrgui - namespace: "{{ .Values.nsPrefix }}-esr" + namespace: "{{ .Values.nsPrefix }}" annotations: msb.onap.org/service-info: '[ { diff --git a/kubernetes/esr/templates/esr-esrgui-deployment.yaml b/kubernetes/esr/templates/esr-esrgui-deployment.yaml index 6c3ddf404d..f9ec271515 100644 --- a/kubernetes/esr/templates/esr-esrgui-deployment.yaml +++ b/kubernetes/esr/templates/esr-esrgui-deployment.yaml @@ -5,7 +5,7 @@ metadata: labels: app: esr-esrgui name: esr-esrgui - namespace: "{{ .Values.nsPrefix }}-esr" + namespace: "{{ .Values.nsPrefix }}" spec: selector: matchLabels: @@ -22,7 +22,7 @@ spec: name: esr-esrgui env: - name: MSB_ADDR - value: {{ .Values.msbaddr }} + value: {{ tpl .Values.msbaddr . }} ports: - containerPort: {{ .Values.esrgui.port }} readinessProbe: @@ -32,4 +32,4 @@ spec: periodSeconds: 10 imagePullSecrets: - name: "{{ .Values.nsPrefix }}-docker-registry-key" -#{{ end }}
\ No newline at end of file +#{{ end }} diff --git a/kubernetes/esr/templates/esr-esrserver-deployment.yaml b/kubernetes/esr/templates/esr-esrserver-deployment.yaml index 7724fa0d24..386d4014e4 100644 --- a/kubernetes/esr/templates/esr-esrserver-deployment.yaml +++ b/kubernetes/esr/templates/esr-esrserver-deployment.yaml @@ -5,7 +5,7 @@ metadata: labels: app: esr-esrserver name: esr-esrserver - namespace: "{{ .Values.nsPrefix }}-esr" + namespace: "{{ .Values.nsPrefix }}" spec: selector: matchLabels: @@ -22,7 +22,7 @@ spec: name: esr-esrserver env: - name: MSB_ADDR - value: {{ .Values.msbaddr }} + value: {{ tpl .Values.msbaddr . }} ports: - containerPort: {{ .Values.esrserver.port }} readinessProbe: @@ -32,4 +32,4 @@ spec: periodSeconds: 10 imagePullSecrets: - name: "{{ .Values.nsPrefix }}-docker-registry-key" -#{{ end }}
\ No newline at end of file +#{{ end }} diff --git a/kubernetes/esr/values.yaml b/kubernetes/esr/values.yaml index 8cdc484ef2..b942672dfb 100644 --- a/kubernetes/esr/values.yaml +++ b/kubernetes/esr/values.yaml @@ -1,7 +1,7 @@ nsPrefix: onap pullPolicy: Always nodePortPrefix: 302 -msbaddr: msb-iag.onap-msb:80 +msbaddr: msb-iag.{{ .Values.nsPrefix }}:80 esrserver: image: nexus3.onap.org:10001/onap/aai/esr-server:v1.0.0 port: 9518 diff --git a/kubernetes/kube2msb/Chart.yaml b/kubernetes/kube2msb/Chart.yaml deleted file mode 100644 index 97a3454337..0000000000 --- a/kubernetes/kube2msb/Chart.yaml +++ /dev/null @@ -1,4 +0,0 @@ -apiVersion: v1 -description: A Helm chart for Kubernetes -name: kube2msb-registrator -version: 0.1.0 diff --git a/kubernetes/kube2msb/values.yaml b/kubernetes/kube2msb/values.yaml deleted file mode 100644 index 65200c39f1..0000000000 --- a/kubernetes/kube2msb/values.yaml +++ /dev/null @@ -1,7 +0,0 @@ -nsPrefix: onap -pullPolicy: IfNotPresent -image: - kube2msb: nexus3.onap.org:10001/onap/oom/kube2msb -kubeMasterUrl: https://kubernetes.default.svc.cluster.local:443 -discoveryUrl: http://msb-discovery.onap-msb:10081 -kubeMasterAuthToken: QmFzaWMgTURrd056VXdSVEk1TVRGRk9UaEVOREJCTWprNlpHTnlaSGt4YzJsSVlsRlVZVU16WTFsUk1XWnZhV0UyY21GRWEwNUhkMDFDVWxORVRIUmlZUT09 diff --git a/kubernetes/log/resources/elasticsearch/conf/elasticsearch.yml b/kubernetes/log/resources/elasticsearch/conf/elasticsearch.yml index 0b579d0729..f038a10775 100644 --- a/kubernetes/log/resources/elasticsearch/conf/elasticsearch.yml +++ b/kubernetes/log/resources/elasticsearch/conf/elasticsearch.yml @@ -86,7 +86,7 @@ network.host: 0.0.0.0 # By default, Elasticsearch will bind to the available loopback addresses and will scan ports 9300 to 9305 to try # to connect to other nodes running on the same server. # -#discovery.zen.ping.unicast.hosts: ["elasticsearch.onap-log" +#discovery.zen.ping.unicast.hosts: ["elasticsearch.{{.Values.nsPrefix}}" #$discovery.zen.ping.unicast.hosts # # This setting tells Elasticsearch to not elect a master unless there are enough master-eligible nodes diff --git a/kubernetes/log/resources/kibana/conf/kibana.yml b/kubernetes/log/resources/kibana/conf/kibana.yml index 3b96bd33c2..df0d71abab 100644 --- a/kubernetes/log/resources/kibana/conf/kibana.yml +++ b/kubernetes/log/resources/kibana/conf/kibana.yml @@ -31,8 +31,8 @@ server.name: "Kibana" # The URL of the Elasticsearch instance to use for all your queries. # OOM-427, OOM-441 hardcoded onap workspace to avoid helm upgrade past 2.3 -elasticsearch.url: "http://elasticsearch.onap-log:9200" -#elasticsearch-service.onap-log:9200" +elasticsearch.url: "http://elasticsearch.{{.Values.nsPrefix}}:9200" +#elasticsearch-service.{{.Values.nsPrefix}}:9200" #elasticsearch.url: "http://10.247.47.3:9200" # When this setting's value is true Kibana uses the hostname specified in the server.host # setting. When the value of this setting is false, Kibana uses the hostname of the host diff --git a/kubernetes/log/resources/logstash/pipeline/onap-pipeline.conf b/kubernetes/log/resources/logstash/pipeline/onap-pipeline.conf index 123ceb5f28..8289b49f6e 100644 --- a/kubernetes/log/resources/logstash/pipeline/onap-pipeline.conf +++ b/kubernetes/log/resources/logstash/pipeline/onap-pipeline.conf @@ -225,7 +225,7 @@ output { #can specify one or a list of hosts. If sniffing is set, one is enough and others will be auto-discovered ##Also protocol can be specified like ["http://10.247.186.12:9200"] ## OOM-427, OOM-441 hardcoded onap workspace to avoid helm upgrade past 2.3 - hosts => ["http://elasticsearch.onap-log:9200"] + hosts => ["http://elasticsearch.{{.Values.nsPrefix}}:9200"] ## This setting asks Elasticsearch for the list of all cluster nodes and adds them to the hosts list. Default is false. diff --git a/kubernetes/log/templates/all-services.yaml b/kubernetes/log/templates/all-services.yaml index 0885affdcf..a40a4da0e8 100644 --- a/kubernetes/log/templates/all-services.yaml +++ b/kubernetes/log/templates/all-services.yaml @@ -5,7 +5,7 @@ metadata: labels: app: elasticsearch name: elasticsearch - namespace: {{ .Values.nsPrefix }}-log + namespace: {{ .Values.nsPrefix }} spec: ports: - name: http @@ -20,7 +20,7 @@ apiVersion: v1 kind: Service metadata: name: elasticsearchtcp - namespace: {{ .Values.nsPrefix }}-log + namespace: {{ .Values.nsPrefix }} labels: app: elasticsearch spec: @@ -36,8 +36,23 @@ spec: apiVersion: v1 kind: Service metadata: + name: logstashinternal + namespace: {{ .Values.nsPrefix }} + 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 + namespace: {{ .Values.nsPrefix }} labels: app: logstash spec: @@ -56,7 +71,7 @@ metadata: labels: app: kibana name: kibana - namespace: {{ .Values.nsPrefix }}-log + namespace: {{ .Values.nsPrefix }} spec: ports: - name: tcp-ks diff --git a/kubernetes/log/templates/elasticsearch-deployment.yaml b/kubernetes/log/templates/elasticsearch-deployment.yaml index 74ab921834..cbc19a8591 100644 --- a/kubernetes/log/templates/elasticsearch-deployment.yaml +++ b/kubernetes/log/templates/elasticsearch-deployment.yaml @@ -4,9 +4,10 @@ kind: Deployment metadata: labels: app: elasticsearch - name: elasticsearch - namespace: {{ .Values.nsPrefix }}-log + name: log-elasticsearch + namespace: {{ .Values.nsPrefix }} spec: + replicas: {{ .Values.elasticsearchReplicas }} selector: matchLabels: app: elasticsearch @@ -14,13 +15,18 @@ spec: metadata: labels: app: elasticsearch - name: elasticsearch + name: log-elasticsearch 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: @@ -32,6 +38,9 @@ spec: image: {{ .Values.image.es_bb }} imagePullPolicy: {{ .Values.pullPolicy }} name: init-sysctl + volumeMounts: + - name: elasticsearch-logs + mountPath: /logroot/ containers: - name: elasticsearch image: {{ .Values.image.elasticsearch}} @@ -59,10 +68,10 @@ spec: claimName: elasticsearch-db - name: elasticsearch-logs hostPath: - path: /dockerdata-nfs/{{ .Values.nsPrefix }}/log/elasticsearch/logs + path: {{ .Values.dataRootDir }}/{{ .Values.nsPrefix }}/log/ - name: elasticsearch-conf configMap: - name: elasticsearch-configmap + name: log-elasticsearch-configmap items: - key: elasticsearch.yml path: elasticsearch.yml @@ -70,8 +79,8 @@ spec: apiVersion: v1 kind: ConfigMap metadata: - name: elasticsearch-configmap - namespace: {{ .Values.nsPrefix }}-log + name: log-elasticsearch-configmap + namespace: {{ .Values.nsPrefix }} data: {{ (.Files.Glob "resources/elasticsearch/conf/elasticsearch.yml").AsConfig | indent 2 }} #{{ end }} diff --git a/kubernetes/log/templates/kibana-deployment.yaml b/kubernetes/log/templates/kibana-deployment.yaml index 2de825e516..6e5c36c993 100644 --- a/kubernetes/log/templates/kibana-deployment.yaml +++ b/kubernetes/log/templates/kibana-deployment.yaml @@ -4,9 +4,10 @@ kind: Deployment metadata: labels: app: kibana - name: kibana - namespace: {{ .Values.nsPrefix }}-log + name: log-kibana + namespace: {{ .Values.nsPrefix }} spec: + replicas: {{ .Values.kibanaReplicas }} selector: matchLabels: app: kibana @@ -14,7 +15,7 @@ spec: metadata: labels: app: kibana - name: kibana + name: log-kibana spec: initContainers: - command: @@ -47,7 +48,7 @@ spec: volumes: - name: kibana-conf configMap: - name: kibana-configmap + name: log-kibana-configmap items: - key: kibana.yml path: kibana.yml @@ -55,8 +56,8 @@ spec: apiVersion: v1 kind: ConfigMap metadata: - name: kibana-configmap - namespace: {{ .Values.nsPrefix }}-log + name: log-kibana-configmap + namespace: {{ .Values.nsPrefix }} data: -{{ (.Files.Glob "resources/kibana/conf/kibana.yml").AsConfig | indent 2 }} +{{ tpl (.Files.Glob "resources/kibana/conf/kibana.yml").AsConfig . | indent 2 }} #{{ end }} diff --git a/kubernetes/log/templates/log-pv-pvc.yaml b/kubernetes/log/templates/log-pv-pvc.yaml index 4f244718d0..d0176a5462 100644 --- a/kubernetes/log/templates/log-pv-pvc.yaml +++ b/kubernetes/log/templates/log-pv-pvc.yaml @@ -2,10 +2,10 @@ apiVersion: v1 kind: PersistentVolume metadata: - name: elasticsearch-db - namespace: "{{ .Values.nsPrefix }}-log" + name: {{ .Values.nsPrefix }}-elasticsearch-db + namespace: "{{ .Values.nsPrefix }}" labels: - name: elasticsearch-db + name: {{ .Values.nsPrefix }}-elasticsearch-db spec: capacity: storage: 2Gi @@ -13,13 +13,13 @@ spec: - ReadWriteMany persistentVolumeReclaimPolicy: Retain hostPath: - path: /dockerdata-nfs/{{ .Values.nsPrefix }}/log/elasticsearch/data + path: {{ .Values.dataRootDir }}/{{ .Values.nsPrefix }}/log/elasticsearch/data --- kind: PersistentVolumeClaim apiVersion: v1 metadata: name: elasticsearch-db - namespace: "{{ .Values.nsPrefix }}-log" + namespace: "{{ .Values.nsPrefix }}" spec: accessModes: - ReadWriteMany @@ -28,5 +28,5 @@ spec: storage: 2Gi selector: matchLabels: - name: elasticsearch-db -#{{ end }}
\ No newline at end of file + name: {{ .Values.nsPrefix }}-elasticsearch-db +#{{ end }} diff --git a/kubernetes/log/templates/logstash-deployment.yaml b/kubernetes/log/templates/logstash-deployment.yaml index 47c72c8145..1d3b945711 100644 --- a/kubernetes/log/templates/logstash-deployment.yaml +++ b/kubernetes/log/templates/logstash-deployment.yaml @@ -4,9 +4,10 @@ kind: Deployment metadata: labels: app: logstash - name: logstash - namespace: {{ .Values.nsPrefix }}-log + name: log-logstash + namespace: {{ .Values.nsPrefix }} spec: + replicas: {{ .Values.logstashReplicas }} selector: matchLabels: app: logstash @@ -14,7 +15,7 @@ spec: metadata: labels: app: logstash - name: logstash + name: log-logstash spec: initContainers: - command: @@ -35,9 +36,12 @@ spec: - 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 @@ -49,13 +53,13 @@ spec: volumes: - name: logstash-conf configMap: - name: logstash-configmap + name: log-logstash-configmap items: - key: logstash.yml path: logstash.yml - name: logstash-pipeline configMap: - name: logstash-configmap + name: log-logstash-configmap items: - key: onap-pipeline.conf path: onap-pipeline.conf @@ -64,9 +68,9 @@ spec: apiVersion: v1 kind: ConfigMap metadata: - name: logstash-configmap - namespace: {{ .Values.nsPrefix }}-log + name: log-logstash-configmap + namespace: {{ .Values.nsPrefix }} data: -{{ (.Files.Glob "resources/logstash/conf/logstash.yml").AsConfig | indent 2 }} -{{ (.Files.Glob "resources/logstash/pipeline/onap-pipeline.conf").AsConfig | indent 2 }} +{{ tpl (.Files.Glob "resources/logstash/conf/logstash.yml").AsConfig . | indent 2 }} +{{ tpl (.Files.Glob "resources/logstash/pipeline/onap-pipeline.conf").AsConfig . | indent 2 }} #{{ end }} diff --git a/kubernetes/log/values.yaml b/kubernetes/log/values.yaml index 04418302b2..69efa27b3d 100644 --- a/kubernetes/log/values.yaml +++ b/kubernetes/log/values.yaml @@ -1,10 +1,13 @@ nsPrefix: onap -pullPolicy: Always +pullPolicy: Always nodePortPrefix: 302 +dataRootDir: /dockerdata-nfs +elasticsearchReplicas: 1 +kibanaReplicas: 1 +logstashReplicas: 1 image: - readiness: oomk8s/readiness-check:1.0.0 + readiness: oomk8s/readiness-check:1.1.0 logstash: docker.elastic.co/logstash/logstash:5.4.3 kibana: docker.elastic.co/kibana/kibana:5.5.0 elasticsearch: docker.elastic.co/elasticsearch/elasticsearch:5.5.0 es_bb: busybox - diff --git a/kubernetes/message-router/templates/all-services.yaml b/kubernetes/message-router/templates/all-services.yaml index e76a1d9431..385b5f472d 100644 --- a/kubernetes/message-router/templates/all-services.yaml +++ b/kubernetes/message-router/templates/all-services.yaml @@ -3,7 +3,7 @@ apiVersion: v1 kind: Service metadata: name: zookeeper - namespace: "{{ .Values.nsPrefix }}-message-router" + namespace: "{{ .Values.nsPrefix }}" labels: app: zookeeper spec: @@ -20,7 +20,7 @@ apiVersion: v1 kind: Service metadata: name: global-kafka - namespace: "{{ .Values.nsPrefix }}-message-router" + namespace: "{{ .Values.nsPrefix }}" labels: app: global-kafka spec: @@ -37,7 +37,7 @@ apiVersion: v1 kind: Service metadata: name: dmaap - namespace: "{{ .Values.nsPrefix }}-message-router" + namespace: "{{ .Values.nsPrefix }}" labels: app: dmaap version: 1.0.0 diff --git a/kubernetes/message-router/templates/message-router-dmaap.yaml b/kubernetes/message-router/templates/message-router-dmaap.yaml index 1d9777e760..cc13a382da 100644 --- a/kubernetes/message-router/templates/message-router-dmaap.yaml +++ b/kubernetes/message-router/templates/message-router-dmaap.yaml @@ -2,9 +2,10 @@ apiVersion: extensions/v1beta1 kind: Deployment metadata: - name: dmaap - namespace: "{{ .Values.nsPrefix }}-message-router" + name: message-router-dmaap + namespace: "{{ .Values.nsPrefix }}" spec: + replicas: {{ .Values.dmaapReplicas }} selector: matchLabels: app: dmaap @@ -12,7 +13,7 @@ spec: metadata: labels: app: dmaap - name: dmaap + name: message-router-dmaap spec: initContainers: - command: @@ -60,13 +61,13 @@ spec: path: /etc/localtime - name: appprops hostPath: - path: /dockerdata-nfs/{{ .Values.nsPrefix }}/message-router/dmaap/MsgRtrApi.properties + path: {{ .Values.dataRootDir }}/{{ .Values.nsPrefix }}/message-router/dmaap/MsgRtrApi.properties - name: cadi hostPath: - path: /dockerdata-nfs/{{ .Values.nsPrefix }}/message-router/dmaap/cadi.properties + path: {{ .Values.dataRootDir }}/{{ .Values.nsPrefix }}/message-router/dmaap/cadi.properties - name: mykey hostPath: - path: /dockerdata-nfs/{{ .Values.nsPrefix }}/message-router/dmaap/mykey + path: {{ .Values.dataRootDir }}/{{ .Values.nsPrefix }}/message-router/dmaap/mykey imagePullSecrets: - name: "{{ .Values.nsPrefix }}-docker-registry-key" {{ end }} diff --git a/kubernetes/message-router/templates/message-router-kafka.yaml b/kubernetes/message-router/templates/message-router-kafka.yaml index 509b15fc53..ca38da414f 100644 --- a/kubernetes/message-router/templates/message-router-kafka.yaml +++ b/kubernetes/message-router/templates/message-router-kafka.yaml @@ -2,9 +2,10 @@ apiVersion: extensions/v1beta1 kind: Deployment metadata: - name: global-kafka - namespace: "{{ .Values.nsPrefix }}-message-router" + name: message-router-global-kafka + namespace: "{{ .Values.nsPrefix }}" spec: + replicas: {{ .Values.kafkaReplicas }} selector: matchLabels: app: global-kafka @@ -12,7 +13,7 @@ spec: metadata: labels: app: global-kafka - name: global-kafka + name: message-router-global-kafka spec: initContainers: - command: @@ -42,7 +43,7 @@ spec: periodSeconds: 10 env: - name: KAFKA_ZOOKEEPER_CONNECT - value: "zookeeper.{{ .Values.nsPrefix }}-message-router:2181" + value: "zookeeper.{{ .Values.nsPrefix }}:2181" - name: KAFKA_ADVERTISED_HOST_NAME value: "global-kafka" - name: KAFKA_BROKER_ID diff --git a/kubernetes/message-router/templates/message-router-pv-pvc.yaml b/kubernetes/message-router/templates/message-router-pv-pvc.yaml index 53329ca29b..1518913f31 100644 --- a/kubernetes/message-router/templates/message-router-pv-pvc.yaml +++ b/kubernetes/message-router/templates/message-router-pv-pvc.yaml @@ -3,7 +3,7 @@ apiVersion: v1 kind: PersistentVolume metadata: name: "{{ .Values.nsPrefix }}-message-router-kafka" - namespace: "{{ .Values.nsPrefix }}-message-router" + namespace: "{{ .Values.nsPrefix }}" labels: name: "{{ .Values.nsPrefix }}-message-router-kafka" spec: @@ -13,13 +13,13 @@ spec: - ReadWriteMany persistentVolumeReclaimPolicy: Retain hostPath: - path: /dockerdata-nfs/{{ .Values.nsPrefix }}/message-router/dcae-startup-vm-message-router/docker_files/data-kafka/ + path: {{ .Values.dataRootDir }}/{{ .Values.nsPrefix }}/message-router/dcae-startup-vm-message-router/docker_files/data-kafka/ --- kind: PersistentVolumeClaim apiVersion: v1 metadata: name: message-router-kafka - namespace: "{{ .Values.nsPrefix }}-message-router" + namespace: "{{ .Values.nsPrefix }}" spec: accessModes: - ReadWriteMany @@ -36,7 +36,7 @@ apiVersion: v1 kind: PersistentVolume metadata: name: "{{ .Values.nsPrefix }}-message-router-zookeeper" - namespace: "{{ .Values.nsPrefix }}-message-router" + namespace: "{{ .Values.nsPrefix }}" labels: name: "{{ .Values.nsPrefix }}-message-router-zookeeper" spec: @@ -46,13 +46,13 @@ spec: - ReadWriteMany persistentVolumeReclaimPolicy: Retain hostPath: - path: /dockerdata-nfs/{{ .Values.nsPrefix }}/message-router/dcae-startup-vm-message-router/docker_files/data-zookeeper + path: {{ .Values.dataRootDir }}/{{ .Values.nsPrefix }}/message-router/dcae-startup-vm-message-router/docker_files/data-zookeeper --- kind: PersistentVolumeClaim apiVersion: v1 metadata: name: message-router-zookeeper - namespace: "{{ .Values.nsPrefix }}-message-router" + namespace: "{{ .Values.nsPrefix }}" spec: accessModes: - ReadWriteMany @@ -62,4 +62,4 @@ spec: selector: matchLabels: name: "{{ .Values.nsPrefix }}-message-router-zookeeper" -#{{ end }}
\ No newline at end of file +#{{ end }} diff --git a/kubernetes/message-router/templates/message-router-zookeeper.yaml b/kubernetes/message-router/templates/message-router-zookeeper.yaml index 47cdb51f2f..0dd8723ef0 100644 --- a/kubernetes/message-router/templates/message-router-zookeeper.yaml +++ b/kubernetes/message-router/templates/message-router-zookeeper.yaml @@ -2,9 +2,10 @@ apiVersion: extensions/v1beta1 kind: Deployment metadata: - name: zookeeper - namespace: "{{ .Values.nsPrefix }}-message-router" + name: message-router-zookeeper + namespace: "{{ .Values.nsPrefix }}" spec: + replicas: {{ .Values.zookeeperReplicas }} selector: matchLabels: app: zookeeper @@ -12,7 +13,7 @@ spec: metadata: labels: app: zookeeper - name: zookeeper + name: message-router-zookeeper spec: containers: - image: {{ .Values.image.zookeeper }} @@ -41,4 +42,4 @@ spec: claimName: message-router-zookeeper imagePullSecrets: - name: "{{ .Values.nsPrefix }}-docker-registry-key" -#{{ end }}
\ No newline at end of file +#{{ end }} diff --git a/kubernetes/message-router/values.yaml b/kubernetes/message-router/values.yaml index 92067294f8..bbc95ab718 100644 --- a/kubernetes/message-router/values.yaml +++ b/kubernetes/message-router/values.yaml @@ -1,8 +1,12 @@ nsPrefix: onap pullPolicy: Always nodePortPrefix: 302 +dmaapReplicas: 1 +kafkaReplicas: 1 +zookeeperReplicas: 1 +dataRootDir: /dockerdata-nfs image: - readiness: oomk8s/readiness-check:1.0.0 + readiness: oomk8s/readiness-check:1.1.0 dmaap: attos/dmaap:latest kafka: wurstmeister/kafka:latest zookeeper: wurstmeister/zookeeper:latest diff --git a/kubernetes/mock/templates/all-services.yaml b/kubernetes/mock/templates/all-services.yaml index a1b0f170de..a457d8ed9c 100644 --- a/kubernetes/mock/templates/all-services.yaml +++ b/kubernetes/mock/templates/all-services.yaml @@ -3,7 +3,7 @@ apiVersion: v1 kind: Service metadata: name: sniro-emulator - namespace: "{{ .Values.nsPrefix }}-mock" + namespace: "{{ .Values.nsPrefix }}" labels: app: sniro-emulator spec: diff --git a/kubernetes/mock/templates/sniroemulator-deployment.yaml b/kubernetes/mock/templates/sniroemulator-deployment.yaml index 5a1d483ae1..9397bfd807 100644 --- a/kubernetes/mock/templates/sniroemulator-deployment.yaml +++ b/kubernetes/mock/templates/sniroemulator-deployment.yaml @@ -3,7 +3,7 @@ apiVersion: extensions/v1beta1 kind: Deployment metadata: name: sniro-emulator - namespace: "{{ .Values.nsPrefix }}-mock" + namespace: "{{ .Values.nsPrefix }}" spec: selector: matchLabels: @@ -24,4 +24,4 @@ spec: args: ["--verbose"] imagePullSecrets: - name: "{{ .Values.nsPrefix }}-docker-registry-key" -#{{ end }}
\ No newline at end of file +#{{ end }} diff --git a/kubernetes/msb/templates/all-services.yaml b/kubernetes/msb/templates/all-services.yaml index 487347393d..0ae94fc1bc 100644 --- a/kubernetes/msb/templates/all-services.yaml +++ b/kubernetes/msb/templates/all-services.yaml @@ -3,7 +3,7 @@ apiVersion: v1 kind: Service metadata: name: msb-consul - namespace: "{{ .Values.nsPrefix }}-msb" + namespace: "{{ .Values.nsPrefix }}" labels: app: msb-consul spec: @@ -20,7 +20,7 @@ apiVersion: v1 kind: Service metadata: name: msb-discovery - namespace: "{{ .Values.nsPrefix }}-msb" + namespace: "{{ .Values.nsPrefix }}" labels: app: msb-discovery spec: @@ -38,13 +38,17 @@ apiVersion: v1 kind: Service metadata: name: msb-iag - namespace: "{{ .Values.nsPrefix }}-msb" + namespace: "{{ .Values.nsPrefix }}" labels: app: msb-iag spec: ports: - - port: {{ .Values.iagPort }} + - name: http + port: {{ .Values.iagPort }} nodePort: {{ .Values.iagNodePort }} + - name: https + port: {{ .Values.iagPort_https }} + nodePort: {{ .Values.iagNodePort_https }} selector: app: msb-iag type: NodePort @@ -55,14 +59,18 @@ apiVersion: v1 kind: Service metadata: name: msb-eag - namespace: "{{ .Values.nsPrefix }}-msb" + namespace: "{{ .Values.nsPrefix }}" labels: app: msb-eag spec: ports: - - port: {{ .Values.eagPort }} + - name: http + port: {{ .Values.eagPort }} nodePort: {{ .Values.eagNodePort }} + - name: https + port: {{ .Values.eagPort_https }} + nodePort: {{ .Values.eagNodePort_https }} selector: app: msb-eag type: NodePort -#{{ end }}
\ No newline at end of file +#{{ end }} diff --git a/kubernetes/kube2msb/templates/kube2msb-registrator-deployment.yaml b/kubernetes/msb/templates/kube2msb-registrator-deployment.yaml index 9df3aa8fa5..f95faf69d0 100644 --- a/kubernetes/kube2msb/templates/kube2msb-registrator-deployment.yaml +++ b/kubernetes/msb/templates/kube2msb-registrator-deployment.yaml @@ -3,7 +3,7 @@ apiVersion: extensions/v1beta1 kind: Deployment metadata: name: kube2msb-registrator - namespace: "{{ .Values.nsPrefix }}-kube2msb" + namespace: "{{ .Values.nsPrefix }}" spec: replicas: 1 selector: @@ -16,6 +16,21 @@ spec: name: kube2msb-registrator spec: hostname: kube2msb-registrator + 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: kube2msb-registrator-readiness containers: - args: image: {{ .Values.image.kube2msb }} @@ -26,8 +41,8 @@ spec: - name: AUTH_TOKEN value: {{ .Values.kubeMasterAuthToken }} - name: MSB_URL - value: {{ .Values.discoveryUrl }} + value: {{tpl $.Values.discoveryUrl .}} imagePullPolicy: {{ .Values.pullPolicy }} imagePullSecrets: - name: "{{ .Values.nsPrefix }}-docker-registry-key" -#{{ end }}
\ No newline at end of file +#{{ end }} diff --git a/kubernetes/msb/templates/msb-consul-deployment.yaml b/kubernetes/msb/templates/msb-consul-deployment.yaml index 4d462aa96f..7d7586c5f6 100644 --- a/kubernetes/msb/templates/msb-consul-deployment.yaml +++ b/kubernetes/msb/templates/msb-consul-deployment.yaml @@ -3,9 +3,9 @@ apiVersion: extensions/v1beta1 kind: Deployment metadata: name: msb-consul - namespace: "{{ .Values.nsPrefix }}-msb" + namespace: "{{ .Values.nsPrefix }}" spec: - replicas: 1 + replicas: {{ .Values.msbConsulReplicas }} selector: matchLabels: app: msb-consul @@ -29,4 +29,4 @@ spec: initialDelaySeconds: 5 periodSeconds: 10 imagePullPolicy: {{ .Values.pullPolicy }} -#{{ end }}
\ No newline at end of file +#{{ end }} diff --git a/kubernetes/msb/templates/msb-discovery-deployment.yaml b/kubernetes/msb/templates/msb-discovery-deployment.yaml index 5f8db61ac5..280e6c39d0 100644 --- a/kubernetes/msb/templates/msb-discovery-deployment.yaml +++ b/kubernetes/msb/templates/msb-discovery-deployment.yaml @@ -3,7 +3,7 @@ apiVersion: extensions/v1beta1 kind: Deployment metadata: name: msb-discovery - namespace: "{{ .Values.nsPrefix }}-msb" + namespace: "{{ .Values.nsPrefix }}" spec: replicas: {{ .Values.discoveryReplicas }} selector: @@ -16,13 +16,28 @@ spec: 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 }} name: "msb-discovery" env: - name: CONSUL_IP - value: msb-consul.{{ .Values.nsPrefix }}-msb + value: msb-consul.{{ .Values.nsPrefix }} ports: - containerPort: {{ .Values.discoveryPort }} name: msb-discovery @@ -34,4 +49,4 @@ spec: imagePullPolicy: {{ .Values.pullPolicy }} imagePullSecrets: - name: "{{ .Values.nsPrefix }}-docker-registry-key" -#{{ end }}
\ No newline at end of file +#{{ end }} diff --git a/kubernetes/msb/templates/msb-eag-deployment.yaml b/kubernetes/msb/templates/msb-eag-deployment.yaml index 714f19b1a5..a24b3b012e 100644 --- a/kubernetes/msb/templates/msb-eag-deployment.yaml +++ b/kubernetes/msb/templates/msb-eag-deployment.yaml @@ -3,7 +3,7 @@ apiVersion: extensions/v1beta1 kind: Deployment metadata: name: msb-eag - namespace: "{{ .Values.nsPrefix }}-msb" + namespace: "{{ .Values.nsPrefix }}" spec: replicas: {{ .Values.eagReplicas }} selector: @@ -16,15 +16,30 @@ spec: 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 }} name: "msb-eag" env: - name: CONSUL_IP - value: msb-consul.{{ .Values.nsPrefix }}-msb + value: msb-consul.{{ .Values.nsPrefix }} - name: SDCLIENT_IP - value: msb-discovery.{{ .Values.nsPrefix }}-msb + value: msb-discovery.{{ .Values.nsPrefix }} - name: ROUTE_LABELS value: "visualRange:0" ports: @@ -38,4 +53,4 @@ spec: imagePullPolicy: {{ .Values.pullPolicy}} imagePullSecrets: - name: "{{ .Values.nsPrefix }}-docker-registry-key" -#{{ end }}
\ No newline at end of file +#{{ end }} diff --git a/kubernetes/msb/templates/msb-iag-deployment.yaml b/kubernetes/msb/templates/msb-iag-deployment.yaml index ca4d5a033f..8a56a5f420 100644 --- a/kubernetes/msb/templates/msb-iag-deployment.yaml +++ b/kubernetes/msb/templates/msb-iag-deployment.yaml @@ -3,7 +3,7 @@ apiVersion: extensions/v1beta1 kind: Deployment metadata: name: msb-iag - namespace: "{{ .Values.nsPrefix }}-msb" + namespace: "{{ .Values.nsPrefix }}" spec: replicas: {{ .Values.iagReplicas }} selector: @@ -16,15 +16,30 @@ spec: 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 }} name: "msb-iag" env: - name: CONSUL_IP - value: msb-consul.{{ .Values.nsPrefix }}-msb + value: msb-consul.{{ .Values.nsPrefix }} - name: SDCLIENT_IP - value: msb-discovery.{{ .Values.nsPrefix }}-msb + value: msb-discovery.{{ .Values.nsPrefix }} - name: ROUTE_LABELS value: "visualRange:1" ports: @@ -38,4 +53,4 @@ spec: imagePullPolicy: "{{ .Values.pullPolicy}}" imagePullSecrets: - name: "{{ .Values.nsPrefix }}-docker-registry-key" -#{{ end }}
\ No newline at end of file +#{{ end }} diff --git a/kubernetes/msb/values.yaml b/kubernetes/msb/values.yaml index 7c1b16b8dc..10e3be4230 100644 --- a/kubernetes/msb/values.yaml +++ b/kubernetes/msb/values.yaml @@ -1,21 +1,31 @@ nsPrefix: onap pullPolicy: IfNotPresent image: + readiness: oomk8s/readiness-check:1.1.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 + discovery: nexus3.onap.org:10001/onap/msb/msb_discovery:1.1.0-SNAPSHOT-latest + apigateway: nexus3.onap.org:10001/onap/msb/msb_apigateway:1.1.0-SNAPSHOT-latest + kube2msb: nexus3.onap.org:10001/onap/oom/kube2msb consulPort: 8500 consulNodePort: 30500 +msbConsulReplicas: 1 discoveryPort: 10081 discoveryNodePort: 30081 discoveryReplicas: 1 iagPort: 80 +iagPort_https: 443 iagNodePort: 30080 +iagNodePort_https: 30443 iagReplicas: 1 eagPort: 80 +eagPort_https: 443 eagNodePort: 30082 +eagNodePort_https: 30446 eagReplicas: 1 + +kubeMasterUrl: https://kubernetes.default.svc.cluster.local:443 +discoveryUrl: http://msb-discovery.{{ .Values.nsPrefix }}:10081 diff --git a/kubernetes/config/docker/init/src/config/mso/docker-files/scripts/start-jboss-server.sh b/kubernetes/mso/resources/config/docker-files/scripts/start-jboss-server.sh index 3280253743..3280253743 100755 --- a/kubernetes/config/docker/init/src/config/mso/docker-files/scripts/start-jboss-server.sh +++ b/kubernetes/mso/resources/config/docker-files/scripts/start-jboss-server.sh diff --git a/kubernetes/mso/resources/config/log/filebeat/filebeat.yml b/kubernetes/mso/resources/config/log/filebeat/filebeat.yml new file mode 100644 index 0000000000..89c6932577 --- /dev/null +++ b/kubernetes/mso/resources/config/log/filebeat/filebeat.yml @@ -0,0 +1,41 @@ +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}}: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 diff --git a/kubernetes/config/docker/init/src/config/log/mso/logback.apihandler-infra.xml b/kubernetes/mso/resources/config/log/logback.apihandler-infra.xml index 3e0ea61ea6..3e0ea61ea6 100644 --- a/kubernetes/config/docker/init/src/config/log/mso/logback.apihandler-infra.xml +++ b/kubernetes/mso/resources/config/log/logback.apihandler-infra.xml diff --git a/kubernetes/config/docker/init/src/config/log/mso/logback.appc.xml b/kubernetes/mso/resources/config/log/logback.appc.xml index 588f6f39d2..588f6f39d2 100644 --- a/kubernetes/config/docker/init/src/config/log/mso/logback.appc.xml +++ b/kubernetes/mso/resources/config/log/logback.appc.xml diff --git a/kubernetes/config/docker/init/src/config/log/mso/logback.asdc.xml b/kubernetes/mso/resources/config/log/logback.asdc.xml index b4879e017f..b4879e017f 100644 --- a/kubernetes/config/docker/init/src/config/log/mso/logback.asdc.xml +++ b/kubernetes/mso/resources/config/log/logback.asdc.xml diff --git a/kubernetes/config/docker/init/src/config/log/mso/logback.bpmn.xml b/kubernetes/mso/resources/config/log/logback.bpmn.xml index 3bc3ca157b..3bc3ca157b 100644 --- a/kubernetes/config/docker/init/src/config/log/mso/logback.bpmn.xml +++ b/kubernetes/mso/resources/config/log/logback.bpmn.xml diff --git a/kubernetes/config/docker/init/src/config/log/mso/logback.msorequestsdbadapter.xml b/kubernetes/mso/resources/config/log/logback.msorequestsdbadapter.xml index 64a5022aa6..64a5022aa6 100644 --- a/kubernetes/config/docker/init/src/config/log/mso/logback.msorequestsdbadapter.xml +++ b/kubernetes/mso/resources/config/log/logback.msorequestsdbadapter.xml diff --git a/kubernetes/config/docker/init/src/config/log/mso/logback.network.xml b/kubernetes/mso/resources/config/log/logback.network.xml index 542a8f6f00..542a8f6f00 100644 --- a/kubernetes/config/docker/init/src/config/log/mso/logback.network.xml +++ b/kubernetes/mso/resources/config/log/logback.network.xml diff --git a/kubernetes/config/docker/init/src/config/log/mso/logback.sdnc.xml b/kubernetes/mso/resources/config/log/logback.sdnc.xml index 1323a8961d..1323a8961d 100644 --- a/kubernetes/config/docker/init/src/config/log/mso/logback.sdnc.xml +++ b/kubernetes/mso/resources/config/log/logback.sdnc.xml diff --git a/kubernetes/config/docker/init/src/config/log/mso/logback.tenant.xml b/kubernetes/mso/resources/config/log/logback.tenant.xml index a25c182e97..a25c182e97 100644 --- a/kubernetes/config/docker/init/src/config/log/mso/logback.tenant.xml +++ b/kubernetes/mso/resources/config/log/logback.tenant.xml diff --git a/kubernetes/config/docker/init/src/config/log/mso/logback.vfc.xml b/kubernetes/mso/resources/config/log/logback.vfc.xml index d0b66be5bb..d0b66be5bb 100644 --- a/kubernetes/config/docker/init/src/config/log/mso/logback.vfc.xml +++ b/kubernetes/mso/resources/config/log/logback.vfc.xml diff --git a/kubernetes/config/docker/init/src/config/log/mso/logback.vnf.xml b/kubernetes/mso/resources/config/log/logback.vnf.xml index 32f6e69f81..32f6e69f81 100644 --- a/kubernetes/config/docker/init/src/config/log/mso/logback.vnf.xml +++ b/kubernetes/mso/resources/config/log/logback.vnf.xml diff --git a/kubernetes/config/docker/init/src/config/log/mso/logback.workflow-message-adapter.xml b/kubernetes/mso/resources/config/log/logback.workflow-message-adapter.xml index a7130a103f..a7130a103f 100644 --- a/kubernetes/config/docker/init/src/config/log/mso/logback.workflow-message-adapter.xml +++ b/kubernetes/mso/resources/config/log/logback.workflow-message-adapter.xml diff --git a/kubernetes/config/docker/init/src/config/mso/mariadb/conf.d/mariadb1.cnf b/kubernetes/mso/resources/config/mariadb/conf.d/mariadb1.cnf index 39ed022489..39ed022489 100644 --- a/kubernetes/config/docker/init/src/config/mso/mariadb/conf.d/mariadb1.cnf +++ b/kubernetes/mso/resources/config/mariadb/conf.d/mariadb1.cnf diff --git a/kubernetes/config/docker/init/src/config/mso/mariadb/docker-entrypoint-initdb.d/01-load-default-sql-files.sh b/kubernetes/mso/resources/config/mariadb/docker-entrypoint-initdb.d/01-load-default-sql-files.sh index 326f27356c..326f27356c 100644 --- a/kubernetes/config/docker/init/src/config/mso/mariadb/docker-entrypoint-initdb.d/01-load-default-sql-files.sh +++ b/kubernetes/mso/resources/config/mariadb/docker-entrypoint-initdb.d/01-load-default-sql-files.sh diff --git a/kubernetes/config/docker/init/src/config/mso/mariadb/docker-entrypoint-initdb.d/02-load-additional-changes.sh b/kubernetes/mso/resources/config/mariadb/docker-entrypoint-initdb.d/02-load-additional-changes.sh index a163801083..a163801083 100644 --- a/kubernetes/config/docker/init/src/config/mso/mariadb/docker-entrypoint-initdb.d/02-load-additional-changes.sh +++ b/kubernetes/mso/resources/config/mariadb/docker-entrypoint-initdb.d/02-load-additional-changes.sh diff --git a/kubernetes/config/docker/init/src/config/mso/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/automated-tests/create_mso_db-tests.sql b/kubernetes/mso/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/automated-tests/create_mso_db-tests.sql index 146ad01605..146ad01605 100644 --- a/kubernetes/config/docker/init/src/config/mso/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/automated-tests/create_mso_db-tests.sql +++ b/kubernetes/mso/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/automated-tests/create_mso_db-tests.sql diff --git a/kubernetes/config/docker/init/src/config/mso/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/default/create_mso_db-default.sql b/kubernetes/mso/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/default/create_mso_db-default.sql index 7d2eed16bd..7d2eed16bd 100644 --- a/kubernetes/config/docker/init/src/config/mso/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/default/create_mso_db-default.sql +++ b/kubernetes/mso/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/default/create_mso_db-default.sql diff --git a/kubernetes/config/docker/init/src/config/mso/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/demo-dns/create_mso_db-demo-dns.sql b/kubernetes/mso/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/demo-dns/create_mso_db-demo-dns.sql index b5063defda..b5063defda 100644 --- a/kubernetes/config/docker/init/src/config/mso/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/demo-dns/create_mso_db-demo-dns.sql +++ b/kubernetes/mso/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/demo-dns/create_mso_db-demo-dns.sql diff --git a/kubernetes/config/docker/init/src/config/mso/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/demo-vfw/create_mso_db-demo-vfw.sql b/kubernetes/mso/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/demo-vfw/create_mso_db-demo-vfw.sql index 15001050b2..15001050b2 100644 --- a/kubernetes/config/docker/init/src/config/mso/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/demo-vfw/create_mso_db-demo-vfw.sql +++ b/kubernetes/mso/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/demo-vfw/create_mso_db-demo-vfw.sql diff --git a/kubernetes/config/docker/init/src/config/mso/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/camunda/mariadb_engine_7.7.3-ee.sql b/kubernetes/mso/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/camunda/mariadb_engine_7.7.3-ee.sql index b9b8dd62c9..b9b8dd62c9 100644 --- a/kubernetes/config/docker/init/src/config/mso/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/camunda/mariadb_engine_7.7.3-ee.sql +++ b/kubernetes/mso/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/camunda/mariadb_engine_7.7.3-ee.sql diff --git a/kubernetes/config/docker/init/src/config/mso/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/camunda/mysql_create_camunda_admin.sql b/kubernetes/mso/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/camunda/mysql_create_camunda_admin.sql index 3658c6c235..3658c6c235 100644 --- a/kubernetes/config/docker/init/src/config/mso/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/camunda/mysql_create_camunda_admin.sql +++ b/kubernetes/mso/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/camunda/mysql_create_camunda_admin.sql diff --git a/kubernetes/config/docker/init/src/config/mso/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/main-schemas/MySQL-Catalog-schema.sql b/kubernetes/mso/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/main-schemas/MySQL-Catalog-schema.sql index ca002fbe6b..ca002fbe6b 100644 --- a/kubernetes/config/docker/init/src/config/mso/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/main-schemas/MySQL-Catalog-schema.sql +++ b/kubernetes/mso/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/main-schemas/MySQL-Catalog-schema.sql diff --git a/kubernetes/config/docker/init/src/config/mso/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/main-schemas/MySQL-Requests-schema.sql b/kubernetes/mso/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/main-schemas/MySQL-Requests-schema.sql index f64548e23d..f64548e23d 100644 --- a/kubernetes/config/docker/init/src/config/mso/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/main-schemas/MySQL-Requests-schema.sql +++ b/kubernetes/mso/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/main-schemas/MySQL-Requests-schema.sql diff --git a/kubernetes/config/docker/init/src/config/mso/mso/aai.crt b/kubernetes/mso/resources/config/mso/aai.crt index d51c05606e..d51c05606e 100755 --- a/kubernetes/config/docker/init/src/config/mso/mso/aai.crt +++ b/kubernetes/mso/resources/config/mso/aai.crt diff --git a/kubernetes/config/docker/init/src/config/mso/mso/encryption.key b/kubernetes/mso/resources/config/mso/encryption.key index eb52241e7f..eb52241e7f 100644 --- a/kubernetes/config/docker/init/src/config/mso/mso/encryption.key +++ b/kubernetes/mso/resources/config/mso/encryption.key diff --git a/kubernetes/mso/resources/config/mso/jboss/standalone-full-ha-mso.xml b/kubernetes/mso/resources/config/mso/jboss/standalone-full-ha-mso.xml new file mode 100644 index 0000000000..86edeb386a --- /dev/null +++ b/kubernetes/mso/resources/config/mso/jboss/standalone-full-ha-mso.xml @@ -0,0 +1,609 @@ +<?xml version='1.0' encoding='UTF-8'?> + +<server xmlns="urn:jboss:domain:4.2"> + + <extensions> + <extension module="org.jboss.as.clustering.infinispan"/> + <extension module="org.jboss.as.clustering.jgroups"/> + <extension module="org.jboss.as.connector"/> + <extension module="org.jboss.as.deployment-scanner"/> + <extension module="org.jboss.as.ee"/> + <extension module="org.jboss.as.ejb3"/> + <extension module="org.jboss.as.jaxrs"/> + <extension module="org.jboss.as.jdr"/> + <extension module="org.jboss.as.jmx"/> + <extension module="org.jboss.as.jpa"/> + <extension module="org.jboss.as.jsf"/> + <extension module="org.jboss.as.jsr77"/> + <extension module="org.jboss.as.logging"/> + <extension module="org.jboss.as.mail"/> + <extension module="org.jboss.as.modcluster"/> + <extension module="org.jboss.as.naming"/> + <extension module="org.jboss.as.pojo"/> + <extension module="org.jboss.as.remoting"/> + <extension module="org.jboss.as.sar"/> + <extension module="org.jboss.as.security"/> + <extension module="org.jboss.as.transactions"/> + <extension module="org.jboss.as.webservices"/> + <extension module="org.jboss.as.weld"/> + <extension module="org.wildfly.extension.batch.jberet"/> + <extension module="org.wildfly.extension.bean-validation"/> + <extension module="org.wildfly.extension.clustering.singleton"/> + <extension module="org.wildfly.extension.io"/> + <extension module="org.wildfly.extension.messaging-activemq"/> + <extension module="org.wildfly.extension.request-controller"/> + <extension module="org.wildfly.extension.security.manager"/> + <extension module="org.wildfly.extension.undertow"/> + <extension module="org.wildfly.iiop-openjdk"/> + </extensions> + + + <management> + <security-realms> + <security-realm name="ManagementRealm"> + <authentication> + <local default-user="$local" skip-group-loading="true"/> + <properties path="mgmt-users.properties" relative-to="jboss.server.config.dir"/> + </authentication> + <authorization map-groups-to-roles="false"> + <properties path="mgmt-groups.properties" relative-to="jboss.server.config.dir"/> + </authorization> + </security-realm> + <security-realm name="ApplicationRealm"> + <server-identities> + <ssl> + <keystore path="application.keystore" relative-to="jboss.server.config.dir" keystore-password="password" alias="server" key-password="password" generate-self-signed-certificate-host="localhost"/> + </ssl> + </server-identities> + <authentication> + <local default-user="$local" allowed-users="*" skip-group-loading="true"/> + <properties path="application-users.properties" relative-to="jboss.server.config.dir"/> + </authentication> + <authorization> + <properties path="application-roles.properties" relative-to="jboss.server.config.dir"/> + </authorization> + </security-realm> + </security-realms> + <audit-log> + <formatters> + <json-formatter name="json-formatter"/> + </formatters> + <handlers> + <file-handler name="file" formatter="json-formatter" path="audit-log.log" relative-to="jboss.server.data.dir"/> + </handlers> + <logger log-boot="true" log-read-only="false" enabled="false"> + <handlers> + <handler name="file"/> + </handlers> + </logger> + </audit-log> + <management-interfaces> + <http-interface security-realm="ManagementRealm" http-upgrade-enabled="true"> + <socket-binding http="management-http"/> + </http-interface> + </management-interfaces> + <access-control provider="simple"> + <role-mapping> + <role name="SuperUser"> + <include> + <user name="$local"/> + </include> + </role> + </role-mapping> + </access-control> + </management> + + <profile> + <subsystem xmlns="urn:jboss:domain:logging:3.0"> + <console-handler name="CONSOLE"> + <level name="INFO"/> + <formatter> + <named-formatter name="COLOR-PATTERN"/> + </formatter> + </console-handler> + <periodic-rotating-file-handler name="FILE" autoflush="true"> + <formatter> + <named-formatter name="PATTERN"/> + </formatter> + <file relative-to="jboss.server.log.dir" path="server.log"/> + <suffix value=".yyyy-MM-dd"/> + <append value="true"/> + </periodic-rotating-file-handler> + <logger category="com.arjuna"> + <level name="WARN"/> + </logger> + <logger category="org.jboss.as.config"> + <level name="DEBUG"/> + </logger> + <logger category="sun.rmi"> + <level name="WARN"/> + </logger> + <root-logger> + <level name="INFO"/> + <handlers> + <handler name="CONSOLE"/> + <handler name="FILE"/> + </handlers> + </root-logger> + <formatter name="PATTERN"> + <pattern-formatter pattern="%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c] (%t) %s%e%n"/> + </formatter> + <formatter name="COLOR-PATTERN"> + <pattern-formatter pattern="%K{level}%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%e%n"/> + </formatter> + </subsystem> + <subsystem xmlns="urn:jboss:domain:batch-jberet:1.0"> + <default-job-repository name="in-memory"/> + <default-thread-pool name="batch"/> + <job-repository name="in-memory"> + <in-memory/> + </job-repository> + <thread-pool name="batch"> + <max-threads count="10"/> + <keepalive-time time="30" unit="seconds"/> + </thread-pool> + </subsystem> + <subsystem xmlns="urn:jboss:domain:bean-validation:1.0"/> + <subsystem xmlns="urn:jboss:domain:datasources:4.0"> + <datasources> + <datasource jndi-name="java:jboss/datasources/mso-requests" pool-name="mso-requests" enabled="true" use-ccm="true"> + <connection-url>jdbc:mariadb://mso-mariadb.{{.Values.nsPrefix}}:3306/mso_requests?autoReconnect=true&connectTimeout=60000&socketTimeout=60000</connection-url> + <driver>mariadb</driver> + <transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation> + <pool> + <min-pool-size>10</min-pool-size> + <max-pool-size>100</max-pool-size> + <prefill>true</prefill> + <use-strict-min>false</use-strict-min> + <flush-strategy>FailingConnectionOnly</flush-strategy> + </pool> + <security> + <user-name>mso</user-name> + <password>mso123</password> + </security> + <validation> + <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker"/> + <validate-on-match>false</validate-on-match> + <background-validation>true</background-validation> + <background-validation-millis>20000</background-validation-millis> + <use-fast-fail>true</use-fast-fail> + <exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLExceptionSorter"/> + </validation> + <timeout> + <idle-timeout-minutes>15</idle-timeout-minutes> + <query-timeout>30</query-timeout> + <allocation-retry>1</allocation-retry> + <allocation-retry-wait-millis>3000</allocation-retry-wait-millis> + </timeout> + </datasource> + <datasource jndi-name="java:jboss/datasources/mso-catalog" pool-name="mso-catalog" enabled="true" use-ccm="true"> + <connection-url>jdbc:mariadb://mso-mariadb.{{.Values.nsPrefix}}:3306/mso_catalog?autoReconnect=true&connectTimeout=60000&socketTimeout=60000</connection-url> + <driver>mariadb</driver> + <transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation> + <pool> + <min-pool-size>10</min-pool-size> + <max-pool-size>100</max-pool-size> + <prefill>true</prefill> + <use-strict-min>false</use-strict-min> + <flush-strategy>FailingConnectionOnly</flush-strategy> + </pool> + <security> + <user-name>catalog</user-name> + <password>catalog123</password> + </security> + <validation> + <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker"/> + <validate-on-match>false</validate-on-match> + <background-validation>true</background-validation> + <background-validation-millis>20000</background-validation-millis> + <use-fast-fail>true</use-fast-fail> + <exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLExceptionSorter"/> + </validation> + <timeout> + <idle-timeout-minutes>15</idle-timeout-minutes> + <query-timeout>30</query-timeout> + <allocation-retry>1</allocation-retry> + <allocation-retry-wait-millis>3000</allocation-retry-wait-millis> + </timeout> + </datasource> + <datasource jta="true" jndi-name="java:jboss/datasources/ProcessEngine" pool-name="ProcessEngine" enabled="true" use-java-context="true" use-ccm="true"> + <connection-url>jdbc:mariadb://mso-mariadb.{{.Values.nsPrefix}}:3306/camundabpmn?autoReconnect=true&connectTimeout=60000&socketTimeout=60000</connection-url> + <driver>mariadb</driver> + <new-connection-sql>set autocommit=1</new-connection-sql> + <transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation> + <pool> + <min-pool-size>10</min-pool-size> + <max-pool-size>100</max-pool-size> + <prefill>true</prefill> + <use-strict-min>false</use-strict-min> + <flush-strategy>FailingConnectionOnly</flush-strategy> + </pool> + <security> + <user-name>camunda</user-name> + <password>camunda123</password> + </security> + <validation> + <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker"/> + <exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLExceptionSorter"/> + </validation> + <statement> + <prepared-statement-cache-size>32</prepared-statement-cache-size> + <share-prepared-statements>true</share-prepared-statements> + </statement> + </datasource> + <datasource jndi-name="java:jboss/datasources/ExampleDS" pool-name="ExampleDS" enabled="true" use-java-context="true"> + <connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE</connection-url> + <driver>h2</driver> + <security> + <user-name>sa</user-name> + <password>sa</password> + </security> + </datasource> + <drivers> + <driver name="h2" module="com.h2database.h2"> + <xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class> + </driver> + <driver name="mariadb" module="mariadb"> + <xa-datasource-class>org.mariadb.jdbc.MySQLDataSource</xa-datasource-class> + </driver> + </drivers> + </datasources> + </subsystem> + <subsystem xmlns="urn:jboss:domain:deployment-scanner:2.0"> + <deployment-scanner path="deployments" relative-to="jboss.server.base.dir" scan-interval="5000" runtime-failure-causes-rollback="${jboss.deployment.scanner.rollback.on.failure:false}"/> + </subsystem> + <subsystem xmlns="urn:jboss:domain:ee:4.0"> + <spec-descriptor-property-replacement>false</spec-descriptor-property-replacement> + <concurrent> + <context-services> + <context-service name="default" jndi-name="java:jboss/ee/concurrency/context/default" use-transaction-setup-provider="true"/> + </context-services> + <managed-thread-factories> + <managed-thread-factory name="default" jndi-name="java:jboss/ee/concurrency/factory/default" context-service="default"/> + </managed-thread-factories> + <managed-executor-services> + <managed-executor-service name="default" jndi-name="java:jboss/ee/concurrency/executor/default" context-service="default" hung-task-threshold="60000" keepalive-time="5000"/> + </managed-executor-services> + <managed-scheduled-executor-services> + <managed-scheduled-executor-service name="default" jndi-name="java:jboss/ee/concurrency/scheduler/default" context-service="default" hung-task-threshold="60000" keepalive-time="3000"/> + </managed-scheduled-executor-services> + </concurrent> + <default-bindings context-service="java:jboss/ee/concurrency/context/default" datasource="java:jboss/datasources/ExampleDS" jms-connection-factory="java:jboss/DefaultJMSConnectionFactory" managed-executor-service="java:jboss/ee/concurrency/executor/default" managed-scheduled-executor-service="java:jboss/ee/concurrency/scheduler/default" managed-thread-factory="java:jboss/ee/concurrency/factory/default"/> + </subsystem> + <subsystem xmlns="urn:jboss:domain:ejb3:4.0"> + <session-bean> + <stateless> + <bean-instance-pool-ref pool-name="slsb-strict-max-pool"/> + </stateless> + <stateful default-access-timeout="5000" cache-ref="distributable" passivation-disabled-cache-ref="simple"/> + <singleton default-access-timeout="5000"/> + </session-bean> + <mdb> + <resource-adapter-ref resource-adapter-name="${ejb.resource-adapter-name:activemq-ra.rar}"/> + <bean-instance-pool-ref pool-name="mdb-strict-max-pool"/> + </mdb> + <pools> + <bean-instance-pools> + <strict-max-pool name="slsb-strict-max-pool" derive-size="from-worker-pools" instance-acquisition-timeout="5" instance-acquisition-timeout-unit="MINUTES"/> + <strict-max-pool name="mdb-strict-max-pool" derive-size="from-cpu-count" instance-acquisition-timeout="5" instance-acquisition-timeout-unit="MINUTES"/> + </bean-instance-pools> + </pools> + <caches> + <cache name="simple"/> + <cache name="distributable" passivation-store-ref="infinispan" aliases="passivating clustered"/> + </caches> + <passivation-stores> + <passivation-store name="infinispan" cache-container="ejb" max-size="10000"/> + </passivation-stores> + <async thread-pool-name="default"/> + <timer-service thread-pool-name="default" default-data-store="default-file-store"> + <data-stores> + <file-data-store name="default-file-store" path="timer-service-data" relative-to="jboss.server.data.dir"/> + </data-stores> + </timer-service> + <remote connector-ref="http-remoting-connector" thread-pool-name="default"/> + <thread-pools> + <thread-pool name="default"> + <max-threads count="10"/> + <keepalive-time time="100" unit="milliseconds"/> + </thread-pool> + </thread-pools> + <iiop enable-by-default="false" use-qualified-name="false"/> + <default-security-domain value="other"/> + <default-missing-method-permissions-deny-access value="true"/> + <log-system-exceptions value="true"/> + </subsystem> + <subsystem xmlns="urn:jboss:domain:io:1.1"> + <worker name="default"/> + <buffer-pool name="default"/> + </subsystem> + <subsystem xmlns="urn:jboss:domain:infinispan:4.0"> + <cache-container name="server" aliases="singleton cluster" default-cache="default" module="org.wildfly.clustering.server"> + <transport lock-timeout="60000"/> + <replicated-cache name="default" mode="SYNC"> + <transaction mode="BATCH"/> + </replicated-cache> + </cache-container> + <cache-container name="web" default-cache="dist" module="org.wildfly.clustering.web.infinispan"> + <transport lock-timeout="60000"/> + <distributed-cache name="dist" mode="ASYNC" l1-lifespan="0" owners="2"> + <locking isolation="REPEATABLE_READ"/> + <transaction mode="BATCH"/> + <file-store/> + </distributed-cache> + <distributed-cache name="concurrent" mode="SYNC" l1-lifespan="0" owners="2"> + <file-store/> + </distributed-cache> + </cache-container> + <cache-container name="ejb" aliases="sfsb" default-cache="dist" module="org.wildfly.clustering.ejb.infinispan"> + <transport lock-timeout="60000"/> + <distributed-cache name="dist" mode="ASYNC" l1-lifespan="0" owners="2"> + <locking isolation="REPEATABLE_READ"/> + <transaction mode="BATCH"/> + <file-store/> + </distributed-cache> + </cache-container> + <cache-container name="hibernate" default-cache="local-query" module="org.hibernate.infinispan"> + <transport lock-timeout="60000"/> + <local-cache name="local-query"> + <eviction strategy="LRU" max-entries="10000"/> + <expiration max-idle="100000"/> + </local-cache> + <invalidation-cache name="entity" mode="SYNC"> + <transaction mode="NON_XA"/> + <eviction strategy="LRU" max-entries="10000"/> + <expiration max-idle="100000"/> + </invalidation-cache> + <replicated-cache name="timestamps" mode="ASYNC"/> + </cache-container> + </subsystem> + <subsystem xmlns="urn:jboss:domain:iiop-openjdk:1.0"> + <orb socket-binding="iiop" ssl-socket-binding="iiop-ssl"/> + <initializers security="identity" transactions="spec"/> + </subsystem> + <subsystem xmlns="urn:jboss:domain:jaxrs:1.0"/> + <subsystem xmlns="urn:jboss:domain:jca:4.0"> + <archive-validation enabled="true" fail-on-error="true" fail-on-warn="false"/> + <bean-validation enabled="true"/> + <default-workmanager> + <short-running-threads> + <core-threads count="50"/> + <queue-length count="50"/> + <max-threads count="50"/> + <keepalive-time time="10" unit="seconds"/> + </short-running-threads> + <long-running-threads> + <core-threads count="50"/> + <queue-length count="50"/> + <max-threads count="50"/> + <keepalive-time time="10" unit="seconds"/> + </long-running-threads> + </default-workmanager> + <cached-connection-manager/> + </subsystem> + <subsystem xmlns="urn:jboss:domain:jdr:1.0"/> + <subsystem xmlns="urn:jboss:domain:jgroups:4.0"> + <channels default="ee"> + <channel name="ee" stack="udp"/> + </channels> + <stacks> + <stack name="udp"> + <transport type="UDP" socket-binding="jgroups-udp"/> + <protocol type="PING"/> + <protocol type="MERGE3"/> + <protocol type="FD_SOCK" socket-binding="jgroups-udp-fd"/> + <protocol type="FD_ALL"/> + <protocol type="VERIFY_SUSPECT"/> + <protocol type="pbcast.NAKACK2"/> + <protocol type="UNICAST3"/> + <protocol type="pbcast.STABLE"/> + <protocol type="pbcast.GMS"/> + <protocol type="UFC"/> + <protocol type="MFC"/> + <protocol type="FRAG2"/> + </stack> + <stack name="tcp"> + <transport type="TCP" socket-binding="jgroups-tcp"/> + <protocol type="MPING" socket-binding="jgroups-mping"/> + <protocol type="MERGE3"/> + <protocol type="FD_SOCK" socket-binding="jgroups-tcp-fd"/> + <protocol type="FD"/> + <protocol type="VERIFY_SUSPECT"/> + <protocol type="pbcast.NAKACK2"/> + <protocol type="UNICAST3"/> + <protocol type="pbcast.STABLE"/> + <protocol type="pbcast.GMS"/> + <protocol type="MFC"/> + <protocol type="FRAG2"/> + </stack> + </stacks> + </subsystem> + <subsystem xmlns="urn:jboss:domain:jmx:1.3"> + <expose-resolved-model/> + <expose-expression-model/> + <remoting-connector/> + </subsystem> + <subsystem xmlns="urn:jboss:domain:jpa:1.1"> + <jpa default-datasource="" default-extended-persistence-inheritance="DEEP"/> + </subsystem> + <subsystem xmlns="urn:jboss:domain:jsf:1.0"/> + <subsystem xmlns="urn:jboss:domain:jsr77:1.0"/> + <subsystem xmlns="urn:jboss:domain:mail:2.0"> + <mail-session name="default" jndi-name="java:jboss/mail/Default"> + <smtp-server outbound-socket-binding-ref="mail-smtp"/> + </mail-session> + </subsystem> + <subsystem xmlns="urn:jboss:domain:messaging-activemq:1.0"> + <server name="default"> + <cluster password="${jboss.messaging.cluster.password:CHANGE ME!!}"/> + <security-setting name="#"> + <role name="guest" send="true" consume="true" create-non-durable-queue="true" delete-non-durable-queue="true"/> + </security-setting> + <address-setting name="#" dead-letter-address="jms.queue.DLQ" expiry-address="jms.queue.ExpiryQueue" max-size-bytes="10485760" page-size-bytes="2097152" message-counter-history-day-limit="10" redistribution-delay="1000"/> + <http-connector name="http-connector" socket-binding="http" endpoint="http-acceptor"/> + <http-connector name="http-connector-throughput" socket-binding="http" endpoint="http-acceptor-throughput"> + <param name="batch-delay" value="50"/> + </http-connector> + <in-vm-connector name="in-vm" server-id="0"/> + <http-acceptor name="http-acceptor" http-listener="default"/> + <http-acceptor name="http-acceptor-throughput" http-listener="default"> + <param name="batch-delay" value="50"/> + <param name="direct-deliver" value="false"/> + </http-acceptor> + <in-vm-acceptor name="in-vm" server-id="0"/> + <broadcast-group name="bg-group1" jgroups-channel="activemq-cluster" connectors="http-connector"/> + <discovery-group name="dg-group1" jgroups-channel="activemq-cluster"/> + <cluster-connection name="my-cluster" address="jms" connector-name="http-connector" discovery-group="dg-group1"/> + <jms-queue name="ExpiryQueue" entries="java:/jms/queue/ExpiryQueue"/> + <jms-queue name="DLQ" entries="java:/jms/queue/DLQ"/> + <connection-factory name="InVmConnectionFactory" entries="java:/ConnectionFactory" connectors="in-vm"/> + <connection-factory name="RemoteConnectionFactory" entries="java:jboss/exported/jms/RemoteConnectionFactory" connectors="http-connector" ha="true" block-on-acknowledge="true" reconnect-attempts="-1"/> + <pooled-connection-factory name="activemq-ra" entries="java:/JmsXA java:jboss/DefaultJMSConnectionFactory" connectors="in-vm" transaction="xa"/> + </server> + </subsystem> + <subsystem xmlns="urn:jboss:domain:modcluster:2.0"> + <mod-cluster-config advertise-socket="modcluster" connector="ajp"> + <dynamic-load-provider> + <load-metric type="cpu"/> + </dynamic-load-provider> + </mod-cluster-config> + </subsystem> + <subsystem xmlns="urn:jboss:domain:naming:2.0"> + <remote-naming/> + </subsystem> + <subsystem xmlns="urn:jboss:domain:pojo:1.0"/> + <subsystem xmlns="urn:jboss:domain:remoting:3.0"> + <endpoint/> + <http-connector name="http-remoting-connector" connector-ref="default" security-realm="ApplicationRealm"/> + </subsystem> + <subsystem xmlns="urn:jboss:domain:resource-adapters:4.0"/> + <subsystem xmlns="urn:jboss:domain:request-controller:1.0"/> + <subsystem xmlns="urn:jboss:domain:sar:1.0"/> + <subsystem xmlns="urn:jboss:domain:security-manager:1.0"> + <deployment-permissions> + <maximum-set> + <permission class="java.security.AllPermission"/> + </maximum-set> + </deployment-permissions> + </subsystem> + <subsystem xmlns="urn:jboss:domain:security:1.2"> + <security-domains> + <security-domain name="other" cache-type="default"> + <authentication> + <login-module code="Remoting" flag="optional"> + <module-option name="password-stacking" value="useFirstPass"/> + </login-module> + <login-module code="RealmDirect" flag="required"> + <module-option name="password-stacking" value="useFirstPass"/> + </login-module> + </authentication> + </security-domain> + <security-domain name="jboss-web-policy" cache-type="default"> + <authorization> + <policy-module code="Delegating" flag="required"/> + </authorization> + </security-domain> + <security-domain name="jboss-ejb-policy" cache-type="default"> + <authorization> + <policy-module code="Delegating" flag="required"/> + </authorization> + </security-domain> + <security-domain name="jaspitest" cache-type="default"> + <authentication-jaspi> + <login-module-stack name="dummy"> + <login-module code="Dummy" flag="optional"/> + </login-module-stack> + <auth-module code="Dummy"/> + </authentication-jaspi> + </security-domain> + </security-domains> + </subsystem> + <subsystem xmlns="urn:jboss:domain:singleton:1.0"> + <singleton-policies default="default"> + <singleton-policy name="default" cache-container="server"> + <simple-election-policy/> + </singleton-policy> + </singleton-policies> + </subsystem> + <subsystem xmlns="urn:jboss:domain:transactions:3.0"> + <core-environment> + <process-id> + <uuid/> + </process-id> + </core-environment> + <recovery-environment socket-binding="txn-recovery-environment" status-socket-binding="txn-status-manager"/> + </subsystem> + <subsystem xmlns="urn:jboss:domain:undertow:3.1"> + <buffer-cache name="default"/> + <server name="default-server"> + <ajp-listener name="ajp" socket-binding="ajp"/> + <http-listener name="default" socket-binding="http" enable-http2="true"/> + <https-listener name="https" socket-binding="https" security-realm="ApplicationRealm" enable-http2="true"/> + <host name="default-host" alias="localhost"> + <location name="/" handler="welcome-content"/> + <filter-ref name="server-header"/> + <filter-ref name="x-powered-by-header"/> + </host> + </server> + <servlet-container name="default"> + <jsp-config/> + <websockets/> + </servlet-container> + <handlers> + <file name="welcome-content" path="${jboss.home.dir}/welcome-content"/> + </handlers> + <filters> + <response-header name="server-header" header-name="Server" header-value="WildFly/10"/> + <response-header name="x-powered-by-header" header-name="X-Powered-By" header-value="Undertow/1"/> + </filters> + </subsystem> + <subsystem xmlns="urn:jboss:domain:webservices:2.0"> + <wsdl-host>${jboss.bind.address:127.0.0.1}</wsdl-host> + <endpoint-config name="Standard-Endpoint-Config"/> + <endpoint-config name="Recording-Endpoint-Config"> + <pre-handler-chain name="recording-handlers" protocol-bindings="##SOAP11_HTTP ##SOAP11_HTTP_MTOM ##SOAP12_HTTP ##SOAP12_HTTP_MTOM"> + <handler name="RecordingHandler" class="org.jboss.ws.common.invocation.RecordingServerHandler"/> + </pre-handler-chain> + </endpoint-config> + <client-config name="Standard-Client-Config"/> + </subsystem> + <subsystem xmlns="urn:jboss:domain:weld:3.0"/> + </profile> + + <interfaces> + <interface name="management"> + <inet-address value="${jboss.bind.address.management:127.0.0.1}"/> + </interface> + <interface name="public"> + <inet-address value="${jboss.bind.address:127.0.0.1}"/> + </interface> + <interface name="private"> + <inet-address value="${jboss.bind.address.private:127.0.0.1}"/> + </interface> + <interface name="unsecure"> + <inet-address value="${jboss.bind.address.unsecure:127.0.0.1}"/> + </interface> + </interfaces> + + <socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}"> + <socket-binding name="management-http" interface="management" port="${jboss.management.http.port:9990}"/> + <socket-binding name="management-https" interface="management" port="${jboss.management.https.port:9993}"/> + <socket-binding name="ajp" port="${jboss.ajp.port:8009}"/> + <socket-binding name="http" port="${jboss.http.port:8080}"/> + <socket-binding name="https" port="${jboss.https.port:8443}"/> + <socket-binding name="iiop" interface="unsecure" port="3528"/> + <socket-binding name="iiop-ssl" interface="unsecure" port="3529"/> + <socket-binding name="jgroups-mping" interface="private" port="0" multicast-address="${jboss.default.multicast.address:230.0.0.4}" multicast-port="45700"/> + <socket-binding name="jgroups-tcp" interface="private" port="7600"/> + <socket-binding name="jgroups-tcp-fd" interface="private" port="57600"/> + <socket-binding name="jgroups-udp" interface="private" port="55200" multicast-address="${jboss.default.multicast.address:230.0.0.4}" multicast-port="45688"/> + <socket-binding name="jgroups-udp-fd" interface="private" port="54200"/> + <socket-binding name="modcluster" port="0" multicast-address="224.0.1.105" multicast-port="23364"/> + <socket-binding name="txn-recovery-environment" port="4712"/> + <socket-binding name="txn-status-manager" port="4713"/> + <outbound-socket-binding name="mail-smtp"> + <remote-destination host="localhost" port="25"/> + </outbound-socket-binding> + </socket-binding-group> + +</server> diff --git a/kubernetes/config/docker/init/src/config/mso/mso/mso-docker.json b/kubernetes/mso/resources/config/mso/mso-docker.json index 1b3aeec9b1..b2775590a6 100755 --- a/kubernetes/config/docker/init/src/config/mso/mso/mso-docker.json +++ b/kubernetes/mso/resources/config/mso/mso-docker.json @@ -9,9 +9,9 @@ "mso-api-handler-infra-config": { - "bpelURL": "http://mso.onap-mso.svc.cluster.local:8080", + "bpelURL": "http://localhost:8080", "bpelAuth": "786864AA53D0DCD881AED1154230C0C3058D58B9339D2EFB6193A0F0D82530E1", - "camundaURL": "http://mso.onap-mso.svc.cluster.local:8080", + "camundaURL": "http://localhost:8080", "camundaAuth": "5119D1AF37F671FC01FFAD2151D93EFB2BBB503E879FD07104D024EDDF118FD1" }, @@ -22,8 +22,8 @@ "user": "mso", "consumerGroup": "sdc-OpenSource-Env1", "consumerId": "sdc-COpenSource-Env11", - "environmentName": "DMAAP_TOPIC_HERE", - "asdcAddress": "sdc-be.onap-sdc.svc.cluster.local:8443", + "environmentName": "{{ .Values.dmaapTopic }}", + "asdcAddress": "sdc-be.{{.Values.nsPrefix}}:8443", "password": "613AF3483E695524F9857643B697FA51C7A9A0951094F53791485BF3458F9EADA37DBACCCEBD0CB242B85B4062745247", "pollingInterval": 60, "pollingTimeout": 60, @@ -38,20 +38,20 @@ { "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}}:8282/restconf/operations/L3SDN-API:", + "http://sdnhost.{{.Values.nsPrefix}}:8282/restconf/config/L3SDN-API:", + "http://sdnhost.{{.Values.nsPrefix}}:8282/restconf/operations/Firewall-API:", + "http://sdnhost.{{.Values.nsPrefix}}:8282/restconf/config", + "http://sdnhost.{{.Values.nsPrefix}}:8282/restconf/operations/VNF-API:", + "http://sdnhost.{{.Values.nsPrefix}}:8282/restconf/operations/NBNC-API:", + "http://sdnhost.{{.Values.nsPrefix}}:8282/restconf/operations/NORTHBOUND-API:service-topology-operation", + "http://sdnhost.{{.Values.nsPrefix}}:8282/restconf/operations/GENERIC-RESOURCE-API:", + "http://sdnhost.{{.Values.nsPrefix}}: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://localhost:8080/mso/SDNCAdapterCallbackService", + "restbpelurl": "http://localhost:8080/mso/WorkflowMessage", + "myurl": "http://localhost:8080/adapters/rest/SDNCNotify", "sdncauth": "263f7d5f944d4d0c76db74b4148bec67d0bc796a874bc0d2a2a12aae89a866aa69133f700f391f784719a37f6a68d29bf5a2fbae1dab0402db7788c800c5ba73", "bpelauth": "5119D1AF37F671FC01FFAD2151D93EFB2BBB503E879FD07104D024EDDF118FD1", "sdncconnecttime": "5000" @@ -62,10 +62,10 @@ [ { "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", @@ -76,10 +76,10 @@ "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" } ], @@ -92,7 +92,7 @@ "mso-workflow-message-adapter-config": { - "wmbpelurl": "http://mso.onap-mso.svc.cluster.local:8080/mso/WorkflowMessage", + "wmbpelurl": "http://localhost:8080/mso/WorkflowMessage", "wmbpelauth": "5119D1AF37F671FC01FFAD2151D93EFB2BBB503E879FD07104D024EDDF118FD1" }, @@ -128,37 +128,37 @@ "versionIdL3ToHigherLayerDeleteBonding": "52dbec20-47aa-42e4-936c-331d8e350d44", "infraCustomerId": "21014aa2-526b-11e6-beb8-9e71128cae77", "sniroAuth": "test:testpwd", - "sniroEndpoint": "http://sniro-emulator.onap-mock.svc.cluster.local:8080/sniro/api/v2/placement", + "sniroEndpoint": "http://sniro-emulator.{{.Values.nsPrefix}}:8080/sniro/api/v2/placement", "sniroTimeout": "PT30M", - "serviceAgnosticSniroHost": "http://sniro-emulator.onap-mock.svc.cluster.local:8080", + "serviceAgnosticSniroHost": "http://sniro-emulator.{{.Values.nsPrefix}}:8080", "serviceAgnosticSniroEndpoint": "/sniro/api/v2/placement", - "aaiEndpoint": "https://aai-service.onap-aai.svc.cluster.local:8443", + "aaiEndpoint": "https://aai-service.{{.Values.nsPrefix}}: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://localhost:8080/CompleteMsoProcess", + "adaptersDbEndpoint": "http://localhost:8080/dbadapters/MsoRequestsDbAdapter", + "adaptersOpenecompDbEndpoint": "http://localhost:8080/dbadapters/RequestsDbAdapter", + "catalogDbEndpoint": "http://localhost:8080/ecomp/mso/catalog", + "adaptersSdncEndpoint": "http://localhost:8080/adapters/SDNCAdapter", + "adaptersSdncRestEndpoint": "http://localhost:8080/adapters/rest/v1/sdnc", + "adaptersTenantEndpoint": "http://localhost: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://localhost:8080/workflows/messages/message", + "workflowMessageEndpoint": "http://localhost:8080/mso/WorkflowMessage", + "workflowSdncAdapterCallback": "http://localhost: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://localhost:8080/networks/NetworkAdapter", + "adaptersNetworkRestEndpoint": "http://localhost:8080/networks/rest/v1/networks", + "adaptersVnfAsyncEndpoint": "http://localhost:8080/vnfs/VnfAdapterAsync", + "workflowVnfAdapterDeleteCallback": "http://localhost:8080/mso/vnfAdapterNotify", + "workflowVnfAdapterCreateCallback": "http://localhost:8080/mso/vnfAdapterNotify", + "adaptersVnfRestEndpoint": "http://localhost:8080/vnfs/rest/v1/vnfs", + "workflowVnfAdapterRestCallback": "http://localhost:8080/mso/vnfAdapterRestNotify", "poTimeout": "PT5M", "sdncFirewallYangModel": "http://com/att/svc/mis/firewall-lite-gui", "sdncFirewallYangModelVersion": "2015-05-15", diff --git a/kubernetes/mso/templates/all-services.yaml b/kubernetes/mso/templates/all-services.yaml index 44e47c10fc..6eefe65cff 100644 --- a/kubernetes/mso/templates/all-services.yaml +++ b/kubernetes/mso/templates/all-services.yaml @@ -2,17 +2,17 @@ apiVersion: v1 kind: Service metadata: - name: mariadb - namespace: "{{ .Values.nsPrefix }}-mso" + name: mso-mariadb + namespace: "{{ .Values.nsPrefix }}" labels: - app: mariadb + app: mso-mariadb spec: ports: - - port: 3306 - nodePort: {{ .Values.nodePortPrefix }}52 + - port: 3306 + name: mso-mariadb-3306 selector: - app: mariadb - type: NodePort + app: mso-mariadb + clusterIP: None #{{ end }} #{{ if not .Values.disableMsoMso }} --- @@ -20,7 +20,7 @@ apiVersion: v1 kind: Service metadata: name: mso - namespace: "{{ .Values.nsPrefix }}-mso" + namespace: "{{ .Values.nsPrefix }}" labels: app: mso annotations: @@ -63,4 +63,4 @@ spec: port: 8787 nodePort: {{ .Values.nodePortPrefix }}50 type: NodePort -#{{ end }}
\ No newline at end of file +#{{ end }} diff --git a/kubernetes/mso/templates/db-deployment-configmap.yaml b/kubernetes/mso/templates/db-deployment-configmap.yaml new file mode 100644 index 0000000000..51c106cc78 --- /dev/null +++ b/kubernetes/mso/templates/db-deployment-configmap.yaml @@ -0,0 +1,65 @@ +#{{ if not .Values.disableMsoMariadb }} +apiVersion: v1 +kind: ConfigMap +metadata: + name: mso-confd-configmap + namespace: {{ .Values.nsPrefix }} +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 }} +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 }} +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 }} +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 }} +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 }} +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 }} +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 }} +data: +{{ tpl (.Files.Glob "resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/main-schemas/*").AsConfig . | indent 2 }} +#{{ end }} diff --git a/kubernetes/mso/templates/db-deployment.yaml b/kubernetes/mso/templates/db-deployment.yaml index 820d7e2239..a906c1c413 100644 --- a/kubernetes/mso/templates/db-deployment.yaml +++ b/kubernetes/mso/templates/db-deployment.yaml @@ -2,24 +2,25 @@ apiVersion: extensions/v1beta1 kind: Deployment metadata: - name: mariadb - namespace: "{{ .Values.nsPrefix }}-mso" + name: mso-mariadb + namespace: "{{ .Values.nsPrefix }}" spec: + replicas: {{ .Values.dbReplicas }} selector: matchLabels: - app: mariadb + app: mso-mariadb template: metadata: labels: - app: mariadb - name: mariadb + app: mso-mariadb + name: mso-mariadb spec: - hostname: mariadb + hostname: mso-mariadb containers: - args: image: {{ .Values.image.mariadb }} imagePullPolicy: {{ .Values.pullPolicy }} - name: "mariadb" + name: "mso-mariadb" env: - name: MYSQL_ROOT_PASSWORD value: password @@ -29,31 +30,65 @@ spec: 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: - containerPort: 3306 - name: mariadb + name: mso-mariadb readinessProbe: tcpSocket: port: 3306 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 }} diff --git a/kubernetes/mso/templates/mso-deployment-configmap.yaml b/kubernetes/mso/templates/mso-deployment-configmap.yaml new file mode 100644 index 0000000000..15c6141baf --- /dev/null +++ b/kubernetes/mso/templates/mso-deployment-configmap.yaml @@ -0,0 +1,25 @@ +#{{ if not .Values.disableMsoMso }} +apiVersion: v1 +kind: ConfigMap +metadata: + name: mso-config-mso-configmap + namespace: {{ .Values.nsPrefix }} +data: +{{ tpl (.Files.Glob "resources/config/mso/*").AsConfig . | indent 2 }} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: mso-docker-file-configmap + namespace: {{ .Values.nsPrefix }} +data: +{{ tpl (.Files.Glob "resources/config/docker-files/scripts/start-jboss-server.sh").AsConfig . | indent 2 }} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: mso-jboss-configmap + namespace: {{ .Values.nsPrefix }} +data: +{{ tpl (.Files.Glob "resources/config/mso/jboss/standalone-full-ha-mso.xml").AsConfig . | indent 2 }} +#{{ end }} diff --git a/kubernetes/mso/templates/mso-deployment.yaml b/kubernetes/mso/templates/mso-deployment.yaml index 2abb29091f..2e5497c22c 100644 --- a/kubernetes/mso/templates/mso-deployment.yaml +++ b/kubernetes/mso/templates/mso-deployment.yaml @@ -3,9 +3,9 @@ apiVersion: extensions/v1beta1 kind: Deployment metadata: name: mso - namespace: "{{ .Values.nsPrefix }}-mso" + namespace: "{{ .Values.nsPrefix }}" spec: - replicas: 1 + replicas: {{ .Values.msoReplicas }} selector: matchLabels: app: mso @@ -20,7 +20,7 @@ spec: - /root/ready.py args: - --container-name - - mariadb + - mso-mariadb env: - name: NAMESPACE valueFrom: @@ -40,34 +40,49 @@ spec: - 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: /opt/jboss/standalone/configuration/standalone-full-ha-mso.xml + name: mso-jboss-config + subPath: standalone-full-ha-mso.xml - 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" @@ -88,6 +103,7 @@ spec: 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 @@ -96,52 +112,39 @@ spec: - 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 + - name: mso-jboss-config + configMap: + name: mso-jboss-configmap imagePullSecrets: - name: "{{ .Values.nsPrefix }}-docker-registry-key" #{{ end }} diff --git a/kubernetes/mso/templates/mso-log-configmap.yaml b/kubernetes/mso/templates/mso-log-configmap.yaml new file mode 100644 index 0000000000..273c22f533 --- /dev/null +++ b/kubernetes/mso/templates/mso-log-configmap.yaml @@ -0,0 +1,17 @@ +#{{ if not .Values.disableMsoMso }} +apiVersion: v1 +kind: ConfigMap +metadata: + name: mso-log-configmap + namespace: {{ .Values.nsPrefix }} +data: +{{ tpl (.Files.Glob "resources/config/log/*").AsConfig . | indent 2 }} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: mso-filebeat-configmap + namespace: {{ .Values.nsPrefix }} +data: +{{ tpl (.Files.Glob "resources/config/log/filebeat/*").AsConfig . | indent 2 }} +#{{ end }} diff --git a/kubernetes/mso/templates/mso-pv-pvc.yaml b/kubernetes/mso/templates/mso-pv-pvc.yaml index 07b5a03f61..04f5c60832 100644 --- a/kubernetes/mso/templates/mso-pv-pvc.yaml +++ b/kubernetes/mso/templates/mso-pv-pvc.yaml @@ -2,10 +2,10 @@ apiVersion: v1 kind: PersistentVolume metadata: - name: "{{ .Values.nsPrefix }}-mso-db" - namespace: "{{ .Values.nsPrefix }}-mso" + name: "{{ .Values.nsPrefix }}-mso" + namespace: "{{ .Values.nsPrefix }}" labels: - name: "{{ .Values.nsPrefix }}-mso-db" + name: "{{ .Values.nsPrefix }}-mso" spec: capacity: storage: 2Gi @@ -13,13 +13,13 @@ spec: - ReadWriteMany persistentVolumeReclaimPolicy: Retain hostPath: - path: /dockerdata-nfs/{{ .Values.nsPrefix }}/mso/mariadb/data + path: {{ .Values.dataRootDir }}/{{ .Values.nsPrefix }}/mso/mariadb/data --- kind: PersistentVolumeClaim apiVersion: v1 metadata: name: mso-db - namespace: "{{ .Values.nsPrefix }}-mso" + namespace: "{{ .Values.nsPrefix }}" spec: accessModes: - ReadWriteMany @@ -28,5 +28,5 @@ spec: storage: 2Gi selector: matchLabels: - name: "{{ .Values.nsPrefix }}-mso-db" -#{{ end }}
\ No newline at end of file + name: "{{ .Values.nsPrefix }}-mso" +#{{ end }} diff --git a/kubernetes/mso/values.yaml b/kubernetes/mso/values.yaml index fd8b6690e8..4cc91463f7 100644 --- a/kubernetes/mso/values.yaml +++ b/kubernetes/mso/values.yaml @@ -1,8 +1,17 @@ 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 +dataRootDir: /dockerdata-nfs image: - readiness: oomk8s/readiness-check:1.0.0 - mso: nexus3.onap.org:10001/openecomp/mso:v1.1.1 + readiness: oomk8s/readiness-check:1.1.0 + mso: nexus3.onap.org:10001/openecomp/mso:v1.1.2 mariadb: nexus3.onap.org:10001/mariadb:10.1.11 filebeat: docker.elastic.co/beats/filebeat:5.5.0 diff --git a/kubernetes/multicloud/resources/config/log/filebeat/filebeat.yml b/kubernetes/multicloud/resources/config/log/filebeat/filebeat.yml new file mode 100644 index 0000000000..706f24d693 --- /dev/null +++ b/kubernetes/multicloud/resources/config/log/filebeat/filebeat.yml @@ -0,0 +1,41 @@ +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: 24h + # 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: 48h + + +# 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}}: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 diff --git a/kubernetes/multicloud/resources/config/log/framework/log.yml b/kubernetes/multicloud/resources/config/log/framework/log.yml new file mode 100644 index 0000000000..a4943f015a --- /dev/null +++ b/kubernetes/multicloud/resources/config/log/framework/log.yml @@ -0,0 +1,26 @@ +version: 1 +disable_existing_loggers: False + +loggers: + multivimbroker: + handlers: [multivimbroker_handler] + level: "DEBUG" + propagate: False + +handlers: + multivimbroker_handler: + level: "DEBUG" + class: "logging.handlers.RotatingFileHandler" + filename: "/var/log/onap/multicloud/multivimbroker/multivimbroker.log" + formatter: "mdcFormat" + maxBytes: 1024*1024*50 + backupCount: 10 + +formatters: + standard: + format: "%(asctime)s:[%(name)s]:[%(filename)s]-[%(lineno)d] [%(levelname)s]:%(message)s" + mdcFormat: + format: "%(asctime)s:[%(name)s]:[%(filename)s]-[%(lineno)d] [%(levelname)s]:[%(mdc)s]: %(message)s" + mdcfmt: "{requestID}" + datefmt: "%Y-%m-%d %H:%M:%S" + (): onaplogging.mdcformatter.MDCFormatter
\ No newline at end of file diff --git a/kubernetes/multicloud/resources/config/log/vio/log.yml b/kubernetes/multicloud/resources/config/log/vio/log.yml new file mode 100644 index 0000000000..c9d2bf84f3 --- /dev/null +++ b/kubernetes/multicloud/resources/config/log/vio/log.yml @@ -0,0 +1,26 @@ +version: 1 +disable_existing_loggers: False + +loggers: + vio: + handlers: [vio_handler] + level: "DEBUG" + propagate: False + +handlers: + vio_handler: + level: "DEBUG" + class: "logging.handlers.RotatingFileHandler" + filename: "/var/log/onap/multicloud/vio/vio.log" + formatter: "mdcFormat" + maxBytes: 1024*1024*50 + backupCount: 10 + +formatters: + standard: + format: "%(asctime)s:[%(name)s]:[%(filename)s]-[%(lineno)d] [%(levelname)s]:%(message)s" + mdcFormat: + format: "%(asctime)s:[%(name)s]:[%(filename)s]-[%(lineno)d] [%(levelname)s]:[%(mdc)s]: %(message)s" + mdcfmt: "{requestID}" + datefmt: "%Y-%m-%d %H:%M:%S" + (): onaplogging.mdcformatter.MDCFormatter
\ No newline at end of file diff --git a/kubernetes/multicloud/templates/all-services.yaml b/kubernetes/multicloud/templates/all-services.yaml index 09a90d0eca..58e67e03d1 100644 --- a/kubernetes/multicloud/templates/all-services.yaml +++ b/kubernetes/multicloud/templates/all-services.yaml @@ -3,7 +3,7 @@ apiVersion: v1 kind: Service metadata: name: framework - namespace: "{{ .Values.nsPrefix }}-multicloud" + namespace: "{{ .Values.nsPrefix }}" labels: name: framework annotations: @@ -32,7 +32,7 @@ apiVersion: v1 kind: Service metadata: name: multicloud-vio - namespace: "{{ .Values.nsPrefix }}-multicloud" + namespace: "{{ .Values.nsPrefix }}" labels: name: multicloud-vio annotations: @@ -62,7 +62,7 @@ apiVersion: v1 kind: Service metadata: name: multicloud-ocata - namespace: "{{ .Values.nsPrefix }}-multicloud" + namespace: "{{ .Values.nsPrefix }}" labels: name: multicloud-ocata annotations: @@ -92,7 +92,7 @@ apiVersion: v1 kind: Service metadata: name: multicloud-windriver - namespace: "{{ .Values.nsPrefix }}-multicloud" + namespace: "{{ .Values.nsPrefix }}" labels: name: multicloud-windriver annotations: diff --git a/kubernetes/multicloud/templates/framework-deployment.yaml b/kubernetes/multicloud/templates/framework-deployment.yaml index b2f23715c8..b9b130c90f 100644 --- a/kubernetes/multicloud/templates/framework-deployment.yaml +++ b/kubernetes/multicloud/templates/framework-deployment.yaml @@ -2,9 +2,10 @@ apiVersion: extensions/v1beta1 kind: Deployment metadata: - name: framework - namespace: "{{ .Values.nsPrefix }}-multicloud" + name: multicloud-framework + namespace: "{{ .Values.nsPrefix }}" spec: + replicas: {{ .Values.frameworkReplicas }} selector: matchLabels: app: framework @@ -12,17 +13,16 @@ spec: metadata: labels: app: framework - name: framework + name: multicloud-framework spec: - hostname: framework containers: - env: - name: MSB_ADDR - value: {{ .Values.msbgateway }} + value: {{ tpl .Values.msbgateway . }} - name: MSB_PORT value: "{{ .Values.msbPort }}" - name: AAI_ADDR - value: aai-service.{{ .Values.nsPrefix }}-aai + value: aai-service.{{ .Values.nsPrefix }} - name: AAI_PORT value: "8443" - name: AAI_SCHEMA_VERSION @@ -31,12 +31,15 @@ spec: value: "AAI" - name: AAI_PASSWORD value: "AAI" + image: {{ .Values.image.framework }} + imagePullPolicy: {{ .Values.pullPolicy }} name: framework volumeMounts: - - mountPath: /service/multivimbroker/logs + - mountPath: /var/log/onap name: framework-log - image: {{ .Values.image.framework }} - imagePullPolicy: {{ .Values.pullPolicy }} + - mountPath: /opt/multivimbroker/multivimbroker/pub/config/log.yml + name: framework-logconfig + subPath: log.yml ports: - containerPort: 9001 livenessProbe: @@ -49,11 +52,29 @@ spec: timeoutSeconds: 10 successThreshold: 1 failureThreshold: 5 - restartPolicy: Always + - image: {{ .Values.image.filebeat }} + imagePullPolicy: {{ .Values.pullPolicy }} + name: filebeat-onap + volumeMounts: + - mountPath: /usr/share/filebeat/filebeat.yml + name: filebeat-conf + subPath: filebeat.yml + - mountPath: /var/log/onap + name: framework-log + - mountPath: /usr/share/filebeat/data + name: framework-data-filebeat volumes: - name: framework-log - hostPath: - path: /dockerdata-nfs/{{ .Values.nsPrefix }}/multicloud/framework/logs + emptyDir: {} + - name: framework-data-filebeat + emptyDir: {} + - name: filebeat-conf + configMap: + name: multicloud-filebeat-configmap + - name: framework-logconfig + configMap: + name: multicloud-framework-log-configmap imagePullSecrets: - name: "{{ .Values.nsPrefix }}-docker-registry-key" -#{{ end }}
\ No newline at end of file + restartPolicy: Always +#{{ end }} diff --git a/kubernetes/multicloud/templates/multicloud-log-configmap.yaml b/kubernetes/multicloud/templates/multicloud-log-configmap.yaml new file mode 100644 index 0000000000..754178c25f --- /dev/null +++ b/kubernetes/multicloud/templates/multicloud-log-configmap.yaml @@ -0,0 +1,25 @@ +#{{ if not .Values.disableVidVidServer }} +apiVersion: v1 +kind: ConfigMap +metadata: + name: multicloud-filebeat-configmap + namespace: {{ .Values.nsPrefix }} +data: +{{ tpl (.Files.Glob "resources/config/log/filebeat/*").AsConfig . | indent 2 }} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: multicloud-framework-log-configmap + namespace: {{ .Values.nsPrefix }} +data: +{{ tpl (.Files.Glob "resources/config/log/framework/*").AsConfig . | indent 2 }} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: multicloud-vio-log-configmap + namespace: {{ .Values.nsPrefix }} +data: +{{ tpl (.Files.Glob "resources/config/log/vio/*").AsConfig . | indent 2 }} +#{{ end }} diff --git a/kubernetes/multicloud/templates/multicloud-ocata-deployment.yaml b/kubernetes/multicloud/templates/multicloud-ocata-deployment.yaml index 994fe94c03..072b3d9e7e 100644 --- a/kubernetes/multicloud/templates/multicloud-ocata-deployment.yaml +++ b/kubernetes/multicloud/templates/multicloud-ocata-deployment.yaml @@ -3,8 +3,9 @@ apiVersion: extensions/v1beta1 kind: Deployment metadata: name: multicloud-ocata - namespace: "{{ .Values.nsPrefix }}-multicloud" + namespace: "{{ .Values.nsPrefix }}" spec: + replicas: {{ .Values.ocataReplicas }} selector: matchLabels: app: multicloud-ocata @@ -18,11 +19,11 @@ spec: containers: - env: - name: MSB_ADDR - value: "{{ .Values.msbgateway }}" + value: "{{ tpl .Values.msbgateway . }}" - name: MSB_PORT value: "{{ .Values.msbPort }}" - name: AAI_ADDR - value: aai-service.{{ .Values.nsPrefix }}-aai + value: aai-service.{{ .Values.nsPrefix }} - name: AAI_PORT value: "8443" - name: AAI_SCHEMA_VERSION @@ -53,7 +54,7 @@ spec: volumes: - name: ocata-log hostPath: - path: /dockerdata-nfs/{{ .Values.nsPrefix }}/multicloud/ocata/logs + path: {{ .Values.dataRootDir }}/{{ .Values.nsPrefix }}/multicloud/ocata/logs imagePullSecrets: - name: "{{ .Values.nsPrefix }}-docker-registry-key" -#{{ end }}
\ No newline at end of file +#{{ end }} diff --git a/kubernetes/multicloud/templates/multicloud-vio-deployment.yaml b/kubernetes/multicloud/templates/multicloud-vio-deployment.yaml index e2274b358f..579f8a8cf3 100644 --- a/kubernetes/multicloud/templates/multicloud-vio-deployment.yaml +++ b/kubernetes/multicloud/templates/multicloud-vio-deployment.yaml @@ -3,8 +3,9 @@ apiVersion: extensions/v1beta1 kind: Deployment metadata: name: multicloud-vio - namespace: "{{ .Values.nsPrefix }}-multicloud" + namespace: "{{ .Values.nsPrefix }}" spec: + replicas: {{ .Values.vioReplicas }} selector: matchLabels: app: multicloud-vio @@ -14,15 +15,14 @@ spec: app: multicloud-vio name: multicloud-vio spec: - hostname: multicloud-vio containers: - env: - name: MSB_ADDR - value: "{{ .Values.msbgateway }}" + value: "{{ tpl .Values.msbgateway . }}" - name: MSB_PORT value: "{{ .Values.msbPort }}" - name: AAI_ADDR - value: aai-service.{{ .Values.nsPrefix }}-aai + value: aai-service.{{ .Values.nsPrefix }} - name: AAI_PORT value: "8443" - name: AAI_SCHEMA_VERSION @@ -33,8 +33,11 @@ spec: value: "AAI" name: multicloud-vio volumeMounts: - - mountPath: /service/vio/logs + - mountPath: /var/log/onap name: vio-log + - mountPath: /opt/vio/vio/pub/config/log.yml + name: vio-logconfig + subPath: log.yml image: {{ .Values.image.vio }} imagePullPolicy: {{ .Values.pullPolicy }} ports: @@ -49,11 +52,29 @@ spec: timeoutSeconds: 10 successThreshold: 1 failureThreshold: 5 - restartPolicy: Always + - image: {{ .Values.image.filebeat }} + imagePullPolicy: {{ .Values.pullPolicy }} + name: filebeat-onap + volumeMounts: + - mountPath: /usr/share/filebeat/filebeat.yml + name: filebeat-conf + subPath: filebeat.yml + - mountPath: /var/log/onap + name: vio-log + - mountPath: /usr/share/filebeat/data + name: vio-data-filebeat volumes: - name: vio-log - hostPath: - path: /dockerdata-nfs/{{ .Values.nsPrefix }}/multicloud/vio/logs + emptyDir: {} + - name: vio-data-filebeat + emptyDir: {} + - name: filebeat-conf + configMap: + name: multicloud-filebeat-configmap + - name: vio-logconfig + configMap: + name: multicloud-vio-log-configmap imagePullSecrets: - name: "{{ .Values.nsPrefix }}-docker-registry-key" -#{{ end }}
\ No newline at end of file + restartPolicy: Always +#{{ end }} diff --git a/kubernetes/multicloud/templates/multicloud-windriver-deployment.yaml b/kubernetes/multicloud/templates/multicloud-windriver-deployment.yaml index ff0f09af19..168d1d611e 100644 --- a/kubernetes/multicloud/templates/multicloud-windriver-deployment.yaml +++ b/kubernetes/multicloud/templates/multicloud-windriver-deployment.yaml @@ -3,8 +3,9 @@ apiVersion: extensions/v1beta1 kind: Deployment metadata: name: multicloud-windriver - namespace: "{{ .Values.nsPrefix }}-multicloud" + namespace: "{{ .Values.nsPrefix }}" spec: + replicas: {{ .Values.windRiverReplicas }} selector: matchLabels: app: multicloud-windriver @@ -18,11 +19,11 @@ spec: containers: - env: - name: MSB_ADDR - value: "{{ .Values.msbgateway }}" + value: "{{ tpl .Values.msbgateway . }}" - name: MSB_PORT value: "{{ .Values.msbPort }}" - name: AAI_ADDR - value: aai-service.{{ .Values.nsPrefix }}-aai + value: aai-service.{{ .Values.nsPrefix }} - name: AAI_PORT value: "8443" - name: AAI_SCHEMA_VERSION @@ -53,7 +54,7 @@ spec: volumes: - name: windriver-log hostPath: - path: /dockerdata-nfs/{{ .Values.nsPrefix }}/multicloud/windriver/logs + path: {{ .Values.dataRootDir }}/{{ .Values.nsPrefix }}/multicloud/windriver/logs imagePullSecrets: - name: "{{ .Values.nsPrefix }}-docker-registry-key" -#{{ end }}
\ No newline at end of file +#{{ end }} diff --git a/kubernetes/multicloud/values.yaml b/kubernetes/multicloud/values.yaml index 2431d0a69d..9f49096b5f 100644 --- a/kubernetes/multicloud/values.yaml +++ b/kubernetes/multicloud/values.yaml @@ -1,13 +1,18 @@ nsPrefix: onap pullPolicy: Always nodePortPrefix: 302 +dataRootDir: /dockerdata-nfs +frameworkReplicas: 1 +ocataReplicas: 1 +vioReplicas: 1 +windRiverReplicas: 1 image: - readiness: oomk8s/readiness-check:1.0.0 - framework: nexus3.onap.org:10001/onap/multicloud/framework:v1.0.0 - vio: nexus3.onap.org:10001/onap/multicloud/vio:v1.0.0 + readiness: oomk8s/readiness-check:1.1.0 + framework: nexus3.onap.org:10001/onap/multicloud/framework:latest + vio: nexus3.onap.org:10001/onap/multicloud/vio:latest ocata: nexus3.onap.org:10001/onap/multicloud/openstack-ocata:v1.0.0 windriver: nexus3.onap.org:10001/onap/multicloud/openstack-windriver:v1.0.0 - + filebeat: docker.elastic.co/beats/filebeat:5.5.0 # domain name of msb gateway -msbgateway: msb-iag.onap-msb -msbPort: 80
\ No newline at end of file +msbgateway: msb-iag.{{ .Values.nsPrefix }} +msbPort: 80 diff --git a/kubernetes/onap/Chart.yaml b/kubernetes/onap/Chart.yaml new file mode 100644 index 0000000000..db8a30f28e --- /dev/null +++ b/kubernetes/onap/Chart.yaml @@ -0,0 +1,9 @@ +apiVersion: v1 +name: onap +version: 2.0.0 +appVersion: beijing +description: Open Network Automation Platform (ONAP) +home: https://www.onap.org/ +sources: +- https://gerrit.onap.org/r/#/admin/projects/ +icon: https://wiki.onap.org/download/thumbnails/1015829/onap_704x271%20copy.png?version=1&modificationDate=1488326334000&api=v2 diff --git a/kubernetes/onap/requirements.yaml b/kubernetes/onap/requirements.yaml new file mode 100644 index 0000000000..a8fd3eb785 --- /dev/null +++ b/kubernetes/onap/requirements.yaml @@ -0,0 +1,103 @@ +# Referencing a named repo called 'local'. +# Can add this repo by running commands like: +# > helm serve +# > helm repo add local http://127.0.0.1:8879 +dependencies: + - name: aaf + version: ~1.1.0 + repository: '@local' + condition: aaf.enabled + - name: aai + version: ~0.1.0 + repository: '@local' + condition: aai.enabled + - name: appc + version: ~0.1.0 + repository: '@local' + condition: appc.enabled + - name: clamp + version: ~1.1.0 + repository: '@local' + condition: clamp.enabled + - name: cli + version: ~0.1.0 + repository: '@local' + condition: cli.enabled + - name: common + version: ~2.0.0 + repository: '@local' + - name: consul + version: ~1.1.0 + repository: '@local' + condition: consul.enabled + - name: dcaegen2 + version: ~1.1.0 + repository: '@local' + condition: dcaegen2.enabled + - name: esr + version: ~1.1.0 + repository: '@local' + condition: esr.enabled + - name: log + version: ~0.1.0 + repository: '@local' + condition: log.enabled + - name: message-router + version: ~0.1.0 + repository: '@local' + condition: message-router.enabled + - name: mock + version: ~0.1.0 + repository: '@local' + condition: mock.enabled + - name: msb + version: ~0.1.0 + repository: '@local' + condition: msb.enabled + - name: multicloud + version: ~1.1.0 + repository: '@local' + condition: multicloud.enabled + - name: policy + version: ~0.1.0 + repository: '@local' + condition: policy.enabled + - name: portal + version: ~0.1.0 + repository: '@local' + condition: portal.enabled + - name: robot + version: ~0.1.0 + repository: '@local' + condition: robot.enabled + - name: sdc + version: ~0.1.0 + repository: '@local' + condition: sdc.enabled + - name: sdnc + version: ~0.1.0 + repository: '@local' + condition: sdnc.enabled + - name: setup + version: ~2.0.0 + repository: '@local' + - name: so + version: ~2.0.0 + repository: '@local' + condition: so.enabled + - name: uui + version: ~1.1.0 + repository: '@local' + condition: uui.enabled + - name: vfc + version: ~0.1.0 + repository: '@local' + condition: vfc.enabled + - name: vid + version: ~0.1.0 + repository: '@local' + condition: vid.enabled + - name: vnfsdk + version: ~1.1.0 + repository: '@local' + condition: vnfsdk.enabled diff --git a/kubernetes/onap/resources/environments/onap-demo.yaml b/kubernetes/onap/resources/environments/onap-demo.yaml new file mode 100644 index 0000000000..67b6f401a4 --- /dev/null +++ b/kubernetes/onap/resources/environments/onap-demo.yaml @@ -0,0 +1,60 @@ +################################################################# +# Global configuration overrides. +# +# These overrides will affect all helm charts (ie. applications) +# that are listed below and are 'enabled'. +################################################################# +global: + # Change to an unused port prefix range to prevent port conflicts + # with other instances running within the same k8s cluster + nodePortPrefix: 302 + + # image repositories + repository: nexus3.onap.org:10001 + repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ== + # readiness check + readinessRepository: oomk8s + # logging agent + loggingRepository: docker.elastic.co + + # image pull policy + pullPolicy: IfNotPresent + + # override default mount path root directory + # referenced by persistent volumes and log files + persistence: + mountPath: /dockerdata-nfs + + # flag to enable debugging - application support required + debugEnabled: true + +################################################################# +# Enable/disable and configure helm charts (ie. applications) +# to customize the ONAP deployment. +################################################################# +consul: + enabled: true + +so: + enabled: true + replicaCount: 1 + liveness: + # necessary to disable liveness probe when setting breakpoints + # in debugger so K8s doesn't restart unresponsive container + enabled: true + + # so server configuration + config: + # message router configuration + dmaapTopic: "AUTO" + # openstack configuration + openStackUserName: "vnf_user" + openStackRegion: "RegionOne" + openStackKeyStoneUrl: "http://1.2.3.4:5000" + openStackServiceTenantName: "service" + openStackEncryptedPasswordHere: "c124921a3a0efbe579782cde8227681e" + + # configure embedded mariadb + mariadb: + config: + mariadbRootPassword: password
\ No newline at end of file diff --git a/kubernetes/onap/values.yaml b/kubernetes/onap/values.yaml new file mode 100644 index 0000000000..96455a0156 --- /dev/null +++ b/kubernetes/onap/values.yaml @@ -0,0 +1,104 @@ +################################################################# +# Global configuration overrides. +# +# These overrides will affect all helm charts (ie. applications) +# that are listed below and are 'enabled'. +################################################################# +global: + # Change to an unused port prefix range to prevent port conflicts + # with other instances running within the same k8s cluster + nodePortPrefix: 302 + + # image repositories + repository: nexus3.onap.org:10001 + repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ== + # readiness check + readinessRepository: oomk8s + # logging agent + loggingRepository: docker.elastic.co + + # image pull policy + pullPolicy: Always + + # default mount path root directory referenced + # by persistent volumes and log files + persistence: + mountPath: /dockerdata-nfs + + # flag to enable debugging - application support required + debugEnabled: false + + +################################################################# +# Enable/disable and configure helm charts (ie. applications) +# to customize the ONAP deployment. +################################################################# +aaf: + enabled: false +aai: + enabled: false +appc: + enabled: false +clamp: + enabled: false +cli: + enabled: false +consul: # Consul Health Check Monitoring + enabled: false +dcaegen2: + enabled: false +esr: + enabled: false +log: + enabled: false +message-router: + enabled: false +mock: + enabled: false +msb: + enabled: false +multicloud: + enabled: false +policy: + enabled: false +portal: + enabled: false +robot: # Robot Health Check + enabled: false +sdc: + enabled: false +sdnc: + enabled: false +so: # Service Orchestrator + enabled: true + + replicaCount: 1 + + liveness: + # necessary to disable liveness probe when setting breakpoints + # in debugger so K8s doesn't restart unresponsive container + enabled: true + + # so server configuration + config: + # message router configuration + dmaapTopic: "AUTO" + # openstack configuration + openStackUserName: "vnf_user" + openStackRegion: "RegionOne" + openStackKeyStoneUrl: "http://1.2.3.4:5000" + openStackServiceTenantName: "service" + openStackEncryptedPasswordHere: "c124921a3a0efbe579782cde8227681e" + + # configure embedded mariadb + mariadb: + config: + mariadbRootPassword: password +uui: + enabled: false +vfc: + enabled: false +vid: + enabled: false +vnfsdk: + enabled: false diff --git a/kubernetes/oneclick/createAll.bash b/kubernetes/oneclick/createAll.bash index 72d852ded6..488f920e91 100755 --- a/kubernetes/oneclick/createAll.bash +++ b/kubernetes/oneclick/createAll.bash @@ -27,19 +27,18 @@ check_return_code(){ } create_service_account() { - cmd=`echo kubectl create clusterrolebinding $1-$2-admin-binding --clusterrole=cluster-admin --serviceaccount=$1-$2:default` + cmd=`echo kubectl create clusterrolebinding $1-admin-binding --clusterrole=cluster-admin --serviceaccount=$1:default` eval ${cmd} check_return_code $cmd } create_namespace() { - cmd=`echo kubectl create namespace $1-$2` + cmd=`echo kubectl create namespace $1` eval ${cmd} - check_return_code $cmd } create_registry_key() { - cmd=`echo kubectl --namespace $1-$2 create secret docker-registry $3 --docker-server=$4 --docker-username=$5 --docker-password=$6 --docker-email=$7` +cmd=`echo kubectl --namespace $1 create secret docker-registry $2 --docker-server=$3 --docker-username=$4 --docker-password=$5 --docker-email=$6` eval ${cmd} check_return_code $cmd } @@ -84,7 +83,13 @@ create_onap_helm() { fi fi - cmd=`echo helm install $LOCATION/$2/ --name $1-$2 --namespace $1 --set nsPrefix=$1,nodePortPrefix=$3 ${HELM_VALUES_ADDITION}` + # assign default auth token + if [[ -z $ONAP_DEFAULT_AUTH_TOKEN ]]; then + DEFAULT_SECRET=`kubectl get secrets -n $1 | grep default-token | awk '{ print $1}'` + ONAP_DEFAULT_AUTH_TOKEN=`kubectl get secrets $DEFAULT_SECRET -n $1 -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}` eval ${cmd} check_return_code $cmd } @@ -100,6 +105,8 @@ MAX_INSTANCE=5 DU=$ONAP_DOCKER_USER DP=$ONAP_DOCKER_PASS +SINGLE_COMPONENT=false + while getopts ":n:u:s:i:a:du:dp:l:v:" PARAM; do case $PARAM in u) @@ -119,6 +126,7 @@ while getopts ":n:u:s:i:a:du:dp:l:v:" PARAM; do LOCATION=${OPTARG} ;; a) + SINGLE_COMPONENT=true APP=${OPTARG} if [[ -z $APP ]]; then usage @@ -162,18 +170,21 @@ printf "\n********** Creating instance ${INSTANCE} of ONAP with port range ${sta printf "\n********** Creating ONAP: ${ONAP_APPS[*]}\n" +if [ "$SINGLE_COMPONENT" == "false" ] +then + printf "\nCreating namespace **********\n" + create_namespace $NS -printf "\n\n********** Creating deployments for ${HELM_APPS[*]} ********** \n" + printf "\nCreating registry secret **********\n" + create_registry_key $NS ${NS}-docker-registry-key $ONAP_DOCKER_REGISTRY $DU $DP $ONAP_DOCKER_MAIL -for i in ${HELM_APPS[@]}; do - printf "\nCreating namespace **********\n" - create_namespace $NS $i + printf "\nCreating service account **********\n" + create_service_account $NS +fi - printf "\nCreating service account **********\n" - create_service_account $NS $i +printf "\n\n********** Creating deployments for ${HELM_APPS[*]} ********** \n" - printf "\nCreating registry secret **********\n" - create_registry_key $NS $i ${NS}-docker-registry-key $ONAP_DOCKER_REGISTRY $DU $DP $ONAP_DOCKER_MAIL +for i in ${HELM_APPS[@]}; do printf "\nCreating deployments and services **********\n" create_onap_helm $NS $i $start diff --git a/kubernetes/oneclick/deleteAll.bash b/kubernetes/oneclick/deleteAll.bash index 53f1d1a9cb..9833af7909 100755 --- a/kubernetes/oneclick/deleteAll.bash +++ b/kubernetes/oneclick/deleteAll.bash @@ -3,17 +3,15 @@ . $(dirname "$0")/setenv.bash delete_namespace() { - _NS=$1-$2 - kubectl delete namespace $_NS + kubectl delete namespace $1 } delete_service_account() { - kubectl delete clusterrolebinding $1-$2-admin-binding - printf "Service account $1-$2-admin-binding deleted.\n\n" + kubectl delete clusterrolebinding $1-admin-binding } delete_registry_key() { - kubectl --namespace $1-$2 delete secret ${1}-docker-registry-key + kubectl --namespace $1 delete secret ${1}-docker-registry-key } delete_app_helm() { @@ -25,13 +23,18 @@ wait_terminate() { while true; do declare -i _STATUS=0 for i in ${HELM_APPS[@]}; do - kubectl get namespaces $1-$i > /dev/null 2>&1 - if [ "$?" -eq "0" ]; then + kubectl get pods --namespace $1 | grep -w " $i" > /dev/null 2>&1 + if [ "$?" -ne "0" ]; then _STATUS=1 break fi done - if [ "$_STATUS" -eq "0" ]; then + + if [ "$SINGLE_COMPONENT" == "false" ]; then + kubectl get namespaces $1 > /dev/null 2>&1 + _STATUS=$? + fi + if [ "$_STATUS" -ne "0" ]; then break fi sleep 2 @@ -60,7 +63,7 @@ APP= WAIT_TERMINATE=true SKIP_INTERACTIVE_CONFIRMATION=no KUBECTL_CONTEXT= - +SINGLE_COMPONENT=false while getopts ":c:n:u:s:a:yN" PARAM; do case $PARAM in u) @@ -76,6 +79,7 @@ while getopts ":c:n:u:s:a:yN" PARAM; do usage exit 1 fi + SINGLE_COMPONENT=true ;; N) WAIT_TERMINATE=false @@ -128,15 +132,16 @@ fi printf "\n********** Cleaning up ONAP: ${ONAP_APPS[*]}\n" for i in ${HELM_APPS[@]}; do - delete_app_helm $NS $i - delete_namespace $NS $i - delete_service_account $NS $i - done -delete_app_helm $NS "config" -kubectl delete namespace $NS +if [ "$SINGLE_COMPONENT" == "false" ] +then + delete_app_helm $NS "config" + delete_namespace $NS + delete_registry_key $NS + delete_service_account $NS +fi if $WAIT_TERMINATE; then wait_terminate $NS diff --git a/kubernetes/oneclick/setenv.bash b/kubernetes/oneclick/setenv.bash index 312d2c45fb..3f1af4de8a 100644 --- a/kubernetes/oneclick/setenv.bash +++ b/kubernetes/oneclick/setenv.bash @@ -1,7 +1,7 @@ #!/bin/bash -# Deploying MSB first and kube2msb last will ensure all the ONAP services can be registered to MSB -HELM_APPS=('consul' 'msb' 'mso' 'message-router' 'sdnc' 'vid' 'robot' 'portal' 'policy' 'appc' 'aai' 'sdc' 'dcaegen2' 'log' 'cli' 'multicloud' 'clamp' 'vnfsdk' 'uui' 'aaf' 'vfc' 'kube2msb' 'esr') +# Deploying MSB first so the started ONAP services can be registered to MSB +HELM_APPS=('consul' 'msb' 'mso' 'message-router' 'sdnc' 'vid' 'robot' 'portal' 'policy' 'appc' 'aai' 'sdc' 'dcaegen2' 'log' 'cli' 'multicloud' 'clamp' 'vnfsdk' 'uui' 'aaf' 'vfc' 'esr') ONAP_DOCKER_REGISTRY=${ONAP_DOCKER_REGISTRY:-nexus3.onap.org:10001} ONAP_DOCKER_USER=${ONAP_DOCKER_USER:-docker} ONAP_DOCKER_PASS=${ONAP_DOCKER_PASS:-docker} diff --git a/kubernetes/oneclick/tools/autoCleanConfig.bash b/kubernetes/oneclick/tools/autoCleanConfig.bash new file mode 100644 index 0000000000..e274e0d0c5 --- /dev/null +++ b/kubernetes/oneclick/tools/autoCleanConfig.bash @@ -0,0 +1,54 @@ +######################################################################################## +# This script wraps {$OOM}/kubernetes/oneclick/deleteAll.sh script along with # +# the following steps to clean up ONAP configure for specified namespace: # +# - remove namespace # +# - remove release # +# - remove shared directory # +# # +# To run it, just enter the following command: # +# ./autoCleanConfig.bash <namespace, default is "onap"> # +######################################################################################## +#!/bin/bash + + +NS=$1 +if [[ -z $NS ]] +then + echo "Namespace is not specified, use onap namespace." + NS="onap" +fi + +echo "Clean up $NS configuration" +cd .. +./deleteAll.bash -n $NS -y +cd - + +echo "---------------------------------------------- +Force remove namespace..." +kubectl delete namespace $NS +echo "...done : kubectl get namespace +----------------------------------------------- +>>>>>>>>>>>>>> k8s namespace" +kubectl get namespace +while [[ ! -z `kubectl get namespace|grep $NS` ]] +do + echo "Wait for namespace $NS to be deleted +----------------------------------------------- +>>>>>>>>>>>>>> k8s namespace" + kubectl get namespace + sleep 2 +done + +echo "Force delete helm process ..." +helm delete $NS-config --purge --debug +echo "...done : helm ls --all + ----------------------------------------------- +>>>>>>>>>>>>>> helm" +helm ls --all + +echo "Remove $NS dockerdata..." +sudo rm -rf /dockerdata-nfs/onap +echo "...done : ls -altr /dockerdata-nfs + ----------------------------------------------- +>>>>>>>>>>>>>> /dockerdata-nfs directory" +ls -altr /dockerdata-nfs diff --git a/kubernetes/oneclick/tools/autoCreateConfig.bash b/kubernetes/oneclick/tools/autoCreateConfig.bash new file mode 100644 index 0000000000..99ea03e1bb --- /dev/null +++ b/kubernetes/oneclick/tools/autoCreateConfig.bash @@ -0,0 +1,65 @@ +######################################################################################## +# This script wraps {$OOM}/kubernetes/config/createConfig.sh script # +# and will only terminated when the configuration is Completed or failed # +# # +# To run it, just enter the following command: # +# ./autoCreateConfig.bash <namespace, default is "onap"> # +######################################################################################## +#!/bin/bash + + +NS=$1 +if [[ -z $NS ]] +then + echo "Namespace is not specified, use onap namespace." + NS="onap" +fi + +echo "Create $NS config under config directory..." +cd ../../config +./createConfig.sh -n $NS +cd - + + +echo "...done : kubectl get namespace +----------------------------------------------- +>>>>>>>>>>>>>> k8s namespace" +kubectl get namespace + + +echo " +----------------------------------------------- +>>>>>>>>>>>>>> helm : helm ls --all" +helm ls --all + + +echo " +----------------------------------------------- +>>>>>>>>>>>>>> pod : kubectl get pods -n $NS -a" +kubectl get pods -n $NS -a + + +while true +do + echo "wait for $NS config pod reach to Completed STATUS" + sleep 5 + echo "-----------------------------------------------" + kubectl get pods -n $NS -a + + status=`kubectl get pods -n $NS -a |grep config |xargs echo | cut -d' ' -f3` + + if [ "$status" = "Completed" ] + then + echo "$NS config is Completed!!!" + break + fi + + if [ "$status" = "Error" ] + then + echo " +$NS config is failed with Error!!! +Logs are:" + kubectl logs config -n $NS -f + break + fi +done diff --git a/kubernetes/oneclick/tools/collectInfo.bash b/kubernetes/oneclick/tools/collectInfo.bash new file mode 100644 index 0000000000..734c5a6c62 --- /dev/null +++ b/kubernetes/oneclick/tools/collectInfo.bash @@ -0,0 +1,171 @@ +#!/bin/bash + +NS= +OUT_NAME=onap_info_$(date +%y.%m.%d_%H.%M.%S.%N) +OUT_FILE= +OUT_DIR=$(dirname "$0") +TMP_DIR=$(dirname $(mktemp -u)) +CONTAINER_LOGS_PATH=/var/log/onap +CP_CONTAINER_LOGS=false + +if [ ! -z "$DEBUG" ]; then + set -x +fi + +usage() { + cat <<EOF +Utility script collecting various information about ONAP deployment on kubernetes. + +Usage: $0 [PARAMs] +-u : Display usage +-n [NAMESPACE] : Kubernetes namespace (required) +-a [APP] : Specify a specific ONAP component (default: all) +-d [OUT_DIR] : Specify output folder for the collected info pack file + (default: current dir) +-f [OUT_FILE] : Specify output file for the collected info + (default: file name with timestamp) +-c : Collect log files from containers, from path ${CONTAINER_LOGS_PATH} +EOF +} + +call_with_log() { + local _cmd=$1 + local _log=$2 + # Make sure otput dir exists + mkdir -p "$(dirname "$_log")" + printf "Command: ${_cmd}\n" >> ${_log} + printf "================================================================================\n" >> ${_log} + eval "${_cmd}" >> ${_log} 2>&1 + printf "================================================================================\n" >> ${_log} +} + +collect_pod_info() { + local _ns=$1 + local _id=$2 + local _log_dir=$3 + local _cp_logs=$4 + declare -i _i=0 + kubectl -n $_ns get pods $_id -o=jsonpath='{range .spec.containers[*]}{.name}{"\n"}{end}' | while read c; do + call_with_log "kubectl -n $_ns logs $_id -c $c" "$_log_dir/$_id-$c.log" + if [ "$_i" -eq "0" ] && [ "$_cp_logs" == "true" ]; then + # copy logs from 1st container only as logs dir is shared between the containers + local _cmd="kubectl cp $_ns/$_id:${CONTAINER_LOGS_PATH} $_log_dir/$_id-$c -c $c" + if [ -z "$DEBUG" ]; then + _cmd+=" > /dev/null 2>&1" + fi + eval "${_cmd}" + fi + ((_i++)) + done +} + +collect_ns_info() { + local _ns=$1 + local _log_dir=$2/$_ns + call_with_log "kubectl -n $NS-$i get services -o=wide" "$_log_dir/list_services.log" + kubectl -n "$_ns" get services | while read i; do + local _id=`echo -n $i | tr -s ' ' | cut -d' ' -n -f1` + if [ "$_id" == "NAME" ]; then + continue + fi + call_with_log "kubectl -n $_ns describe services $_id" "$_log_dir/describe_services/$_id.log" + done + call_with_log "kubectl -n $NS-$i get pods -o=wide" "$_log_dir/list_pods.log" + kubectl -n "$_ns" get pods | while read i; do + local _id=`echo -n $i | tr -s ' ' | cut -d' ' -n -f1` + if [ "$_id" == "NAME" ]; then + continue + fi + call_with_log "kubectl -n $_ns describe pods $_id" "$_log_dir/describe_pods/$_id.log" + collect_pod_info "$_ns" "$_id" "$_log_dir/logs" "${CP_CONTAINER_LOGS}" + done +} + +while getopts ":un:a:d:f:c" PARAM; do + case $PARAM in + u) + usage + exit 1 + ;; + n) + NS=${OPTARG} + ;; + a) + APP=${OPTARG} + if [[ -z $APP ]]; then + usage + exit 1 + fi + ;; + d) + OUT_DIR=${OPTARG} + if [[ -z $OUT_DIR ]]; then + usage + exit 1 + fi + ;; + f) + OUT_FILE=${OPTARG} + if [[ -z $OUT_FILE ]]; then + usage + exit 1 + fi + ;; + c) + CP_CONTAINER_LOGS=true + ;; + ?) + usage + exit + ;; + esac +done + +if [ -z "$NS" ]; then + usage + exit 1 +fi + +if [[ -z $OUT_FILE ]]; then + OUT_FILE=$OUT_NAME.tgz +fi + +if [ ! -z "$APP" ]; then + _APPS=($APP) +else + _APPS=(`kubectl get namespaces | grep "^$NS-" | tr -s ' ' | cut -d' ' -n -f1 | sed -e "s/^$NS-//"`) +fi + +printf "Collecting information about ONAP deployment...\n" +printf "Components: %s\n" "${_APPS[*]}" + +# Collect common info +mkdir -p ${TMP_DIR}/${OUT_NAME}/ +echo "${_APPS[*]}" > ${TMP_DIR}/${OUT_NAME}/component-list.log +printf "Collecting Helm info\n" +call_with_log "helm version" "${TMP_DIR}/${OUT_NAME}/helm-version.log" +call_with_log "helm list" "${TMP_DIR}/${OUT_NAME}/helm-list.log" + +printf "Collecting Kubernetes info\n" +call_with_log "kubectl version" "${TMP_DIR}/${OUT_NAME}/k8s-version.log" +call_with_log "kubectl get nodes -o=wide" "${TMP_DIR}/${OUT_NAME}/k8s-nodes.log" +call_with_log "kubectl cluster-info" "${TMP_DIR}/${OUT_NAME}/k8s-cluster-info.log" +call_with_log "kubectl cluster-info dump" "${TMP_DIR}/${OUT_NAME}/k8s-cluster-info-dump.log" +call_with_log "kubectl top node" "${TMP_DIR}/${OUT_NAME}/k8s-top-node.log" + +# Collect per-component info +for i in ${_APPS[@]}; do + printf "Writing Kubernetes info of component $i\n" + collect_ns_info "$NS-$i" "${TMP_DIR}/${OUT_NAME}" +done + +# Pack and cleanup +mkdir -p ${OUT_DIR} +_OUT_DIR=`readlink -e ${OUT_DIR}` +printf "Packing output to ${_OUT_DIR}/${OUT_FILE}...\n" +cd ${TMP_DIR} +tar cfz ${_OUT_DIR}/${OUT_FILE} ${OUT_NAME} +cd - +printf "Cleaning up...\n" +rm -rf ${TMP_DIR}/${OUT_NAME} +printf "Done\n" diff --git a/kubernetes/config/docker/init/src/config/policy/drools/settings.xml b/kubernetes/policy/resources/config/drools/settings.xml index 2a9e2a0b24..2a9e2a0b24 100755 --- a/kubernetes/config/docker/init/src/config/policy/drools/settings.xml +++ b/kubernetes/policy/resources/config/drools/settings.xml diff --git a/kubernetes/policy/resources/config/log/drools/logback.xml b/kubernetes/policy/resources/config/log/drools/logback.xml new file mode 100644 index 0000000000..daecf97850 --- /dev/null +++ b/kubernetes/policy/resources/config/log/drools/logback.xml @@ -0,0 +1,107 @@ +<!--
+ ============LICENSE_START=======================================================
+ policy-management
+ ================================================================================
+ Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ ================================================================================
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ ============LICENSE_END=========================================================
+ -->
+
+<configuration scan="true" scanPeriod="30 seconds" debug="false">
+
+ <property name="logDir" value="/var/log/onap" />
+
+ <property name="errorLog" value="error" />
+ <property name="debugLog" value="debug" />
+ <property name="networkLog" value="network" />
+
+ <property name="debugPattern" value="[%date|%level|%logger{0}|%thread] %msg%n" />
+ <property name="errorPattern" value="${debugPattern}" />
+ <property name="networkPattern" value="[%d|%t]%m%n" />
+
+ <appender name="ErrorOut" class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDir}/${errorLog}.log</file>
+ <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+ <fileNamePattern>${logDir}/${errorLog}.%i.log.zip</fileNamePattern>
+ <minIndex>1</minIndex>
+ <maxIndex>5</maxIndex>
+ </rollingPolicy>
+ <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+ <level>WARN</level>
+ </filter>
+ <triggeringPolicy
+ class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+ <maxFileSize>15MB</maxFileSize>
+ </triggeringPolicy>
+ <encoder>
+ <pattern>${errorPattern}</pattern>
+ </encoder>
+ </appender>
+
+ <appender name="AsyncErrorOut" class="ch.qos.logback.classic.AsyncAppender">
+ <appender-ref ref="ErrorOut" />
+ </appender>
+
+ <appender name="DebugOut" class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDir}/${debugLog}.log</file>
+ <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+ <fileNamePattern>${logDir}/${debugLog}.%i.log.zip</fileNamePattern>
+ <minIndex>1</minIndex>
+ <maxIndex>9</maxIndex>
+ </rollingPolicy>
+ <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+ <maxFileSize>20MB</maxFileSize>
+ </triggeringPolicy>
+ <encoder>
+ <pattern>${debugPattern}</pattern>
+ </encoder>
+ </appender>
+
+ <appender name="AsyncDebugOut" class="ch.qos.logback.classic.AsyncAppender">
+ <appender-ref ref="DebugOut" />
+ </appender>
+
+ <appender name="NetworkOut" class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDir}/${networkLog}.log</file>
+ <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+ <fileNamePattern>${logDir}/${networkLog}.%i.log.zip</fileNamePattern>
+ <minIndex>1</minIndex>
+ <maxIndex>9</maxIndex>
+ </rollingPolicy>
+ <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+ <maxFileSize>15MB</maxFileSize>
+ </triggeringPolicy>
+ <encoder>
+ <pattern>${networkPattern}</pattern>
+ </encoder>
+ </appender>
+
+ <appender name="AsyncNetworkOut" class="ch.qos.logback.classic.AsyncAppender">
+ <appender-ref ref="NetworkOut" />
+ </appender>
+
+ <logger name="network" level="INFO" additivity="false">
+ <appender-ref ref="AsyncNetworkOut" />
+ </logger>
+
+ <logger name="org.eclipse.jetty.server.RequestLog" level="info" additivity="false">
+ <appender-ref ref="AsyncNetworkOut" />
+ </logger>
+
+ <root level="INFO">
+ <appender-ref ref="AsyncDebugOut" />
+ <appender-ref ref="AsyncErrorOut" />
+ </root>
+
+</configuration>
\ No newline at end of file diff --git a/kubernetes/config/docker/init/src/config/log/policy/ep_sdk_app/logback.xml b/kubernetes/policy/resources/config/log/ep_sdk_app/logback.xml index d0871bdb4a..d0871bdb4a 100644 --- a/kubernetes/config/docker/init/src/config/log/policy/ep_sdk_app/logback.xml +++ b/kubernetes/policy/resources/config/log/ep_sdk_app/logback.xml diff --git a/kubernetes/policy/resources/config/log/filebeat/filebeat.yml b/kubernetes/policy/resources/config/log/filebeat/filebeat.yml new file mode 100644 index 0000000000..89c6932577 --- /dev/null +++ b/kubernetes/policy/resources/config/log/filebeat/filebeat.yml @@ -0,0 +1,41 @@ +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}}: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 diff --git a/kubernetes/config/docker/init/src/config/log/policy/pypdpserver/logback.xml b/kubernetes/policy/resources/config/log/pypdpserver/logback.xml index c4b596b6d5..c4b596b6d5 100644 --- a/kubernetes/config/docker/init/src/config/log/policy/pypdpserver/logback.xml +++ b/kubernetes/policy/resources/config/log/pypdpserver/logback.xml diff --git a/kubernetes/config/docker/init/src/config/log/policy/xacml-pap-rest/logback.xml b/kubernetes/policy/resources/config/log/xacml-pap-rest/logback.xml index 77068bb9aa..77068bb9aa 100644 --- a/kubernetes/config/docker/init/src/config/log/policy/xacml-pap-rest/logback.xml +++ b/kubernetes/policy/resources/config/log/xacml-pap-rest/logback.xml diff --git a/kubernetes/config/docker/init/src/config/log/policy/xacml-pdp-rest/logback.xml b/kubernetes/policy/resources/config/log/xacml-pdp-rest/logback.xml index c9c05d922d..c9c05d922d 100644 --- a/kubernetes/config/docker/init/src/config/log/policy/xacml-pdp-rest/logback.xml +++ b/kubernetes/policy/resources/config/log/xacml-pdp-rest/logback.xml diff --git a/kubernetes/config/docker/init/src/config/policy/opt/policy/config/drools/base.conf b/kubernetes/policy/resources/config/opt/policy/config/drools/base.conf index f531c0fa85..e5bbd6637d 100755 --- a/kubernetes/config/docker/init/src/config/policy/opt/policy/config/drools/base.conf +++ b/kubernetes/policy/resources/config/opt/policy/config/drools/base.conf @@ -28,7 +28,7 @@ KEYSTORE_PASSWD=PolicyR0ck$ # 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 @@ -43,14 +43,14 @@ repositoryPassword=admin123 # Relational (SQL) DB access -SQL_HOST=mariadb.onap-policy +SQL_HOST=mariadb.{{.Values.nsPrefix}} SQL_USER=policy_user SQL_PASSWORD=policy_user # PDP-D DMaaP configuration channel PDPD_CONFIGURATION_TOPIC=PDPD-CONFIGURATION -PDPD_CONFIGURATION_SERVERS=dmaap.onap-message-router +PDPD_CONFIGURATION_SERVERS=dmaap.{{.Values.nsPrefix}} PDPD_CONFIGURATION_API_KEY= PDPD_CONFIGURATION_API_SECRET= PDPD_CONFIGURATION_CONSUMER_GROUP= @@ -59,21 +59,42 @@ PDPD_CONFIGURATION_PARTITION_KEY= # PAP -PAP_HOST=pap.onap-policy +PAP_HOST=pap.{{.Values.nsPrefix}} PAP_USERNAME=testpap PAP_PASSWORD=alpha123 # PDP-X -PDP_HOST=pdp.onap-policy +PDP_HOST=pdp.{{.Values.nsPrefix}} 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.{{.Values.nsPrefix}} # Open DMaaP -DMAAP_SERVERS=dmaap.onap-message-router +DMAAP_SERVERS=dmaap.{{.Values.nsPrefix}} + +# AAI + +AAI_URL=https://aai.api.simpledemo.openecomp.org:8443 +AAI_USERNAME=POLICY +AAI_PASSWORD=POLICY + +# MSO + +SO_URL=http://mso.{{.Values.nsPrefix}}:8080/ecomp/mso/infra +SO_USERNAME=InfraPortalClient +SO_PASSWORD=password1$ + +# VFC + +VFC_URL= +VFC_USERNAME= +VFC_PASSWORD= diff --git a/kubernetes/config/docker/init/src/config/policy/opt/policy/config/drools/drools-tweaks.sh b/kubernetes/policy/resources/config/opt/policy/config/drools/drools-tweaks.sh index 8bff59c2e7..8bff59c2e7 100755 --- a/kubernetes/config/docker/init/src/config/policy/opt/policy/config/drools/drools-tweaks.sh +++ b/kubernetes/policy/resources/config/opt/policy/config/drools/drools-tweaks.sh diff --git a/kubernetes/config/docker/init/src/config/policy/opt/policy/config/drools/feature-healthcheck.conf b/kubernetes/policy/resources/config/opt/policy/config/drools/keys/feature-healthcheck.conf index 31baed21e3..31baed21e3 100644 --- a/kubernetes/config/docker/init/src/config/policy/opt/policy/config/drools/feature-healthcheck.conf +++ b/kubernetes/policy/resources/config/opt/policy/config/drools/keys/feature-healthcheck.conf diff --git a/kubernetes/config/docker/init/src/config/policy/opt/policy/config/drools/policy-keystore b/kubernetes/policy/resources/config/opt/policy/config/drools/keys/policy-keystore Binary files differindex ab25c3a341..ab25c3a341 100755..100644 --- a/kubernetes/config/docker/init/src/config/policy/opt/policy/config/drools/policy-keystore +++ b/kubernetes/policy/resources/config/opt/policy/config/drools/keys/policy-keystore diff --git a/kubernetes/config/docker/init/src/config/policy/opt/policy/config/drools/policy-management.conf b/kubernetes/policy/resources/config/opt/policy/config/drools/policy-management.conf index 843b832ea7..843b832ea7 100755 --- a/kubernetes/config/docker/init/src/config/policy/opt/policy/config/drools/policy-management.conf +++ b/kubernetes/policy/resources/config/opt/policy/config/drools/policy-management.conf diff --git a/kubernetes/config/docker/init/src/config/policy/opt/policy/config/pe/base.conf b/kubernetes/policy/resources/config/opt/policy/config/pe/base.conf index 9c87d9ca72..291743157b 100755 --- a/kubernetes/config/docker/init/src/config/policy/opt/policy/config/pe/base.conf +++ b/kubernetes/policy/resources/config/opt/policy/config/pe/base.conf @@ -3,8 +3,8 @@ POLICY_HOME=/opt/app/policy KEYSTORE_PASSWD=PolicyR0ck$ JDBC_DRIVER=org.mariadb.jdbc.Driver -JDBC_URL=jdbc:mariadb://mariadb.onap-policy:3306/onap_sdk?failOverReadOnly=false&autoReconnect=true -JDBC_LOG_URL=jdbc:mariadb://mariadb.onap-policy:3306/log?failOverReadOnly=false&autoReconnect=true +JDBC_URL=jdbc:mariadb://mariadb.{{.Values.nsPrefix}}:3306/onap_sdk?failOverReadOnly=false&autoReconnect=true +JDBC_LOG_URL=jdbc:mariadb://mariadb.{{.Values.nsPrefix}}:3306/log?failOverReadOnly=false&autoReconnect=true JDBC_USER=policy_user JDBC_PASSWORD=policy_user @@ -21,4 +21,4 @@ ENVIRONMENT=TEST #Micro Service Model Properties policy_msOnapName= -policy_msPolicyName=
\ No newline at end of file +policy_msPolicyName= diff --git a/kubernetes/config/docker/init/src/config/policy/opt/policy/config/pe/brmsgw-tweaks.sh b/kubernetes/policy/resources/config/opt/policy/config/pe/brmsgw-tweaks.sh index d318d4d189..daa3596e6e 100755 --- a/kubernetes/config/docker/init/src/config/policy/opt/policy/config/pe/brmsgw-tweaks.sh +++ b/kubernetes/policy/resources/config/opt/policy/config/pe/brmsgw-tweaks.sh @@ -33,6 +33,6 @@ for DEP in ${DEPS_JSON_RUNTIME} ${DEPS_JSON_INSTALL}; do 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 diff --git a/kubernetes/config/docker/init/src/config/policy/opt/policy/config/pe/brmsgw.conf b/kubernetes/policy/resources/config/opt/policy/config/pe/brmsgw.conf index 3cafc32a4c..d874237575 100755 --- a/kubernetes/config/docker/init/src/config/policy/opt/policy/config/pe/brmsgw.conf +++ b/kubernetes/policy/resources/config/opt/policy/config/pe/brmsgw.conf @@ -4,8 +4,8 @@ BRMSGW_JMX_PORT=9989 COMPONENT_X_MX_MB=1024 COMPONENT_X_MS_MB=1024 -REST_PAP_URL=http://pap.onap-policy:9091/pap/ -REST_PDP_ID=http://pdp.onap-policy:8081/pdp/ +REST_PAP_URL=http://pap.{{.Values.nsPrefix}}:9091/pap/ +REST_PDP_ID=http://pdp.{{.Values.nsPrefix}}:8081/pdp/ PDP_HTTP_USER_ID=testpdp PDP_HTTP_PASSWORD=alpha123 @@ -15,24 +15,21 @@ PDP_PAP_PDP_HTTP_PASSWORD=alpha123 M2_HOME=/usr/share/maven snapshotRepositoryID=policy-nexus-snapshots snapshotRepositoryName=Snapshots -snapshotRepositoryURL=http://nexus.onap-policy:8081/nexus/content/repositories/snapshots +snapshotRepositoryURL=http://nexus.{{.Values.nsPrefix}}:8081/nexus/content/repositories/snapshots releaseRepositoryID=policy-nexus-releases releaseRepositoryName=Releases -releaseRepositoryURL=http://nexus.onap-policy:8081/nexus/content/repositories/releases +releaseRepositoryURL=http://nexus.{{.Values.nsPrefix}}:8081/nexus/content/repositories/releases repositoryUsername=admin repositoryPassword=admin123 -UEB_URL=dmaap.onap-message-router +UEB_URL=dmaap.{{.Values.nsPrefix}} UEB_TOPIC=PDPD-CONFIGURATION UEB_API_KEY= UEB_API_SECRET= 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 @@ -43,7 +40,7 @@ ENVIRONMENT=TEST #Notification Properties... type can be either websocket, ueb, or dmaap BRMS_NOTIFICATION_TYPE=websocket -BRMS_UEB_URL=dmaap.onap-message-router +BRMS_UEB_URL=dmaap.{{.Values.nsPrefix}} BRMS_UEB_TOPIC=PDPD-CONFIGURATION BRMS_UEB_DELAY= BRMS_CLIENT_ID=python @@ -52,5 +49,5 @@ BRMS_UEB_API_KEY= BRMS_UEB_API_SECRET= #Dependency.json file version -BRMS_DEPENDENCY_VERSION=1.1.0-SNAPSHOT +BRMS_DEPENDENCY_VERSION=1.2.0 diff --git a/kubernetes/config/docker/init/src/config/policy/opt/policy/config/pe/console.conf b/kubernetes/policy/resources/config/opt/policy/config/pe/console.conf index b0a7888398..3ff708655c 100755 --- a/kubernetes/config/docker/init/src/config/policy/opt/policy/config/pe/console.conf +++ b/kubernetes/policy/resources/config/opt/policy/config/pe/console.conf @@ -33,7 +33,7 @@ REST_ADMIN_REPOSITORY=repository # # Location where all the user workspaces are located. # -REST_ADMIN_WORKSPACE=${{POLICY_HOME}}/servers/console/bin/workspace +REST_ADMIN_WORKSPACE=/opt/app/policy/servers/console/bin/workspace # # These can be set so the Admin Console knows who is logged on. Ideally, you can run the console in a J2EE @@ -77,16 +77,16 @@ REFRESH_RATE=40000 # -REST_PAP_URL=http://pap.onap-policy:9091/pap/ +REST_PAP_URL=http://pap.{{.Values.nsPrefix}}:9091/pap/ # # Config/Action Properties location. # -REST_CONFIG_HOME=${{POLICY_HOME}}/servers/pap/webapps/Config/ -REST_ACTION_HOME=${{POLICY_HOME}}/servers/pap/webapps/Action/ -REST_CONFIG_URL=http://pap.onap-policy:9091/ -REST_CONFIG_WEBAPPS=${{POLICY_HOME}}/servers/pap/webapps/ +REST_CONFIG_HOME=/opt/app/policy/servers/pap/webapps/Config/ +REST_ACTION_HOME=/opt/app/policy/servers/pap/webapps/Action/ +REST_CONFIG_URL=http://pap.{{.Values.nsPrefix}}:9091/ +REST_CONFIG_WEBAPPS=/opt/app/policy/servers/pap/webapps/ # PAP account information CONSOLE_PAP_HTTP_USER_ID=testpap @@ -121,12 +121,12 @@ onap_application_name= #-----------------------ONAP-PORTAL-Properties---------------------- -ONAP_REDIRECT_URL=http://portalapps.onap-portal:8989/ONAPPORTAL/login.htm -ONAP_REST_URL= +ONAP_REDIRECT_URL=http://portalapps.{{.Values.nsPrefix}}:8989/ONAPPORTAL/login.htm +ONAP_REST_URL=http://portalapps.{{.Values.nsPrefix}}:8989/ONAPPORTAL/auxapi ONAP_UEB_URL_LIST= ONAP_PORTAL_INBOX_NAME= ONAP_UEB_APP_KEY= ONAP_UEB_APP_SECRET= ONAP_UEB_APP_MAILBOX_NAME= APP_DISPLAY_NAME=ONAP Policy -ONAP_SHARED_CONTEXT_REST_URL=http://portalapps.onap-portal:8989/ONAPPORTAL/context +ONAP_SHARED_CONTEXT_REST_URL=http://portalapps.{{.Values.nsPrefix}}:8989/ONAPPORTAL/context diff --git a/kubernetes/config/docker/init/src/config/policy/opt/policy/config/pe/elk.conf b/kubernetes/policy/resources/config/opt/policy/config/pe/elk.conf index 938954ce63..938954ce63 100644 --- a/kubernetes/config/docker/init/src/config/policy/opt/policy/config/pe/elk.conf +++ b/kubernetes/policy/resources/config/opt/policy/config/pe/elk.conf diff --git a/kubernetes/config/docker/init/src/config/policy/opt/policy/config/pe/mysql.conf b/kubernetes/policy/resources/config/opt/policy/config/pe/mysql.conf index 28b9e3ca33..28b9e3ca33 100755 --- a/kubernetes/config/docker/init/src/config/policy/opt/policy/config/pe/mysql.conf +++ b/kubernetes/policy/resources/config/opt/policy/config/pe/mysql.conf diff --git a/kubernetes/config/docker/init/src/config/policy/opt/policy/config/pe/pap-tweaks.sh b/kubernetes/policy/resources/config/opt/policy/config/pe/pap-tweaks.sh index 36ac3689b1..36ac3689b1 100755 --- a/kubernetes/config/docker/init/src/config/policy/opt/policy/config/pe/pap-tweaks.sh +++ b/kubernetes/policy/resources/config/opt/policy/config/pe/pap-tweaks.sh diff --git a/kubernetes/config/docker/init/src/config/policy/opt/policy/config/pe/pap.conf b/kubernetes/policy/resources/config/opt/policy/config/pe/pap.conf index 53c52aaceb..3f892c9f5a 100755 --- a/kubernetes/config/docker/init/src/config/policy/opt/policy/config/pe/pap.conf +++ b/kubernetes/policy/resources/config/opt/policy/config/pe/pap.conf @@ -13,8 +13,8 @@ TOMCAT_X_MX_MB=1024 # pap properties -PAP_PDPS=${{POLICY_HOME}}/servers/pap/bin/pdps -PAP_URL=http://pap.onap-policy:9091/pap/ +PAP_PDPS=/opt/app/policy/servers/pap/bin/pdps +PAP_URL=http://pap.{{.Values.nsPrefix}}:9091/pap/ PAP_INITIATE_PDP=true PAP_HEARTBEAT_INTERVAL=10000 @@ -26,7 +26,7 @@ REST_ADMIN_WORKSPACE=workspace # PDP related properties -PAP_PDP_URL=http://pdp.onap-policy:8081/pdp/ +PAP_PDP_URL=http://pdp.{{.Values.nsPrefix}}:8081/pdp/ PAP_PDP_HTTP_USER_ID=testpdp PAP_PDP_HTTP_PASSWORD=alpha123 diff --git a/kubernetes/config/docker/init/src/config/policy/opt/policy/config/pe/paplp.conf b/kubernetes/policy/resources/config/opt/policy/config/pe/paplp.conf index d25f11be3b..22ca8492b2 100755 --- a/kubernetes/config/docker/init/src/config/policy/opt/policy/config/pe/paplp.conf +++ b/kubernetes/policy/resources/config/opt/policy/config/pe/paplp.conf @@ -3,8 +3,8 @@ LOGPARSER_JMX_PORT=9996 LOGPARSER_X_MS_MB=1024 LOGPARSER_X_MX_MB=1024 -SERVER=http://pap.onap-policy:9091/pap/ -LOGPATH=${{POLICY_HOME}}/servers/pap/logs/pap-rest.log +SERVER=http://pap.{{.Values.nsPrefix}}:9091/pap/ +LOGPATH=/opt/app/policy/servers/pap/logs/pap-rest.log PARSERLOGPATH=IntegrityMonitor.log node_type=logparser diff --git a/kubernetes/config/docker/init/src/config/policy/opt/policy/config/pe/pdp-tweaks.sh b/kubernetes/policy/resources/config/opt/policy/config/pe/pdp-tweaks.sh index f68253635a..f68253635a 100755 --- a/kubernetes/config/docker/init/src/config/policy/opt/policy/config/pe/pdp-tweaks.sh +++ b/kubernetes/policy/resources/config/opt/policy/config/pe/pdp-tweaks.sh diff --git a/kubernetes/config/docker/init/src/config/policy/opt/policy/config/pe/pdp.conf b/kubernetes/policy/resources/config/opt/policy/config/pe/pdp.conf index d1dee77a11..c3af2238f0 100755 --- a/kubernetes/config/docker/init/src/config/policy/opt/policy/config/pe/pdp.conf +++ b/kubernetes/policy/resources/config/opt/policy/config/pe/pdp.conf @@ -13,12 +13,12 @@ TOMCAT_X_MX_MB=1024 # pdp properties -UEB_CLUSTER=dmaap.onap-message-router +UEB_CLUSTER=dmaap.{{.Values.nsPrefix}} -REST_PAP_URL=http://pap.onap-policy:9091/pap/ -REST_PDP_ID=http://pdp.onap-policy:8081/pdp/ -REST_PDP_CONFIG=${{POLICY_HOME}}/servers/pdp/bin/config -REST_PDP_WEBAPPS=${{POLICY_HOME}}/servers/pdp/webapps +REST_PAP_URL=http://pap.{{.Values.nsPrefix}}:9091/pap/ +REST_PDP_ID=http://pdp.{{.Values.nsPrefix}}:8081/pdp/ +REST_PDP_CONFIG=/opt/app/policy/servers/pdp/bin/config +REST_PDP_WEBAPPS=/opt/app/policy/servers/pdp/webapps REST_PDP_REGISTER=true REST_PDP_REGISTER_SLEEP=15 REST_PDP_REGISTER_RETRIES=-1 @@ -51,3 +51,6 @@ PDP_DMAAP_AAF_PASSWORD= #Required only, when we use AAF POLICY_AAF_NAMESPACE= POLICY_AAF_RESOURCE= + +# Indeterminate resolution +DECISION_INDETERMINATE_RESPONSE=PERMIT diff --git a/kubernetes/config/docker/init/src/config/policy/opt/policy/config/pe/pdplp.conf b/kubernetes/policy/resources/config/opt/policy/config/pe/pdplp.conf index 8320caa56b..0e58cebbc6 100755 --- a/kubernetes/config/docker/init/src/config/policy/opt/policy/config/pe/pdplp.conf +++ b/kubernetes/policy/resources/config/opt/policy/config/pe/pdplp.conf @@ -3,8 +3,8 @@ LOGPARSER_JMX_PORT=9997 LOGPARSER_X_MS_MB=1024 LOGPARSER_X_MX_MB=1024 -SERVER=http://pdp.onap-policy:8081/pdp/ -LOGPATH=${{POLICY_HOME}}/servers/pdp/logs/pdp-rest.log +SERVER=http://pdp.{{.Values.nsPrefix}}:8081/pdp/ +LOGPATH=/opt/app/policy/servers/pdp/logs/pdp-rest.log PARSERLOGPATH=IntegrityMonitor.log node_type=logparser diff --git a/kubernetes/policy/resources/config/opt/policy/config/pe/push-policies.sh b/kubernetes/policy/resources/config/opt/policy/config/pe/push-policies.sh new file mode 100755 index 0000000000..b9242cee78 --- /dev/null +++ b/kubernetes/policy/resources/config/opt/policy/config/pe/push-policies.sh @@ -0,0 +1,250 @@ +#! /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.{{.Values.nsPrefix}}: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.{{.Values.nsPrefix}}: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.{{.Values.nsPrefix}}: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.{{.Values.nsPrefix}}: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.{{.Values.nsPrefix}}: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.{{.Values.nsPrefix}}: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.{{.Values.nsPrefix}}: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.{{.Values.nsPrefix}}: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.{{.Values.nsPrefix}}: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.{{.Values.nsPrefix}}: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.{{.Values.nsPrefix}}: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.{{.Values.nsPrefix}}: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.{{.Values.nsPrefix}}: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.{{.Values.nsPrefix}}: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.{{.Values.nsPrefix}}: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.{{.Values.nsPrefix}}: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.{{.Values.nsPrefix}}:8081/pdp/api/pushPolicy' diff --git a/kubernetes/policy/scripts/update-vfw-op-policy.sh b/kubernetes/policy/scripts/update-vfw-op-policy.sh new file mode 100755 index 0000000000..39483a0fb7 --- /dev/null +++ b/kubernetes/policy/scripts/update-vfw-op-policy.sh @@ -0,0 +1,93 @@ +#!/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 diff --git a/kubernetes/policy/templates/all-services.yaml b/kubernetes/policy/templates/all-services.yaml index a1c480458d..3971b29b73 100644 --- a/kubernetes/policy/templates/all-services.yaml +++ b/kubernetes/policy/templates/all-services.yaml @@ -3,7 +3,7 @@ apiVersion: v1 kind: Service metadata: name: mariadb - namespace: "{{ .Values.nsPrefix }}-policy" + namespace: "{{ .Values.nsPrefix }}" labels: app: mariadb spec: @@ -22,7 +22,7 @@ metadata: labels: app: nexus name: nexus - namespace: "{{ .Values.nsPrefix }}-policy" + namespace: "{{ .Values.nsPrefix }}" spec: ports: - name: nexus-port @@ -39,12 +39,15 @@ metadata: labels: app: drools name: drools - namespace: "{{ .Values.nsPrefix }}-policy" + namespace: "{{ .Values.nsPrefix }}" spec: ports: - name: "drools-port" port: 6969 nodePort: {{ .Values.nodePortPrefix }}17 + - name: "drools-port2" + port: 9696 + nodePort: {{ .Values.nodePortPrefix }}21 selector: app: drools type: NodePort @@ -55,7 +58,7 @@ apiVersion: v1 kind: Service metadata: name: pap - namespace: "{{ .Values.nsPrefix }}-policy" + namespace: "{{ .Values.nsPrefix }}" labels: app: pap spec: @@ -76,7 +79,7 @@ apiVersion: v1 kind: Service metadata: name: pdp - namespace: "{{ .Values.nsPrefix }}-policy" + namespace: "{{ .Values.nsPrefix }}" labels: app: pdp annotations: @@ -114,7 +117,7 @@ apiVersion: v1 kind: Service metadata: name: brmsgw - namespace: "{{ .Values.nsPrefix }}-policy" + namespace: "{{ .Values.nsPrefix }}" labels: app: brmsgw spec: @@ -125,4 +128,4 @@ spec: selector: app: brmsgw type: NodePort -#{{ end }}
\ No newline at end of file +#{{ end }} diff --git a/kubernetes/policy/templates/dep-brmsgw.yaml b/kubernetes/policy/templates/dep-brmsgw.yaml index 7a1bcdec49..25bf0c678b 100644 --- a/kubernetes/policy/templates/dep-brmsgw.yaml +++ b/kubernetes/policy/templates/dep-brmsgw.yaml @@ -2,10 +2,10 @@ apiVersion: extensions/v1beta1 kind: Deployment metadata: - name: brmsgw - namespace: "{{ .Values.nsPrefix }}-policy" + name: policy-brmsgw + namespace: "{{ .Values.nsPrefix }}" spec: - replicas: 1 + replicas: {{ .Values.brmsgwReplicas }} selector: matchLabels: app: brmsgw @@ -13,20 +13,14 @@ spec: metadata: labels: app: brmsgw - name: brmsgw + name: policy-brmsgw spec: initContainers: - command: - /root/ready.py args: - --container-name - - mariadb - - --container-name - - nexus - - --container-name - pap - - --container-name - - pdp env: - name: NAMESPACE valueFrom: @@ -55,8 +49,9 @@ spec: 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 }} diff --git a/kubernetes/policy/templates/dep-drools.yaml b/kubernetes/policy/templates/dep-drools.yaml index 48ef16e3b2..ef9636ceef 100644 --- a/kubernetes/policy/templates/dep-drools.yaml +++ b/kubernetes/policy/templates/dep-drools.yaml @@ -2,10 +2,10 @@ apiVersion: extensions/v1beta1 kind: Deployment metadata: - name: drools - namespace: "{{ .Values.nsPrefix }}-policy" + name: policy-drools + namespace: "{{ .Values.nsPrefix }}" spec: - replicas: 1 + replicas: {{ .Values.droolsReplicas }} selector: matchLabels: app: drools @@ -13,7 +13,7 @@ spec: metadata: labels: app: drools - name: drools + name: policy-drools spec: initContainers: - command: @@ -23,12 +23,6 @@ spec: - mariadb - --container-name - nexus - - --container-name - - pap - - --container-name - - pdp - - --container-name - - brmsgw env: - name: NAMESPACE valueFrom: @@ -38,6 +32,10 @@ spec: 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 @@ -57,14 +55,29 @@ spec: - mountPath: /etc/localtime name: localtime readOnly: true - - mountPath: /tmp/policy-install/config - name: drools + - mountPath: /tmp/policy-install/config/policy-keystore + name: drools-secret + subPath: policy-keystore + - mountPath: /tmp/policy-install/config/feature-healthcheck.conf + name: drools-secret + subPath: feature-healthcheck.conf + - mountPath: /tmp/policy-install/config/base.conf + name: drools-config + subPath: base.conf + - mountPath: /tmp/policy-install/config/policy-management.conf + name: drools-config + subPath: policy-management.conf + - mountPath: /tmp/policy-install/config/drools-tweaks.sh + name: drools-config + subPath: drools-tweaks.sh - 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: @@ -75,6 +88,7 @@ spec: 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 @@ -84,21 +98,41 @@ spec: 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 - - name: drools - hostPath: - path: /dockerdata-nfs/{{ .Values.nsPrefix }}/policy/opt/policy/config/drools/ + configMap: + name: policy-dep-drools-settings-configmap + - name: drools-config + configMap: + name: policy-dep-drools-configmap + items: + - 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 + - name: drools-secret + 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 imagePullSecrets: - name: "{{ .Values.nsPrefix }}-docker-registry-key" #{{ end }} diff --git a/kubernetes/policy/templates/dep-maria.yaml b/kubernetes/policy/templates/dep-maria.yaml index c0f5060884..9ac17daa88 100644 --- a/kubernetes/policy/templates/dep-maria.yaml +++ b/kubernetes/policy/templates/dep-maria.yaml @@ -2,9 +2,10 @@ apiVersion: extensions/v1beta1 kind: Deployment metadata: - name: mariadb - namespace: "{{ .Values.nsPrefix }}-policy" + name: policy-mariadb + namespace: "{{ .Values.nsPrefix }}" spec: + replicas: {{ .Values.mariadbReplicas }} selector: matchLabels: app: mariadb @@ -12,6 +13,7 @@ spec: metadata: labels: app: mariadb + name: policy-mariadb spec: hostname: mariadb containers: @@ -24,8 +26,6 @@ spec: - mountPath: /etc/localtime name: localtime readOnly: true - - mountPath: /var/lib/mysql - name: policy-mariadb-data readinessProbe: tcpSocket: port: 3306 @@ -35,9 +35,6 @@ spec: - 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 +#{{ end }} diff --git a/kubernetes/policy/templates/dep-nexus.yaml b/kubernetes/policy/templates/dep-nexus.yaml index 4adb05f630..c63e0af685 100644 --- a/kubernetes/policy/templates/dep-nexus.yaml +++ b/kubernetes/policy/templates/dep-nexus.yaml @@ -2,9 +2,10 @@ apiVersion: extensions/v1beta1 kind: Deployment metadata: - name: nexus - namespace: "{{ .Values.nsPrefix }}-policy" + name: policy-nexus + namespace: "{{ .Values.nsPrefix }}" spec: + replicas: {{ .Values.nexusReplicas }} selector: matchLabels: app: nexus @@ -12,7 +13,7 @@ spec: metadata: labels: app: nexus - name: nexus + name: policy-nexus spec: initContainers: - command: diff --git a/kubernetes/policy/templates/dep-pap.yaml b/kubernetes/policy/templates/dep-pap.yaml index 523cfd35ff..389fc6b3eb 100644 --- a/kubernetes/policy/templates/dep-pap.yaml +++ b/kubernetes/policy/templates/dep-pap.yaml @@ -2,9 +2,10 @@ apiVersion: extensions/v1beta1 kind: Deployment metadata: - name: pap - namespace: "{{ .Values.nsPrefix }}-policy" + name: policy-pap + namespace: "{{ .Values.nsPrefix }}" spec: + replicas: {{ .Values.papReplicas }} selector: matchLabels: app: pap @@ -12,15 +13,13 @@ spec: metadata: labels: app: pap - name: pap + name: policy-pap spec: initContainers: - command: - /root/ready.py args: - --container-name - - nexus - - --container-name - mariadb env: - name: NAMESPACE @@ -52,6 +51,9 @@ spec: image: "{{ .Values.image.policyPe }}:{{ .Values.image.policyPeVersion }}" imagePullPolicy: {{ .Values.pullPolicy }} name: pap + env: + - name: PRELOAD_POLICIES + value: "true" ports: - containerPort: 8443 - containerPort: 9091 @@ -70,8 +72,10 @@ spec: 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: @@ -82,6 +86,7 @@ spec: 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 @@ -91,21 +96,22 @@ spec: 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 }} diff --git a/kubernetes/policy/templates/dep-pdp.yaml b/kubernetes/policy/templates/dep-pdp.yaml index 3763b95bb2..6740f1d422 100644 --- a/kubernetes/policy/templates/dep-pdp.yaml +++ b/kubernetes/policy/templates/dep-pdp.yaml @@ -2,10 +2,10 @@ apiVersion: extensions/v1beta1 kind: Deployment metadata: - name: pdp - namespace: "{{ .Values.nsPrefix }}-policy" + name: policy-pdp + namespace: "{{ .Values.nsPrefix }}" spec: - replicas: 1 + replicas: {{ .Values.pdpReplicas }} selector: matchLabels: app: pdp @@ -13,17 +13,13 @@ spec: metadata: labels: app: pdp - name: pdp + name: policy-pdp spec: initContainers: - command: - /root/ready.py args: - --container-name - - mariadb - - --container-name - - nexus - - --container-name - pap env: - name: NAMESPACE @@ -59,6 +55,7 @@ spec: name: policy-logs - mountPath: /tmp/logback.xml name: policy-logback + subPath: logback.xml lifecycle: postStart: exec: @@ -69,6 +66,7 @@ spec: 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 @@ -78,18 +76,19 @@ spec: 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 }} diff --git a/kubernetes/policy/templates/policy-deployment-configmap.yaml b/kubernetes/policy/templates/policy-deployment-configmap.yaml new file mode 100644 index 0000000000..d59ba617fa --- /dev/null +++ b/kubernetes/policy/templates/policy-deployment-configmap.yaml @@ -0,0 +1,27 @@ +#{{ if not .Values.disablePolicyDrools }} +apiVersion: v1 +kind: ConfigMap +metadata: + name: policy-dep-drools-settings-configmap + namespace: {{ .Values.nsPrefix }} +data: +{{ tpl (.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 }} +data: +{{ tpl (.Files.Glob "resources/config/opt/policy/config/pe/*").AsConfig . | indent 2 }} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: policy-dep-drools-configmap + namespace: {{ .Values.nsPrefix }} +data: +{{ tpl (.Files.Glob "resources/config/opt/policy/config/drools/*").AsConfig . | indent 2 }} +#{{ end }} diff --git a/kubernetes/policy/templates/policy-deployment-secret.yaml b/kubernetes/policy/templates/policy-deployment-secret.yaml new file mode 100644 index 0000000000..6fe52ead4e --- /dev/null +++ b/kubernetes/policy/templates/policy-deployment-secret.yaml @@ -0,0 +1,10 @@ +#{{ if not .Values.disablePolicyDrools }} +apiVersion: v1 +kind: Secret +metadata: + name: policy-dep-drools-secret + namespace: {{ .Values.nsPrefix }} +type: Opaque +data: +{{ (.Files.Glob "resources/config/opt/policy/config/drools/keys/*").AsSecrets | indent 2 }} +#{{ end }} diff --git a/kubernetes/policy/templates/policy-log-configmap.yaml b/kubernetes/policy/templates/policy-log-configmap.yaml new file mode 100644 index 0000000000..b1a9e0999c --- /dev/null +++ b/kubernetes/policy/templates/policy-log-configmap.yaml @@ -0,0 +1,45 @@ +#{{ if not .Values.disablePolicyPap }} +apiVersion: v1 +kind: ConfigMap +metadata: + name: policy-pap-log-configmap + namespace: {{ .Values.nsPrefix }} +data: +{{ tpl (.Files.Glob "resources/config/log/xacml-pap-rest/*").AsConfig . | indent 2 }} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: policy-sdk-log-configmap + namespace: {{ .Values.nsPrefix }} +data: +{{ tpl (.Files.Glob "resources/config/log/ep_sdk_app/*").AsConfig . | indent 2 }} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: policy-filebeat-configmap + namespace: {{ .Values.nsPrefix }} +data: +{{ tpl (.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 }} +data: +{{ tpl (.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 }} +data: +{{ tpl (.Files.Glob "resources/config/log/drools/*").AsConfig . | indent 2 }} +#{{ end }} diff --git a/kubernetes/policy/templates/policy-pv-pvc.yaml b/kubernetes/policy/templates/policy-pv-pvc.yaml deleted file mode 100644 index 5dc0c61c43..0000000000 --- a/kubernetes/policy/templates/policy-pv-pvc.yaml +++ /dev/null @@ -1,32 +0,0 @@ -#{{ 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 diff --git a/kubernetes/policy/values.yaml b/kubernetes/policy/values.yaml index ce037d896d..3af4af893e 100644 --- a/kubernetes/policy/values.yaml +++ b/kubernetes/policy/values.yaml @@ -1,9 +1,19 @@ 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 +brmsgwReplicas: 1 +droolsReplicas: 1 +mariadbReplicas: 1 +nexusReplicas: 1 +papReplicas: 1 +pdpReplicas: 1 image: readiness: oomk8s/readiness-check - readinessVersion: 1.0.0 + readinessVersion: 1.1.0 policyPe: nexus3.onap.org:10001/onap/policy/policy-pe policyPeVersion: v1.1.1 policyDrools: nexus3.onap.org:10001/onap/policy/policy-drools @@ -13,4 +23,4 @@ image: policyNexus: nexus3.onap.org:10001/onap/policy/policy-nexus policyNexusVersion: v1.1.1 ubuntu: ubuntu:16.04 - filebeat: docker.elastic.co/beats/filebeat:5.5.0
\ No newline at end of file + filebeat: docker.elastic.co/beats/filebeat:5.5.0 diff --git a/kubernetes/portal/docker/init/ubuntu/Dockerfile b/kubernetes/portal/docker/init/ubuntu/Dockerfile deleted file mode 100644 index 779a7fa921..0000000000 --- a/kubernetes/portal/docker/init/ubuntu/Dockerfile +++ /dev/null @@ -1,11 +0,0 @@ -FROM ubuntu:16.04 - -ENV no_proxy "localhost,127.0.0.1,.cluster.local,$KUBERNETES_SERVICE_HOST" -# Setup Corporate proxy -ENV https_proxy ${HTTPS_PROXY} -ENV http_proxy ${HTTP_PROXY} - -RUN apt-get update -RUN apt-get install -y host dnsutils - -VOLUME /ubuntu-init diff --git a/kubernetes/portal/resources/config/log/filebeat/filebeat.yml b/kubernetes/portal/resources/config/log/filebeat/filebeat.yml new file mode 100644 index 0000000000..89c6932577 --- /dev/null +++ b/kubernetes/portal/resources/config/log/filebeat/filebeat.yml @@ -0,0 +1,41 @@ +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}}: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 diff --git a/kubernetes/config/docker/init/src/config/log/portal/onapportal/logback.xml b/kubernetes/portal/resources/config/log/portal/onapportal/logback.xml index be55dc9cff..be55dc9cff 100644 --- a/kubernetes/config/docker/init/src/config/log/portal/onapportal/logback.xml +++ b/kubernetes/portal/resources/config/log/portal/onapportal/logback.xml diff --git a/kubernetes/config/docker/init/src/config/log/portal/onapportalsdk/logback.xml b/kubernetes/portal/resources/config/log/portal/onapportalsdk/logback.xml index 32a790c6a3..32a790c6a3 100644 --- a/kubernetes/config/docker/init/src/config/log/portal/onapportalsdk/logback.xml +++ b/kubernetes/portal/resources/config/log/portal/onapportalsdk/logback.xml diff --git a/kubernetes/config/docker/init/src/config/portal/mariadb/oom_updates.sql b/kubernetes/portal/resources/config/mariadb/oom_updates.sql index 3c7206c510..781b04626c 100644 --- a/kubernetes/config/docker/init/src/config/portal/mariadb/oom_updates.sql +++ b/kubernetes/portal/resources/config/mariadb/oom_updates.sql @@ -5,3 +5,4 @@ Any updates required by OOM to the portaldb are made here. 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'; diff --git a/kubernetes/config/docker/init/src/config/portal/portal-fe/webapps/etc/ONAPPORTAL/fusion.properties b/kubernetes/portal/resources/config/portal-fe/webapps/etc/ONAPPORTAL/fusion.properties index 876c5c7b9a..876c5c7b9a 100755 --- a/kubernetes/config/docker/init/src/config/portal/portal-fe/webapps/etc/ONAPPORTAL/fusion.properties +++ b/kubernetes/portal/resources/config/portal-fe/webapps/etc/ONAPPORTAL/fusion.properties diff --git a/kubernetes/config/docker/init/src/config/portal/portal-fe/webapps/etc/ONAPPORTAL/openid-connect.properties b/kubernetes/portal/resources/config/portal-fe/webapps/etc/ONAPPORTAL/openid-connect.properties index 2a33551933..2a33551933 100755 --- a/kubernetes/config/docker/init/src/config/portal/portal-fe/webapps/etc/ONAPPORTAL/openid-connect.properties +++ b/kubernetes/portal/resources/config/portal-fe/webapps/etc/ONAPPORTAL/openid-connect.properties diff --git a/kubernetes/config/docker/init/src/config/portal/portal-fe/webapps/etc/ONAPPORTAL/portal.properties b/kubernetes/portal/resources/config/portal-fe/webapps/etc/ONAPPORTAL/portal.properties index 4871b42288..6c89f6007c 100755 --- a/kubernetes/config/docker/init/src/config/portal/portal-fe/webapps/etc/ONAPPORTAL/portal.properties +++ b/kubernetes/portal/resources/config/portal-fe/webapps/etc/ONAPPORTAL/portal.properties @@ -16,7 +16,7 @@ ueb_app_key = 7GkVcrO6sIDb3ngW ueb_app_secret = uCYgKjWKK5IxPGNNZzYSSWo9 ueb_app_mailbox_name = ECOMP-PORTAL-INBOX -ueb_url_list = dmaap.onap-message-router +ueb_url_list = dmaap.{{.Values.nsPrefix}} ecomp_portal_inbox_name = ECOMP-PORTAL-INBOX # Consumer group name for UEB topic. diff --git a/kubernetes/config/docker/init/src/config/portal/portal-fe/webapps/etc/ONAPPORTAL/system.properties b/kubernetes/portal/resources/config/portal-fe/webapps/etc/ONAPPORTAL/system.properties index 9085cee47f..345d222621 100755 --- a/kubernetes/config/docker/init/src/config/portal/portal-fe/webapps/etc/ONAPPORTAL/system.properties +++ b/kubernetes/portal/resources/config/portal-fe/webapps/etc/ONAPPORTAL/system.properties @@ -1,6 +1,6 @@ #mysql db.driver = org.mariadb.jdbc.Driver -db.connectionURL = jdbc:mariadb:failover://portaldb.onap-portal:3306/portal +db.connectionURL = jdbc:mariadb:failover://portaldb.{{.Values.nsPrefix}}:3306/portal db.userName =root db.password =Aa123456 db.hib.dialect = org.hibernate.dialect.MySQLDialect @@ -84,7 +84,7 @@ notification_update_duration = 900 #Microservices Related Properties for Portal microservices.widget.protocol = http -microservices.widget.hostname = portalwidgets.onap-portal +microservices.widget.hostname = portalwidgets.{{.Values.nsPrefix}} microservices.widget.username = widget_user microservices.widget.password = KpuqIB08YHg+btG+pjX+sA== #This property won't be needed after consul is functional on VMs - diff --git a/kubernetes/config/docker/init/src/config/portal/portal-fe/webapps/etc/ONAPPORTALSDK/fusion.properties b/kubernetes/portal/resources/config/portal-fe/webapps/etc/ONAPPORTALSDK/fusion.properties index 8ee0a95f74..8ee0a95f74 100644 --- a/kubernetes/config/docker/init/src/config/portal/portal-fe/webapps/etc/ONAPPORTALSDK/fusion.properties +++ b/kubernetes/portal/resources/config/portal-fe/webapps/etc/ONAPPORTALSDK/fusion.properties diff --git a/kubernetes/config/docker/init/src/config/portal/portal-fe/webapps/etc/ONAPPORTALSDK/portal.properties b/kubernetes/portal/resources/config/portal-fe/webapps/etc/ONAPPORTALSDK/portal.properties index e77a701798..7eeb913f2d 100755 --- a/kubernetes/config/docker/init/src/config/portal/portal-fe/webapps/etc/ONAPPORTALSDK/portal.properties +++ b/kubernetes/portal/resources/config/portal-fe/webapps/etc/ONAPPORTALSDK/portal.properties @@ -30,7 +30,7 @@ ecomp_rest_url = http://portal.api.simpledemo.onap.org:8989/ONAPPORTAL/auxapi ueb_listeners_enable = false # UEB Configuration -ueb_url_list = dmaap.onap-message-router +ueb_url_list = dmaap.{{.Values.nsPrefix}} # ECOMP Portal listens on this UEB topic ecomp_portal_inbox_name = ECOMP-PORTAL-INBOX # Replace these 3 default values with the ones for your specific App, diff --git a/kubernetes/config/docker/init/src/config/portal/portal-fe/webapps/etc/ONAPPORTALSDK/system.properties b/kubernetes/portal/resources/config/portal-fe/webapps/etc/ONAPPORTALSDK/system.properties index d638abcca3..2f53286b56 100755 --- a/kubernetes/config/docker/init/src/config/portal/portal-fe/webapps/etc/ONAPPORTALSDK/system.properties +++ b/kubernetes/portal/resources/config/portal-fe/webapps/etc/ONAPPORTALSDK/system.properties @@ -24,7 +24,7 @@ decryption_key = AGLDdG4D04BKm2IxIWEr8o== ########################################################################## db.driver = org.mariadb.jdbc.Driver -db.connectionURL = jdbc:mariadb://portaldb.onap-portal:3306/ecomp_sdk +db.connectionURL = jdbc:mariadb://portaldb.{{.Values.nsPrefix}}:3306/ecomp_sdk db.userName = root db.password = Aa123456 db.min_pool_size = 5 @@ -61,4 +61,4 @@ instance_uuid=8da691c9-987d-43ed-a358-00ac2f35685d guard_notebook_url= #authenticate user server -authenticate_user_server=http://portalapps.onap-portal:8383/openid-connect-server-webapp/allUsers +authenticate_user_server=http://portalapps.{{.Values.nsPrefix}}:8383/openid-connect-server-webapp/allUsers diff --git a/kubernetes/config/docker/init/src/config/portal/portal-fe/webapps/etc/ONAPWIDGETMS/application.properties b/kubernetes/portal/resources/config/portal-fe/webapps/etc/ONAPWIDGETMS/application.properties index a5e55dc6d8..3450a6d414 100644 --- a/kubernetes/config/docker/init/src/config/portal/portal-fe/webapps/etc/ONAPWIDGETMS/application.properties +++ b/kubernetes/portal/resources/config/portal-fe/webapps/etc/ONAPWIDGETMS/application.properties @@ -6,7 +6,7 @@ spring.http.multipart.max-request-size=128MB microservice.widget.location=/tmp ## App DB Properties -spring.datasource.url=jdbc:mysql://portaldb.onap-portal:3306/portal +spring.datasource.url=jdbc:mysql://portaldb.{{.Values.nsPrefix}}:3306/portal spring.datasource.username=root spring.datasource.password=Aa123456 spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQLDialect diff --git a/kubernetes/portal/resources/scripts/update_hosts.sh b/kubernetes/portal/resources/scripts/update_hosts.sh new file mode 100644 index 0000000000..cd38fafb40 --- /dev/null +++ b/kubernetes/portal/resources/scripts/update_hosts.sh @@ -0,0 +1,17 @@ +#!/bin/sh + +_SRC_HOST=$1 +_DST_HOST=$2 +_IP=`getent hosts ${_SRC_HOST}|cut -d' ' -f1` +if [ -z ${_IP} ]; then + echo "Cannot retreive IP for host mapping ${_SRC_HOST} -> ${_DST_HOST}" + exit 1 +fi +_REGEX=".*[[:blank:]]${_DST_HOST}$" +if grep -c -e "${_REGEX}" /etc/hosts > /dev/null 2>&1 ; then + cp /etc/hosts /tmp/hosts + sed -i "s/${_REGEX}/${_IP} ${_DST_HOST}/g" /tmp/hosts + cp /tmp/hosts /etc/hosts +else + echo "${_IP} ${_DST_HOST}" >> /etc/hosts +fi diff --git a/kubernetes/portal/templates/all-services.yaml b/kubernetes/portal/templates/all-services.yaml index 28ca0303b1..b676e3c6d1 100644 --- a/kubernetes/portal/templates/all-services.yaml +++ b/kubernetes/portal/templates/all-services.yaml @@ -3,7 +3,7 @@ apiVersion: v1 kind: Service metadata: name: portaldb - namespace: "{{ .Values.nsPrefix }}-portal" + namespace: "{{ .Values.nsPrefix }}" labels: app: portaldb spec: @@ -22,7 +22,7 @@ metadata: labels: app: portalapps name: portalapps - namespace: "{{ .Values.nsPrefix }}-portal" + namespace: "{{ .Values.nsPrefix }}" annotations: msb.onap.org/service-info: '[ { @@ -58,9 +58,9 @@ apiVersion: v1 kind: Service metadata: labels: - app: vnc-portal - name: vnc-portal - namespace: "{{ .Values.nsPrefix }}-portal" + app: portal-vnc + name: portal-vnc + namespace: "{{ .Values.nsPrefix }}" spec: ports: - name: tcp-1 @@ -72,7 +72,7 @@ spec: targetPort: 5900 nodePort: {{ .Values.nodePortPrefix }}12 selector: - app: vnc-portal + app: portal-vnc type: NodePort #{{ end }} #{{ if not .Values.disablePortalPortalwidgets }} @@ -81,7 +81,7 @@ apiVersion: v1 kind: Service metadata: name: portalwidgets - namespace: "{{ .Values.nsPrefix }}-portal" + namespace: "{{ .Values.nsPrefix }}" labels: app: portalwidgets spec: @@ -91,4 +91,4 @@ spec: selector: app: portalwidgets clusterIP: None -#{{ end }}
\ No newline at end of file +#{{ end }} diff --git a/kubernetes/portal/templates/portal-apps-configmap.yaml b/kubernetes/portal/templates/portal-apps-configmap.yaml new file mode 100644 index 0000000000..ec3805de32 --- /dev/null +++ b/kubernetes/portal/templates/portal-apps-configmap.yaml @@ -0,0 +1,35 @@ +#{{ if not .Values.disablePortalPortalapps }} +apiVersion: v1 +kind: ConfigMap +metadata: + name: portal-onap-portal-sdk-configmap + namespace: {{ .Values.nsPrefix }} +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 }} +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 }} +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 }} +data: +{{ tpl (.Files.Glob "resources/config/portal-fe/webapps/etc/ONAPWIDGETMS/application.properties").AsConfig . | indent 2 }} +#{{ end }} diff --git a/kubernetes/portal/templates/portal-apps-deployment.yaml b/kubernetes/portal/templates/portal-apps-deployment.yaml index 761441acc3..e00151c714 100755 --- a/kubernetes/portal/templates/portal-apps-deployment.yaml +++ b/kubernetes/portal/templates/portal-apps-deployment.yaml @@ -2,9 +2,10 @@ apiVersion: extensions/v1beta1 kind: Deployment metadata: - name: portalapps - namespace: "{{ .Values.nsPrefix }}-portal" + name: portal-apps + namespace: "{{ .Values.nsPrefix }}" spec: + replicas: {{ .Values.portalAppsReplicas }} selector: matchLabels: app: portalapps @@ -12,7 +13,7 @@ spec: metadata: labels: app: portalapps - name: portalapps + name: portal-apps spec: initContainers: - command: @@ -33,11 +34,19 @@ spec: 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 }} @@ -51,23 +60,32 @@ spec: 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" @@ -89,6 +107,7 @@ spec: 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 @@ -98,48 +117,35 @@ spec: 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 + path: {{ .Values.dataRootDir }}/{{ .Values.nsPrefix }}/portal - name: portal-logs hostPath: - path: /dockerdata-nfs/{{ .Values.nsPrefix }}/portal/logs + path: {{ .Values.dataRootDir }}/{{ .Values.nsPrefix }}/portal/logs imagePullSecrets: - name: "{{ .Values.nsPrefix }}-docker-registry-key" #{{ end }} diff --git a/kubernetes/portal/templates/portal-logs-configmap.yaml b/kubernetes/portal/templates/portal-logs-configmap.yaml new file mode 100644 index 0000000000..60abcb78c8 --- /dev/null +++ b/kubernetes/portal/templates/portal-logs-configmap.yaml @@ -0,0 +1,26 @@ +#{{ if not .Values.disablePortalPortalapps }} +apiVersion: v1 +kind: ConfigMap +metadata: + name: portal-filebeat-configmap + namespace: {{ .Values.nsPrefix }} +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 }} +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 }} +data: +{{ tpl (.Files.Glob "resources/config/log/portal/onapportalsdk/logback.xml").AsConfig . | indent 2 }} +#{{ end }} + diff --git a/kubernetes/portal/templates/portal-mariadb-deployment.yaml b/kubernetes/portal/templates/portal-mariadb-deployment.yaml index fafcad2772..828779eaa9 100755 --- a/kubernetes/portal/templates/portal-mariadb-deployment.yaml +++ b/kubernetes/portal/templates/portal-mariadb-deployment.yaml @@ -2,9 +2,10 @@ apiVersion: extensions/v1beta1 kind: Deployment metadata: - name: portaldb - namespace: "{{ .Values.nsPrefix }}-portal" + name: portal-db + namespace: "{{ .Values.nsPrefix }}" spec: + replicas: {{ .Values.portalDbReplicas }} selector: matchLabels: app: portaldb @@ -12,7 +13,7 @@ spec: metadata: labels: app: portaldb - name: portaldb + name: portal-db spec: containers: - image: {{ .Values.image.portaldb}} @@ -20,7 +21,7 @@ spec: name: "portaldb" env: - name: MYSQL_HOST - value: "portaldb.{{ .Values.nsPrefix }}-portal" + value: "portaldb.{{ .Values.nsPrefix }}" - name: MYSQL_ROOT_PASSWORD value: Aa123456 volumeMounts: diff --git a/kubernetes/portal/templates/portal-pv-pvc.yaml b/kubernetes/portal/templates/portal-pv-pvc.yaml index b4d2baa334..1f554bc34a 100644 --- a/kubernetes/portal/templates/portal-pv-pvc.yaml +++ b/kubernetes/portal/templates/portal-pv-pvc.yaml @@ -2,10 +2,10 @@ apiVersion: v1 kind: PersistentVolume metadata: - name: "{{ .Values.nsPrefix }}-portal-db" - namespace: "{{ .Values.nsPrefix }}-portal" + name: "{{ .Values.nsPrefix }}-portal" + namespace: "{{ .Values.nsPrefix }}" labels: - name: "{{ .Values.nsPrefix }}-portal-db" + name: "{{ .Values.nsPrefix }}-portal" spec: capacity: storage: 2Gi @@ -13,13 +13,13 @@ spec: - ReadWriteMany persistentVolumeReclaimPolicy: Retain hostPath: - path: /dockerdata-nfs/{{ .Values.nsPrefix }}/portal/mariadb/data + path: {{ .Values.dataRootDir }}/{{ .Values.nsPrefix }}/portal/mariadb/data --- kind: PersistentVolumeClaim apiVersion: v1 metadata: name: portal-db - namespace: "{{ .Values.nsPrefix }}-portal" + namespace: "{{ .Values.nsPrefix }}" spec: accessModes: - ReadWriteMany @@ -28,5 +28,5 @@ spec: storage: 2Gi selector: matchLabels: - name: "{{ .Values.nsPrefix }}-portal-db" -#{{ end }}
\ No newline at end of file + name: "{{ .Values.nsPrefix }}-portal" +#{{ end }} diff --git a/kubernetes/portal/templates/portal-vnc-dep.yaml b/kubernetes/portal/templates/portal-vnc-dep.yaml index 536ac37396..0680a8ab24 100644 --- a/kubernetes/portal/templates/portal-vnc-dep.yaml +++ b/kubernetes/portal/templates/portal-vnc-dep.yaml @@ -1,27 +1,36 @@ #{{ if not .Values.disablePortalVncPortal }} kind: ConfigMap metadata: - name: vnc-profiles-ini - namespace: "{{ .Values.nsPrefix }}-portal" + name: portal-vnc-profiles-ini + namespace: "{{ .Values.nsPrefix }}" data: {{ (.Files.Glob "resources/vnc/init_profile/profiles.ini").AsConfig | indent 2 }} --- +apiVersion: v1 +kind: ConfigMap +metadata: + name: portal-vnc-update-hosts + namespace: "{{ .Values.nsPrefix }}" +data: +{{ (.Files.Glob "resources/scripts/update_hosts.sh").AsConfig | indent 2 }} +--- apiVersion: extensions/v1beta1 kind: Deployment metadata: labels: - app: vnc-portal - name: vnc-portal - namespace: "{{ .Values.nsPrefix }}-portal" + app: portal-vnc + name: portal-vnc + namespace: "{{ .Values.nsPrefix }}" spec: + replicas: {{ .Values.vncPortalReplicas }} selector: matchLabels: - app: vnc-portal + app: portal-vnc template: metadata: labels: - app: vnc-portal - name: vnc-portal + app: portal-vnc + name: portal-vnc spec: initContainers: - command: @@ -37,7 +46,7 @@ spec: fieldPath: metadata.namespace image: {{ .Values.image.readiness }} imagePullPolicy: {{ .Values.pullPolicy }} - name: vnc-portal-readiness + name: portal-vnc-readiness - command: - /root/ready.py args: @@ -45,7 +54,7 @@ spec: - pap env: - name: NAMESPACE - value: {{ .Values.nsPrefix }}-policy + value: {{ .Values.nsPrefix }} image: {{ .Values.image.readiness }} imagePullPolicy: {{ .Values.pullPolicy }} name: vnc-pap-readiness @@ -56,7 +65,7 @@ spec: - sdc-fe env: - name: NAMESPACE - value: {{ .Values.nsPrefix }}-sdc + value: {{ .Values.nsPrefix }} image: {{ .Values.image.readiness }} imagePullPolicy: {{ .Values.pullPolicy }} name: vnc-sdc-readiness @@ -67,38 +76,31 @@ spec: - vid-server env: - name: NAMESPACE - value: {{ .Values.nsPrefix }}-vid + value: {{ .Values.nsPrefix }} image: {{ .Values.image.readiness }} imagePullPolicy: {{ .Values.pullPolicy }} name: vnc-vid-readiness - - command: ["/bin/sh","-c"] - args: ["echo `host sdc-be.{{ .Values.nsPrefix }}-sdc | awk ''{print$4}''` sdc.api.be.simpledemo.onap.org >> /ubuntu-init/hosts; echo `host portalapps.{{ .Values.nsPrefix }}-portal | awk ''{print$4}''` portal.api.simpledemo.onap.org >> /ubuntu-init/hosts; echo `host pap.{{ .Values.nsPrefix }}-policy | awk ''{print$4}''` policy.api.simpledemo.onap.org >> /ubuntu-init/hosts; echo `host sdc-fe.{{ .Values.nsPrefix }}-sdc | awk ''{print$4}''` sdc.api.simpledemo.onap.org >> /ubuntu-init/hosts; echo `host vid-server.{{ .Values.nsPrefix }}-vid | awk ''{print$4}''` vid.api.simpledemo.onap.org >> /ubuntu-init/hosts; echo `host sparky-be.{{ .Values.nsPrefix }}-aai | awk ''{print$4}''` aai.api.simpledemo.onap.org >> /ubuntu-init/hosts"] - image: {{ .Values.image.ubuntuInit }} - imagePullPolicy: {{ .Values.pullPolicy }} - name: vnc-init-hosts - volumeMounts: - - name: ubuntu-init - mountPath: /ubuntu-init/ containers: - image: {{ .Values.image.ubuntuDesktop }} imagePullPolicy: {{ .Values.pullPolicy }} 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; cat /ubuntu-init/hosts >> /etc/hosts"] + 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.api.be.simpledemo.onap.org; /tmp/update_hosts.sh portalapps.{{ .Values.nsPrefix }} portal.api.simpledemo.onap.org; /tmp/update_hosts.sh pap.{{ .Values.nsPrefix }} policy.api.simpledemo.onap.org; /tmp/update_hosts.sh sdc-fe.{{ .Values.nsPrefix }} sdc.api.simpledemo.onap.org; /tmp/update_hosts.sh vid-server.{{ .Values.nsPrefix }} vid.api.simpledemo.onap.org; /tmp/update_hosts.sh sparky-be.{{ .Values.nsPrefix }} aai.api.simpledemo.onap.org; /tmp/update_hosts.sh cli.{{ .Values.nsPrefix }} cli.api.simpledemo.onap.org; sleep 10; done) > update_hosts.log 2>&1 &"] env: - name: VNC_PASSWORD value: password - name: vnc-portal + name: portal-vnc volumeMounts: - mountPath: /etc/localtime name: localtime readOnly: true - - mountPath: /ubuntu-init/ - name: ubuntu-init - mountPath: /root/.init_profile/profiles.ini name: vnc-profiles-ini subPath: profiles.ini + - mountPath: /tmp/update_hosts.sh + name: vnc-update-hosts + subPath: update_hosts.sh securityContext: privileged: true securityContext: {} @@ -106,11 +108,13 @@ spec: - name: localtime hostPath: path: /etc/localtime - - name: ubuntu-init - emptyDir: {} - name: vnc-profiles-ini configMap: - name: vnc-profiles-ini + name: portal-vnc-profiles-ini + - name: vnc-update-hosts + configMap: + name: portal-vnc-update-hosts + defaultMode: 0755 imagePullSecrets: - name: "{{ .Values.nsPrefix }}-docker-registry-key" #{{ end }} diff --git a/kubernetes/portal/templates/portal-widgets-deployment.yaml b/kubernetes/portal/templates/portal-widgets-deployment.yaml index 600419399e..d5237caf33 100644 --- a/kubernetes/portal/templates/portal-widgets-deployment.yaml +++ b/kubernetes/portal/templates/portal-widgets-deployment.yaml @@ -2,9 +2,10 @@ apiVersion: extensions/v1beta1 kind: Deployment metadata: - name: portalwidgets - namespace: "{{ .Values.nsPrefix }}-portal" + name: portal-widgets + namespace: "{{ .Values.nsPrefix }}" spec: + replicas: {{ .Values.portalWidgetsReplicas }} selector: matchLabels: app: portalwidgets @@ -12,7 +13,7 @@ spec: metadata: labels: app: portalwidgets - name: portalwidgets + name: portal-widgets spec: initContainers: - command: @@ -31,7 +32,7 @@ spec: name: portalapps-readiness containers: - image: {{ .Values.image.portalwms }} - imagePullPolicy: {{ .Values.pullPolicy }} + imagePullPolicy: {{ .Values.pullPolicy }} name: portalwidgets volumeMounts: - mountPath: /etc/localtime @@ -39,6 +40,7 @@ spec: readOnly: true - mountPath: /application.properties name: portalwidgets-application-properties + subPath: application.properties ports: - containerPort: 8082 readinessProbe: @@ -51,8 +53,8 @@ spec: 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 }} diff --git a/kubernetes/portal/values.yaml b/kubernetes/portal/values.yaml index aaa781995a..abac400ba3 100644 --- a/kubernetes/portal/values.yaml +++ b/kubernetes/portal/values.yaml @@ -1,14 +1,19 @@ nsPrefix: onap pullPolicy: Always nodePortPrefix: 302 +portalAppsReplicas: 1 +portalDbReplicas: 1 +vncPortalReplicas: 1 +portalWidgetsReplicas: 1 +dataRootDir: /dockerdata-nfs image: - readiness: oomk8s/readiness-check:1.0.0 + readiness: oomk8s/readiness-check:1.1.0 portalapps: nexus3.onap.org:10001/onap/portal-apps:v1.3.0 portaldb: nexus3.onap.org:10001/onap/portal-db:v1.3.0 mariadbClient: oomk8s/mariadb-client-init:1.0.0 portalwms: nexus3.onap.org:10001/onap/portal-wms:v1.3.0 - ubuntuInit: oomk8s/ubuntu-init:1.0.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" diff --git a/kubernetes/readiness/dep-health-init.yaml b/kubernetes/readiness/dep-health-init.yaml index d77127b201..34bfbafdea 100644 --- a/kubernetes/readiness/dep-health-init.yaml +++ b/kubernetes/readiness/dep-health-init.yaml @@ -23,7 +23,7 @@ spec: - hbase command: - /root/ready.py - image: oomk8s/readiness-check:1.0.0 + image: oomk8s/readiness-check:1.1.0 imagePullPolicy: Always name: healthy env: diff --git a/kubernetes/readiness/docker/init/ready.py b/kubernetes/readiness/docker/init/ready.py index c5b55eef18..6d2edef81c 100644 --- a/kubernetes/readiness/docker/init/ready.py +++ b/kubernetes/readiness/docker/init/ready.py @@ -1,8 +1,13 @@ #!/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'] @@ -11,12 +16,7 @@ token_path = os.environ['TOKEN'] 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')) @@ -24,25 +24,29 @@ handler.setLevel(logging.INFO) 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 @@ -50,27 +54,49 @@ def is_ready(container_name): 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) diff --git a/kubernetes/robot/demo-k8s.sh b/kubernetes/robot/demo-k8s.sh index 2836fca85d..23fc555dc5 100755 --- a/kubernetes/robot/demo-k8s.sh +++ b/kubernetes/robot/demo-k8s.sh @@ -1,42 +1,49 @@ -#!/bin/bash +#!/bin/bash -x # # Execute tags built to support the hands on demo, # function usage { - echo "Usage: demo.sh <command> [<parameters>]" + echo "Usage: demo.sh namespace <command> [<parameters>]" echo " " - echo " demo.sh init" + echo " demo.sh <namespace> init" echo " - Execute both init_customer + distribute" echo " " - echo " demo.sh init_customer" + echo " demo.sh <namespace> init_customer" echo " - Create demo customer (Demonstration) and services, etc." echo " " - echo " demo.sh distribute [<prefix>]" + echo " demo.sh <namespace> distribute [<prefix>]" echo " - Distribute demo models (demoVFW and demoVLB)" echo " " - echo " demo.sh preload <vnf_name> <module_name>" + echo " demo.sh <namespace> preload <vnf_name> <module_name>" echo " - Preload data for VNF for the <module_name>" echo " " - echo " demo.sh appc <module_name>" + echo " demo.sh <namespace> appc <module_name>" echo " - provide APPC with vFW module mount point for closed loop" echo " " - echo " demo.sh init_robot" + echo " demo.sh <namespace> init_robot" echo " - Initialize robot after all ONAP VMs have started" echo " " - echo " demo.sh instantiateVFW" + echo " demo.sh <namespace> instantiateVFW" echo " - Instantiate vFW module for the a demo customer (DemoCust<uuid>)" echo " " - echo " demo.sh deleteVNF <module_name from instantiateVFW>" + echo " demo.sh <namespace> deleteVNF <module_name from instantiateVFW>" echo " - Delete the module created by instantiateVFW" + echo " " + echo " demo.sh <namespace> heatbridge <stack_name> <service_instance_id> <service>" + echo " - Run heatbridge against the stack for the given service instance and service" } # Set the defaults -if [ $# -eq 0 ];then +if [ $# -le 1 ];then usage exit fi + +NAMESPACE=$1 +shift + ## ## if more than 1 tag is supplied, the must be provided with -i or -e ## @@ -113,6 +120,20 @@ do 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 ;; *) @@ -123,5 +144,5 @@ done ETEHOME=/var/opt/OpenECOMP_ETE VARIABLEFILES="-V /share/config/vm_properties.py -V /share/config/integration_robot_properties.py -V /share/config/integration_preload_parameters.py" -POD=$(kubectl --namespace onap-robot get pods | sed 's/ .*//'| grep robot) -kubectl --namespace onap-robot exec ${POD} -- ${ETEHOME}/runTags.sh ${VARIABLEFILES} ${VARIABLES} -d /share/logs/demo/${TAG} -i ${TAG} --display 89 2> ${TAG}.out +POD=$(kubectl --namespace $NAMESPACE get pods | sed 's/ .*//'| grep robot) +kubectl --namespace $NAMESPACE exec ${POD} -- ${ETEHOME}/runTags.sh ${VARIABLEFILES} ${VARIABLES} -d /share/logs/demo/${TAG} -i ${TAG} --display 89 2> ${TAG}.out diff --git a/kubernetes/robot/ete-k8s.sh b/kubernetes/robot/ete-k8s.sh index 2305a584c3..9810ac236e 100755 --- a/kubernetes/robot/ete-k8s.sh +++ b/kubernetes/robot/ete-k8s.sh @@ -5,19 +5,18 @@ # Please clean up logs when you are done... # Note: Do not run multiple concurrent ete.sh as the --display is not parameterized and tests will collide # -if [ "$1" == "" ];then - echo "Usage: ete.sh [ health | ete | closedloop | instantiate | distribute ]" +if [ "$1" == "" ] || [ "$2" == "" ]; then + echo "Usage: ete.sh [namespace] [ health | ete | closedloop | instantiate | distribute ]" exit fi -export TAGS="-i $1" +export NAMESPACE="$1" +export TAGS="-i $2" export ETEHOME=/var/opt/OpenECOMP_ETE export OUTPUT_FOLDER=ETE_$$ VARIABLEFILES="-V /share/config/vm_properties.py -V /share/config/integration_robot_properties.py -V /share/config/integration_preload_parameters.py" VARIABLES="-v GLOBAL_BUILD_NUMBER:$$" -#docker exec openecompete_container ${ETEHOME}/runTags.sh ${VARIABLEFILES} ${VARIABLES} -d /share/logs/${OUTPUT_FOLDER} ${TAGS} --display 88 - -POD=$(kubectl --namespace onap-robot get pods | sed 's/ .*//'| grep robot) -kubectl --namespace onap-robot exec ${POD} -- ${ETEHOME}/runTags.sh ${VARIABLEFILES} ${VARIABLES} -d /share/logs/${OUTPUT_FOLDER} ${TAGS} --display 88 +POD=$(kubectl --namespace $NAMESPACE get pods | sed 's/ .*//'| grep robot) +kubectl --namespace $NAMESPACE exec ${POD} -- ${ETEHOME}/runTags.sh ${VARIABLEFILES} ${VARIABLES} -d /share/logs/${OUTPUT_FOLDER} ${TAGS} --display 88 diff --git a/kubernetes/robot/templates/all-services.yaml b/kubernetes/robot/templates/all-services.yaml index 196e7b196a..604982b1e4 100644 --- a/kubernetes/robot/templates/all-services.yaml +++ b/kubernetes/robot/templates/all-services.yaml @@ -5,7 +5,7 @@ metadata: labels: app: robot name: robot - namespace: "{{ .Values.nsPrefix }}-robot" + namespace: "{{ .Values.nsPrefix }}" spec: ports: - port: 88 diff --git a/kubernetes/robot/templates/robot-deployment.yaml b/kubernetes/robot/templates/robot-deployment.yaml index 5130955919..a978ff4f41 100644 --- a/kubernetes/robot/templates/robot-deployment.yaml +++ b/kubernetes/robot/templates/robot-deployment.yaml @@ -3,8 +3,9 @@ apiVersion: extensions/v1beta1 kind: Deployment metadata: name: robot - namespace: "{{ .Values.nsPrefix }}-robot" + namespace: "{{ .Values.nsPrefix }}" spec: + replicas: {{ .Values.robotReplicas }} selector: matchLabels: app: robot @@ -60,4 +61,4 @@ spec: path: /dockerdata-nfs/{{ .Values.nsPrefix }}/robot/authorization imagePullSecrets: - name: "{{ .Values.nsPrefix }}-docker-registry-key" -#{{ end }}
\ No newline at end of file +#{{ end }} diff --git a/kubernetes/robot/values.yaml b/kubernetes/robot/values.yaml index 221b572264..6aadd93647 100644 --- a/kubernetes/robot/values.yaml +++ b/kubernetes/robot/values.yaml @@ -1,6 +1,7 @@ nsPrefix: onap pullPolicy: Always nodePortPrefix: 302 +robotReplicas: 1 image: testsuite: nexus3.onap.org:10001/openecomp/testsuite:1.1-STAGING-latest diff --git a/kubernetes/config/docker/init/src/config/sdc/environments/AUTO.json b/kubernetes/sdc/resources/config/environments/AUTO.json index 5d6eaef94e..d35590ec67 100755 --- a/kubernetes/config/docker/init/src/config/sdc/environments/AUTO.json +++ b/kubernetes/sdc/resources/config/environments/AUTO.json @@ -8,34 +8,34 @@ "chef_type": "environment", "default_attributes": { - "CS_VIP": "sdc-cs.onap-sdc", - "BE_VIP": "sdc-be.onap-sdc", - "FE_VIP": "sdc-fe.onap-sdc", - "ES_VIP": "sdc-es.onap-sdc", + "CS_VIP": "sdc-cs.{{.Values.nsPrefix}}", + "BE_VIP": "sdc-be.{{.Values.nsPrefix}}", + "FE_VIP": "sdc-fe.{{.Values.nsPrefix}}", + "ES_VIP": "sdc-es.{{.Values.nsPrefix}}", "interfaces": { "application": "eth0", "private": "eth0" }, "ECompP": { - "ecomp_rest_url": "http://portalapps.onap-portal:8989/ONAPPORTAL/auxapi", - "ueb_url_list": "dmaap.onap-message-router, dmaap.onap-message-router", + "ecomp_rest_url": "http://portalapps.{{.Values.nsPrefix}}:8989/ONAPPORTAL/auxapi", + "ueb_url_list": "dmaap.{{.Values.nsPrefix}}, dmaap.{{.Values.nsPrefix}}", "app_secret": "XftIATw9Jr3VzAcPqt3NnJOu", "app_key": "x9UfO7JsDn8BESVX", "inbox_name": "ECOMP-PORTAL-INBOX", - "ecomp_redirect_url": "http://portalapps.onap-portal:8989/ONAPPORTAL/login.htm", + "ecomp_redirect_url": "http://portalapps.{{.Values.nsPrefix}}:8989/ONAPPORTAL/login.htm", "app_topic_name": "ECOMP-PORTAL-OUTBOX-SDC1", "decryption_key": "AGLDdG4D04BKm2IxIWEr8o==" }, "UEB": { "PublicKey": "iPIxkpAMI8qTcQj8", "SecretKey": "Ehq3WyT4bkif4zwgEbvshGal", - "fqdn": ["dmaap.onap-message-router", "dmaap.onap-message-router"] + "fqdn": ["dmaap.{{.Values.nsPrefix}}", "dmaap.{{.Values.nsPrefix}}"] }, "Nodes": { - "CS": "sdc-cs.onap-sdc", - "BE": "sdc-be.onap-sdc", - "FE": "sdc-fe.onap-sdc", - "ES": "sdc-es.onap-sdc" + "CS": "sdc-cs.{{.Values.nsPrefix}}", + "BE": "sdc-be.{{.Values.nsPrefix}}", + "FE": "sdc-fe.{{.Values.nsPrefix}}", + "ES": "sdc-es.{{.Values.nsPrefix}}" } }, "override_attributes": { diff --git a/kubernetes/config/docker/init/src/config/sdc/environments/Template.json b/kubernetes/sdc/resources/config/environments/Template.json index ddddc78e2b..247e990f31 100755 --- a/kubernetes/config/docker/init/src/config/sdc/environments/Template.json +++ b/kubernetes/sdc/resources/config/environments/Template.json @@ -17,19 +17,19 @@ "private": "eth1" }, "ECompP": { - "ecomp_rest_url": "http://portalapps.onap-portal:8989/ONAPPORTAL/auxapi", - "ueb_url_list": "dmaap.onap-message-router,dmaap.onap-message-router", + "ecomp_rest_url": "http://portalapps.{{.Values.nsPrefix}}:8989/ONAPPORTAL/auxapi", + "ueb_url_list": "dmaap.{{.Values.nsPrefix}},dmaap.{{.Values.nsPrefix}}", "app_secret": "XftIATw9Jr3VzAcPqt3NnJOu", "app_key": "x9UfO7JsDn8BESVX", "inbox_name": "ECOMP-PORTAL-INBOX", - "ecomp_redirect_url": "http://portalapps.onap-portal:8989/ONAPPORTAL/login.htm", + "ecomp_redirect_url": "http://portalapps.{{.Values.nsPrefix}}:8989/ONAPPORTAL/login.htm", "app_topic_name": "ECOMP-PORTAL-OUTBOX-SDC1", "decryption_key": "AGLDdG4D04BKm2IxIWEr8o==" }, "UEB": { "PublicKey": "iPIxkpAMI8qTcQj8", "SecretKey": "Ehq3WyT4bkif4zwgEbvshGal", - "fqdn": ["dmaap.onap-message-router", "dmaap.onap-message-router"] + "fqdn": ["dmaap.{{.Values.nsPrefix}}", "dmaap.{{.Values.nsPrefix}}"] }, "Nodes": { "CS": "yyy", diff --git a/kubernetes/config/docker/init/src/config/log/sdc/be/logback.xml b/kubernetes/sdc/resources/config/log/be/logback.xml index 4d508e3047..4d508e3047 100644 --- a/kubernetes/config/docker/init/src/config/log/sdc/be/logback.xml +++ b/kubernetes/sdc/resources/config/log/be/logback.xml diff --git a/kubernetes/config/docker/init/src/config/log/sdc/fe/logback.xml b/kubernetes/sdc/resources/config/log/fe/logback.xml index a8e9ed7264..a8e9ed7264 100644 --- a/kubernetes/config/docker/init/src/config/log/sdc/fe/logback.xml +++ b/kubernetes/sdc/resources/config/log/fe/logback.xml diff --git a/kubernetes/sdc/resources/config/log/filebeat/filebeat.yml b/kubernetes/sdc/resources/config/log/filebeat/filebeat.yml new file mode 100644 index 0000000000..89c6932577 --- /dev/null +++ b/kubernetes/sdc/resources/config/log/filebeat/filebeat.yml @@ -0,0 +1,41 @@ +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}}: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 diff --git a/kubernetes/config/docker/init/src/config/sdc/sdc-fe/FE_2_setup_configuration.rb b/kubernetes/sdc/resources/config/sdc-fe/FE_2_setup_configuration.rb index 9fc662ee0a..5c233a2207 100755 --- a/kubernetes/config/docker/init/src/config/sdc/sdc-fe/FE_2_setup_configuration.rb +++ b/kubernetes/sdc/resources/config/sdc-fe/FE_2_setup_configuration.rb @@ -7,7 +7,7 @@ template "catalog-fe-config" do mode "0755" variables({ :fe_host_ip => node['HOST_IP'], - :be_host_ip => "sdc-be.onap-sdc", + :be_host_ip => "sdc-be.{{.Values.nsPrefix}}", :catalog_port => node['BE'][:http_port], :ssl_port => node['BE'][:https_port] }) diff --git a/kubernetes/sdc/templates/all-services.yaml b/kubernetes/sdc/templates/all-services.yaml index 4100dc24a4..247ee034a8 100644 --- a/kubernetes/sdc/templates/all-services.yaml +++ b/kubernetes/sdc/templates/all-services.yaml @@ -5,7 +5,7 @@ metadata: labels: app: sdc-es name: sdc-es - namespace: "{{ .Values.nsPrefix }}-sdc" + namespace: "{{ .Values.nsPrefix }}" spec: ports: - name: sdc-es-port-9200 @@ -24,7 +24,7 @@ metadata: labels: app: sdc-cs name: sdc-cs - namespace: "{{ .Values.nsPrefix }}-sdc" + namespace: "{{ .Values.nsPrefix }}" spec: ports: - name: sdc-cs-port-9042 @@ -43,7 +43,7 @@ metadata: labels: app: sdc-kb name: sdc-kb - namespace: "{{ .Values.nsPrefix }}-sdc" + namespace: "{{ .Values.nsPrefix }}" spec: ports: - name: sdc-kb-port-5601 @@ -60,7 +60,7 @@ metadata: labels: app: sdc-be name: sdc-be - namespace: "{{ .Values.nsPrefix }}-sdc" + namespace: "{{ .Values.nsPrefix }}" annotations: msb.onap.org/service-info: '[ { @@ -101,7 +101,7 @@ metadata: labels: app: sdc-fe name: sdc-fe - namespace: "{{ .Values.nsPrefix }}-sdc" + namespace: "{{ .Values.nsPrefix }}" annotations: msb.onap.org/service-info: '[ { diff --git a/kubernetes/sdc/templates/sdc-be.yaml b/kubernetes/sdc/templates/sdc-be.yaml index 41560525e1..d075277d91 100644 --- a/kubernetes/sdc/templates/sdc-be.yaml +++ b/kubernetes/sdc/templates/sdc-be.yaml @@ -5,7 +5,7 @@ metadata: labels: app: sdc-be name: sdc-be - namespace: "{{ .Values.nsPrefix }}-sdc" + namespace: "{{ .Values.nsPrefix }}" spec: selector: matchLabels: @@ -42,7 +42,7 @@ spec: - dmaap env: - name: NAMESPACE - value: {{ .Values.nsPrefix }}-message-router + value: {{ .Values.nsPrefix }} image: {{ .Values.image.readiness }} imagePullPolicy: {{ .Values.pullPolicy }} name: sdc-dmaap-readiness @@ -89,33 +89,35 @@ spec: volumeMounts: - mountPath: /usr/share/filebeat/filebeat.yml name: filebeat-conf + subPath: filebeat.yml - mountPath: /var/log/onap name: sdc-logs-2 - mountPath: /usr/share/filebeat/data name: sdc-data-filebeat volumes: - name: filebeat-conf - hostPath: - path: /dockerdata-nfs/{{ .Values.nsPrefix }}/log/filebeat/logback/filebeat.yml + configMap: + name: sdc-filebeat-configmap - name: sdc-logs-2 emptyDir: {} - name: sdc-data-filebeat emptyDir: {} - name: sdc-logback - hostPath: - path: /dockerdata-nfs/{{ .Values.nsPrefix }}/log/sdc/be/logback.xml + configMap: + name : sdc-log-be-configmap - name: sdc-sdc-es-es hostPath: - path: /dockerdata-nfs/{{ .Values.nsPrefix }}/sdc/sdc-es/ES + path: {{ .Values.dataRootDir }}/{{ .Values.nsPrefix }}/sdc/sdc-es/ES - name: sdc-environments - hostPath: - path: /dockerdata-nfs/{{ .Values.nsPrefix }}/sdc/environments + configMap: + name: sdc-environments-configmap + defaultMode: 0755 - name: sdc-localtime hostPath: path: /etc/localtime - name: sdc-logs hostPath: - path: /dockerdata-nfs/{{ .Values.nsPrefix }}/sdc/logs + path: {{ .Values.dataRootDir }}/{{ .Values.nsPrefix }}/sdc/logs imagePullSecrets: - name: "{{ .Values.nsPrefix }}-docker-registry-key" #{{ end }} diff --git a/kubernetes/sdc/templates/sdc-cs.yaml b/kubernetes/sdc/templates/sdc-cs.yaml index a81d4ae826..bf86de6fe2 100644 --- a/kubernetes/sdc/templates/sdc-cs.yaml +++ b/kubernetes/sdc/templates/sdc-cs.yaml @@ -5,7 +5,7 @@ metadata: labels: app: sdc-cs name: sdc-cs - namespace: "{{ .Values.nsPrefix }}-sdc" + namespace: "{{ .Values.nsPrefix }}" spec: selector: matchLabels: @@ -67,14 +67,15 @@ spec: persistentVolumeClaim: claimName: sdc-cs-db - name: sdc-environments - hostPath: - path: /dockerdata-nfs/{{ .Values.nsPrefix }}/sdc/environments + configMap: + name : sdc-environments-configmap + defaultMode: 0755 - name: sdc-localtime hostPath: path: /etc/localtime - name: sdc-logs hostPath: - path: /dockerdata-nfs/{{ .Values.nsPrefix }}/sdc/logs + path: {{ .Values.dataRootDir }}/{{ .Values.nsPrefix }}/sdc/logs imagePullSecrets: - name: "{{ .Values.nsPrefix }}-docker-registry-key" #{{ end }} diff --git a/kubernetes/sdc/templates/sdc-environments-configmap.yaml b/kubernetes/sdc/templates/sdc-environments-configmap.yaml new file mode 100644 index 0000000000..e1ff5581fd --- /dev/null +++ b/kubernetes/sdc/templates/sdc-environments-configmap.yaml @@ -0,0 +1,9 @@ +#{{ if not .Values.disableSdcSdcBe }} +apiVersion: v1 +kind: ConfigMap +metadata: + name: sdc-environments-configmap + namespace: {{ .Values.nsPrefix }} +data: +{{ tpl (.Files.Glob "resources/config/environments/*").AsConfig . | indent 2 }} +#{{ end }} diff --git a/kubernetes/sdc/templates/sdc-es.yaml b/kubernetes/sdc/templates/sdc-es.yaml index 1d2ba4805b..979c70df5b 100644 --- a/kubernetes/sdc/templates/sdc-es.yaml +++ b/kubernetes/sdc/templates/sdc-es.yaml @@ -5,7 +5,7 @@ metadata: labels: app: sdc-es name: sdc-es - namespace: "{{ .Values.nsPrefix }}-sdc" + namespace: "{{ .Values.nsPrefix }}" spec: selector: matchLabels: @@ -16,6 +16,20 @@ spec: app: sdc-es name: sdc-es spec: + initContainers: + - name: sdc-logs-init + image: {{ .Values.image.ubuntuInit }} + imagePullPolicy: {{ .Values.pullPolicy }} + command: + - /bin/bash + - "-c" + - | + mkdir -p /ubuntu-init/ASDC/ASDC-ES/ + mkdir -p /ubuntu-init/ASDC/ASDC-CS/ + mkdir -p /ubuntu-init/ASDC/ASDC-KB/ + mkdir -p /ubuntu-init/ASDC/ASDC-BE/ + mkdir -p /ubuntu-init/ASDC/ASDC-FE/ + chmod -R 777 /ubuntu-init/ containers: - image: {{ .Values.image.sdcElasticsearch }} imagePullPolicy: {{ .Values.pullPolicy }} @@ -30,6 +44,8 @@ spec: - name: ES_HEAP_SIZE value: "1024M" volumeMounts: + - name: sdc-logs + mountPath: /ubuntu-init/ - mountPath: /root/chef-solo/environments/ name: sdc-environments - mountPath: /etc/localtime @@ -47,14 +63,15 @@ spec: periodSeconds: 10 volumes: - name: sdc-environments - hostPath: - path: /dockerdata-nfs/{{ .Values.nsPrefix }}/sdc/environments + configMap : + name : sdc-environments-configmap + defaultMode: 0755 - name: sdc-localtime hostPath: path: /etc/localtime - name: sdc-logs hostPath: - path: /dockerdata-nfs/{{ .Values.nsPrefix }}/sdc/logs + path: {{ .Values.dataRootDir }}/{{ .Values.nsPrefix }}/sdc/logs imagePullSecrets: - name: "{{ .Values.nsPrefix }}-docker-registry-key" #{{ end }} diff --git a/kubernetes/sdc/templates/sdc-fe-configmap.yaml b/kubernetes/sdc/templates/sdc-fe-configmap.yaml new file mode 100644 index 0000000000..05c0a1645c --- /dev/null +++ b/kubernetes/sdc/templates/sdc-fe-configmap.yaml @@ -0,0 +1,9 @@ +#{{ if not .Values.disableSdcSdcFe }} +apiVersion: v1 +kind: ConfigMap +metadata: + name: sdc-fe-configmap + namespace: {{ .Values.nsPrefix }} +data: +{{ tpl (.Files.Glob "resources/config/sdc-fe/*").AsConfig . | indent 2 }} +#{{ end }} diff --git a/kubernetes/sdc/templates/sdc-fe.yaml b/kubernetes/sdc/templates/sdc-fe.yaml index bc1777f3ab..adcec19ffe 100644 --- a/kubernetes/sdc/templates/sdc-fe.yaml +++ b/kubernetes/sdc/templates/sdc-fe.yaml @@ -5,7 +5,7 @@ metadata: labels: app: sdc-fe name: sdc-fe - namespace: "{{ .Values.nsPrefix }}-sdc" + namespace: "{{ .Values.nsPrefix }}" spec: selector: matchLabels: @@ -62,6 +62,7 @@ spec: name: sdc-logs-2 - mountPath: /root/chef-solo/cookbooks/sdc-catalog-fe/recipes/FE_2_setup_configuration.rb name: sdc-fe-config + subPath: FE_2_setup_configuration.rb - mountPath: /tmp/logback.xml name: sdc-logback lifecycle: @@ -82,36 +83,39 @@ spec: volumeMounts: - mountPath: /usr/share/filebeat/filebeat.yml name: filebeat-conf + subPath: filebeat.yml - mountPath: /var/log/onap name: sdc-logs-2 - mountPath: /usr/share/filebeat/data name: sdc-data-filebeat volumes: - name: filebeat-conf - hostPath: - path: /dockerdata-nfs/{{ .Values.nsPrefix }}/log/filebeat/logback/filebeat.yml + configMap: + name : sdc-filebeat-configmap - name: sdc-logs-2 emptyDir: {} - name: sdc-data-filebeat emptyDir: {} - name: sdc-logback - hostPath: - path: /dockerdata-nfs/{{ .Values.nsPrefix }}/log/sdc/fe/logback.xml + configMap: + name : sdc-log-fe-configmap - name: sdc-sdc-es-es hostPath: - path: /dockerdata-nfs/{{ .Values.nsPrefix }}/sdc/sdc-es/ES + path: {{ .Values.dataRootDir }}/{{ .Values.nsPrefix }}/sdc/sdc-es/ES - name: sdc-environments - hostPath: - path: /dockerdata-nfs/{{ .Values.nsPrefix }}/sdc/environments + configMap: + name: sdc-environments-configmap + defaultMode: 0755 - name: sdc-localtime hostPath: path: /etc/localtime - name: sdc-logs hostPath: - path: /dockerdata-nfs/{{ .Values.nsPrefix }}/sdc/logs + path: {{ .Values.dataRootDir }}/{{ .Values.nsPrefix }}/sdc/logs - name: sdc-fe-config - hostPath: - path: /dockerdata-nfs/{{ .Values.nsPrefix }}/sdc/sdc-fe/FE_2_setup_configuration.rb + configMap: + name: sdc-fe-configmap + defaultMode: 0755 imagePullSecrets: - name: "{{ .Values.nsPrefix }}-docker-registry-key" #{{ end }} diff --git a/kubernetes/sdc/templates/sdc-kb.yaml b/kubernetes/sdc/templates/sdc-kb.yaml index a7334d4d08..90fc6f2a21 100644 --- a/kubernetes/sdc/templates/sdc-kb.yaml +++ b/kubernetes/sdc/templates/sdc-kb.yaml @@ -5,7 +5,7 @@ metadata: labels: app: sdc-kb name: sdc-kb - namespace: "{{ .Values.nsPrefix }}-sdc" + namespace: "{{ .Values.nsPrefix }}" spec: selector: matchLabels: @@ -59,14 +59,15 @@ spec: periodSeconds: 10 volumes: - name: sdc-environments - hostPath: - path: /dockerdata-nfs/{{ .Values.nsPrefix }}/sdc/environments + configMap: + name: sdc-environments-configmap + defaultMode: 0755 - name: sdc-localtime hostPath: path: /etc/localtime - name: sdc-logs hostPath: - path: /dockerdata-nfs/{{ .Values.nsPrefix }}/sdc/logs + path: {{ .Values.dataRootDir }}/{{ .Values.nsPrefix }}/sdc/logs imagePullSecrets: - name: "{{ .Values.nsPrefix }}-docker-registry-key" #{{ end }} diff --git a/kubernetes/sdc/templates/sdc-log-configmap.yaml b/kubernetes/sdc/templates/sdc-log-configmap.yaml new file mode 100644 index 0000000000..f2b5c09d0b --- /dev/null +++ b/kubernetes/sdc/templates/sdc-log-configmap.yaml @@ -0,0 +1,27 @@ +#{{ if not .Values.disableSdcSdcBe }} +apiVersion: v1 +kind: ConfigMap +metadata: + name: sdc-log-be-configmap + namespace: {{ .Values.nsPrefix }} +data: +{{ tpl (.Files.Glob "resources/config/log/be/*").AsConfig . | indent 2 }} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: sdc-filebeat-configmap + namespace: {{ .Values.nsPrefix }} +data: +{{ tpl (.Files.Glob "resources/config/log/filebeat/*").AsConfig . | indent 2 }} +#{{ end }} +--- +#{{ if not .Values.disableSdcSdcFe }} +apiVersion: v1 +kind: ConfigMap +metadata: + name: sdc-log-fe-configmap + namespace: {{ .Values.nsPrefix }} +data: +{{ tpl (.Files.Glob "resources/config/log/fe/*").AsConfig . | indent 2 }} +#{{ end }} diff --git a/kubernetes/sdc/templates/sdc-pv-pvc.yaml b/kubernetes/sdc/templates/sdc-pv-pvc.yaml index c8ce9531c2..8d9becf2d5 100644 --- a/kubernetes/sdc/templates/sdc-pv-pvc.yaml +++ b/kubernetes/sdc/templates/sdc-pv-pvc.yaml @@ -2,10 +2,10 @@ apiVersion: v1 kind: PersistentVolume metadata: - name: "{{ .Values.nsPrefix }}-sdc-cs-db" - namespace: "{{ .Values.nsPrefix }}-sdc" + name: "{{ .Values.nsPrefix }}-sdc" + namespace: "{{ .Values.nsPrefix }}" labels: - name: "{{ .Values.nsPrefix }}-sdc-cs-db" + name: "{{ .Values.nsPrefix }}-sdc" spec: capacity: storage: 2Gi @@ -13,13 +13,13 @@ spec: - ReadWriteMany persistentVolumeReclaimPolicy: Retain hostPath: - path: /dockerdata-nfs/{{ .Values.nsPrefix }}/sdc/sdc-cs/CS + path: {{ .Values.dataRootDir }}/{{ .Values.nsPrefix }}/sdc/sdc-cs/CS --- kind: PersistentVolumeClaim apiVersion: v1 metadata: name: sdc-cs-db - namespace: "{{ .Values.nsPrefix }}-sdc" + namespace: "{{ .Values.nsPrefix }}" spec: accessModes: - ReadWriteMany @@ -28,5 +28,5 @@ spec: storage: 2Gi selector: matchLabels: - name: "{{ .Values.nsPrefix }}-sdc-cs-db" -#{{ end }}
\ No newline at end of file + name: "{{ .Values.nsPrefix }}-sdc" +#{{ end }} diff --git a/kubernetes/sdc/values.yaml b/kubernetes/sdc/values.yaml index 67f2810deb..d42abcccbe 100644 --- a/kubernetes/sdc/values.yaml +++ b/kubernetes/sdc/values.yaml @@ -1,11 +1,13 @@ nsPrefix: onap pullPolicy: Always nodePortPrefix: 302 +dataRootDir: /dockerdata-nfs image: - readiness: oomk8s/readiness-check:1.0.0 + readiness: oomk8s/readiness-check:1.1.0 sdcKibana: nexus3.onap.org:10001/openecomp/sdc-kibana:v1.1.0 sdcFrontend: nexus3.onap.org:10001/openecomp/sdc-frontend:v1.1.0 sdcElasticsearch: nexus3.onap.org:10001/openecomp/sdc-elasticsearch:v1.1.0 sdcCassandra: nexus3.onap.org:10001/openecomp/sdc-cassandra:v1.1.0 sdcBackend: nexus3.onap.org:10001/openecomp/sdc-backend:v1.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 + ubuntuInit: oomk8s/ubuntu-init:1.0.0 diff --git a/kubernetes/config/docker/init/src/config/sdnc/conf/aaiclient.properties b/kubernetes/sdnc/resources/config/conf/aaiclient.properties index 4f66294c42..81f63ecdde 100755 --- a/kubernetes/config/docker/init/src/config/sdnc/conf/aaiclient.properties +++ b/kubernetes/sdnc/resources/config/conf/aaiclient.properties @@ -40,7 +40,7 @@ org.onap.ccsdk.sli.adaptors.aai.application=openECOMP # # Configuration file for A&AI Client # -org.onap.ccsdk.sli.adaptors.aai.uri=https://aai-service.onap-aai:8443 +org.onap.ccsdk.sli.adaptors.aai.uri=https://aai-service.{{.Values.nsPrefix}}:8443 # query @@ -134,8 +134,8 @@ org.onap.ccsdk.sli.adaptors.aai.path.vnf.image.query=/aai/v11/service-design-and # UBB Notify org.onap.ccsdk.sli.adaptors.aai.path.notify=/aai/v11/actions/notify -org.onap.ccsdk.sli.adaptors.aai.notify.selflink.fqdn=https://aai-service.onap-aai:8443/restconf/config/L3SDN-API:services/layer3-service-list/{service-instance-id} -org.onap.ccsdk.sli.adaptors.aai.notify.selflink.avpn=https://aai-service.onap-aai:8543/restconf/config/L3AVPN-EVC-API:services/service-list/{service-instance-id}/service-data/avpn-logicalchannel-information +org.onap.ccsdk.sli.adaptors.aai.notify.selflink.fqdn=https://aai-service.{{.Values.nsPrefix}}:8443/restconf/config/L3SDN-API:services/layer3-service-list/{service-instance-id} +org.onap.ccsdk.sli.adaptors.aai.notify.selflink.avpn=https://aai-service.{{.Values.nsPrefix}}:8543/restconf/config/L3AVPN-EVC-API:services/service-list/{service-instance-id}/service-data/avpn-logicalchannel-information # Service org.onap.ccsdk.sli.adaptors.aai.path.service=/aai/v11/service-design-and-creation/services/service/{service-id} diff --git a/kubernetes/config/docker/init/src/config/sdnc/conf/admportal.json b/kubernetes/sdnc/resources/config/conf/admportal.json index f6f59ae797..ee575c22ac 100755 --- a/kubernetes/config/docker/init/src/config/sdnc/conf/admportal.json +++ b/kubernetes/sdnc/resources/config/conf/admportal.json @@ -39,8 +39,8 @@ "dbPassword": "gamma", "dbName": "sdnctl", "odlProtocol": "http", - "odlHost": "sdnhost.onap-sdnc", - "odlConexusHost": "sdnhost.onap-sdnc", + "odlHost": "sdnhost.{{.Values.nsPrefix}}", + "odlConexusHost": "sdnhost.{{.Values.nsPrefix}}", "odlPort": "8181", "odlConexusPort": "8181", "odlUser": "admin", diff --git a/kubernetes/sdnc/resources/config/dmaap/dhcpalert.properties b/kubernetes/sdnc/resources/config/dmaap/dhcpalert.properties new file mode 100644 index 0000000000..cfc8e130be --- /dev/null +++ b/kubernetes/sdnc/resources/config/dmaap/dhcpalert.properties @@ -0,0 +1,35 @@ +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.{{.Values.nsPrefix}}: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.{{.Values.nsPrefix}}:8443/restconf/operations diff --git a/kubernetes/sdnc/resources/config/log/filebeat/log4j/filebeat.yml b/kubernetes/sdnc/resources/config/log/filebeat/log4j/filebeat.yml new file mode 100644 index 0000000000..2cd63e1d98 --- /dev/null +++ b/kubernetes/sdnc/resources/config/log/filebeat/log4j/filebeat.yml @@ -0,0 +1,49 @@ +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.{{.Values.nsPrefix}}: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 diff --git a/kubernetes/config/docker/init/src/config/log/sdnc/org.ops4j.pax.logging.cfg b/kubernetes/sdnc/resources/config/log/org.ops4j.pax.logging.cfg index 50818a3d18..50818a3d18 100644 --- a/kubernetes/config/docker/init/src/config/log/sdnc/org.ops4j.pax.logging.cfg +++ b/kubernetes/sdnc/resources/config/log/org.ops4j.pax.logging.cfg diff --git a/kubernetes/sdnc/resources/config/ueb/ueb-listener.properties b/kubernetes/sdnc/resources/config/ueb/ueb-listener.properties new file mode 100644 index 0000000000..fb6e26da11 --- /dev/null +++ b/kubernetes/sdnc/resources/config/ueb/ueb-listener.properties @@ -0,0 +1,21 @@ +org.onap.ccsdk.sli.northbound.uebclient.asdc-address=sdc-be.{{.Values.nsPrefix}}: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.{{.Values.nsPrefix}}: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 diff --git a/kubernetes/sdnc/templates/all-services.yaml b/kubernetes/sdnc/templates/all-services.yaml index 9425ef4b80..c309f48fb1 100644 --- a/kubernetes/sdnc/templates/all-services.yaml +++ b/kubernetes/sdnc/templates/all-services.yaml @@ -3,7 +3,7 @@ apiVersion: v1 kind: Service metadata: name: dbhost - namespace: "{{ .Values.nsPrefix }}-sdnc" + namespace: "{{ .Values.nsPrefix }}" labels: app: sdnc-dbhost spec: @@ -19,7 +19,7 @@ apiVersion: v1 kind: Service metadata: name: dbhost-read - namespace: "{{ .Values.nsPrefix }}-sdnc" + namespace: "{{ .Values.nsPrefix }}" labels: app: sdnc-dbhost spec: @@ -33,7 +33,7 @@ apiVersion: v1 kind: Service metadata: name: sdnctldb01 - namespace: "{{ .Values.nsPrefix }}-sdnc" + namespace: "{{ .Values.nsPrefix }}" labels: app: sdnc-dbhost spec: @@ -47,7 +47,7 @@ apiVersion: v1 kind: Service metadata: name: sdnctldb02 - namespace: "{{ .Values.nsPrefix }}-sdnc" + namespace: "{{ .Values.nsPrefix }}" labels: app: sdnc-dbhost spec: @@ -63,7 +63,7 @@ apiVersion: v1 kind: Service metadata: name: sdnc-dgbuilder - namespace: "{{ .Values.nsPrefix }}-sdnc" + namespace: "{{ .Values.nsPrefix }}" labels: app: sdnc-dgbuilder spec: @@ -80,7 +80,7 @@ apiVersion: v1 kind: Service metadata: name: sdnhost - namespace: "{{ .Values.nsPrefix }}-sdnc" + namespace: "{{ .Values.nsPrefix }}" labels: app: sdnc annotations: @@ -117,7 +117,7 @@ kind: Service apiVersion: v1 metadata: name: nfs-provisioner - namespace: "{{ .Values.nsPrefix }}-sdnc" + namespace: "{{ .Values.nsPrefix }}" labels: app: nfs-provisioner spec: @@ -140,7 +140,7 @@ apiVersion: v1 kind: Service metadata: name: sdnc-portal - namespace: "{{ .Values.nsPrefix }}-sdnc" + namespace: "{{ .Values.nsPrefix }}" labels: app: sdnc-portal annotations: @@ -169,7 +169,7 @@ apiVersion: v1 kind: Service metadata: name: sdnhost-cluster - namespace: "{{ .Values.nsPrefix }}-sdnc" + namespace: "{{ .Values.nsPrefix }}" labels: app: sdnc annotations: diff --git a/kubernetes/sdnc/templates/db-statefulset.yaml b/kubernetes/sdnc/templates/db-statefulset.yaml index f2e079d76e..399eb42239 100644 --- a/kubernetes/sdnc/templates/db-statefulset.yaml +++ b/kubernetes/sdnc/templates/db-statefulset.yaml @@ -3,7 +3,7 @@ apiVersion: apps/v1beta1 kind: StatefulSet metadata: name: sdnc-dbhost - namespace: "{{ .Values.nsPrefix }}-sdnc" + namespace: "{{ .Values.nsPrefix }}" spec: serviceName: "dbhost" replicas: {{ .Values.numberOfDbReplicas }} @@ -61,7 +61,7 @@ spec: echo ${BASH_REMATCH} [[ $ordinal -eq 0 ]] && exit 0 # Clone data from previous peer. - ncat --recv-only sdnc-dbhost-$(($ordinal-1)).dbhost.{{ .Values.nsPrefix }}-sdnc 3307 | xbstream -x -C /var/lib/mysql + ncat --recv-only sdnc-dbhost-$(($ordinal-1)).dbhost.{{ .Values.nsPrefix }} 3307 | xbstream -x -C /var/lib/mysql # Prepare the backup. xtrabackup --user=root --password=$MYSQL_ROOT_PASSWORD --prepare --target-dir=/var/lib/mysql ls -l /var/lib/mysql @@ -150,7 +150,7 @@ spec: mv change_master_to.sql.in change_master_to.sql.orig mysql --user=root --password=$MYSQL_ROOT_PASSWORD -h 127.0.0.1 <<EOF $(<change_master_to.sql.orig), - MASTER_HOST="sdnc-dbhost-0.dbhost.{{ .Values.nsPrefix }}-sdnc", + MASTER_HOST="sdnc-dbhost-0.dbhost.{{ .Values.nsPrefix }}", MASTER_USER="root", MASTER_PASSWORD="$MYSQL_ROOT_PASSWORD", MASTER_CONNECT_RETRY=10; @@ -176,10 +176,15 @@ spec: emptyDir: {} - name: config-map configMap: - name: mysql + name: sdnc-mysql - name: localtime hostPath: path: /etc/localtime +#{{ if .Values.disableNfsProvisioner }} + - name: sdnc-data + hostPath: + path: /dockerdata-nfs/{{ .Values.nsPrefix }}/sdnc/data +#{{ else }} volumeClaimTemplates: - metadata: name: sdnc-data @@ -191,3 +196,4 @@ spec: requests: storage: 1Gi #{{ end }} +#{{ end }} diff --git a/kubernetes/sdnc/templates/dgbuilder-deployment.yaml b/kubernetes/sdnc/templates/dgbuilder-deployment.yaml index e0f8b298e9..78e20dab23 100644 --- a/kubernetes/sdnc/templates/dgbuilder-deployment.yaml +++ b/kubernetes/sdnc/templates/dgbuilder-deployment.yaml @@ -3,8 +3,9 @@ apiVersion: extensions/v1beta1 kind: Deployment metadata: name: sdnc-dgbuilder - namespace: "{{ .Values.nsPrefix }}-sdnc" + namespace: "{{ .Values.nsPrefix }}" spec: + replicas: {{ .Values.dgbuilderReplicas }} selector: matchLabels: app: sdnc-dgbuilder diff --git a/kubernetes/sdnc/templates/dmaap-deployment-configmap.yaml b/kubernetes/sdnc/templates/dmaap-deployment-configmap.yaml new file mode 100644 index 0000000000..c27ae72930 --- /dev/null +++ b/kubernetes/sdnc/templates/dmaap-deployment-configmap.yaml @@ -0,0 +1,9 @@ +#{{ if not .Values.disableSdncDmaap }} +apiVersion: v1 +kind: ConfigMap +metadata: + name: sdnc-dmaap-configmap + namespace: {{ .Values.nsPrefix }} +data: +{{ tpl (.Files.Glob "resources/config/dmaap/*").AsConfig . | indent 2 }} +#{{ end }} diff --git a/kubernetes/sdnc/templates/dmaap-deployment.yaml b/kubernetes/sdnc/templates/dmaap-deployment.yaml new file mode 100644 index 0000000000..97dc7738e2 --- /dev/null +++ b/kubernetes/sdnc/templates/dmaap-deployment.yaml @@ -0,0 +1,62 @@ +#{{ if not .Values.disableSdncDmaap }} +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + name: sdnc-dmaap-listener + namespace: "{{ .Values.nsPrefix }}" +spec: + replicas: {{ .Values.dmaapReplicas }} + selector: + matchLabels: + app: dmaap-listener + template: + metadata: + labels: + app: dmaap-listener + name: sdnc-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 }} diff --git a/kubernetes/sdnc/templates/mysql-configmap.yaml b/kubernetes/sdnc/templates/mysql-configmap.yaml index deaa997f02..6b4cdcbf9c 100644 --- a/kubernetes/sdnc/templates/mysql-configmap.yaml +++ b/kubernetes/sdnc/templates/mysql-configmap.yaml @@ -1,8 +1,8 @@ apiVersion: v1 kind: ConfigMap metadata: - name: mysql - namespace: "{{ .Values.nsPrefix }}-sdnc" + name: sdnc-mysql + namespace: "{{ .Values.nsPrefix }}" labels: app: mysql data: diff --git a/kubernetes/sdnc/templates/nfs-provisoner-deployment.yaml b/kubernetes/sdnc/templates/nfs-provisoner-deployment.yaml index 9d3feeff9c..bd161d54a1 100644 --- a/kubernetes/sdnc/templates/nfs-provisoner-deployment.yaml +++ b/kubernetes/sdnc/templates/nfs-provisoner-deployment.yaml @@ -1,17 +1,19 @@ #{{ if not .Values.disableSdncSdncDbhost }} +#{{ if not .Values.disableNfsProvisioner }} kind: Deployment apiVersion: extensions/v1beta1 metadata: - name: nfs-provisioner - namespace: "{{ .Values.nsPrefix }}-sdnc" + name: sdnc-nfs-provisioner + namespace: "{{ .Values.nsPrefix }}" spec: - replicas: 1 + replicas: {{ .Values.nfsReplicas }} strategy: type: Recreate template: metadata: labels: app: nfs-provisioner + name: sdnc-nfs-provisioner spec: containers: - name: nfs-provisioner @@ -51,5 +53,6 @@ spec: volumes: - name: export-volume hostPath: - path: /dockerdata-nfs/{{ .Values.nsPrefix }}/sdnc/data + path: {{ .Values.dataRootDir }}/{{ .Values.nsPrefix }}/sdnc/data +#{{ end }} #{{ end }} diff --git a/kubernetes/sdnc/templates/sdnc-conf-configmap.yaml b/kubernetes/sdnc/templates/sdnc-conf-configmap.yaml new file mode 100644 index 0000000000..d60cae7a3a --- /dev/null +++ b/kubernetes/sdnc/templates/sdnc-conf-configmap.yaml @@ -0,0 +1,9 @@ +#{{ if not .Values.disableSdncSdnc }} +apiVersion: v1 +kind: ConfigMap +metadata: + name: sdnc-conf-configmap + namespace: {{ .Values.nsPrefix }} +data: +{{ tpl (.Files.Glob "resources/config/conf/*").AsConfig . | indent 2 }} +#{{ end }} diff --git a/kubernetes/sdnc/templates/sdnc-data-storageclass.yaml b/kubernetes/sdnc/templates/sdnc-data-storageclass.yaml index 7c46cf4a68..d6d4eae30d 100644 --- a/kubernetes/sdnc/templates/sdnc-data-storageclass.yaml +++ b/kubernetes/sdnc/templates/sdnc-data-storageclass.yaml @@ -1,8 +1,10 @@ #{{ if not .Values.disableSdncSdncDbhost }} +#{{ if not .Values.disableNfsProvisioner }} kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: "{{ .Values.nsPrefix }}-sdnc-data" - namespace: "{{ .Values.nsPrefix }}-sdnc" + namespace: "{{ .Values.nsPrefix }}" provisioner: sdnc/nfs #{{ end }} +#{{ end }} diff --git a/kubernetes/sdnc/templates/sdnc-log-configmap.yaml b/kubernetes/sdnc/templates/sdnc-log-configmap.yaml new file mode 100644 index 0000000000..a7cada8c81 --- /dev/null +++ b/kubernetes/sdnc/templates/sdnc-log-configmap.yaml @@ -0,0 +1,17 @@ +#{{ if not .Values.disableSdncSdnc }} +apiVersion: v1 +kind: ConfigMap +metadata: + name: sdnc-log-configmap + namespace: {{ .Values.nsPrefix }} +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 }} +data: +{{ tpl (.Files.Glob "resources/config/log/*").AsConfig . | indent 2 }} +#{{ end }} diff --git a/kubernetes/sdnc/templates/sdnc-statefulset.yaml b/kubernetes/sdnc/templates/sdnc-statefulset.yaml index 3ba37af197..1f020377bd 100644 --- a/kubernetes/sdnc/templates/sdnc-statefulset.yaml +++ b/kubernetes/sdnc/templates/sdnc-statefulset.yaml @@ -3,7 +3,7 @@ apiVersion: apps/v1beta1 kind: StatefulSet metadata: name: sdnc - namespace: "{{ .Values.nsPrefix }}-sdnc" + namespace: "{{ .Values.nsPrefix }}" spec: serviceName: "sdnhost-cluster" replicas: {{ .Values.numberOfODLReplicas }} @@ -37,8 +37,8 @@ spec: - bash - "-c" - | - sed -i 's/dbhost/sdnc-dbhost-0.dbhost.onap-sdnc.svc.cluster.local/g' /opt/onap/sdnc/data/properties/svclogic.properties - sed -i 's/^\(org.onap.ccsdk.sli.jdbc.hosts=\).*/\1sdnc-dbhost-0.dbhost.onap-sdnc.svc.cluster.local/' /opt/onap/sdnc/data/properties/dblib.properties + sed -i 's/dbhost/sdnc-dbhost-0.dbhost.{{ .Values.nsPrefix }}.svc.cluster.local/g' /opt/onap/sdnc/data/properties/svclogic.properties + sed -i 's/^\(org.onap.ccsdk.sli.jdbc.hosts=\).*/\1sdnc-dbhost-0.dbhost.{{ .Values.nsPrefix }}.svc.cluster.local/' /opt/onap/sdnc/data/properties/dblib.properties /opt/onap/sdnc/bin/startODL.sh env: - name: MYSQL_ROOT_PASSWORD @@ -56,14 +56,17 @@ spec: - 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 @@ -80,6 +83,7 @@ spec: 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 @@ -89,21 +93,25 @@ spec: 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 }} diff --git a/kubernetes/sdnc/templates/ueb-deployment-configmap.yaml b/kubernetes/sdnc/templates/ueb-deployment-configmap.yaml new file mode 100644 index 0000000000..6aeaa9f4c9 --- /dev/null +++ b/kubernetes/sdnc/templates/ueb-deployment-configmap.yaml @@ -0,0 +1,9 @@ +#{{ if not .Values.disableSdncUeb }} +apiVersion: v1 +kind: ConfigMap +metadata: + name: sdnc-ueb-configmap + namespace: {{ .Values.nsPrefix }} +data: +{{ tpl (.Files.Glob "resources/config/ueb/*").AsConfig . | indent 2 }} +#{{ end }} diff --git a/kubernetes/sdnc/templates/ueb-deployment.yaml b/kubernetes/sdnc/templates/ueb-deployment.yaml new file mode 100644 index 0000000000..b869ca9b83 --- /dev/null +++ b/kubernetes/sdnc/templates/ueb-deployment.yaml @@ -0,0 +1,62 @@ +#{{ if not .Values.disableSdncUeb }} +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + name: sdnc-ueb-listener + namespace: "{{ .Values.nsPrefix }}" +spec: + replicas: {{ .Values.uebReplicas }} + selector: + matchLabels: + app: ueb-listener + template: + metadata: + labels: + app: ueb-listener + name: sdnc-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 }} diff --git a/kubernetes/sdnc/templates/web-deployment.yaml b/kubernetes/sdnc/templates/web-deployment.yaml index fcd82a40c0..968ec8d443 100644 --- a/kubernetes/sdnc/templates/web-deployment.yaml +++ b/kubernetes/sdnc/templates/web-deployment.yaml @@ -3,8 +3,9 @@ apiVersion: extensions/v1beta1 kind: Deployment metadata: name: sdnc-portal - namespace: "{{ .Values.nsPrefix }}-sdnc" + namespace: "{{ .Values.nsPrefix }}" spec: + replicas: {{ .Values.portalReplicas }} selector: matchLabels: app: sdnc-portal @@ -50,10 +51,8 @@ spec: - 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 @@ -64,12 +63,9 @@ spec: - 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 }} diff --git a/kubernetes/sdnc/values.yaml b/kubernetes/sdnc/values.yaml index 5272b653b9..b502a7427a 100644 --- a/kubernetes/sdnc/values.yaml +++ b/kubernetes/sdnc/values.yaml @@ -1,21 +1,26 @@ nsPrefix: onap pullPolicy: IfNotPresent nodePortPrefix: 302 +dataRootDir: /dockerdata-nfs image: - readiness: oomk8s/readiness-check:1.0.0 + readiness: oomk8s/readiness-check:1.1.0 mysql: mysql:5.7 xtrabackup: gcr.io/google-samples/xtrabackup:1.0 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 +disableNfsProvisioner: 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 diff --git a/kubernetes/setup/.helmignore b/kubernetes/setup/.helmignore new file mode 100644 index 0000000000..f0c1319444 --- /dev/null +++ b/kubernetes/setup/.helmignore @@ -0,0 +1,21 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*~ +# Various IDEs +.project +.idea/ +*.tmproj diff --git a/kubernetes/setup/Chart.yaml b/kubernetes/setup/Chart.yaml new file mode 100644 index 0000000000..cface1324c --- /dev/null +++ b/kubernetes/setup/Chart.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +description: An ONAP environment setup chart +name: setup +version: 2.0.0 diff --git a/kubernetes/setup/requirements.yaml b/kubernetes/setup/requirements.yaml new file mode 100644 index 0000000000..56029ab047 --- /dev/null +++ b/kubernetes/setup/requirements.yaml @@ -0,0 +1,7 @@ +dependencies: + - name: common + version: ~2.0.0 + # local reference to common chart, as it is + # a part of this chart's package and will not + # be published independently to a repo (at this point) + repository: '@local'
\ No newline at end of file diff --git a/kubernetes/setup/templates/clusterrolebinding.yaml b/kubernetes/setup/templates/clusterrolebinding.yaml new file mode 100644 index 0000000000..b2bdc72549 --- /dev/null +++ b/kubernetes/setup/templates/clusterrolebinding.yaml @@ -0,0 +1,18 @@ +apiVersion: rbac.authorization.k8s.io/v1beta1 +kind: ClusterRoleBinding +metadata: + name: {{ include "common.namespace" . }}-binding + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: cluster-admin +subjects: + - kind: ServiceAccount + name: default + namespace: {{ include "common.namespace" . }}
\ No newline at end of file diff --git a/kubernetes/setup/templates/secrets.yaml b/kubernetes/setup/templates/secrets.yaml new file mode 100644 index 0000000000..573883a4a0 --- /dev/null +++ b/kubernetes/setup/templates/secrets.yaml @@ -0,0 +1,13 @@ +apiVersion: v1 +kind: Secret +metadata: + name: {{ include "common.namespace" . }}-docker-registry-key + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +data: + .dockercfg: {{ .Values.global.repositorySecret | default .Values.repositorySecret }} +type: kubernetes.io/dockercfg
\ No newline at end of file diff --git a/kubernetes/setup/values.yaml b/kubernetes/setup/values.yaml new file mode 100644 index 0000000000..49ec05807c --- /dev/null +++ b/kubernetes/setup/values.yaml @@ -0,0 +1,4 @@ +global: + # image repositories + repository: nexus3.onap.org:10001 + repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ== diff --git a/kubernetes/so/.helmignore b/kubernetes/so/.helmignore new file mode 100644 index 0000000000..f0c1319444 --- /dev/null +++ b/kubernetes/so/.helmignore @@ -0,0 +1,21 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*~ +# Various IDEs +.project +.idea/ +*.tmproj diff --git a/kubernetes/so/Chart.yaml b/kubernetes/so/Chart.yaml new file mode 100644 index 0000000000..62d292de6d --- /dev/null +++ b/kubernetes/so/Chart.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +description: ONAP Service Orchestrator +name: so +version: 2.0.0
\ No newline at end of file diff --git a/kubernetes/so/charts/mariadb/.helmignore b/kubernetes/so/charts/mariadb/.helmignore new file mode 100644 index 0000000000..f0c1319444 --- /dev/null +++ b/kubernetes/so/charts/mariadb/.helmignore @@ -0,0 +1,21 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*~ +# Various IDEs +.project +.idea/ +*.tmproj diff --git a/kubernetes/so/charts/mariadb/Chart.yaml b/kubernetes/so/charts/mariadb/Chart.yaml new file mode 100644 index 0000000000..da9cab3175 --- /dev/null +++ b/kubernetes/so/charts/mariadb/Chart.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +description: MariaDB Service +name: mariadb +version: 2.0.0 diff --git a/kubernetes/so/charts/mariadb/resources/config/mariadb/conf.d/mariadb1.cnf b/kubernetes/so/charts/mariadb/resources/config/mariadb/conf.d/mariadb1.cnf new file mode 100644 index 0000000000..39ed022489 --- /dev/null +++ b/kubernetes/so/charts/mariadb/resources/config/mariadb/conf.d/mariadb1.cnf @@ -0,0 +1,193 @@ +# Example MySQL config file for medium systems. +# +# This is for a system with memory 8G where MySQL plays +# an important part, or systems up to 128M where MySQL is used together with +# other programs (such as a web server) +# +# In this file, you can use all long options that a program supports. +# If you want to know which options a program supports, run the program +# with the "--help" option. + +# The following options will be passed to all MySQL clients +##[client] +##user = root +##port = 3306 +##socket = //opt/app/mysql/mysql.sock + +# Here follows entries for some specific programs + +# The MySQL server +[mysqld] +##performance_schema + +slow_query_log =ON +long_query_time =2 +slow_query_log_file =//var/lib/mysql/slow_query.log + +skip-external-locking +explicit_defaults_for_timestamp = true +skip-symbolic-links +local-infile = 0 +key_buffer_size = 16M +max_allowed_packet = 4M +table_open_cache = 100 +sort_buffer_size = 512K +net_buffer_length = 8K +read_buffer_size = 256K +read_rnd_buffer_size = 512K +myisam_sort_buffer_size = 8M +max_connections = 500 +lower_case_table_names = 1 +thread_stack = 256K +thread_cache_size = 25 +query_cache_size = 8M +query_cache_type = 0 +query_prealloc_size = 512K +query_cache_limit = 1M + +# Password validation +##plugin-load-add=simple_password_check.so +##simple_password_check_other_characters=0 + +# Audit Log settings +plugin-load-add=server_audit.so +server_audit=FORCE_PLUS_PERMANENT +server_audit_file_path=//var/lib/mysql/audit.log +server_audit_file_rotate_size=50M +server_audit_events=CONNECT,QUERY,TABLE +server_audit_logging=on + +# Don't listen on a TCP/IP port at all. This can be a security enhancement, +# if all processes that need to connect to mysqld run on the same host. +# All interaction with mysqld must be made via Unix sockets or named pipes. +# Note that using this option without enabling named pipes on Windows +# (via the "enable-named-pipe" option) will render mysqld useless! +# +#skip-networking + +# Replication Master Server (default) +# binary logging is required for replication +##log-bin=//var/lib/mysql/mysql-bin + +# binary logging format - mixed recommended +binlog_format=row + +# required unique id between 1 and 2^32 - 1 +# defaults to 1 if master-host is not set +# but will not function as a master if omitted + +# Replication Slave (comment out master section to use this) +# +# To configure this host as a replication slave, you can choose between +# two methods : +# +# 1) Use the CHANGE MASTER TO command (fully described in our manual) - +# the syntax is: +# +# CHANGE MASTER TO MASTER_HOST=<host>, MASTER_PORT=<port>, +# MASTER_USER=<user>, MASTER_PASSWORD=<password> ; +# +# where you replace <host>, <user>, <password> by quoted strings and +# <port> by the master's port number (3306 by default). +# +# Example: +# +# CHANGE MASTER TO MASTER_HOST='125.564.12.1', MASTER_PORT=3306, +# MASTER_USER='joe', MASTER_PASSWORD='secret'; +# +# OR +# +# 2) Set the variables below. However, in case you choose this method, then +# start replication for the first time (even unsuccessfully, for example +# if you mistyped the password in master-password and the slave fails to +# connect), the slave will create a master.info file, and any later +# change in this file to the variables' values below will be ignored and +# overridden by the content of the master.info file, unless you shutdown +# the slave server, delete master.info and restart the slaver server. +# For that reason, you may want to leave the lines below untouched +# (commented) and instead use CHANGE MASTER TO (see above) +# +# required unique id between 2 and 2^32 - 1 +# (and different from the master) +# defaults to 2 if master-host is set +# but will not function as a slave if omitted +#server-id = 2 +# +# The replication master for this slave - required +#master-host = <hostname> +# +# The username the slave will use for authentication when connecting +# to the master - required +#master-user = <username> +# +# The password the slave will authenticate with when connecting to +# the master - required +#master-password = <password> +# +# The port the master is listening on. +# optional - defaults to 3306 +#master-port = <port> +# +# binary logging - not required for slaves, but recommended +#log-bin=mysql-bin + +# Uncomment the following if you are using InnoDB tables +##innodb_data_home_dir = //opt/app/mysql/data +##innodb_data_file_path = ibdata1:20M:autoextend:max:32G +##innodb_log_group_home_dir = //opt/app/mysql/iblogs +# You can set .._buffer_pool_size up to 50 - 80 % +# of RAM but beware of setting memory usage too high +#innodb_buffer_pool_size = 6380M +#innodb_additional_mem_pool_size = 2M +# Set .._log_file_size to 25 % of buffer pool size +innodb_log_file_size = 150M +innodb_log_files_in_group = 3 +innodb_log_buffer_size = 8M +#innodb_flush_log_at_trx_commit = 1 +innodb_lock_wait_timeout = 50 +innodb_autoextend_increment = 100 +expire_logs_days = 8 +open_files_limit = 2000 +transaction-isolation=READ-COMMITTED +####### Galera parameters ####### +## Galera Provider configuration +wsrep_provider=/usr/lib/galera/libgalera_smm.so +wsrep_provider_options="gcache.size=2G; gcache.page_size=1G" +## Galera Cluster configuration +wsrep_cluster_name="MSO-automated-tests-cluster" +wsrep_cluster_address="gcomm://" +#wsrep_cluster_address="gcomm://mariadb1,mariadb2,mariadb3" +##wsrep_cluster_address="gcomm://192.169.3.184,192.169.3.185,192.169.3.186" +## Galera Synchronization configuration +wsrep_sst_method=rsync +#wsrep_sst_method=xtrabackup-v2 +#wsrep_sst_auth="sstuser:Mon#2o!6" +## Galera Node configuration +wsrep_node_name="mariadb1" +##wsrep_node_address="192.169.3.184" +wsrep_on=ON +## Status notification +#wsrep_notify_cmd=/opt/app/mysql/bin/wsrep_notify +####### + + +[mysqldump] +quick +max_allowed_packet = 16M + +[mysql] +no-auto-rehash +# Remove the next comment character if you are not familiar with SQL +#safe-updates + +[myisamchk] +key_buffer_size = 20971520 + +##[mysqlhotcopy] +##interactive-timeout +##[mysqld_safe] +##malloc-lib=//opt/app/mysql/local/lib/libjemalloc.so.1 +##log-error=//opt/app/mysql/log/mysqld.log + +general_log_file = /var/log/mysql/mysql.log +general_log = 1 diff --git a/kubernetes/so/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/01-load-default-sql-files.sh b/kubernetes/so/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/01-load-default-sql-files.sh new file mode 100644 index 0000000000..326f27356c --- /dev/null +++ b/kubernetes/so/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/01-load-default-sql-files.sh @@ -0,0 +1,25 @@ +#!/bin/sh +# +# ============LICENSE_START========================================== +# =================================================================== +# Copyright © 2017 AT&T Intellectual Property. All rights reserved. +# =================================================================== +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============LICENSE_END============================================ +# +# ECOMP and OpenECOMP are trademarks +# and service marks of AT&T Intellectual Property. +# +# +cd /docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/demo-vfw +mysql -uroot -p$MYSQL_ROOT_PASSWORD -f < create_mso_db-demo-vfw.sql
\ No newline at end of file diff --git a/kubernetes/so/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/02-load-additional-changes.sh b/kubernetes/so/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/02-load-additional-changes.sh new file mode 100644 index 0000000000..a163801083 --- /dev/null +++ b/kubernetes/so/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/02-load-additional-changes.sh @@ -0,0 +1,27 @@ +#!/bin/sh +# +# ============LICENSE_START========================================== +# =================================================================== +# Copyright © 2017 AT&T Intellectual Property. All rights reserved. +# =================================================================== +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============LICENSE_END============================================ +# +# ECOMP and OpenECOMP are trademarks +# and service marks of AT&T Intellectual Property. +# +# + +# TODO: update this script to work with the new DB schema + +# mysql -uroot -p$MYSQL_ROOT_PASSWORD -e "UPDATE heat_environment SET ENVIRONMENT='parameters:\n vfw_image_name: Ubuntu 14.04 LTS (Trusty Tahr) (PVHVM)\n vfw_flavor_name: 4 GB General Purpose v1\n public_net_id: 00000000-0000-0000-0000-000000000000\n unprotected_private_net_id: zdfw1fwl01_unprotected\n protected_private_net_id: zdfw1fwl01_protected\n ecomp_private_net_id: oam_ecomp\n unprotected_private_net_cidr: 192.168.10.0/24\n protected_private_net_cidr: 192.168.20.0/24\n ecomp_private_net_cidr: 192.168.9.0/24\n vfw_private_ip_0: 192.168.10.100\n vfw_private_ip_1: 192.168.20.100\n vfw_private_ip_2: 192.168.9.100\n vpg_private_ip_0: 192.168.10.200\n vpg_private_ip_1: 192.168.9.200\n vsn_private_ip_0: 192.168.20.250\n vsn_private_ip_1: 192.168.9.250\n vfw_name_0: zdfw1fwl01fwl01\n vpg_name_0: zdfw1fwl01pgn01\n vsn_name_0: zdfw1fwl01snk01\n vnf_id: vFirewall_demo_app\n vf_module_id: vFirewall\n webserver_ip: 162.242.237.182\n dcae_collector_ip: 192.168.9.1\n key_name: vfw_key\n pub_key: INSERT YOUR PUBLIC KEY HERE' where id=5;" mso_catalog diff --git a/kubernetes/so/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/automated-tests/create_mso_db-tests.sql b/kubernetes/so/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/automated-tests/create_mso_db-tests.sql new file mode 100644 index 0000000000..146ad01605 --- /dev/null +++ b/kubernetes/so/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/automated-tests/create_mso_db-tests.sql @@ -0,0 +1,49 @@ +SOURCE ../default/create_mso_db-default.sql + +USE `mso_requests`; +DROP USER 'mso'; +CREATE USER 'mso'; +GRANT ALL on mso_requests.* to 'mso' identified by 'mso123' with GRANT OPTION; +FLUSH PRIVILEGES; + +USE `mso_catalog`; +DROP USER 'catalog'; +CREATE USER 'catalog'; +GRANT ALL on mso_catalog.* to 'catalog' identified by 'catalog123' with GRANT OPTION; +FLUSH PRIVILEGES; + +LOCK TABLES `NETWORK_RESOURCE` WRITE; +/*!40000 ALTER TABLE `NETWORK_RESOURCE` DISABLE KEYS */; +/*!40000 ALTER TABLE `NETWORK_RESOURCE` ENABLE KEYS */; +insert into NETWORK_RESOURCE (id, NETWORK_TYPE, VERSION_STR, ORCHESTRATION_MODE ,DESCRIPTION, TEMPLATE_ID, NEUTRON_NETWORK_TYPE, AIC_VERSION_MIN) values +(1, "vlan",'1',"NEUTRON","Cool network",1,"BASIC","0"); +UNLOCK TABLES; + +LOCK TABLES `NETWORK_RECIPE` WRITE; +/*!40000 ALTER TABLE `NETWORK_RECIPE` DISABLE KEYS */; +INSERT INTO `NETWORK_RECIPE`(`NETWORK_TYPE`, `ACTION`, `VERSION_STR`, `DESCRIPTION`, `ORCHESTRATION_URI`, `NETWORK_PARAM_XSD`, `RECIPE_TIMEOUT`, `SERVICE_TYPE`) VALUES +('vlan','CREATE','1',NULL,'/active-bpel/services/REST/CreateNetwork',NULL,180,NULL), +('vlan','DELETE','1',NULL,'/active-bpel/services/REST/DeleteNetwork',NULL,180,NULL); +/*!40000 ALTER TABLE `NETWORK_RECIPE` ENABLE KEYS */; +UNLOCK TABLES; + +LOCK TABLES `VNF_RECIPE` WRITE; +INSERT INTO `VNF_RECIPE`(`ID`, `VNF_TYPE`, `ACTION`, `VERSION_STR`, `DESCRIPTION`, `ORCHESTRATION_URI`, `VNF_PARAM_XSD`, `RECIPE_TIMEOUT`, `SERVICE_TYPE`) VALUES +(100,'VPE','CREATE','1','','/active-bpel/services/REST/CreateGenericVNF','',180,'SDN-ETHERNET-INTERNET'), +(101,'VPE','DELETE','1','','/active-bpel/services/REST/DeleteGenericVNF','',180,'SDN-ETHERNET-INTERNET'); +UNLOCK TABLES; + +LOCK TABLES `VF_MODULE` WRITE; +INSERT INTO `VF_MODULE`(`ID`, `TYPE`, `ASDC_SERVICE_MODEL_VERSION`, `MODEL_NAME`, `MODEL_VERSION`, `IS_BASE`, `VNF_RESOURCE_ID`) VALUES +(100,'dns-servicetest/DNSResource-1::VF_DNS::module-1','1.0','VF_DNS::module-1','1.0','1','7'), +(101,'dns-servicetest/DNSResource-1::Mog111..mog_psm..module-1','1.0','Mog111..mog_psm..module-1','1.0','1','7'); +UNLOCK TABLES; + +LOCK TABLES `VNF_RESOURCE` WRITE; +INSERT INTO `VNF_RESOURCE`(`ID`, `VNF_TYPE`, `ASDC_SERVICE_MODEL_VERSION`, `ORCHESTRATION_MODE`, `MODEL_VERSION`) VALUES +(100,'dns-servicetest/DNSResource-1','1.0','VF_DNS::module-1','1.0'); +UNLOCK TABLES; + +DELETE FROM HEAT_TEMPLATE_PARAMS; +DELETE FROM HEAT_TEMPLATE; +DELETE FROM HEAT_ENVIRONMENT; diff --git a/kubernetes/so/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/default/create_mso_db-default.sql b/kubernetes/so/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/default/create_mso_db-default.sql new file mode 100644 index 0000000000..7d2eed16bd --- /dev/null +++ b/kubernetes/so/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/default/create_mso_db-default.sql @@ -0,0 +1,139 @@ +SOURCE ../../camunda/mariadb_engine_7.7.3-ee.sql + +-- +-- Create an admin user automatically for the cockpit +-- +SOURCE ../../camunda/mysql_create_camunda_admin.sql + +-- +-- Current Database: `mso_requests` +-- + +DROP DATABASE IF EXISTS `mso_requests`; + +CREATE DATABASE /*!32312 IF NOT EXISTS*/ `mso_requests` /*!40100 DEFAULT CHARACTER SET latin1 */; + +USE `mso_requests`; + +SOURCE ../../main-schemas/MySQL-Requests-schema.sql + +-- +-- Current Database: `mso_catalog` +-- + +DROP DATABASE IF EXISTS `mso_catalog`; + +CREATE DATABASE /*!32312 IF NOT EXISTS*/ `mso_catalog` /*!40100 DEFAULT CHARACTER SET latin1 */; + +USE `mso_catalog`; + +SOURCE ../../main-schemas/MySQL-Catalog-schema.sql + +SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0; + +INSERT INTO `heat_template` (`ARTIFACT_UUID`, `NAME`, `VERSION`, `DESCRIPTION`, `BODY`, `TIMEOUT_MINUTES`, `ARTIFACT_CHECKSUM`, `CREATION_TIMESTAMP`) VALUES ('4885c198-a9fe-11e7-8b4b-0242ac120002','Contrail30-l2nodhcp','1',NULL,'heat_template_version: 2015-04-30\n\ndescription:\n HOT template that creates a Contrail Virtual Network with L2NODHCP\n\nparameters:\n network_name:\n type: string\n description: Name of direct network (e.g. core, dmz)\n default: ECOMPNetwork\n shared:\n type: boolean\n description: Shared amongst tenants\n default: False\n external:\n type: boolean\n description: router_external for the VirtualNetwork\n default: False\n route_targets:\n type: comma_delimited_list\n description: Network route-targets (RT)\n default: \"\"\n subnet_list:\n type: json\n description: Network subnets\n default: []\n policy_refs:\n type: comma_delimited_list\n description: Policies referenced by Network\n default: \"\"\n policy_refsdata:\n type: json\n description: Policies referenced by Network\n default: []\n route_table_refs:\n type: comma_delimited_list\n description: Route Tables referenced by Network\n default: \"\"\n virtual_network_properties_allow_transit:\n type: boolean\n description: allow_transit for the VirtualNetwork\n default: True\n virtual_network_properties_forwarding_mode:\n type: string\n description: forwarding_mode for the VirtualNetwork\n default: l2\n virtual_network_properties_rpf:\n type: string\n description: rpf for the VirtualNetwork\n default: disable\n flood_unknown_unicast:\n type: boolean\n description: flood_unknown_unicast for the VirtualNetwork\n default: True\n\noutputs:\n network_id:\n description: Openstack network identifier\n value: { get_resource: network }\n network_fqdn:\n description: Openstack network identifier\n value: {list_join: [\':\', { get_attr: [network, fq_name] } ] }\n\nresources:\n networkIpam:\n type: OS::ContrailV2::NetworkIpam\n properties:\n name: { get_param: network_name }\n\n network:\n type: OS::ContrailV2::VirtualNetwork\n properties:\n name: { get_param: network_name }\n is_shared: {get_param: shared}\n router_external: { get_param: external }\n route_target_list:\n {\n route_target_list_route_target: { get_param: route_targets }\n }\n network_ipam_refs: [{ get_resource: networkIpam }]\n network_ipam_refs_data:\n [\n {\n network_ipam_refs_data_ipam_subnets: { get_param: subnet_list }\n }\n ]\n network_policy_refs: { get_param: policy_refs }\n network_policy_refs_data: { get_param: policy_refsdata }\n route_table_refs: { get_param: route_table_refs }\n flood_unknown_unicast: { get_param: flood_unknown_unicast } \n virtual_network_properties:\n {\n virtual_network_properties_allow_transit: { get_param: virtual_network_properties_allow_transit },\n virtual_network_properties_forwarding_mode: { get_param: virtual_network_properties_forwarding_mode },\n virtual_network_properties_rpf: { get_param: virtual_network_properties_rpf },\n }\n',10,'MANUAL RECORD','2017-10-05 18:52:03'); + +INSERT INTO `heat_template` (`ARTIFACT_UUID`, `NAME`, `VERSION`, `DESCRIPTION`, `BODY`, `TIMEOUT_MINUTES`, `ARTIFACT_CHECKSUM`, `CREATION_TIMESTAMP`) VALUES ('4885c7a1-a9fe-11e7-8b4b-0242ac120002','Contrail30-gndirect','1',NULL,'heat_template_version: 2015-04-30\n\ndescription:\n HOT template that creates a Contrail Virtual Network for GNDIRECT\n\nparameters:\n network_name:\n type: string\n description: Name of direct network (e.g. core, dmz)\n default: ECOMPNetwork\n shared:\n type: boolean\n description: Shared amongst tenants\n default: False\n external:\n type: boolean\n description: router_external for the VirtualNetwork\n default: False\n route_targets:\n type: comma_delimited_list\n description: Network route-targets (RT)\n default: \"\"\n subnet_list:\n type: json\n description: Network subnets\n default: []\n policy_refs:\n type: comma_delimited_list\n description: Policies referenced by Network\n default: \"\"\n policy_refsdata:\n type: json\n description: Policies referenced by Network\n default: []\n route_table_refs:\n type: comma_delimited_list\n description: Route Tables referenced by Network\n default: \"\"\n virtual_network_properties_rpf:\n type: string\n description: rpf for the VirtualNetwork\n default: disable\n\noutputs:\n network_id:\n description: Openstack network identifier\n value: { get_resource: network }\n network_fqdn:\n description: Openstack network identifier\n value: {list_join: [\':\', { get_attr: [network, fq_name] } ] }\n\nresources:\n networkIpam:\n type: OS::ContrailV2::NetworkIpam\n properties:\n name: { get_param: network_name }\n\n network:\n type: OS::ContrailV2::VirtualNetwork\n properties:\n name: { get_param: network_name }\n is_shared: {get_param: shared}\n router_external: { get_param: external }\n route_target_list:\n {\n route_target_list_route_target: { get_param: route_targets }\n }\n network_ipam_refs: [{ get_resource: networkIpam }]\n network_ipam_refs_data:\n [\n {\n network_ipam_refs_data_ipam_subnets: { get_param: subnet_list }\n }\n ]\n network_policy_refs: { get_param: policy_refs }\n network_policy_refs_data: { get_param: policy_refsdata }\n route_table_refs: { get_param: route_table_refs }\n virtual_network_properties:\n {\n virtual_network_properties_rpf: { get_param: virtual_network_properties_rpf }\n }\n',10,'MANUAL RECORD','2017-10-05 18:52:03'); + +INSERT INTO `heat_template` (`ARTIFACT_UUID`,`NAME`,`VERSION`,`BODY`,`TIMEOUT_MINUTES`,`DESCRIPTION`,`CREATION_TIMESTAMP`,`ARTIFACT_CHECKSUM`) VALUES ('efee1d84-b8ec-11e7-abc4-cec278b6b50a','Generic NeutronNet','1','heat_template_version: 2013-05-23\n\ndescription:\n HOT template that creates a Generic Neutron Network\n\nparameters:\n network_name:\n type: string\n description: Name of direct network (e.g. core, dmz)\n default: ECOMPNetwork\n network_subnet_name:\n type: string\n description: Name of subnet network (e.g. core, dmz)\n default: ECOMPNetwork\n network_subnet_cidr:\n type: string\n description: CIDR of subnet network (e.g. core, dmz)\n default: 10.0.0.0/16\n\noutputs:\n network_id:\n description: Openstack network identifier\n value: { get_resource: network }\n network_fqdn:\n description: Openstack network identifier\n value: {list_join: [\':\', { get_attr: [network, fq_name] } ] }\n\nresources:\n network:\n type: OS::Neutron::Net\n properties:\n name: {get_param: network_name }\n\n subnet:\n type: OS::Neutron::Subnet\n properties:\n name: { get_param: network_subnet_name }\n network_id: { get_resource: network }\n cidr: { get_param: network_subnet_cidr }\n enable_dhcp: false\n',10,'Generic Neutron Template','2017-10-26 14:44:00', 'MANUAL RECORD'); + +INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('4885c198-a9fe-11e7-8b4b-0242ac120002','external','\0','string',NULL); +INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('4885c198-a9fe-11e7-8b4b-0242ac120002','flood_unknown_unicast','\0','string',NULL); +INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('4885c198-a9fe-11e7-8b4b-0242ac120002','network_name','','string',NULL); +INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('4885c198-a9fe-11e7-8b4b-0242ac120002','policy_refs','\0','string',NULL); +INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('4885c198-a9fe-11e7-8b4b-0242ac120002','policy_refsdata','\0','string',NULL); +INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('4885c198-a9fe-11e7-8b4b-0242ac120002','route_table_refs','\0','string',NULL); +INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('4885c198-a9fe-11e7-8b4b-0242ac120002','route_targets','\0','string',NULL); +INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('4885c198-a9fe-11e7-8b4b-0242ac120002','shared','\0','string',NULL); +INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('4885c198-a9fe-11e7-8b4b-0242ac120002','virtual_network_properties_allow_transit','\0','string',NULL); +INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('4885c198-a9fe-11e7-8b4b-0242ac120002','virtual_network_properties_forwarding_mode','\0','string',NULL); +INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('4885c198-a9fe-11e7-8b4b-0242ac120002','virtual_network_properties_rpf','\0','string',NULL); +INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('4885c7a1-a9fe-11e7-8b4b-0242ac120002','external','\0','string',NULL); +INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('4885c7a1-a9fe-11e7-8b4b-0242ac120002','network_name','','string',NULL); +INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('4885c7a1-a9fe-11e7-8b4b-0242ac120002','policy_refs','\0','string',NULL); +INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('4885c7a1-a9fe-11e7-8b4b-0242ac120002','policy_refsdata','\0','string',NULL); +INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('4885c7a1-a9fe-11e7-8b4b-0242ac120002','route_table_refs','\0','string',NULL); +INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('4885c7a1-a9fe-11e7-8b4b-0242ac120002','route_targets','\0','string',NULL); +INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('4885c7a1-a9fe-11e7-8b4b-0242ac120002','shared','\0','string',NULL); +INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('4885c7a1-a9fe-11e7-8b4b-0242ac120002','virtual_network_properties_rpf','\0','string',NULL); + +INSERT INTO `network_recipe` (`id`, `MODEL_NAME`, `ACTION`, `DESCRIPTION`, `ORCHESTRATION_URI`, `NETWORK_PARAM_XSD`, `RECIPE_TIMEOUT`, `SERVICE_TYPE`, `CREATION_TIMESTAMP`, `VERSION_STR`) VALUES (1,'CONTRAIL_BASIC','CREATE',NULL,'/mso/async/services/CreateNetworkV2',NULL,180,NULL,'2017-10-05 18:52:03','1'); +INSERT INTO `network_recipe` (`id`, `MODEL_NAME`, `ACTION`, `DESCRIPTION`, `ORCHESTRATION_URI`, `NETWORK_PARAM_XSD`, `RECIPE_TIMEOUT`, `SERVICE_TYPE`, `CREATION_TIMESTAMP`, `VERSION_STR`) VALUES (2,'CONTRAIL_BASIC','DELETE',NULL,'/mso/async/services/DeleteNetworkV2',NULL,180,NULL,'2017-10-05 18:52:03','1'); +INSERT INTO `network_recipe` (`id`, `MODEL_NAME`, `ACTION`, `DESCRIPTION`, `ORCHESTRATION_URI`, `NETWORK_PARAM_XSD`, `RECIPE_TIMEOUT`, `SERVICE_TYPE`, `CREATION_TIMESTAMP`, `VERSION_STR`) VALUES (3,'CONTRAIL_BASIC','UPDATE',NULL,'/mso/async/services/UpdateNetworkV2',NULL,180,NULL,'2017-10-05 18:52:03','1'); +INSERT INTO `network_recipe` (`id`, `MODEL_NAME`, `ACTION`, `DESCRIPTION`, `ORCHESTRATION_URI`, `NETWORK_PARAM_XSD`, `RECIPE_TIMEOUT`, `SERVICE_TYPE`, `CREATION_TIMESTAMP`, `VERSION_STR`) VALUES (4,'CONTRAIL_SHARED','CREATE',NULL,'/mso/async/services/CreateNetworkV2',NULL,180,NULL,'2017-10-05 18:52:03','1'); +INSERT INTO `network_recipe` (`id`, `MODEL_NAME`, `ACTION`, `DESCRIPTION`, `ORCHESTRATION_URI`, `NETWORK_PARAM_XSD`, `RECIPE_TIMEOUT`, `SERVICE_TYPE`, `CREATION_TIMESTAMP`, `VERSION_STR`) VALUES (5,'CONTRAIL_SHARED','UPDATE',NULL,'/mso/async/services/UpdateNetworkV2',NULL,180,NULL,'2017-10-05 18:52:03','1'); +INSERT INTO `network_recipe` (`id`, `MODEL_NAME`, `ACTION`, `DESCRIPTION`, `ORCHESTRATION_URI`, `NETWORK_PARAM_XSD`, `RECIPE_TIMEOUT`, `SERVICE_TYPE`, `CREATION_TIMESTAMP`, `VERSION_STR`) VALUES (6,'CONTRAIL_SHARED','DELETE',NULL,'/mso/async/services/DeleteNetworkV2',NULL,180,NULL,'2017-10-05 18:52:03','1'); +INSERT INTO `network_recipe` (`id`, `MODEL_NAME`, `ACTION`, `DESCRIPTION`, `ORCHESTRATION_URI`, `NETWORK_PARAM_XSD`, `RECIPE_TIMEOUT`, `SERVICE_TYPE`, `CREATION_TIMESTAMP`, `VERSION_STR`) VALUES (7,'CONTRAIL_EXTERNAL','CREATE',NULL,'/mso/async/services/CreateNetworkV2',NULL,180,NULL,'2017-10-05 18:52:03','1'); +INSERT INTO `network_recipe` (`id`, `MODEL_NAME`, `ACTION`, `DESCRIPTION`, `ORCHESTRATION_URI`, `NETWORK_PARAM_XSD`, `RECIPE_TIMEOUT`, `SERVICE_TYPE`, `CREATION_TIMESTAMP`, `VERSION_STR`) VALUES (8,'CONTRAIL_EXTERNAL','UPDATE',NULL,'/mso/async/services/UpdateNetworkV2',NULL,180,NULL,'2017-10-05 18:52:03','1'); +INSERT INTO `network_recipe` (`id`, `MODEL_NAME`, `ACTION`, `DESCRIPTION`, `ORCHESTRATION_URI`, `NETWORK_PARAM_XSD`, `RECIPE_TIMEOUT`, `SERVICE_TYPE`, `CREATION_TIMESTAMP`, `VERSION_STR`) VALUES (9,'CONTRAIL_EXTERNAL','DELETE',NULL,'/mso/async/services/DeleteNetworkV2',NULL,180,NULL,'2017-10-05 18:52:03','1'); +INSERT INTO `network_recipe` (`id`, `MODEL_NAME`, `ACTION`, `DESCRIPTION`, `ORCHESTRATION_URI`, `NETWORK_PARAM_XSD`, `RECIPE_TIMEOUT`, `SERVICE_TYPE`, `CREATION_TIMESTAMP`, `VERSION_STR`) VALUES (10,'CONTRAIL30_BASIC','CREATE',NULL,'/mso/async/services/CreateNetworkV2',NULL,180,NULL,'2017-10-05 18:52:03','1'); +INSERT INTO `network_recipe` (`id`, `MODEL_NAME`, `ACTION`, `DESCRIPTION`, `ORCHESTRATION_URI`, `NETWORK_PARAM_XSD`, `RECIPE_TIMEOUT`, `SERVICE_TYPE`, `CREATION_TIMESTAMP`, `VERSION_STR`) VALUES (11,'CONTRAIL30_BASIC','UPDATE',NULL,'/mso/async/services/UpdateNetworkV2',NULL,180,NULL,'2017-10-05 18:52:03','1'); +INSERT INTO `network_recipe` (`id`, `MODEL_NAME`, `ACTION`, `DESCRIPTION`, `ORCHESTRATION_URI`, `NETWORK_PARAM_XSD`, `RECIPE_TIMEOUT`, `SERVICE_TYPE`, `CREATION_TIMESTAMP`, `VERSION_STR`) VALUES (12,'CONTRAIL30_BASIC','DELETE',NULL,'/mso/async/services/DeleteNetworkV2',NULL,180,NULL,'2017-10-05 18:52:03','1'); +INSERT INTO `network_recipe` (`id`, `MODEL_NAME`, `ACTION`, `DESCRIPTION`, `ORCHESTRATION_URI`, `NETWORK_PARAM_XSD`, `RECIPE_TIMEOUT`, `SERVICE_TYPE`, `CREATION_TIMESTAMP`, `VERSION_STR`) VALUES (13,'CONTRAIL30_MPSCE','CREATE',NULL,'/mso/async/services/CreateNetworkV2',NULL,180,NULL,'2017-10-05 18:52:03','1'); +INSERT INTO `network_recipe` (`id`, `MODEL_NAME`, `ACTION`, `DESCRIPTION`, `ORCHESTRATION_URI`, `NETWORK_PARAM_XSD`, `RECIPE_TIMEOUT`, `SERVICE_TYPE`, `CREATION_TIMESTAMP`, `VERSION_STR`) VALUES (14,'CONTRAIL30_MPSCE','UPDATE',NULL,'/mso/async/services/UpdateNetworkV2',NULL,180,NULL,'2017-10-05 18:52:03','1'); +INSERT INTO `network_recipe` (`id`, `MODEL_NAME`, `ACTION`, `DESCRIPTION`, `ORCHESTRATION_URI`, `NETWORK_PARAM_XSD`, `RECIPE_TIMEOUT`, `SERVICE_TYPE`, `CREATION_TIMESTAMP`, `VERSION_STR`) VALUES (15,'CONTRAIL30_MPSCE','DELETE',NULL,'/mso/async/services/DeleteNetworkV2',NULL,180,NULL,'2017-10-05 18:52:03','1'); +INSERT INTO `network_recipe` (`id`, `MODEL_NAME`, `ACTION`, `DESCRIPTION`, `ORCHESTRATION_URI`, `NETWORK_PARAM_XSD`, `RECIPE_TIMEOUT`, `SERVICE_TYPE`, `CREATION_TIMESTAMP`, `VERSION_STR`) VALUES (16,'VID_DEFAULT','createInstance','VID_DEFAULT recipe to create network if no custom BPMN flow is found','/mso/async/services/CreateNetworkInstance',NULL,180,NULL,'2017-10-05 18:52:03','1.0'); +INSERT INTO `network_recipe` (`id`, `MODEL_NAME`, `ACTION`, `DESCRIPTION`, `ORCHESTRATION_URI`, `NETWORK_PARAM_XSD`, `RECIPE_TIMEOUT`, `SERVICE_TYPE`, `CREATION_TIMESTAMP`, `VERSION_STR`) VALUES (17,'VID_DEFAULT','updateInstance','VID_DEFAULT recipe to update network if no custom BPMN flow is found','/mso/async/services/UpdateNetworkInstance',NULL,180,NULL,'2017-10-05 18:52:03','1.0'); +INSERT INTO `network_recipe` (`id`, `MODEL_NAME`, `ACTION`, `DESCRIPTION`, `ORCHESTRATION_URI`, `NETWORK_PARAM_XSD`, `RECIPE_TIMEOUT`, `SERVICE_TYPE`, `CREATION_TIMESTAMP`, `VERSION_STR`) VALUES (18,'VID_DEFAULT','deleteInstance','VID_DEFAULT recipe to delete network if no custom BPMN flow is found','/mso/async/services/DeleteNetworkInstance',NULL,180,NULL,'2017-10-05 18:52:03','1.0'); +INSERT INTO `network_recipe` (`id`, `MODEL_NAME`, `ACTION`, `DESCRIPTION`, `ORCHESTRATION_URI`, `NETWORK_PARAM_XSD`, `RECIPE_TIMEOUT`, `SERVICE_TYPE`, `CREATION_TIMESTAMP`, `VERSION_STR`) VALUES (19,'CONTRAIL30_L2NODHCP','CREATE',NULL,'/mso/async/services/CreateNetworkV2',NULL,180,NULL,'2017-10-05 18:52:03','1'); +INSERT INTO `network_recipe` (`id`, `MODEL_NAME`, `ACTION`, `DESCRIPTION`, `ORCHESTRATION_URI`, `NETWORK_PARAM_XSD`, `RECIPE_TIMEOUT`, `SERVICE_TYPE`, `CREATION_TIMESTAMP`, `VERSION_STR`) VALUES (20,'CONTRAIL30_L2NODHCP','UPDATE',NULL,'/mso/async/services/UpdateNetworkV2',NULL,180,NULL,'2017-10-05 18:52:03','1'); +INSERT INTO `network_recipe` (`id`, `MODEL_NAME`, `ACTION`, `DESCRIPTION`, `ORCHESTRATION_URI`, `NETWORK_PARAM_XSD`, `RECIPE_TIMEOUT`, `SERVICE_TYPE`, `CREATION_TIMESTAMP`, `VERSION_STR`) VALUES (21,'CONTRAIL30_L2NODHCP','DELETE',NULL,'/mso/async/services/DeleteNetworkV2',NULL,180,NULL,'2017-10-05 18:52:03','1'); +INSERT INTO `network_recipe` (`id`, `MODEL_NAME`, `ACTION`, `DESCRIPTION`, `ORCHESTRATION_URI`, `NETWORK_PARAM_XSD`, `RECIPE_TIMEOUT`, `SERVICE_TYPE`, `CREATION_TIMESTAMP`, `VERSION_STR`) VALUES (22,'CONTRAIL30_GNDIRECT','CREATE',NULL,'/mso/async/services/CreateNetworkV2',NULL,180,NULL,'2017-10-05 18:52:03','1'); +INSERT INTO `network_recipe` (`id`, `MODEL_NAME`, `ACTION`, `DESCRIPTION`, `ORCHESTRATION_URI`, `NETWORK_PARAM_XSD`, `RECIPE_TIMEOUT`, `SERVICE_TYPE`, `CREATION_TIMESTAMP`, `VERSION_STR`) VALUES (23,'CONTRAIL30_GNDIRECT','UPDATE',NULL,'/mso/async/services/UpdateNetworkV2',NULL,180,NULL,'2017-10-05 18:52:03','1'); +INSERT INTO `network_recipe` (`id`, `MODEL_NAME`, `ACTION`, `DESCRIPTION`, `ORCHESTRATION_URI`, `NETWORK_PARAM_XSD`, `RECIPE_TIMEOUT`, `SERVICE_TYPE`, `CREATION_TIMESTAMP`, `VERSION_STR`) VALUES (24,'CONTRAIL30_GNDIRECT','DELETE',NULL,'/mso/async/services/DeleteNetworkV2',NULL,180,NULL,'2017-10-05 18:52:03','1'); + +INSERT INTO `service` (`MODEL_UUID`, `MODEL_NAME`, `MODEL_INVARIANT_UUID`, `MODEL_VERSION`, `DESCRIPTION`, `CREATION_TIMESTAMP`, `TOSCA_CSAR_ARTIFACT_UUID`) VALUES ('48cc36cc-a9fe-11e7-8b4b-0242ac120002','VID_DEFAULT','48cd56c8-a9fe-11e7-8b4b-0242ac120002','1.0','Default service for VID to use for infra APIH orchestration1707MIGRATED1707MIGRATED','2017-10-05 18:52:03',NULL); +INSERT INTO `service` (`MODEL_UUID`, `MODEL_NAME`, `MODEL_INVARIANT_UUID`, `MODEL_VERSION`, `DESCRIPTION`, `CREATION_TIMESTAMP`, `TOSCA_CSAR_ARTIFACT_UUID`) VALUES ('48cc3acd-a9fe-11e7-8b4b-0242ac120002','*','48ce2256-a9fe-11e7-8b4b-0242ac120002','1.0','Default service to use for infra APIH orchestration1707MIGRATED1707MIGRATED','2017-10-05 18:52:03',NULL); + +INSERT INTO `service_recipe` (`id`, `ACTION`, `VERSION_STR`, `DESCRIPTION`, `ORCHESTRATION_URI`, `SERVICE_PARAM_XSD`, `RECIPE_TIMEOUT`, `SERVICE_TIMEOUT_INTERIM`, `CREATION_TIMESTAMP`, `SERVICE_MODEL_UUID`) VALUES (1,'createInstance','1','VID_DEFAULT recipe to create service-instance if no custom BPMN flow is found','/mso/async/services/CreateGenericALaCarteServiceInstance',NULL,180,NULL,'2017-10-05 18:52:03','48cc36cc-a9fe-11e7-8b4b-0242ac120002'); +INSERT INTO `service_recipe` (`id`, `ACTION`, `VERSION_STR`, `DESCRIPTION`, `ORCHESTRATION_URI`, `SERVICE_PARAM_XSD`, `RECIPE_TIMEOUT`, `SERVICE_TIMEOUT_INTERIM`, `CREATION_TIMESTAMP`, `SERVICE_MODEL_UUID`) VALUES (2,'deleteInstance','1','VID_DEFAULT recipe to delete service-instance if no custom BPMN flow is found','/mso/async/services/DeleteGenericALaCarteServiceInstance',NULL,180,NULL,'2017-10-05 18:52:03','48cc36cc-a9fe-11e7-8b4b-0242ac120002'); +INSERT INTO `service_recipe` (`id`, `ACTION`, `VERSION_STR`, `DESCRIPTION`, `ORCHESTRATION_URI`, `SERVICE_PARAM_XSD`, `RECIPE_TIMEOUT`, `SERVICE_TIMEOUT_INTERIM`, `CREATION_TIMESTAMP`, `SERVICE_MODEL_UUID`) VALUES (3,'createInstance','1','DEFAULT recipe to create service-instance if no custom BPMN flow is found','/mso/async/services/CreateGenericALaCarteServiceInstance',NULL,180,NULL,'2017-10-05 18:52:03','48cc3acd-a9fe-11e7-8b4b-0242ac120002'); +INSERT INTO `service_recipe` (`id`, `ACTION`, `VERSION_STR`, `DESCRIPTION`, `ORCHESTRATION_URI`, `SERVICE_PARAM_XSD`, `RECIPE_TIMEOUT`, `SERVICE_TIMEOUT_INTERIM`, `CREATION_TIMESTAMP`, `SERVICE_MODEL_UUID`) VALUES (4,'deleteInstance','1','DEFAULT recipe to delete service-instance if no custom BPMN flow is found','/mso/async/services/DeleteGenericALaCarteServiceInstance',NULL,180,NULL,'2017-10-05 18:52:03','48cc3acd-a9fe-11e7-8b4b-0242ac120002'); + +-- +-- Custom Reciepe for the VoLTE service added temporarily +-- + +INSERT INTO `service` (`MODEL_UUID`, `MODEL_NAME`, `MODEL_INVARIANT_UUID`, `MODEL_VERSION`, `DESCRIPTION`, `CREATION_TIMESTAMP`, `TOSCA_CSAR_ARTIFACT_UUID`) VALUES ('dfcd7471-16c7-444e-8268-d4c50d90593a','UUI_DEFAULT','dfcd7471-16c7-444e-8268-d4c50d90593a','1.0','Default service for UUI to use for infra APIH orchestration1707MIGRATED1707MIGRATED','2017-10-23 18:52:03',NULL); + +INSERT INTO `service_recipe` (`id`, `ACTION`, `VERSION_STR`, `DESCRIPTION`, `ORCHESTRATION_URI`, `SERVICE_PARAM_XSD`, `RECIPE_TIMEOUT`, `SERVICE_TIMEOUT_INTERIM`, `CREATION_TIMESTAMP`, `SERVICE_MODEL_UUID`) VALUES (11,'createInstance','1','Custom recipe to create E2E service-instance if no custom BPMN flow is found','/mso/async/services/CreateCustomE2EServiceInstance',NULL,180,NULL,'2017-10-05 18:52:03','dfcd7471-16c7-444e-8268-d4c50d90593a'); +INSERT INTO `service_recipe` (`id`, `ACTION`, `VERSION_STR`, `DESCRIPTION`, `ORCHESTRATION_URI`, `SERVICE_PARAM_XSD`, `RECIPE_TIMEOUT`, `SERVICE_TIMEOUT_INTERIM`, `CREATION_TIMESTAMP`, `SERVICE_MODEL_UUID`) VALUES (12,'deleteInstance','1','Custom recipe to delete E2E service-instance if no custom BPMN flow is found','/mso/async/services/DeleteCustomE2EServiceInstance',NULL,180,NULL,'2017-10-05 18:52:03','dfcd7471-16c7-444e-8268-d4c50d90593a'); + +INSERT INTO `temp_network_heat_template_lookup` (`NETWORK_RESOURCE_MODEL_NAME`, `HEAT_TEMPLATE_ARTIFACT_UUID`, `AIC_VERSION_MIN`, `AIC_VERSION_MAX`) VALUES ('CONTRAIL30_GNDIRECT','4885c7a1-a9fe-11e7-8b4b-0242ac120002','3.0',NULL); +INSERT INTO `temp_network_heat_template_lookup` (`NETWORK_RESOURCE_MODEL_NAME`, `HEAT_TEMPLATE_ARTIFACT_UUID`, `AIC_VERSION_MIN`, `AIC_VERSION_MAX`) VALUES ('CONTRAIL30_L2NODHCP','4885c198-a9fe-11e7-8b4b-0242ac120002','3.0',NULL); +INSERT INTO `temp_network_heat_template_lookup` (`NETWORK_RESOURCE_MODEL_NAME`, `HEAT_TEMPLATE_ARTIFACT_UUID`,`AIC_VERSION_MIN` , `AIC_VERSION_MAX` ) VALUES ('Generic NeutronNet','efee1d84-b8ec-11e7-abc4-cec278b6b50a','2.0','NULL'); + +INSERT INTO `vnf_components_recipe` (`id`, `VNF_TYPE`, `VNF_COMPONENT_TYPE`, `VF_MODULE_MODEL_UUID`, `ACTION`, `SERVICE_TYPE`, `VERSION`, `DESCRIPTION`, `ORCHESTRATION_URI`, `VNF_COMPONENT_PARAM_XSD`, `RECIPE_TIMEOUT`, `CREATION_TIMESTAMP`) VALUES (1,'*','VOLUME_GROUP',NULL,'CREATE',NULL,'1','Recipe Match All for','/mso/async/services/createCinderVolumeV1',null,180,'2017-10-05 18:52:03'); +INSERT INTO `vnf_components_recipe` (`id`, `VNF_TYPE`, `VNF_COMPONENT_TYPE`, `VF_MODULE_MODEL_UUID`, `ACTION`, `SERVICE_TYPE`, `VERSION`, `DESCRIPTION`, `ORCHESTRATION_URI`, `VNF_COMPONENT_PARAM_XSD`, `RECIPE_TIMEOUT`, `CREATION_TIMESTAMP`) VALUES (2,'*','VOLUME_GROUP',NULL,'DELETE',NULL,'1','Recipe Match All for','/mso/async/services/deleteCinderVolumeV1',null,180,'2017-10-05 18:52:03'); +INSERT INTO `vnf_components_recipe` (`id`, `VNF_TYPE`, `VNF_COMPONENT_TYPE`, `VF_MODULE_MODEL_UUID`, `ACTION`, `SERVICE_TYPE`, `VERSION`, `DESCRIPTION`, `ORCHESTRATION_URI`, `VNF_COMPONENT_PARAM_XSD`, `RECIPE_TIMEOUT`, `CREATION_TIMESTAMP`) VALUES (3,'*','VOLUME_GROUP',NULL,'UPDATE',NULL,'1','Recipe Match All for','/mso/async/services/updateCinderVolumeV1',null,180,'2017-10-05 18:52:03'); +INSERT INTO `vnf_components_recipe` (`id`, `VNF_TYPE`, `VNF_COMPONENT_TYPE`, `VF_MODULE_MODEL_UUID`, `ACTION`, `SERVICE_TYPE`, `VERSION`, `DESCRIPTION`, `ORCHESTRATION_URI`, `VNF_COMPONENT_PARAM_XSD`, `RECIPE_TIMEOUT`, `CREATION_TIMESTAMP`) VALUES (4,NULL,'VOLUME_GROUP',NULL,'CREATE_VF_MODULE_VOL',NULL,'1','Recipe Match All for','/mso/async/services/CreateVfModuleVolume',null,180,'2017-10-05 18:52:03'); +INSERT INTO `vnf_components_recipe` (`id`, `VNF_TYPE`, `VNF_COMPONENT_TYPE`, `VF_MODULE_MODEL_UUID`, `ACTION`, `SERVICE_TYPE`, `VERSION`, `DESCRIPTION`, `ORCHESTRATION_URI`, `VNF_COMPONENT_PARAM_XSD`, `RECIPE_TIMEOUT`, `CREATION_TIMESTAMP`) VALUES (5,NULL,'VOLUME_GROUP',NULL,'DELETE_VF_MODULE_VOL',NULL,'1','Recipe Match All for','/mso/async/services/DeleteVfModuleVolume',null,180,'2017-10-05 18:52:03'); +INSERT INTO `vnf_components_recipe` (`id`, `VNF_TYPE`, `VNF_COMPONENT_TYPE`, `VF_MODULE_MODEL_UUID`, `ACTION`, `SERVICE_TYPE`, `VERSION`, `DESCRIPTION`, `ORCHESTRATION_URI`, `VNF_COMPONENT_PARAM_XSD`, `RECIPE_TIMEOUT`, `CREATION_TIMESTAMP`) VALUES (6,NULL,'VOLUME_GROUP',NULL,'UPDATE_VF_MODULE_VOL',NULL,'1','Recipe Match All for','/mso/async/services/UpdateVfModuleVolume',null,180,'2017-10-05 18:52:03'); +INSERT INTO `vnf_components_recipe` (`id`, `VNF_TYPE`, `VNF_COMPONENT_TYPE`, `VF_MODULE_MODEL_UUID`, `ACTION`, `SERVICE_TYPE`, `VERSION`, `DESCRIPTION`, `ORCHESTRATION_URI`, `VNF_COMPONENT_PARAM_XSD`, `RECIPE_TIMEOUT`, `CREATION_TIMESTAMP`) VALUES (7,NULL,'volumeGroup','VID_DEFAULT','createInstance',NULL,'1','VID_DEFAULT recipe t','/mso/async/services/CreateVfModuleVolumeInfraV1',null,180,'2017-10-05 18:52:03'); +INSERT INTO `vnf_components_recipe` (`id`, `VNF_TYPE`, `VNF_COMPONENT_TYPE`, `VF_MODULE_MODEL_UUID`, `ACTION`, `SERVICE_TYPE`, `VERSION`, `DESCRIPTION`, `ORCHESTRATION_URI`, `VNF_COMPONENT_PARAM_XSD`, `RECIPE_TIMEOUT`, `CREATION_TIMESTAMP`) VALUES (8,NULL,'volumeGroup','VID_DEFAULT','deleteInstance',NULL,'1','VID_DEFAULT recipe t','/mso/async/services/DeleteVfModuleVolumeInfraV1',null,180,'2017-10-05 18:52:03'); +INSERT INTO `vnf_components_recipe` (`id`, `VNF_TYPE`, `VNF_COMPONENT_TYPE`, `VF_MODULE_MODEL_UUID`, `ACTION`, `SERVICE_TYPE`, `VERSION`, `DESCRIPTION`, `ORCHESTRATION_URI`, `VNF_COMPONENT_PARAM_XSD`, `RECIPE_TIMEOUT`, `CREATION_TIMESTAMP`) VALUES (9,NULL,'volumeGroup','VID_DEFAULT','updateInstance',NULL,'1','VID_DEFAULT recipe t','/mso/async/services/UpdateVfModuleVolumeInfraV1',null,180,'2017-10-05 18:52:03'); +INSERT INTO `vnf_components_recipe` (`id`, `VNF_TYPE`, `VNF_COMPONENT_TYPE`, `VF_MODULE_MODEL_UUID`, `ACTION`, `SERVICE_TYPE`, `VERSION`, `DESCRIPTION`, `ORCHESTRATION_URI`, `VNF_COMPONENT_PARAM_XSD`, `RECIPE_TIMEOUT`, `CREATION_TIMESTAMP`) VALUES (10,NULL,'vfModule','VID_DEFAULT','createInstance',NULL,'1','VID_DEFAULT recipe t','/mso/async/services/CreateVfModuleInfra',null,180,'2017-10-05 18:52:03'); +INSERT INTO `vnf_components_recipe` (`id`, `VNF_TYPE`, `VNF_COMPONENT_TYPE`, `VF_MODULE_MODEL_UUID`, `ACTION`, `SERVICE_TYPE`, `VERSION`, `DESCRIPTION`, `ORCHESTRATION_URI`, `VNF_COMPONENT_PARAM_XSD`, `RECIPE_TIMEOUT`, `CREATION_TIMESTAMP`) VALUES (11,NULL,'vfModule','VID_DEFAULT','deleteInstance',NULL,'1','VID_DEFAULT recipe t','/mso/async/services/DeleteVfModuleInfra',null,180,'2017-10-05 18:52:03'); +INSERT INTO `vnf_components_recipe` (`id`, `VNF_TYPE`, `VNF_COMPONENT_TYPE`, `VF_MODULE_MODEL_UUID`, `ACTION`, `SERVICE_TYPE`, `VERSION`, `DESCRIPTION`, `ORCHESTRATION_URI`, `VNF_COMPONENT_PARAM_XSD`, `RECIPE_TIMEOUT`, `CREATION_TIMESTAMP`) VALUES (12,NULL,'vfModule','VID_DEFAULT','updateInstance',NULL,'1','VID_DEFAULT recipe t','/mso/async/services/UpdateVfModuleInfra',null,180,'2017-10-05 18:52:03'); + +-- +-- Default Reciepe for the VNF componnets added start #SO-334, to unblock the VNF operations +-- + +INSERT INTO `vnf_components_recipe` (`VNF_TYPE`, `VF_MODULE_MODEL_UUID`, `ACTION`, `VERSION`, `DESCRIPTION`, `ORCHESTRATION_URI`,`VNF_COMPONENT_TYPE`, `VNF_COMPONENT_PARAM_XSD`, `RECIPE_TIMEOUT`, `SERVICE_TYPE`) VALUES (NULL,'POLICY_DEFAULT','createInstance','1','Recipe Match POLICY_DEFAULT for VF Modules if no custom flow exists','/mso/async/services/CreateVfModuleInfra','vfModule',NULL,180,NULL); +INSERT INTO `vnf_components_recipe` (`VNF_TYPE`, `VF_MODULE_MODEL_UUID`, `ACTION`, `VERSION`, `DESCRIPTION`, `ORCHESTRATION_URI`,`VNF_COMPONENT_TYPE`, `VNF_COMPONENT_PARAM_XSD`, `RECIPE_TIMEOUT`, `SERVICE_TYPE`) VALUES (NULL,'POLICY_DEFAULT','updateInstance','1','Recipe Match POLICY_DEFAULT for VF Modules if no custom flow exists','/mso/async/services/UpdateVfModuleInfra','vfModule',NULL,180,NULL); +INSERT INTO `vnf_components_recipe` (`VNF_TYPE`, `VF_MODULE_MODEL_UUID`, `ACTION`, `VERSION`, `DESCRIPTION`, `ORCHESTRATION_URI`,`VNF_COMPONENT_TYPE`, `VNF_COMPONENT_PARAM_XSD`, `RECIPE_TIMEOUT`, `SERVICE_TYPE`) VALUES (NULL,'POLICY_DEFAULT','deleteInstance','1','Recipe Match POLICY_DEFAULT for VF Modules if no custom flow exists','/mso/async/services/DeleteVfModuleInfra','vfModule',NULL,180,NULL); +-- +-- Default Reciepe for the VNF componnets added End +-- + +INSERT INTO `vnf_recipe` (`id`, `VF_MODULE_ID`, `ACTION`, `SERVICE_TYPE`, `VERSION_STR`, `VNF_TYPE`, `DESCRIPTION`, `ORCHESTRATION_URI`, `VNF_PARAM_XSD`, `RECIPE_TIMEOUT`, `CREATION_TIMESTAMP`) VALUES (1,NULL,'CREATE',NULL,'1','*','Recipe Match All for VNFs if no custom flow exists','/mso/workflow/services/CreateGenericVNFV1',NULL,180,'2017-10-05 18:52:03'); +INSERT INTO `vnf_recipe` (`id`, `VF_MODULE_ID`, `ACTION`, `SERVICE_TYPE`, `VERSION_STR`, `VNF_TYPE`, `DESCRIPTION`, `ORCHESTRATION_URI`, `VNF_PARAM_XSD`, `RECIPE_TIMEOUT`, `CREATION_TIMESTAMP`) VALUES (2,NULL,'DELETE',NULL,'1','*','Recipe Match All for VNFs if no custom flow exists','/mso/async/services//deleteGenericVNFV1',NULL,180,'2017-10-05 18:52:03'); +INSERT INTO `vnf_recipe` (`id`, `VF_MODULE_ID`, `ACTION`, `SERVICE_TYPE`, `VERSION_STR`, `VNF_TYPE`, `DESCRIPTION`, `ORCHESTRATION_URI`, `VNF_PARAM_XSD`, `RECIPE_TIMEOUT`, `CREATION_TIMESTAMP`) VALUES (3,NULL,'UPDATE',NULL,'1','*','Recipe Match All for VNFs if no custom flow exists','/mso/workflow/services/updateGenericVNFV1',NULL,180,'2017-10-05 18:52:03'); +INSERT INTO `vnf_recipe` (`id`, `VF_MODULE_ID`, `ACTION`, `SERVICE_TYPE`, `VERSION_STR`, `VNF_TYPE`, `DESCRIPTION`, `ORCHESTRATION_URI`, `VNF_PARAM_XSD`, `RECIPE_TIMEOUT`, `CREATION_TIMESTAMP`) VALUES (4,'*','CREATE_VF_MODULE',NULL,'1',NULL,'Recipe Match All for VNFs if no custom flow exists','/mso/async/services/CreateVfModule',NULL,180,'2017-10-05 18:52:03'); +INSERT INTO `vnf_recipe` (`id`, `VF_MODULE_ID`, `ACTION`, `SERVICE_TYPE`, `VERSION_STR`, `VNF_TYPE`, `DESCRIPTION`, `ORCHESTRATION_URI`, `VNF_PARAM_XSD`, `RECIPE_TIMEOUT`, `CREATION_TIMESTAMP`) VALUES (5,'*','DELETE_VF_MODULE',NULL,'1',NULL,'Recipe Match All for VNFs if no custom flow exists','/mso/async/services/DeleteVfModule',NULL,180,'2017-10-05 18:52:03'); +INSERT INTO `vnf_recipe` (`id`, `VF_MODULE_ID`, `ACTION`, `SERVICE_TYPE`, `VERSION_STR`, `VNF_TYPE`, `DESCRIPTION`, `ORCHESTRATION_URI`, `VNF_PARAM_XSD`, `RECIPE_TIMEOUT`, `CREATION_TIMESTAMP`) VALUES (6,'*','UPDATE_VF_MODULE',NULL,'1',NULL,'Recipe Match All for VNFs if no custom flow exists','/mso/async/services/UpdateVfModule',NULL,180,'2017-10-05 18:52:03'); +INSERT INTO `vnf_recipe` (`id`, `VF_MODULE_ID`, `ACTION`, `SERVICE_TYPE`, `VERSION_STR`, `VNF_TYPE`, `DESCRIPTION`, `ORCHESTRATION_URI`, `VNF_PARAM_XSD`, `RECIPE_TIMEOUT`, `CREATION_TIMESTAMP`) VALUES (7,NULL,'createInstance',NULL,'1','VID_DEFAULT','VID_DEFAULT recipe to create VNF if no custom BPMN flow is found','/mso/async/services/CreateVnfInfra',NULL,180,'2017-10-05 18:52:03'); +INSERT INTO `vnf_recipe` (`id`, `VF_MODULE_ID`, `ACTION`, `SERVICE_TYPE`, `VERSION_STR`, `VNF_TYPE`, `DESCRIPTION`, `ORCHESTRATION_URI`, `VNF_PARAM_XSD`, `RECIPE_TIMEOUT`, `CREATION_TIMESTAMP`) VALUES (8,NULL,'deleteInstance',NULL,'1','VID_DEFAULT','VID_DEFAULT recipe to delete VNF if no custom BPMN flow is found','/mso/async/services/DeleteVnfInfra',NULL,180,'2017-10-05 18:52:03'); + +SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS; diff --git a/kubernetes/so/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/demo-dns/create_mso_db-demo-dns.sql b/kubernetes/so/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/demo-dns/create_mso_db-demo-dns.sql new file mode 100644 index 0000000000..b5063defda --- /dev/null +++ b/kubernetes/so/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/demo-dns/create_mso_db-demo-dns.sql @@ -0,0 +1,77 @@ +SOURCE ../default/create_mso_db-default.sql + +USE `mso_requests`; +DROP USER 'mso'; +CREATE USER 'mso'; +GRANT ALL on mso_requests.* to 'mso' identified by 'mso123' with GRANT OPTION; +FLUSH PRIVILEGES; + +USE `mso_catalog`; +DROP USER 'catalog'; +CREATE USER 'catalog'; +GRANT ALL on mso_catalog.* to 'catalog' identified by 'catalog123' with GRANT OPTION; +FLUSH PRIVILEGES; + +SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0; + +INSERT INTO `heat_environment` (`ARTIFACT_UUID`, `NAME`, `VERSION`, `DESCRIPTION`, `BODY`, `ARTIFACT_CHECKSUM`, `CREATION_TIMESTAMP`) VALUES ('EnvArtifact-UUID1','base_vlb.env','1.0','BASE VLB ENV file','parameters:\n vlb_image_name: Ubuntu 14.04 LTS (Trusty Tahr) (PVHVM)\n vlb_flavor_name: 4 GB General Purpose v1\n public_net_id: 00000000-0000-0000-0000-000000000000\n vlb_private_net_id: zdfw1lb01_private\n ecomp_private_net_id: oam_ecomp\n vlb_private_net_cidr: 192.168.10.0/24\n ecomp_private_net_cidr: 192.168.9.0/24\n vlb_private_ip_0: 192.168.10.111\n vlb_private_ip_1: 192.168.9.111\n vdns_private_ip_0: 192.168.10.211\n vdns_private_ip_1: 192.168.9.211\n vlb_name_0: zdfw1lb01lb01\n vdns_name_0: zdfw1lb01dns01\n vnf_id: vLoadBalancer_demo_app\n vf_module_id: vLoadBalancer\n webserver_ip: 162.242.237.182\n dcae_collector_ip: 192.168.9.1\n key_name: vlb_key\n pub_key: INSERT YOUR PUBLIC KEY HERE','MANUAL RECORD','2016-11-14 13:04:07'); + +INSERT INTO `heat_environment` (`ARTIFACT_UUID`, `NAME`, `VERSION`, `DESCRIPTION`, `BODY`, `ARTIFACT_CHECKSUM`, `CREATION_TIMESTAMP`) VALUES ('EnvArtifact-UUID2','dnsscaling.env','1.0','DNS Scaling ENV file','parameters:\n vlb_image_name: Ubuntu 14.04 LTS (Trusty Tahr) (PVHVM)\n vlb_flavor_name: 4 GB General Purpose v1\n public_net_id: 00000000-0000-0000-0000-000000000000\n vlb_private_net_id: zdfw1lb01_private\n ecomp_private_net_id: oam_ecomp\n vlb_private_ip_0: 192.168.10.111\n vlb_private_ip_1: 192.168.9.111\n vdns_private_ip_0: 192.168.10.222\n vdns_private_ip_1: 192.168.9.222\n vdns_name_0: zdfw1lb01dns02\n vnf_id: vLoadBalancer_demo_app\n vf_module_id: vLoadBalancer\n webserver_ip: 162.242.237.182\n dcae_collector_ip: 192.168.9.1\n key_name: vlb_key\n pub_key: INSERT YOUR PUBLIC KEY HERE','MANUAL RECORD','2016-11-14 13:04:07'); + +INSERT INTO `heat_template` (`ARTIFACT_UUID`, `NAME`, `VERSION`, `DESCRIPTION`, `BODY`, `TIMEOUT_MINUTES`, `ARTIFACT_CHECKSUM`, `CREATION_TIMESTAMP`) VALUES ('Artifact-UUID1','base_vlb.yaml','1.0','Base VLB Heat','heat_template_version: 2013-05-23\n\ndescription: Heat template to deploy vLoadBalancer/vDNS demo app for OpenECOMP\n\nparameters:\n vlb_image_name:\n type: string\n label: Image name or ID\n description: Image to be used for compute instance\n vlb_flavor_name:\n type: string\n label: Flavor\n description: Type of instance (flavor) to be used\n public_net_id:\n type: string\n label: Public network name or ID\n description: Public network that enables remote connection to VNF\n vlb_private_net_id:\n type: string\n label: vLoadBalancer private network name or ID\n description: Private network that connects vLoadBalancer with vDNSs\n ecomp_private_net_id:\n type: string\n label: ECOMP management network name or ID\n description: Private network that connects ECOMP component and the VNF\n vlb_private_net_cidr:\n type: string\n label: vLoadBalancer private network CIDR\n description: The CIDR of the vLoadBalancer private network\n ecomp_private_net_cidr:\n type: string\n label: ECOMP private network CIDR\n description: The CIDR of the protected private network\n vlb_private_ip_0:\n type: string\n label: vLoadBalancer private IP address towards the private network\n description: Private IP address that is assigned to the vLoadBalancer to communicate with the vDNSs\n vlb_private_ip_1:\n type: string\n label: vLoadBalancer private IP address towards the ECOMP management network\n description: Private IP address that is assigned to the vLoadBalancer to communicate with ECOMP components\n vdns_private_ip_0:\n type: string\n label: vDNS private IP address towards the private network\n description: Private IP address that is assigned to the vDNS to communicate with the vLoadBalancer\n vdns_private_ip_1:\n type: string\n label: vDNS private IP address towards the ECOMP management network\n description: Private IP address that is assigned to the vDNS to communicate with ECOMP components\n vlb_name_0:\n type: string\n label: vLoadBalancer name\n description: Name of the vLoadBalancer\n vdns_name_0:\n type: string\n label: vDNS name\n description: Name of the vDNS\n vnf_id:\n type: string\n label: VNF ID\n description: The VNF ID is provided by ECOMP\n vf_module_id:\n type: string\n label: vFirewall module ID\n description: The vLoadBalancer Module ID is provided by ECOMP\n webserver_ip:\n type: string\n label: Webserver IP address\n description: IP address of the webserver that hosts the source code and binaries\n dcae_collector_ip:\n type: string\n label: DCAE collector IP address\n description: IP address of the DCAE collector\n key_name:\n type: string\n label: Key pair name\n description: Public/Private key pair name\n pub_key:\n type: string\n label: Public key\n description: Public key to be installed on the compute instance\n\nresources:\n my_keypair:\n type: OS::Nova::KeyPair\n properties:\n name: { get_param: key_name }\n public_key: { get_param: pub_key }\n save_private_key: false\n\n vlb_private_network:\n type: OS::Neutron::Net\n properties:\n name: { get_param: vlb_private_net_id }\n\n vlb_private_subnet:\n type: OS::Neutron::Subnet\n properties:\n name: { get_param: vlb_private_net_id }\n network_id: { get_resource: vlb_private_network }\n cidr: { get_param: vlb_private_net_cidr }\n\n vlb_0:\n type: OS::Nova::Server\n properties:\n image: { get_param: vlb_image_name }\n flavor: { get_param: vlb_flavor_name }\n name: { get_param: vlb_name_0 }\n key_name: { get_resource: my_keypair }\n networks:\n - network: { get_param: public_net_id }\n - port: { get_resource: vlb_private_0_port }\n - port: { get_resource: vlb_private_1_port }\n metadata: {vnf_id: { get_param: vnf_id }, vf_module_id: { get_param: vf_module_id }}\n user_data_format: RAW\n user_data:\n str_replace:\n params:\n __webserver__: { get_param: webserver_ip }\n __dcae_collector_ip__: { get_param: dcae_collector_ip }\n __local_private_ipaddr__: { get_param: vlb_private_ip_0 }\n template: |\n #!/bin/bash\n\n WEBSERVER_IP=__webserver__\n DCAE_COLLECTOR_IP=__dcae_collector_ip__\n LOCAL_PRIVATE_IPADDR=__local_private_ipaddr__\n\n mkdir /opt/config\n cd /opt\n wget http://$WEBSERVER_IP/demo_repo/v_lb_init.sh\n wget http://$WEBSERVER_IP/demo_repo/vlb.sh\n chmod +x v_lb_init.sh\n chmod +x vlb.sh\n echo $WEBSERVER_IP > config/webserver_ip.txt\n echo $DCAE_COLLECTOR_IP > config/dcae_collector_ip.txt\n echo $LOCAL_PRIVATE_IPADDR > config/local_private_ipaddr.txt\n echo \"no\" > config/install.txt\n LOCAL_PUBLIC_IPADDR=$(ifconfig eth0 | grep \"inet addr\" | tr -s \' \' | cut -d\' \' -f3 | cut -d\':\' -f2)\n echo $LOCAL_PUBLIC_IPADDR > config/local_public_ipaddr.txt\n mv vlb.sh /etc/init.d\n update-rc.d vlb.sh defaults\n ./v_lb_init.sh\n\n vlb_private_0_port:\n type: OS::Neutron::Port\n properties:\n network: { get_resource: vlb_private_network }\n fixed_ips: [{\"subnet\": { get_resource: vlb_private_subnet }, \"ip_address\": { get_param: vlb_private_ip_0 }}]\n\n vlb_private_1_port:\n type: OS::Neutron::Port\n properties:\n network: { get_param: ecomp_private_net_id }\n fixed_ips: [{\"subnet\": { get_param: ecomp_private_net_id }, \"ip_address\": { get_param: vlb_private_ip_1 }}]\n\n vdns_0:\n type: OS::Nova::Server\n properties:\n image: { get_param: vlb_image_name }\n flavor: { get_param: vlb_flavor_name }\n name: { get_param: vdns_name_0 }\n key_name: { get_resource: my_keypair }\n networks:\n - network: { get_param: public_net_id }\n - port: { get_resource: vdns_private_0_port }\n - port: { get_resource: vdns_private_1_port }\n metadata: {vnf_id: { get_param: vnf_id }, vf_module_id: { get_param: vf_module_id }}\n user_data_format: RAW\n user_data:\n str_replace:\n params:\n __webserver__: { get_param: webserver_ip }\n __lb_oam_int__ : { get_param: vlb_private_ip_1 }\n __lb_private_ipaddr__: { get_param: vlb_private_ip_0 }\n __local_private_ipaddr__: { get_param: vdns_private_ip_0 }\n template: |\n #!/bin/bash\n\n WEBSERVER_IP=__webserver__\n LB_OAM_INT=__lb_oam_int__\n LB_PRIVATE_IPADDR=__lb_private_ipaddr__\n LOCAL_PRIVATE_IPADDR=__local_private_ipaddr__\n\n mkdir /opt/config\n cd /opt\n wget http://$WEBSERVER_IP/demo_repo/v_dns_init.sh\n wget http://$WEBSERVER_IP/demo_repo/vdns.sh\n chmod +x v_dns_init.sh\n chmod +x vdns.sh\n echo $WEBSERVER_IP > config/webserver_ip.txt\n echo $LB_OAM_INT > config/lb_oam_int.txt\n echo $LB_PRIVATE_IPADDR > config/lb_private_ipaddr.txt\n echo $LOCAL_PRIVATE_IPADDR > config/local_private_ipaddr.txt\n echo \"no\" > config/install.txt\n mv vdns.sh /etc/init.d\n update-rc.d vdns.sh defaults\n ./v_dns_init.sh\n\n vdns_private_0_port:\n type: OS::Neutron::Port\n properties:\n network: { get_resource: vlb_private_network }\n fixed_ips: [{\"subnet\": { get_resource: vlb_private_subnet }, \"ip_address\": { get_param: vdns_private_ip_0 }}]\n\n vdns_private_1_port:\n type: OS::Neutron::Port\n properties:\n network: { get_param: ecomp_private_net_id }\n fixed_ips: [{\"subnet\": { get_param: ecomp_private_net_id }, \"ip_address\": { get_param: vdns_private_ip_1 }}]\n',300,'MANUAL RECORD','2016-11-14 13:04:07'); + +INSERT INTO `heat_template` (`ARTIFACT_UUID`, `NAME`, `VERSION`, `DESCRIPTION`, `BODY`, `TIMEOUT_MINUTES`, `ARTIFACT_CHECKSUM`, `CREATION_TIMESTAMP`) VALUES ('Artifact-UUID2','dnsscaling.yaml','1.0','DNS Scaling Heat','heat_template_version: 2013-05-23\n\ndescription: Heat template to deploy a vDNS for OpenECOMP (scaling-up scenario)\n\nparameters:\n vlb_image_name:\n type: string\n label: Image name or ID\n description: Image to be used for compute instance\n vlb_flavor_name:\n type: string\n label: Flavor\n description: Type of instance (flavor) to be used\n public_net_id:\n type: string\n label: Public network name or ID\n description: Public network that enables remote connection to VNF\n vlb_private_net_id:\n type: string\n label: vLoadBalancer private network name or ID\n description: Private network that connects vLoadBalancer with vDNSs\n ecomp_private_net_id:\n type: string\n label: ECOMP management network name or ID\n description: Private network that connects ECOMP component and the VNF\n vlb_private_ip_0:\n type: string\n label: vLoadBalancer private IP address towards the private network\n description: Private IP address that is assigned to the vLoadBalancer to communicate with the vDNSs\n vlb_private_ip_1:\n type: string\n label: vLoadBalancer private IP address towards the ECOMP management network\n description: Private IP address that is assigned to the vLoadBalancer to communicate with ECOMP components\n vdns_private_ip_0:\n type: string\n label: vDNS private IP address towards the private network\n description: Private IP address that is assigned to the vDNS to communicate with the vLoadBalancer\n vdns_private_ip_1:\n type: string\n label: vDNS private IP address towards the ECOMP management network\n description: Private IP address that is assigned to the vDNS to communicate with ECOMP components\n vdns_name_0:\n type: string\n label: vDNS name\n description: Name of the vDNS\n vnf_id:\n type: string\n label: VNF ID\n description: The VNF ID is provided by ECOMP\n vf_module_id:\n type: string\n label: vFirewall module ID\n description: The vLoadBalancer Module ID is provided by ECOMP\n webserver_ip:\n type: string\n label: Webserver IP address\n description: IP address of the webserver that hosts the source code and binaries\n dcae_collector_ip:\n type: string\n label: DCAE collector IP address\n description: IP address of the DCAE collector\n key_name:\n type: string\n label: Key pair name\n description: Public/Private key pair name\n pub_key:\n type: string\n label: Public key\n description: Public key to be installed on the compute instance\n\nresources:\n vdns_0:\n type: OS::Nova::Server\n properties:\n image: { get_param: vlb_image_name }\n flavor: { get_param: vlb_flavor_name }\n name: { get_param: vdns_name_0 }\n key_name: { get_param: key_name }\n networks:\n - network: { get_param: public_net_id }\n - port: { get_resource: vdns_private_0_port }\n - port: { get_resource: vdns_private_1_port }\n metadata: {vnf_id: { get_param: vnf_id }, vf_module_id: { get_param: vf_module_id }}\n user_data_format: RAW\n user_data:\n str_replace:\n params:\n __webserver__: { get_param: webserver_ip }\n __lb_oam_int__ : { get_param: vlb_private_ip_1 }\n __lb_private_ipaddr__: { get_param: vlb_private_ip_0 }\n __local_private_ipaddr__: { get_param: vdns_private_ip_0 }\n template: |\n #!/bin/bash\n\n WEBSERVER_IP=__webserver__\n LB_OAM_INT=__lb_oam_int__\n LB_PRIVATE_IPADDR=__lb_private_ipaddr__\n LOCAL_PRIVATE_IPADDR=__local_private_ipaddr__\n\n mkdir /opt/config\n cd /opt\n wget http://$WEBSERVER_IP/demo_repo/v_dns_init.sh\n wget http://$WEBSERVER_IP/demo_repo/vdns.sh\n chmod +x v_dns_init.sh\n chmod +x vdns.sh\n echo $WEBSERVER_IP > config/webserver_ip.txt\n echo $LB_OAM_INT > config/lb_oam_int.txt\n echo $LB_PRIVATE_IPADDR > config/lb_private_ipaddr.txt\n echo $LOCAL_PRIVATE_IPADDR > config/local_private_ipaddr.txt\n echo \"no\" > config/install.txt\n mv vdns.sh /etc/init.d\n update-rc.d vdns.sh defaults\n ./v_dns_init.sh\n\n vdns_private_0_port:\n type: OS::Neutron::Port\n properties:\n network: { get_param: vlb_private_net_id }\n fixed_ips: [{\"subnet\": { get_param: vlb_private_net_id }, \"ip_address\": { get_param: vdns_private_ip_0 }}]\n\n vdns_private_1_port:\n type: OS::Neutron::Port\n properties:\n network: { get_param: ecomp_private_net_id }\n fixed_ips: [{\"subnet\": { get_param: ecomp_private_net_id }, \"ip_address\": { get_param: vdns_private_ip_1 }}]\n',300,'MANUAL RECORD','2016-11-14 13:04:07'); + +INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID1','dcae_collector_ip','','string',NULL); +INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID1','ecomp_private_net_cidr','','string',NULL); +INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID1','ecomp_private_net_id','','string',NULL); +INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID1','key_name','','string',NULL); +INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID1','public_net_id','','string',NULL); +INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID1','pub_key','','string',NULL); +INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID1','vdns_private_ip_0','','string',NULL); +INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID1','vdns_private_ip_1','','string',NULL); +INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID1','vdsn_name_0','','string',NULL); +INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID1','vf_module_id','','string',NULL); +INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID1','vlb_flavor_name','','string',NULL); +INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID1','vlb_image_name','','string',NULL); +INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID1','vlb_name_0','','string',NULL); +INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID1','vlb_private_ip_0','','string',NULL); +INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID1','vlb_private_ip_1','','string',NULL); +INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID1','vlb_private_net_cidr','','string',NULL); +INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID1','vlb_private_net_id','','string',NULL); +INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID1','vnf_id','','string',NULL); +INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID1','webserver_ip','','string',NULL); +INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID2','dcae_collector_ip','','string',NULL); +INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID2','ecomp_private_net_id','','string',NULL); +INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID2','key_name','','string',NULL); +INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID2','public_net_id','','string',NULL); +INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID2','pub_key','','string',NULL); +INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID2','vdns_private_ip_0','','string',NULL); +INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID2','vdns_private_ip_1','','string',NULL); +INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID2','vdsn_name_0','','string',NULL); +INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID2','vf_module_id','','string',NULL); +INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID2','vlb_flavor_name','','string',NULL); +INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID2','vlb_image_name','','string',NULL); +INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID2','vlb_private_ip_0','','string',NULL); +INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID2','vlb_private_net_id','','string',NULL); +INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID2','vnf_id','','string',NULL); +INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID2','webserver_ip','','string',NULL); + +INSERT INTO `service` (`MODEL_UUID`, `MODEL_NAME`, `MODEL_INVARIANT_UUID`, `MODEL_VERSION`, `DESCRIPTION`, `CREATION_TIMESTAMP`, `TOSCA_CSAR_ARTIFACT_UUID`) VALUES ('1e34774e-715e-4fd6-bd09-7b654622f35i','dns-service','585822c8-4027-4f84-ba50-e9248606f111','1.0','dns service for unit test','2016-11-14 13:04:07',NULL); + +INSERT INTO `service_to_resource_customizations` (`SERVICE_MODEL_UUID`, `RESOURCE_MODEL_CUSTOMIZATION_UUID`, `MODEL_TYPE`, `CREATION_TIMESTAMP`) VALUES ('1e34774e-715e-4fd6-bd09-7b654622f35i','302aa6be-a9fe-11e7-8b4b-0242ac120002','vnf','2017-10-05 18:51:28'); + +INSERT INTO `vf_module` (`MODEL_UUID`, `MODEL_INVARIANT_UUID`, `MODEL_VERSION`, `MODEL_NAME`, `DESCRIPTION`, `IS_BASE`, `HEAT_TEMPLATE_ARTIFACT_UUID`, `VOL_HEAT_TEMPLATE_ARTIFACT_UUID`, `CREATION_TIMESTAMP`, `VNF_RESOURCE_MODEL_UUID`) VALUES ('1e34774e-715e-4fd5-bd08-7b654622f33e.VF_RI1_DNS::module-1::module-1.group','585822c7-4027-4f84-ba50-e9248606f132','1.0','VF_RI1_DNS::module-1',NULL,1,'Artifact-UUID1',NULL,'2016-11-14 13:04:07','585822c7-4027-4f84-ba50-e9248606f131'); +INSERT INTO `vf_module` (`MODEL_UUID`, `MODEL_INVARIANT_UUID`, `MODEL_VERSION`, `MODEL_NAME`, `DESCRIPTION`, `IS_BASE`, `HEAT_TEMPLATE_ARTIFACT_UUID`, `VOL_HEAT_TEMPLATE_ARTIFACT_UUID`, `CREATION_TIMESTAMP`, `VNF_RESOURCE_MODEL_UUID`) VALUES ('1e34774e-715e-4fd5-bd08-7b654622f33e.VF_RI1_DNS::module-2::module-1.group','585822c7-4027-4f84-ba50-e9248606f133','1.0','VF_RI1_DNS::module-2',NULL,0,'Artifact-UUID2',NULL,'2016-11-14 13:04:07','585822c7-4027-4f84-ba50-e9248606f131'); + +INSERT INTO `vf_module_customization` (`MODEL_CUSTOMIZATION_UUID`, `LABEL`, `INITIAL_COUNT`, `MIN_INSTANCES`, `MAX_INSTANCES`, `AVAILABILITY_ZONE_COUNT`, `HEAT_ENVIRONMENT_ARTIFACT_UUID`, `VOL_ENVIRONMENT_ARTIFACT_UUID`, `CREATION_TIMESTAMP`, `VF_MODULE_MODEL_UUID`) VALUES ('30316d81-a9fe-11e7-8b4b-0242ac120002',NULL,1,0,NULL,NULL,'EnvArtifact-UUID1',NULL,'2017-10-05 18:51:25','1e34774e-715e-4fd5-bd08-7b654622f33e.VF_RI1_DNS::module-1::module-1.group'); +INSERT INTO `vf_module_customization` (`MODEL_CUSTOMIZATION_UUID`, `LABEL`, `INITIAL_COUNT`, `MIN_INSTANCES`, `MAX_INSTANCES`, `AVAILABILITY_ZONE_COUNT`, `HEAT_ENVIRONMENT_ARTIFACT_UUID`, `VOL_ENVIRONMENT_ARTIFACT_UUID`, `CREATION_TIMESTAMP`, `VF_MODULE_MODEL_UUID`) VALUES ('303170ae-a9fe-11e7-8b4b-0242ac120002',NULL,0,0,NULL,NULL,'EnvArtifact-UUID2',NULL,'2017-10-05 18:51:25','1e34774e-715e-4fd5-bd08-7b654622f33e.VF_RI1_DNS::module-2::module-1.group'); +INSERT INTO `vnf_res_custom_to_vf_module_custom` (`VNF_RESOURCE_CUST_MODEL_CUSTOMIZATION_UUID`, `VF_MODULE_CUST_MODEL_CUSTOMIZATION_UUID`, `CREATION_TIMESTAMP`) VALUES ('302aa6be-a9fe-11e7-8b4b-0242ac120002','30316d81-a9fe-11e7-8b4b-0242ac120002','2017-10-05 18:51:26'); + +INSERT INTO `vnf_res_custom_to_vf_module_custom` (`VNF_RESOURCE_CUST_MODEL_CUSTOMIZATION_UUID`, `VF_MODULE_CUST_MODEL_CUSTOMIZATION_UUID`, `CREATION_TIMESTAMP`) VALUES ('302aa6be-a9fe-11e7-8b4b-0242ac120002','303170ae-a9fe-11e7-8b4b-0242ac120002','2017-10-05 18:51:26'); + +INSERT INTO `vnf_resource` (`ORCHESTRATION_MODE`, `DESCRIPTION`, `CREATION_TIMESTAMP`, `MODEL_UUID`, `AIC_VERSION_MIN`, `AIC_VERSION_MAX`, `MODEL_INVARIANT_UUID`, `MODEL_VERSION`, `MODEL_NAME`, `TOSCA_NODE_TYPE`, `HEAT_TEMPLATE_ARTIFACT_UUID`) VALUES ('HEAT','dns service for unit test1707MIGRATED','2016-11-14 13:04:07','585822c7-4027-4f84-ba50-e9248606f131',NULL,NULL,'585822c7-4027-4f84-ba50-e9248606f112','1.0','DNSResource',NULL,NULL); + +INSERT INTO `vnf_resource_customization` (`MODEL_CUSTOMIZATION_UUID`, `MODEL_INSTANCE_NAME`, `MIN_INSTANCES`, `MAX_INSTANCES`, `AVAILABILITY_ZONE_MAX_COUNT`, `NF_TYPE`, `NF_ROLE`, `NF_FUNCTION`, `NF_NAMING_CODE`, `CREATION_TIMESTAMP`, `VNF_RESOURCE_MODEL_UUID`) VALUES ('302aa6be-a9fe-11e7-8b4b-0242ac120002','DNSResource-1',NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2017-10-05 18:51:25','585822c7-4027-4f84-ba50-e9248606f131'); + +SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS; diff --git a/kubernetes/so/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/demo-vfw/create_mso_db-demo-vfw.sql b/kubernetes/so/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/demo-vfw/create_mso_db-demo-vfw.sql new file mode 100644 index 0000000000..15001050b2 --- /dev/null +++ b/kubernetes/so/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/demo-vfw/create_mso_db-demo-vfw.sql @@ -0,0 +1,59 @@ +SOURCE ../default/create_mso_db-default.sql + +USE `mso_requests`; +DROP USER 'mso'; +CREATE USER 'mso'; +GRANT ALL on mso_requests.* to 'mso' identified by 'mso123' with GRANT OPTION; +FLUSH PRIVILEGES; + +USE `mso_catalog`; +DROP USER 'catalog'; +CREATE USER 'catalog'; +GRANT ALL on mso_catalog.* to 'catalog' identified by 'catalog123' with GRANT OPTION; +FLUSH PRIVILEGES; + +SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0; + +INSERT INTO `heat_environment` (`ARTIFACT_UUID`, `NAME`, `VERSION`, `DESCRIPTION`, `BODY`, `ARTIFACT_CHECKSUM`, `CREATION_TIMESTAMP`) VALUES ('EnvArtifact-UUID3','base_vfw.env','1.0','base_vfw ENV file','parameters:\n vfw_image_name: Ubuntu 14.04 LTS (Trusty Tahr) (PVHVM)\n vfw_flavor_name: 4 GB General Purpose v1\n public_net_id: 00000000-0000-0000-0000-000000000000\n unprotected_private_net_id: zdfw1fwl01_unprotected\n protected_private_net_id: zdfw1fwl01_protected\n ecomp_private_net_id: oam_ecomp\n unprotected_private_net_cidr: 192.168.10.0/24\n protected_private_net_cidr: 192.168.20.0/24\n ecomp_private_net_cidr: 192.168.9.0/24\n vfw_private_ip_0: 192.168.10.100\n vfw_private_ip_1: 192.168.20.100\n vfw_private_ip_2: 192.168.9.100\n vpg_private_ip_0: 192.168.10.200\n vpg_private_ip_1: 192.168.9.200\n vsn_private_ip_0: 192.168.20.250\n vsn_private_ip_1: 192.168.9.250\n vfw_name_0: zdfw1fwl01fwl01\n vpg_name_0: zdfw1fwl01pgn01\n vsn_name_0: zdfw1fwl01snk01\n vnf_id: vFirewall_demo_app\n vf_module_id: vFirewall\n webserver_ip: 162.242.237.182\n dcae_collector_ip: 192.168.9.1\n key_name: vfw_key\n pub_key: INSERT YOUR PUBLIC KEY HERE','MANUAL RECORD','2016-11-14 13:04:07'); + +INSERT INTO `heat_template` (`ARTIFACT_UUID`, `NAME`, `VERSION`, `DESCRIPTION`, `BODY`, `TIMEOUT_MINUTES`, `ARTIFACT_CHECKSUM`, `CREATION_TIMESTAMP`) VALUES ('Artifact-UUID3','base_vfw.yaml','1.0','Base VFW Heat','heat_template_version: 2013-05-23\n\ndescription: Heat template to deploy vFirewall demo app for OpenECOMP\n\nparameters:\n vfw_image_name:\n type: string\n label: Image name or ID\n description: Image to be used for compute instance\n vfw_flavor_name:\n type: string\n label: Flavor\n description: Type of instance (flavor) to be used\n public_net_id:\n type: string\n label: Public network name or ID\n description: Public network that enables remote connection to VNF\n unprotected_private_net_id:\n type: string\n label: Unprotected private network name or ID\n description: Private network that connects vPacketGenerator with vFirewall\n protected_private_net_id:\n type: string\n label: Protected private network name or ID\n description: Private network that connects vFirewall with vSink\n ecomp_private_net_id:\n type: string\n label: ECOMP management network name or ID\n description: Private network that connects ECOMP component and the VNF\n unprotected_private_net_cidr:\n type: string\n label: Unprotected private network CIDR\n description: The CIDR of the unprotected private network\n protected_private_net_cidr:\n type: string\n label: Protected private network CIDR\n description: The CIDR of the protected private network\n ecomp_private_net_cidr:\n type: string\n label: ECOMP private network CIDR\n description: The CIDR of the protected private network\n vfw_private_ip_0:\n type: string\n label: vFirewall private IP address towards the unprotected network\n description: Private IP address that is assigned to the vFirewall to communicate with the vPacketGenerator\n vfw_private_ip_1:\n type: string\n label: vFirewall private IP address towards the protected network\n description: Private IP address that is assigned to the vFirewall to communicate with the vSink\n vfw_private_ip_2:\n type: string\n label: vFirewall private IP address towards the ECOMP management network\n description: Private IP address that is assigned to the vFirewall to communicate with ECOMP components\n vpg_private_ip_0:\n type: string\n label: vPacketGenerator private IP address towards the unprotected network\n description: Private IP address that is assigned to the vPacketGenerator to communicate with the vFirewall\n vpg_private_ip_1:\n type: string\n label: vPacketGenerator private IP address towards the ECOMP management network\n description: Private IP address that is assigned to the vPacketGenerator to communicate with ECOMP components\n vsn_private_ip_0:\n type: string\n label: vSink private IP address towards the protected network\n description: Private IP address that is assigned to the vSink to communicate with the vFirewall\n vsn_private_ip_1:\n type: string\n label: vSink private IP address towards the ECOMP management network\n description: Private IP address that is assigned to the vSink to communicate with ECOMP components\n vfw_name_0:\n type: string\n label: vFirewall name\n description: Name of the vFirewall\n vpg_name_0:\n type: string\n label: vPacketGenerator name\n description: Name of the vPacketGenerator\n vsn_name_0:\n type: string\n label: vSink name\n description: Name of the vSink\n vnf_id:\n type: string\n label: VNF ID\n description: The VNF ID is provided by ECOMP\n vf_module_id:\n type: string\n label: vFirewall module ID\n description: The vFirewall Module ID is provided by ECOMP\n webserver_ip:\n type: string\n label: Webserver IP address\n description: IP address of the webserver that hosts the source code and binaries\n dcae_collector_ip:\n type: string\n label: DCAE collector IP address\n description: IP address of the DCAE collector\n key_name:\n type: string\n label: Key pair name\n description: Public/Private key pair name\n pub_key:\n type: string\n label: Public key\n description: Public key to be installed on the compute instance\n\nresources:\n my_keypair:\n type: OS::Nova::KeyPair\n properties:\n name: { get_param: key_name }\n public_key: { get_param: pub_key }\n save_private_key: false\n\n unprotected_private_network:\n type: OS::Neutron::Net\n properties:\n name: { get_param: unprotected_private_net_id }\n\n protected_private_network:\n type: OS::Neutron::Net\n properties:\n name: { get_param: protected_private_net_id }\n\n unprotected_private_subnet:\n type: OS::Neutron::Subnet\n properties:\n network_id: { get_resource: unprotected_private_network }\n cidr: { get_param: unprotected_private_net_cidr }\n\n protected_private_subnet:\n type: OS::Neutron::Subnet\n properties:\n network_id: { get_resource: protected_private_network }\n cidr: { get_param: protected_private_net_cidr }\n\n vfw_0:\n type: OS::Nova::Server\n properties:\n image: { get_param: vfw_image_name }\n flavor: { get_param: vfw_flavor_name }\n name: { get_param: vfw_name_0 }\n key_name: { get_resource: my_keypair }\n networks:\n - network: { get_param: public_net_id }\n - port: { get_resource: vfw_private_0_port }\n - port: { get_resource: vfw_private_1_port }\n - port: { get_resource: vfw_private_2_port }\n metadata: {vnf_id: { get_param: vnf_id }, vf_module_id: { get_param: vf_module_id }}\n user_data_format: RAW\n user_data:\n str_replace:\n params:\n __webserver__: { get_param: webserver_ip }\n __dcae_collector_ip__ : { get_param: dcae_collector_ip }\n template: |\n #!/bin/bash\n\n WEBSERVER_IP=__webserver__\n DCAE_COLLECTOR_IP=__dcae_collector_ip__\n\n mkdir /opt/config\n cd /opt\n wget http://$WEBSERVER_IP/demo_repo/v_firewall_init.sh\n wget http://$WEBSERVER_IP/demo_repo/vfirewall.sh\n chmod +x v_firewall_init.sh\n chmod +x vfirewall.sh\n echo $WEBSERVER_IP > config/webserver_ip.txt\n echo $DCAE_COLLECTOR_IP > config/dcae_collector_ip.txt\n echo \"no\" > config/install.txt\n mv vfirewall.sh /etc/init.d\n sudo update-rc.d vfirewall.sh defaults\n ./v_firewall_init.sh\n\n vfw_private_0_port:\n type: OS::Neutron::Port\n properties:\n network: { get_resource: unprotected_private_network }\n fixed_ips: [{\"subnet\": { get_resource: unprotected_private_subnet }, \"ip_address\": { get_param: vfw_private_ip_0 }}]\n\n vfw_private_1_port:\n type: OS::Neutron::Port\n properties:\n network: { get_resource: protected_private_network }\n fixed_ips: [{\"subnet\": { get_resource: protected_private_subnet }, \"ip_address\": { get_param: vfw_private_ip_1 }}]\n\n vfw_private_2_port:\n type: OS::Neutron::Port\n properties:\n network: { get_param: ecomp_private_net_id }\n fixed_ips: [{\"subnet\": { get_param: ecomp_private_net_id }, \"ip_address\": { get_param: vfw_private_ip_2 }}]\n\n vpg_0:\n type: OS::Nova::Server\n properties:\n image: { get_param: vfw_image_name }\n flavor: { get_param: vfw_flavor_name }\n name: { get_param: vpg_name_0 }\n key_name: { get_resource: my_keypair }\n networks:\n - network: { get_param: public_net_id }\n - port: { get_resource: vpg_private_0_port }\n - port: { get_resource: vpg_private_1_port }\n metadata: {vnf_id: { get_param: vnf_id }, vf_module_id: { get_param: vf_module_id }}\n user_data_format: RAW\n user_data:\n str_replace:\n params:\n __webserver__: { get_param: webserver_ip }\n __fw_ipaddr__: { get_param: vfw_private_ip_0 }\n __protected_net_cidr__: { get_param: protected_private_net_cidr }\n __sink_ipaddr__: { get_param: vsn_private_ip_0 }\n template: |\n #!/bin/bash\n\n WEBSERVER_IP=__webserver__\n FW_IPADDR=__fw_ipaddr__\n PROTECTED_NET_CIDR=__protected_net_cidr__\n SINK_IPADDR=__sink_ipaddr__\n\n mkdir /opt/config\n cd /opt\n wget http://$WEBSERVER_IP/demo_repo/v_packetgen_init.sh\n wget http://$WEBSERVER_IP/demo_repo/vpacketgen.sh\n chmod +x v_packetgen_init.sh\n chmod +x vpacketgen.sh\n echo $WEBSERVER_IP > config/webserver_ip.txt\n echo $FW_IPADDR > config/fw_ipaddr.txt\n echo $PROTECTED_NET_CIDR > config/protected_net_cidr.txt\n echo $SINK_IPADDR > config/sink_ipaddr.txt\n echo \"no\" > config/install.txt\n mv vpacketgen.sh /etc/init.d\n sudo update-rc.d vpacketgen.sh defaults\n ./v_packetgen_init.sh\n\n vpg_private_0_port:\n type: OS::Neutron::Port\n properties:\n network: { get_resource: unprotected_private_network }\n fixed_ips: [{\"subnet\": { get_resource: unprotected_private_subnet }, \"ip_address\": { get_param: vpg_private_ip_0 }}]\n\n vpg_private_1_port:\n type: OS::Neutron::Port\n properties:\n network: { get_param: ecomp_private_net_id }\n fixed_ips: [{\"subnet\": { get_param: ecomp_private_net_id }, \"ip_address\": { get_param: vpg_private_ip_1 }}]\n\n vsn_0:\n type: OS::Nova::Server\n properties:\n image: { get_param: vfw_image_name }\n flavor: { get_param: vfw_flavor_name }\n name: { get_param: vsn_name_0 }\n key_name: { get_resource: my_keypair }\n networks:\n - network: { get_param: public_net_id }\n - port: { get_resource: vsn_private_0_port }\n - port: { get_resource: vsn_private_1_port }\n metadata: {vnf_id: { get_param: vnf_id }, vf_module_id: { get_param: vf_module_id }}\n user_data_format: RAW\n user_data:\n str_replace:\n params:\n __webserver__: { get_param: webserver_ip }\n __protected_net_gw__: { get_param: vfw_private_ip_1 }\n __unprotected_net__: { get_param: unprotected_private_net_cidr }\n template: |\n #!/bin/bash\n\n WEBSERVER_IP=__webserver__\n PROTECTED_NET_GW=__protected_net_gw__\n UNPROTECTED_NET=__unprotected_net__\n UNPROTECTED_NET=$(echo $UNPROTECTED_NET | cut -d\'/\' -f1)\n\n mkdir /opt/config\n cd /opt\n wget http://$WEBSERVER_IP/demo_repo/v_sink_init.sh\n wget http://$WEBSERVER_IP/demo_repo/vsink.sh\n chmod +x v_sink_init.sh\n chmod +x vsink.sh\n echo $PROTECTED_NET_GW > config/protected_net_gw.txt\n echo $UNPROTECTED_NET > config/unprotected_net.txt\n echo \"no\" > config/install.txt\n mv vsink.sh /etc/init.d\n sudo update-rc.d vsink.sh defaults\n ./v_sink_init.sh\n\n vsn_private_0_port:\n type: OS::Neutron::Port\n properties:\n network: { get_resource: protected_private_network }\n fixed_ips: [{\"subnet\": { get_resource: protected_private_subnet }, \"ip_address\": { get_param: vsn_private_ip_0 }}]\n\n vsn_private_1_port:\n type: OS::Neutron::Port\n properties:\n network: { get_param: ecomp_private_net_id }\n fixed_ips: [{\"subnet\": { get_param: ecomp_private_net_id }, \"ip_address\": { get_param: vsn_private_ip_1 }}]\n \n',300,'MANUAL RECORD','2016-11-14 13:04:07'); + +INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID3','dcae_collector_ip','','string',NULL); +INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID3','ecomp_private_net_cidr','','string',NULL); +INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID3','ecomp_private_net_id','','string',NULL); +INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID3','key_name','','string',NULL); +INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID3','protected_private_net_cidr','','string',NULL); +INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID3','protected_private_net_id','','string',NULL); +INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID3','public_net_id','','string',NULL); +INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID3','pub_key','','string',NULL); +INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID3','unprotected_private_net_cidr','','string',NULL); +INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID3','unprotected_private_net_id','','string',NULL); +INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID3','vfw_flavor_name','','string',NULL); +INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID3','vfw_image_name','','string',NULL); +INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID3','vfw_name_0','','string',NULL); +INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID3','vfw_private_ip_0','','string',NULL); +INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID3','vfw_private_ip_1','','string',NULL); +INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID3','vfw_private_ip_2','','string',NULL); +INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID3','vf_module_id','','string',NULL); +INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID3','vnf_id','','string',NULL); +INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID3','vpg_name_0','','string',NULL); +INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID3','vpg_private_ip_0','','string',NULL); +INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID3','vpg_private_ip_1','','string',NULL); +INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID3','vsn_name_0','','string',NULL); +INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID3','vsn_private_ip_0','','string',NULL); +INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID3','vsn_private_ip_1','','string',NULL); +INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID3','webserver_ip','','string',NULL); + +INSERT INTO `service` (`MODEL_UUID`, `MODEL_NAME`, `MODEL_INVARIANT_UUID`, `MODEL_VERSION`, `DESCRIPTION`, `CREATION_TIMESTAMP`, `TOSCA_CSAR_ARTIFACT_UUID`) VALUES ('2e34774e-715e-4fd5-bd09-7b654622f35i','vfw-service','585822c7-4027-4f84-ba50-e9248606f112','1.0','VFW service','2016-11-14 13:04:07',NULL); + +INSERT INTO `vf_module` (`MODEL_UUID`, `MODEL_INVARIANT_UUID`, `MODEL_VERSION`, `MODEL_NAME`, `DESCRIPTION`, `IS_BASE`, `HEAT_TEMPLATE_ARTIFACT_UUID`, `VOL_HEAT_TEMPLATE_ARTIFACT_UUID`, `CREATION_TIMESTAMP`, `VNF_RESOURCE_MODEL_UUID`) VALUES ('1e34774e-715e-4fd5-bd08-7b654622f33f.VF_RI1_VFW::module-1::module-1.group','585822c7-4027-4f84-ba50-e9248606f134','1.0','VF_RI1_VFW::module-1',NULL,1,'Artifact-UUID3',NULL,'2016-11-14 13:04:07','685822c7-4027-4f84-ba50-e9248606f132'); + +INSERT INTO `vf_module_customization` (`MODEL_CUSTOMIZATION_UUID`, `LABEL`, `INITIAL_COUNT`, `MIN_INSTANCES`, `MAX_INSTANCES`, `AVAILABILITY_ZONE_COUNT`, `HEAT_ENVIRONMENT_ARTIFACT_UUID`, `VOL_ENVIRONMENT_ARTIFACT_UUID`, `CREATION_TIMESTAMP`, `VF_MODULE_MODEL_UUID`) VALUES ('5aa23938-a9fe-11e7-8b4b-0242ac120002',NULL,1,0,NULL,NULL,'EnvArtifact-UUID3',NULL,'2017-10-05 18:52:03','1e34774e-715e-4fd5-bd08-7b654622f33f.VF_RI1_VFW::module-1::module-1.group'); + +INSERT INTO `vnf_res_custom_to_vf_module_custom` (`VNF_RESOURCE_CUST_MODEL_CUSTOMIZATION_UUID`, `VF_MODULE_CUST_MODEL_CUSTOMIZATION_UUID`, `CREATION_TIMESTAMP`) VALUES ('5a9bd247-a9fe-11e7-8b4b-0242ac120002','5aa23938-a9fe-11e7-8b4b-0242ac120002','2017-10-05 18:52:03'); + +INSERT INTO `vnf_resource` (`ORCHESTRATION_MODE`, `DESCRIPTION`, `CREATION_TIMESTAMP`, `MODEL_UUID`, `AIC_VERSION_MIN`, `AIC_VERSION_MAX`, `MODEL_INVARIANT_UUID`, `MODEL_VERSION`, `MODEL_NAME`, `TOSCA_NODE_TYPE`, `HEAT_TEMPLATE_ARTIFACT_UUID`) VALUES ('HEAT','VFW service1707MIGRATED','2016-11-14 13:04:07','685822c7-4027-4f84-ba50-e9248606f132',NULL,NULL,'585822c7-4027-4f84-ba50-e9248606f113','1.0','VFWResource',NULL,NULL); + +INSERT INTO `vnf_resource_customization` (`MODEL_CUSTOMIZATION_UUID`, `MODEL_INSTANCE_NAME`, `MIN_INSTANCES`, `MAX_INSTANCES`, `AVAILABILITY_ZONE_MAX_COUNT`, `NF_TYPE`, `NF_ROLE`, `NF_FUNCTION`, `NF_NAMING_CODE`, `CREATION_TIMESTAMP`, `VNF_RESOURCE_MODEL_UUID`) VALUES ('5a9bd247-a9fe-11e7-8b4b-0242ac120002','VFWResource-1',NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2017-10-05 18:52:03','685822c7-4027-4f84-ba50-e9248606f132'); + +SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS; diff --git a/kubernetes/so/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/camunda/mariadb_engine_7.7.3-ee.sql b/kubernetes/so/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/camunda/mariadb_engine_7.7.3-ee.sql new file mode 100644 index 0000000000..b9b8dd62c9 --- /dev/null +++ b/kubernetes/so/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/camunda/mariadb_engine_7.7.3-ee.sql @@ -0,0 +1,1195 @@ +DROP DATABASE IF EXISTS `camundabpmn`; + +CREATE DATABASE `camundabpmn`; + +USE `camundabpmn`; + +# DROP USER IF EXISTS 'camunda'; +delete from mysql.user where User='camunda'; +CREATE USER 'camunda'; +GRANT ALL on camundabpmn.* to 'camunda' identified by 'camunda123' with GRANT OPTION; +FLUSH PRIVILEGES; + +USE `camundabpmn`; + +create table ACT_GE_PROPERTY ( + NAME_ varchar(64), + VALUE_ varchar(300), + REV_ integer, + primary key (NAME_) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +insert into ACT_GE_PROPERTY +values ('schema.version', 'fox', 1); + +insert into ACT_GE_PROPERTY +values ('schema.history', 'create(fox)', 1); + +insert into ACT_GE_PROPERTY +values ('next.dbid', '1', 1); + +insert into ACT_GE_PROPERTY +values ('deployment.lock', '0', 1); + +insert into ACT_GE_PROPERTY +values ('history.cleanup.job.lock', '0', 1); + +create table ACT_GE_BYTEARRAY ( + ID_ varchar(64), + REV_ integer, + NAME_ varchar(255), + DEPLOYMENT_ID_ varchar(64), + BYTES_ LONGBLOB, + GENERATED_ TINYINT, + TENANT_ID_ varchar(64), + primary key (ID_) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +create table ACT_RE_DEPLOYMENT ( + ID_ varchar(64), + NAME_ varchar(255), + DEPLOY_TIME_ timestamp(3), + SOURCE_ varchar(255), + TENANT_ID_ varchar(64), + primary key (ID_) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +create table ACT_RU_EXECUTION ( + ID_ varchar(64), + REV_ integer, + PROC_INST_ID_ varchar(64), + BUSINESS_KEY_ varchar(255), + PARENT_ID_ varchar(64), + PROC_DEF_ID_ varchar(64), + SUPER_EXEC_ varchar(64), + SUPER_CASE_EXEC_ varchar(64), + CASE_INST_ID_ varchar(64), + ACT_ID_ varchar(255), + ACT_INST_ID_ varchar(64), + IS_ACTIVE_ TINYINT, + IS_CONCURRENT_ TINYINT, + IS_SCOPE_ TINYINT, + IS_EVENT_SCOPE_ TINYINT, + SUSPENSION_STATE_ integer, + CACHED_ENT_STATE_ integer, + SEQUENCE_COUNTER_ bigint, + TENANT_ID_ varchar(64), + primary key (ID_) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +create table ACT_RU_JOB ( + ID_ varchar(64) NOT NULL, + REV_ integer, + TYPE_ varchar(255) NOT NULL, + LOCK_EXP_TIME_ timestamp(3) NULL, + LOCK_OWNER_ varchar(255), + EXCLUSIVE_ boolean, + EXECUTION_ID_ varchar(64), + PROCESS_INSTANCE_ID_ varchar(64), + PROCESS_DEF_ID_ varchar(64), + PROCESS_DEF_KEY_ varchar(255), + RETRIES_ integer, + EXCEPTION_STACK_ID_ varchar(64), + EXCEPTION_MSG_ varchar(4000), + DUEDATE_ timestamp(3) NULL, + REPEAT_ varchar(255), + HANDLER_TYPE_ varchar(255), + HANDLER_CFG_ varchar(4000), + DEPLOYMENT_ID_ varchar(64), + SUSPENSION_STATE_ integer NOT NULL DEFAULT 1, + JOB_DEF_ID_ varchar(64), + PRIORITY_ bigint NOT NULL DEFAULT 0, + SEQUENCE_COUNTER_ bigint, + TENANT_ID_ varchar(64), + primary key (ID_) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +create table ACT_RU_JOBDEF ( + ID_ varchar(64) NOT NULL, + REV_ integer, + PROC_DEF_ID_ varchar(64), + PROC_DEF_KEY_ varchar(255), + ACT_ID_ varchar(255), + JOB_TYPE_ varchar(255) NOT NULL, + JOB_CONFIGURATION_ varchar(255), + SUSPENSION_STATE_ integer, + JOB_PRIORITY_ bigint, + TENANT_ID_ varchar(64), + primary key (ID_) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +create table ACT_RE_PROCDEF ( + ID_ varchar(64) not null, + REV_ integer, + CATEGORY_ varchar(255), + NAME_ varchar(255), + KEY_ varchar(255) not null, + VERSION_ integer not null, + DEPLOYMENT_ID_ varchar(64), + RESOURCE_NAME_ varchar(4000), + DGRM_RESOURCE_NAME_ varchar(4000), + HAS_START_FORM_KEY_ TINYINT, + SUSPENSION_STATE_ integer, + TENANT_ID_ varchar(64), + VERSION_TAG_ varchar(64), + HISTORY_TTL_ integer, + primary key (ID_) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +create table ACT_RU_TASK ( + ID_ varchar(64), + REV_ integer, + EXECUTION_ID_ varchar(64), + PROC_INST_ID_ varchar(64), + PROC_DEF_ID_ varchar(64), + CASE_EXECUTION_ID_ varchar(64), + CASE_INST_ID_ varchar(64), + CASE_DEF_ID_ varchar(64), + NAME_ varchar(255), + PARENT_TASK_ID_ varchar(64), + DESCRIPTION_ varchar(4000), + TASK_DEF_KEY_ varchar(255), + OWNER_ varchar(255), + ASSIGNEE_ varchar(255), + DELEGATION_ varchar(64), + PRIORITY_ integer, + CREATE_TIME_ timestamp(3), + DUE_DATE_ datetime(3), + FOLLOW_UP_DATE_ datetime(3), + SUSPENSION_STATE_ integer, + TENANT_ID_ varchar(64), + primary key (ID_) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +create table ACT_RU_IDENTITYLINK ( + ID_ varchar(64), + REV_ integer, + GROUP_ID_ varchar(255), + TYPE_ varchar(255), + USER_ID_ varchar(255), + TASK_ID_ varchar(64), + PROC_DEF_ID_ varchar(64), + TENANT_ID_ varchar(64), + primary key (ID_) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +create table ACT_RU_VARIABLE ( + ID_ varchar(64) not null, + REV_ integer, + TYPE_ varchar(255) not null, + NAME_ varchar(255) not null, + EXECUTION_ID_ varchar(64), + PROC_INST_ID_ varchar(64), + CASE_EXECUTION_ID_ varchar(64), + CASE_INST_ID_ varchar(64), + TASK_ID_ varchar(64), + BYTEARRAY_ID_ varchar(64), + DOUBLE_ double, + LONG_ bigint, + TEXT_ LONGBLOB NULL, + TEXT2_ LONGBLOB NULL, + VAR_SCOPE_ varchar(64) not null, + SEQUENCE_COUNTER_ bigint, + IS_CONCURRENT_LOCAL_ TINYINT, + TENANT_ID_ varchar(64), + primary key (ID_) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +create table ACT_RU_EVENT_SUBSCR ( + ID_ varchar(64) not null, + REV_ integer, + EVENT_TYPE_ varchar(255) not null, + EVENT_NAME_ varchar(255), + EXECUTION_ID_ varchar(64), + PROC_INST_ID_ varchar(64), + ACTIVITY_ID_ varchar(255), + CONFIGURATION_ varchar(255), + CREATED_ timestamp(3) not null, + TENANT_ID_ varchar(64), + primary key (ID_) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +create table ACT_RU_INCIDENT ( + ID_ varchar(64) not null, + REV_ integer not null, + INCIDENT_TIMESTAMP_ timestamp(3) not null, + INCIDENT_MSG_ varchar(4000), + INCIDENT_TYPE_ varchar(255) not null, + EXECUTION_ID_ varchar(64), + ACTIVITY_ID_ varchar(255), + PROC_INST_ID_ varchar(64), + PROC_DEF_ID_ varchar(64), + CAUSE_INCIDENT_ID_ varchar(64), + ROOT_CAUSE_INCIDENT_ID_ varchar(64), + CONFIGURATION_ varchar(255), + TENANT_ID_ varchar(64), + JOB_DEF_ID_ varchar(64), + primary key (ID_) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +create table ACT_RU_AUTHORIZATION ( + ID_ varchar(64) not null, + REV_ integer not null, + TYPE_ integer not null, + GROUP_ID_ varchar(255), + USER_ID_ varchar(255), + RESOURCE_TYPE_ integer not null, + RESOURCE_ID_ varchar(64), + PERMS_ integer, + primary key (ID_) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +create table ACT_RU_FILTER ( + ID_ varchar(64) not null, + REV_ integer not null, + RESOURCE_TYPE_ varchar(255) not null, + NAME_ varchar(255) not null, + OWNER_ varchar(255), + QUERY_ LONGTEXT not null, + PROPERTIES_ LONGTEXT, + primary key (ID_) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +create table ACT_RU_METER_LOG ( + ID_ varchar(64) not null, + NAME_ varchar(64) not null, + REPORTER_ varchar(255), + VALUE_ bigint, + TIMESTAMP_ timestamp(3), + MILLISECONDS_ bigint DEFAULT 0, + primary key (ID_) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +create table ACT_RU_EXT_TASK ( + ID_ varchar(64) not null, + REV_ integer not null, + WORKER_ID_ varchar(255), + TOPIC_NAME_ varchar(255), + RETRIES_ integer, + ERROR_MSG_ varchar(4000), + ERROR_DETAILS_ID_ varchar(64), + LOCK_EXP_TIME_ timestamp(3) NULL, + SUSPENSION_STATE_ integer, + EXECUTION_ID_ varchar(64), + PROC_INST_ID_ varchar(64), + PROC_DEF_ID_ varchar(64), + PROC_DEF_KEY_ varchar(255), + ACT_ID_ varchar(255), + ACT_INST_ID_ varchar(64), + TENANT_ID_ varchar(64), + PRIORITY_ bigint NOT NULL DEFAULT 0, + primary key (ID_) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +create table ACT_RU_BATCH ( + ID_ varchar(64) not null, + REV_ integer not null, + TYPE_ varchar(255), + TOTAL_JOBS_ integer, + JOBS_CREATED_ integer, + JOBS_PER_SEED_ integer, + INVOCATIONS_PER_JOB_ integer, + SEED_JOB_DEF_ID_ varchar(64), + BATCH_JOB_DEF_ID_ varchar(64), + MONITOR_JOB_DEF_ID_ varchar(64), + SUSPENSION_STATE_ integer, + CONFIGURATION_ varchar(255), + TENANT_ID_ varchar(64), + primary key (ID_) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +create index ACT_IDX_EXEC_BUSKEY on ACT_RU_EXECUTION(BUSINESS_KEY_); +create index ACT_IDX_EXEC_TENANT_ID on ACT_RU_EXECUTION(TENANT_ID_); +create index ACT_IDX_TASK_CREATE on ACT_RU_TASK(CREATE_TIME_); +create index ACT_IDX_TASK_ASSIGNEE on ACT_RU_TASK(ASSIGNEE_); +create index ACT_IDX_TASK_TENANT_ID on ACT_RU_TASK(TENANT_ID_); +create index ACT_IDX_IDENT_LNK_USER on ACT_RU_IDENTITYLINK(USER_ID_); +create index ACT_IDX_IDENT_LNK_GROUP on ACT_RU_IDENTITYLINK(GROUP_ID_); +create index ACT_IDX_EVENT_SUBSCR_CONFIG_ on ACT_RU_EVENT_SUBSCR(CONFIGURATION_); +create index ACT_IDX_EVENT_SUBSCR_TENANT_ID on ACT_RU_EVENT_SUBSCR(TENANT_ID_); +create index ACT_IDX_VARIABLE_TASK_ID on ACT_RU_VARIABLE(TASK_ID_); +create index ACT_IDX_VARIABLE_TENANT_ID on ACT_RU_VARIABLE(TENANT_ID_); +create index ACT_IDX_ATHRZ_PROCEDEF on ACT_RU_IDENTITYLINK(PROC_DEF_ID_); +create index ACT_IDX_INC_CONFIGURATION on ACT_RU_INCIDENT(CONFIGURATION_); +create index ACT_IDX_INC_TENANT_ID on ACT_RU_INCIDENT(TENANT_ID_); +-- CAM-5914 +create index ACT_IDX_JOB_EXECUTION_ID on ACT_RU_JOB(EXECUTION_ID_); +-- this index needs to be limited in mariadb see CAM-6938 +create index ACT_IDX_JOB_HANDLER on ACT_RU_JOB(HANDLER_TYPE_(100),HANDLER_CFG_(155)); +create index ACT_IDX_JOB_PROCINST on ACT_RU_JOB(PROCESS_INSTANCE_ID_); +create index ACT_IDX_JOB_TENANT_ID on ACT_RU_JOB(TENANT_ID_); +create index ACT_IDX_JOBDEF_TENANT_ID on ACT_RU_JOBDEF(TENANT_ID_); + +-- new metric milliseconds column +CREATE INDEX ACT_IDX_METER_LOG_MS ON ACT_RU_METER_LOG(MILLISECONDS_); +CREATE INDEX ACT_IDX_METER_LOG_NAME_MS ON ACT_RU_METER_LOG(NAME_, MILLISECONDS_); +CREATE INDEX ACT_IDX_METER_LOG_REPORT ON ACT_RU_METER_LOG(NAME_, REPORTER_, MILLISECONDS_); + +-- old metric timestamp column +CREATE INDEX ACT_IDX_METER_LOG_TIME ON ACT_RU_METER_LOG(TIMESTAMP_); +CREATE INDEX ACT_IDX_METER_LOG ON ACT_RU_METER_LOG(NAME_, TIMESTAMP_); + +create index ACT_IDX_EXT_TASK_TOPIC on ACT_RU_EXT_TASK(TOPIC_NAME_); +create index ACT_IDX_EXT_TASK_TENANT_ID on ACT_RU_EXT_TASK(TENANT_ID_); +create index ACT_IDX_EXT_TASK_PRIORITY ON ACT_RU_EXT_TASK(PRIORITY_); +create index ACT_IDX_EXT_TASK_ERR_DETAILS ON ACT_RU_EXT_TASK(ERROR_DETAILS_ID_); +create index ACT_IDX_AUTH_GROUP_ID ON ACT_RU_AUTHORIZATION(GROUP_ID_); +create index ACT_IDX_JOB_JOB_DEF_ID on ACT_RU_JOB(JOB_DEF_ID_); + +alter table ACT_GE_BYTEARRAY + add constraint ACT_FK_BYTEARR_DEPL + foreign key (DEPLOYMENT_ID_) + references ACT_RE_DEPLOYMENT (ID_); + +alter table ACT_RU_EXECUTION + add constraint ACT_FK_EXE_PROCINST + foreign key (PROC_INST_ID_) + references ACT_RU_EXECUTION (ID_) on delete cascade on update cascade; + +alter table ACT_RU_EXECUTION + add constraint ACT_FK_EXE_PARENT + foreign key (PARENT_ID_) + references ACT_RU_EXECUTION (ID_); + +alter table ACT_RU_EXECUTION + add constraint ACT_FK_EXE_SUPER + foreign key (SUPER_EXEC_) + references ACT_RU_EXECUTION (ID_); + +alter table ACT_RU_EXECUTION + add constraint ACT_FK_EXE_PROCDEF + foreign key (PROC_DEF_ID_) + references ACT_RE_PROCDEF (ID_); + +alter table ACT_RU_IDENTITYLINK + add constraint ACT_FK_TSKASS_TASK + foreign key (TASK_ID_) + references ACT_RU_TASK (ID_); + +alter table ACT_RU_IDENTITYLINK + add constraint ACT_FK_ATHRZ_PROCEDEF + foreign key (PROC_DEF_ID_) + references ACT_RE_PROCDEF(ID_); + +alter table ACT_RU_TASK + add constraint ACT_FK_TASK_EXE + foreign key (EXECUTION_ID_) + references ACT_RU_EXECUTION (ID_); + +alter table ACT_RU_TASK + add constraint ACT_FK_TASK_PROCINST + foreign key (PROC_INST_ID_) + references ACT_RU_EXECUTION (ID_); + +alter table ACT_RU_TASK + add constraint ACT_FK_TASK_PROCDEF + foreign key (PROC_DEF_ID_) + references ACT_RE_PROCDEF (ID_); + +alter table ACT_RU_VARIABLE + add constraint ACT_FK_VAR_EXE + foreign key (EXECUTION_ID_) + references ACT_RU_EXECUTION (ID_); + +alter table ACT_RU_VARIABLE + add constraint ACT_FK_VAR_PROCINST + foreign key (PROC_INST_ID_) + references ACT_RU_EXECUTION(ID_); + +alter table ACT_RU_VARIABLE + add constraint ACT_FK_VAR_BYTEARRAY + foreign key (BYTEARRAY_ID_) + references ACT_GE_BYTEARRAY (ID_); + +alter table ACT_RU_JOB + add constraint ACT_FK_JOB_EXCEPTION + foreign key (EXCEPTION_STACK_ID_) + references ACT_GE_BYTEARRAY (ID_); + +alter table ACT_RU_EVENT_SUBSCR + add constraint ACT_FK_EVENT_EXEC + foreign key (EXECUTION_ID_) + references ACT_RU_EXECUTION(ID_); + +alter table ACT_RU_INCIDENT + add constraint ACT_FK_INC_EXE + foreign key (EXECUTION_ID_) + references ACT_RU_EXECUTION (ID_); + +alter table ACT_RU_INCIDENT + add constraint ACT_FK_INC_PROCINST + foreign key (PROC_INST_ID_) + references ACT_RU_EXECUTION (ID_); + +alter table ACT_RU_INCIDENT + add constraint ACT_FK_INC_PROCDEF + foreign key (PROC_DEF_ID_) + references ACT_RE_PROCDEF (ID_); + +alter table ACT_RU_INCIDENT + add constraint ACT_FK_INC_CAUSE + foreign key (CAUSE_INCIDENT_ID_) + references ACT_RU_INCIDENT (ID_) on delete cascade on update cascade; + +alter table ACT_RU_INCIDENT + add constraint ACT_FK_INC_RCAUSE + foreign key (ROOT_CAUSE_INCIDENT_ID_) + references ACT_RU_INCIDENT (ID_) on delete cascade on update cascade; + +alter table ACT_RU_EXT_TASK + add constraint ACT_FK_EXT_TASK_ERROR_DETAILS + foreign key (ERROR_DETAILS_ID_) + references ACT_GE_BYTEARRAY (ID_); + +create index ACT_IDX_INC_JOB_DEF on ACT_RU_INCIDENT(JOB_DEF_ID_); +alter table ACT_RU_INCIDENT + add constraint ACT_FK_INC_JOB_DEF + foreign key (JOB_DEF_ID_) + references ACT_RU_JOBDEF (ID_); + +alter table ACT_RU_AUTHORIZATION + add constraint ACT_UNIQ_AUTH_USER + unique (USER_ID_,TYPE_,RESOURCE_TYPE_,RESOURCE_ID_); + +alter table ACT_RU_AUTHORIZATION + add constraint ACT_UNIQ_AUTH_GROUP + unique (GROUP_ID_,TYPE_,RESOURCE_TYPE_,RESOURCE_ID_); + +alter table ACT_RU_VARIABLE + add constraint ACT_UNIQ_VARIABLE + unique (VAR_SCOPE_, NAME_); + +alter table ACT_RU_EXT_TASK + add constraint ACT_FK_EXT_TASK_EXE + foreign key (EXECUTION_ID_) + references ACT_RU_EXECUTION (ID_); + +create index ACT_IDX_BATCH_SEED_JOB_DEF ON ACT_RU_BATCH(SEED_JOB_DEF_ID_); +alter table ACT_RU_BATCH + add constraint ACT_FK_BATCH_SEED_JOB_DEF + foreign key (SEED_JOB_DEF_ID_) + references ACT_RU_JOBDEF (ID_); + +create index ACT_IDX_BATCH_MONITOR_JOB_DEF ON ACT_RU_BATCH(MONITOR_JOB_DEF_ID_); +alter table ACT_RU_BATCH + add constraint ACT_FK_BATCH_MONITOR_JOB_DEF + foreign key (MONITOR_JOB_DEF_ID_) + references ACT_RU_JOBDEF (ID_); + +create index ACT_IDX_BATCH_JOB_DEF ON ACT_RU_BATCH(BATCH_JOB_DEF_ID_); +alter table ACT_RU_BATCH + add constraint ACT_FK_BATCH_JOB_DEF + foreign key (BATCH_JOB_DEF_ID_) + references ACT_RU_JOBDEF (ID_); + +-- indexes for deadlock problems - https://app.camunda.com/jira/browse/CAM-2567 -- +create index ACT_IDX_INC_CAUSEINCID on ACT_RU_INCIDENT(CAUSE_INCIDENT_ID_); +create index ACT_IDX_INC_EXID on ACT_RU_INCIDENT(EXECUTION_ID_); +create index ACT_IDX_INC_PROCDEFID on ACT_RU_INCIDENT(PROC_DEF_ID_); +create index ACT_IDX_INC_PROCINSTID on ACT_RU_INCIDENT(PROC_INST_ID_); +create index ACT_IDX_INC_ROOTCAUSEINCID on ACT_RU_INCIDENT(ROOT_CAUSE_INCIDENT_ID_); +-- index for deadlock problem - https://app.camunda.com/jira/browse/CAM-4440 -- +create index ACT_IDX_AUTH_RESOURCE_ID on ACT_RU_AUTHORIZATION(RESOURCE_ID_); +-- index to prevent deadlock on fk constraint - https://app.camunda.com/jira/browse/CAM-5440 -- +create index ACT_IDX_EXT_TASK_EXEC on ACT_RU_EXT_TASK(EXECUTION_ID_); + +-- indexes to improve deployment +create index ACT_IDX_BYTEARRAY_NAME on ACT_GE_BYTEARRAY(NAME_); +create index ACT_IDX_DEPLOYMENT_NAME on ACT_RE_DEPLOYMENT(NAME_); +create index ACT_IDX_DEPLOYMENT_TENANT_ID on ACT_RE_DEPLOYMENT(TENANT_ID_); +create index ACT_IDX_JOBDEF_PROC_DEF_ID ON ACT_RU_JOBDEF(PROC_DEF_ID_); +create index ACT_IDX_JOB_HANDLER_TYPE ON ACT_RU_JOB(HANDLER_TYPE_); +create index ACT_IDX_EVENT_SUBSCR_EVT_NAME ON ACT_RU_EVENT_SUBSCR(EVENT_NAME_); +create index ACT_IDX_PROCDEF_DEPLOYMENT_ID ON ACT_RE_PROCDEF(DEPLOYMENT_ID_); +create index ACT_IDX_PROCDEF_TENANT_ID ON ACT_RE_PROCDEF(TENANT_ID_); +create index ACT_IDX_PROCDEF_VER_TAG ON ACT_RE_PROCDEF(VERSION_TAG_); +-- create case definition table -- +create table ACT_RE_CASE_DEF ( + ID_ varchar(64) not null, + REV_ integer, + CATEGORY_ varchar(255), + NAME_ varchar(255), + KEY_ varchar(255) not null, + VERSION_ integer not null, + DEPLOYMENT_ID_ varchar(64), + RESOURCE_NAME_ varchar(4000), + DGRM_RESOURCE_NAME_ varchar(4000), + TENANT_ID_ varchar(64), + HISTORY_TTL_ integer, + primary key (ID_) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +-- create case execution table -- +create table ACT_RU_CASE_EXECUTION ( + ID_ varchar(64) NOT NULL, + REV_ integer, + CASE_INST_ID_ varchar(64), + SUPER_CASE_EXEC_ varchar(64), + SUPER_EXEC_ varchar(64), + BUSINESS_KEY_ varchar(255), + PARENT_ID_ varchar(64), + CASE_DEF_ID_ varchar(64), + ACT_ID_ varchar(255), + PREV_STATE_ integer, + CURRENT_STATE_ integer, + REQUIRED_ boolean, + TENANT_ID_ varchar(64), + primary key (ID_) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +-- create case sentry part table -- + +create table ACT_RU_CASE_SENTRY_PART ( + ID_ varchar(64) NOT NULL, + REV_ integer, + CASE_INST_ID_ varchar(64), + CASE_EXEC_ID_ varchar(64), + SENTRY_ID_ varchar(255), + TYPE_ varchar(255), + SOURCE_CASE_EXEC_ID_ varchar(64), + STANDARD_EVENT_ varchar(255), + SOURCE_ varchar(255), + VARIABLE_EVENT_ varchar(255), + VARIABLE_NAME_ varchar(255), + SATISFIED_ boolean, + TENANT_ID_ varchar(64), + primary key (ID_) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +-- create index on business key -- +create index ACT_IDX_CASE_EXEC_BUSKEY on ACT_RU_CASE_EXECUTION(BUSINESS_KEY_); + +-- create foreign key constraints on ACT_RU_CASE_EXECUTION -- +alter table ACT_RU_CASE_EXECUTION + add constraint ACT_FK_CASE_EXE_CASE_INST + foreign key (CASE_INST_ID_) + references ACT_RU_CASE_EXECUTION(ID_) on delete cascade on update cascade; + +alter table ACT_RU_CASE_EXECUTION + add constraint ACT_FK_CASE_EXE_PARENT + foreign key (PARENT_ID_) + references ACT_RU_CASE_EXECUTION(ID_); + +alter table ACT_RU_CASE_EXECUTION + add constraint ACT_FK_CASE_EXE_CASE_DEF + foreign key (CASE_DEF_ID_) + references ACT_RE_CASE_DEF(ID_); + +-- create foreign key constraints on ACT_RU_VARIABLE -- +alter table ACT_RU_VARIABLE + add constraint ACT_FK_VAR_CASE_EXE + foreign key (CASE_EXECUTION_ID_) + references ACT_RU_CASE_EXECUTION(ID_); + +alter table ACT_RU_VARIABLE + add constraint ACT_FK_VAR_CASE_INST + foreign key (CASE_INST_ID_) + references ACT_RU_CASE_EXECUTION(ID_); + +-- create foreign key constraints on ACT_RU_TASK -- +alter table ACT_RU_TASK + add constraint ACT_FK_TASK_CASE_EXE + foreign key (CASE_EXECUTION_ID_) + references ACT_RU_CASE_EXECUTION(ID_); + +alter table ACT_RU_TASK + add constraint ACT_FK_TASK_CASE_DEF + foreign key (CASE_DEF_ID_) + references ACT_RE_CASE_DEF(ID_); + +-- create foreign key constraints on ACT_RU_CASE_SENTRY_PART -- +alter table ACT_RU_CASE_SENTRY_PART + add constraint ACT_FK_CASE_SENTRY_CASE_INST + foreign key (CASE_INST_ID_) + references ACT_RU_CASE_EXECUTION(ID_); + +alter table ACT_RU_CASE_SENTRY_PART + add constraint ACT_FK_CASE_SENTRY_CASE_EXEC + foreign key (CASE_EXEC_ID_) + references ACT_RU_CASE_EXECUTION(ID_); + +create index ACT_IDX_CASE_DEF_TENANT_ID on ACT_RE_CASE_DEF(TENANT_ID_); +create index ACT_IDX_CASE_EXEC_TENANT_ID on ACT_RU_CASE_EXECUTION(TENANT_ID_); +-- create decision definition table -- +create table ACT_RE_DECISION_DEF ( + ID_ varchar(64) not null, + REV_ integer, + CATEGORY_ varchar(255), + NAME_ varchar(255), + KEY_ varchar(255) not null, + VERSION_ integer not null, + DEPLOYMENT_ID_ varchar(64), + RESOURCE_NAME_ varchar(4000), + DGRM_RESOURCE_NAME_ varchar(4000), + DEC_REQ_ID_ varchar(64), + DEC_REQ_KEY_ varchar(255), + TENANT_ID_ varchar(64), + HISTORY_TTL_ integer, + primary key (ID_) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +-- create decision requirements definition table -- +create table ACT_RE_DECISION_REQ_DEF ( + ID_ varchar(64) NOT NULL, + REV_ integer, + CATEGORY_ varchar(255), + NAME_ varchar(255), + KEY_ varchar(255) NOT NULL, + VERSION_ integer NOT NULL, + DEPLOYMENT_ID_ varchar(64), + RESOURCE_NAME_ varchar(4000), + DGRM_RESOURCE_NAME_ varchar(4000), + TENANT_ID_ varchar(64), + primary key (ID_) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +alter table ACT_RE_DECISION_DEF + add constraint ACT_FK_DEC_REQ + foreign key (DEC_REQ_ID_) + references ACT_RE_DECISION_REQ_DEF(ID_); + +create index ACT_IDX_DEC_DEF_TENANT_ID on ACT_RE_DECISION_DEF(TENANT_ID_); +create index ACT_IDX_DEC_DEF_REQ_ID on ACT_RE_DECISION_DEF(DEC_REQ_ID_); +create index ACT_IDX_DEC_REQ_DEF_TENANT_ID on ACT_RE_DECISION_REQ_DEF(TENANT_ID_); +create table ACT_HI_PROCINST ( + ID_ varchar(64) not null, + PROC_INST_ID_ varchar(64) not null, + BUSINESS_KEY_ varchar(255), + PROC_DEF_KEY_ varchar(255), + PROC_DEF_ID_ varchar(64) not null, + START_TIME_ datetime(3) not null, + END_TIME_ datetime(3), + DURATION_ bigint, + START_USER_ID_ varchar(255), + START_ACT_ID_ varchar(255), + END_ACT_ID_ varchar(255), + SUPER_PROCESS_INSTANCE_ID_ varchar(64), + SUPER_CASE_INSTANCE_ID_ varchar(64), + CASE_INST_ID_ varchar(64), + DELETE_REASON_ varchar(4000), + TENANT_ID_ varchar(64), + STATE_ varchar(255), + primary key (ID_), + unique (PROC_INST_ID_) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +create table ACT_HI_ACTINST ( + ID_ varchar(64) not null, + PARENT_ACT_INST_ID_ varchar(64), + PROC_DEF_KEY_ varchar(255), + PROC_DEF_ID_ varchar(64) not null, + PROC_INST_ID_ varchar(64) not null, + EXECUTION_ID_ varchar(64) not null, + ACT_ID_ varchar(255) not null, + TASK_ID_ varchar(64), + CALL_PROC_INST_ID_ varchar(64), + CALL_CASE_INST_ID_ varchar(64), + ACT_NAME_ varchar(255), + ACT_TYPE_ varchar(255) not null, + ASSIGNEE_ varchar(64), + START_TIME_ datetime(3) not null, + END_TIME_ datetime(3), + DURATION_ bigint, + ACT_INST_STATE_ integer, + SEQUENCE_COUNTER_ bigint, + TENANT_ID_ varchar(64), + primary key (ID_) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +create table ACT_HI_TASKINST ( + ID_ varchar(64) not null, + TASK_DEF_KEY_ varchar(255), + PROC_DEF_KEY_ varchar(255), + PROC_DEF_ID_ varchar(64), + PROC_INST_ID_ varchar(64), + EXECUTION_ID_ varchar(64), + CASE_DEF_KEY_ varchar(255), + CASE_DEF_ID_ varchar(64), + CASE_INST_ID_ varchar(64), + CASE_EXECUTION_ID_ varchar(64), + ACT_INST_ID_ varchar(64), + NAME_ varchar(255), + PARENT_TASK_ID_ varchar(64), + DESCRIPTION_ varchar(4000), + OWNER_ varchar(255), + ASSIGNEE_ varchar(255), + START_TIME_ datetime(3) not null, + END_TIME_ datetime(3), + DURATION_ bigint, + DELETE_REASON_ varchar(4000), + PRIORITY_ integer, + DUE_DATE_ datetime(3), + FOLLOW_UP_DATE_ datetime(3), + TENANT_ID_ varchar(64), + primary key (ID_) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +create table ACT_HI_VARINST ( + ID_ varchar(64) not null, + PROC_DEF_KEY_ varchar(255), + PROC_DEF_ID_ varchar(64), + PROC_INST_ID_ varchar(64), + EXECUTION_ID_ varchar(64), + ACT_INST_ID_ varchar(64), + CASE_DEF_KEY_ varchar(255), + CASE_DEF_ID_ varchar(64), + CASE_INST_ID_ varchar(64), + CASE_EXECUTION_ID_ varchar(64), + TASK_ID_ varchar(64), + NAME_ varchar(255) not null, + VAR_TYPE_ varchar(100), + REV_ integer, + BYTEARRAY_ID_ varchar(64), + DOUBLE_ double, + LONG_ bigint, + TEXT_ LONGBLOB NULL, + TEXT2_ LONGBLOB NULL, + TENANT_ID_ varchar(64), + primary key (ID_) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +create table ACT_HI_DETAIL ( + ID_ varchar(64) not null, + TYPE_ varchar(255) not null, + PROC_DEF_KEY_ varchar(255), + PROC_DEF_ID_ varchar(64), + PROC_INST_ID_ varchar(64), + EXECUTION_ID_ varchar(64), + CASE_DEF_KEY_ varchar(255), + CASE_DEF_ID_ varchar(64), + CASE_INST_ID_ varchar(64), + CASE_EXECUTION_ID_ varchar(64), + TASK_ID_ varchar(64), + ACT_INST_ID_ varchar(64), + VAR_INST_ID_ varchar(64), + NAME_ varchar(255) not null, + VAR_TYPE_ varchar(255), + REV_ integer, + TIME_ datetime(3) not null, + BYTEARRAY_ID_ varchar(64), + DOUBLE_ double, + LONG_ bigint, + TEXT_ LONGBLOB NULL, + TEXT2_ LONGBLOB NULL, + SEQUENCE_COUNTER_ bigint, + TENANT_ID_ varchar(64), + OPERATION_ID_ varchar(64), + primary key (ID_) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +create table ACT_HI_IDENTITYLINK ( + ID_ varchar(64) not null, + TIMESTAMP_ timestamp(3) not null, + TYPE_ varchar(255), + USER_ID_ varchar(255), + GROUP_ID_ varchar(255), + TASK_ID_ varchar(64), + PROC_DEF_ID_ varchar(64), + OPERATION_TYPE_ varchar(64), + ASSIGNER_ID_ varchar(64), + PROC_DEF_KEY_ varchar(255), + TENANT_ID_ varchar(64), + primary key (ID_) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +create table ACT_HI_COMMENT ( + ID_ varchar(64) not null, + TYPE_ varchar(255), + TIME_ datetime(3) not null, + USER_ID_ varchar(255), + TASK_ID_ varchar(64), + PROC_INST_ID_ varchar(64), + ACTION_ varchar(255), + MESSAGE_ varchar(4000), + FULL_MSG_ LONGBLOB, + TENANT_ID_ varchar(64), + primary key (ID_) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +create table ACT_HI_ATTACHMENT ( + ID_ varchar(64) not null, + REV_ integer, + USER_ID_ varchar(255), + NAME_ varchar(255), + DESCRIPTION_ varchar(4000), + TYPE_ varchar(255), + TASK_ID_ varchar(64), + PROC_INST_ID_ varchar(64), + URL_ varchar(4000), + CONTENT_ID_ varchar(64), + TENANT_ID_ varchar(64), + primary key (ID_) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +create table ACT_HI_OP_LOG ( + ID_ varchar(64) not null, + DEPLOYMENT_ID_ varchar(64), + PROC_DEF_ID_ varchar(64), + PROC_DEF_KEY_ varchar(255), + PROC_INST_ID_ varchar(64), + EXECUTION_ID_ varchar(64), + CASE_DEF_ID_ varchar(64), + CASE_INST_ID_ varchar(64), + CASE_EXECUTION_ID_ varchar(64), + TASK_ID_ varchar(64), + JOB_ID_ varchar(64), + JOB_DEF_ID_ varchar(64), + BATCH_ID_ varchar(64), + USER_ID_ varchar(255), + TIMESTAMP_ timestamp(3) not null, + OPERATION_TYPE_ varchar(64), + OPERATION_ID_ varchar(64), + ENTITY_TYPE_ varchar(30), + PROPERTY_ varchar(64), + ORG_VALUE_ varchar(4000), + NEW_VALUE_ varchar(4000), + TENANT_ID_ varchar(64), + primary key (ID_) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +create table ACT_HI_INCIDENT ( + ID_ varchar(64) not null, + PROC_DEF_KEY_ varchar(255), + PROC_DEF_ID_ varchar(64), + PROC_INST_ID_ varchar(64), + EXECUTION_ID_ varchar(64), + CREATE_TIME_ timestamp(3) not null, + END_TIME_ timestamp(3) null, + INCIDENT_MSG_ varchar(4000), + INCIDENT_TYPE_ varchar(255) not null, + ACTIVITY_ID_ varchar(255), + CAUSE_INCIDENT_ID_ varchar(64), + ROOT_CAUSE_INCIDENT_ID_ varchar(64), + CONFIGURATION_ varchar(255), + INCIDENT_STATE_ integer, + TENANT_ID_ varchar(64), + JOB_DEF_ID_ varchar(64), + primary key (ID_) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +create table ACT_HI_JOB_LOG ( + ID_ varchar(64) not null, + TIMESTAMP_ timestamp(3) not null, + JOB_ID_ varchar(64) not null, + JOB_DUEDATE_ timestamp(3) NULL, + JOB_RETRIES_ integer, + JOB_PRIORITY_ bigint NOT NULL DEFAULT 0, + JOB_EXCEPTION_MSG_ varchar(4000), + JOB_EXCEPTION_STACK_ID_ varchar(64), + JOB_STATE_ integer, + JOB_DEF_ID_ varchar(64), + JOB_DEF_TYPE_ varchar(255), + JOB_DEF_CONFIGURATION_ varchar(255), + ACT_ID_ varchar(255), + EXECUTION_ID_ varchar(64), + PROCESS_INSTANCE_ID_ varchar(64), + PROCESS_DEF_ID_ varchar(64), + PROCESS_DEF_KEY_ varchar(255), + DEPLOYMENT_ID_ varchar(64), + SEQUENCE_COUNTER_ bigint, + TENANT_ID_ varchar(64), + primary key (ID_) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +create table ACT_HI_BATCH ( + ID_ varchar(64) not null, + TYPE_ varchar(255), + TOTAL_JOBS_ integer, + JOBS_PER_SEED_ integer, + INVOCATIONS_PER_JOB_ integer, + SEED_JOB_DEF_ID_ varchar(64), + MONITOR_JOB_DEF_ID_ varchar(64), + BATCH_JOB_DEF_ID_ varchar(64), + TENANT_ID_ varchar(64), + START_TIME_ datetime(3) not null, + END_TIME_ datetime(3), + primary key (ID_) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +create table ACT_HI_EXT_TASK_LOG ( + ID_ varchar(64) not null, + TIMESTAMP_ timestamp(3) not null, + EXT_TASK_ID_ varchar(64) not null, + RETRIES_ integer, + TOPIC_NAME_ varchar(255), + WORKER_ID_ varchar(255), + PRIORITY_ bigint NOT NULL DEFAULT 0, + ERROR_MSG_ varchar(4000), + ERROR_DETAILS_ID_ varchar(64), + ACT_ID_ varchar(255), + ACT_INST_ID_ varchar(64), + EXECUTION_ID_ varchar(64), + PROC_INST_ID_ varchar(64), + PROC_DEF_ID_ varchar(64), + PROC_DEF_KEY_ varchar(255), + TENANT_ID_ varchar(64), + STATE_ integer, + primary key (ID_) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +create index ACT_IDX_HI_PRO_INST_END on ACT_HI_PROCINST(END_TIME_); +create index ACT_IDX_HI_PRO_I_BUSKEY on ACT_HI_PROCINST(BUSINESS_KEY_); +create index ACT_IDX_HI_PRO_INST_TENANT_ID on ACT_HI_PROCINST(TENANT_ID_); +create index ACT_IDX_HI_PRO_INST_PROC_DEF_KEY on ACT_HI_PROCINST(PROC_DEF_KEY_); + +create index ACT_IDX_HI_ACT_INST_START on ACT_HI_ACTINST(START_TIME_); +create index ACT_IDX_HI_ACT_INST_END on ACT_HI_ACTINST(END_TIME_); +create index ACT_IDX_HI_ACT_INST_PROCINST on ACT_HI_ACTINST(PROC_INST_ID_, ACT_ID_); +create index ACT_IDX_HI_ACT_INST_COMP on ACT_HI_ACTINST(EXECUTION_ID_, ACT_ID_, END_TIME_, ID_); +create index ACT_IDX_HI_ACT_INST_STATS on ACT_HI_ACTINST(PROC_DEF_ID_, ACT_ID_, END_TIME_, ACT_INST_STATE_); +create index ACT_IDX_HI_ACT_INST_TENANT_ID on ACT_HI_ACTINST(TENANT_ID_); +create index ACT_IDX_HI_ACT_INST_PROC_DEF_KEY on ACT_HI_ACTINST(PROC_DEF_KEY_); + +create index ACT_IDX_HI_TASK_INST_TENANT_ID on ACT_HI_TASKINST(TENANT_ID_); +create index ACT_IDX_HI_TASK_INST_PROC_DEF_KEY on ACT_HI_TASKINST(PROC_DEF_KEY_); + +create index ACT_IDX_HI_DETAIL_PROC_INST on ACT_HI_DETAIL(PROC_INST_ID_); +create index ACT_IDX_HI_DETAIL_ACT_INST on ACT_HI_DETAIL(ACT_INST_ID_); +create index ACT_IDX_HI_DETAIL_CASE_INST on ACT_HI_DETAIL(CASE_INST_ID_); +create index ACT_IDX_HI_DETAIL_CASE_EXEC on ACT_HI_DETAIL(CASE_EXECUTION_ID_); +create index ACT_IDX_HI_DETAIL_TIME on ACT_HI_DETAIL(TIME_); +create index ACT_IDX_HI_DETAIL_NAME on ACT_HI_DETAIL(NAME_); +create index ACT_IDX_HI_DETAIL_TASK_ID on ACT_HI_DETAIL(TASK_ID_); +create index ACT_IDX_HI_DETAIL_TENANT_ID on ACT_HI_DETAIL(TENANT_ID_); +create index ACT_IDX_HI_DETAIL_PROC_DEF_KEY on ACT_HI_DETAIL(PROC_DEF_KEY_); + +create index ACT_IDX_HI_IDENT_LNK_USER on ACT_HI_IDENTITYLINK(USER_ID_); +create index ACT_IDX_HI_IDENT_LNK_GROUP on ACT_HI_IDENTITYLINK(GROUP_ID_); +create index ACT_IDX_HI_IDENT_LNK_TENANT_ID on ACT_HI_IDENTITYLINK(TENANT_ID_); +create index ACT_IDX_HI_IDENT_LNK_PROC_DEF_KEY on ACT_HI_IDENTITYLINK(PROC_DEF_KEY_); + +create index ACT_IDX_HI_PROCVAR_PROC_INST on ACT_HI_VARINST(PROC_INST_ID_); +create index ACT_IDX_HI_PROCVAR_NAME_TYPE on ACT_HI_VARINST(NAME_, VAR_TYPE_); +create index ACT_IDX_HI_CASEVAR_CASE_INST on ACT_HI_VARINST(CASE_INST_ID_); +create index ACT_IDX_HI_VAR_INST_TENANT_ID on ACT_HI_VARINST(TENANT_ID_); +create index ACT_IDX_HI_VAR_INST_PROC_DEF_KEY on ACT_HI_VARINST(PROC_DEF_KEY_); + +create index ACT_IDX_HI_INCIDENT_TENANT_ID on ACT_HI_INCIDENT(TENANT_ID_); +create index ACT_IDX_HI_INCIDENT_PROC_DEF_KEY on ACT_HI_INCIDENT(PROC_DEF_KEY_); + +create index ACT_IDX_HI_JOB_LOG_PROCINST on ACT_HI_JOB_LOG(PROCESS_INSTANCE_ID_); +create index ACT_IDX_HI_JOB_LOG_PROCDEF on ACT_HI_JOB_LOG(PROCESS_DEF_ID_); +create index ACT_IDX_HI_JOB_LOG_TENANT_ID on ACT_HI_JOB_LOG(TENANT_ID_); +create index ACT_IDX_HI_JOB_LOG_JOB_DEF_ID on ACT_HI_JOB_LOG(JOB_DEF_ID_); +create index ACT_IDX_HI_JOB_LOG_PROC_DEF_KEY on ACT_HI_JOB_LOG(PROCESS_DEF_KEY_); + +create index ACT_HI_EXT_TASK_LOG_PROCINST on ACT_HI_EXT_TASK_LOG(PROC_INST_ID_); +create index ACT_HI_EXT_TASK_LOG_PROCDEF on ACT_HI_EXT_TASK_LOG(PROC_DEF_ID_); +create index ACT_HI_EXT_TASK_LOG_PROC_DEF_KEY on ACT_HI_EXT_TASK_LOG(PROC_DEF_KEY_); +create index ACT_HI_EXT_TASK_LOG_TENANT_ID on ACT_HI_EXT_TASK_LOG(TENANT_ID_); + +create index ACT_IDX_HI_OP_LOG_PROCINST on ACT_HI_OP_LOG(PROC_INST_ID_); +create index ACT_IDX_HI_OP_LOG_PROCDEF on ACT_HI_OP_LOG(PROC_DEF_ID_); +create table ACT_HI_CASEINST ( + ID_ varchar(64) not null, + CASE_INST_ID_ varchar(64) not null, + BUSINESS_KEY_ varchar(255), + CASE_DEF_ID_ varchar(64) not null, + CREATE_TIME_ datetime(3) not null, + CLOSE_TIME_ datetime(3), + DURATION_ bigint, + STATE_ integer, + CREATE_USER_ID_ varchar(255), + SUPER_CASE_INSTANCE_ID_ varchar(64), + SUPER_PROCESS_INSTANCE_ID_ varchar(64), + TENANT_ID_ varchar(64), + primary key (ID_), + unique (CASE_INST_ID_) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +create table ACT_HI_CASEACTINST ( + ID_ varchar(64) not null, + PARENT_ACT_INST_ID_ varchar(64), + CASE_DEF_ID_ varchar(64) not null, + CASE_INST_ID_ varchar(64) not null, + CASE_ACT_ID_ varchar(255) not null, + TASK_ID_ varchar(64), + CALL_PROC_INST_ID_ varchar(64), + CALL_CASE_INST_ID_ varchar(64), + CASE_ACT_NAME_ varchar(255), + CASE_ACT_TYPE_ varchar(255), + CREATE_TIME_ datetime(3) not null, + END_TIME_ datetime(3), + DURATION_ bigint, + STATE_ integer, + REQUIRED_ boolean, + TENANT_ID_ varchar(64), + primary key (ID_) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +create index ACT_IDX_HI_CAS_I_CLOSE on ACT_HI_CASEINST(CLOSE_TIME_); +create index ACT_IDX_HI_CAS_I_BUSKEY on ACT_HI_CASEINST(BUSINESS_KEY_); +create index ACT_IDX_HI_CAS_I_TENANT_ID on ACT_HI_CASEINST(TENANT_ID_); +create index ACT_IDX_HI_CAS_A_I_CREATE on ACT_HI_CASEACTINST(CREATE_TIME_); +create index ACT_IDX_HI_CAS_A_I_END on ACT_HI_CASEACTINST(END_TIME_); +create index ACT_IDX_HI_CAS_A_I_COMP on ACT_HI_CASEACTINST(CASE_ACT_ID_, END_TIME_, ID_); +create index ACT_IDX_HI_CAS_A_I_CASEINST on ACT_HI_CASEACTINST(CASE_INST_ID_, CASE_ACT_ID_); +create index ACT_IDX_HI_CAS_A_I_TENANT_ID on ACT_HI_CASEACTINST(TENANT_ID_); +-- create history decision instance table -- +create table ACT_HI_DECINST ( + ID_ varchar(64) NOT NULL, + DEC_DEF_ID_ varchar(64) NOT NULL, + DEC_DEF_KEY_ varchar(255) NOT NULL, + DEC_DEF_NAME_ varchar(255), + PROC_DEF_KEY_ varchar(255), + PROC_DEF_ID_ varchar(64), + PROC_INST_ID_ varchar(64), + CASE_DEF_KEY_ varchar(255), + CASE_DEF_ID_ varchar(64), + CASE_INST_ID_ varchar(64), + ACT_INST_ID_ varchar(64), + ACT_ID_ varchar(255), + EVAL_TIME_ datetime(3) not null, + COLLECT_VALUE_ double, + USER_ID_ varchar(255), + ROOT_DEC_INST_ID_ varchar(64), + DEC_REQ_ID_ varchar(64), + DEC_REQ_KEY_ varchar(255), + TENANT_ID_ varchar(64), + primary key (ID_) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +-- create history decision input table -- +create table ACT_HI_DEC_IN ( + ID_ varchar(64) NOT NULL, + DEC_INST_ID_ varchar(64) NOT NULL, + CLAUSE_ID_ varchar(64), + CLAUSE_NAME_ varchar(255), + VAR_TYPE_ varchar(100), + BYTEARRAY_ID_ varchar(64), + DOUBLE_ double, + LONG_ bigint, + TEXT_ LONGBLOB NULL, + TEXT2_ LONGBLOB NULL, + TENANT_ID_ varchar(64), + primary key (ID_) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +-- create history decision output table -- +create table ACT_HI_DEC_OUT ( + ID_ varchar(64) NOT NULL, + DEC_INST_ID_ varchar(64) NOT NULL, + CLAUSE_ID_ varchar(64), + CLAUSE_NAME_ varchar(255), + RULE_ID_ varchar(64), + RULE_ORDER_ integer, + VAR_NAME_ varchar(255), + VAR_TYPE_ varchar(100), + BYTEARRAY_ID_ varchar(64), + DOUBLE_ double, + LONG_ bigint, + TEXT_ LONGBLOB NULL, + TEXT2_ LONGBLOB NULL, + TENANT_ID_ varchar(64), + primary key (ID_) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + + +create index ACT_IDX_HI_DEC_INST_ID on ACT_HI_DECINST(DEC_DEF_ID_); +create index ACT_IDX_HI_DEC_INST_KEY on ACT_HI_DECINST(DEC_DEF_KEY_); +create index ACT_IDX_HI_DEC_INST_PI on ACT_HI_DECINST(PROC_INST_ID_); +create index ACT_IDX_HI_DEC_INST_CI on ACT_HI_DECINST(CASE_INST_ID_); +create index ACT_IDX_HI_DEC_INST_ACT on ACT_HI_DECINST(ACT_ID_); +create index ACT_IDX_HI_DEC_INST_ACT_INST on ACT_HI_DECINST(ACT_INST_ID_); +create index ACT_IDX_HI_DEC_INST_TIME on ACT_HI_DECINST(EVAL_TIME_); +create index ACT_IDX_HI_DEC_INST_TENANT_ID on ACT_HI_DECINST(TENANT_ID_); +create index ACT_IDX_HI_DEC_INST_ROOT_ID on ACT_HI_DECINST(ROOT_DEC_INST_ID_); +create index ACT_IDX_HI_DEC_INST_REQ_ID on ACT_HI_DECINST(DEC_REQ_ID_); +create index ACT_IDX_HI_DEC_INST_REQ_KEY on ACT_HI_DECINST(DEC_REQ_KEY_); + + +create index ACT_IDX_HI_DEC_IN_INST on ACT_HI_DEC_IN(DEC_INST_ID_); +create index ACT_IDX_HI_DEC_IN_CLAUSE on ACT_HI_DEC_IN(DEC_INST_ID_, CLAUSE_ID_); + +create index ACT_IDX_HI_DEC_OUT_INST on ACT_HI_DEC_OUT(DEC_INST_ID_); +create index ACT_IDX_HI_DEC_OUT_RULE on ACT_HI_DEC_OUT(RULE_ORDER_, CLAUSE_ID_); + + +-- mariadb identity: + +create table ACT_ID_GROUP ( + ID_ varchar(64), + REV_ integer, + NAME_ varchar(255), + TYPE_ varchar(255), + primary key (ID_) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +create table ACT_ID_MEMBERSHIP ( + USER_ID_ varchar(64), + GROUP_ID_ varchar(64), + primary key (USER_ID_, GROUP_ID_) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +create table ACT_ID_USER ( + ID_ varchar(64), + REV_ integer, + FIRST_ varchar(255), + LAST_ varchar(255), + EMAIL_ varchar(255), + PWD_ varchar(255), + SALT_ varchar(255), + PICTURE_ID_ varchar(64), + primary key (ID_) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +create table ACT_ID_INFO ( + ID_ varchar(64), + REV_ integer, + USER_ID_ varchar(64), + TYPE_ varchar(64), + KEY_ varchar(255), + VALUE_ varchar(255), + PASSWORD_ LONGBLOB, + PARENT_ID_ varchar(255), + primary key (ID_) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +create table ACT_ID_TENANT ( + ID_ varchar(64), + REV_ integer, + NAME_ varchar(255), + primary key (ID_) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +create table ACT_ID_TENANT_MEMBER ( + ID_ varchar(64) not null, + TENANT_ID_ varchar(64) not null, + USER_ID_ varchar(64), + GROUP_ID_ varchar(64), + primary key (ID_) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +alter table ACT_ID_MEMBERSHIP + add constraint ACT_FK_MEMB_GROUP + foreign key (GROUP_ID_) + references ACT_ID_GROUP (ID_); + +alter table ACT_ID_MEMBERSHIP + add constraint ACT_FK_MEMB_USER + foreign key (USER_ID_) + references ACT_ID_USER (ID_); + +alter table ACT_ID_TENANT_MEMBER + add constraint ACT_UNIQ_TENANT_MEMB_USER + unique (TENANT_ID_, USER_ID_); + +alter table ACT_ID_TENANT_MEMBER + add constraint ACT_UNIQ_TENANT_MEMB_GROUP + unique (TENANT_ID_, GROUP_ID_); + +alter table ACT_ID_TENANT_MEMBER + add constraint ACT_FK_TENANT_MEMB + foreign key (TENANT_ID_) + references ACT_ID_TENANT (ID_); + +alter table ACT_ID_TENANT_MEMBER + add constraint ACT_FK_TENANT_MEMB_USER + foreign key (USER_ID_) + references ACT_ID_USER (ID_); + +alter table ACT_ID_TENANT_MEMBER + add constraint ACT_FK_TENANT_MEMB_GROUP + foreign key (GROUP_ID_) + references ACT_ID_GROUP (ID_); + diff --git a/kubernetes/so/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/camunda/mysql_create_camunda_admin.sql b/kubernetes/so/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/camunda/mysql_create_camunda_admin.sql new file mode 100644 index 0000000000..3658c6c235 --- /dev/null +++ b/kubernetes/so/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/camunda/mysql_create_camunda_admin.sql @@ -0,0 +1,25 @@ +USE camundabpmn; + +INSERT INTO `act_id_group` (`ID_`, `REV_`, `NAME_`, `TYPE_`) VALUES ('camunda-admin',1,'camunda BPM Administrators','SYSTEM'); + +INSERT INTO `act_id_user` (`ID_`, `REV_`, `FIRST_`, `LAST_`, `EMAIL_`, `PWD_`, `SALT_`, `PICTURE_ID_`) VALUES ('admin',1,'admin','user','camundaadmin@onap.org','{SHA-512}n5jUw7fvXM9sZBcrIkLiAOCqiPHutaqEkbg6IQVQdylVP1im8SczBJf4f2xL7cvWwIAZjkcSSQzgFTsdaJSEiA==','ftTn4gNgMcq07wdSD0lEJQ==',NULL); + +INSERT INTO `act_id_membership` (`USER_ID_`, `GROUP_ID_`) VALUES ('admin','camunda-admin'); + +INSERT INTO `act_ru_authorization` (`ID_`, `REV_`, `TYPE_`, `GROUP_ID_`, `USER_ID_`, `RESOURCE_TYPE_`, `RESOURCE_ID_`, `PERMS_`) VALUES ('49b0e028-a3c6-11e7-b0ec-0242ac120003',1,1,NULL,'admin',1,'admin',2147483647); +INSERT INTO `act_ru_authorization` (`ID_`, `REV_`, `TYPE_`, `GROUP_ID_`, `USER_ID_`, `RESOURCE_TYPE_`, `RESOURCE_ID_`, `PERMS_`) VALUES ('49b525e9-a3c6-11e7-b0ec-0242ac120003',1,1,'camunda-admin',NULL,2,'camunda-admin',2); +INSERT INTO `act_ru_authorization` (`ID_`, `REV_`, `TYPE_`, `GROUP_ID_`, `USER_ID_`, `RESOURCE_TYPE_`, `RESOURCE_ID_`, `PERMS_`) VALUES ('49b8814a-a3c6-11e7-b0ec-0242ac120003',1,1,'camunda-admin',NULL,0,'*',2147483647); +INSERT INTO `act_ru_authorization` (`ID_`, `REV_`, `TYPE_`, `GROUP_ID_`, `USER_ID_`, `RESOURCE_TYPE_`, `RESOURCE_ID_`, `PERMS_`) VALUES ('49baa42b-a3c6-11e7-b0ec-0242ac120003',1,1,'camunda-admin',NULL,1,'*',2147483647); +INSERT INTO `act_ru_authorization` (`ID_`, `REV_`, `TYPE_`, `GROUP_ID_`, `USER_ID_`, `RESOURCE_TYPE_`, `RESOURCE_ID_`, `PERMS_`) VALUES ('49bd8a5c-a3c6-11e7-b0ec-0242ac120003',1,1,'camunda-admin',NULL,2,'*',2147483647); +INSERT INTO `act_ru_authorization` (`ID_`, `REV_`, `TYPE_`, `GROUP_ID_`, `USER_ID_`, `RESOURCE_TYPE_`, `RESOURCE_ID_`, `PERMS_`) VALUES ('49bfd44d-a3c6-11e7-b0ec-0242ac120003',1,1,'camunda-admin',NULL,3,'*',2147483647); +INSERT INTO `act_ru_authorization` (`ID_`, `REV_`, `TYPE_`, `GROUP_ID_`, `USER_ID_`, `RESOURCE_TYPE_`, `RESOURCE_ID_`, `PERMS_`) VALUES ('49c1f72e-a3c6-11e7-b0ec-0242ac120003',1,1,'camunda-admin',NULL,4,'*',2147483647); +INSERT INTO `act_ru_authorization` (`ID_`, `REV_`, `TYPE_`, `GROUP_ID_`, `USER_ID_`, `RESOURCE_TYPE_`, `RESOURCE_ID_`, `PERMS_`) VALUES ('49c41a0f-a3c6-11e7-b0ec-0242ac120003',1,1,'camunda-admin',NULL,5,'*',2147483647); +INSERT INTO `act_ru_authorization` (`ID_`, `REV_`, `TYPE_`, `GROUP_ID_`, `USER_ID_`, `RESOURCE_TYPE_`, `RESOURCE_ID_`, `PERMS_`) VALUES ('49c77570-a3c6-11e7-b0ec-0242ac120003',1,1,'camunda-admin',NULL,6,'*',2147483647); +INSERT INTO `act_ru_authorization` (`ID_`, `REV_`, `TYPE_`, `GROUP_ID_`, `USER_ID_`, `RESOURCE_TYPE_`, `RESOURCE_ID_`, `PERMS_`) VALUES ('49ca5ba1-a3c6-11e7-b0ec-0242ac120003',1,1,'camunda-admin',NULL,7,'*',2147483647); +INSERT INTO `act_ru_authorization` (`ID_`, `REV_`, `TYPE_`, `GROUP_ID_`, `USER_ID_`, `RESOURCE_TYPE_`, `RESOURCE_ID_`, `PERMS_`) VALUES ('49cca592-a3c6-11e7-b0ec-0242ac120003',1,1,'camunda-admin',NULL,8,'*',2147483647); +INSERT INTO `act_ru_authorization` (`ID_`, `REV_`, `TYPE_`, `GROUP_ID_`, `USER_ID_`, `RESOURCE_TYPE_`, `RESOURCE_ID_`, `PERMS_`) VALUES ('49ceef83-a3c6-11e7-b0ec-0242ac120003',1,1,'camunda-admin',NULL,9,'*',2147483647); +INSERT INTO `act_ru_authorization` (`ID_`, `REV_`, `TYPE_`, `GROUP_ID_`, `USER_ID_`, `RESOURCE_TYPE_`, `RESOURCE_ID_`, `PERMS_`) VALUES ('49d11264-a3c6-11e7-b0ec-0242ac120003',1,1,'camunda-admin',NULL,10,'*',2147483647); +INSERT INTO `act_ru_authorization` (`ID_`, `REV_`, `TYPE_`, `GROUP_ID_`, `USER_ID_`, `RESOURCE_TYPE_`, `RESOURCE_ID_`, `PERMS_`) VALUES ('49d38365-a3c6-11e7-b0ec-0242ac120003',1,1,'camunda-admin',NULL,11,'*',2147483647); +INSERT INTO `act_ru_authorization` (`ID_`, `REV_`, `TYPE_`, `GROUP_ID_`, `USER_ID_`, `RESOURCE_TYPE_`, `RESOURCE_ID_`, `PERMS_`) VALUES ('49d5a646-a3c6-11e7-b0ec-0242ac120003',1,1,'camunda-admin',NULL,12,'*',2147483647); +INSERT INTO `act_ru_authorization` (`ID_`, `REV_`, `TYPE_`, `GROUP_ID_`, `USER_ID_`, `RESOURCE_TYPE_`, `RESOURCE_ID_`, `PERMS_`) VALUES ('49d83e57-a3c6-11e7-b0ec-0242ac120003',1,1,'camunda-admin',NULL,13,'*',2147483647); +INSERT INTO `act_ru_authorization` (`ID_`, `REV_`, `TYPE_`, `GROUP_ID_`, `USER_ID_`, `RESOURCE_TYPE_`, `RESOURCE_ID_`, `PERMS_`) VALUES ('49da3a28-a3c6-11e7-b0ec-0242ac120003',1,1,'camunda-admin',NULL,14,'*',2147483647); diff --git a/kubernetes/so/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/main-schemas/MySQL-Catalog-schema.sql b/kubernetes/so/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/main-schemas/MySQL-Catalog-schema.sql new file mode 100644 index 0000000000..ca002fbe6b --- /dev/null +++ b/kubernetes/so/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/main-schemas/MySQL-Catalog-schema.sql @@ -0,0 +1,462 @@ + + alter table HEAT_TEMPLATE_PARAMS + drop + foreign key FK_p3ol1xcvp831glqohrlu6o07o; + + alter table MODEL_RECIPE + drop + foreign key FK_c23r0puyqug6n44jg39dutm1c; + + alter table SERVICE + drop + foreign key FK_l3qy594u2xr1tfpmma3uigsna; + + alter table SERVICE_RECIPE + drop + foreign key FK_i3r1b8j6e7dg9hkp49evnnm5y; + + alter table SERVICE_TO_RESOURCE_CUSTOMIZATIONS + drop + foreign key FK_kiddaay6cfe0aob1f1jaio1bb; + + alter table VF_MODULE + drop + foreign key FK_12jptc9it7gs3pru08skobxxc; + + alter table VNF_RESOURCE_CUSTOMIZATION + drop + foreign key FK_iff1ayhb1hrp5jhea3vvikuni; + + drop table if exists ALLOTTED_RESOURCE; + + drop table if exists ALLOTTED_RESOURCE_CUSTOMIZATION; + + drop table if exists HEAT_ENVIRONMENT; + + drop table if exists HEAT_FILES; + + drop table if exists HEAT_NESTED_TEMPLATE; + + drop table if exists HEAT_TEMPLATE; + + drop table if exists HEAT_TEMPLATE_PARAMS; + + drop table if exists MODEL; + + drop table if exists MODEL_RECIPE; + + drop table if exists NETWORK_RECIPE; + + drop table if exists NETWORK_RESOURCE; + + drop table if exists NETWORK_RESOURCE_CUSTOMIZATION; + + drop table if exists SERVICE; + + drop table if exists SERVICE_RECIPE; + + drop table if exists SERVICE_TO_ALLOTTED_RESOURCES; + + drop table if exists SERVICE_TO_NETWORKS; + + drop table if exists SERVICE_TO_RESOURCE_CUSTOMIZATIONS; + + drop table if exists TEMP_NETWORK_HEAT_TEMPLATE_LOOKUP; + + drop table if exists TOSCA_CSAR; + + drop table if exists VF_MODULE; + + drop table if exists VF_MODULE_CUSTOMIZATION; + + drop table if exists VF_MODULE_TO_HEAT_FILES; + + drop table if exists VNF_COMPONENTS; + + drop table if exists VNF_COMPONENTS_RECIPE; + + drop table if exists VNF_RECIPE; + + drop table if exists VNF_RESOURCE; + + drop table if exists VNF_RESOURCE_CUSTOMIZATION; + + drop table if exists VNF_RES_CUSTOM_TO_VF_MODULE_CUSTOM; + + create table ALLOTTED_RESOURCE ( + MODEL_UUID varchar(255) not null, + MODEL_INVARIANT_UUID varchar(255), + MODEL_VERSION varchar(255), + MODEL_NAME varchar(255), + TOSCA_NODE_TYPE varchar(255), + SUBCATEGORY varchar(255), + DESCRIPTION varchar(255), + CREATION_TIMESTAMP datetime default CURRENT_TIMESTAMP, + primary key (MODEL_UUID) + ); + + create table ALLOTTED_RESOURCE_CUSTOMIZATION ( + MODEL_CUSTOMIZATION_UUID varchar(200) not null, + MODEL_INSTANCE_NAME varchar(255), + AR_MODEL_UUID varchar(255), + PROVIDING_SERVICE_MODEL_INVARIANT_UUID varchar(255), + TARGET_NETWORK_ROLE varchar(255), + NF_FUNCTION varchar(255), + NF_TYPE varchar(255), + NF_ROLE varchar(255), + NF_NAMING_CODE varchar(255), + MIN_INSTANCES integer, + MAX_INSTANCES integer, + CREATION_TIMESTAMP datetime default CURRENT_TIMESTAMP, + primary key (MODEL_CUSTOMIZATION_UUID) + ); + + create table HEAT_ENVIRONMENT ( + ARTIFACT_UUID varchar(200) not null, + NAME varchar(100) not null, + VERSION varchar(20) not null, + DESCRIPTION varchar(1200), + BODY longtext not null, + CREATION_TIMESTAMP datetime default CURRENT_TIMESTAMP, + ARTIFACT_CHECKSUM varchar(200) default 'MANUAL RECORD', + primary key (ARTIFACT_UUID) + ); + + create table HEAT_FILES ( + ARTIFACT_UUID varchar(255) not null, + DESCRIPTION varchar(255), + NAME varchar(255), + VERSION varchar(255), + BODY longtext, + CREATION_TIMESTAMP datetime default CURRENT_TIMESTAMP, + ARTIFACT_CHECKSUM varchar(255), + primary key (ARTIFACT_UUID) + ); + + create table HEAT_NESTED_TEMPLATE ( + PARENT_HEAT_TEMPLATE_UUID varchar(200) not null, + CHILD_HEAT_TEMPLATE_UUID varchar(200) not null, + PROVIDER_RESOURCE_FILE varchar(100), + primary key (PARENT_HEAT_TEMPLATE_UUID, CHILD_HEAT_TEMPLATE_UUID) + ); + + create table HEAT_TEMPLATE ( + ARTIFACT_UUID varchar(200) not null, + NAME varchar(200) not null, + VERSION varchar(20) not null, + BODY longtext not null, + TIMEOUT_MINUTES integer, + DESCRIPTION varchar(1200), + CREATION_TIMESTAMP datetime default CURRENT_TIMESTAMP, + ARTIFACT_CHECKSUM varchar(200) default 'MANUAL RECORD' not null, + primary key (ARTIFACT_UUID) + ); + + create table HEAT_TEMPLATE_PARAMS ( + HEAT_TEMPLATE_ARTIFACT_UUID varchar(255) not null, + PARAM_NAME varchar(255) not null, + IS_REQUIRED bit not null, + PARAM_TYPE varchar(20), + PARAM_ALIAS varchar(45), + primary key (HEAT_TEMPLATE_ARTIFACT_UUID, PARAM_NAME) + ); + + create table MODEL ( + id integer not null auto_increment, + MODEL_TYPE varchar(20) not null, + MODEL_VERSION_ID varchar(40) not null, + MODEL_INVARIANT_ID varchar(40), + MODEL_NAME varchar(40) not null, + MODEL_VERSION varchar(20), + MODEL_CUSTOMIZATION_ID varchar(40), + MODEL_CUSTOMIZATION_NAME varchar(40), + CREATION_TIMESTAMP datetime default CURRENT_TIMESTAMP, + primary key (id) + ); + + create table MODEL_RECIPE ( + id integer not null auto_increment, + MODEL_ID integer not null, + ACTION varchar(20) not null, + SCHEMA_VERSION varchar(20), + DESCRIPTION varchar(1200), + ORCHESTRATION_URI varchar(256) not null, + MODEL_PARAM_XSD varchar(2048), + RECIPE_TIMEOUT integer, + CREATION_TIMESTAMP datetime default CURRENT_TIMESTAMP, + primary key (id) + ); + + create table NETWORK_RECIPE ( + id integer not null auto_increment, + MODEL_NAME varchar(20) not null, + ACTION varchar(20) not null, + VERSION_STR varchar(20) not null, + SERVICE_TYPE varchar(45), + DESCRIPTION varchar(1200), + ORCHESTRATION_URI varchar(256) not null, + NETWORK_PARAM_XSD varchar(2048), + RECIPE_TIMEOUT integer, + CREATION_TIMESTAMP datetime default CURRENT_TIMESTAMP, + primary key (id) + ); + + create table NETWORK_RESOURCE ( + MODEL_UUID varchar(200) not null, + MODEL_NAME varchar(200) not null, + MODEL_INVARIANT_UUID varchar(200), + MODEL_VERSION varchar(20), + TOSCA_NODE_TYPE varchar(200), + NEUTRON_NETWORK_TYPE varchar(20), + DESCRIPTION varchar(1200), + ORCHESTRATION_MODE varchar(20), + HEAT_TEMPLATE_ARTIFACT_UUID varchar(200) not null, + AIC_VERSION_MIN varchar(20) default 2.5 not null, + AIC_VERSION_MAX varchar(20) default 2.5, + CREATION_TIMESTAMP datetime default CURRENT_TIMESTAMP, + primary key (MODEL_UUID) + ); + + create table NETWORK_RESOURCE_CUSTOMIZATION ( + MODEL_CUSTOMIZATION_UUID varchar(200) not null, + NETWORK_RESOURCE_MODEL_UUID varchar(200) not null, + MODEL_INSTANCE_NAME varchar(255), + NETWORK_TECHNOLOGY varchar(255), + NETWORK_TYPE varchar(255), + NETWORK_SCOPE varchar(255), + NETWORK_ROLE varchar(255), + CREATION_TIMESTAMP datetime default CURRENT_TIMESTAMP, + primary key (MODEL_CUSTOMIZATION_UUID) + ); + + create table SERVICE ( + MODEL_UUID varchar(200) not null, + MODEL_NAME varchar(200) not null, + MODEL_VERSION varchar(20) not null, + DESCRIPTION varchar(1200), + TOSCA_CSAR_ARTIFACT_UUID varchar(200), + CREATION_TIMESTAMP datetime default CURRENT_TIMESTAMP, + MODEL_INVARIANT_UUID varchar(200) default 'MANUAL_RECORD' not null, + SERVICE_TYPE varchar(20), + SERVICE_ROLE varchar(20), + primary key (MODEL_UUID) + ); + + create table SERVICE_RECIPE ( + id integer not null auto_increment, + SERVICE_MODEL_UUID varchar(200) not null, + ACTION varchar(40) not null, + ORCHESTRATION_URI varchar(256) not null, + CREATION_TIMESTAMP datetime default CURRENT_TIMESTAMP, + VERSION_STR varchar(20), + DESCRIPTION varchar(1200), + SERVICE_PARAM_XSD varchar(2048), + RECIPE_TIMEOUT integer, + SERVICE_TIMEOUT_INTERIM integer, + primary key (id) + ); + + create table SERVICE_TO_ALLOTTED_RESOURCES ( + SERVICE_MODEL_UUID varchar(200) not null, + AR_MODEL_CUSTOMIZATION_UUID varchar(200) not null, + CREATION_TIMESTAMP datetime default CURRENT_TIMESTAMP, + primary key (SERVICE_MODEL_UUID, AR_MODEL_CUSTOMIZATION_UUID) + ); + + create table SERVICE_TO_NETWORKS ( + SERVICE_MODEL_UUID varchar(200) not null, + NETWORK_MODEL_CUSTOMIZATION_UUID varchar(200) not null, + CREATION_TIMESTAMP datetime default CURRENT_TIMESTAMP, + primary key (SERVICE_MODEL_UUID, NETWORK_MODEL_CUSTOMIZATION_UUID) + ); + + create table SERVICE_TO_RESOURCE_CUSTOMIZATIONS ( + MODEL_TYPE varchar(20) not null, + RESOURCE_MODEL_CUSTOMIZATION_UUID varchar(200) not null, + CREATION_TIMESTAMP datetime default CURRENT_TIMESTAMP, + SERVICE_MODEL_UUID varchar(200) not null, + primary key (MODEL_TYPE, RESOURCE_MODEL_CUSTOMIZATION_UUID) + ); + + create table TEMP_NETWORK_HEAT_TEMPLATE_LOOKUP ( + NETWORK_RESOURCE_MODEL_NAME varchar(200) not null, + HEAT_TEMPLATE_ARTIFACT_UUID varchar(200) not null, + AIC_VERSION_MIN varchar(20) not null, + AIC_VERSION_MAX varchar(20), + primary key (NETWORK_RESOURCE_MODEL_NAME) + ); + + create table TOSCA_CSAR ( + ARTIFACT_UUID varchar(200) not null, + NAME varchar(200) not null, + VERSION varchar(20) not null, + ARTIFACT_CHECKSUM varchar(200) not null, + URL varchar(200) not null, + DESCRIPTION varchar(1200), + CREATION_TIMESTAMP datetime default CURRENT_TIMESTAMP, + primary key (ARTIFACT_UUID) + ); + + create table VF_MODULE ( + MODEL_UUID varchar(200) not null, + VNF_RESOURCE_MODEL_UUID varchar(200), + MODEL_INVARIANT_UUID varchar(200), + MODEL_VERSION varchar(20) not null, + MODEL_NAME varchar(200) not null, + DESCRIPTION varchar(1200), + IS_BASE integer not null, + HEAT_TEMPLATE_ARTIFACT_UUID varchar(200) not null, + VOL_HEAT_TEMPLATE_ARTIFACT_UUID varchar(200), + CREATION_TIMESTAMP datetime default CURRENT_TIMESTAMP, + primary key (MODEL_UUID) + ); + + create table VF_MODULE_CUSTOMIZATION ( + MODEL_CUSTOMIZATION_UUID varchar(200) not null, + VF_MODULE_MODEL_UUID varchar(200) not null, + VOL_ENVIRONMENT_ARTIFACT_UUID varchar(200), + CREATION_TIMESTAMP datetime default CURRENT_TIMESTAMP, + HEAT_ENVIRONMENT_ARTIFACT_UUID varchar(200), + MIN_INSTANCES integer, + MAX_INSTANCES integer, + INITIAL_COUNT integer, + AVAILABILITY_ZONE_COUNT integer, + LABEL varchar(200), + primary key (MODEL_CUSTOMIZATION_UUID) + ); + + create table VF_MODULE_TO_HEAT_FILES ( + VF_MODULE_MODEL_UUID varchar(200) not null, + HEAT_FILES_ARTIFACT_UUID varchar(200) not null, + primary key (VF_MODULE_MODEL_UUID, HEAT_FILES_ARTIFACT_UUID) + ); + + create table VNF_COMPONENTS ( + VNF_ID integer not null, + COMPONENT_TYPE varchar(20) not null, + HEAT_TEMPLATE_ID integer, + HEAT_ENVIRONMENT_ID integer, + CREATION_TIMESTAMP datetime default CURRENT_TIMESTAMP, + primary key (VNF_ID, COMPONENT_TYPE) + ); + + create table VNF_COMPONENTS_RECIPE ( + id integer not null auto_increment, + VNF_TYPE varchar(200), + VF_MODULE_MODEL_UUID varchar(100), + VNF_COMPONENT_TYPE varchar(45) not null, + ACTION varchar(20) not null, + SERVICE_TYPE varchar(45), + VERSION varchar(20), + DESCRIPTION varchar(1200), + ORCHESTRATION_URI varchar(256) not null, + VNF_COMPONENT_PARAM_XSD varchar(2048), + RECIPE_TIMEOUT integer, + CREATION_TIMESTAMP datetime default CURRENT_TIMESTAMP, + primary key (id) + ); + + create table VNF_RECIPE ( + id integer not null auto_increment, + VF_MODULE_ID varchar(100), + ACTION varchar(20) not null, + VERSION_STR varchar(20) not null, + VNF_TYPE varchar(200), + SERVICE_TYPE varchar(45) default null, + DESCRIPTION varchar(1200), + ORCHESTRATION_URI varchar(256) not null, + VNF_PARAM_XSD varchar(2048), + RECIPE_TIMEOUT integer, + CREATION_TIMESTAMP datetime default CURRENT_TIMESTAMP, + primary key (id) + ); + + create table VNF_RESOURCE ( + MODEL_UUID varchar(200) not null, + MODEL_INVARIANT_UUID varchar(200), + MODEL_VERSION varchar(20) not null, + MODEL_NAME varchar(200), + TOSCA_NODE_TYPE varchar(200), + DESCRIPTION varchar(1200), + ORCHESTRATION_MODE varchar(20) not null, + AIC_VERSION_MIN varchar(20), + AIC_VERSION_MAX varchar(20), + HEAT_TEMPLATE_ARTIFACT_UUID varchar(200), + CREATION_TIMESTAMP datetime default CURRENT_TIMESTAMP, + primary key (MODEL_UUID) + ); + + create table VNF_RESOURCE_CUSTOMIZATION ( + MODEL_CUSTOMIZATION_UUID varchar(200) not null, + MODEL_INSTANCE_NAME varchar(200) not null, + MIN_INSTANCES integer, + MAX_INSTANCES integer, + AVAILABILITY_ZONE_MAX_COUNT integer, + NF_FUNCTION varchar(200), + NF_TYPE varchar(200), + NF_ROLE varchar(200), + NF_NAMING_CODE varchar(200), + VNF_RESOURCE_MODEL_UUID varchar(200) not null, + CREATION_TIMESTAMP datetime default CURRENT_TIMESTAMP, + primary key (MODEL_CUSTOMIZATION_UUID) + ); + + create table VNF_RES_CUSTOM_TO_VF_MODULE_CUSTOM ( + VNF_RESOURCE_CUST_MODEL_CUSTOMIZATION_UUID varchar(200) not null, + VF_MODULE_CUST_MODEL_CUSTOMIZATION_UUID varchar(200) not null, + CREATION_TIMESTAMP datetime default CURRENT_TIMESTAMP, + primary key (VNF_RESOURCE_CUST_MODEL_CUSTOMIZATION_UUID, VF_MODULE_CUST_MODEL_CUSTOMIZATION_UUID) + ); + + alter table MODEL + add constraint UK_rra00f1rk6eyy7g00k9raxh2v unique (MODEL_TYPE, MODEL_VERSION_ID); + + alter table MODEL_RECIPE + add constraint UK_b4g8j9wtqrkxfycyi3ursk7gb unique (MODEL_ID, ACTION); + + alter table NETWORK_RECIPE + add constraint UK_pbsa8i44m8p10f9529jdgfuk9 unique (MODEL_NAME, ACTION, VERSION_STR); + + alter table SERVICE_RECIPE + add constraint UK_2lr377dpqnvl5aqlp5dtj2fcp unique (SERVICE_MODEL_UUID, ACTION); + + alter table VNF_COMPONENTS_RECIPE + add constraint UK_g3je95aaxxiuest25f0qoy2u8 unique (VNF_TYPE, VF_MODULE_MODEL_UUID, VNF_COMPONENT_TYPE, ACTION, SERVICE_TYPE, VERSION); + + alter table VNF_RECIPE + add constraint UK_f3tvqau498vrifq3cr8qnigkr unique (VF_MODULE_ID, ACTION, VERSION_STR); + + alter table HEAT_TEMPLATE_PARAMS + add constraint FK_p3ol1xcvp831glqohrlu6o07o + foreign key (HEAT_TEMPLATE_ARTIFACT_UUID) + references HEAT_TEMPLATE (ARTIFACT_UUID); + + alter table MODEL_RECIPE + add constraint FK_c23r0puyqug6n44jg39dutm1c + foreign key (MODEL_ID) + references MODEL (id); + + alter table SERVICE + add constraint FK_l3qy594u2xr1tfpmma3uigsna + foreign key (TOSCA_CSAR_ARTIFACT_UUID) + references TOSCA_CSAR (ARTIFACT_UUID); + + alter table SERVICE_RECIPE + add constraint FK_i3r1b8j6e7dg9hkp49evnnm5y + foreign key (SERVICE_MODEL_UUID) + references SERVICE (MODEL_UUID); + + alter table SERVICE_TO_RESOURCE_CUSTOMIZATIONS + add constraint FK_kiddaay6cfe0aob1f1jaio1bb + foreign key (SERVICE_MODEL_UUID) + references SERVICE (MODEL_UUID); + + alter table VF_MODULE + add constraint FK_12jptc9it7gs3pru08skobxxc + foreign key (VNF_RESOURCE_MODEL_UUID) + references VNF_RESOURCE (MODEL_UUID); + + alter table VNF_RESOURCE_CUSTOMIZATION + add constraint FK_iff1ayhb1hrp5jhea3vvikuni + foreign key (VNF_RESOURCE_MODEL_UUID) + references VNF_RESOURCE (MODEL_UUID); diff --git a/kubernetes/so/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/main-schemas/MySQL-Requests-schema.sql b/kubernetes/so/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/main-schemas/MySQL-Requests-schema.sql new file mode 100644 index 0000000000..f64548e23d --- /dev/null +++ b/kubernetes/so/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/main-schemas/MySQL-Requests-schema.sql @@ -0,0 +1,84 @@ + + drop table if exists INFRA_ACTIVE_REQUESTS; + + drop table if exists SITE_STATUS; + + create table INFRA_ACTIVE_REQUESTS ( + REQUEST_ID varchar(45) not null, + CLIENT_REQUEST_ID varchar(45), + ACTION varchar(45) not null, + REQUEST_STATUS varchar(20), + STATUS_MESSAGE varchar(2000), + PROGRESS bigint, + START_TIME datetime, + END_TIME datetime, + SOURCE varchar(45), + VNF_ID varchar(45), + VNF_NAME varchar(80), + VNF_TYPE varchar(200), + SERVICE_TYPE varchar(45), + AIC_NODE_CLLI varchar(11), + TENANT_ID varchar(45), + PROV_STATUS varchar(20), + VNF_PARAMS longtext, + VNF_OUTPUTS longtext, + REQUEST_BODY longtext, + RESPONSE_BODY longtext, + LAST_MODIFIED_BY varchar(50), + MODIFY_TIME datetime, + REQUEST_TYPE varchar(20), + VOLUME_GROUP_ID varchar(45), + VOLUME_GROUP_NAME varchar(45), + VF_MODULE_ID varchar(45), + VF_MODULE_NAME varchar(200), + VF_MODULE_MODEL_NAME varchar(200), + AAI_SERVICE_ID varchar(50), + AIC_CLOUD_REGION varchar(11), + CALLBACK_URL varchar(200), + CORRELATOR varchar(80), + SERVICE_INSTANCE_ID varchar(45), + SERVICE_INSTANCE_NAME varchar(80), + REQUEST_SCOPE varchar(20), + REQUEST_ACTION varchar(45) not null, + NETWORK_ID varchar(45), + NETWORK_NAME varchar(80), + NETWORK_TYPE varchar(80), + REQUESTOR_ID varchar(80), + primary key (REQUEST_ID) + ); + + create table SITE_STATUS ( + SITE_NAME varchar(255) not null, + STATUS bit, + CREATION_TIMESTAMP datetime default CURRENT_TIMESTAMP, + primary key (SITE_NAME) + ); + create table OPERATION_STATUS ( + SERVICE_ID varchar(255) not null, + OPERATION_ID varchar(255) not null, + SERVICE_NAME varchar(255), + OPERATION_TYPE varchar(255), + USER_ID varchar(255), + RESULT varchar(255), + OPERATION_CONTENT varchar(255), + PROGRESS varchar(255), + REASON varchar(255), + OPERATE_AT datetime, + FINISHED_AT datetime, + primary key (SERVICE_ID,OPERATION_ID) + ); + create table RESOURCE_OPERATION_STATUS ( + SERVICE_ID varchar(255) not null, + OPERATION_ID varchar(255) not null, + RESOURCE_TEMPLATE_UUID varchar(255) not null, + OPER_TYPE varchar(255), + RESOURCE_INSTANCE_ID varchar(255), + JOB_ID varchar(255), + STATUS varchar(255), + PROGRESS varchar(255), + ERROR_CODE varchar(255) , + STATUS_DESCRIPOTION varchar(255) , + primary key (SERVICE_ID,OPERATION_ID,RESOURCE_TEMPLATE_UUID) + ); + alter table INFRA_ACTIVE_REQUESTS + add constraint UK_bhu6w8p7wvur4pin0gjw2d5ak unique (CLIENT_REQUEST_ID); diff --git a/kubernetes/so/charts/mariadb/templates/NOTES.txt b/kubernetes/so/charts/mariadb/templates/NOTES.txt new file mode 100644 index 0000000000..c60c745ca3 --- /dev/null +++ b/kubernetes/so/charts/mariadb/templates/NOTES.txt @@ -0,0 +1,19 @@ +1. Get the application URL by running these commands: +{{- if .Values.ingress.enabled }} +{{- range .Values.ingress.hosts }} + http://{{ . }} +{{- end }} +{{- else if contains "NodePort" .Values.service.type }} + export NODE_PORT=$(kubectl get --namespace {{ include "common.namespace" . }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "common.name" . }}) + export NODE_IP=$(kubectl get nodes --namespace {{ include "common.namespace" . }} -o jsonpath="{.items[0].status.addresses[0].address}") + echo http://$NODE_IP:$NODE_PORT +{{- else if contains "LoadBalancer" .Values.service.type }} + NOTE: It may take a few minutes for the LoadBalancer IP to be available. + You can watch the status of by running 'kubectl get svc -w {{ include "common.name" . }}' + export SERVICE_IP=$(kubectl get svc --namespace {{ include "common.namespace" . }} {{ include "common.name" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}') + echo http://$SERVICE_IP:{{ .Values.service.externalPort }} +{{- else if contains "ClusterIP" .Values.service.type }} + export POD_NAME=$(kubectl get pods --namespace {{ include "common.namespace" . }} -l "app={{ include "common.name" . }},release={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}") + echo "Visit http://127.0.0.1:8080 to use your application" + kubectl port-forward $POD_NAME 8080:{{ .Values.service.internalPort }} +{{- end }} diff --git a/kubernetes/so/charts/mariadb/templates/configmap.yaml b/kubernetes/so/charts/mariadb/templates/configmap.yaml new file mode 100644 index 0000000000..e70563a379 --- /dev/null +++ b/kubernetes/so/charts/mariadb/templates/configmap.yaml @@ -0,0 +1,63 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: confd-configmap + namespace: {{ include "common.namespace" . }} +data: +{{ tpl (.Files.Glob "resources/config/mariadb/conf.d/*").AsConfig . | indent 2 }} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: docker-entry-initd-configmap + namespace: {{ include "common.namespace" . }} +data: +{{ tpl (.Files.Glob "resources/config/mariadb/docker-entrypoint-initdb.d/*").AsConfig . | indent 2 }} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: automated-tests-configmap + namespace: {{ include "common.namespace" . }} +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: bulkload-default-configmap + namespace: {{ include "common.namespace" . }} +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: demo-dns-configmap + namespace: {{ include "common.namespace" . }} +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: demo-vfw-configmap + namespace: {{ include "common.namespace" . }} +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: scripts-camunda-configmap + namespace: {{ include "common.namespace" . }} +data: +{{ tpl (.Files.Glob "resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/camunda/*").AsConfig . | indent 2 }} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: main-schemas-configmap + namespace: {{ include "common.namespace" . }} +data: +{{ tpl (.Files.Glob "resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/main-schemas/*").AsConfig . | indent 2 }} diff --git a/kubernetes/so/charts/mariadb/templates/deployment.yaml b/kubernetes/so/charts/mariadb/templates/deployment.yaml new file mode 100644 index 0000000000..3d0cd81772 --- /dev/null +++ b/kubernetes/so/charts/mariadb/templates/deployment.yaml @@ -0,0 +1,118 @@ +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + name: {{ include "common.fullname" . }} + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +spec: + replicas: {{ .Values.replicaCount }} + template: + metadata: + labels: + app: {{ include "common.name" . }} + release: {{ .Release.Name }} + spec: + hostname: mariadb + containers: + - name: {{ .Chart.Name }} + image: {{ .Values.global.repository | default .Values.repository }}/{{ .Values.image }} + imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + ports: + - containerPort: {{ .Values.service.internalPort }} + # disable liveness probe when breakpoints set in debugger + # so K8s doesn't restart unresponsive container + {{- if eq .Values.liveness.enabled true }} + livenessProbe: + tcpSocket: + port: {{ .Values.service.internalPort }} + initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }} + periodSeconds: {{ .Values.liveness.periodSeconds }} + {{end -}} + readinessProbe: + tcpSocket: + port: {{ .Values.service.internalPort }} + initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }} + periodSeconds: {{ .Values.readiness.periodSeconds }} + env: + - name: MYSQL_ROOT_PASSWORD + valueFrom: + secretKeyRef: + name: {{ template "common.fullname" . }} + key: db-root-password + volumeMounts: + - mountPath: /var/lib/mysql + name: mariadb-data + - mountPath: /etc/localtime + name: localtime + readOnly: true + - mountPath: /etc/mysql/conf.d + name: mariadb-conf + - mountPath: /docker-entrypoint-initdb.d/02-load-additional-changes.sh + name: mariadb-docker-entrypoint-initdb + subPath: 02-load-additional-changes.sh + - mountPath: /docker-entrypoint-initdb.d/01-load-default-sql-files.sh + name: mariadb-docker-entrypoint-initdb + subPath: 01-load-default-sql-files.sh + - mountPath: /docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/automated-tests + name: mariadb-docker-entrypoint-automated-tests + - mountPath: /docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/default + name: mariadb-docker-entrypoint-bulkload-default + - mountPath: /docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/demo-dns + name: mariadb-docker-entrypoint-demo-dns + - mountPath: /docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/demo-vfw + name: mariadb-docker-entrypoint-demo-vfw + - mountPath: /docker-entrypoint-initdb.d/db-sql-scripts/camunda + name: mariadb-docker-entrypoint-camunda + - mountPath: /docker-entrypoint-initdb.d/db-sql-scripts/main-schemas + name: mariadb-docker-entrypoint-main-schemas + resources: +{{ toYaml .Values.resources | indent 12 }} + {{- if .Values.nodeSelector }} + nodeSelector: +{{ toYaml .Values.nodeSelector | indent 10 }} + {{- end -}} + {{- if .Values.affinity }} + affinity: +{{ toYaml .Values.affinity | indent 10 }} + {{- end }} + volumes: + {{- if .Values.persistence.enabled }} + - name: mariadb-data + persistentVolumeClaim: + claimName: {{ include "common.fullname" . }} + {{- else }} + emptyDir: {} + {{- end }} + - name: mariadb-conf + configMap: + name: confd-configmap + - name: mariadb-docker-entrypoint-initdb + configMap: + name: docker-entry-initd-configmap + - name: mariadb-docker-entrypoint-automated-tests + configMap: + name: automated-tests-configmap + - name: mariadb-docker-entrypoint-bulkload-default + configMap: + name: bulkload-default-configmap + - name: mariadb-docker-entrypoint-demo-dns + configMap: + name: demo-dns-configmap + - name: mariadb-docker-entrypoint-demo-vfw + configMap: + name: demo-vfw-configmap + - name: mariadb-docker-entrypoint-camunda + configMap: + name: scripts-camunda-configmap + - name: mariadb-docker-entrypoint-main-schemas + configMap: + name: main-schemas-configmap + - name: localtime + hostPath: + path: /etc/localtime + imagePullSecrets: + - name: "{{ include "common.namespace" . }}-docker-registry-key" diff --git a/kubernetes/so/charts/mariadb/templates/pv.yaml b/kubernetes/so/charts/mariadb/templates/pv.yaml new file mode 100644 index 0000000000..31230a9ed7 --- /dev/null +++ b/kubernetes/so/charts/mariadb/templates/pv.yaml @@ -0,0 +1,21 @@ +{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}} +kind: PersistentVolume +apiVersion: v1 +metadata: + name: {{ include "common.fullname" . }} + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}" + release: "{{ .Release.Name }}" + heritage: "{{ .Release.Service }}" + name: {{ include "common.fullname" . }} +spec: + capacity: + storage: {{ .Values.persistence.size}} + accessModes: + - {{ .Values.persistence.accessMode }} + persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }} + hostPath: + path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }} +{{- end -}} diff --git a/kubernetes/so/charts/mariadb/templates/pvc.yaml b/kubernetes/so/charts/mariadb/templates/pvc.yaml new file mode 100644 index 0000000000..b0cd3bf238 --- /dev/null +++ b/kubernetes/so/charts/mariadb/templates/pvc.yaml @@ -0,0 +1,32 @@ +{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}} +kind: PersistentVolumeClaim +apiVersion: v1 +metadata: + name: {{ include "common.fullname" . }} + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" + release: "{{ .Release.Name }}" + heritage: "{{ .Release.Service }}" +{{- if .Values.persistence.annotations }} + annotations: +{{ toYaml .Values.persistence.annotations | indent 4 }} +{{- end }} +spec: + selector: + matchLabels: + name: {{ include "common.fullname" . }} + accessModes: + - {{ .Values.persistence.accessMode }} + resources: + requests: + storage: {{ .Values.persistence.size }} +{{- if .Values.persistence.storageClass }} +{{- if (eq "-" .Values.persistence.storageClass) }} + storageClassName: "" +{{- else }} + storageClassName: "{{ .Values.persistence.storageClass }}" +{{- end }} +{{- end }} +{{- end -}} diff --git a/kubernetes/so/charts/mariadb/templates/secrets.yaml b/kubernetes/so/charts/mariadb/templates/secrets.yaml new file mode 100644 index 0000000000..b96d720778 --- /dev/null +++ b/kubernetes/so/charts/mariadb/templates/secrets.yaml @@ -0,0 +1,13 @@ +apiVersion: v1 +kind: Secret +metadata: + name: {{ include "common.fullname" . }} + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +type: Opaque +data: + db-root-password: {{ .Values.config.mariadbRootPassword | b64enc | quote }} diff --git a/kubernetes/so/charts/mariadb/templates/service.yaml b/kubernetes/so/charts/mariadb/templates/service.yaml new file mode 100644 index 0000000000..0a040bcab5 --- /dev/null +++ b/kubernetes/so/charts/mariadb/templates/service.yaml @@ -0,0 +1,24 @@ +apiVersion: v1 +kind: Service +metadata: + name: {{ include "common.fullname" . }} + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +spec: + type: {{ .Values.service.type }} + ports: + {{if eq .Values.service.type "NodePort" -}} + - port: {{ .Values.service.internalPort }} + nodePort: {{ .Values.global.nodePortPrefix | default "302" }}{{ .Values.service.externalPort }} + {{- else -}} + - port: {{ .Values.service.externalPort }} + targetPort: {{ .Values.service.internalPort }} + {{- end}} + name: {{ .Values.service.name }} + selector: + app: {{ include "common.name" . }} + release: {{ .Release.Name }}
\ No newline at end of file diff --git a/kubernetes/so/charts/mariadb/values.yaml b/kubernetes/so/charts/mariadb/values.yaml new file mode 100644 index 0000000000..c3e6ead945 --- /dev/null +++ b/kubernetes/so/charts/mariadb/values.yaml @@ -0,0 +1,92 @@ +# Default values for mariadb. +# This is a YAML-formatted file. +# Declare variables to be passed into your templates. +global: # global defaults + nodePortPrefix: 302 + repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ== + persistence: {} + + +# application image +repository: nexus3.onap.org:10001 +image: mariadb:10.1.11 +pullPolicy: Always + +# application configuration +config: + mariadbRootPassword: password + +# override chart name (mariadb) to share a common namespace +# suffix with parent chart (so) +nsSuffix: so + + +# default number of instances +replicaCount: 1 + +nodeSelector: {} + +affinity: {} + +# probe configuration parameters +liveness: + initialDelaySeconds: 10 + periodSeconds: 10 + # necessary to disable liveness probe when setting breakpoints + # in debugger so K8s doesn't restart unresponsive container + enabled: true + +readiness: + initialDelaySeconds: 10 + periodSeconds: 10 + +## Persist data to a persitent volume +persistence: + enabled: true + + ## A manually managed Persistent Volume and Claim + ## Requires persistence.enabled: true + ## If defined, PVC must be created manually before volume will be bound + # existingClaim: + volumeReclaimPolicy: Retain + + ## database data Persistent Volume Storage Class + ## If defined, storageClassName: <storageClass> + ## If set to "-", storageClassName: "", which disables dynamic provisioning + ## If undefined (the default) or set to null, no storageClassName spec is + ## set, choosing the default provisioner. (gp2 on AWS, standard on + ## GKE, AWS & OpenStack) + ## + # storageClass: "-" + accessMode: ReadWriteMany + size: 2Gi + mountPath: /dockerdata-nfs + mountSubPath: mso/mariadb/data + +service: + type: NodePort + name: mariadb + externalPort: 52 + internalPort: 3306 + +ingress: + enabled: false + +resources: {} + # We usually recommend not to specify default resources and to leave this as a conscious + # choice for the user. This also increases chances charts run on environments with little + # resources, such as Minikube. If you do want to specify resources, uncomment the following + # lines, adjust them as necessary, and remove the curly braces after 'resources:'. + # + # Example: + # Configure resource requests and limits + # ref: http://kubernetes.io/docs/user-guide/compute-resources/ + # Minimum memory for development is 2 CPU cores and 4GB memory + # Minimum memory for production is 4 CPU cores and 8GB memory +#resources: +# limits: +# cpu: 2 +# memory: 4Gi +# requests: +# cpu: 2 +# memory: 4Gi diff --git a/kubernetes/so/requirements.yaml b/kubernetes/so/requirements.yaml new file mode 100644 index 0000000000..56029ab047 --- /dev/null +++ b/kubernetes/so/requirements.yaml @@ -0,0 +1,7 @@ +dependencies: + - name: common + version: ~2.0.0 + # local reference to common chart, as it is + # a part of this chart's package and will not + # be published independently to a repo (at this point) + repository: '@local'
\ No newline at end of file diff --git a/kubernetes/so/resources/config/docker-files/scripts/start-jboss-server.sh b/kubernetes/so/resources/config/docker-files/scripts/start-jboss-server.sh new file mode 100755 index 0000000000..3280253743 --- /dev/null +++ b/kubernetes/so/resources/config/docker-files/scripts/start-jboss-server.sh @@ -0,0 +1,63 @@ +#!/bin/sh +# Copyright 2015 AT&T Intellectual Properties +############################################################################## +# Script to initialize the chef-repo branch and.chef +# +############################################################################## +# Copy the certificates +echo 'Copying the *.crt provided in /shared folder' +cp --verbose /shared/*.crt /usr/local/share/ca-certificates +update-ca-certificates + +echo 'Running in JBOSS' +su - jboss + +DEBUG='' +if [ "$JBOSS_DEBUG" = true ] ; then + DEBUG="--debug" +fi + +#Start the chef-solo if mso-docker.json contains some data. +if [ -s /var/berks-cookbooks/${CHEF_REPO_NAME}/environments/mso-docker.json ] +then + echo "mso-docker.json has some configuration, replay the recipes." + chef-solo -c /var/berks-cookbooks/${CHEF_REPO_NAME}/solo.rb -o recipe[mso-config::apih],recipe[mso-config::bpmn],recipe[mso-config::jra] +else + echo "mso-docker.json is empty, do not replay the recipes." +fi + +JBOSS_PIDFILE=/tmp/jboss-standalone.pid +$JBOSS_HOME/bin/standalone.sh ${DEBUG} -c standalone-full-ha-mso.xml & +JBOSS_PID=$! +# Trap common signals and relay them to the jboss process +trap "kill -HUP $JBOSS_PID" HUP +trap "kill -TERM $JBOSS_PID" INT +trap "kill -QUIT $JBOSS_PID" QUIT +trap "kill -PIPE $JBOSS_PID" PIPE +trap "kill -TERM $JBOSS_PID" TERM +if [ "x$JBOSS_PIDFILE" != "x" ]; then + echo $JBOSS_PID > $JBOSS_PIDFILE +fi +# Wait until the background process exits +WAIT_STATUS=128 +while [ "$WAIT_STATUS" -ge 128 ]; do + wait $JBOSS_PID 2>/dev/null + WAIT_STATUS=$? + if [ "$WAIT_STATUS" -gt 128 ]; then + SIGNAL=`expr $WAIT_STATUS - 128` + SIGNAL_NAME=`kill -l $SIGNAL` + echo "*** JBossAS process ($JBOSS_PID) received $SIGNAL_NAME signal ***" >&2 + fi +done +if [ "$WAIT_STATUS" -lt 127 ]; then + JBOSS_STATUS=$WAIT_STATUS +else + JBOSS_STATUS=0 +fi +if [ "$JBOSS_STATUS" -ne 10 ]; then + # Wait for a complete shudown + wait $JBOSS_PID 2>/dev/null +fi +if [ "x$JBOSS_PIDFILE" != "x" ]; then + grep "$JBOSS_PID" $JBOSS_PIDFILE && rm $JBOSS_PIDFILE +fi diff --git a/kubernetes/so/resources/config/log/filebeat/filebeat.yml b/kubernetes/so/resources/config/log/filebeat/filebeat.yml new file mode 100644 index 0000000000..9ad559c027 --- /dev/null +++ b/kubernetes/so/resources/config/log/filebeat/filebeat.yml @@ -0,0 +1,41 @@ +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.{{ .Release.Name }}-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 diff --git a/kubernetes/so/resources/config/log/logback.apihandler-infra.xml b/kubernetes/so/resources/config/log/logback.apihandler-infra.xml new file mode 100644 index 0000000000..3e0ea61ea6 --- /dev/null +++ b/kubernetes/so/resources/config/log/logback.apihandler-infra.xml @@ -0,0 +1,139 @@ +<configuration scan="false" debug="true"> + <!--<jmxConfigurator /> --> + <!-- directory path for all other type logs --> + <property name="logDir" value="/var/log/onap" /> + + <!-- directory path for debugging type logs --> + <property name="debugDir" value="/var/log/onap" /> + + <!-- specify the component name + <ECOMP-component-name>::= "MSO" | "DCAE" | "ASDC " | "AAI" |"Policy" | "SDNC" | "AC" --> + <property name="componentName" value="MSO"></property> + <property name="subComponentName" value="ApiHandlerInfra"></property> + <!-- log file names --> + <property name="errorLogName" value="error" /> + <property name="metricsLogName" value="metrics" /> + <property name="auditLogName" value="audit" /> + <property name="debugLogName" value="debug" /> + + <property name="errorPattern" value="%d{"yyyy-MM-dd'T'HH:mm:ss.SSSXXX", UTC}|%X{RequestId}|%thread|%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%.-5level|%X{ErrorCode}|%X{ErrorDesc}|%msg%n" /> + <property name="debugPattern" value="%d{"yyyy-MM-dd'T'HH:mm:ss.SSSXXX", UTC}|%X{RequestId}|%msg%n" /> + + <property name="auditPattern" value="%X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%thread||%X{ServiceName}|%X{PartnerName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDesc}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{Timer}|%X{ServerFQDN}|%X{RemoteHost}||||||||%msg%n" /> + <property name="metricPattern" value="%X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%thread||%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDesc}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{Timer}|%X{ServerFQDN}|%X{RemoteHost}||||%X{TargetVirtualEntity}|||||%msg%n" /> + <property name="logDirectory" value="${logDir}/${componentName}/${subComponentName}" /> + <property name="debugLogDirectory" value="${debugDir}/${componentName}/${subComponentName}" /> + + + <!-- ============================================================================ --> + <!-- EELF Appenders --> + <!-- ============================================================================ --> + + <!-- The EELFAppender is used to record events to the general application + log --> + + <!-- EELF Audit Appender. This appender is used to record audit engine + related logging events. The audit logger and appender are specializations + of the EELF application root logger and appender. This can be used to segregate + Policy engine events from other components, or it can be eliminated to record + these events as part of the application root log. --> + + <appender name="EELFAudit" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${logDirectory}/${auditLogName}${jboss.server.name}.log</file> + <rollingPolicy + class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/${auditLogName}${jboss.server.name}.log.%d</fileNamePattern> + <!--<maxHistory>30</maxHistory>--> + </rollingPolicy> + <encoder> + <pattern>${auditPattern}</pattern> + </encoder> + </appender> + <appender name="asyncEELFAudit" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>256</queueSize> + <appender-ref ref="EELFAudit" /> + </appender> + +<appender name="EELFMetrics" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${logDirectory}/${metricsLogName}${jboss.server.name}.log</file> + <rollingPolicy + class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/${metricsLogName}${jboss.server.name}.log.%d</fileNamePattern> + <!--<maxHistory>30</maxHistory>--> + </rollingPolicy> + <encoder> + <!-- <pattern>"%d{HH:mm:ss.SSS} [%thread] %-5level %logger{1024} - + %msg%n"</pattern> --> + <pattern>${metricPattern}</pattern> + </encoder> + </appender> + + + <appender name="asyncEELFMetrics" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>256</queueSize> + <appender-ref ref="EELFMetrics"/> + </appender> + + <appender name="EELFError" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${logDirectory}/${errorLogName}${jboss.server.name}.log</file> + <rollingPolicy + class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/${errorLogName}${jboss.server.name}.log.%d</fileNamePattern> + <!--<maxHistory>30</maxHistory>--> + </rollingPolicy> + <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> + <level>INFO</level> + </filter> + <encoder> + <pattern>${errorPattern}</pattern> + </encoder> + </appender> + + <appender name="asyncEELFError" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>256</queueSize> + <appender-ref ref="EELFError"/> + </appender> + + <appender name="EELFDebug" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${debugLogDirectory}/${debugLogName}${jboss.server.name}.log</file> + <rollingPolicy + class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${debugLogDirectory}/${debugLogName}${jboss.server.name}.log.%d</fileNamePattern> + <!--<maxHistory>30</maxHistory>--> + </rollingPolicy> + <encoder> + <pattern>${debugPattern}</pattern> + </encoder> + </appender> + + <appender name="asyncEELFDebug" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>256</queueSize> + <appender-ref ref="EELFDebug" /> + <includeCallerData>true</includeCallerData> + </appender> + + + <!-- ============================================================================ --> + <!-- EELF loggers --> + <!-- ============================================================================ --> + + <logger name="com.att.eelf.audit" level="info" additivity="false"> + <appender-ref ref="asyncEELFAudit" /> + </logger> + + <logger name="com.att.eelf.metrics" level="info" additivity="false"> + <appender-ref ref="asyncEELFMetrics" /> + </logger> + + <logger name="com.att.eelf.error" level="debug" additivity="false"> + <appender-ref ref="asyncEELFError" /> + </logger> + <root level="INFO"> + <appender-ref ref="asyncEELFDebug" /> + </root> + +</configuration> diff --git a/kubernetes/so/resources/config/log/logback.appc.xml b/kubernetes/so/resources/config/log/logback.appc.xml new file mode 100644 index 0000000000..588f6f39d2 --- /dev/null +++ b/kubernetes/so/resources/config/log/logback.appc.xml @@ -0,0 +1,138 @@ +<configuration scan="false" debug="true"> + <!--<jmxConfigurator /> --> + <!-- directory path for all other type logs --> + <property name="logDir" value="/var/log/onap" /> + + <!-- directory path for debugging type logs --> + <property name="debugDir" value="/var/log/onap" /> + + <!-- specify the component name + <ECOMP-component-name>::= "MSO" | "DCAE" | "ASDC " | "AAI" |"Policy" | "SDNC" | "AC" --> + <property name="componentName" value="MSO"></property> + <property name="subComponentName" value="AppCAdapter"></property> + <!-- log file names --> + <property name="errorLogName" value="error" /> + <property name="metricsLogName" value="metrics" /> + <property name="auditLogName" value="audit" /> + <property name="debugLogName" value="debug" /> + + <property name="errorPattern" value="%d{"yyyy-MM-dd'T'HH:mm:ss.SSSXXX", UTC}|%X{RequestId}|%thread|%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%.-5level|%X{ErrorCode}|%X{ErrorDesc}|%msg%n" /> + <property name="debugPattern" value="%d{"yyyy-MM-dd'T'HH:mm:ss.SSSXXX", UTC}|%X{RequestId}|%msg%n" /> + + <property name="auditPattern" value="%X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%thread||%X{ServiceName}|%X{PartnerName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDesc}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{Timer}|%X{ServerFQDN}|%X{RemoteHost}||||||||%msg%n" /> + <property name="metricPattern" value="%X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%thread||%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDesc}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{Timer}|%X{ServerFQDN}|%X{RemoteHost}||||%X{TargetVirtualEntity}|||||%msg%n" /> + <property name="logDirectory" value="${logDir}/${componentName}/${subComponentName}" /> + <property name="debugLogDirectory" value="${debugDir}/${componentName}/${subComponentName}" /> + + <!-- ============================================================================ --> + <!-- EELF Appenders --> + <!-- ============================================================================ --> + + <!-- The EELFAppender is used to record events to the general application + log --> + + <!-- EELF Audit Appender. This appender is used to record audit engine + related logging events. The audit logger and appender are specializations + of the EELF application root logger and appender. This can be used to segregate + Policy engine events from other components, or it can be eliminated to record + these events as part of the application root log. --> + + <appender name="EELFAudit" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${logDirectory}/${auditLogName}${jboss.server.name}.log</file> + <rollingPolicy + class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/${auditLogName}${jboss.server.name}.log.%d</fileNamePattern> + <!--<maxHistory>30</maxHistory>--> + </rollingPolicy> + <encoder> + <pattern>${auditPattern}</pattern> + </encoder> + </appender> + <appender name="asyncEELFAudit" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>256</queueSize> + <appender-ref ref="EELFAudit" /> + </appender> + +<appender name="EELFMetrics" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${logDirectory}/${metricsLogName}${jboss.server.name}.log</file> + <rollingPolicy + class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/${metricsLogName}${jboss.server.name}.log.%d</fileNamePattern> + <!--<maxHistory>30</maxHistory>--> + </rollingPolicy> + <encoder> + <!-- <pattern>"%d{HH:mm:ss.SSS} [%thread] %-5level %logger{1024} - + %msg%n"</pattern> --> + <pattern>${metricPattern}</pattern> + </encoder> + </appender> + + + <appender name="asyncEELFMetrics" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>256</queueSize> + <appender-ref ref="EELFMetrics"/> + </appender> + + <appender name="EELFError" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${logDirectory}/${errorLogName}${jboss.server.name}.log</file> + <rollingPolicy + class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/${errorLogName}${jboss.server.name}.log.%d</fileNamePattern> + <!--<maxHistory>30</maxHistory>--> + </rollingPolicy> + <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> + <level>INFO</level> + </filter> + <encoder> + <pattern>${errorPattern}</pattern> + </encoder> + </appender> + + <appender name="asyncEELFError" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>256</queueSize> + <appender-ref ref="EELFError"/> + </appender> + + <appender name="EELFDebug" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${debugLogDirectory}/${debugLogName}${jboss.server.name}.log</file> + <rollingPolicy + class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${debugLogDirectory}/${debugLogName}${jboss.server.name}.log.%d</fileNamePattern> + <!--<maxHistory>30</maxHistory>--> + </rollingPolicy> + <encoder> + <pattern>${debugPattern}</pattern> + </encoder> + </appender> + + <appender name="asyncEELFDebug" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>256</queueSize> + <appender-ref ref="EELFDebug" /> + <includeCallerData>true</includeCallerData> + </appender> + + + <!-- ============================================================================ --> + <!-- EELF loggers --> + <!-- ============================================================================ --> + + <logger name="com.att.eelf.audit" level="info" additivity="false"> + <appender-ref ref="asyncEELFAudit" /> + </logger> + + <logger name="com.att.eelf.metrics" level="info" additivity="false"> + <appender-ref ref="asyncEELFMetrics" /> + </logger> + + <logger name="com.att.eelf.error" level="debug" additivity="false"> + <appender-ref ref="asyncEELFError" /> + </logger> + <root level="INFO"> + <appender-ref ref="asyncEELFDebug" /> + </root> + +</configuration> diff --git a/kubernetes/so/resources/config/log/logback.asdc.xml b/kubernetes/so/resources/config/log/logback.asdc.xml new file mode 100644 index 0000000000..b4879e017f --- /dev/null +++ b/kubernetes/so/resources/config/log/logback.asdc.xml @@ -0,0 +1,138 @@ +<configuration scan="false" debug="true"> + <!--<jmxConfigurator /> --> + <!-- directory path for all other type logs --> + <property name="logDir" value="/var/log/onap" /> + + <!-- directory path for debugging type logs --> + <property name="debugDir" value="/var/log/onap" /> + + <!-- specify the component name + <ECOMP-component-name>::= "MSO" | "DCAE" | "ASDC " | "AAI" |"Policy" | "SDNC" | "AC" --> + <property name="componentName" value="MSO"></property> + <property name="subComponentName" value="ASDCController"></property> + <!-- log file names --> + <property name="errorLogName" value="error" /> + <property name="metricsLogName" value="metrics" /> + <property name="auditLogName" value="audit" /> + <property name="debugLogName" value="debug" /> + + <property name="errorPattern" value="%d{"yyyy-MM-dd'T'HH:mm:ss.SSSXXX", UTC}|%X{RequestId}|%thread|%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%.-5level|%X{ErrorCode}|%X{ErrorDesc}|%msg%n" /> + <property name="debugPattern" value="%d{"yyyy-MM-dd'T'HH:mm:ss.SSSXXX", UTC}|%X{RequestId}|%msg%n" /> + + <property name="auditPattern" value="%X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%thread||%X{ServiceName}|%X{PartnerName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDesc}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{Timer}|%X{ServerFQDN}|%X{RemoteHost}||||||||%msg%n" /> + <property name="metricPattern" value="%X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%thread||%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDesc}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{Timer}|%X{ServerFQDN}|%X{RemoteHost}||||%X{TargetVirtualEntity}|||||%msg%n" /> + <property name="logDirectory" value="${logDir}/${componentName}/${subComponentName}" /> + <property name="debugLogDirectory" value="${debugDir}/${componentName}/${subComponentName}" /> + + <!-- ============================================================================ --> + <!-- EELF Appenders --> + <!-- ============================================================================ --> + + <!-- The EELFAppender is used to record events to the general application + log --> + + <!-- EELF Audit Appender. This appender is used to record audit engine + related logging events. The audit logger and appender are specializations + of the EELF application root logger and appender. This can be used to segregate + Policy engine events from other components, or it can be eliminated to record + these events as part of the application root log. --> + + <appender name="EELFAudit" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${logDirectory}/${auditLogName}${jboss.server.name}.log</file> + <rollingPolicy + class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/${auditLogName}${jboss.server.name}.log.%d</fileNamePattern> + <!--<maxHistory>30</maxHistory>--> + </rollingPolicy> + <encoder> + <pattern>${auditPattern}</pattern> + </encoder> + </appender> + <appender name="asyncEELFAudit" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>256</queueSize> + <appender-ref ref="EELFAudit" /> + </appender> + +<appender name="EELFMetrics" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${logDirectory}/${metricsLogName}${jboss.server.name}.log</file> + <rollingPolicy + class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/${metricsLogName}${jboss.server.name}.log.%d</fileNamePattern> + <!--<maxHistory>30</maxHistory>--> + </rollingPolicy> + <encoder> + <!-- <pattern>"%d{HH:mm:ss.SSS} [%thread] %-5level %logger{1024} - + %msg%n"</pattern> --> + <pattern>${metricPattern}</pattern> + </encoder> + </appender> + + + <appender name="asyncEELFMetrics" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>256</queueSize> + <appender-ref ref="EELFMetrics"/> + </appender> + + <appender name="EELFError" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${logDirectory}/${errorLogName}${jboss.server.name}.log</file> + <rollingPolicy + class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/${errorLogName}${jboss.server.name}.log.%d</fileNamePattern> + <!--<maxHistory>30</maxHistory>--> + </rollingPolicy> + <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> + <level>INFO</level> + </filter> + <encoder> + <pattern>${errorPattern}</pattern> + </encoder> + </appender> + + <appender name="asyncEELFError" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>256</queueSize> + <appender-ref ref="EELFError"/> + </appender> + + <appender name="EELFDebug" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${debugLogDirectory}/${debugLogName}${jboss.server.name}.log</file> + <rollingPolicy + class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${debugLogDirectory}/${debugLogName}${jboss.server.name}.log.%d</fileNamePattern> + <!--<maxHistory>30</maxHistory>--> + </rollingPolicy> + <encoder> + <pattern>${debugPattern}</pattern> + </encoder> + </appender> + + <appender name="asyncEELFDebug" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>256</queueSize> + <appender-ref ref="EELFDebug" /> + <includeCallerData>true</includeCallerData> + </appender> + + + <!-- ============================================================================ --> + <!-- EELF loggers --> + <!-- ============================================================================ --> + + <logger name="com.att.eelf.audit" level="info" additivity="false"> + <appender-ref ref="asyncEELFAudit" /> + </logger> + + <logger name="com.att.eelf.metrics" level="info" additivity="false"> + <appender-ref ref="asyncEELFMetrics" /> + </logger> + + <logger name="com.att.eelf.error" level="debug" additivity="false"> + <appender-ref ref="asyncEELFError" /> + </logger> + <root level="INFO"> + <appender-ref ref="asyncEELFDebug" /> + </root> + +</configuration> diff --git a/kubernetes/so/resources/config/log/logback.bpmn.xml b/kubernetes/so/resources/config/log/logback.bpmn.xml new file mode 100644 index 0000000000..3bc3ca157b --- /dev/null +++ b/kubernetes/so/resources/config/log/logback.bpmn.xml @@ -0,0 +1,139 @@ +<configuration scan="true" scanPeriod="3 seconds" debug="true"> + <!--<jmxConfigurator /> --> + <!-- directory path for all other type logs --> + <property name="logDir" value="/var/log/onap" /> + + <!-- directory path for debugging type logs --> + <property name="debugDir" value="/var/log/onap" /> + + <!-- specify the component name + <ECOMP-component-name>::= "MSO" | "DCAE" | "ASDC " | "AAI" |"Policy" | "SDNC" | "AC" --> + <property name="componentName" value="MSO"></property> + <property name="subComponentName" value="BPMN"></property> + <!-- log file names --> + <property name="errorLogName" value="error" /> + <property name="metricsLogName" value="metrics" /> + <property name="auditLogName" value="audit" /> + <property name="debugLogName" value="debug" /> + + <property name="errorPattern" value="%d{"yyyy-MM-dd'T'HH:mm:ss.SSSXXX", UTC}|%X{RequestId}|%thread|%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%.-5level|%X{ErrorCode}|%X{ErrorDesc}|%msg%n" /> + <property name="debugPattern" value="%d{"yyyy-MM-dd'T'HH:mm:ss.SSSXXX", UTC}|%X{RequestId}|%msg%n" /> + + <property name="auditPattern" value="%X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%thread||%X{ServiceName}|%X{PartnerName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDesc}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{Timer}|%X{ServerFQDN}|%X{RemoteHost}||||||||%msg%n" /> + <property name="metricPattern" value="%X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%thread||%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDesc}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{Timer}|%X{ServerFQDN}|%X{RemoteHost}||||%X{TargetVirtualEntity}|||||%msg%n" /> + <property name="logDirectory" value="${logDir}/${componentName}/${subComponentName}" /> + <property name="debugLogDirectory" value="${debugDir}/${componentName}/${subComponentName}" /> + + + <!-- ============================================================================ --> + <!-- EELF Appenders --> + <!-- ============================================================================ --> + + <!-- The EELFAppender is used to record events to the general application + log --> + + <!-- EELF Audit Appender. This appender is used to record audit engine + related logging events. The audit logger and appender are specializations + of the EELF application root logger and appender. This can be used to segregate + Policy engine events from other components, or it can be eliminated to record + these events as part of the application root log. --> + + <appender name="EELFAudit" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${logDirectory}/${auditLogName}${jboss.server.name}.log</file> + <rollingPolicy + class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/${auditLogName}${jboss.server.name}.log.%d</fileNamePattern> + <!--<maxHistory>30</maxHistory>--> + </rollingPolicy> + <encoder> + <pattern>${auditPattern}</pattern> + </encoder> + </appender> + <appender name="asyncEELFAudit" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>256</queueSize> + <appender-ref ref="EELFAudit" /> + </appender> + + <appender name="EELFMetrics" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${logDirectory}/${metricsLogName}${jboss.server.name}.log</file> + <rollingPolicy + class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/${metricsLogName}${jboss.server.name}.log.%d</fileNamePattern> + <!--<maxHistory>30</maxHistory>--> + </rollingPolicy> + <encoder> + <!-- <pattern>"%d{HH:mm:ss.SSS} [%thread] %-5level %logger{1024} - + %msg%n"</pattern> --> + <pattern>${metricPattern}</pattern> + </encoder> + </appender> + + + <appender name="asyncEELFMetrics" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>256</queueSize> + <appender-ref ref="EELFMetrics"/> + </appender> + + <appender name="EELFError" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${logDirectory}/${errorLogName}${jboss.server.name}.log</file> + <rollingPolicy + class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/${errorLogName}${jboss.server.name}.log.%d</fileNamePattern> + <!--<maxHistory>30</maxHistory>--> + </rollingPolicy> + <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> + <level>INFO</level> + </filter> + <encoder> + <pattern>${errorPattern}</pattern> + </encoder> + </appender> + + <appender name="asyncEELFError" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>256</queueSize> + <appender-ref ref="EELFError"/> + </appender> + + <appender name="EELFDebug" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${debugLogDirectory}/${debugLogName}${jboss.server.name}.log</file> + <rollingPolicy + class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${debugLogDirectory}/${debugLogName}${jboss.server.name}.log.%d</fileNamePattern> + <!--<maxHistory>30</maxHistory>--> + </rollingPolicy> + <encoder> + <pattern>${debugPattern}</pattern> + </encoder> + </appender> + + <appender name="asyncEELFDebug" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>256</queueSize> + <appender-ref ref="EELFDebug" /> + <includeCallerData>true</includeCallerData> + </appender> + + + <!-- ============================================================================ --> + <!-- EELF loggers --> + <!-- ============================================================================ --> + + <logger name="com.att.eelf.audit" level="info" additivity="false"> + <appender-ref ref="asyncEELFAudit" /> + </logger> + + <logger name="com.att.eelf.metrics" level="info" additivity="false"> + <appender-ref ref="asyncEELFMetrics" /> + </logger> + + <logger name="com.att.eelf.error" level="debug" additivity="false"> + <appender-ref ref="asyncEELFError" /> + </logger> + <root level="INFO"> + <appender-ref ref="asyncEELFDebug" /> + </root> + +</configuration> diff --git a/kubernetes/so/resources/config/log/logback.msorequestsdbadapter.xml b/kubernetes/so/resources/config/log/logback.msorequestsdbadapter.xml new file mode 100644 index 0000000000..64a5022aa6 --- /dev/null +++ b/kubernetes/so/resources/config/log/logback.msorequestsdbadapter.xml @@ -0,0 +1,138 @@ +<configuration scan="false" debug="true"> + <!--<jmxConfigurator /> --> + <!-- directory path for all other type logs --> + <property name="logDir" value="/var/log/onap" /> + + <!-- directory path for debugging type logs --> + <property name="debugDir" value="/var/log/onap" /> + + <!-- specify the component name + <ECOMP-component-name>::= "MSO" | "DCAE" | "ASDC " | "AAI" |"Policy" | "SDNC" | "AC" --> + <property name="componentName" value="MSO"></property> + <property name="subComponentName" value="RequestDB"></property> + <!-- log file names --> + <property name="errorLogName" value="error" /> + <property name="metricsLogName" value="metrics" /> + <property name="auditLogName" value="audit" /> + <property name="debugLogName" value="debug" /> + + <property name="errorPattern" value="%d{"yyyy-MM-dd'T'HH:mm:ss.SSSXXX", UTC}|%X{RequestId}|%thread|%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%.-5level|%X{ErrorCode}|%X{ErrorDesc}|%msg%n" /> + <property name="debugPattern" value="%d{"yyyy-MM-dd'T'HH:mm:ss.SSSXXX", UTC}|%X{RequestId}|%msg%n" /> + + <property name="auditPattern" value="%X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%thread||%X{ServiceName}|%X{PartnerName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDesc}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{Timer}|%X{ServerFQDN}|%X{RemoteHost}||||||||%msg%n" /> + <property name="metricPattern" value="%X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%thread||%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDesc}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{Timer}|%X{ServerFQDN}|%X{RemoteHost}||||%X{TargetVirtualEntity}|||||%msg%n" /> + <property name="logDirectory" value="${logDir}/${componentName}/${subComponentName}" /> + <property name="debugLogDirectory" value="${debugDir}/${componentName}/${subComponentName}" /> + + <!-- ============================================================================ --> + <!-- EELF Appenders --> + <!-- ============================================================================ --> + + <!-- The EELFAppender is used to record events to the general application + log --> + + <!-- EELF Audit Appender. This appender is used to record audit engine + related logging events. The audit logger and appender are specializations + of the EELF application root logger and appender. This can be used to segregate + Policy engine events from other components, or it can be eliminated to record + these events as part of the application root log. --> + + <appender name="EELFAudit" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${logDirectory}/${auditLogName}${jboss.server.name}.log</file> + <rollingPolicy + class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/${auditLogName}${jboss.server.name}.log.%d</fileNamePattern> + <!--<maxHistory>30</maxHistory>--> + </rollingPolicy> + <encoder> + <pattern>${auditPattern}</pattern> + </encoder> + </appender> + <appender name="asyncEELFAudit" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>256</queueSize> + <appender-ref ref="EELFAudit" /> + </appender> + +<appender name="EELFMetrics" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${logDirectory}/${metricsLogName}${jboss.server.name}.log</file> + <rollingPolicy + class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/${metricsLogName}${jboss.server.name}.log.%d</fileNamePattern> + <!--<maxHistory>30</maxHistory>--> + </rollingPolicy> + <encoder> + <!-- <pattern>"%d{HH:mm:ss.SSS} [%thread] %-5level %logger{1024} - + %msg%n"</pattern> --> + <pattern>${metricPattern}</pattern> + </encoder> + </appender> + + + <appender name="asyncEELFMetrics" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>256</queueSize> + <appender-ref ref="EELFMetrics"/> + </appender> + + <appender name="EELFError" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${logDirectory}/${errorLogName}${jboss.server.name}.log</file> + <rollingPolicy + class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/${errorLogName}${jboss.server.name}.log.%d</fileNamePattern> + <!--<maxHistory>30</maxHistory>--> + </rollingPolicy> + <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> + <level>INFO</level> + </filter> + <encoder> + <pattern>${errorPattern}</pattern> + </encoder> + </appender> + + <appender name="asyncEELFError" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>256</queueSize> + <appender-ref ref="EELFError"/> + </appender> + + <appender name="EELFDebug" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${debugLogDirectory}/${debugLogName}${jboss.server.name}.log</file> + <rollingPolicy + class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${debugLogDirectory}/${debugLogName}${jboss.server.name}.log.%d</fileNamePattern> + <!--<maxHistory>30</maxHistory>--> + </rollingPolicy> + <encoder> + <pattern>${debugPattern}</pattern> + </encoder> + </appender> + + <appender name="asyncEELFDebug" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>256</queueSize> + <appender-ref ref="EELFDebug" /> + <includeCallerData>true</includeCallerData> + </appender> + + + <!-- ============================================================================ --> + <!-- EELF loggers --> + <!-- ============================================================================ --> + + <logger name="com.att.eelf.audit" level="info" additivity="false"> + <appender-ref ref="asyncEELFAudit" /> + </logger> + + <logger name="com.att.eelf.metrics" level="info" additivity="false"> + <appender-ref ref="asyncEELFMetrics" /> + </logger> + + <logger name="com.att.eelf.error" level="debug" additivity="false"> + <appender-ref ref="asyncEELFError" /> + </logger> + <root level="INFO"> + <appender-ref ref="asyncEELFDebug" /> + </root> + +</configuration> diff --git a/kubernetes/so/resources/config/log/logback.network.xml b/kubernetes/so/resources/config/log/logback.network.xml new file mode 100644 index 0000000000..542a8f6f00 --- /dev/null +++ b/kubernetes/so/resources/config/log/logback.network.xml @@ -0,0 +1,139 @@ +<configuration scan="false" debug="true"> + <!--<jmxConfigurator /> --> + <!-- directory path for all other type logs --> + <property name="logDir" value="/var/log/onap" /> + + <!-- directory path for debugging type logs --> + <property name="debugDir" value="/var/log/onap" /> + + <!-- specify the component name + <ECOMP-component-name>::= "MSO" | "DCAE" | "ASDC " | "AAI" |"Policy" | "SDNC" | "AC" --> + <property name="componentName" value="MSO"></property> + <property name="subComponentName" value="NetworkAdapter"></property> + <!-- log file names --> + <property name="errorLogName" value="error" /> + <property name="metricsLogName" value="metrics" /> + <property name="auditLogName" value="audit" /> + <property name="debugLogName" value="debug" /> + + <property name="errorPattern" value="%d{"yyyy-MM-dd'T'HH:mm:ss.SSSXXX", UTC}|%X{RequestId}|%thread|%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%.-5level|%X{ErrorCode}|%X{ErrorDesc}|%msg%n" /> + <property name="debugPattern" value="%d{"yyyy-MM-dd'T'HH:mm:ss.SSSXXX", UTC}|%X{RequestId}|%msg%n" /> + + <property name="auditPattern" value="%X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%thread||%X{ServiceName}|%X{PartnerName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDesc}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{Timer}|%X{ServerFQDN}|%X{RemoteHost}||||||||%msg%n" /> + <property name="metricPattern" value="%X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%thread||%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDesc}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{Timer}|%X{ServerFQDN}|%X{RemoteHost}||||%X{TargetVirtualEntity}|||||%msg%n" /> + <property name="logDirectory" value="${logDir}/${componentName}/${subComponentName}" /> + <property name="debugLogDirectory" value="${debugDir}/${componentName}/${subComponentName}" /> + + + <!-- ============================================================================ --> + <!-- EELF Appenders --> + <!-- ============================================================================ --> + + <!-- The EELFAppender is used to record events to the general application + log --> + + <!-- EELF Audit Appender. This appender is used to record audit engine + related logging events. The audit logger and appender are specializations + of the EELF application root logger and appender. This can be used to segregate + Policy engine events from other components, or it can be eliminated to record + these events as part of the application root log. --> + + <appender name="EELFAudit" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${logDirectory}/${auditLogName}${jboss.server.name}.log</file> + <rollingPolicy + class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/${auditLogName}${jboss.server.name}.log.%d</fileNamePattern> + <!--<maxHistory>30</maxHistory>--> + </rollingPolicy> + <encoder> + <pattern>${auditPattern}</pattern> + </encoder> + </appender> + <appender name="asyncEELFAudit" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>256</queueSize> + <appender-ref ref="EELFAudit" /> + </appender> + +<appender name="EELFMetrics" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${logDirectory}/${metricsLogName}${jboss.server.name}.log</file> + <rollingPolicy + class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/${metricsLogName}${jboss.server.name}.log.%d</fileNamePattern> + <!--<maxHistory>30</maxHistory>--> + </rollingPolicy> + <encoder> + <!-- <pattern>"%d{HH:mm:ss.SSS} [%thread] %-5level %logger{1024} - + %msg%n"</pattern> --> + <pattern>${metricPattern}</pattern> + </encoder> + </appender> + + + <appender name="asyncEELFMetrics" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>256</queueSize> + <appender-ref ref="EELFMetrics"/> + </appender> + + <appender name="EELFError" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${logDirectory}/${errorLogName}${jboss.server.name}.log</file> + <rollingPolicy + class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/${errorLogName}${jboss.server.name}.log.%d</fileNamePattern> + <!--<maxHistory>30</maxHistory>--> + </rollingPolicy> + <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> + <level>INFO</level> + </filter> + <encoder> + <pattern>${errorPattern}</pattern> + </encoder> + </appender> + + <appender name="asyncEELFError" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>256</queueSize> + <appender-ref ref="EELFError"/> + </appender> + + <appender name="EELFDebug" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${debugLogDirectory}/${debugLogName}${jboss.server.name}.log</file> + <rollingPolicy + class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${debugLogDirectory}/${debugLogName}${jboss.server.name}.log.%d</fileNamePattern> + <!--<maxHistory>30</maxHistory>--> + </rollingPolicy> + <encoder> + <pattern>${debugPattern}</pattern> + </encoder> + </appender> + + <appender name="asyncEELFDebug" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>256</queueSize> + <appender-ref ref="EELFDebug" /> + <includeCallerData>true</includeCallerData> + </appender> + + + <!-- ============================================================================ --> + <!-- EELF loggers --> + <!-- ============================================================================ --> + + <logger name="com.att.eelf.audit" level="info" additivity="false"> + <appender-ref ref="asyncEELFAudit" /> + </logger> + + <logger name="com.att.eelf.metrics" level="info" additivity="false"> + <appender-ref ref="asyncEELFMetrics" /> + </logger> + + <logger name="com.att.eelf.error" level="debug" additivity="false"> + <appender-ref ref="asyncEELFError" /> + </logger> + <root level="INFO"> + <appender-ref ref="asyncEELFDebug" /> + </root> + +</configuration> diff --git a/kubernetes/so/resources/config/log/logback.sdnc.xml b/kubernetes/so/resources/config/log/logback.sdnc.xml new file mode 100644 index 0000000000..1323a8961d --- /dev/null +++ b/kubernetes/so/resources/config/log/logback.sdnc.xml @@ -0,0 +1,138 @@ +<configuration scan="false" debug="true"> + <!--<jmxConfigurator /> --> + <!-- directory path for all other type logs --> + <property name="logDir" value="/var/log/onap" /> + + <!-- directory path for debugging type logs --> + <property name="debugDir" value="/var/log/onap" /> + + <!-- specify the component name + <ECOMP-component-name>::= "MSO" | "DCAE" | "ASDC " | "AAI" |"Policy" | "SDNC" | "AC" --> + <property name="componentName" value="MSO"></property> + <property name="subComponentName" value="SDNCAdapter"></property> + <!-- log file names --> + <property name="errorLogName" value="error" /> + <property name="metricsLogName" value="metrics" /> + <property name="auditLogName" value="audit" /> + <property name="debugLogName" value="debug" /> + + <property name="errorPattern" value="%d{"yyyy-MM-dd'T'HH:mm:ss.SSSXXX", UTC}|%X{RequestId}|%thread|%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%.-5level|%X{ErrorCode}|%X{ErrorDesc}|%msg%n" /> + <property name="debugPattern" value="%d{"yyyy-MM-dd'T'HH:mm:ss.SSSXXX", UTC}|%X{RequestId}|%msg%n" /> + + <property name="auditPattern" value="%X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%thread||%X{ServiceName}|%X{PartnerName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDesc}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{Timer}|%X{ServerFQDN}|%X{RemoteHost}||||||||%msg%n" /> + <property name="metricPattern" value="%X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%thread||%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDesc}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{Timer}|%X{ServerFQDN}|%X{RemoteHost}||||%X{TargetVirtualEntity}|||||%msg%n" /> + <property name="logDirectory" value="${logDir}/${componentName}/${subComponentName}" /> + <property name="debugLogDirectory" value="${debugDir}/${componentName}/${subComponentName}" /> + + <!-- ============================================================================ --> + <!-- EELF Appenders --> + <!-- ============================================================================ --> + + <!-- The EELFAppender is used to record events to the general application + log --> + + <!-- EELF Audit Appender. This appender is used to record audit engine + related logging events. The audit logger and appender are specializations + of the EELF application root logger and appender. This can be used to segregate + Policy engine events from other components, or it can be eliminated to record + these events as part of the application root log. --> + + <appender name="EELFAudit" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${logDirectory}/${auditLogName}${jboss.server.name}.log</file> + <rollingPolicy + class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/${auditLogName}${jboss.server.name}.log.%d</fileNamePattern> + <!--<maxHistory>30</maxHistory>--> + </rollingPolicy> + <encoder> + <pattern>${auditPattern}</pattern> + </encoder> + </appender> + <appender name="asyncEELFAudit" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>256</queueSize> + <appender-ref ref="EELFAudit" /> + </appender> + +<appender name="EELFMetrics" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${logDirectory}/${metricsLogName}${jboss.server.name}.log</file> + <rollingPolicy + class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/${metricsLogName}${jboss.server.name}.log.%d</fileNamePattern> + <!--<maxHistory>30</maxHistory>--> + </rollingPolicy> + <encoder> + <!-- <pattern>"%d{HH:mm:ss.SSS} [%thread] %-5level %logger{1024} - + %msg%n"</pattern> --> + <pattern>${metricPattern}</pattern> + </encoder> + </appender> + + + <appender name="asyncEELFMetrics" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>256</queueSize> + <appender-ref ref="EELFMetrics"/> + </appender> + + <appender name="EELFError" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${logDirectory}/${errorLogName}${jboss.server.name}.log</file> + <rollingPolicy + class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/${errorLogName}${jboss.server.name}.log.%d</fileNamePattern> + <!--<maxHistory>30</maxHistory>--> + </rollingPolicy> + <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> + <level>INFO</level> + </filter> + <encoder> + <pattern>${errorPattern}</pattern> + </encoder> + </appender> + + <appender name="asyncEELFError" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>256</queueSize> + <appender-ref ref="EELFError"/> + </appender> + + <appender name="EELFDebug" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${debugLogDirectory}/${debugLogName}${jboss.server.name}.log</file> + <rollingPolicy + class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${debugLogDirectory}/${debugLogName}${jboss.server.name}.log.%d</fileNamePattern> + <!--<maxHistory>30</maxHistory>--> + </rollingPolicy> + <encoder> + <pattern>${debugPattern}</pattern> + </encoder> + </appender> + + <appender name="asyncEELFDebug" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>256</queueSize> + <appender-ref ref="EELFDebug" /> + <includeCallerData>true</includeCallerData> + </appender> + + + <!-- ============================================================================ --> + <!-- EELF loggers --> + <!-- ============================================================================ --> + + <logger name="com.att.eelf.audit" level="info" additivity="false"> + <appender-ref ref="asyncEELFAudit" /> + </logger> + + <logger name="com.att.eelf.metrics" level="info" additivity="false"> + <appender-ref ref="asyncEELFMetrics" /> + </logger> + + <logger name="com.att.eelf.error" level="debug" additivity="false"> + <appender-ref ref="asyncEELFError" /> + </logger> + <root level="INFO"> + <appender-ref ref="asyncEELFDebug" /> + </root> + +</configuration> diff --git a/kubernetes/so/resources/config/log/logback.tenant.xml b/kubernetes/so/resources/config/log/logback.tenant.xml new file mode 100644 index 0000000000..a25c182e97 --- /dev/null +++ b/kubernetes/so/resources/config/log/logback.tenant.xml @@ -0,0 +1,139 @@ +<configuration scan="false" debug="true"> + <!--<jmxConfigurator /> --> + <!-- directory path for all other type logs --> + <property name="logDir" value="/var/log/onap" /> + + <!-- directory path for debugging type logs --> + <property name="debugDir" value="/var/log/onap" /> + + <!-- specify the component name + <ECOMP-component-name>::= "MSO" | "DCAE" | "ASDC " | "AAI" |"Policy" | "SDNC" | "AC" --> + <property name="componentName" value="MSO"></property> + <property name="subComponentName" value="TenantAdapter"></property> + <!-- log file names --> + <property name="errorLogName" value="error" /> + <property name="metricsLogName" value="metrics" /> + <property name="auditLogName" value="audit" /> + <property name="debugLogName" value="debug" /> + + <property name="errorPattern" value="%d{"yyyy-MM-dd'T'HH:mm:ss.SSSXXX", UTC}|%X{RequestId}|%thread|%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%.-5level|%X{ErrorCode}|%X{ErrorDesc}|%msg%n" /> + <property name="debugPattern" value="%d{"yyyy-MM-dd'T'HH:mm:ss.SSSXXX", UTC}|%X{RequestId}|%msg%n" /> + + <property name="auditPattern" value="%X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%thread||%X{ServiceName}|%X{PartnerName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDesc}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{Timer}|%X{ServerFQDN}|%X{RemoteHost}||||||||%msg%n" /> + <property name="metricPattern" value="%X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%thread||%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDesc}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{Timer}|%X{ServerFQDN}|%X{RemoteHost}||||%X{TargetVirtualEntity}|||||%msg%n" /> + <property name="logDirectory" value="${logDir}/${componentName}/${subComponentName}" /> + <property name="debugLogDirectory" value="${debugDir}/${componentName}/${subComponentName}" /> + + + <!-- ============================================================================ --> + <!-- EELF Appenders --> + <!-- ============================================================================ --> + + <!-- The EELFAppender is used to record events to the general application + log --> + + <!-- EELF Audit Appender. This appender is used to record audit engine + related logging events. The audit logger and appender are specializations + of the EELF application root logger and appender. This can be used to segregate + Policy engine events from other components, or it can be eliminated to record + these events as part of the application root log. --> + + <appender name="EELFAudit" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${logDirectory}/${auditLogName}${jboss.server.name}.log</file> + <rollingPolicy + class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/${auditLogName}${jboss.server.name}.log.%d</fileNamePattern> + <!--<maxHistory>30</maxHistory>--> + </rollingPolicy> + <encoder> + <pattern>${auditPattern}</pattern> + </encoder> + </appender> + <appender name="asyncEELFAudit" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>256</queueSize> + <appender-ref ref="EELFAudit" /> + </appender> + +<appender name="EELFMetrics" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${logDirectory}/${metricsLogName}${jboss.server.name}.log</file> + <rollingPolicy + class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/${metricsLogName}${jboss.server.name}.log.%d</fileNamePattern> + <!--<maxHistory>30</maxHistory>--> + </rollingPolicy> + <encoder> + <!-- <pattern>"%d{HH:mm:ss.SSS} [%thread] %-5level %logger{1024} - + %msg%n"</pattern> --> + <pattern>${metricPattern}</pattern> + </encoder> + </appender> + + + <appender name="asyncEELFMetrics" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>256</queueSize> + <appender-ref ref="EELFMetrics"/> + </appender> + + <appender name="EELFError" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${logDirectory}/${errorLogName}${jboss.server.name}.log</file> + <rollingPolicy + class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/${errorLogName}${jboss.server.name}.log.%d</fileNamePattern> + <!--<maxHistory>30</maxHistory>--> + </rollingPolicy> + <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> + <level>INFO</level> + </filter> + <encoder> + <pattern>${errorPattern}</pattern> + </encoder> + </appender> + + <appender name="asyncEELFError" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>256</queueSize> + <appender-ref ref="EELFError"/> + </appender> + + <appender name="EELFDebug" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${debugLogDirectory}/${debugLogName}${jboss.server.name}.log</file> + <rollingPolicy + class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${debugLogDirectory}/${debugLogName}${jboss.server.name}.log.%d</fileNamePattern> + <!--<maxHistory>30</maxHistory>--> + </rollingPolicy> + <encoder> + <pattern>${debugPattern}</pattern> + </encoder> + </appender> + + <appender name="asyncEELFDebug" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>256</queueSize> + <appender-ref ref="EELFDebug" /> + <includeCallerData>true</includeCallerData> + </appender> + + + <!-- ============================================================================ --> + <!-- EELF loggers --> + <!-- ============================================================================ --> + + <logger name="com.att.eelf.audit" level="info" additivity="false"> + <appender-ref ref="asyncEELFAudit" /> + </logger> + + <logger name="com.att.eelf.metrics" level="info" additivity="false"> + <appender-ref ref="asyncEELFMetrics" /> + </logger> + + <logger name="com.att.eelf.error" level="debug" additivity="false"> + <appender-ref ref="asyncEELFError" /> + </logger> + <root level="INFO"> + <appender-ref ref="asyncEELFDebug" /> + </root> + +</configuration> diff --git a/kubernetes/so/resources/config/log/logback.vfc.xml b/kubernetes/so/resources/config/log/logback.vfc.xml new file mode 100644 index 0000000000..d0b66be5bb --- /dev/null +++ b/kubernetes/so/resources/config/log/logback.vfc.xml @@ -0,0 +1,138 @@ +<configuration scan="false" debug="true"> + <!--<jmxConfigurator /> --> + <!-- directory path for all other type logs --> + <property name="logDir" value="/var/log/onap" /> + + <!-- directory path for debugging type logs --> + <property name="debugDir" value="/var/log/onap" /> + + <!-- specify the component name + <ECOMP-component-name>::= "MSO" | "DCAE" | "ASDC " | "AAI" |"Policy" | "SDNC" | "AC" --> + <property name="componentName" value="MSO"></property> + <property name="subComponentName" value="vfcadapter"></property> + <!-- log file names --> + <property name="errorLogName" value="error" /> + <property name="metricsLogName" value="metrics" /> + <property name="auditLogName" value="audit" /> + <property name="debugLogName" value="debug" /> + + <property name="errorPattern" value="%d{"yyyy-MM-dd'T'HH:mm:ss.SSSXXX", UTC}|%X{RequestId}|%thread|%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%.-5level|%X{ErrorCode}|%X{ErrorDesc}|%msg%n" /> + <property name="debugPattern" value="%d{"yyyy-MM-dd'T'HH:mm:ss.SSSXXX", UTC}|%X{RequestId}|%msg%n" /> + + <property name="auditPattern" value="%X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%thread||%X{ServiceName}|%X{PartnerName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDesc}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{Timer}|%X{ServerFQDN}|%X{RemoteHost}||||||||%msg%n" /> + <property name="metricPattern" value="%X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%thread||%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDesc}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{Timer}|%X{ServerFQDN}|%X{RemoteHost}||||%X{TargetVirtualEntity}|||||%msg%n" /> + <property name="logDirectory" value="${logDir}/${componentName}/${subComponentName}" /> + <property name="debugLogDirectory" value="${debugDir}/${componentName}/${subComponentName}" /> + + <!-- ============================================================================ --> + <!-- EELF Appenders --> + <!-- ============================================================================ --> + + <!-- The EELFAppender is used to record events to the general application + log --> + + <!-- EELF Audit Appender. This appender is used to record audit engine + related logging events. The audit logger and appender are specializations + of the EELF application root logger and appender. This can be used to segregate + Policy engine events from other components, or it can be eliminated to record + these events as part of the application root log. --> + + <appender name="EELFAudit" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${logDirectory}/${auditLogName}${jboss.server.name}.log</file> + <rollingPolicy + class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/${auditLogName}${jboss.server.name}.log.%d</fileNamePattern> + <!--<maxHistory>30</maxHistory>--> + </rollingPolicy> + <encoder> + <pattern>${auditPattern}</pattern> + </encoder> + </appender> + <appender name="asyncEELFAudit" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>256</queueSize> + <appender-ref ref="EELFAudit" /> + </appender> + +<appender name="EELFMetrics" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${logDirectory}/${metricsLogName}${jboss.server.name}.log</file> + <rollingPolicy + class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/${metricsLogName}${jboss.server.name}.log.%d</fileNamePattern> + <!--<maxHistory>30</maxHistory>--> + </rollingPolicy> + <encoder> + <!-- <pattern>"%d{HH:mm:ss.SSS} [%thread] %-5level %logger{1024} - + %msg%n"</pattern> --> + <pattern>${metricPattern}</pattern> + </encoder> + </appender> + + + <appender name="asyncEELFMetrics" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>256</queueSize> + <appender-ref ref="EELFMetrics"/> + </appender> + + <appender name="EELFError" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${logDirectory}/${errorLogName}${jboss.server.name}.log</file> + <rollingPolicy + class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/${errorLogName}${jboss.server.name}.log.%d</fileNamePattern> + <!--<maxHistory>30</maxHistory>--> + </rollingPolicy> + <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> + <level>INFO</level> + </filter> + <encoder> + <pattern>${errorPattern}</pattern> + </encoder> + </appender> + + <appender name="asyncEELFError" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>256</queueSize> + <appender-ref ref="EELFError"/> + </appender> + + <appender name="EELFDebug" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${debugLogDirectory}/${debugLogName}${jboss.server.name}.log</file> + <rollingPolicy + class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${debugLogDirectory}/${debugLogName}${jboss.server.name}.log.%d</fileNamePattern> + <!--<maxHistory>30</maxHistory>--> + </rollingPolicy> + <encoder> + <pattern>${debugPattern}</pattern> + </encoder> + </appender> + + <appender name="asyncEELFDebug" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>256</queueSize> + <appender-ref ref="EELFDebug" /> + <includeCallerData>true</includeCallerData> + </appender> + + + <!-- ============================================================================ --> + <!-- EELF loggers --> + <!-- ============================================================================ --> + + <logger name="com.att.eelf.audit" level="info" additivity="false"> + <appender-ref ref="asyncEELFAudit" /> + </logger> + + <logger name="com.att.eelf.metrics" level="info" additivity="false"> + <appender-ref ref="asyncEELFMetrics" /> + </logger> + + <logger name="com.att.eelf.error" level="debug" additivity="false"> + <appender-ref ref="asyncEELFError" /> + </logger> + <root level="INFO"> + <appender-ref ref="asyncEELFDebug" /> + </root> + +</configuration> diff --git a/kubernetes/so/resources/config/log/logback.vnf.xml b/kubernetes/so/resources/config/log/logback.vnf.xml new file mode 100644 index 0000000000..32f6e69f81 --- /dev/null +++ b/kubernetes/so/resources/config/log/logback.vnf.xml @@ -0,0 +1,138 @@ +<configuration scan="false" debug="true"> + <!--<jmxConfigurator /> --> + <!-- directory path for all other type logs --> + <property name="logDir" value="/var/log/onap" /> + + <!-- directory path for debugging type logs --> + <property name="debugDir" value="/var/log/onap" /> + + <!-- specify the component name + <ECOMP-component-name>::= "MSO" | "DCAE" | "ASDC " | "AAI" |"Policy" | "SDNC" | "AC" --> + <property name="componentName" value="MSO"></property> + <property name="subComponentName" value="VnfAdapter"></property> + <!-- log file names --> + <property name="errorLogName" value="error" /> + <property name="metricsLogName" value="metrics" /> + <property name="auditLogName" value="audit" /> + <property name="debugLogName" value="debug" /> + + <property name="errorPattern" value="%d{"yyyy-MM-dd'T'HH:mm:ss.SSSXXX", UTC}|%X{RequestId}|%thread|%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%.-5level|%X{ErrorCode}|%X{ErrorDesc}|%msg%n" /> + <property name="debugPattern" value="%d{"yyyy-MM-dd'T'HH:mm:ss.SSSXXX", UTC}|%X{RequestId}|%msg%n" /> + + <property name="auditPattern" value="%X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%thread||%X{ServiceName}|%X{PartnerName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDesc}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{Timer}|%X{ServerFQDN}|%X{RemoteHost}||||||||%msg%n" /> + <property name="metricPattern" value="%X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%thread||%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDesc}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{Timer}|%X{ServerFQDN}|%X{RemoteHost}||||%X{TargetVirtualEntity}|||||%msg%n" /> + <property name="logDirectory" value="${logDir}/${componentName}/${subComponentName}" /> + <property name="debugLogDirectory" value="${debugDir}/${componentName}/${subComponentName}" /> + + <!-- ============================================================================ --> + <!-- EELF Appenders --> + <!-- ============================================================================ --> + + <!-- The EELFAppender is used to record events to the general application + log --> + + <!-- EELF Audit Appender. This appender is used to record audit engine + related logging events. The audit logger and appender are specializations + of the EELF application root logger and appender. This can be used to segregate + Policy engine events from other components, or it can be eliminated to record + these events as part of the application root log. --> + + <appender name="EELFAudit" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${logDirectory}/${auditLogName}${jboss.server.name}.log</file> + <rollingPolicy + class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/${auditLogName}${jboss.server.name}.log.%d</fileNamePattern> + <!--<maxHistory>30</maxHistory>--> + </rollingPolicy> + <encoder> + <pattern>${auditPattern}</pattern> + </encoder> + </appender> + <appender name="asyncEELFAudit" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>256</queueSize> + <appender-ref ref="EELFAudit" /> + </appender> + +<appender name="EELFMetrics" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${logDirectory}/${metricsLogName}${jboss.server.name}.log</file> + <rollingPolicy + class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/${metricsLogName}${jboss.server.name}.log.%d</fileNamePattern> + <!--<maxHistory>30</maxHistory>--> + </rollingPolicy> + <encoder> + <!-- <pattern>"%d{HH:mm:ss.SSS} [%thread] %-5level %logger{1024} - + %msg%n"</pattern> --> + <pattern>${metricPattern}</pattern> + </encoder> + </appender> + + + <appender name="asyncEELFMetrics" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>256</queueSize> + <appender-ref ref="EELFMetrics"/> + </appender> + + <appender name="EELFError" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${logDirectory}/${errorLogName}${jboss.server.name}.log</file> + <rollingPolicy + class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/${errorLogName}${jboss.server.name}.log.%d</fileNamePattern> + <!--<maxHistory>30</maxHistory>--> + </rollingPolicy> + <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> + <level>INFO</level> + </filter> + <encoder> + <pattern>${errorPattern}</pattern> + </encoder> + </appender> + + <appender name="asyncEELFError" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>256</queueSize> + <appender-ref ref="EELFError"/> + </appender> + + <appender name="EELFDebug" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${debugLogDirectory}/${debugLogName}${jboss.server.name}.log</file> + <rollingPolicy + class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${debugLogDirectory}/${debugLogName}${jboss.server.name}.log.%d</fileNamePattern> + <!--<maxHistory>30</maxHistory>--> + </rollingPolicy> + <encoder> + <pattern>${debugPattern}</pattern> + </encoder> + </appender> + + <appender name="asyncEELFDebug" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>256</queueSize> + <appender-ref ref="EELFDebug" /> + <includeCallerData>true</includeCallerData> + </appender> + + + <!-- ============================================================================ --> + <!-- EELF loggers --> + <!-- ============================================================================ --> + + <logger name="com.att.eelf.audit" level="info" additivity="false"> + <appender-ref ref="asyncEELFAudit" /> + </logger> + + <logger name="com.att.eelf.metrics" level="info" additivity="false"> + <appender-ref ref="asyncEELFMetrics" /> + </logger> + + <logger name="com.att.eelf.error" level="debug" additivity="false"> + <appender-ref ref="asyncEELFError" /> + </logger> + <root level="INFO"> + <appender-ref ref="asyncEELFDebug" /> + </root> + +</configuration> diff --git a/kubernetes/so/resources/config/log/logback.workflow-message-adapter.xml b/kubernetes/so/resources/config/log/logback.workflow-message-adapter.xml new file mode 100644 index 0000000000..a7130a103f --- /dev/null +++ b/kubernetes/so/resources/config/log/logback.workflow-message-adapter.xml @@ -0,0 +1,138 @@ +<configuration scan="false" debug="true"> + <!--<jmxConfigurator /> --> + <!-- directory path for all other type logs --> + <property name="logDir" value="/var/log/onap" /> + + <!-- directory path for debugging type logs --> + <property name="debugDir" value="/var/log/onap" /> + + <!-- specify the component name + <ECOMP-component-name>::= "MSO" | "DCAE" | "ASDC " | "AAI" |"Policy" | "SDNC" | "AC" --> + <property name="componentName" value="MSO"></property> + <property name="subComponentName" value="WorkflowMessageAdapter"></property> + <!-- log file names --> + <property name="errorLogName" value="error" /> + <property name="metricsLogName" value="metrics" /> + <property name="auditLogName" value="audit" /> + <property name="debugLogName" value="debug" /> + + <property name="errorPattern" value="%d{"yyyy-MM-dd'T'HH:mm:ss.SSSXXX", UTC}|%X{RequestId}|%thread|%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%.-5level|%X{ErrorCode}|%X{ErrorDesc}|%msg%n" /> + <property name="debugPattern" value="%d{"yyyy-MM-dd'T'HH:mm:ss.SSSXXX", UTC}|%X{RequestId}|%msg%n" /> + + <property name="auditPattern" value="%X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%thread||%X{ServiceName}|%X{PartnerName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDesc}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{Timer}|%X{ServerFQDN}|%X{RemoteHost}||||||||%msg%n" /> + <property name="metricPattern" value="%X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%thread||%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDesc}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{Timer}|%X{ServerFQDN}|%X{RemoteHost}||||%X{TargetVirtualEntity}|||||%msg%n" /> + <property name="logDirectory" value="${logDir}/${componentName}/${subComponentName}" /> + <property name="debugLogDirectory" value="${debugDir}/${componentName}/${subComponentName}" /> + + <!-- ============================================================================ --> + <!-- EELF Appenders --> + <!-- ============================================================================ --> + + <!-- The EELFAppender is used to record events to the general application + log --> + + <!-- EELF Audit Appender. This appender is used to record audit engine + related logging events. The audit logger and appender are specializations + of the EELF application root logger and appender. This can be used to segregate + Policy engine events from other components, or it can be eliminated to record + these events as part of the application root log. --> + + <appender name="EELFAudit" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${logDirectory}/${auditLogName}${jboss.server.name}.log</file> + <rollingPolicy + class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/${auditLogName}${jboss.server.name}.log.%d</fileNamePattern> + <!--<maxHistory>30</maxHistory>--> + </rollingPolicy> + <encoder> + <pattern>${auditPattern}</pattern> + </encoder> + </appender> + <appender name="asyncEELFAudit" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>256</queueSize> + <appender-ref ref="EELFAudit" /> + </appender> + + <appender name="EELFMetrics" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${logDirectory}/${metricsLogName}${jboss.server.name}.log</file> + <rollingPolicy + class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/${metricsLogName}${jboss.server.name}.log.%d</fileNamePattern> + <!--<maxHistory>30</maxHistory>--> + </rollingPolicy> + <encoder> + <!-- <pattern>"%d{HH:mm:ss.SSS} [%thread] %-5level %logger{1024} - + %msg%n"</pattern> --> + <pattern>${metricPattern}</pattern> + </encoder> + </appender> + + + <appender name="asyncEELFMetrics" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>256</queueSize> + <appender-ref ref="EELFMetrics"/> + </appender> + + <appender name="EELFError" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${logDirectory}/${errorLogName}${jboss.server.name}.log</file> + <rollingPolicy + class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/${errorLogName}${jboss.server.name}.log.%d</fileNamePattern> + <!--<maxHistory>30</maxHistory>--> + </rollingPolicy> + <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> + <level>INFO</level> + </filter> + <encoder> + <pattern>${errorPattern}</pattern> + </encoder> + </appender> + + <appender name="asyncEELFError" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>256</queueSize> + <appender-ref ref="EELFError"/> + </appender> + + <appender name="EELFDebug" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${debugLogDirectory}/${debugLogName}${jboss.server.name}.log</file> + <rollingPolicy + class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${debugLogDirectory}/${debugLogName}${jboss.server.name}.log.%d</fileNamePattern> + <!--<maxHistory>30</maxHistory>--> + </rollingPolicy> + <encoder> + <pattern>${debugPattern}</pattern> + </encoder> + </appender> + + <appender name="asyncEELFDebug" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>256</queueSize> + <appender-ref ref="EELFDebug" /> + <includeCallerData>true</includeCallerData> + </appender> + + + <!-- ============================================================================ --> + <!-- EELF loggers --> + <!-- ============================================================================ --> + + <logger name="com.att.eelf.audit" level="info" additivity="false"> + <appender-ref ref="asyncEELFAudit" /> + </logger> + + <logger name="com.att.eelf.metrics" level="info" additivity="false"> + <appender-ref ref="asyncEELFMetrics" /> + </logger> + + <logger name="com.att.eelf.error" level="debug" additivity="false"> + <appender-ref ref="asyncEELFError" /> + </logger> + <root level="INFO"> + <appender-ref ref="asyncEELFDebug" /> + </root> + +</configuration>
\ No newline at end of file diff --git a/kubernetes/so/resources/config/mso/aai.crt b/kubernetes/so/resources/config/mso/aai.crt new file mode 100755 index 0000000000..d51c05606e --- /dev/null +++ b/kubernetes/so/resources/config/mso/aai.crt @@ -0,0 +1,66 @@ +Bag Attributes + friendlyName: aaiopenecomp + localKeyID: 54 69 6D 65 20 31 35 31 30 30 33 33 31 37 31 38 39 32 +subject=/C=US/ST=NJ/L=Bedminister/O=ONAP/CN=aai.api.simpledemo.openecomp.org/emailAddress=aai-host@api.simpledemo.openecomp.org +issuer=/C=US/ST=NJ/L=Bedminster/O=OpenECOMP/OU=simpledemo/CN=OpenECOMP simpledemo Server CA X1/emailAddress=simpledemo@openecomp.org +-----BEGIN CERTIFICATE----- +MIIDyzCCArMCCQDrA8zzZKXznDANBgkqhkiG9w0BAQsFADCBrTELMAkGA1UEBhMC +VVMxCzAJBgNVBAgMAk5KMRMwEQYDVQQHDApCZWRtaW5zdGVyMRIwEAYDVQQKDAlP +cGVuRUNPTVAxEzARBgNVBAsMCnNpbXBsZWRlbW8xKjAoBgNVBAMMIU9wZW5FQ09N +UCBzaW1wbGVkZW1vIFNlcnZlciBDQSBYMTEnMCUGCSqGSIb3DQEJARYYc2ltcGxl +ZGVtb0BvcGVuZWNvbXAub3JnMB4XDTE3MTEwMzIzNDUzNVoXDTE4MTIwNjIzNDUz +NVowgaAxCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJOSjEUMBIGA1UEBwwLQmVkbWlu +aXN0ZXIxDTALBgNVBAoMBE9OQVAxKTAnBgNVBAMMIGFhaS5hcGkuc2ltcGxlZGVt +by5vcGVuZWNvbXAub3JnMTQwMgYJKoZIhvcNAQkBFiVhYWktaG9zdEBhcGkuc2lt +cGxlZGVtby5vcGVuZWNvbXAub3JnMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB +CgKCAQEA6gFktbGZVt4o78kU6oeCdqx04yPNTd1qRmJ06CD87fgrIDCTXVC+PE7R +hHd1V71aNnoElBzn+mwetn4qG4T9IqAJvFIXxrzLpS7WlKBxStFhe4GNXl+RDqWc +UM+47+s32TwZ3czQrhMVR9VNENUHo2d6XylGaUDcVgrMYWbFYWfmIJ4tO1latW9n +h+perB0nNBxNDK9nYtjLHQk6ukTmONSnldvCgu/TFX5C34qB49cI0LmCf5Lwk9tv +8dmTZ6Um8A0EbQen+uPaaHeEXm/EtFy0FSVzoKmxuQS0g4JNhfnfNCHVDO7zGE+N +pCb9VfUI2fXIZvjNBAemKN/b2i5d6QIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQBh +93eaeAw0aA4ukAPpuWIODxxAnZlFfDH4uzwnv6smDJzO1biRwQ5BBZfL8qSVozrp +aDKeIPWP7fZvjl3mGfCp8mLkI6WkfXVcZy5IlJGDTnW+G8Cpohq910W/Ibp1J9zx +Ki4IdgKx7FbSYLpgwH2g2EPshHXQX2qFdxYvnEH0PzJjYBKeyyHV3N2kNr6+kM3Q +HpXXIiLNbNcqLT+9zOmuJszN8ILLV56vu8Clzwxld+ru0tiO2OJk2eT+mtw2PI1/ +jcYqEEdOIZycrQiytxXgvte7A9VFQP/1Tl22BBYrAW2BhyW67kopATeiSunK1FmO +DLcT7mR+59F964RV9BJR +-----END CERTIFICATE----- +Bag Attributes + friendlyName: root + 2.16.840.1.113894.746875.1.1: <Unsupported tag 6> +subject=/C=US/ST=NJ/L=Bedminster/O=OpenECOMP/OU=simpledemo/CN=OpenECOMP simpledemo Server CA X1/emailAddress=simpledemo@openecomp.org +issuer=/C=US/ST=NJ/L=Bedminster/O=OpenECOMP/OU=simpledemo/CN=OpenECOMP simpledemo Root Certification Authority/emailAddress=simpledemo@openecomp.org +-----BEGIN CERTIFICATE----- +MIIFpTCCA42gAwIBAgIJAJqx8dKnCZZoMA0GCSqGSIb3DQEBCwUAMIG9MQswCQYD +VQQGEwJVUzELMAkGA1UECAwCTkoxEzARBgNVBAcMCkJlZG1pbnN0ZXIxEjAQBgNV +BAoMCU9wZW5FQ09NUDETMBEGA1UECwwKc2ltcGxlZGVtbzE6MDgGA1UEAwwxT3Bl +bkVDT01QIHNpbXBsZWRlbW8gUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEn +MCUGCSqGSIb3DQEJARYYc2ltcGxlZGVtb0BvcGVuZWNvbXAub3JnMB4XDTE2MTEy +ODIxMTQyNloXDTIxMTEyNzIxMTQyNlowga0xCzAJBgNVBAYTAlVTMQswCQYDVQQI +DAJOSjETMBEGA1UEBwwKQmVkbWluc3RlcjESMBAGA1UECgwJT3BlbkVDT01QMRMw +EQYDVQQLDApzaW1wbGVkZW1vMSowKAYDVQQDDCFPcGVuRUNPTVAgc2ltcGxlZGVt +byBTZXJ2ZXIgQ0EgWDExJzAlBgkqhkiG9w0BCQEWGHNpbXBsZWRlbW9Ab3BlbmVj +b21wLm9yZzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALr4rivKQuRk +YNf5Ig40e1nqj6s6LB1vgMOYbKfRziOFpPcUpsHPOhusHowiUsrU1vdFSzPz6Ej7 +PjlmNSg2Qka8YCn9kd6QgM7U0KcPJvIucBp+qjifH3EvP0jgDPhDeVRYxzV454dv +5kQ9uCpswJP7YAnX51dkWeH8nwPUoagt31bOl9LXENSrgxEThxdLYMJnQJWk2CmV +otXM4tT1dxyJxFUrZ6uJCEAYw5VtlplqihHf8lHy+sWQavtsLz/4dc+sGeXSTfoI +voKvoh3uZ5gEhGV8yfJxk1veX5y5/AxP80vQ+smWYjTnQL5QQ57y4bciez4XVBmQ +SWimWtOi4e8CAwEAAaOBtTCBsjAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQE +AwIBhjAdBgNVHQ4EFgQUTqdsYgGNGubdJHq9tsaJhM9HE5wwcAYDVR0gBGkwZzBl +BgRVHSAAMF0wWwYIKwYBBQUHAgIwTxpNSWYgeW91IHRydXN0IHRoaXMgY2VydCB0 +aGVuIHdlIGhhdmUgYSBicmlkZ2UgdGhhdCB5b3UgbWlnaHQgYmUgaW50ZXJlc3Rl +ZCBpbi4wDQYJKoZIhvcNAQELBQADggIBAKNNlRqFuE/JgV1BHyYK0xoSXH4aZP/7 +IoHtDVcSaZAOOuFOUrwVMUbzRBebbb6RpFwt/X+NLFUGysd+XNLF7W7lzxKtmFNX +n4OpNkBe0y5O7yurus8rERHzu3jiOSgVo+WzDlGpYSRnG3hI2qPWqD+Puzx/WwI8 +XUTuzEQQ3gUSyVFfXHpay3VpYmLZiLJ9WKY5SDw7Ie6Sxrju4Qm1HwnFY8wHZGcs +2KMQzorJ1ZNQf523yUTghbT0rKaSFaD8zugPtI2ONfFG/QgrkQXo78opzPsHnHwa +SxGSiAgeLbwAUCvPNl27zr6k6+7TcNjV0VUivAs0OG3VEAdgi7UWYB+30KfWwHwE +zGmvd4IAGqIqlqLcSVArN5z8JK1B5nfjQn5UrclU1vK+dnuiKE2X4rKuBTRYRFR/ +km+mj4koYFPKFHndmJl1uv2OCJK9l5CSIuKWeI1qv8BASKqgNdoT/SKBXqxgYlCb +o+j4IDjxrxChRO+e5vl9lA7INfRrbljCkUjfLRa+v2q9tWQ3+EQUwwnSrSfihh2T +j0Tksr6b8dDsvMlCdOKG1B+JPcEXORSFKNXVTEfjqpJG8s16kFAocWt3S6xO0k1t +qbQp+3tWQgW2TGnX0rMZzB6NGRNfWhlYmq2zHgXkiCIZ26Ztgt/LNbwEvN3+VlLo +z/Rd+SKtlrfb +-----END CERTIFICATE----- diff --git a/kubernetes/so/resources/config/mso/encryption.key b/kubernetes/so/resources/config/mso/encryption.key new file mode 100644 index 0000000000..eb52241e7f --- /dev/null +++ b/kubernetes/so/resources/config/mso/encryption.key @@ -0,0 +1 @@ +aa3871669d893c7fb8abbcda31b88b4f diff --git a/kubernetes/so/resources/config/mso/mso-docker.json b/kubernetes/so/resources/config/mso/mso-docker.json new file mode 100755 index 0000000000..7a0c579a97 --- /dev/null +++ b/kubernetes/so/resources/config/mso/mso-docker.json @@ -0,0 +1,181 @@ +{ + "name": "mso-docker", + "description": "MSO Docker Images", + "chef_type": "environment", + "json_class": "Chef::Environment", + "default_attributes": + { + "mso_config_path": "/etc/mso/config.d/", + + "mso-api-handler-infra-config": + { + "bpelURL": "http://mso.{{ .Release.Name }}-mso.svc.cluster.local:8080", + "bpelAuth": "786864AA53D0DCD881AED1154230C0C3058D58B9339D2EFB6193A0F0D82530E1", + "camundaURL": "http://mso.{{ .Release.Name }}-mso.svc.cluster.local:8080", + "camundaAuth": "5119D1AF37F671FC01FFAD2151D93EFB2BBB503E879FD07104D024EDDF118FD1" + }, + + "asdc-connections": + { + "asdc-controller1": + { + "user": "mso", + "consumerGroup": "sdc-OpenSource-Env1", + "consumerId": "sdc-COpenSource-Env11", + "environmentName": "{{ .Values.config.dmaapTopic }}", + "asdcAddress": "sdc-be.onap-sdc.svc.cluster.local:8443", + "password": "613AF3483E695524F9857643B697FA51C7A9A0951094F53791485BF3458F9EADA37DBACCCEBD0CB242B85B4062745247", + "pollingInterval": 60, + "pollingTimeout": 60, + "relevantArtifactTypes": "HEAT,HEAT_ENV,HEAT_VOL", + "activateServerTLSAuth": "false", + "keyStorePassword": "", + "keyStorePath": "" + } + }, + + "mso-sdnc-adapter-config": + { + "sdncurls": + [ + "http://sdnhost.{{ .Release.Name }}-sdnc.svc.cluster.local:8282/restconf/operations/L3SDN-API:", + "http://sdnhost.{{ .Release.Name }}-sdnc.svc.cluster.local:8282/restconf/config/L3SDN-API:", + "http://sdnhost.{{ .Release.Name }}-sdnc.svc.cluster.local:8282/restconf/operations/Firewall-API:", + "http://sdnhost.{{ .Release.Name }}-sdnc.svc.cluster.local:8282/restconf/config", + "http://sdnhost.{{ .Release.Name }}-sdnc.svc.cluster.local:8282/restconf/operations/VNF-API:", + "http://sdnhost.{{ .Release.Name }}-sdnc.svc.cluster.local:8282/restconf/operations/NBNC-API:", + "http://sdnhost.{{ .Release.Name }}-sdnc.svc.cluster.local:8282/restconf/operations/NORTHBOUND-API:service-topology-operation", + "http://sdnhost.{{ .Release.Name }}-sdnc.svc.cluster.local:8282/restconf/operations/GENERIC-RESOURCE-API:", + "http://sdnhost.{{ .Release.Name }}-sdnc.svc.cluster.local:8282/restconf/operations/VNFTOPOLOGYAIC-API:" + ], + + "bpelurl": "http://mso.{{ .Release.Name }}-mso.svc.cluster.local:8080/mso/SDNCAdapterCallbackService", + "restbpelurl": "http://mso.{{ .Release.Name }}-mso.svc.cluster.local:8080/mso/WorkflowMessage", + "myurl": "http://mso.{{ .Release.Name }}-mso.svc.cluster.local:8080/adapters/rest/SDNCNotify", + "sdncauth": "263f7d5f944d4d0c76db74b4148bec67d0bc796a874bc0d2a2a12aae89a866aa69133f700f391f784719a37f6a68d29bf5a2fbae1dab0402db7788c800c5ba73", + "bpelauth": "5119D1AF37F671FC01FFAD2151D93EFB2BBB503E879FD07104D024EDDF118FD1", + "sdncconnecttime": "5000" + }, + "mso-po-adapter-config": + { + "identity_services": + [ + { + "dcp_clli": "DEFAULT_KEYSTONE", + "identity_url": "{{ .Values.config.openStackKeyStoneUrl }}/v2.0", + "mso_id": "{{ .Values.config.openStackUserName }}", + "mso_pass": "{{ .Values.config.openStackEncryptedPasswordHere }}", + "admin_tenant":"{{ .Values.config.openStackServiceTenantName }}", + "member_role": "admin", + "tenant_metadata": "true", + "identity_server_type": "KEYSTONE", + "identity_authentication_type": "USERNAME_PASSWORD" + } + ], + + "cloud_sites": + [ + { + "id": "{{ .Values.config.openStackRegion }}", + "aic_version": "2.5", + "lcp_clli": "{{ .Values.config.openStackRegion }}", + "region_id": "{{ .Values.config.openStackRegion }}", + "identity_service_id": "DEFAULT_KEYSTONE" + } + ], + + "vnfbpelauth": "5119D1AF37F671FC01FFAD2151D93EFB2BBB503E879FD07104D024EDDF118FD1", + "checkrequiredparameters": "true", + "nwbpelauth": "5119D1AF37F671FC01FFAD2151D93EFB2BBB503E879FD07104D024EDDF118FD1" + }, + + + "mso-workflow-message-adapter-config": + { + "wmbpelurl": "http://mso.{{ .Release.Name }}-mso.svc.cluster.local:8080/mso/WorkflowMessage", + "wmbpelauth": "5119D1AF37F671FC01FFAD2151D93EFB2BBB503E879FD07104D024EDDF118FD1" + }, + + "mso-appc-adapter-config": + { + "appc_url": "http://localhost:18080", + "appc_stub": "/AppC-Simulator/action/execute", + "appc_auth": "786864AA53D0DCD881AED1154230C0C3058D58B9339D2EFB6193A0F0D82530E1", + "appc_timeout": "30", + "ueb_cluster_address": "http://localhost:18080", + "ueb_consumer_group": "testgroup", + "ueb_consumer_id": "testuser", + "ueb_topic": "queuetopic", + "ueb_polling_interval": "30", + "ueb_polling_interval": "30", + "ueb_user": "user", + "ueb_password": "1ec0d74615d4e4639f991c0590c83b88", + "bpel_url": "http://localhost:18080", + "bpel_stub": "/AppC-Simulator/bpmn/appCResponse", + "bpel_auth": "786864AA53D0DCD881AED1154230C0C3058D58B9339D2EFB6193A0F0D82530E1", + "bpel_timeout": "30" + }, + + "mso-bpmn-config": + { + "urnFileSystemLoadingEnabled": "true" + }, + + "mso-bpmn-urn-config": + { + "debug":"false", + "invariantIdL3ToHigherLayerDeleteBonding": "50359538-066f-4a8d-807f-f2bc8eaa79dc", + "versionIdL3ToHigherLayerDeleteBonding": "52dbec20-47aa-42e4-936c-331d8e350d44", + "infraCustomerId": "21014aa2-526b-11e6-beb8-9e71128cae77", + "sniroAuth": "test:testpwd", + "sniroEndpoint": "http://sniro-emulator.{{ .Release.Name }}-mock.svc.cluster.local:8080/sniro/api/v2/placement", + "sniroTimeout": "PT30M", + "serviceAgnosticSniroHost": "http://sniro-emulator.{{ .Release.Name }}-mock.svc.cluster.local:8080", + "serviceAgnosticSniroEndpoint": "/sniro/api/v2/placement", + "aaiEndpoint": "https://aai-service.{{ .Release.Name }}-aai.svc.cluster.local:8443", + "aaiAuth": "2630606608347B7124C244AB0FE34F6F", + "adaptersNamespace": "http://org.openecomp.mso", + "adaptersCompletemsoprocessEndpoint": "http://mso.{{ .Release.Name }}-mso.svc.cluster.local:8080/CompleteMsoProcess", + "adaptersDbEndpoint": "http://mso.{{ .Release.Name }}-mso.svc.cluster.local:8080/dbadapters/MsoRequestsDbAdapter", + "adaptersOpenecompDbEndpoint": "http://mso.{{ .Release.Name }}-mso.svc.cluster.local:8080/dbadapters/RequestsDbAdapter", + "catalogDbEndpoint": "http://mso.{{ .Release.Name }}-mso.svc.cluster.local:8080/ecomp/mso/catalog", + "adaptersSdncEndpoint": "http://mso.{{ .Release.Name }}-mso.svc.cluster.local:8080/adapters/SDNCAdapter", + "adaptersSdncRestEndpoint": "http://mso.{{ .Release.Name }}-mso.svc.cluster.local:8080/adapters/rest/v1/sdnc", + "adaptersTenantEndpoint": "http://mso.{{ .Release.Name }}-mso.svc.cluster.local:8080/tenants/TenantAdapter", + "adaptersDbAuth": "6B0E6863FB8EE010AB6F191B3C0489437601E81DC7C86305CB92DB98AFC53D74", + "adaptersWorkflowMessageEndpoint": "http://mso.{{ .Release.Name }}-mso.svc.cluster.local:8080/workflows/messages/message", + "workflowMessageEndpoint": "http://mso.{{ .Release.Name }}-mso.svc.cluster.local:8080/mso/WorkflowMessage", + "workflowSdncAdapterCallback": "http://mso.{{ .Release.Name }}-mso.svc.cluster.local:8080/mso/SDNCAdapterCallbackService", + "workflowSdncReplicationDelay": "PT5S", + "workflowAaiDistributionDelay": "PT30S", + "msoKey": "07a7159d3bf51a0e53be7a8f89699be7", + "adaptersPoAuth": "6B0E6863FB8EE010AB6F191B3C0489437601E81DC7C86305CB92DB98AFC53D74", + "sdncTimeout": "PT5M", + "rollback": "true", + "adaptersNetworkEndpoint": "http://mso.{{ .Release.Name }}-mso.svc.cluster.local:8080/networks/NetworkAdapter", + "adaptersNetworkRestEndpoint": "http://mso.{{ .Release.Name }}-mso.svc.cluster.local:8080/networks/rest/v1/networks", + "adaptersVnfAsyncEndpoint": "http://mso.{{ .Release.Name }}-mso.svc.cluster.local:8080/vnfs/VnfAdapterAsync", + "workflowVnfAdapterDeleteCallback": "http://mso.{{ .Release.Name }}-mso.svc.cluster.local:8080/mso/vnfAdapterNotify", + "workflowVnfAdapterCreateCallback": "http://mso.{{ .Release.Name }}-mso.svc.cluster.local:8080/mso/vnfAdapterNotify", + "adaptersVnfRestEndpoint": "http://mso.{{ .Release.Name }}-mso.svc.cluster.local:8080/vnfs/rest/v1/vnfs", + "workflowVnfAdapterRestCallback": "http://mso.{{ .Release.Name }}-mso.svc.cluster.local:8080/mso/vnfAdapterRestNotify", + "poTimeout": "PT5M", + "sdncFirewallYangModel": "http://com/att/svc/mis/firewall-lite-gui", + "sdncFirewallYangModelVersion": "2015-05-15", + "sdncTimeoutFirewall": "20", + "callbackRetryAttempts": "30", + "callbackRetrySleepTime": "1000", + "workflowL3ToHigherLayerAddBondingModelName" : "WAN Bonding", + "workflowL3ToHigherLayerAddBondingModelVersion" : "2.0" + } + }, + + "override_attributes": + { + }, + + "cookbook_versions": + { + "mso-config": "~> 1.0.0" + } +} diff --git a/kubernetes/so/resources/config/mso/standalone-full-ha-mso.xml b/kubernetes/so/resources/config/mso/standalone-full-ha-mso.xml new file mode 100644 index 0000000000..7693736021 --- /dev/null +++ b/kubernetes/so/resources/config/mso/standalone-full-ha-mso.xml @@ -0,0 +1,609 @@ +<?xml version='1.0' encoding='UTF-8'?> + +<server xmlns="urn:jboss:domain:4.2"> + + <extensions> + <extension module="org.jboss.as.clustering.infinispan"/> + <extension module="org.jboss.as.clustering.jgroups"/> + <extension module="org.jboss.as.connector"/> + <extension module="org.jboss.as.deployment-scanner"/> + <extension module="org.jboss.as.ee"/> + <extension module="org.jboss.as.ejb3"/> + <extension module="org.jboss.as.jaxrs"/> + <extension module="org.jboss.as.jdr"/> + <extension module="org.jboss.as.jmx"/> + <extension module="org.jboss.as.jpa"/> + <extension module="org.jboss.as.jsf"/> + <extension module="org.jboss.as.jsr77"/> + <extension module="org.jboss.as.logging"/> + <extension module="org.jboss.as.mail"/> + <extension module="org.jboss.as.modcluster"/> + <extension module="org.jboss.as.naming"/> + <extension module="org.jboss.as.pojo"/> + <extension module="org.jboss.as.remoting"/> + <extension module="org.jboss.as.sar"/> + <extension module="org.jboss.as.security"/> + <extension module="org.jboss.as.transactions"/> + <extension module="org.jboss.as.webservices"/> + <extension module="org.jboss.as.weld"/> + <extension module="org.wildfly.extension.batch.jberet"/> + <extension module="org.wildfly.extension.bean-validation"/> + <extension module="org.wildfly.extension.clustering.singleton"/> + <extension module="org.wildfly.extension.io"/> + <extension module="org.wildfly.extension.messaging-activemq"/> + <extension module="org.wildfly.extension.request-controller"/> + <extension module="org.wildfly.extension.security.manager"/> + <extension module="org.wildfly.extension.undertow"/> + <extension module="org.wildfly.iiop-openjdk"/> + </extensions> + + + <management> + <security-realms> + <security-realm name="ManagementRealm"> + <authentication> + <local default-user="$local" skip-group-loading="true"/> + <properties path="mgmt-users.properties" relative-to="jboss.server.config.dir"/> + </authentication> + <authorization map-groups-to-roles="false"> + <properties path="mgmt-groups.properties" relative-to="jboss.server.config.dir"/> + </authorization> + </security-realm> + <security-realm name="ApplicationRealm"> + <server-identities> + <ssl> + <keystore path="application.keystore" relative-to="jboss.server.config.dir" keystore-password="password" alias="server" key-password="password" generate-self-signed-certificate-host="localhost"/> + </ssl> + </server-identities> + <authentication> + <local default-user="$local" allowed-users="*" skip-group-loading="true"/> + <properties path="application-users.properties" relative-to="jboss.server.config.dir"/> + </authentication> + <authorization> + <properties path="application-roles.properties" relative-to="jboss.server.config.dir"/> + </authorization> + </security-realm> + </security-realms> + <audit-log> + <formatters> + <json-formatter name="json-formatter"/> + </formatters> + <handlers> + <file-handler name="file" formatter="json-formatter" path="audit-log.log" relative-to="jboss.server.data.dir"/> + </handlers> + <logger log-boot="true" log-read-only="false" enabled="false"> + <handlers> + <handler name="file"/> + </handlers> + </logger> + </audit-log> + <management-interfaces> + <http-interface security-realm="ManagementRealm" http-upgrade-enabled="true"> + <socket-binding http="management-http"/> + </http-interface> + </management-interfaces> + <access-control provider="simple"> + <role-mapping> + <role name="SuperUser"> + <include> + <user name="$local"/> + </include> + </role> + </role-mapping> + </access-control> + </management> + + <profile> + <subsystem xmlns="urn:jboss:domain:logging:3.0"> + <console-handler name="CONSOLE"> + <level name="INFO"/> + <formatter> + <named-formatter name="COLOR-PATTERN"/> + </formatter> + </console-handler> + <periodic-rotating-file-handler name="FILE" autoflush="true"> + <formatter> + <named-formatter name="PATTERN"/> + </formatter> + <file relative-to="jboss.server.log.dir" path="server.log"/> + <suffix value=".yyyy-MM-dd"/> + <append value="true"/> + </periodic-rotating-file-handler> + <logger category="com.arjuna"> + <level name="WARN"/> + </logger> + <logger category="org.jboss.as.config"> + <level name="DEBUG"/> + </logger> + <logger category="sun.rmi"> + <level name="WARN"/> + </logger> + <root-logger> + <level name="INFO"/> + <handlers> + <handler name="CONSOLE"/> + <handler name="FILE"/> + </handlers> + </root-logger> + <formatter name="PATTERN"> + <pattern-formatter pattern="%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c] (%t) %s%e%n"/> + </formatter> + <formatter name="COLOR-PATTERN"> + <pattern-formatter pattern="%K{level}%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%e%n"/> + </formatter> + </subsystem> + <subsystem xmlns="urn:jboss:domain:batch-jberet:1.0"> + <default-job-repository name="in-memory"/> + <default-thread-pool name="batch"/> + <job-repository name="in-memory"> + <in-memory/> + </job-repository> + <thread-pool name="batch"> + <max-threads count="10"/> + <keepalive-time time="30" unit="seconds"/> + </thread-pool> + </subsystem> + <subsystem xmlns="urn:jboss:domain:bean-validation:1.0"/> + <subsystem xmlns="urn:jboss:domain:datasources:4.0"> + <datasources> + <datasource jndi-name="java:jboss/datasources/mso-requests" pool-name="mso-requests" enabled="true" use-ccm="true"> + <connection-url>jdbc:mariadb://{{ .Release.Name }}-mariadb:3306/mso_requests?autoReconnect=true&connectTimeout=60000&socketTimeout=60000</connection-url> + <driver>mariadb</driver> + <transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation> + <pool> + <min-pool-size>10</min-pool-size> + <max-pool-size>100</max-pool-size> + <prefill>true</prefill> + <use-strict-min>false</use-strict-min> + <flush-strategy>FailingConnectionOnly</flush-strategy> + </pool> + <security> + <user-name>mso</user-name> + <password>mso123</password> + </security> + <validation> + <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker"/> + <validate-on-match>false</validate-on-match> + <background-validation>true</background-validation> + <background-validation-millis>20000</background-validation-millis> + <use-fast-fail>true</use-fast-fail> + <exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLExceptionSorter"/> + </validation> + <timeout> + <idle-timeout-minutes>15</idle-timeout-minutes> + <query-timeout>30</query-timeout> + <allocation-retry>1</allocation-retry> + <allocation-retry-wait-millis>3000</allocation-retry-wait-millis> + </timeout> + </datasource> + <datasource jndi-name="java:jboss/datasources/mso-catalog" pool-name="mso-catalog" enabled="true" use-ccm="true"> + <connection-url>jdbc:mariadb://{{ .Release.Name }}-mariadb:3306/mso_catalog?autoReconnect=true&connectTimeout=60000&socketTimeout=60000</connection-url> + <driver>mariadb</driver> + <transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation> + <pool> + <min-pool-size>10</min-pool-size> + <max-pool-size>100</max-pool-size> + <prefill>true</prefill> + <use-strict-min>false</use-strict-min> + <flush-strategy>FailingConnectionOnly</flush-strategy> + </pool> + <security> + <user-name>catalog</user-name> + <password>catalog123</password> + </security> + <validation> + <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker"/> + <validate-on-match>false</validate-on-match> + <background-validation>true</background-validation> + <background-validation-millis>20000</background-validation-millis> + <use-fast-fail>true</use-fast-fail> + <exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLExceptionSorter"/> + </validation> + <timeout> + <idle-timeout-minutes>15</idle-timeout-minutes> + <query-timeout>30</query-timeout> + <allocation-retry>1</allocation-retry> + <allocation-retry-wait-millis>3000</allocation-retry-wait-millis> + </timeout> + </datasource> + <datasource jta="true" jndi-name="java:jboss/datasources/ProcessEngine" pool-name="ProcessEngine" enabled="true" use-java-context="true" use-ccm="true"> + <connection-url>jdbc:mariadb://{{ .Release.Name }}-mariadb:3306/camundabpmn?autoReconnect=true&connectTimeout=60000&socketTimeout=60000</connection-url> + <driver>mariadb</driver> + <new-connection-sql>set autocommit=1</new-connection-sql> + <transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation> + <pool> + <min-pool-size>10</min-pool-size> + <max-pool-size>100</max-pool-size> + <prefill>true</prefill> + <use-strict-min>false</use-strict-min> + <flush-strategy>FailingConnectionOnly</flush-strategy> + </pool> + <security> + <user-name>camunda</user-name> + <password>camunda123</password> + </security> + <validation> + <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker"/> + <exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLExceptionSorter"/> + </validation> + <statement> + <prepared-statement-cache-size>32</prepared-statement-cache-size> + <share-prepared-statements>true</share-prepared-statements> + </statement> + </datasource> + <datasource jndi-name="java:jboss/datasources/ExampleDS" pool-name="ExampleDS" enabled="true" use-java-context="true"> + <connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE</connection-url> + <driver>h2</driver> + <security> + <user-name>sa</user-name> + <password>sa</password> + </security> + </datasource> + <drivers> + <driver name="h2" module="com.h2database.h2"> + <xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class> + </driver> + <driver name="mariadb" module="mariadb"> + <xa-datasource-class>org.mariadb.jdbc.MySQLDataSource</xa-datasource-class> + </driver> + </drivers> + </datasources> + </subsystem> + <subsystem xmlns="urn:jboss:domain:deployment-scanner:2.0"> + <deployment-scanner path="deployments" relative-to="jboss.server.base.dir" scan-interval="5000" runtime-failure-causes-rollback="${jboss.deployment.scanner.rollback.on.failure:false}"/> + </subsystem> + <subsystem xmlns="urn:jboss:domain:ee:4.0"> + <spec-descriptor-property-replacement>false</spec-descriptor-property-replacement> + <concurrent> + <context-services> + <context-service name="default" jndi-name="java:jboss/ee/concurrency/context/default" use-transaction-setup-provider="true"/> + </context-services> + <managed-thread-factories> + <managed-thread-factory name="default" jndi-name="java:jboss/ee/concurrency/factory/default" context-service="default"/> + </managed-thread-factories> + <managed-executor-services> + <managed-executor-service name="default" jndi-name="java:jboss/ee/concurrency/executor/default" context-service="default" hung-task-threshold="60000" keepalive-time="5000"/> + </managed-executor-services> + <managed-scheduled-executor-services> + <managed-scheduled-executor-service name="default" jndi-name="java:jboss/ee/concurrency/scheduler/default" context-service="default" hung-task-threshold="60000" keepalive-time="3000"/> + </managed-scheduled-executor-services> + </concurrent> + <default-bindings context-service="java:jboss/ee/concurrency/context/default" datasource="java:jboss/datasources/ExampleDS" jms-connection-factory="java:jboss/DefaultJMSConnectionFactory" managed-executor-service="java:jboss/ee/concurrency/executor/default" managed-scheduled-executor-service="java:jboss/ee/concurrency/scheduler/default" managed-thread-factory="java:jboss/ee/concurrency/factory/default"/> + </subsystem> + <subsystem xmlns="urn:jboss:domain:ejb3:4.0"> + <session-bean> + <stateless> + <bean-instance-pool-ref pool-name="slsb-strict-max-pool"/> + </stateless> + <stateful default-access-timeout="5000" cache-ref="distributable" passivation-disabled-cache-ref="simple"/> + <singleton default-access-timeout="5000"/> + </session-bean> + <mdb> + <resource-adapter-ref resource-adapter-name="${ejb.resource-adapter-name:activemq-ra.rar}"/> + <bean-instance-pool-ref pool-name="mdb-strict-max-pool"/> + </mdb> + <pools> + <bean-instance-pools> + <strict-max-pool name="slsb-strict-max-pool" derive-size="from-worker-pools" instance-acquisition-timeout="5" instance-acquisition-timeout-unit="MINUTES"/> + <strict-max-pool name="mdb-strict-max-pool" derive-size="from-cpu-count" instance-acquisition-timeout="5" instance-acquisition-timeout-unit="MINUTES"/> + </bean-instance-pools> + </pools> + <caches> + <cache name="simple"/> + <cache name="distributable" passivation-store-ref="infinispan" aliases="passivating clustered"/> + </caches> + <passivation-stores> + <passivation-store name="infinispan" cache-container="ejb" max-size="10000"/> + </passivation-stores> + <async thread-pool-name="default"/> + <timer-service thread-pool-name="default" default-data-store="default-file-store"> + <data-stores> + <file-data-store name="default-file-store" path="timer-service-data" relative-to="jboss.server.data.dir"/> + </data-stores> + </timer-service> + <remote connector-ref="http-remoting-connector" thread-pool-name="default"/> + <thread-pools> + <thread-pool name="default"> + <max-threads count="10"/> + <keepalive-time time="100" unit="milliseconds"/> + </thread-pool> + </thread-pools> + <iiop enable-by-default="false" use-qualified-name="false"/> + <default-security-domain value="other"/> + <default-missing-method-permissions-deny-access value="true"/> + <log-system-exceptions value="true"/> + </subsystem> + <subsystem xmlns="urn:jboss:domain:io:1.1"> + <worker name="default"/> + <buffer-pool name="default"/> + </subsystem> + <subsystem xmlns="urn:jboss:domain:infinispan:4.0"> + <cache-container name="server" aliases="singleton cluster" default-cache="default" module="org.wildfly.clustering.server"> + <transport lock-timeout="60000"/> + <replicated-cache name="default" mode="SYNC"> + <transaction mode="BATCH"/> + </replicated-cache> + </cache-container> + <cache-container name="web" default-cache="dist" module="org.wildfly.clustering.web.infinispan"> + <transport lock-timeout="60000"/> + <distributed-cache name="dist" mode="ASYNC" l1-lifespan="0" owners="2"> + <locking isolation="REPEATABLE_READ"/> + <transaction mode="BATCH"/> + <file-store/> + </distributed-cache> + <distributed-cache name="concurrent" mode="SYNC" l1-lifespan="0" owners="2"> + <file-store/> + </distributed-cache> + </cache-container> + <cache-container name="ejb" aliases="sfsb" default-cache="dist" module="org.wildfly.clustering.ejb.infinispan"> + <transport lock-timeout="60000"/> + <distributed-cache name="dist" mode="ASYNC" l1-lifespan="0" owners="2"> + <locking isolation="REPEATABLE_READ"/> + <transaction mode="BATCH"/> + <file-store/> + </distributed-cache> + </cache-container> + <cache-container name="hibernate" default-cache="local-query" module="org.hibernate.infinispan"> + <transport lock-timeout="60000"/> + <local-cache name="local-query"> + <eviction strategy="LRU" max-entries="10000"/> + <expiration max-idle="100000"/> + </local-cache> + <invalidation-cache name="entity" mode="SYNC"> + <transaction mode="NON_XA"/> + <eviction strategy="LRU" max-entries="10000"/> + <expiration max-idle="100000"/> + </invalidation-cache> + <replicated-cache name="timestamps" mode="ASYNC"/> + </cache-container> + </subsystem> + <subsystem xmlns="urn:jboss:domain:iiop-openjdk:1.0"> + <orb socket-binding="iiop" ssl-socket-binding="iiop-ssl"/> + <initializers security="identity" transactions="spec"/> + </subsystem> + <subsystem xmlns="urn:jboss:domain:jaxrs:1.0"/> + <subsystem xmlns="urn:jboss:domain:jca:4.0"> + <archive-validation enabled="true" fail-on-error="true" fail-on-warn="false"/> + <bean-validation enabled="true"/> + <default-workmanager> + <short-running-threads> + <core-threads count="50"/> + <queue-length count="50"/> + <max-threads count="50"/> + <keepalive-time time="10" unit="seconds"/> + </short-running-threads> + <long-running-threads> + <core-threads count="50"/> + <queue-length count="50"/> + <max-threads count="50"/> + <keepalive-time time="10" unit="seconds"/> + </long-running-threads> + </default-workmanager> + <cached-connection-manager/> + </subsystem> + <subsystem xmlns="urn:jboss:domain:jdr:1.0"/> + <subsystem xmlns="urn:jboss:domain:jgroups:4.0"> + <channels default="ee"> + <channel name="ee" stack="udp"/> + </channels> + <stacks> + <stack name="udp"> + <transport type="UDP" socket-binding="jgroups-udp"/> + <protocol type="PING"/> + <protocol type="MERGE3"/> + <protocol type="FD_SOCK" socket-binding="jgroups-udp-fd"/> + <protocol type="FD_ALL"/> + <protocol type="VERIFY_SUSPECT"/> + <protocol type="pbcast.NAKACK2"/> + <protocol type="UNICAST3"/> + <protocol type="pbcast.STABLE"/> + <protocol type="pbcast.GMS"/> + <protocol type="UFC"/> + <protocol type="MFC"/> + <protocol type="FRAG2"/> + </stack> + <stack name="tcp"> + <transport type="TCP" socket-binding="jgroups-tcp"/> + <protocol type="MPING" socket-binding="jgroups-mping"/> + <protocol type="MERGE3"/> + <protocol type="FD_SOCK" socket-binding="jgroups-tcp-fd"/> + <protocol type="FD"/> + <protocol type="VERIFY_SUSPECT"/> + <protocol type="pbcast.NAKACK2"/> + <protocol type="UNICAST3"/> + <protocol type="pbcast.STABLE"/> + <protocol type="pbcast.GMS"/> + <protocol type="MFC"/> + <protocol type="FRAG2"/> + </stack> + </stacks> + </subsystem> + <subsystem xmlns="urn:jboss:domain:jmx:1.3"> + <expose-resolved-model/> + <expose-expression-model/> + <remoting-connector/> + </subsystem> + <subsystem xmlns="urn:jboss:domain:jpa:1.1"> + <jpa default-datasource="" default-extended-persistence-inheritance="DEEP"/> + </subsystem> + <subsystem xmlns="urn:jboss:domain:jsf:1.0"/> + <subsystem xmlns="urn:jboss:domain:jsr77:1.0"/> + <subsystem xmlns="urn:jboss:domain:mail:2.0"> + <mail-session name="default" jndi-name="java:jboss/mail/Default"> + <smtp-server outbound-socket-binding-ref="mail-smtp"/> + </mail-session> + </subsystem> + <subsystem xmlns="urn:jboss:domain:messaging-activemq:1.0"> + <server name="default"> + <cluster password="${jboss.messaging.cluster.password:CHANGE ME!!}"/> + <security-setting name="#"> + <role name="guest" send="true" consume="true" create-non-durable-queue="true" delete-non-durable-queue="true"/> + </security-setting> + <address-setting name="#" dead-letter-address="jms.queue.DLQ" expiry-address="jms.queue.ExpiryQueue" max-size-bytes="10485760" page-size-bytes="2097152" message-counter-history-day-limit="10" redistribution-delay="1000"/> + <http-connector name="http-connector" socket-binding="http" endpoint="http-acceptor"/> + <http-connector name="http-connector-throughput" socket-binding="http" endpoint="http-acceptor-throughput"> + <param name="batch-delay" value="50"/> + </http-connector> + <in-vm-connector name="in-vm" server-id="0"/> + <http-acceptor name="http-acceptor" http-listener="default"/> + <http-acceptor name="http-acceptor-throughput" http-listener="default"> + <param name="batch-delay" value="50"/> + <param name="direct-deliver" value="false"/> + </http-acceptor> + <in-vm-acceptor name="in-vm" server-id="0"/> + <broadcast-group name="bg-group1" jgroups-channel="activemq-cluster" connectors="http-connector"/> + <discovery-group name="dg-group1" jgroups-channel="activemq-cluster"/> + <cluster-connection name="my-cluster" address="jms" connector-name="http-connector" discovery-group="dg-group1"/> + <jms-queue name="ExpiryQueue" entries="java:/jms/queue/ExpiryQueue"/> + <jms-queue name="DLQ" entries="java:/jms/queue/DLQ"/> + <connection-factory name="InVmConnectionFactory" entries="java:/ConnectionFactory" connectors="in-vm"/> + <connection-factory name="RemoteConnectionFactory" entries="java:jboss/exported/jms/RemoteConnectionFactory" connectors="http-connector" ha="true" block-on-acknowledge="true" reconnect-attempts="-1"/> + <pooled-connection-factory name="activemq-ra" entries="java:/JmsXA java:jboss/DefaultJMSConnectionFactory" connectors="in-vm" transaction="xa"/> + </server> + </subsystem> + <subsystem xmlns="urn:jboss:domain:modcluster:2.0"> + <mod-cluster-config advertise-socket="modcluster" connector="ajp"> + <dynamic-load-provider> + <load-metric type="cpu"/> + </dynamic-load-provider> + </mod-cluster-config> + </subsystem> + <subsystem xmlns="urn:jboss:domain:naming:2.0"> + <remote-naming/> + </subsystem> + <subsystem xmlns="urn:jboss:domain:pojo:1.0"/> + <subsystem xmlns="urn:jboss:domain:remoting:3.0"> + <endpoint/> + <http-connector name="http-remoting-connector" connector-ref="default" security-realm="ApplicationRealm"/> + </subsystem> + <subsystem xmlns="urn:jboss:domain:resource-adapters:4.0"/> + <subsystem xmlns="urn:jboss:domain:request-controller:1.0"/> + <subsystem xmlns="urn:jboss:domain:sar:1.0"/> + <subsystem xmlns="urn:jboss:domain:security-manager:1.0"> + <deployment-permissions> + <maximum-set> + <permission class="java.security.AllPermission"/> + </maximum-set> + </deployment-permissions> + </subsystem> + <subsystem xmlns="urn:jboss:domain:security:1.2"> + <security-domains> + <security-domain name="other" cache-type="default"> + <authentication> + <login-module code="Remoting" flag="optional"> + <module-option name="password-stacking" value="useFirstPass"/> + </login-module> + <login-module code="RealmDirect" flag="required"> + <module-option name="password-stacking" value="useFirstPass"/> + </login-module> + </authentication> + </security-domain> + <security-domain name="jboss-web-policy" cache-type="default"> + <authorization> + <policy-module code="Delegating" flag="required"/> + </authorization> + </security-domain> + <security-domain name="jboss-ejb-policy" cache-type="default"> + <authorization> + <policy-module code="Delegating" flag="required"/> + </authorization> + </security-domain> + <security-domain name="jaspitest" cache-type="default"> + <authentication-jaspi> + <login-module-stack name="dummy"> + <login-module code="Dummy" flag="optional"/> + </login-module-stack> + <auth-module code="Dummy"/> + </authentication-jaspi> + </security-domain> + </security-domains> + </subsystem> + <subsystem xmlns="urn:jboss:domain:singleton:1.0"> + <singleton-policies default="default"> + <singleton-policy name="default" cache-container="server"> + <simple-election-policy/> + </singleton-policy> + </singleton-policies> + </subsystem> + <subsystem xmlns="urn:jboss:domain:transactions:3.0"> + <core-environment> + <process-id> + <uuid/> + </process-id> + </core-environment> + <recovery-environment socket-binding="txn-recovery-environment" status-socket-binding="txn-status-manager"/> + </subsystem> + <subsystem xmlns="urn:jboss:domain:undertow:3.1"> + <buffer-cache name="default"/> + <server name="default-server"> + <ajp-listener name="ajp" socket-binding="ajp"/> + <http-listener name="default" socket-binding="http" enable-http2="true"/> + <https-listener name="https" socket-binding="https" security-realm="ApplicationRealm" enable-http2="true"/> + <host name="default-host" alias="localhost"> + <location name="/" handler="welcome-content"/> + <filter-ref name="server-header"/> + <filter-ref name="x-powered-by-header"/> + </host> + </server> + <servlet-container name="default"> + <jsp-config/> + <websockets/> + </servlet-container> + <handlers> + <file name="welcome-content" path="${jboss.home.dir}/welcome-content"/> + </handlers> + <filters> + <response-header name="server-header" header-name="Server" header-value="WildFly/10"/> + <response-header name="x-powered-by-header" header-name="X-Powered-By" header-value="Undertow/1"/> + </filters> + </subsystem> + <subsystem xmlns="urn:jboss:domain:webservices:2.0"> + <wsdl-host>${jboss.bind.address:127.0.0.1}</wsdl-host> + <endpoint-config name="Standard-Endpoint-Config"/> + <endpoint-config name="Recording-Endpoint-Config"> + <pre-handler-chain name="recording-handlers" protocol-bindings="##SOAP11_HTTP ##SOAP11_HTTP_MTOM ##SOAP12_HTTP ##SOAP12_HTTP_MTOM"> + <handler name="RecordingHandler" class="org.jboss.ws.common.invocation.RecordingServerHandler"/> + </pre-handler-chain> + </endpoint-config> + <client-config name="Standard-Client-Config"/> + </subsystem> + <subsystem xmlns="urn:jboss:domain:weld:3.0"/> + </profile> + + <interfaces> + <interface name="management"> + <inet-address value="${jboss.bind.address.management:127.0.0.1}"/> + </interface> + <interface name="public"> + <inet-address value="${jboss.bind.address:127.0.0.1}"/> + </interface> + <interface name="private"> + <inet-address value="${jboss.bind.address.private:127.0.0.1}"/> + </interface> + <interface name="unsecure"> + <inet-address value="${jboss.bind.address.unsecure:127.0.0.1}"/> + </interface> + </interfaces> + + <socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}"> + <socket-binding name="management-http" interface="management" port="${jboss.management.http.port:9990}"/> + <socket-binding name="management-https" interface="management" port="${jboss.management.https.port:9993}"/> + <socket-binding name="ajp" port="${jboss.ajp.port:8009}"/> + <socket-binding name="http" port="${jboss.http.port:8080}"/> + <socket-binding name="https" port="${jboss.https.port:8443}"/> + <socket-binding name="iiop" interface="unsecure" port="3528"/> + <socket-binding name="iiop-ssl" interface="unsecure" port="3529"/> + <socket-binding name="jgroups-mping" interface="private" port="0" multicast-address="${jboss.default.multicast.address:230.0.0.4}" multicast-port="45700"/> + <socket-binding name="jgroups-tcp" interface="private" port="7600"/> + <socket-binding name="jgroups-tcp-fd" interface="private" port="57600"/> + <socket-binding name="jgroups-udp" interface="private" port="55200" multicast-address="${jboss.default.multicast.address:230.0.0.4}" multicast-port="45688"/> + <socket-binding name="jgroups-udp-fd" interface="private" port="54200"/> + <socket-binding name="modcluster" port="0" multicast-address="224.0.1.105" multicast-port="23364"/> + <socket-binding name="txn-recovery-environment" port="4712"/> + <socket-binding name="txn-status-manager" port="4713"/> + <outbound-socket-binding name="mail-smtp"> + <remote-destination host="localhost" port="25"/> + </outbound-socket-binding> + </socket-binding-group> + +</server> diff --git a/kubernetes/so/templates/NOTES.txt b/kubernetes/so/templates/NOTES.txt new file mode 100644 index 0000000000..91d8ed42f1 --- /dev/null +++ b/kubernetes/so/templates/NOTES.txt @@ -0,0 +1,19 @@ +1. Get the application URL by running these commands: +{{- if .Values.ingress.enabled }} +{{- range .Values.ingress.hosts }} + http://{{ . }} +{{- end }} +{{- else if contains "NodePort" .Values.service.type }} + export NODE_PORT=$(kubectl get --namespace {{ include "common.namespace" . }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "common.name" . }}) + export NODE_IP=$(kubectl get nodes --namespace {{ include "common.namespace" . }} -o jsonpath="{.items[0].status.addresses[0].address}") + echo http://$NODE_IP:$NODE_PORT +{{- else if contains "LoadBalancer" .Values.service.type }} + NOTE: It may take a few minutes for the LoadBalancer IP to be available. + You can watch the status of by running 'kubectl get svc -w {{ include "common.name" . }}' + export SERVICE_IP=$(kubectl get svc --namespace {{ include "common.namespace" . }} {{ include "common.name" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}') + echo http://$SERVICE_IP:{{ .Values.service.externalPort }} +{{- else if contains "ClusterIP" .Values.service.type }} + export POD_NAME=$(kubectl get pods --namespace {{ include "common.namespace" . }} -l "app={{ template "so.name" . }},release={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}") + echo "Visit http://127.0.0.1:8080 to use your application" + kubectl port-forward $POD_NAME 8080:{{ .Values.service.internalPort }} +{{- end }} diff --git a/kubernetes/so/templates/configmap.yaml b/kubernetes/so/templates/configmap.yaml new file mode 100644 index 0000000000..c9afd4f71e --- /dev/null +++ b/kubernetes/so/templates/configmap.yaml @@ -0,0 +1,15 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: so-configmap + namespace: {{ include "common.namespace" . }} +data: +{{ tpl (.Files.Glob "resources/config/mso/*").AsConfig . | indent 2 }} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: so-docker-file-configmap + namespace: {{ include "common.namespace" . }} +data: +{{ tpl (.Files.Glob "resources/config/docker-files/scripts/start-jboss-server.sh").AsConfig . | indent 2 }} diff --git a/kubernetes/so/templates/deployment.yaml b/kubernetes/so/templates/deployment.yaml new file mode 100644 index 0000000000..b66de44adc --- /dev/null +++ b/kubernetes/so/templates/deployment.yaml @@ -0,0 +1,177 @@ +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + name: {{ include "common.fullname" . }} + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +spec: + replicas: {{ .Values.replicaCount }} + template: + metadata: + labels: + app: {{ include "common.name" . }} + release: {{ .Release.Name }} + spec: + initContainers: + - command: + - /root/ready.py + args: + - --container-name + - mariadb + env: + - name: NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.namespace + image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}" + imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + name: {{ include "common.name" . }}-readiness + containers: + - name: {{ .Chart.Name }} + command: + - /tmp/start-jboss-server.sh + image: "{{ .Values.global.repository | default .Values.repository }}/{{ .Values.image }}" + imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + ports: + - containerPort: {{ .Values.service.internalPort }} + - containerPort: {{ .Values.service.internalPort2 }} + - containerPort: {{ .Values.service.internalPort3 }} + - containerPort: {{ .Values.service.internalPort4 }} + - containerPort: {{ .Values.service.internalPort5 }} + # disable liveness probe when breakpoints set in debugger + # so K8s doesn't restart unresponsive container + {{- if eq .Values.liveness.enabled true }} + livenessProbe: + tcpSocket: + port: {{ .Values.service.internalPort }} + initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }} + periodSeconds: {{ .Values.liveness.periodSeconds }} + {{ end -}} + readinessProbe: + tcpSocket: + port: {{ .Values.service.internalPort }} + initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }} + periodSeconds: {{ .Values.readiness.periodSeconds }} + env: + - name: JBOSS_DEBUG + value: {{ .Values.global.debugEnabled | default .Values.debugEnabled | quote }} + volumeMounts: + - mountPath: /etc/localtime + name: localtime + readOnly: true + - mountPath: /shared/ + name: so + - mountPath: /tmp/start-jboss-server.sh + name: so-docker-files + subPath: start-jboss-server.sh + - mountPath: /opt/jboss/standalone/configuration/standalone-full-ha-mso.xml + name: so-config + subPath: standalone-full-ha-mso.xml + + - mountPath: /var/log/onap + name: so-logs + - mountPath: /var/berks-cookbooks/mso-config/files/default/mso-po-adapter-config/logback.network.xml + name: so-logback + subPath: logback.network.xml + - mountPath: /var/berks-cookbooks/mso-config/files/default/mso-po-adapter-config/logback.tenant.xml + name: so-logback + subPath: logback.tenant.xml + - mountPath: /var/berks-cookbooks/mso-config/files/default/mso-po-adapter-config/logback.vnf.xml + name: so-logback + subPath: logback.vnf.xml + - mountPath: /var/berks-cookbooks/mso-config/files/default/mso-po-adapter-config/logback.vfc.xml + name: so-logback + subPath: logback.vfc.xml + - mountPath: /var/berks-cookbooks/mso-config/files/default/mso-api-handler-infra-config/logback.apihandler-infra.xml + name: so-logback + subPath: logback.apihandler-infra.xml + - mountPath: /var/berks-cookbooks/mso-config/files/default/mso-appc-adapter-config/logback.appc.xml + name: so-logback + subPath: logback.appc.xml + - mountPath: /var/berks-cookbooks/mso-config/files/default/mso-requests-db-adapter-config/logback.msorequestsdbadapter.xml + name: so-logback + subPath: logback.msorequestsdbadapter.xml + - mountPath: /var/berks-cookbooks/mso-config/files/default/mso-asdc-controller-config/logback.asdc.xml + name: so-logback + subPath: logback.asdc.xml + - mountPath: /var/berks-cookbooks/mso-config/files/default/mso-sdnc-adapter-config/logback.sdnc.xml + name: so-logback + subPath: logback.sdnc.xml + - mountPath: /var/berks-cookbooks/mso-config/files/default/mso-bpmn-config/logback.bpmn.xml + name: so-logback + subPath: logback.bpmn.xml + - mountPath: /var/berks-cookbooks/mso-config/files/default/mso-workflow-message-adapter-config/logback.workflow-message-adapter.xml + name: so-logback + subPath: logback.workflow-message-adapter.xml + resources: +{{ toYaml .Values.resources | indent 12 }} + {{- if .Values.nodeSelector }} + nodeSelector: +{{ toYaml .Values.nodeSelector | indent 10 }} + {{- end -}} + {{- if .Values.affinity }} + affinity: +{{ toYaml .Values.affinity | indent 10 }} + {{- end }} + + # side car containers + - name: filebeat-onap + image: "{{ .Values.global.loggingRepository }}/{{ .Values.global.loggingImage }}" + imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + volumeMounts: + - mountPath: /usr/share/filebeat/filebeat.yml + name: filebeat-conf + subPath: filebeat.yml + - mountPath: /var/log/onap + name: so-logs + - mountPath: /usr/share/filebeat/data + name: so-data-filebeat + + volumes: + - name: localtime + hostPath: + path: /etc/localtime + - name: so-logback + configMap: + name: so-log-configmap + - name: filebeat-conf + configMap: + name: so-filebeat-configmap + - name: so + configMap: + name: so-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: so-config + configMap: + name: so-configmap + items: + - key: standalone-full-ha-mso.xml + path: standalone-full-ha-mso.xml + mode: 0644 + - name: so-logs + emptyDir: {} + - name: so-data-filebeat + emptyDir: {} + - name: so-docker-files + configMap: + name: so-docker-file-configmap + items: + - key: start-jboss-server.sh + path: start-jboss-server.sh + mode: 0755 + imagePullSecrets: + - name: "{{ include "common.namespace" . }}-docker-registry-key" diff --git a/kubernetes/so/templates/log-configmap.yaml b/kubernetes/so/templates/log-configmap.yaml new file mode 100644 index 0000000000..4d1cc90886 --- /dev/null +++ b/kubernetes/so/templates/log-configmap.yaml @@ -0,0 +1,15 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: so-log-configmap + namespace: {{ include "common.namespace" . }} +data: +{{ tpl (.Files.Glob "resources/config/log/*").AsConfig . | indent 2 }} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: so-filebeat-configmap + namespace: {{ include "common.namespace" . }} +data: +{{ tpl (.Files.Glob "resources/config/log/filebeat/*").AsConfig . | indent 2 }} diff --git a/kubernetes/so/templates/service.yaml b/kubernetes/so/templates/service.yaml new file mode 100644 index 0000000000..e3e4d48018 --- /dev/null +++ b/kubernetes/so/templates/service.yaml @@ -0,0 +1,69 @@ +apiVersion: v1 +kind: Service +metadata: + name: {{ include "common.fullname" . }} + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} + annotations: + msb.onap.org/service-info: '[ + { + "serviceName": "so", + "version": "v1", + "url": "/ecomp/mso/infra", + "protocol": "REST" + "port": "8080", + "visualRange":"1" + }, + { + "serviceName": "so-deprecated", + "version": "v1", + "url": "/ecomp/mso/infra", + "protocol": "REST" + "port": "8080", + "visualRange":"1", + "path":"/ecomp/mso/infra" + } + ]' +spec: + type: {{ .Values.service.type }} + ports: + {{if eq .Values.service.type "NodePort" -}} + - port: {{ .Values.service.internalPort }} + nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.externalPort }} + name: {{ .Values.service.name }} + - port: {{ .Values.service.internalPort2 }} + nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.externalPort2 }} + name: {{ .Values.service.name }}2 + - port: {{ .Values.service.internalPort3 }} + nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.externalPort3 }} + name: {{ .Values.service.name }}3 + - port: {{ .Values.service.internalPort4 }} + nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.externalPort4 }} + name: {{ .Values.service.name }}4 + - port: {{ .Values.service.internalPort5 }} + nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.externalPort5 }} + name: {{ .Values.service.name }}5 + {{- else -}} + - port: {{ .Values.service.externalPort }} + targetPort: {{ .Values.service.internalPort }} + name: {{ .Values.service.name }} + - port: {{ .Values.service.externalPort2 }} + targetPort: {{ .Values.service.internalPort2 }} + name: {{ .Values.service.name }}2 + - port: {{ .Values.service.externalPort3 }} + targetPort: {{ .Values.service.internalPort3 }} + name: {{ .Values.service.name }}3 + - port: {{ .Values.service.externalPort4 }} + targetPort: {{ .Values.service.internalPort4 }} + name: {{ .Values.service.name }}4 + - port: {{ .Values.service.externalPort5 }} + targetPort: {{ .Values.service.internalPort5 }} + name: {{ .Values.service.name }}5 + {{- end}} + selector: + app: {{ include "common.name" . }} + release: {{ .Release.Name }}
\ No newline at end of file diff --git a/kubernetes/so/values.yaml b/kubernetes/so/values.yaml new file mode 100644 index 0000000000..4700bb64e5 --- /dev/null +++ b/kubernetes/so/values.yaml @@ -0,0 +1,88 @@ +# Default values for so. +# This is a YAML-formatted file. +# Declare variables to be passed into your templates. +global: # global defaults + nodePortPrefix: 302 + repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ== + readinessRepository: oomk8s + readinessImage: readiness-check:1.0.0 + loggingRepository: docker.elastic.co + loggingImage: beats/filebeat:5.5.0 + +subChartsOnly: + enabled: true + +# application image +repository: nexus3.onap.org:10001 +image: openecomp/mso:1.2-STAGING-latest +pullPolicy: Always + +# flag to enable debugging - application support required +debugEnabled: false + +# application configuration +config: + # message router configuration + dmaapTopic: "AUTO" + # openstack configuration + openStackUserName: "vnf_user" + openStackRegion: "RegionOne" + openStackKeyStoneUrl: "http://1.2.3.4:5000" + openStackServiceTenantName: "service" + openStackEncryptedPasswordHere: "c124921a3a0efbe579782cde8227681e" + + +# default number of instances +replicaCount: 1 + +nodeSelector: {} + +affinity: {} + +# probe configuration parameters +liveness: + initialDelaySeconds: 10 + periodSeconds: 10 + # necessary to disable liveness probe when setting breakpoints + # in debugger so K8s doesn't restart unresponsive container + enabled: true + +readiness: + initialDelaySeconds: 10 + periodSeconds: 10 + +service: + type: NodePort + name: so + externalPort: 23 + internalPort: 8080 + externalPort2: 25 + internalPort2: 3904 + externalPort3: 24 + internalPort3: 3905 + externalPort4: 22 + internalPort4: 9990 + externalPort5: 50 + internalPort5: 8787 + +ingress: + enabled: false + +resources: {} + # We usually recommend not to specify default resources and to leave this as a conscious + # choice for the user. This also increases chances charts run on environments with little + # resources, such as Minikube. If you do want to specify resources, uncomment the following + # lines, adjust them as necessary, and remove the curly braces after 'resources:'. + # + # Example: + # Configure resource requests and limits + # ref: http://kubernetes.io/docs/user-guide/compute-resources/ + # Minimum memory for development is 2 CPU cores and 4GB memory + # Minimum memory for production is 4 CPU cores and 8GB memory +#resources: +# limits: +# cpu: 2 +# memory: 4Gi +# requests: +# cpu: 2 +# memory: 4Gi diff --git a/kubernetes/uui/templates/all-services.yaml b/kubernetes/uui/templates/all-services.yaml index 7b23b36808..d66a22fd2e 100644 --- a/kubernetes/uui/templates/all-services.yaml +++ b/kubernetes/uui/templates/all-services.yaml @@ -5,13 +5,14 @@ metadata: labels: app: uui name: uui - namespace: "{{ .Values.nsPrefix }}-uui" + namespace: "{{ .Values.nsPrefix }}" annotations: msb.onap.org/service-info: '[ { "serviceName": "usecaseui-gui", "version": "v1", - "url": "/iui/usecaseui", + "url": "/usecase-ui", + "path":"/iui/usecaseui", "protocol": "UI" "port": "8080", "visualRange":"1|0" @@ -34,7 +35,7 @@ metadata: labels: app: uui-server name: uui-server - namespace: "{{ .Values.nsPrefix }}-uui" + namespace: "{{ .Values.nsPrefix }}" annotations: msb.onap.org/service-info: '[ { diff --git a/kubernetes/uui/templates/uui-deployment.yaml b/kubernetes/uui/templates/uui-deployment.yaml index db7ac1a9da..668574918b 100644 --- a/kubernetes/uui/templates/uui-deployment.yaml +++ b/kubernetes/uui/templates/uui-deployment.yaml @@ -5,8 +5,9 @@ metadata: labels: app: uui name: uui - namespace: "{{ .Values.nsPrefix }}-uui" + namespace: "{{ .Values.nsPrefix }}" spec: + replicas: {{ .Values.uuiReplicas }} selector: matchLabels: app: uui @@ -26,7 +27,7 @@ spec: name: uui env: - name: MSB_ADDR - value: {{ .Values.msbaddr }} + value: {{ tpl .Values.msbaddr . }} ports: - containerPort: 8080 readinessProbe: @@ -36,4 +37,4 @@ spec: periodSeconds: 10 imagePullSecrets: - name: "{{ .Values.nsPrefix }}-docker-registry-key" -#{{ end }}
\ No newline at end of file +#{{ end }} diff --git a/kubernetes/uui/templates/uui-server-deployment.yaml b/kubernetes/uui/templates/uui-server-deployment.yaml index 2462a69be1..01c87e9450 100644 --- a/kubernetes/uui/templates/uui-server-deployment.yaml +++ b/kubernetes/uui/templates/uui-server-deployment.yaml @@ -5,8 +5,9 @@ metadata: labels: app: uui-server name: uui-server - namespace: "{{ .Values.nsPrefix }}-uui" + namespace: "{{ .Values.nsPrefix }}" spec: + replicas: {{ .Values.uuiServerReplicas }} selector: matchLabels: app: uui-server @@ -22,9 +23,9 @@ spec: name: uui-server env: - name: MSB_ADDR - value: {{ .Values.msbaddr }} + value: {{tpl .Values.msbaddr .}} - name: MR_ADDR - value: {{ .Values.mraddr }} + value: {{tpl .Values.mraddr .}} ports: - containerPort: 8082 readinessProbe: @@ -34,4 +35,4 @@ spec: periodSeconds: 10 imagePullSecrets: - name: "{{ .Values.nsPrefix }}-docker-registry-key" -#{{ end }}
\ No newline at end of file +#{{ end }} diff --git a/kubernetes/uui/values.yaml b/kubernetes/uui/values.yaml index 361c68a196..391e338b67 100644 --- a/kubernetes/uui/values.yaml +++ b/kubernetes/uui/values.yaml @@ -1,8 +1,10 @@ nsPrefix: onap pullPolicy: Always uuiPortPrefix: 303 -msbaddr: msb-iag.onap-msb:80 -mraddr: dmaap.onap-message-router:3904 +msbaddr: msb-iag.{{ .Values.nsPrefix }}:80 +mraddr: dmaap.{{ .Values.nsPrefix }}:3904 +uuiReplicas: 1 +uuiServerReplicas: 1 image: uuiImage: nexus3.onap.org:10001/onap/usecase-ui uuiVersion: v1.0.1 diff --git a/kubernetes/vfc/templates/all-services.yaml b/kubernetes/vfc/templates/all-services.yaml index ff9eea4587..36a8d999ac 100755 --- a/kubernetes/vfc/templates/all-services.yaml +++ b/kubernetes/vfc/templates/all-services.yaml @@ -5,7 +5,7 @@ metadata: labels: app: vfc-nslcm name: vfc-nslcm - namespace: "{{ .Values.nsPrefix }}-vfc" + namespace: "{{ .Values.nsPrefix }}" annotations: msb.onap.org/service-info: '[ { @@ -34,7 +34,7 @@ metadata: labels: app: vfc-resmgr name: vfc-resmgr - namespace: "{{ .Values.nsPrefix }}-vfc" + namespace: "{{ .Values.nsPrefix }}" annotations: msb.onap.org/service-info: '[ { @@ -63,7 +63,7 @@ metadata: labels: app: vfc-gvnfmdriver name: vfc-gvnfmdriver - namespace: "{{ .Values.nsPrefix }}-vfc" + namespace: "{{ .Values.nsPrefix }}" annotations: msb.onap.org/service-info: '[ { @@ -92,7 +92,7 @@ metadata: labels: app: vfc-ztevnfmdriver name: vfc-ztevnfmdriver - namespace: "{{ .Values.nsPrefix }}-vfc" + namespace: "{{ .Values.nsPrefix }}" annotations: msb.onap.org/service-info: '[ { @@ -121,7 +121,7 @@ metadata: labels: app: vfc-nokiavnfmdriver name: vfc-nokiavnfmdriver - namespace: "{{ .Values.nsPrefix }}-vfc" + namespace: "{{ .Values.nsPrefix }}" annotations: msb.onap.org/service-info: '[ { @@ -150,7 +150,7 @@ metadata: labels: app: vfc-hwvnfmdriver name: vfc-hwvnfmdriver - namespace: "{{ .Values.nsPrefix }}-vfc" + namespace: "{{ .Values.nsPrefix }}" annotations: msb.onap.org/service-info: '[ { @@ -179,7 +179,7 @@ metadata: labels: app: vfc-ztesdncdriver name: vfc-ztesdncdriver - namespace: "{{ .Values.nsPrefix }}-vfc" + namespace: "{{ .Values.nsPrefix }}" annotations: msb.onap.org/service-info: '[ { @@ -208,7 +208,7 @@ metadata: labels: app: vfc-jujudriver name: vfc-jujudriver - namespace: "{{ .Values.nsPrefix }}-vfc" + namespace: "{{ .Values.nsPrefix }}" annotations: msb.onap.org/service-info: '[ { @@ -237,7 +237,7 @@ metadata: labels: app: vfc-vnflcm name: vfc-vnflcm - namespace: "{{ .Values.nsPrefix }}-vfc" + namespace: "{{ .Values.nsPrefix }}" annotations: msb.onap.org/service-info: '[ { @@ -266,7 +266,7 @@ metadata: labels: app: vfc-vnfres name: vfc-vnfres - namespace: "{{ .Values.nsPrefix }}-vfc" + namespace: "{{ .Values.nsPrefix }}" annotations: msb.onap.org/service-info: '[ { @@ -295,7 +295,7 @@ metadata: labels: app: vfc-vnfmgr name: vfc-vnfmgr - namespace: "{{ .Values.nsPrefix }}-vfc" + namespace: "{{ .Values.nsPrefix }}" annotations: msb.onap.org/service-info: '[ { @@ -324,7 +324,7 @@ metadata: labels: app: vfc-emsdriver name: vfc-emsdriver - namespace: "{{ .Values.nsPrefix }}-vfc" + namespace: "{{ .Values.nsPrefix }}" annotations: msb.onap.org/service-info: '[ { @@ -353,7 +353,7 @@ metadata: labels: app: vfc-workflow name: vfc-workflow - namespace: "{{ .Values.nsPrefix }}-vfc" + namespace: "{{ .Values.nsPrefix }}" annotations: msb.onap.org/service-info: '[ { @@ -382,7 +382,7 @@ metadata: labels: app: vfc-workflowengineactiviti name: vfc-workflowengineactiviti - namespace: "{{ .Values.nsPrefix }}-vfc" + namespace: "{{ .Values.nsPrefix }}" annotations: msb.onap.org/service-info: '[ { @@ -411,7 +411,7 @@ metadata: labels: app: vfc-catalog name: vfc-catalog - namespace: "{{ .Values.nsPrefix }}-vfc" + namespace: "{{ .Values.nsPrefix }}" annotations: msb.onap.org/service-info: '[ { diff --git a/kubernetes/vfc/templates/vfc-catalog-deployment.yaml b/kubernetes/vfc/templates/vfc-catalog-deployment.yaml index 1782e24807..0384fefa76 100755 --- a/kubernetes/vfc/templates/vfc-catalog-deployment.yaml +++ b/kubernetes/vfc/templates/vfc-catalog-deployment.yaml @@ -3,7 +3,7 @@ apiVersion: extensions/v1beta1 kind: Deployment metadata: name: vfc-catalog - namespace: "{{ .Values.nsPrefix }}-{{ .Chart.Name }}" + namespace: "{{ .Values.nsPrefix }}" spec: replicas: {{ .Values.catalog.replicas }} selector: @@ -22,7 +22,7 @@ spec: name: "vfc-catalog" env: - name: MSB_ADDR - value: {{ .Values.msbaddr }} + value: {{ tpl .Values.msbaddr . }} ports: - containerPort: {{ .Values.catalog.port }} readinessProbe: @@ -33,4 +33,4 @@ spec: imagePullPolicy: "{{ .Values.pullPolicy }}" imagePullSecrets: - name: "{{ .Values.nsPrefix }}-docker-registry-key" -#{{ end }}
\ No newline at end of file +#{{ end }} diff --git a/kubernetes/vfc/templates/vfc-emsdriver-deployment.yaml b/kubernetes/vfc/templates/vfc-emsdriver-deployment.yaml index 6adc0dc833..548bbe7413 100755 --- a/kubernetes/vfc/templates/vfc-emsdriver-deployment.yaml +++ b/kubernetes/vfc/templates/vfc-emsdriver-deployment.yaml @@ -3,7 +3,7 @@ apiVersion: extensions/v1beta1 kind: Deployment metadata: name: vfc-emsdriver - namespace: "{{ .Values.nsPrefix }}-{{ .Chart.Name }}" + namespace: "{{ .Values.nsPrefix }}" spec: replicas: {{ .Values.emsdriver.replicas }} selector: @@ -22,7 +22,7 @@ spec: name: "vfc-emsdriver" env: - name: MSB_ADDR - value: {{ .Values.msbaddr }} + value: {{ tpl .Values.msbaddr . }} ports: - containerPort: {{ .Values.emsdriver.port }} readinessProbe: @@ -33,4 +33,4 @@ spec: imagePullPolicy: "{{ .Values.pullPolicy }}" imagePullSecrets: - name: "{{ .Values.nsPrefix }}-docker-registry-key" -#{{ end }}
\ No newline at end of file +#{{ end }} diff --git a/kubernetes/vfc/templates/vfc-gvnfmdriver-deployment.yaml b/kubernetes/vfc/templates/vfc-gvnfmdriver-deployment.yaml index 18558afada..02093ce00e 100755 --- a/kubernetes/vfc/templates/vfc-gvnfmdriver-deployment.yaml +++ b/kubernetes/vfc/templates/vfc-gvnfmdriver-deployment.yaml @@ -3,7 +3,7 @@ apiVersion: extensions/v1beta1 kind: Deployment metadata: name: vfc-gvnfmdriver - namespace: "{{ .Values.nsPrefix }}-{{ .Chart.Name }}" + namespace: "{{ .Values.nsPrefix }}" spec: replicas: {{ .Values.gvnfmdriver.replicas }} selector: @@ -22,7 +22,7 @@ spec: name: "vfc-gvnfmdriver" env: - name: MSB_ADDR - value: {{ .Values.msbaddr }} + value: {{ tpl .Values.msbaddr . }} ports: - containerPort: {{ .Values.gvnfmdriver.port }} readinessProbe: @@ -33,4 +33,4 @@ spec: imagePullPolicy: "{{ .Values.pullPolicy }}" imagePullSecrets: - name: "{{ .Values.nsPrefix }}-docker-registry-key" -#{{ end }}
\ No newline at end of file +#{{ end }} diff --git a/kubernetes/vfc/templates/vfc-hwvnfmdriver-deployment.yaml b/kubernetes/vfc/templates/vfc-hwvnfmdriver-deployment.yaml index e9d3282ef7..9b73626e74 100755 --- a/kubernetes/vfc/templates/vfc-hwvnfmdriver-deployment.yaml +++ b/kubernetes/vfc/templates/vfc-hwvnfmdriver-deployment.yaml @@ -3,7 +3,7 @@ apiVersion: extensions/v1beta1 kind: Deployment metadata: name: vfc-hwvnfmdriver - namespace: "{{ .Values.nsPrefix }}-{{ .Chart.Name }}" + namespace: "{{ .Values.nsPrefix }}" spec: replicas: {{ .Values.hwvnfmdriver.replicas }} selector: @@ -22,7 +22,7 @@ spec: name: "vfc-hwvnfmdriver" env: - name: MSB_ADDR - value: {{ .Values.msbaddr }} + value: {{ tpl .Values.msbaddr . }} ports: - containerPort: {{ .Values.hwvnfmdriver.port }} readinessProbe: @@ -33,4 +33,4 @@ spec: imagePullPolicy: "{{ .Values.pullPolicy }}" imagePullSecrets: - name: "{{ .Values.nsPrefix }}-docker-registry-key" -#{{ end }}
\ No newline at end of file +#{{ end }} diff --git a/kubernetes/vfc/templates/vfc-jujudriver-deployment.yaml b/kubernetes/vfc/templates/vfc-jujudriver-deployment.yaml index 28a3c1e6b6..127612bed2 100755 --- a/kubernetes/vfc/templates/vfc-jujudriver-deployment.yaml +++ b/kubernetes/vfc/templates/vfc-jujudriver-deployment.yaml @@ -3,7 +3,7 @@ apiVersion: extensions/v1beta1 kind: Deployment metadata: name: vfc-jujudriver - namespace: "{{ .Values.nsPrefix }}-{{ .Chart.Name }}" + namespace: "{{ .Values.nsPrefix }}" spec: replicas: {{ .Values.jujudriver.replicas }} selector: @@ -22,7 +22,7 @@ spec: name: "vfc-jujudriver" env: - name: MSB_ADDR - value: {{ .Values.msbaddr }} + value: {{ tpl .Values.msbaddr . }} ports: - containerPort: {{ .Values.jujudriver.port }} readinessProbe: @@ -33,4 +33,4 @@ spec: imagePullPolicy: "{{ .Values.pullPolicy }}" imagePullSecrets: - name: "{{ .Values.nsPrefix }}-docker-registry-key" -#{{ end }}
\ No newline at end of file +#{{ end }} diff --git a/kubernetes/vfc/templates/vfc-nokiavnfmdriver-deployment.yaml b/kubernetes/vfc/templates/vfc-nokiavnfmdriver-deployment.yaml index 9a648ca203..4925d1c121 100755 --- a/kubernetes/vfc/templates/vfc-nokiavnfmdriver-deployment.yaml +++ b/kubernetes/vfc/templates/vfc-nokiavnfmdriver-deployment.yaml @@ -3,7 +3,7 @@ apiVersion: extensions/v1beta1 kind: Deployment metadata: name: vfc-nokiavnfmdriver - namespace: "{{ .Values.nsPrefix }}-{{ .Chart.Name }}" + namespace: "{{ .Values.nsPrefix }}" spec: replicas: {{ .Values.nokiavnfmdriver.replicas }} selector: @@ -22,7 +22,7 @@ spec: name: "vfc-nokiavnfmdriver" env: - name: MSB_ADDR - value: {{ .Values.msbaddr }} + value: {{ tpl .Values.msbaddr . }} ports: - containerPort: {{ .Values.nokiavnfmdriver.port }} readinessProbe: @@ -33,4 +33,4 @@ spec: imagePullPolicy: "{{ .Values.pullPolicy }}" imagePullSecrets: - name: "{{ .Values.nsPrefix }}-docker-registry-key" -#{{ end }}
\ No newline at end of file +#{{ end }} diff --git a/kubernetes/vfc/templates/vfc-nslcm-deployment.yaml b/kubernetes/vfc/templates/vfc-nslcm-deployment.yaml index 400a680a9a..618968dd9f 100755 --- a/kubernetes/vfc/templates/vfc-nslcm-deployment.yaml +++ b/kubernetes/vfc/templates/vfc-nslcm-deployment.yaml @@ -3,7 +3,7 @@ apiVersion: extensions/v1beta1 kind: Deployment metadata: name: vfc-nslcm - namespace: "{{ .Values.nsPrefix }}-{{ .Chart.Name }}" + namespace: "{{ .Values.nsPrefix }}" spec: replicas: {{ .Values.nslcm.replicas }} selector: @@ -22,7 +22,7 @@ spec: name: "vfc-nslcm" env: - name: MSB_ADDR - value: {{ .Values.msbaddr }} + value: {{ tpl .Values.msbaddr . }} ports: - containerPort: {{ .Values.nslcm.port }} readinessProbe: @@ -33,4 +33,4 @@ spec: imagePullPolicy: "{{ .Values.pullPolicy }}" imagePullSecrets: - name: "{{ .Values.nsPrefix }}-docker-registry-key" -#{{ end }}
\ No newline at end of file +#{{ end }} diff --git a/kubernetes/vfc/templates/vfc-resmgr-deployment.yaml b/kubernetes/vfc/templates/vfc-resmgr-deployment.yaml index 2c6a895518..a6e8125a1e 100755 --- a/kubernetes/vfc/templates/vfc-resmgr-deployment.yaml +++ b/kubernetes/vfc/templates/vfc-resmgr-deployment.yaml @@ -3,7 +3,7 @@ apiVersion: extensions/v1beta1 kind: Deployment metadata: name: vfc-resmgr - namespace: "{{ .Values.nsPrefix }}-{{ .Chart.Name }}" + namespace: "{{ .Values.nsPrefix }}" spec: replicas: {{ .Values.resmgr.replicas }} selector: @@ -22,7 +22,7 @@ spec: name: "vfc-resmgr" env: - name: MSB_ADDR - value: {{ .Values.msbaddr }} + value: {{ tpl .Values.msbaddr . }} ports: - containerPort: {{ .Values.resmgr.port }} readinessProbe: @@ -33,4 +33,4 @@ spec: imagePullPolicy: "{{ .Values.pullPolicy }}" imagePullSecrets: - name: "{{ .Values.nsPrefix }}-docker-registry-key" -#{{ end }}
\ No newline at end of file +#{{ end }} diff --git a/kubernetes/vfc/templates/vfc-vnflcm-deployment.yaml b/kubernetes/vfc/templates/vfc-vnflcm-deployment.yaml index 0d8922973b..ef4793dfaf 100755 --- a/kubernetes/vfc/templates/vfc-vnflcm-deployment.yaml +++ b/kubernetes/vfc/templates/vfc-vnflcm-deployment.yaml @@ -3,7 +3,7 @@ apiVersion: extensions/v1beta1 kind: Deployment metadata: name: vfc-vnflcm - namespace: "{{ .Values.nsPrefix }}-{{ .Chart.Name }}" + namespace: "{{ .Values.nsPrefix }}" spec: replicas: {{ .Values.vnflcm.replicas }} selector: @@ -22,7 +22,7 @@ spec: name: "vfc-vnflcm" env: - name: MSB_ADDR - value: {{ .Values.msbaddr }} + value: {{ tpl .Values.msbaddr . }} ports: - containerPort: {{ .Values.vnflcm.port }} readinessProbe: @@ -33,4 +33,4 @@ spec: imagePullPolicy: "{{ .Values.pullPolicy }}" imagePullSecrets: - name: "{{ .Values.nsPrefix }}-docker-registry-key" -#{{ end }}
\ No newline at end of file +#{{ end }} diff --git a/kubernetes/vfc/templates/vfc-vnfmgr-deployment.yaml b/kubernetes/vfc/templates/vfc-vnfmgr-deployment.yaml index 566c3cabbd..e3eb750678 100755 --- a/kubernetes/vfc/templates/vfc-vnfmgr-deployment.yaml +++ b/kubernetes/vfc/templates/vfc-vnfmgr-deployment.yaml @@ -3,7 +3,7 @@ apiVersion: extensions/v1beta1 kind: Deployment metadata: name: vfc-vnfmgr - namespace: "{{ .Values.nsPrefix }}-{{ .Chart.Name }}" + namespace: "{{ .Values.nsPrefix }}" spec: replicas: {{ .Values.vnfmgr.replicas }} selector: @@ -22,7 +22,7 @@ spec: name: "vfc-vnfmgr" env: - name: MSB_ADDR - value: {{ .Values.msbaddr }} + value: {{ tpl .Values.msbaddr . }} ports: - containerPort: {{ .Values.vnfmgr.port }} readinessProbe: @@ -33,4 +33,4 @@ spec: imagePullPolicy: "{{ .Values.pullPolicy }}" imagePullSecrets: - name: "{{ .Values.nsPrefix }}-docker-registry-key" -#{{ end }}
\ No newline at end of file +#{{ end }} diff --git a/kubernetes/vfc/templates/vfc-vnfres-deployment.yaml b/kubernetes/vfc/templates/vfc-vnfres-deployment.yaml index 50b52b1a77..34f2595ccf 100755 --- a/kubernetes/vfc/templates/vfc-vnfres-deployment.yaml +++ b/kubernetes/vfc/templates/vfc-vnfres-deployment.yaml @@ -3,7 +3,7 @@ apiVersion: extensions/v1beta1 kind: Deployment metadata: name: vfc-vnfres - namespace: "{{ .Values.nsPrefix }}-{{ .Chart.Name }}" + namespace: "{{ .Values.nsPrefix }}" spec: replicas: {{ .Values.vnfres.replicas }} selector: @@ -22,7 +22,7 @@ spec: name: "vfc-vnfres" env: - name: MSB_ADDR - value: {{ .Values.msbaddr }} + value: {{ tpl .Values.msbaddr . }} ports: - containerPort: {{ .Values.vnfres.port }} readinessProbe: @@ -33,4 +33,4 @@ spec: imagePullPolicy: "{{ .Values.pullPolicy }}" imagePullSecrets: - name: "{{ .Values.nsPrefix }}-docker-registry-key" -#{{ end }}
\ No newline at end of file +#{{ end }} diff --git a/kubernetes/vfc/templates/vfc-workflow-deployment.yaml b/kubernetes/vfc/templates/vfc-workflow-deployment.yaml index f19b55fe95..c2a8205d0d 100755 --- a/kubernetes/vfc/templates/vfc-workflow-deployment.yaml +++ b/kubernetes/vfc/templates/vfc-workflow-deployment.yaml @@ -3,7 +3,7 @@ apiVersion: extensions/v1beta1 kind: Deployment metadata: name: vfc-workflow - namespace: "{{ .Values.nsPrefix }}-{{ .Chart.Name }}" + namespace: "{{ .Values.nsPrefix }}" spec: replicas: {{ .Values.workflow.replicas }} selector: @@ -28,7 +28,7 @@ spec: - name: SERVICE_PORT value: "{{ .Values.workflow.port }}" - name: OPENPALETTE_MSB_IP - value: msb-iag.{{ .Values.nsPrefix }}-msb + value: msb-iag.{{ .Values.nsPrefix }} - name: OPENPALETTE_MSB_PORT value: "80" ports: @@ -41,4 +41,4 @@ spec: imagePullPolicy: "{{ .Values.pullPolicy }}" imagePullSecrets: - name: "{{ .Values.nsPrefix }}-docker-registry-key" -#{{ end }}
\ No newline at end of file +#{{ end }} diff --git a/kubernetes/vfc/templates/vfc-workflow-engine-activity.yaml b/kubernetes/vfc/templates/vfc-workflow-engine-activity.yaml index cb18ada997..d22481526c 100755 --- a/kubernetes/vfc/templates/vfc-workflow-engine-activity.yaml +++ b/kubernetes/vfc/templates/vfc-workflow-engine-activity.yaml @@ -3,7 +3,7 @@ apiVersion: extensions/v1beta1 kind: Deployment metadata: name: vfc-workflowengineactiviti - namespace: "{{ .Values.nsPrefix }}-{{ .Chart.Name }}" + namespace: "{{ .Values.nsPrefix }}" spec: replicas: {{ .Values.workflowengineactiviti.replicas }} selector: @@ -28,7 +28,7 @@ spec: - name: SERVICE_PORT value: "{{ .Values.workflow.port }}" - name: OPENPALETTE_MSB_IP - value: msb-iag.{{ .Values.nsPrefix }}-msb + value: msb-iag.{{ .Values.nsPrefix }} - name: OPENPALETTE_MSB_PORT value: "80" ports: @@ -41,4 +41,4 @@ spec: imagePullPolicy: "{{ .Values.pullPolicy }}" imagePullSecrets: - name: "{{ .Values.nsPrefix }}-docker-registry-key" -#{{ end }}
\ No newline at end of file +#{{ end }} diff --git a/kubernetes/vfc/templates/vfc-ztesdncdriver-deployment.yaml b/kubernetes/vfc/templates/vfc-ztesdncdriver-deployment.yaml index 828e7b32b1..9eae38543c 100755 --- a/kubernetes/vfc/templates/vfc-ztesdncdriver-deployment.yaml +++ b/kubernetes/vfc/templates/vfc-ztesdncdriver-deployment.yaml @@ -3,7 +3,7 @@ apiVersion: extensions/v1beta1 kind: Deployment metadata: name: vfc-ztesdncdriver - namespace: "{{ .Values.nsPrefix }}-{{ .Chart.Name }}" + namespace: "{{ .Values.nsPrefix }}" spec: replicas: {{ .Values.ztesdncdriver.replicas }} selector: @@ -22,7 +22,7 @@ spec: name: "vfc-ztesdncdriver" env: - name: MSB_ADDR - value: {{ .Values.msbaddr }} + value: {{ tpl .Values.msbaddr . }} ports: - containerPort: {{ .Values.ztesdncdriver.port }} readinessProbe: @@ -33,4 +33,4 @@ spec: imagePullPolicy: "{{ .Values.pullPolicy }}" imagePullSecrets: - name: "{{ .Values.nsPrefix }}-docker-registry-key" -#{{ end }}
\ No newline at end of file +#{{ end }} diff --git a/kubernetes/vfc/templates/vfc-ztevmanagerdriver-deployment.yaml b/kubernetes/vfc/templates/vfc-ztevmanagerdriver-deployment.yaml index aed359eceb..e79a27ef11 100755 --- a/kubernetes/vfc/templates/vfc-ztevmanagerdriver-deployment.yaml +++ b/kubernetes/vfc/templates/vfc-ztevmanagerdriver-deployment.yaml @@ -3,7 +3,7 @@ apiVersion: extensions/v1beta1 kind: Deployment metadata: name: vfc-ztevnfmdriver - namespace: "{{ .Values.nsPrefix }}-{{ .Chart.Name }}" + namespace: "{{ .Values.nsPrefix }}" spec: replicas: {{ .Values.ztevnfmdriver.replicas }} selector: @@ -22,7 +22,7 @@ spec: name: "vfc-ztevnfmdriver" env: - name: MSB_ADDR - value: {{ .Values.msbaddr }} + value: {{ tpl .Values.msbaddr . }} ports: - containerPort: {{ .Values.ztevnfmdriver.port }} readinessProbe: @@ -33,4 +33,4 @@ spec: imagePullPolicy: "{{ .Values.pullPolicy }}" imagePullSecrets: - name: "{{ .Values.nsPrefix }}-docker-registry-key" -#{{ end }}
\ No newline at end of file +#{{ end }} diff --git a/kubernetes/vfc/values.yaml b/kubernetes/vfc/values.yaml index 46aa9b71f8..13fb94f638 100644 --- a/kubernetes/vfc/values.yaml +++ b/kubernetes/vfc/values.yaml @@ -1,6 +1,6 @@ nsPrefix: onap pullPolicy: IfNotPresent -msbaddr: msb-iag.onap-msb:80 +msbaddr: msb-iag.{{ .Values.nsPrefix }}:80 nslcm: image: nexus3.onap.org:10001/onap/vfc/nslcm:v1.0.2 port: 8403 @@ -75,4 +75,4 @@ catalog: image: nexus3.onap.org:10001/onap/vfc/catalog:v1.0.2 port: 8806 nodePort: 30806 - replicas: 1
\ No newline at end of file + replicas: 1 diff --git a/kubernetes/config/docker/init/src/config/vid/vid/lf_config/vid-my.cnf b/kubernetes/vid/resources/config/lf_config/vid-my.cnf index 472bf4698e..472bf4698e 100755 --- a/kubernetes/config/docker/init/src/config/vid/vid/lf_config/vid-my.cnf +++ b/kubernetes/vid/resources/config/lf_config/vid-my.cnf diff --git a/kubernetes/config/docker/init/src/config/vid/vid/lf_config/vid-pre-init.sql b/kubernetes/vid/resources/config/lf_config/vid-pre-init.sql index 57b797d03c..57b797d03c 100755 --- a/kubernetes/config/docker/init/src/config/vid/vid/lf_config/vid-pre-init.sql +++ b/kubernetes/vid/resources/config/lf_config/vid-pre-init.sql diff --git a/kubernetes/vid/resources/config/log/filebeat/filebeat.yml b/kubernetes/vid/resources/config/log/filebeat/filebeat.yml new file mode 100644 index 0000000000..89c6932577 --- /dev/null +++ b/kubernetes/vid/resources/config/log/filebeat/filebeat.yml @@ -0,0 +1,41 @@ +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}}: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 diff --git a/kubernetes/config/docker/init/src/config/log/vid/logback.xml b/kubernetes/vid/resources/config/log/vid/logback.xml index 49db781b3e..49db781b3e 100644 --- a/kubernetes/config/docker/init/src/config/log/vid/logback.xml +++ b/kubernetes/vid/resources/config/log/vid/logback.xml diff --git a/kubernetes/vid/templates/all-services.yaml b/kubernetes/vid/templates/all-services.yaml index 1aa2bb0a0b..cd22b7d095 100644 --- a/kubernetes/vid/templates/all-services.yaml +++ b/kubernetes/vid/templates/all-services.yaml @@ -3,7 +3,7 @@ apiVersion: v1 kind: Service metadata: name: vid-mariadb - namespace: "{{ .Values.nsPrefix }}-vid" + namespace: "{{ .Values.nsPrefix }}" spec: ports: - name: vid-mariadb @@ -20,7 +20,7 @@ metadata: labels: app: vid-server name: vid-server - namespace: "{{ .Values.nsPrefix }}-vid" + namespace: "{{ .Values.nsPrefix }}" spec: ports: - name: vid-server diff --git a/kubernetes/vid/templates/vid-lfconfig-configmap.yaml b/kubernetes/vid/templates/vid-lfconfig-configmap.yaml new file mode 100644 index 0000000000..1743872ef8 --- /dev/null +++ b/kubernetes/vid/templates/vid-lfconfig-configmap.yaml @@ -0,0 +1,9 @@ +#{{ if not .Values.disableVidVidMariadb }} +apiVersion: v1 +kind: ConfigMap +metadata: + name: vid-lfconfig-configmap + namespace: {{ .Values.nsPrefix }} +data: +{{ tpl (.Files.Glob "resources/config/lf_config/*").AsConfig . | indent 2 }} +#{{ end }} diff --git a/kubernetes/vid/templates/vid-log-configmap.yaml b/kubernetes/vid/templates/vid-log-configmap.yaml new file mode 100644 index 0000000000..896f47dded --- /dev/null +++ b/kubernetes/vid/templates/vid-log-configmap.yaml @@ -0,0 +1,17 @@ +#{{ if not .Values.disableVidVidServer }} +apiVersion: v1 +kind: ConfigMap +metadata: + name: vid-log-configmap + namespace: {{ .Values.nsPrefix }} +data: +{{ tpl (.Files.Glob "resources/config/log/vid/*").AsConfig . | indent 2 }} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: vid-filebeat-configmap + namespace: {{ .Values.nsPrefix }} +data: +{{ tpl (.Files.Glob "resources/config/log/filebeat/*").AsConfig . | indent 2 }} +#{{ end }} diff --git a/kubernetes/vid/templates/vid-mariadb-deployment.yaml b/kubernetes/vid/templates/vid-mariadb-deployment.yaml index 55ef5da872..41bfb90b74 100644 --- a/kubernetes/vid/templates/vid-mariadb-deployment.yaml +++ b/kubernetes/vid/templates/vid-mariadb-deployment.yaml @@ -5,8 +5,9 @@ metadata: labels: app: vid-mariadb name: vid-mariadb - namespace: "{{ .Values.nsPrefix }}-vid" + namespace: "{{ .Values.nsPrefix }}" spec: + replicas: {{ .Values.vidMariaDbReplicas }} selector: matchLabels: app: vid-mariadb @@ -36,9 +37,11 @@ spec: - 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: @@ -53,12 +56,15 @@ spec: - 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 }} diff --git a/kubernetes/vid/templates/vid-pv-pvc.yaml b/kubernetes/vid/templates/vid-pv-pvc.yaml index f513a87354..df8d99764f 100644 --- a/kubernetes/vid/templates/vid-pv-pvc.yaml +++ b/kubernetes/vid/templates/vid-pv-pvc.yaml @@ -2,10 +2,10 @@ apiVersion: v1 kind: PersistentVolume metadata: - name: "{{ .Values.nsPrefix }}-vid-db" - namespace: "{{ .Values.nsPrefix }}-vid" + name: "{{ .Values.nsPrefix }}-vid" + namespace: "{{ .Values.nsPrefix }}" labels: - name: "{{ .Values.nsPrefix }}-vid-db" + name: "{{ .Values.nsPrefix }}-vid" spec: capacity: storage: 2Gi @@ -13,13 +13,13 @@ spec: - ReadWriteMany persistentVolumeReclaimPolicy: Retain hostPath: - path: /dockerdata-nfs/{{ .Values.nsPrefix }}/vid/mariadb/data + path: {{ .Values.dataRootDir }}/{{ .Values.nsPrefix }}/vid/mariadb/data --- kind: PersistentVolumeClaim apiVersion: v1 metadata: name: vid-db - namespace: "{{ .Values.nsPrefix }}-vid" + namespace: "{{ .Values.nsPrefix }}" spec: accessModes: - ReadWriteMany @@ -28,5 +28,5 @@ spec: storage: 2Gi selector: matchLabels: - name: "{{ .Values.nsPrefix }}-vid-db" -#{{ end }}
\ No newline at end of file + name: "{{ .Values.nsPrefix }}-vid" +#{{ end }} diff --git a/kubernetes/vid/templates/vid-server-deployment.yaml b/kubernetes/vid/templates/vid-server-deployment.yaml index 832fdeb93c..a0569abc93 100644 --- a/kubernetes/vid/templates/vid-server-deployment.yaml +++ b/kubernetes/vid/templates/vid-server-deployment.yaml @@ -5,8 +5,9 @@ metadata: labels: app: vid-server name: vid-server - namespace: "{{ .Values.nsPrefix }}-vid" + namespace: "{{ .Values.nsPrefix }}" spec: + replicas: {{ .Values.vidServerReplicas }} selector: matchLabels: app: vid-server @@ -34,19 +35,19 @@ spec: containers: - env: - name: ASDC_CLIENT_REST_HOST - value: sdc-be.{{ .Values.nsPrefix }}-sdc + value: sdc-be.{{ .Values.nsPrefix }} - name: ASDC_CLIENT_REST_AUTH value: Basic dmlkOktwOGJKNFNYc3pNMFdYbGhhazNlSGxjc2UyZ0F3ODR2YW9HR21KdlV5MlU= - name: ASDC_CLIENT_REST_PORT value: "8080" - name: VID_AAI_HOST - value: aai-service.{{ .Values.nsPrefix }}-aai + value: aai-service.{{ .Values.nsPrefix }} - name: VID_AAI_PORT value: "8443" - name: VID_ECOMP_SHARED_CONTEXT_REST_URL - value: http://portalapps.{{ .Values.nsPrefix }}-portal:8989/ONAPPORTAL/context + value: http://portalapps.{{ .Values.nsPrefix }}:8989/ONAPPORTAL/context - name: VID_MSO_SERVER_URL - value: http://mso.{{ .Values.nsPrefix }}-mso:8080 + value: http://mso.{{ .Values.nsPrefix }}:8080 - name: VID_MSO_PASS value: OBF:1ih71i271vny1yf41ymf1ylz1yf21vn41hzj1icz - name: MSO_DME2_SERVER_URL @@ -54,13 +55,13 @@ spec: - name: MSO_DME2_ENABLED value: "false" - name: VID_ECOMP_REDIRECT_URL - value: http://portalapps.{{ .Values.nsPrefix }}-portal:8989/ONAPPORTAL/login.htm + value: http://portalapps.{{ .Values.nsPrefix }}:8989/ONAPPORTAL/login.htm - name: VID_ECOMP_REST_URL - value: http://portalapps.{{ .Values.nsPrefix }}-portal:8989/ONAPPORTAL/auxapi + value: http://portalapps.{{ .Values.nsPrefix }}:8989/ONAPPORTAL/auxapi - name: VID_CONTACT_US_LINK value: https://todo_contact_us_link.com - name: VID_UEB_URL_LIST - value: dmaap.{{ .Values.nsPrefix }}-message-router + value: dmaap.{{ .Values.nsPrefix }} - name: VID_MYSQL_HOST value: vid-mariadb - name: VID_MYSQL_PORT @@ -73,7 +74,7 @@ spec: value: Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U - name: VID_MYSQL_MAXCONNECTIONS value: "5" - image: {{ .Values.image.vid }} + image: {{ .Values.image.vid }} imagePullPolicy: {{ .Values.pullPolicy }} name: vid-server lifecycle: @@ -90,6 +91,7 @@ spec: name: vid-logs - mountPath: /tmp/logback.xml name: vid-logback + subPath: logback.xml readinessProbe: tcpSocket: port: 8080 @@ -101,6 +103,7 @@ spec: 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 @@ -110,15 +113,15 @@ spec: 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 }} diff --git a/kubernetes/vid/values.yaml b/kubernetes/vid/values.yaml index 9b1748f507..eef104dea3 100644 --- a/kubernetes/vid/values.yaml +++ b/kubernetes/vid/values.yaml @@ -1,8 +1,11 @@ nsPrefix: onap pullPolicy: Always nodePortPrefix: 302 +dataRootDir: /dockerdata-nfs +vidMariaDbReplicas: 1 +vidServerReplicas: 1 image: - readiness: oomk8s/readiness-check:1.0.0 + readiness: oomk8s/readiness-check:1.1.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 diff --git a/kubernetes/vnfsdk/templates/all-services.yaml b/kubernetes/vnfsdk/templates/all-services.yaml index c78dab8193..759e26dace 100644 --- a/kubernetes/vnfsdk/templates/all-services.yaml +++ b/kubernetes/vnfsdk/templates/all-services.yaml @@ -3,7 +3,7 @@ apiVersion: v1 kind: Service metadata: name: postgres - namespace: {{ .Values.nsPrefix }}-vnfsdk + namespace: {{ .Values.nsPrefix }} labels: app: postgres spec: @@ -22,7 +22,7 @@ metadata: labels: app: refrepo name: refrepo - namespace: {{ .Values.nsPrefix }}-vnfsdk + namespace: {{ .Values.nsPrefix }} spec: ports: - name: "refrepo-port" diff --git a/kubernetes/vnfsdk/templates/postgres-deployment.yaml b/kubernetes/vnfsdk/templates/postgres-deployment.yaml index cdc2ba9572..d0002662c6 100644 --- a/kubernetes/vnfsdk/templates/postgres-deployment.yaml +++ b/kubernetes/vnfsdk/templates/postgres-deployment.yaml @@ -2,8 +2,8 @@ apiVersion: extensions/v1beta1 kind: Deployment metadata: - name: postgres - namespace: {{ .Values.nsPrefix }}-vnfsdk + name: vnfsdk-postgres + namespace: {{ .Values.nsPrefix }} spec: replicas: 1 selector: @@ -13,7 +13,7 @@ spec: metadata: labels: app: postgres - name: postgres + name: vnfsdk-postgres spec: hostname: postgres containers: @@ -23,4 +23,4 @@ spec: name: "postgres" imagePullSecrets: - name: {{ .Values.nsPrefix }}-docker-registry-key -#{{ end }}
\ No newline at end of file +#{{ end }} diff --git a/kubernetes/vnfsdk/templates/refrepo-deployment.yaml b/kubernetes/vnfsdk/templates/refrepo-deployment.yaml index 0a56c740c1..ba13292f0f 100644 --- a/kubernetes/vnfsdk/templates/refrepo-deployment.yaml +++ b/kubernetes/vnfsdk/templates/refrepo-deployment.yaml @@ -4,8 +4,8 @@ kind: Deployment metadata: labels: app: refrepo - name: refrepo - namespace: "{{ .Values.nsPrefix }}-vnfsdk" + name: vnfsdk-refrepo + namespace: "{{ .Values.nsPrefix }}" spec: selector: matchLabels: @@ -14,7 +14,7 @@ spec: metadata: labels: app: refrepo - name: refrepo + name: vnfsdk-refrepo spec: initContainers: - command: diff --git a/kubernetes/vnfsdk/values.yaml b/kubernetes/vnfsdk/values.yaml index e445ef6232..386c61ee11 100644 --- a/kubernetes/vnfsdk/values.yaml +++ b/kubernetes/vnfsdk/values.yaml @@ -3,7 +3,7 @@ pullPolicy: Always nodePortPrefix: 302 image: readiness: oomk8s/readiness-check - readinessVersion: 1.0.0 + readinessVersion: 1.1.0 postgresImage: nexus3.onap.org:10001/onap/refrepo/postgres postgresVersion: latest refrepoImage: nexus3.onap.org:10001/onap/refrepo |