diff options
144 files changed, 2028 insertions, 986 deletions
diff --git a/docs/Access_Rancher_server_via_web_browser.jpeg b/docs/Access_Rancher_server_via_web_browser.jpeg Binary files differnew file mode 100644 index 0000000000..103fc2731f --- /dev/null +++ b/docs/Access_Rancher_server_via_web_browser.jpeg diff --git a/docs/Add_Kubernetes_Environment_to_Rancher.png b/docs/Add_Kubernetes_Environment_to_Rancher.png Binary files differnew file mode 100644 index 0000000000..0d60f156fb --- /dev/null +++ b/docs/Add_Kubernetes_Environment_to_Rancher.png diff --git a/docs/Apply_customization_script_for_the_Rancher_VM.jpeg b/docs/Apply_customization_script_for_the_Rancher_VM.jpeg Binary files differnew file mode 100644 index 0000000000..832dda3404 --- /dev/null +++ b/docs/Apply_customization_script_for_the_Rancher_VM.jpeg diff --git a/docs/Click_create.jpeg b/docs/Click_create.jpeg Binary files differnew file mode 100644 index 0000000000..fad185674c --- /dev/null +++ b/docs/Click_create.jpeg diff --git a/docs/Click_on_CLI_and_then_click_on_Generate_Config.jpeg b/docs/Click_on_CLI_and_then_click_on_Generate_Config.jpeg Binary files differnew file mode 100644 index 0000000000..fec6a35433 --- /dev/null +++ b/docs/Click_on_CLI_and_then_click_on_Generate_Config.jpeg diff --git a/docs/Click_on_Close_button.jpeg b/docs/Click_on_Close_button.jpeg Binary files differnew file mode 100644 index 0000000000..cb02480923 --- /dev/null +++ b/docs/Click_on_Close_button.jpeg diff --git a/docs/Click_on_Copy_to_Clipboard-wait_until_you_see_a_token-do_not_copy_user+password-the_server_is_not_ready_at_that_point.jpeg b/docs/Click_on_Copy_to_Clipboard-wait_until_you_see_a_token-do_not_copy_user+password-the_server_is_not_ready_at_that_point.jpeg Binary files differnew file mode 100644 index 0000000000..bb0f60c4eb --- /dev/null +++ b/docs/Click_on_Copy_to_Clipboard-wait_until_you_see_a_token-do_not_copy_user+password-the_server_is_not_ready_at_that_point.jpeg diff --git a/docs/K8s-Assign_Floating_IP_for_external_access.jpeg b/docs/K8s-Assign_Floating_IP_for_external_access.jpeg Binary files differnew file mode 100644 index 0000000000..fe84d11707 --- /dev/null +++ b/docs/K8s-Assign_Floating_IP_for_external_access.jpeg diff --git a/docs/K8s-Key_Pair.jpeg b/docs/K8s-Key_Pair.jpeg Binary files differnew file mode 100644 index 0000000000..1e335d36a6 --- /dev/null +++ b/docs/K8s-Key_Pair.jpeg diff --git a/docs/K8s-Launch_Instance.jpeg b/docs/K8s-Launch_Instance.jpeg Binary files differnew file mode 100644 index 0000000000..7e2122c429 --- /dev/null +++ b/docs/K8s-Launch_Instance.jpeg diff --git a/docs/K8s-Launch_new_VM_instance_to_create_a_Kubernetes_single_host_or_cluster.jpeg b/docs/K8s-Launch_new_VM_instance_to_create_a_Kubernetes_single_host_or_cluster.jpeg Binary files differnew file mode 100644 index 0000000000..8d154d4a2d --- /dev/null +++ b/docs/K8s-Launch_new_VM_instance_to_create_a_Kubernetes_single_host_or_cluster.jpeg diff --git a/docs/K8s-Manage_Floating_IP_Associations.jpeg b/docs/K8s-Manage_Floating_IP_Associations.jpeg Binary files differnew file mode 100644 index 0000000000..f15e5e34c7 --- /dev/null +++ b/docs/K8s-Manage_Floating_IP_Associations.jpeg diff --git a/docs/K8s-Networking.jpeg b/docs/K8s-Networking.jpeg Binary files differnew file mode 100644 index 0000000000..ee4cafca54 --- /dev/null +++ b/docs/K8s-Networking.jpeg diff --git a/docs/K8s-Security_Group.jpeg b/docs/K8s-Security_Group.jpeg Binary files differnew file mode 100644 index 0000000000..5e852185b2 --- /dev/null +++ b/docs/K8s-Security_Group.jpeg diff --git a/docs/K8s-Select_Flavor.jpeg b/docs/K8s-Select_Flavor.jpeg Binary files differnew file mode 100644 index 0000000000..c3cf4b2c83 --- /dev/null +++ b/docs/K8s-Select_Flavor.jpeg diff --git a/docs/K8s-Select_Ubuntu_16.04_as_base_image.jpeg b/docs/K8s-Select_Ubuntu_16.04_as_base_image.jpeg Binary files differnew file mode 100644 index 0000000000..e9a03e782c --- /dev/null +++ b/docs/K8s-Select_Ubuntu_16.04_as_base_image.jpeg diff --git a/docs/Rancher-Allocate_Floating_IP.jpeg b/docs/Rancher-Allocate_Floating_IP.jpeg Binary files differnew file mode 100644 index 0000000000..9d6ff3ff95 --- /dev/null +++ b/docs/Rancher-Allocate_Floating_IP.jpeg diff --git a/docs/Rancher-Key_Pair.jpeg b/docs/Rancher-Key_Pair.jpeg Binary files differnew file mode 100644 index 0000000000..1bcb6b6eb7 --- /dev/null +++ b/docs/Rancher-Key_Pair.jpeg diff --git a/docs/Rancher-Launch_Instance.jpeg b/docs/Rancher-Launch_Instance.jpeg Binary files differnew file mode 100644 index 0000000000..38943699e6 --- /dev/null +++ b/docs/Rancher-Launch_Instance.jpeg diff --git a/docs/Rancher-Launch_new_VM_instance_to_host_the_Rancher_Server.jpeg b/docs/Rancher-Launch_new_VM_instance_to_host_the_Rancher_Server.jpeg Binary files differnew file mode 100644 index 0000000000..2b3fde3fb7 --- /dev/null +++ b/docs/Rancher-Launch_new_VM_instance_to_host_the_Rancher_Server.jpeg diff --git a/docs/Rancher-Manage_Floating_IP_Associations.jpeg b/docs/Rancher-Manage_Floating_IP_Associations.jpeg Binary files differnew file mode 100644 index 0000000000..ae062c1d39 --- /dev/null +++ b/docs/Rancher-Manage_Floating_IP_Associations.jpeg diff --git a/docs/Rancher-Networking.jpeg b/docs/Rancher-Networking.jpeg Binary files differnew file mode 100644 index 0000000000..16ef380ef5 --- /dev/null +++ b/docs/Rancher-Networking.jpeg diff --git a/docs/Rancher-Security_Groups.jpeg b/docs/Rancher-Security_Groups.jpeg Binary files differnew file mode 100644 index 0000000000..c8ff2e8d76 --- /dev/null +++ b/docs/Rancher-Security_Groups.jpeg diff --git a/docs/Rancher-Select_Flavor.jpeg b/docs/Rancher-Select_Flavor.jpeg Binary files differnew file mode 100644 index 0000000000..a3f35b53ce --- /dev/null +++ b/docs/Rancher-Select_Flavor.jpeg diff --git a/docs/Rancher-Select_Ubuntu_16.04_as_base_image.jpeg b/docs/Rancher-Select_Ubuntu_16.04_as_base_image.jpeg Binary files differnew file mode 100644 index 0000000000..b80fae4a5c --- /dev/null +++ b/docs/Rancher-Select_Ubuntu_16.04_as_base_image.jpeg diff --git a/docs/Return_to_Rancher_environment_eg_SB4_and_wait_for_services_to_complete_10-15_mins.jpeg b/docs/Return_to_Rancher_environment_eg_SB4_and_wait_for_services_to_complete_10-15_mins.jpeg Binary files differnew file mode 100644 index 0000000000..6d62b99f55 --- /dev/null +++ b/docs/Return_to_Rancher_environment_eg_SB4_and_wait_for_services_to_complete_10-15_mins.jpeg diff --git a/docs/Select_Add_Environment.png b/docs/Select_Add_Environment.png Binary files differnew file mode 100644 index 0000000000..48fffa41bd --- /dev/null +++ b/docs/Select_Add_Environment.png diff --git a/docs/and_click_on_Save_accept_defaults.jpeg b/docs/and_click_on_Save_accept_defaults.jpeg Binary files differnew file mode 100644 index 0000000000..9b57927aac --- /dev/null +++ b/docs/and_click_on_Save_accept_defaults.jpeg diff --git a/docs/index.rst b/docs/index.rst index 712802d619..340b43be67 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -14,3 +14,4 @@ OOM Documentation Repository oom_developer_guide.rst oom_cloud_setup_guide.rst release-notes.rst + oom_setup_kubernetes_rancher.rst diff --git a/docs/k8s-topology.jpg b/docs/k8s-topology.jpg Binary files differnew file mode 100644 index 0000000000..eba8e72b68 --- /dev/null +++ b/docs/k8s-topology.jpg diff --git a/docs/master_nfs_node.sh b/docs/master_nfs_node.sh new file mode 100644 index 0000000000..4a7a8dbc12 --- /dev/null +++ b/docs/master_nfs_node.sh @@ -0,0 +1,32 @@ +#!/bin/bash + +usage () { + echo "Usage:" + echo " ./$(basename $0) node1_ip node2_ip ... nodeN_ip" + exit 1 +} + +if [ "$#" -lt 1 ]; then + echo "Missing NFS slave nodes" + usage +fi + +#Install NFS kernel +sudo apt-get update +sudo apt-get install -y nfs-kernel-server + +#Create /dockerdata-nfs and set permissions +sudo mkdir -p /dockerdata-nfs +sudo chmod 777 -R /dockerdata-nfs +sudo chown nobody:nogroup /dockerdata-nfs/ + +#Update the /etc/exports +NFS_EXP="" +for i in $@; do + NFS_EXP+="$i(rw,sync,no_root_squash,no_subtree_check) " +done +echo "/dockerdata-nfs "$NFS_EXP | sudo tee -a /etc/exports + +#Restart the NFS service +sudo exportfs -a +sudo systemctl restart nfs-kernel-server diff --git a/docs/oom_cloud_setup_guide.rst b/docs/oom_cloud_setup_guide.rst index 7582a4a03d..73509669e8 100644 --- a/docs/oom_cloud_setup_guide.rst +++ b/docs/oom_cloud_setup_guide.rst @@ -12,6 +12,7 @@ .. _Setting Up Kubernetes with Rancher: https://wiki.onap.org/display/DW/ONAP+on+Kubernetes+on+Rancher .. _Setting Up Kubernetes with Kubeadm: https://wiki.onap.org/display/DW/Deploying+Kubernetes+Cluster+with+kubeadm .. _Setting Up Kubernetes with Cloudify: https://wiki.onap.org/display/DW/ONAP+on+Kubernetes+on+Cloudify +.. _ONAP on Kubernetes Wiki: https://wiki.onap.org/display/DW/ONAP+on+Kubernetes .. figure:: oomLogoV2-medium.png :align: right @@ -63,26 +64,38 @@ least three if not six nodes to ensure there is no single point of failure. ===== ===== ====== ==================== RAM HD vCores Ports ===== ===== ====== ==================== - 128GB 160GB 16 0.0.0.0/0 (all open) + 128GB 160GB 32 0.0.0.0/0 (all open) ===== ===== ====== ==================== +.. note:: + Kubernetes supports a maximum of 110 pods per node which forces one to use at + least two nodes to deploy all of ONAP although at least three are recommended + (for example 4x32GB - 8 vCores each). Subsets of ONAP may still be deployed + on a single node. + Cloud Installation ================== -#. OOM supports deployment on major public clouds. The following guides - provide instructions on how to deploy ONAP on these clouds: - - - `Microsoft Azure`_, - - `Amazon AWS`_, - - `Google GCE`_, - - `VMware VIO`_, - - IBM, and - - `Openstack`_. - -#. Alternatively, OOM can be deployed on a private set of physical hosts or VMs - (or even a combination of the two). The following guides describe how to - create a Kubernetes cluster with popular tools: - - - `Setting up Kubernetes with Rancher`_ (recommended) - - `Setting up Kubernetes with Kubeadm`_ - - `Setting up Kubernetes with Cloudify`_ +.. #. OOM supports deployment on major public clouds. The following guides +.. provide instructions on how to deploy ONAP on these clouds: +.. +.. - `Microsoft Azure`_, +.. - `Amazon AWS`_, +.. - `Google GCE`_, +.. - `VMware VIO`_, +.. - IBM, and +.. - `Openstack`_. +.. +.. #. Alternatively, OOM can be deployed on a private set of physical hosts or VMs +.. (or even a combination of the two). The following guides describe how to +.. create a Kubernetes cluster with popular tools: +.. +.. - `Setting up Kubernetes with Rancher`_ (recommended) +.. - `Setting up Kubernetes with Kubeadm`_ +.. - `Setting up Kubernetes with Cloudify`_ + +OOM can be deployed on a private set of physical hosts or VMs (or even a +combination of the two). The following guide describe the recommended method to +setup a Kubernetes cluster: :ref:`onap-on-kubernetes-with-rancher`. + +There are alternative deployment methods described on the `ONAP on Kubernetes Wiki`_ diff --git a/docs/oom_setup_kubernetes_rancher.rst b/docs/oom_setup_kubernetes_rancher.rst new file mode 100644 index 0000000000..8e55bf1b66 --- /dev/null +++ b/docs/oom_setup_kubernetes_rancher.rst @@ -0,0 +1,478 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 +.. Copyright 2018 Amdocs, Bell Canada + +.. Links +.. _HELM Best Practices Guide: https://docs.helm.sh/chart_best_practices/#requirements +.. _kubectl Cheat Sheet: https://kubernetes.io/docs/reference/kubectl/cheatsheet/ +.. _Kubernetes documentation for emptyDir: https://kubernetes.io/docs/concepts/storage/volumes/#emptydir +.. _Docker DevOps: https://wiki.onap.org/display/DW/Docker+DevOps#DockerDevOps-DockerBuild +.. _http://cd.onap.info:30223/mso/logging/debug: http://cd.onap.info:30223/mso/logging/debug +.. _Onboarding and Distributing a Vendor Software Product: https://wiki.onap.org/pages/viewpage.action?pageId=1018474 +.. _README.md: https://gerrit.onap.org/r/gitweb?p=oom.git;a=blob;f=kubernetes/README.md + +.. figure:: oomLogoV2-medium.png + :align: right + +.. _onap-on-kubernetes-with-rancher: + +ONAP on Kubernetes with Rancher +############################### + +The following instructions will step you through the installation of Kubernetes +on an OpenStack environment with Rancher. The development lab used for this +installation is the ONAP Windriver lab. + +This guide does not cover all of the steps required to setup your OpenStack +environment: e.g. OAM networks and security groups but there is a wealth of +OpenStack information on the web. + +Rancher Installation +==================== + +The following instructions describe how to create an Openstack VM running +Rancher. This node will not be used to host ONAP itself, it will be used +exclusively by Rancher. + +Launch new VM instance to host the Rancher Server +------------------------------------------------- + +.. image:: Rancher-Launch_new_VM_instance_to_host_the_Rancher_Server.jpeg + +Select Ubuntu 16.04 as base image +--------------------------------- +Select "No" on "Create New Volume" + +.. image:: Rancher-Select_Ubuntu_16.04_as_base_image.jpeg + +Select Flavor +------------- +Known issues exist if flavor is too small for Rancher. Please select a flavor +with at least 4 vCPU and 8GB ram. + +.. image:: Rancher-Select_Flavor.jpeg + +Networking +---------- + +.. image:: Rancher-Networking.jpeg + +Security Groups +--------------- + +.. image:: Rancher-Security_Groups.jpeg + +Key Pair +-------- +Use an existing key pair (e.g. onap_key), import an existing one or create a +new one to assign. + +.. image:: Rancher-Key_Pair.jpeg + +Apply customization script for the Rancher VM +--------------------------------------------- + +Click :download:`openstack-rancher.sh <openstack-rancher.sh>` to download the script. + +.. literalinclude:: openstack-rancher.sh + :language: bash + +This customization script will: + +* setup root access to the VM (comment out if you wish to disable this + capability and restrict access to ssh access only) +* install docker +* install rancher +* install kubectl +* install helm +* install nfs server + +.. note:: + The Beijing release of OOM only supports Helm 2.8.2 not the 2.7.2 shown in + the screen capture below. The supported versions of all the software components + are listed in the :ref:`cloud-setup-guide-label`. + +.. image:: Apply_customization_script_for_the_Rancher_VM.jpeg + +Launch Instance +--------------- + +.. image:: Rancher-Launch_Instance.jpeg + +Assign Floating IP for external access +-------------------------------------- + +.. image:: Rancher-Allocate_Floating_IP.jpeg + +.. image:: Rancher-Manage_Floating_IP_Associations.jpeg + +.. image:: Rancher-Launch_Instance.jpeg + +Kubernetes Installation +======================= + +Launch new VM instance(s) to create a Kubernetes single host or cluster +----------------------------------------------------------------------- + +To create a cluster: + +.. note:: + #. do not append a '-1' suffix (e.g. sb4-k8s) + #. increase count to the # of of kubernetes worker nodes you want (eg. 3) + +.. image:: K8s-Launch_new_VM_instance_to_create_a_Kubernetes_single_host_or_cluster.jpeg + +Select Ubuntu 16.04 as base image +--------------------------------- +Select "No" on "Create New Volume" + +.. image:: K8s-Select_Ubuntu_16.04_as_base_image.jpeg + +Select Flavor +------------- +The size of a Kubernetes host depends on the size of the ONAP deployment that +will be installed. + +As of the Beijing release a minimum of 3 x 32GB hosts will be needed to run a +full ONAP deployment (all components). + +If a small subset of ONAP components are being deployed for testing purposes, +then a single 16GB or 32GB host should suffice. + +.. image:: K8s-Select_Flavor.jpeg + +Networking +----------- + +.. image:: K8s-Networking.jpeg + +Security Group +--------------- + +.. image:: K8s-Security_Group.jpeg + +Key Pair +-------- +Use an existing key pair (e.g. onap_key), import an existing one or create a +new one to assign. + +.. image:: K8s-Key_Pair.jpeg + +Apply customization script for Kubernetes VM(s) +----------------------------------------------- + +Click :download:`openstack-k8s-node.sh <openstack-k8s-node.sh>` to +download the script. + +.. literalinclude:: openstack-k8s-node.sh + :language: bash + +This customization script will: + +* setup root access to the VM (comment out if you wish to disable this + capability and restrict access to ssh access only) +* install docker +* install kubectl +* install helm +* install nfs common (see configuration step here) + +.. note:: + Ensure you are using the correct versions as described in the + :ref:`cloud-setup-guide-label` + +Launch Instance +--------------- + +.. image:: K8s-Launch_Instance.jpeg + +Assign Floating IP for external access +-------------------------------------- + +.. image:: K8s-Assign_Floating_IP_for_external_access.jpeg + +.. image:: K8s-Manage_Floating_IP_Associations.jpeg + +.. image:: K8s-Launch_Instance.jpeg + +Setting up an NFS share for Multinode Kubernetes Clusters +========================================================= +The figure below illustrates a possible topology of a multinode Kubernetes +cluster. + +.. image:: k8s-topology.jpg + +One node, the Master Node, runs Rancher and Helm clients and connects to all +the Kubernetes nodes in the cluster. Kubernetes nodes, in turn, run Rancher, +Kubernetes and Tiller (Helm) agents, which receive, execute, and respond to +commands issued by the Master Node (e.g. kubectl or helm operations). Note that +the Master Node can be either a remote machine that the user can log in to or a +local machine (e.g. laptop, desktop) that has access to the Kubernetes cluster. + +Deploying applications to a Kubernetes cluster requires Kubernetes nodes to +share a common, distributed filesystem. One node in the cluster plays the role +of NFS Master (not to confuse with the Master Node that runs Rancher and Helm +clients, which is located outside the cluster), while all the other cluster +nodes play the role of NFS slaves. In the figure above, the left-most cluster +node plays the role of NFS Master (indicated by the crown symbol). To properly +set up an NFS share on Master and Slave nodes, the user can run the scripts +below. + +Click :download:`master_nfs_node.sh <master_nfs_node.sh>` to download the script. + +.. literalinclude:: master_nfs_node.sh + :language: bash + +Click :download:`slave_nfs_node.sh <slave_nfs_node.sh>` to download the script. + +.. literalinclude:: slave_nfs_node.sh + :language: bash + +The master_nfs_node.sh script runs in the NFS Master node and needs the list of +NFS Slave nodes as input, e.g.:: + + > sudo ./master_nfs_node.sh node1_ip node2_ip ... nodeN_ip + +The slave_nfs_node.sh script runs in each NFS Slave node and needs the IP of +the NFS Master node as input, e.g.:: + + > sudo ./slave_nfs_node.sh master_node_ip + +Configuration (Rancher and Kubernetes) +====================================== + +Access Rancher server via web browser +------------------------------------- +(e.g. http://10.12.6.16:8080/env/1a5/apps/stacks) + +.. image:: Access_Rancher_server_via_web_browser.jpeg + +Add Kubernetes Environment to Rancher +------------------------------------- + +1. Select “Manage Environments” + +.. image:: Add_Kubernetes_Environment_to_Rancher.png + +2. Select “Add Environment” + +.. image:: Select_Add_Environment.png + +3. Add unique name for your new Rancher environment + +4. Select the Kubernetes template + +5. Click "create" + +.. image:: Click_create.jpeg + +6. Select the new named environment (ie. SB4) from the dropdown list (top left). + +Rancher is now waiting for a Kubernetes Host to be added. + +.. image:: K8s-Assign_Floating_IP_for_external_access.jpeg + +Add Kubernetes Host +------------------- + +1. If this is the first (or only) host being added - click on the "Add a host" link + +.. image:: K8s-Assign_Floating_IP_for_external_access.jpeg + +and click on "Save" (accept defaults). + +.. image:: and_click_on_Save_accept_defaults.jpeg + +otherwise select INFRASTRUCTURE→ Hosts and click on "Add Host" + +.. image:: otherwise_select_INFRASTRUCTURE_Hosts_and_click_on_Add_Host.jpg + +2. Enter the management IP for the k8s VM (e.g. 10.0.0.4) that was just created. + +3. Click on “Copy to Clipboard” button + +4. Click on “Close” button + +.. image:: Click_on_Close_button.jpeg + +Without the 10.0.0.4 IP - the CATTLE_AGENT will be derived on the host - but it +may not be a routable IP. + +Configure Kubernetes Host +------------------------- + +1. Login to the new Kubernetes Host:: + + > ssh -i ~/oom-key.pem ubuntu@10.12.5.1 + The authenticity of host '10.12.5.172 (10.12.5.172)' can't be established. + ECDSA key fingerprint is SHA256:tqxayN58nCJKOJcWrEZzImkc0qKQHDDfUTHqk4WMcEI. + Are you sure you want to continue connecting (yes/no)? yes + Warning: Permanently added '10.12.5.172' (ECDSA) to the list of known hosts. + Welcome to Ubuntu 16.04.2 LTS (GNU/Linux 4.4.0-64-generic x86_64) + + * Documentation: https://help.ubuntu.com + * Management: https://landscape.canonical.com + * Support: https://ubuntu.com/advantage + + Get cloud support with Ubuntu Advantage Cloud Guest: + http://www.ubuntu.com/business/services/cloud + + 180 packages can be updated. + 100 updates are security updates. + + The programs included with the Ubuntu system are free software; + the exact distribution terms for each program are described in the + individual files in /usr/share/doc/*/copyright. + + Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by + applicable law. + + To run a command as administrator (user "root"), use "sudo <command>". + See "man sudo_root" for details. + + ubuntu@sb4-k8s-1:~$ + + +2. Paste Clipboard content and hit enter to install Rancher Agent:: + + ubuntu@sb4-k8s-1:~$ sudo docker run -e CATTLE_AGENT_IP="10.0.0.4“ --rm --privileged -v /var/run/docker.sock:/var/run/docker.sock -v /var/lib/rancher:/var/lib/rancher rancher/agent:v1.2.9 http://10.12.6.16:8080/v1/scripts/5D757C68BD0A2125602A:1514678400000:yKW9xHGJDLvq6drz2eDzR2mjato + Unable to find image 'rancher/agent:v1.2.9' locally + v1.2.9: Pulling From rancher/agent + b3e1c725a85f: Pull complete + 6071086409fc: Pull complete + d0ac3b234321: Pull complete + 87f567b5cf58: Pull complete + a63e24b217c4: Pull complete + d0a3f58caef0: Pull complete + 16914729cfd3: Pull complete + dc5c21984c5b: Pull complete + d7e8f9784b20: Pull complete + Digest: sha256:c21255ac4d94ffbc7b523F870F20ea5189b68Fa3d642800adb4774aab4748e66 + Status: Downloaded newer image for rancher/agent:v1.2.9 + + INFO: Running Agent Registration Process, CATTLE_URL=http://10.12.6.16:8080/v1 + INFO: Attempting to connect to: http://10.12.6.16:8080/v1 + INFO: http://10.12.6.16:8080/v1 is accessible + INFO: Inspecting host capabilities + INFO: Boot2Docker: false + INFO: Host writable: true + INFO: Token: xxxxxxxx + INFO: Running registration + INFO: Printing Environment + INFO: ENV: CATTLE_ACCESS_KEY=98B35AC484FBF820E0AD + INFO: ENV: CATTLE_AGENT_IP=10.0.9.4 + INFO: ENV: CATTLE_HOME=/var/lib/cattle + INFO: ENV: CATTLE_REGISTRATION_ACCESS_KEY=registrationToken + INFO: ENV: CATTLE_REGISTRATION_SECRET_KEY=xxxxxxx + INFO: ENV: CATTLE_SECRET_KEY=xxxxxxx + INFO: ENV: CATTLE_URL=http://10.12.6.16:8080/v1 + INFO: ENV: DETECTED_CATTLE_AGENT_IP=10.12.5.172 + INFO: ENV: RANCHER_AGENT_IMAGE=rancher/agent:v1.2.9 + INFO: Launched Rancher Agent: c27ee0f3dc4c783b0db647ea1f73c35b3843a4b8d60b96375b1a05aa77d83136 + ubuntu@sb4-k8s-1:~$ + +3. Return to Rancher environment (e.g. SB4) and wait for services to complete + (~ 10-15 mins) + +.. image:: Return_to_Rancher_environment_eg_SB4_and_wait_for_services_to_complete_10-15_mins.jpeg + +Configure kubectl and helm +========================== +In this example we are configuring kubectl and helm that have been installed +(as a convenience) onto the rancher and kubernetes hosts. Typically you would +install them both on your PC and remotely connect to the cluster. The following +procedure would remain the same. + +1. Click on CLI and then click on “Generate Config” + +.. image:: Click_on_CLI_and_then_click_on_Generate_Config.jpeg + +2. Click on “Copy to Clipboard” - wait until you see a "token" - do not copy + user+password - the server is not ready at that point + +.. image:: Click_on_Copy_to_Clipboard-wait_until_you_see_a_token-do_not_copy_user+password-the_server_is_not_ready_at_that_point.jpeg + +3. Create a .kube directory in user directory (if one does not exist):: + + ubuntu@sb4-kSs-1:~$ mkdir .kube + ubuntu@sb4-kSs-1:~$ vi .kube/config + +4. Paste contents of Clipboard into a file called “config” and save the file:: + + apiVersion: v1 + kind : Config + clusters: + - cluster: + api-version: v1 + insecure-skip-tls-verify: true + server: "https://10.12.6.16:8080/r/projects/1a7/kubernetes:6443" + name: "SB4" + contexts: + - context: + cluster: "SB4" + user: "SB4" + name: "SB4" + current-context: "SB4" + users: + - name: "SB4" + user: + token: "QmFzaWMgTlRBd01qZzBOemc)TkRrMk1UWkNOMFpDTlVFNlExcHdSa1JhVZreE5XSm1TRGhWU2t0Vk1sQjVhalZaY0dWaFVtZGFVMHQzWW1WWVJtVmpSQT09" + ~ + ~ + ~ + - INSERT -- + +5. Validate that kubectl is able to connect to the kubernetes cluster:: + + ubuntu@sb4-k8s-1:~$ kubectl config get-contexts + CURRENT NAME CLUSTER AUTHINFO NAMESPACE + * SB4 SB4 SB4 + ubuntu@sb4-kSs-1:~$ + +and show running pods:: + + ubuntu@sb4-k8s-1:~$ kubectl get pods --all-namespaces -o=wide + NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE + kube-system heapster—7Gb8cd7b5 -q7p42 1/1 Running 0 13m 10.42.213.49 sb4-k8s-1 + kube-system kube-dns-5d7bM87c9-c6f67 3/3 Running 0 13m 10.42.181.110 sb4-k8s-1 + kube-system kubernetes-dashboard-f9577fffd-kswjg 1/1 Running 0 13m 10.42.105.113 sb4-k8s-1 + kube-system monitoring-grafana-997796fcf-vg9h9 1/1 Running 0 13m 10.42,141.58 sb4-k8s-1 + kube-system monitoring-influxdb-56chd96b-hk66b 1/1 Running 0 13m 10.4Z.246.90 sb4-k8s-1 + kube-system tiller-deploy-cc96d4f6b-v29k9 1/1 Running 0 13m 10.42.147.248 sb4-k8s-1 + ubuntu@sb4-k8s-1:~$ + +6. Validate helm is running at the right version. If not, an error like this + will be displayed:: + + ubuntu@sb4-k8s-1:~$ helm list + Error: incompatible versions c1ient[v2.8.2] server[v2.6.1] + ubuntu@sb4-k8s-1:~$ + +7. Upgrade the server-side component of helm (tiller) via `helm init --upgrade`:: + + ubuntu@sb4-k8s-1:~$ helm init --upgrade + Creating /home/ubuntu/.helm + Creating /home/ubuntu/.helm/repository + Creating /home/ubuntu/.helm/repository/cache + Creating /home/ubuntu/.helm/repository/local + Creating /home/ubuntu/.helm/plugins + Creating /home/ubuntu/.helm/starters + Creating /home/ubuntu/.helm/cache/archive + Creating /home/ubuntu/.helm/repository/repositories.yaml + Adding stable repo with URL: https://kubernetes-charts.storage.googleapis.com + Adding local repo with URL: http://127.0.0.1:8879/charts + $HELM_HOME has been configured at /home/ubuntu/.helm. + + Tiller (the Helm server-side component) has been upgraded to the current version. + Happy Helming! + ubuntu@sb4-k8s-1:~$ + +ONAP Deployment via OOM +======================= +Now that kubernetes and Helm are installed and configured you can prepare to +deploy ONAP. Follow the instructions in the README.md_ or look at the official +documentation to get started: + +- :ref:`quick-start-label` - deploy ONAP on an existing cloud +- :ref:`user-guide-label` - a guide for operators of an ONAP instance + + diff --git a/docs/oom_user_guide.rst b/docs/oom_user_guide.rst index fbd3d9ea97..e63120f1c6 100644 --- a/docs/oom_user_guide.rst +++ b/docs/oom_user_guide.rst @@ -75,8 +75,8 @@ Install Helm ~~~~~~~~~~~~ Helm is used by OOM for package and configuration management. To install Helm, enter the following:: - > wget http://storage.googleapis.com/kubernetes-helm/helm-v2.7.2-linux-amd64.tar.gz - > tar -zxvf helm-v2.7.2-linux-amd64.tar.gz + > wget http://storage.googleapis.com/kubernetes-helm/helm-v2.8.2-linux-amd64.tar.gz + > tar -zxvf helm-v2.8.2-linux-amd64.tar.gz > sudo mv linux-amd64/helm /usr/local/bin/helm Verify the Helm version with:: diff --git a/docs/openstack-k8s-node.sh b/docs/openstack-k8s-node.sh new file mode 100644 index 0000000000..7d49ad5033 --- /dev/null +++ b/docs/openstack-k8s-node.sh @@ -0,0 +1,46 @@ +#!/bin/bash + +DOCKER_VERSION=17.03 +KUBECTL_VERSION=1.8.10 +HELM_VERSION=2.8.2 + +# setup root access - default login: oom/oom - comment out to restrict access too ssh key only +sed -i 's/PermitRootLogin.*/PermitRootLogin yes/' /etc/ssh/sshd_config +sed -i 's/PasswordAuthentication.*/PasswordAuthentication yes/' /etc/ssh/sshd_config +service sshd restart +echo -e "oom\noom" | passwd root + +apt-get update +curl https://releases.rancher.com/install-docker/$DOCKER_VERSION.sh | sh +mkdir -p /etc/systemd/system/docker.service.d/ +cat > /etc/systemd/system/docker.service.d/docker.conf << EOF +[Service] +ExecStart= +ExecStart=/usr/bin/dockerd -H fd:// --insecure-registry=nexus3.onap.org:10001 +EOF +systemctl daemon-reload +systemctl restart docker +apt-mark hold docker-ce + +IP_ADDY=`ip address |grep ens|grep inet|awk '{print $2}'| awk -F / '{print $1}'` +HOSTNAME=`hostname` + +echo "$IP_ADDY $HOSTNAME" >> /etc/hosts + +docker login -u docker -p docker nexus3.onap.org:10001 + +sudo apt-get install make -y + +sudo curl -LO https://storage.googleapis.com/kubernetes-release/release/v$KUBECTL_VERSION/bin/linux/amd64/kubectl +sudo chmod +x ./kubectl +sudo mv ./kubectl /usr/local/bin/kubectl +sudo mkdir ~/.kube +wget http://storage.googleapis.com/kubernetes-helm/helm-v${HELM_VERSION}-linux-amd64.tar.gz +sudo tar -zxvf helm-v${HELM_VERSION}-linux-amd64.tar.gz +sudo mv linux-amd64/helm /usr/local/bin/helm + +# install nfs +sudo apt-get install nfs-common -y + + +exit 0 diff --git a/docs/openstack-rancher.sh b/docs/openstack-rancher.sh new file mode 100644 index 0000000000..d51abe4d68 --- /dev/null +++ b/docs/openstack-rancher.sh @@ -0,0 +1,51 @@ +#!/bin/bash + +DOCKER_VERSION=17.03 +RANCHER_VERSION=1.6.14 +KUBECTL_VERSION=1.8.10 +HELM_VERSION=2.8.2 + +# setup root access - default login: oom/oom - comment out to restrict access too ssh key only +sed -i 's/PermitRootLogin.*/PermitRootLogin yes/' /etc/ssh/sshd_config +sed -i 's/PasswordAuthentication.*/PasswordAuthentication yes/' /etc/ssh/sshd_config +service sshd restart +echo -e "oom\noom" | passwd root + +apt-get update +curl https://releases.rancher.com/install-docker/$DOCKER_VERSION.sh | sh +mkdir -p /etc/systemd/system/docker.service.d/ +cat > /etc/systemd/system/docker.service.d/docker.conf << EOF +[Service] +ExecStart= +ExecStart=/usr/bin/dockerd -H fd:// --insecure-registry=nexus3.onap.org:10001 +EOF +systemctl daemon-reload +systemctl restart docker +apt-mark hold docker-ce + +IP_ADDY=`ip address |grep ens|grep inet|awk '{print $2}'| awk -F / '{print $1}'` +HOSTNAME=`hostname` + +echo "$IP_ADDY $HOSTNAME" >> /etc/hosts + +docker login -u docker -p docker nexus3.onap.org:10001 + +sudo apt-get install make -y + +sudo docker run -d --restart=unless-stopped -p 8080:8080 --name rancher_server rancher/server:v$RANCHER_VERSION +sudo curl -LO https://storage.googleapis.com/kubernetes-release/release/v$KUBECTL_VERSION/bin/linux/amd64/kubectl +sudo chmod +x ./kubectl +sudo mv ./kubectl /usr/local/bin/kubectl +sudo mkdir ~/.kube +wget http://storage.googleapis.com/kubernetes-helm/helm-v${HELM_VERSION}-linux-amd64.tar.gz +sudo tar -zxvf helm-v${HELM_VERSION}-linux-amd64.tar.gz +sudo mv linux-amd64/helm /usr/local/bin/helm + +# nfs server +sudo apt-get install nfs-kernel-server -y + +sudo mkdir -p /nfs_share +sudo chown nobody:nogroup /nfs_share/ + + +exit 0 diff --git a/docs/otherwise_select_INFRASTRUCTURE_Hosts_and_click_on_Add_Host.jpg b/docs/otherwise_select_INFRASTRUCTURE_Hosts_and_click_on_Add_Host.jpg Binary files differnew file mode 100644 index 0000000000..18af758a0d --- /dev/null +++ b/docs/otherwise_select_INFRASTRUCTURE_Hosts_and_click_on_Add_Host.jpg diff --git a/docs/release-notes.rst b/docs/release-notes.rst index 2573c2ca02..57a1fab997 100644 --- a/docs/release-notes.rst +++ b/docs/release-notes.rst @@ -8,66 +8,10 @@ Release Notes ============= -Version: 1.1.0 --------------- - -:Release Date: 2017-11-16 - -**New Features** - -The Amsterdam release is the first release of the ONAP Operations Manager (OOM). - -The main goal of the Amsterdam release was to: - - - Support Flexible Platform Deployment via Kubernetes of fully containerized OMAP components - on any type of environment. - - Support State Management of ONAP platform components. - - Support full production ONAP deployment and any variation of component level deployment for development. - - Platform Operations Orchestration / Control Loop Actions. - - Platform centralized logging with ELK stack. - -**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. - -**Known 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. - - - `OOM-10 <https://jira.onap.org/browse/OOM-10>`_ Platform configuration management. - - OOM ONAP Configuration Management - Handling of Secrets. - - Workaround: Automated workaround to be able to pull from protected docker repositories. - - -**Security Issues** - N/A - - -**Upgrade Notes** - - N/A - -**Deprecation Notes** - - N/A - -**Other** - - - -=========== - - Version 2.0.0 Beijing Release ----------------------------- -:Release Date: 2018-05-24 +:Release Date: 2018-06-07 Epic **** @@ -444,5 +388,66 @@ Sub-task * [`OOM-1036 <https://jira.onap.org/browse/OOM-1036>`_] - update helm from 2.7.2 to 2.8.2 wiki/rtd * [`OOM-1063 <https://jira.onap.org/browse/OOM-1063>`_] - Document Portal LoadBalancer Ingress IP Settings +**Security Notes** + +OOM code has been formally scanned during build time using NexusIQ and no Critical vulnerability was found. + +Quick Links: + - `OOM project page <https://wiki.onap.org/display/DW/ONAP+Operations+Manager+Project>`_ + + - `Passing Badge information for OOM <https://bestpractices.coreinfrastructure.org/en/projects/1631>`_ + +Version: 1.1.0 +-------------- + +:Release Date: 2017-11-16 + +**New Features** + +The Amsterdam release is the first release of the ONAP Operations Manager (OOM). + +The main goal of the Amsterdam release was to: + + - Support Flexible Platform Deployment via Kubernetes of fully containerized OMAP components - on any type of environment. + - Support State Management of ONAP platform components. + - Support full production ONAP deployment and any variation of component level deployment for development. + - Platform Operations Orchestration / Control Loop Actions. + - Platform centralized logging with ELK stack. + +**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. + +**Known 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. + + - `OOM-10 <https://jira.onap.org/browse/OOM-10>`_ Platform configuration management. + + OOM ONAP Configuration Management - Handling of Secrets. + + Workaround: Automated workaround to be able to pull from protected docker repositories. + + +**Security Issues** + N/A + + +**Upgrade Notes** + + N/A + +**Deprecation Notes** + + N/A + +**Other** + + N/A End of Release Notes diff --git a/docs/slave_nfs_node.sh b/docs/slave_nfs_node.sh new file mode 100644 index 0000000000..5cb164ccac --- /dev/null +++ b/docs/slave_nfs_node.sh @@ -0,0 +1,25 @@ +#!/bin/bash + +usage () { + echo "Usage:" + echo " ./$(basename $0) nfs_master_ip" + exit 1 +} + +if [ "$#" -ne 1 ]; then + echo "Missing NFS mater node" + usage +fi + +MASTER_IP=$1 + +#Install NFS common +sudo apt-get update +sudo apt-get install -y nfs-common + +#Create NFS directory +sudo mkdir -p /dockerdata-nfs + +#Mount the remote NFS directory to the local one +sudo mount $MASTER_IP:/dockerdata-nfs /dockerdata-nfs/ +echo "$MASTER_IP:/dockerdata-nfs /dockerdata-nfs nfs auto,nofail,noatime,nolock,intr,tcp,actimeo=1800 0 0" | sudo tee -a /etc/fstab diff --git a/kubernetes/aai/charts/aai-babel/values.yaml b/kubernetes/aai/charts/aai-babel/values.yaml index 7118d1669b..2239c9a11d 100644 --- a/kubernetes/aai/charts/aai-babel/values.yaml +++ b/kubernetes/aai/charts/aai-babel/values.yaml @@ -24,7 +24,7 @@ global: ################################################################# # application image -image: onap/babel:1.2-STAGING-latest +image: onap/babel:1.2.0 # application configuration config: diff --git a/kubernetes/aai/charts/aai-champ/values.yaml b/kubernetes/aai/charts/aai-champ/values.yaml index 13cc9e77c0..78afd419ca 100644 --- a/kubernetes/aai/charts/aai-champ/values.yaml +++ b/kubernetes/aai/charts/aai-champ/values.yaml @@ -24,7 +24,7 @@ global: ################################################################# # application image -image: onap/champ:1.2-STAGING-latest +image: onap/champ:1.2.3 # application configuration config: diff --git a/kubernetes/aai/charts/aai-data-router/values.yaml b/kubernetes/aai/charts/aai-data-router/values.yaml index 5ce7689822..51fc65a408 100644 --- a/kubernetes/aai/charts/aai-data-router/values.yaml +++ b/kubernetes/aai/charts/aai-data-router/values.yaml @@ -7,7 +7,7 @@ global: # global defaults # application image repository: nexus3.onap.org:10001 -image: onap/data-router:1.2-STAGING-latest +image: onap/data-router:1.2.2 pullPolicy: Always restartPolicy: Always diff --git a/kubernetes/aai/charts/aai-gizmo/resources/config/log/logback.xml b/kubernetes/aai/charts/aai-gizmo/resources/config/log/logback.xml index f63afd3c6b..a04d44cefa 100644 --- a/kubernetes/aai/charts/aai-gizmo/resources/config/log/logback.xml +++ b/kubernetes/aai/charts/aai-gizmo/resources/config/log/logback.xml @@ -1,213 +1,179 @@ -<?xml version="1.0" encoding="UTF-8"?> -<configuration scan="true" scanPeriod="3 seconds" debug="true"> - <!--<jmxConfigurator /> --> - <!-- directory path for all other type logs --> - <property name="logDir" value="/var/log/onap" /> - <property name="componentName" value="aai" /> - <property name="subComponentName" value="aai-CRUD" /> - <property name="logDirectory" value="${logDir}/${componentName}/${subComponentName}" /> - <!-- default eelf log file names --> - <property name="generalLogName" value="application" /> - <property name="errorLogName" value="error" /> - <property name="metricsLogName" value="metrics" /> - <property name="auditLogName" value="audit" /> - <property name="debugLogName" value="debug" /> - <property name="queueSize" value="256" /> - <property name="maxFileSize" value="50MB" /> - <property name="maxHistory" value="30" /> - <property name="totalSizeCap" value="10GB" /> - <property name="pattern" value="%d{"yyyy-MM-dd'T'HH:mm:ss.SSSXXX", UTC}\t[%thread]\t%-5level\t%logger\t%replace(%replace(%replace(%mdc){'\t','\\\\t'}){', ','\t'}){'\n', '\\\\n'}\t%replace(%replace(%msg){'\n', '\\\\n'}){'\t','\\\\t'}%n" /> - <!-- Example evaluator filter applied against console appender --> - <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> - <encoder> - <pattern>${pattern}</pattern> - </encoder> - </appender> - <!-- ============================================================================ --> - <!-- EELF Appenders --> - <!-- ============================================================================ --> - <!-- The EELFAppender is used to record events to the general application +<configuration scan="true" scanPeriod="3 seconds" debug="false"> + <!--<jmxConfigurator /> --> + <!-- directory path for all other type logs --> + + <property name="logDir" value="/var/log/onap" /> + + + <!-- specify the component name + <ECOMP-component-name>::= "MSO" | "DCAE" | "ASDC " | "AAI" |"Policy" | "SDNC" | "AC" --> + <property name="componentName" value="AAI-CRUD" /> + + <!-- default eelf log file names --> + <property name="generalLogName" value="error" /> + <property name="metricsLogName" value="metrics" /> + <property name="auditLogName" value="audit" /> + <property name="debugLogName" value="debug" /> + + <property name="errorLogPattern" value="%d{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%mdc{RequestId}|%thread|GIZMO|%mdc{PartnerName}|%logger||%.-5level|%msg%n" /> + <property name="auditMetricPattern" value="%m%n" /> + + <property name="logDirectory" value="${logDir}/${componentName}" /> + + <!-- Example evaluator filter applied against console appender --> + <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> + <encoder> + <pattern>${errorLogPattern}</pattern> + </encoder> + </appender> + + <!-- ============================================================================ --> + <!-- EELF Appenders --> + <!-- ============================================================================ --> + + <!-- The EELFAppender is used to record events to the general application log --> - <appender name="EELF" class="ch.qos.logback.core.rolling.RollingFileAppender"> - <file>${logDirectory}/${generalLogName}.log</file> - <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> - <fileNamePattern>${logDirectory}/${generalLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern> - <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> - <maxFileSize>${maxFileSize}</maxFileSize> - </timeBasedFileNamingAndTriggeringPolicy> - <maxHistory>${maxHistory}</maxHistory> - <totalSizeCap>${totalSizeCap}</totalSizeCap> - </rollingPolicy> - <encoder> - <pattern>${pattern}</pattern> - </encoder> - </appender> - <appender name="asyncEELF" class="ch.qos.logback.classic.AsyncAppender"> - <!-- deny all events with a level below INFO, that is TRACE and DEBUG --> - <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> - <level>INFO</level> - </filter> - <queueSize>${queueSize}</queueSize> - <appender-ref ref="EELF" /> - </appender> - <!-- EELF Audit Appender. This appender is used to record audit engine - related logging events. The audit logger and appender are specializations - of the EELF application root logger and appender. This can be used to segregate - Policy engine events from other components, or it can be eliminated to record + + <appender name="EELF" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${logDirectory}/${generalLogName}.log</file> + <rollingPolicy + class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/${generalLogName}.%d{yyyy-MM-dd}.log.zip + </fileNamePattern> + <maxHistory>60</maxHistory> + </rollingPolicy> + <encoder> + <pattern>${errorLogPattern}</pattern> + </encoder> + </appender> + <appender name="asyncEELF" class="ch.qos.logback.classic.AsyncAppender"> + <!-- deny all events with a level below INFO, that is TRACE and DEBUG --> + <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> + <level>INFO</level> + </filter> + <queueSize>256</queueSize> + <appender-ref ref="EELF" /> + </appender> + + + <!-- EELF Audit Appender. This appender is used to record audit engine + related logging events. The audit logger and appender are specializations + of the EELF application root logger and appender. This can be used to segregate + Policy engine events from other components, or it can be eliminated to record these events as part of the application root log. --> - <appender name="EELFAudit" class="ch.qos.logback.core.rolling.RollingFileAppender"> - <file>${logDirectory}/${auditLogName}.log</file> - <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> - <fileNamePattern>${logDirectory}/${auditLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern> - <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> - <maxFileSize>${maxFileSize}</maxFileSize> - </timeBasedFileNamingAndTriggeringPolicy> - <maxHistory>${maxHistory}</maxHistory> - <totalSizeCap>${totalSizeCap}</totalSizeCap> - </rollingPolicy> - <encoder> - <pattern>${pattern}</pattern> - </encoder> - </appender> - <appender name="asyncEELFAudit" class="ch.qos.logback.classic.AsyncAppender"> - <queueSize>${queueSize}</queueSize> - <appender-ref ref="EELFAudit" /> - </appender> - <appender name="EELFMetrics" class="ch.qos.logback.core.rolling.RollingFileAppender"> - <file>${logDirectory}/${metricsLogName}.log</file> - <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> - <fileNamePattern>${logDirectory}/${metricsLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern> - <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> - <maxFileSize>${maxFileSize}</maxFileSize> - </timeBasedFileNamingAndTriggeringPolicy> - <maxHistory>${maxHistory}</maxHistory> - <totalSizeCap>${totalSizeCap}</totalSizeCap> - </rollingPolicy> - <encoder> - <pattern>${pattern}</pattern> - </encoder> - </appender> - <appender name="asyncEELFMetrics" class="ch.qos.logback.classic.AsyncAppender"> - <queueSize>${queueSize}</queueSize> - <appender-ref ref="EELFMetrics" /> - </appender> - <appender name="EELFError" class="ch.qos.logback.core.rolling.RollingFileAppender"> - <file>${logDirectory}/${errorLogName}.log</file> - <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> - <fileNamePattern>${logDirectory}/${errorLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern> - <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> - <maxFileSize>${maxFileSize}</maxFileSize> - </timeBasedFileNamingAndTriggeringPolicy> - <maxHistory>${maxHistory}</maxHistory> - <totalSizeCap>${totalSizeCap}</totalSizeCap> - </rollingPolicy> - <encoder> - <pattern>${pattern}</pattern> - </encoder> - <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> - <level>INFO</level> - </filter> - </appender> - <appender name="asyncEELFError" class="ch.qos.logback.classic.AsyncAppender"> - <queueSize>${queueSize}</queueSize> - <appender-ref ref="EELFError" /> - </appender> - <appender name="EELFDebug" class="ch.qos.logback.core.rolling.RollingFileAppender"> - <file>${logDirectory}/${debugLogName}.log</file> - <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> - <fileNamePattern>${logDirectory}/${debugLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern> - <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> - <maxFileSize>${maxFileSize}</maxFileSize> - </timeBasedFileNamingAndTriggeringPolicy> - <maxHistory>${maxHistory}</maxHistory> - <totalSizeCap>${totalSizeCap}</totalSizeCap> - </rollingPolicy> - <encoder> - <pattern>${pattern}</pattern> - </encoder> - </appender> - <appender name="asyncEELFDebug" class="ch.qos.logback.classic.AsyncAppender"> - <queueSize>${queueSize}</queueSize> - <appender-ref ref="EELFDebug" /> - <includeCallerData>true</includeCallerData> - </appender> - <!-- ============================================================================ --> - <!-- EELF loggers --> - <!-- ============================================================================ --> - <logger name="com.att.eelf" level="info" additivity="false"> - <appender-ref ref="asyncEELF" /> - </logger> - <logger name="com.att.eelf.security" level="info" additivity="false"> - <appender-ref ref="asyncEELFSecurity" /> - </logger> - <logger name="com.att.eelf.perf" level="info" additivity="false"> - <appender-ref ref="asyncEELFPerformance" /> - </logger> - <logger name="com.att.eelf.server" level="info" additivity="false"> - <appender-ref ref="asyncEELFServer" /> - </logger> - <logger name="com.att.eelf.policy" level="info" additivity="false"> - <appender-ref ref="asyncEELFPolicy" /> - </logger> - <logger name="com.att.eelf.debug" level="debug" additivity="false"> - <appender-ref ref="asyncEELFDebug" /> - </logger> - <logger name="com.att.eelf.audit" level="info" additivity="false"> - <appender-ref ref="asyncEELFAudit" /> - </logger> - <logger name="com.att.eelf.metrics" level="info" additivity="false"> - <appender-ref ref="asyncEELFMetrics" /> - </logger> - <logger name="com.att.eelf.error" level="info" additivity="false"> - <appender-ref ref="asyncEELFError" /> - </logger> - <!-- Spring related loggers --> - <logger name="org.springframework" level="WARN" /> - <logger name="org.springframework.beans" level="WARN" /> - <logger name="org.springframework.web" level="WARN" /> - <logger name="com.blog.spring.jms" level="WARN" /> - <!-- AJSC Services (bootstrap services) --> - <logger name="ajsc" level="WARN" /> - <logger name="ajsc.RouteMgmtService" level="WARN" /> - <logger name="ajsc.ComputeService" level="WARN" /> - <logger name="ajsc.VandelayService" level="WARN" /> - <logger name="ajsc.FilePersistenceService" level="WARN" /> - <logger name="ajsc.UserDefinedJarService" level="WARN" /> - <logger name="ajsc.UserDefinedBeansDefService" level="WARN" /> - <logger name="ajsc.LoggingConfigurationService" level="WARN" /> - <!-- AJSC related loggers (DME2 Registration, csi logging, restlet, servlet - logging) --> - <logger name="ajsc.utils" level="WARN" /> - <logger name="ajsc.utils.DME2Helper" level="WARN" /> - <logger name="ajsc.filters" level="WARN" /> - <logger name="ajsc.beans.interceptors" level="WARN" /> - <logger name="ajsc.restlet" level="WARN" /> - <logger name="ajsc.servlet" level="WARN" /> - <logger name="com.att" level="INFO" /> - <logger name="com.att.ajsc.csi.logging" level="WARN" /> - <logger name="com.att.ajsc.filemonitor" level="WARN" /> - <!-- CRUD Service loggers --> - <logger name="org.openecomp.crud" level="INFO" /> - <!-- Other Loggers that may help troubleshoot --> - <logger name="net.sf" level="WARN" /> - <logger name="org.apache" level="WARN" /> - <logger name="org.apache.commons.httpclient" level="WARN" /> - <logger name="org.apache.commons" level="WARN" /> - <logger name="org.apache.coyote" level="WARN" /> - <logger name="org.apache.jasper" level="WARN" /> - <!-- Camel Related Loggers (including restlet/servlet/jaxrs/cxf logging. + + <appender name="EELFAudit" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${logDirectory}/${auditLogName}.log</file> + <rollingPolicy + class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/${auditLogName}.%d{yyyy-MM-dd}.log.zip + </fileNamePattern> + <maxHistory>60</maxHistory> + </rollingPolicy> + <encoder> + <pattern>${auditMetricPattern}</pattern> + </encoder> + </appender> + <appender name="asyncEELFAudit" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>256</queueSize> + <appender-ref ref="EELFAudit" /> + </appender> + + <appender name="EELFMetrics" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${logDirectory}/${metricsLogName}.log</file> + <rollingPolicy + class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/${metricsLogName}.%d{yyyy-MM-dd}.log.zip + </fileNamePattern> + <maxHistory>60</maxHistory> + </rollingPolicy> + <encoder> + <!-- <pattern>"%d{HH:mm:ss.SSS} [%thread] %-5level %logger{1024} - + %msg%n"</pattern> --> + <pattern>${auditMetricPattern}</pattern> + </encoder> + </appender> + + + <appender name="asyncEELFMetrics" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>256</queueSize> + <appender-ref ref="EELFMetrics"/> + </appender> + + <appender name="EELFDebug" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${logDirectory}/${debugLogName}.log</file> + <rollingPolicy + class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/${debugLogName}.%d{yyyy-MM-dd}.log.zip + </fileNamePattern> + <maxHistory>60</maxHistory> + </rollingPolicy> + <encoder> + <pattern>${errorLogPattern}</pattern> + </encoder> + </appender> + + <appender name="asyncEELFDebug" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>256</queueSize> + <appender-ref ref="EELFDebug" /> + <includeCallerData>false</includeCallerData> + </appender> + + + <!-- ============================================================================ --> + <!-- EELF loggers --> + <!-- ============================================================================ --> + <logger name="com.att.eelf" level="info" additivity="false"> + <appender-ref ref="asyncEELF" /> + <appender-ref ref="asyncEELFDebug" /> + </logger> + + <logger name="com.att.eelf.audit" level="info" additivity="false"> + <appender-ref ref="asyncEELFAudit" /> + </logger> + <logger name="com.att.eelf.metrics" level="info" additivity="false"> + <appender-ref ref="asyncEELFMetrics" /> + </logger> + + <!-- Spring related loggers --> + <logger name="org.springframework" level="WARN" /> + <logger name="org.springframework.beans" level="WARN" /> + <logger name="org.springframework.web" level="WARN" /> + <logger name="com.blog.spring.jms" level="WARN" /> + + <!-- ARMAdapter Service loggers --> + <logger name="com.amdocs.aai.armadapter" level="INFO" /> + + <!-- Other Loggers that may help troubleshoot --> + <logger name="net.sf" level="WARN" /> + <logger name="org.apache" level="WARN" /> + <logger name="org.apache.commons.httpclient" level="WARN" /> + <logger name="org.apache.commons" level="WARN" /> + <logger name="org.apache.coyote" level="WARN" /> + <logger name="org.apache.jasper" level="WARN" /> + + <!-- Camel Related Loggers (including restlet/servlet/jaxrs/cxf logging. May aid in troubleshooting) --> - <logger name="org.apache.camel" level="WARN" /> - <logger name="org.apache.cxf" level="WARN" /> - <logger name="org.apache.camel.processor.interceptor" level="WARN" /> - <logger name="org.apache.cxf.jaxrs.interceptor" level="WARN" /> - <logger name="org.apache.cxf.service" level="WARN" /> - <logger name="org.restlet" level="WARN" /> - <logger name="org.apache.camel.component.restlet" level="WARN" /> - <!-- logback internals logging --> - <logger name="ch.qos.logback.classic" level="WARN" /> - <logger name="ch.qos.logback.core" level="WARN" /> - <root level="INFO"> - <appender-ref ref="asyncEELFDebug" /> - </root> + <logger name="org.apache.camel" level="WARN" /> + <logger name="org.apache.cxf" level="WARN" /> + <logger name="org.apache.camel.processor.interceptor" level="WARN" /> + <logger name="org.apache.cxf.jaxrs.interceptor" level="WARN" /> + <logger name="org.apache.cxf.service" level="WARN" /> + <logger name="org.restlet" level="WARN" /> + <logger name="org.apache.camel.component.restlet" level="WARN" /> + + + <!-- logback internals logging --> + <logger name="ch.qos.logback.classic" level="WARN" /> + <logger name="ch.qos.logback.core" level="WARN" /> + + <root> + <appender-ref ref="asyncEELF" /> + <!-- <appender-ref ref="asyncEELFDebug" /> --> + </root> + </configuration> diff --git a/kubernetes/aai/charts/aai-gizmo/values.yaml b/kubernetes/aai/charts/aai-gizmo/values.yaml index 1ea924fc13..acf64172cc 100644 --- a/kubernetes/aai/charts/aai-gizmo/values.yaml +++ b/kubernetes/aai/charts/aai-gizmo/values.yaml @@ -22,7 +22,7 @@ global: ################################################################# # application image -image: onap/gizmo:1.1-STAGING-latest +image: onap/gizmo:1.2.1 # application configuration config: diff --git a/kubernetes/aai/charts/aai-modelloader/values.yaml b/kubernetes/aai/charts/aai-modelloader/values.yaml index 676fc6fdfc..8acb28f9d2 100644 --- a/kubernetes/aai/charts/aai-modelloader/values.yaml +++ b/kubernetes/aai/charts/aai-modelloader/values.yaml @@ -7,7 +7,7 @@ global: # global defaults # application image repository: nexus3.onap.org:10001 -image: onap/model-loader:1.2-STAGING-latest +image: onap/model-loader:1.2.1 pullPolicy: Always restartPolicy: Always diff --git a/kubernetes/aai/charts/aai-resources/values.yaml b/kubernetes/aai/charts/aai-resources/values.yaml index 7b55aa75e2..50719e4bfb 100644 --- a/kubernetes/aai/charts/aai-resources/values.yaml +++ b/kubernetes/aai/charts/aai-resources/values.yaml @@ -9,7 +9,7 @@ global: # global defaults # application image repository: nexus3.onap.org:10001 -image: onap/aai-resources:1.2-STAGING-latest +image: onap/aai-resources:1.2.1 pullPolicy: Always restartPolicy: Always diff --git a/kubernetes/aai/charts/aai-search-data/values.yaml b/kubernetes/aai/charts/aai-search-data/values.yaml index c6f42bd38b..f781662e79 100644 --- a/kubernetes/aai/charts/aai-search-data/values.yaml +++ b/kubernetes/aai/charts/aai-search-data/values.yaml @@ -9,7 +9,7 @@ global: # global defaults # application image repository: nexus3.onap.org:10001 -image: onap/search-data-service:1.2-STAGING-latest +image: onap/search-data-service:1.2.1 pullPolicy: Always restartPolicy: Always diff --git a/kubernetes/aai/charts/aai-sparky-be/values.yaml b/kubernetes/aai/charts/aai-sparky-be/values.yaml index b9ef4ca85d..c87ec5bf02 100644 --- a/kubernetes/aai/charts/aai-sparky-be/values.yaml +++ b/kubernetes/aai/charts/aai-sparky-be/values.yaml @@ -14,7 +14,7 @@ global: # global defaults # application image repository: nexus3.onap.org:10001 -image: onap/sparky-be:1.2-STAGING-latest +image: onap/sparky-be:1.2.1 pullPolicy: Always restartPolicy: Always diff --git a/kubernetes/aai/charts/aai-traversal/values.yaml b/kubernetes/aai/charts/aai-traversal/values.yaml index c22ae75c3f..943d34a3f5 100644 --- a/kubernetes/aai/charts/aai-traversal/values.yaml +++ b/kubernetes/aai/charts/aai-traversal/values.yaml @@ -9,7 +9,7 @@ global: # global defaults # application image repository: nexus3.onap.org:10001 -image: onap/aai-traversal:1.2-STAGING-latest +image: onap/aai-traversal:1.2.1 pullPolicy: Always restartPolicy: Always diff --git a/kubernetes/aai/resources/config/aai/aai_keystore b/kubernetes/aai/resources/config/aai/aai_keystore Binary files differindex 30fee2f602..83cae95273 100644 --- a/kubernetes/aai/resources/config/aai/aai_keystore +++ b/kubernetes/aai/resources/config/aai/aai_keystore diff --git a/kubernetes/aai/values.yaml b/kubernetes/aai/values.yaml index 2b0180e53b..017d0c282d 100644 --- a/kubernetes/aai/values.yaml +++ b/kubernetes/aai/values.yaml @@ -56,7 +56,7 @@ global: # global defaults # application image dockerhubRepository: registry.hub.docker.com -image: aaionap/haproxy:1.2.2 +image: aaionap/haproxy:1.2.3 pullPolicy: Always # flag to enable debugging - application support required diff --git a/kubernetes/appc/charts/appc-cdt/templates/deployment.yaml b/kubernetes/appc/charts/appc-cdt/templates/deployment.yaml index 2226b75bbf..a2cb9fc83a 100644 --- a/kubernetes/appc/charts/appc-cdt/templates/deployment.yaml +++ b/kubernetes/appc/charts/appc-cdt/templates/deployment.yaml @@ -21,6 +21,8 @@ spec: - name: {{ include "common.name" . }} image: "{{ include "common.repository" . }}/{{ .Values.image }}" imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + command: + - /opt/startCdt.sh ports: - containerPort: {{ .Values.service.internalPort }} name: {{ .Values.service.name }} @@ -39,6 +41,11 @@ spec: initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }} periodSeconds: {{ .Values.readiness.periodSeconds }} env: + # This sets the port that CDT will use to connect to the main appc container. + # The 32 is the node port suffix that is used in the main appc oom templates + # for nodePort3. + - name: CDT_PORT + value: "{{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.nodePort3 }}" volumeMounts: - mountPath: /etc/localtime name: localtime diff --git a/kubernetes/appc/charts/appc-cdt/values.yaml b/kubernetes/appc/charts/appc-cdt/values.yaml index 123098cdd2..c29452de6c 100644 --- a/kubernetes/appc/charts/appc-cdt/values.yaml +++ b/kubernetes/appc/charts/appc-cdt/values.yaml @@ -9,7 +9,7 @@ global: ################################################################# # application image repository: nexus3.onap.org:10001 -image: onap/appc-cdt-image:1.3.0-SNAPSHOT-latest +image: onap/appc-cdt-image:1.3.0 pullPolicy: Always # application configuration diff --git a/kubernetes/appc/templates/service.yaml b/kubernetes/appc/templates/service.yaml index 0ba73e3984..733c4ca3be 100644 --- a/kubernetes/appc/templates/service.yaml +++ b/kubernetes/appc/templates/service.yaml @@ -32,6 +32,7 @@ spec: nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort2 }} name: "{{ .Values.service.portName }}-1830" - port: {{ .Values.service.externalPort3 }} + targetPort: {{ .Values.service.internalPort3 }} nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort3 }} name: "{{ .Values.service.portName }}-9090" {{- else -}} diff --git a/kubernetes/appc/values.yaml b/kubernetes/appc/values.yaml index 1bb7e231bb..45c048029e 100644 --- a/kubernetes/appc/values.yaml +++ b/kubernetes/appc/values.yaml @@ -29,7 +29,7 @@ global: ################################################################# # application image repository: nexus3.onap.org:10001 -image: onap/appc-image:1.3.0-SNAPSHOT-latest +image: onap/appc-image:1.3.0 pullPolicy: Always # flag to enable debugging - application support required @@ -69,7 +69,8 @@ dgbuilder: dbServiceName: appc-dbhost service: name: appc-dgbuilder - +appc-cdt: + nodePort3: 32 # default number of instances replicaCount: 1 diff --git a/kubernetes/clamp/resources/config/log/filebeat/filebeat.yml b/kubernetes/clamp/resources/config/log/filebeat/filebeat.yml new file mode 100644 index 0000000000..44c0e6a8ac --- /dev/null +++ b/kubernetes/clamp/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: ["{{.Values.config.log.logstashServiceName}}:{{.Values.config.log.logstashPort}}"] + #If enable will do load balancing among availabe Logstash, automatically. + loadbalance: true + + #The list of root certificates for server verifications. + #If certificate_authorities is empty or not set, the trusted + #certificate authorities of the host system are used. + #ssl.certificate_authorities: $ssl.certificate_authorities + + #The path to the certificate for SSL client authentication. If the certificate is not specified, + #client authentication is not available. + #ssl.certificate: $ssl.certificate + + #The client certificate key used for client authentication. + #ssl.key: $ssl.key + + #The passphrase used to decrypt an encrypted key stored in the configured key file + #ssl.key_passphrase: $ssl.key_passphrase diff --git a/kubernetes/clamp/resources/config/logback.xml b/kubernetes/clamp/resources/config/logback.xml new file mode 100644 index 0000000000..0a8f8d5f84 --- /dev/null +++ b/kubernetes/clamp/resources/config/logback.xml @@ -0,0 +1,236 @@ +<configuration scan="true" scanPeriod="10 seconds" debug="false"> + <jmxConfigurator /> + <property resource="application.properties" /> + <property name="logDirectory" value="/var/log/onap/clamp" /> + <!-- Example evaluator filter applied against console appender --> + <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> + <!-- filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>ERROR</level> + <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter --> + <!-- deny all events with a level below INFO, that is TRACE and DEBUG --> + <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> + <level>INFO</level> + </filter> + <encoder> + <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{1024} - %msg%n + </pattern> + </encoder> + </appender> + + <appender name="ERROR" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> + <level>INFO</level> + </filter> + <file>${logDirectory}/error.log</file> + <append>true</append> + <encoder> + <pattern>%date{"yyyy-MM-dd'T'HH:mm:ss,SSSXXX", UTC}|%X{RequestId}|%.20thread|%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%.-5level|%X{ErrorCode}|%X{ErrorDescription}|%msg%n</pattern> + </encoder> + <rollingPolicy + class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> + <maxIndex>10</maxIndex> + <FileNamePattern>${logDirectory}/error.%i.log.zip + </FileNamePattern> + </rollingPolicy> + <triggeringPolicy + class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> + <maxFileSize>10MB</maxFileSize> + </triggeringPolicy> + </appender> + + <appender name="DEBUG" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${logDirectory}/debug.log</file> + <append>true</append> + <encoder> + <pattern>%date{"yyyy-MM-dd'T'HH:mm:ss,SSSXXX",UTC}|%X{RequestId}|%.20thread|%.-5level|%logger{36}|%msg%n</pattern> + </encoder> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/debug.%d{yyyy-MM-dd}.%i.log.zip</fileNamePattern> + <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> + <maxFileSize>10MB</maxFileSize> + </timeBasedFileNamingAndTriggeringPolicy> + <maxHistory>5</maxHistory> + </rollingPolicy> + </appender> + + <appender name="AUDIT" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${logDirectory}/audit.log</file> + <append>true</append> + <encoder> + <pattern>%X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%.20thread|%X{VirtualServerName}|%X{ServiceName}|%X{PartnerName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDescription}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ElapsedTime}|%X{ServerFQDN}|%X{RemoteHost}|%X{ClassName}|%X{Unused}|%X{ProcessKey}|%X{CustomField1}|%X{CustomField2}|%X{CustomField3}|%X{CustomField4}|%msg%n + </pattern> + </encoder> + <rollingPolicy + class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> + <maxIndex>10</maxIndex> + <FileNamePattern>${logDirectory}/audit.%i.log.zip + </FileNamePattern> + </rollingPolicy> + <triggeringPolicy + class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> + <maxFileSize>10MB</maxFileSize> + </triggeringPolicy> + </appender> + <appender name="asyncEELFAudit" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>256</queueSize> + <appender-ref ref="AUDIT" /> + </appender> + + <appender name="METRIC" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${logDirectory}/metric.log</file> + <append>true</append> + <encoder> + <pattern>%X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%.20thread|%X{VirtualServerName}|%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDescription}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ElapsedTime}|%X{ServerFQDN}|%X{RemoteHost}|%X{ClassName}|%X{Unused}|%X{ProcessKey}|%X{TargetVirtualEntity}|%X{CustomField1}|%X{CustomField2}|%X{CustomField3}|%X{CustomField4}| + %msg%n</pattern> + </encoder> + <rollingPolicy + class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> + <maxIndex>10</maxIndex> + <FileNamePattern>${logDirectory}/metric.%i.log.zip + </FileNamePattern> + </rollingPolicy> + <triggeringPolicy + class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> + <maxFileSize>10MB</maxFileSize> + </triggeringPolicy> + </appender> + <appender name="asyncEELFMetrics" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>256</queueSize> + <appender-ref ref="METRIC" /> + </appender> + + <!-- SECURITY related loggers --> + <appender name="SECURITY" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${logDirectory}/security.log</file> + <append>true</append> + <encoder> + <pattern>%X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%.20thread|%X{VirtualServerName}|%X{ServiceName}|%X{PartnerName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDescription}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ElapsedTime}|%X{ServerFQDN}|%X{RemoteHost}|%X{ClassName}|%X{Unused}|%X{ProcessKey}|%X{CustomField1}|%X{CustomField2}|%X{CustomField3}|%X{CustomField4}|%msg%n + </pattern> + </encoder> + <rollingPolicy + class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> + <maxIndex>10</maxIndex> + <FileNamePattern>${logDirectory}/security.%i.log.zip + </FileNamePattern> + </rollingPolicy> + <triggeringPolicy + class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> + <maxFileSize>10MB</maxFileSize> + </triggeringPolicy> + </appender> + <appender name="asyncEELFSecurity" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>256</queueSize> + <appender-ref ref="SECURITY" /> + </appender> + + <!-- CLDS related loggers --> + <logger name="org.onap.clamp.clds" level="INFO" additivity="true"> + <appender-ref ref="ERROR" /> + </logger> + + <!-- CLDS related loggers --> + <logger name="com.att.eelf.error" level="OFF" additivity="true"> + <appender-ref ref="ERROR" /> + </logger> + <!-- EELF related loggers --> + <logger name="com.att.eelf.audit" level="INFO" additivity="false"> + <appender-ref ref="asyncEELFAudit" /> + </logger> + <logger name="com.att.eelf.metrics" level="DEBUG" additivity="false"> + <appender-ref ref="asyncEELFMetrics" /> + </logger> + <logger name="com.att.eelf.security" level="DEBUG" additivity="false"> + <appender-ref ref="asyncEELFSecurity" /> + </logger> + + + <!-- Spring related loggers --> + <logger name="org.springframework" level="WARN" /> + <logger name="org.springframework.beans" level="WARN" /> + <logger name="org.springframework.web" level="WARN" /> + <logger name="com.blog.spring.jms" level="WARN" /> + + <!-- Other Loggers that may help troubleshoot --> + <logger name="net.sf" level="WARN" /> + <logger name="org.apache.commons.httpclient" level="WARN" /> + <logger name="org.apache.commons" level="WARN" /> + <logger name="org.apache.coyote" level="WARN" /> + <logger name="org.apache.jasper" level="WARN" /> + + <!-- Camel Related Loggers (including restlet/servlet/jaxrs/cxf logging. + May aid in troubleshooting) --> + <logger name="org.apache.camel" level="WARN" /> + <logger name="org.apache.cxf" level="WARN" /> + <logger name="org.apache.camel.processor.interceptor" level="WARN" /> + <logger name="org.apache.cxf.jaxrs.interceptor" level="WARN" /> + <logger name="org.apache.cxf.service" level="WARN" /> + <logger name="org.restlet" level="DEBUG" /> + <logger name="org.apache.camel.component.restlet" level="DEBUG" /> + + <!-- logback internals logging --> + <logger name="ch.qos.logback.classic" level="INFO" /> + <logger name="ch.qos.logback.core" level="INFO" /> + + <!-- logback jms appenders & loggers definition starts here --> + <!-- logback jms appenders & loggers definition starts here --> + <appender name="auditLogs" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> + </filter> + <file>${logDirectory}/Audit.log</file> + <rollingPolicy + class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> + <fileNamePattern>${logDirectory}/Audit.%i.log.zip + </fileNamePattern> + <minIndex>1</minIndex> + <maxIndex>9</maxIndex> + </rollingPolicy> + <triggeringPolicy + class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> + <maxFileSize>5MB</maxFileSize> + </triggeringPolicy> + <encoder> + <pattern>"%d [%thread] %-5level %logger{1024} - %msg%n"</pattern> + </encoder> + </appender> + <appender name="perfLogs" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> + </filter> + <file>${logDirectory}/Perform.log</file> + <rollingPolicy + class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> + <fileNamePattern>${logDirectory}/Perform.%i.log.zip + </fileNamePattern> + <minIndex>1</minIndex> + <maxIndex>9</maxIndex> + </rollingPolicy> + <triggeringPolicy + class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> + <maxFileSize>5MB</maxFileSize> + </triggeringPolicy> + <encoder> + <pattern>"%d [%thread] %-5level %logger{1024} - %msg%n"</pattern> + </encoder> + </appender> + <logger name="AuditRecord" level="INFO" additivity="FALSE"> + <appender-ref ref="auditLogs" /> + </logger> + <logger name="AuditRecord_DirectCall" level="INFO" additivity="FALSE"> + <appender-ref ref="auditLogs" /> + </logger> + <logger name="PerfTrackerRecord" level="INFO" additivity="FALSE"> + <appender-ref ref="perfLogs" /> + </logger> + <!-- logback jms appenders & loggers definition ends here --> + + <root level="WARN"> + <appender-ref ref="DEBUG" /> + <appender-ref ref="STDOUT" /> + </root> + +</configuration> diff --git a/kubernetes/clamp/templates/configmap.yaml b/kubernetes/clamp/templates/configmap.yaml index 7a66c64755..e0ed211717 100644 --- a/kubernetes/clamp/templates/configmap.yaml +++ b/kubernetes/clamp/templates/configmap.yaml @@ -25,3 +25,11 @@ metadata: data: {{ tpl (.Files.Glob "resources/config/*").AsConfig . | indent 2 }} spring_application_json: {{ tpl .Values.config.springApplicationJson . | quote }} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ .Release.Name }}-clamp-filebeat-configmap + namespace: {{ include "common.namespace" . }} +data: +{{ tpl (.Files.Glob "resources/config/log/filebeat/*").AsConfig . | indent 2 }} diff --git a/kubernetes/clamp/templates/deployment.yaml b/kubernetes/clamp/templates/deployment.yaml index 38eabeb968..fb06d834f4 100644 --- a/kubernetes/clamp/templates/deployment.yaml +++ b/kubernetes/clamp/templates/deployment.yaml @@ -46,9 +46,24 @@ spec: imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} name: {{ include "common.name" . }}-readiness containers: + # side car containers + - name: {{ include "common.name" . }}-filebeat-onap + image: "{{ .Values.global.loggingRepository }}/{{ .Values.global.loggingImage }}" + imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + volumeMounts: + - name: {{ include "common.fullname" . }}-filebeat-conf + mountPath: /usr/share/filebeat/filebeat.yml + subPath: filebeat.yml + - name: {{ include "common.fullname" . }}-data-filebeat + mountPath: /usr/share/filebeat/datag + - name: {{ include "common.fullname" . }}-logs + mountPath: /var/log/onap - name: {{ include "common.name" . }} image: "{{ include "common.repository" . }}/{{ .Values.image }}" imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + args: + - "-Dcom.att.eelf.logging.file=file:/opt/clamp/logback.xml" + - "" ports: - containerPort: {{ .Values.service.internalPort }} # disable liveness probe when breakpoints set in debugger @@ -66,9 +81,14 @@ spec: initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }} periodSeconds: {{ .Values.readiness.periodSeconds }} volumeMounts: + - name: {{ include "common.fullname" . }}-logs + mountPath: /var/log/onap - mountPath: /opt/clamp/sdc-controllers-config.json name: {{ include "common.fullname" . }}-config subPath: sdc-controllers-config.json + - mountPath: /opt/clamp/logback.xml + name: {{ include "common.fullname" . }}-config + subPath: logback.xml env: - name: SPRING_APPLICATION_JSON valueFrom: @@ -92,5 +112,14 @@ spec: items: - key: sdc-controllers-config.json path: sdc-controllers-config.json + - key: logback.xml + path: logback.xml + - name: {{ include "common.fullname" . }}-filebeat-conf + configMap: + name: {{ .Release.Name }}-clamp-filebeat-configmap + - name: {{ include "common.fullname" . }}-data-filebeat + emptyDir: {} + - name: {{ include "common.fullname" . }}-logs + emptyDir: {} imagePullSecrets: - name: "{{ include "common.namespace" . }}-docker-registry-key" diff --git a/kubernetes/clamp/values.yaml b/kubernetes/clamp/values.yaml index 5ecab2090f..8595922090 100644 --- a/kubernetes/clamp/values.yaml +++ b/kubernetes/clamp/values.yaml @@ -27,7 +27,7 @@ subChartsOnly: # application image repository: nexus3.onap.org:10001 -image: onap/clamp:2.0-STAGING-latest +image: onap/clamp:2.0.2 pullPolicy: Always # flag to enable debugging - application support required @@ -37,6 +37,9 @@ debugEnabled: false # Application configuration defaults. ################################################################# config: + log: + logstashServiceName: log-ls + logstashPort: 5044 mysqlPassword: strong_pitchou dataRootDir: /dockerdata-nfs springApplicationJson: > diff --git a/kubernetes/common/dgbuilder/values.yaml b/kubernetes/common/dgbuilder/values.yaml index e7c18c4140..e2d0c10709 100644 --- a/kubernetes/common/dgbuilder/values.yaml +++ b/kubernetes/common/dgbuilder/values.yaml @@ -33,7 +33,7 @@ global: ################################################################# # application image repository: nexus3.onap.org:10001 -image: onap/ccsdk-dgbuilder-image:0.2-STAGING-latest +image: onap/ccsdk-dgbuilder-image:0.2.4 pullPolicy: Always # flag to enable debugging - application support required diff --git a/kubernetes/dcaegen2/charts/dcae-bootstrap/values.yaml b/kubernetes/dcaegen2/charts/dcae-bootstrap/values.yaml index 1a6357a96d..3f84a85839 100644 --- a/kubernetes/dcaegen2/charts/dcae-bootstrap/values.yaml +++ b/kubernetes/dcaegen2/charts/dcae-bootstrap/values.yaml @@ -62,21 +62,21 @@ postgres: # application image repository: nexus3.onap.org:10001 -image: onap/org.onap.dcaegen2.deployments.k8s-bootstrap-container:latest +image: onap/org.onap.dcaegen2.deployments.k8s-bootstrap-container:1.1.11 # DCAE component images to be deployed via Cloudify Manager # Use to override default setting in blueprints componentImages: #TODO for further investigation: input template expansion issues if we comment this out - config_binding_service: onap/org.onap.dcaegen2.platform.configbinding:latest - deployment_handler: onap/org.onap.dcaegen2.platform.deployment-handler:latest - holmes_engine: onap/holmes/engine-management:latest - holmes_rules: onap/holmes/rule-management:latest - inventory: onap/org.onap.dcaegen2.platform.inventory-api:latest - policy_handler: onap/org.onap.dcaegen2.platform.policy-handler:latest - service_change_handler: onap/org.onap.dcaegen2.platform.servicechange-handler:latest - tca: onap/org.onap.dcaegen2.deployments.tca-cdap-container:latest - ves: onap/org.onap.dcaegen2.collectors.ves.vescollector:latest + config_binding_service: onap/org.onap.dcaegen2.platform.configbinding:2.1.5 + deployment_handler: onap/org.onap.dcaegen2.platform.deployment-handler:2.1.5 + holmes_engine: onap/holmes/engine-management:1.1.0 + holmes_rules: onap/holmes/rule-management:1.1.0 + inventory: onap/org.onap.dcaegen2.platform.inventory-api:3.0.1 + policy_handler: onap/org.onap.dcaegen2.platform.policy-handler:2.4.5 + service_change_handler: onap/org.onap.dcaegen2.platform.servicechange-handler:1.1.4 + tca: onap/org.onap.dcaegen2.deployments.tca-cdap-container:1.1.0 + ves: onap/org.onap.dcaegen2.collectors.ves.vescollector:1.2.0 # Kubernetes namespace for components deployed via Cloudify manager # If empty, use the common namespace diff --git a/kubernetes/dcaegen2/charts/dcae-cloudify-manager/values.yaml b/kubernetes/dcaegen2/charts/dcae-cloudify-manager/values.yaml index 6d87be3441..fee4cc35bb 100644 --- a/kubernetes/dcaegen2/charts/dcae-cloudify-manager/values.yaml +++ b/kubernetes/dcaegen2/charts/dcae-cloudify-manager/values.yaml @@ -43,7 +43,7 @@ config: ################################################################# # application image repository: nexus3.onap.org:10001 -image: onap/org.onap.dcaegen2.deployments.cm-container:latest +image: onap/org.onap.dcaegen2.deployments.cm-container:1.3.0 pullPolicy: Always # probe configuration parameters diff --git a/kubernetes/dcaegen2/charts/dcae-healthcheck/values.yaml b/kubernetes/dcaegen2/charts/dcae-healthcheck/values.yaml index c10e2403a3..7e9835457d 100644 --- a/kubernetes/dcaegen2/charts/dcae-healthcheck/values.yaml +++ b/kubernetes/dcaegen2/charts/dcae-healthcheck/values.yaml @@ -45,7 +45,7 @@ readiness: periodSeconds: 10 # application image repository: nexus3.onap.org:10001 -image: onap/org.onap.dcaegen2.deployments.healthcheck-container:latest +image: onap/org.onap.dcaegen2.deployments.healthcheck-container:1.1.0 # Kubernetes namespace for components deployed via Cloudify manager # If empty, use the common namespace diff --git a/kubernetes/dcaegen2/charts/dcae-redis/resources/redis/scripts/redis-cluster-config.sh b/kubernetes/dcaegen2/charts/dcae-redis/resources/redis/scripts/redis-cluster-config.sh index f4547525c9..a63ab1668d 100755 --- a/kubernetes/dcaegen2/charts/dcae-redis/resources/redis/scripts/redis-cluster-config.sh +++ b/kubernetes/dcaegen2/charts/dcae-redis/resources/redis/scripts/redis-cluster-config.sh @@ -25,9 +25,7 @@ do echo "======> $(echo $NODES |wc -w) / {{.Values.replicaCount}} pods up" sleep 5 - RESP=$(wget -vO- --ca-certificate /var/run/secrets/kubernetes.io/serviceaccount/ca.crt --header "Authorization -: Bearer $(</var/run/secrets/kubernetes.io/serviceaccount/token)" https://$KUBERNETES_SERVICE_HOST:$KUBERNETES_PORT -_443_TCP_PORT/api/v1/namespaces/{{.Release.Namespace}}/pods?labelSelector=app={{.Chart.Name}}) + RESP=$(wget -vO- --ca-certificate /var/run/secrets/kubernetes.io/serviceaccount/ca.crt --header "Authorization: Bearer $(</var/run/secrets/kubernetes.io/serviceaccount/token)" https://$KUBERNETES_SERVICE_HOST:$KUBERNETES_PORT_443_TCP_PORT/api/v1/namespaces/{{.Release.Namespace}}/pods?labelSelector=app={{.Chart.Name}}) IPS=$(echo $RESP | jq -r '.items[].status.podIP') IPS2=$(echo $IPS | sed -e 's/[a-zA-Z]*//g') diff --git a/kubernetes/dcaegen2/charts/dcae-redis/values.yaml b/kubernetes/dcaegen2/charts/dcae-redis/values.yaml index 8550da074b..6ccab9ccb7 100644 --- a/kubernetes/dcaegen2/charts/dcae-redis/values.yaml +++ b/kubernetes/dcaegen2/charts/dcae-redis/values.yaml @@ -28,7 +28,7 @@ global: ################################################################# # application image repository: nexus3.onap.org:10001 -image: onap/org.onap.dcaegen2.deployments.redis-cluster-container:latest +image: onap/org.onap.dcaegen2.deployments.redis-cluster-container:1.0.0 pullPolicy: Always # application configuration diff --git a/kubernetes/log/charts/log-logstash/resources/config/logstash.yml b/kubernetes/log/charts/log-logstash/resources/config/logstash.yml index 3ddf63f9cc..7e5cf67da5 100644 --- a/kubernetes/log/charts/log-logstash/resources/config/logstash.yml +++ b/kubernetes/log/charts/log-logstash/resources/config/logstash.yml @@ -1,4 +1,5 @@ http.host: "0.0.0.0" +pipeline.workers: 3 ## Path where pipeline configurations reside path.config: /usr/share/logstash/pipeline diff --git a/kubernetes/msb/charts/msb-discovery/values.yaml b/kubernetes/msb/charts/msb-discovery/values.yaml index fdbfa338cc..3c690ddef5 100644 --- a/kubernetes/msb/charts/msb-discovery/values.yaml +++ b/kubernetes/msb/charts/msb-discovery/values.yaml @@ -11,7 +11,7 @@ global: ################################################################# # application image repository: nexus3.onap.org:10001 -image: onap/msb/msb_discovery:1.1.0-STAGING-latest +image: onap/msb/msb_discovery:1.1.0 pullPolicy: Always # application configuration diff --git a/kubernetes/msb/charts/msb-eag/values.yaml b/kubernetes/msb/charts/msb-eag/values.yaml index 74f9c69b5d..451df8cfee 100644 --- a/kubernetes/msb/charts/msb-eag/values.yaml +++ b/kubernetes/msb/charts/msb-eag/values.yaml @@ -11,7 +11,7 @@ global: ################################################################# # application image repository: nexus3.onap.org:10001 -image: onap/msb/msb_apigateway:1.1.0-STAGING-latest +image: onap/msb/msb_apigateway:1.1.0 pullPolicy: Always # application configuration diff --git a/kubernetes/msb/charts/msb-iag/values.yaml b/kubernetes/msb/charts/msb-iag/values.yaml index 657a5543b2..3f397c3250 100644 --- a/kubernetes/msb/charts/msb-iag/values.yaml +++ b/kubernetes/msb/charts/msb-iag/values.yaml @@ -11,7 +11,7 @@ global: ################################################################# # application image repository: nexus3.onap.org:10001 -image: onap/msb/msb_apigateway:1.1.0-STAGING-latest +image: onap/msb/msb_apigateway:1.1.0 pullPolicy: Always # application configuration diff --git a/kubernetes/nbi/values.yaml b/kubernetes/nbi/values.yaml index 709e580d27..1974f2c25f 100644 --- a/kubernetes/nbi/values.yaml +++ b/kubernetes/nbi/values.yaml @@ -27,7 +27,7 @@ subChartsOnly: # application image repository: nexus3.onap.org:10001 -image: onap/externalapi/nbi:latest +image: onap/externalapi/nbi:2.0.0 pullPolicy: Always sdc_authorization: Basic YWFpOktwOGJKNFNYc3pNMFdYbGhhazNlSGxjc2UyZ0F3ODR2YW9HR21KdlV5MlU= aai_authorization: Basic QUFJOkFBSQ== diff --git a/kubernetes/oof/charts/oof-has/charts/oof-has-data/templates/deployment.yaml b/kubernetes/oof/charts/oof-has/charts/oof-has-data/templates/deployment.yaml index 4effba825e..fde094fd16 100755 --- a/kubernetes/oof/charts/oof-has/charts/oof-has-data/templates/deployment.yaml +++ b/kubernetes/oof/charts/oof-has/charts/oof-has-data/templates/deployment.yaml @@ -92,9 +92,9 @@ spec: - mountPath: /usr/local/bin/aai_key.key name: {{ .Values.global.commonConfigPrefix }}-config subPath: aai_key.key - - mountPath: /usr/local/bin/bundle.pem + - mountPath: /usr/local/bin/AAF_RootCA.cer name: {{ .Values.global.commonConfigPrefix }}-config - subPath: bundle.pem + subPath: AAF_RootCA.cer resources: {{ toYaml .Values.resources | indent 12 }} {{- if .Values.nodeSelector }} @@ -123,7 +123,7 @@ spec: path: aai_cert.cer - key: aai_key.key path: aai_key.key - - key: bundle.pem - path: bundle.pem + - key: AAF_RootCA.cer + path: AAF_RootCA.cer imagePullSecrets: - name: "{{ include "common.namespace" . }}-docker-registry-key" diff --git a/kubernetes/oof/charts/oof-has/resources/config/AAF_RootCA.cer b/kubernetes/oof/charts/oof-has/resources/config/AAF_RootCA.cer new file mode 100755 index 0000000000..e9a50d7ea0 --- /dev/null +++ b/kubernetes/oof/charts/oof-has/resources/config/AAF_RootCA.cer @@ -0,0 +1,31 @@ +-----BEGIN CERTIFICATE----- +MIIFPjCCAyagAwIBAgIJAJ6u7cCnzrWdMA0GCSqGSIb3DQEBCwUAMCwxDjAMBgNV +BAsMBU9TQUFGMQ0wCwYDVQQKDARPTkFQMQswCQYDVQQGEwJVUzAeFw0xODA0MDUx +NDE1MjhaFw0zODAzMzExNDE1MjhaMCwxDjAMBgNVBAsMBU9TQUFGMQ0wCwYDVQQK +DARPTkFQMQswCQYDVQQGEwJVUzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC +ggIBAMA5pkgRs7NhGG4ew5JouhyYakgYUyFaG121+/h8qbSdt0hVQv56+EA41Yq7 +XGie7RYDQK9NmAFF3gruE+6X7wvJiChp+Cyd7sFMnb65uWhxEdxWTM2BJFrgfzUn +H8ZCxgaCo3XH4PzlKRy2LQQJEJECwl/RZmRCXijMt5e9h8XoZY/fKkKcZZUsWNCM +pTo266wjvA9MXLmdgReRj0+vrCjrNqy+htwJDztoiHWiYPqT6o8EvGcgjNqjlZx7 +NUNf8MfLDByqKF6+wRbHv1GKjn3/Vijd45Fv8riyRYROiFanvbV6jIfBkv8PZbXg +2VDWsYsgp8NAvMxK+iV8cO+Ck3lBI2GOPZbCEqpPVTYbLUz6sczAlCXwQoPzDIZY +wYa3eR/gYLY1gP2iEVHORag3bLPap9ZX5E8DZkzTNTjovvLk8KaCmfcaUMJsBtDd +ApcUitz10cnRyZc1sX3gE1f3DpzQM6t9C5sOVyRhDcSrKqqwb9m0Ss04XAS9FsqM +P3UWYQyqDXSxlUAYaX892u8mV1hxnt2gjb22RloXMM6TovM3sSrJS0wH+l1nznd6 +aFXftS/G4ZVIVZ/LfT1is4StoyPWZCwwwly1z8qJQ/zhip5NgZTxQw4mi7ww35DY +PdAQOCoajfSvFjqslQ/cPRi/MRCu079heVb5fQnnzVtnpFQRAgMBAAGjYzBhMB0G +A1UdDgQWBBRTVTPyS+vQUbHBeJrBKDF77+rtSTAfBgNVHSMEGDAWgBRTVTPyS+vQ +UbHBeJrBKDF77+rtSTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAN +BgkqhkiG9w0BAQsFAAOCAgEAPx/IaK94n02wPxpnYTy+LVLIxwdq/kawNd6IbiMz +L87zmNMDmHcGbfoRCj8OkhuggX9Lx1/CkhpXimuYsZOFQi5blr/u+v4mIbsgbmi9 +7j+cUHDP0zLycvSvxKHty51LwmaX9a4wkJl5zBU4O1sd/H9tWcEmwJ39ltKoBKBx +c94Zc3iMm5ytRWGj+0rKzLDAXEWpoZ5bE5PLJauA6UDCxDLfs3FwhbS7uDggxYvf +jySF5FCNET94oJ+m8s7VeHvoa8iPGKvXrIqdd7XDHnqJJlVKr7m9S0fMbyEB8ci2 +RtOXDt93ifY1uhoEtEykn4dqBSp8ezvNMnwoXdYPDvTd9uCAFeWFLVreBAWxd25h +PsBTkZA5hpa/rA+mKv6Af4VBViYr8cz4dZCsFChuioVebe9ighrfjB//qKepFjPF +CyjzKN1u0JKm/2x/ORqxkTONG8p3uDwoIOyimUcTtTMv42bfYD88RKakqSFXE9G+ +Z0LlaKABqfjK49o/tsAp+c5LoNlYllKhnetO3QAdraHwdmC36BhoghzR1jpX751A +cZn2VH3Q4XKyp01cJNCJIrua+A+bx6zh3RyW6zIIkbRCbET+UD+4mr8WIcSE3mtR +ZVlnhUDO4z9//WKMVzwS9Rh8/kuszrGFI1KQozXCHLrce3YP6RYZfOed79LXaRwX +dYY= +-----END CERTIFICATE----- diff --git a/kubernetes/oof/charts/oof-has/resources/config/conductor.conf b/kubernetes/oof/charts/oof-has/resources/config/conductor.conf index 4d32deea33..588b9360ba 100755 --- a/kubernetes/oof/charts/oof-has/resources/config/conductor.conf +++ b/kubernetes/oof/charts/oof-has/resources/config/conductor.conf @@ -149,22 +149,29 @@ complex_cache_refresh_interval = 60 # Base URL for A&AI, up to and not including the version, and without a # trailing slash. (string value) -server_url = https://oof.api.simpledemo.onap.org:8443/aai +server_url = https://{{.Values.config.aai.serviceName}}.{{ include "common.namespace" . }}:{{.Values.config.aai.port}}/aai # The version of A&AI in v# format. (string value) -server_url_version = v11 +server_url_version = v13 # SSL/TLS certificate file in pem format. This certificate must be registered # with the A&AI endpoint. (string value) -certificate_file = /usr/local/bin/aai_cert.cer +certificate_file = # Private Certificate Key file in pem format. (string value) -certificate_key_file = /usr/local/bin/aai_key.key +certificate_key_file = # Certificate Authority Bundle file in pem format. Must contain the appropriate # trust chain for the Certificate file. (string value) #certificate_authority_bundle_file = /opt/app/conductor/etc/certs/ca_bundle.pem -certificate_authority_bundle_file =/usr/local/bin/bundle.pem +certificate_authority_bundle_file =/usr/local/bin/AAF_RootCA.cer + +# Basic Authentication Username (string value) +username = OOF + +# Basic Authentication Password (string value) +password = OOF + [api] @@ -355,3 +362,31 @@ concurrent = true [reservation] concurrent = true + +[multicloud] + +# +# From conductor +# + +# Base URL for Multicloud without a trailing slash. (string value) +server_url = http://{{.Values.config.msb.serviceName}}:{{.Values.config.msb.port}}/api/multicloud + +# Timeout for Multicloud Rest Call (string value) +multicloud_rest_timeout = 30 + +# Number of retry for Multicloud Rest Call (string value) +multicloud_retries = 3 + +# The version of Multicloud API. (string value) +server_url_version = v0 + + +[vim_controller] +# +# From conductor +# + +# Extensions list to use (list value) +extensions = multicloud + diff --git a/kubernetes/oof/charts/oof-has/values.yaml b/kubernetes/oof/charts/oof-has/values.yaml index 25a076b6cc..6ffb372843 100755 --- a/kubernetes/oof/charts/oof-has/values.yaml +++ b/kubernetes/oof/charts/oof-has/values.yaml @@ -24,9 +24,17 @@ global: commonConfigPrefix: onap-oof-has image: readiness: oomk8s/readiness-check:2.0.0 - optf_has: onap/optf-has:latest + optf_has: onap/optf-has:1.1.1 filebeat: docker.elastic.co/beats/filebeat:5.5.0 pullPolicy: Always nodePortPrefix: 302 dataRootDir: /dockerdata-nfs +config: + aai: + serviceName: aai + port: 8443 + msb: + serviceName: msb-iag + port: 80 + diff --git a/kubernetes/oof/resources/config/osdf_config.yaml b/kubernetes/oof/resources/config/osdf_config.yaml index 7fe63a50c8..f286be4595 100755 --- a/kubernetes/oof/resources/config/osdf_config.yaml +++ b/kubernetes/oof/resources/config/osdf_config.yaml @@ -1,37 +1,18 @@ -# Copyright © 2017 Amdocs, Bell Canada -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - - -# Credentials for the OOF placement service – SO. Newly added. osdfPlacementSOUsername: {{ .Values.config.osdfPlacementSOUsername }} osdfPlacementSOPassword: {{ .Values.config.osdfPlacementSOPassword }} -# Credentials for the OOF CM scheduling service – Generic. Newly added osdfCMSchedulerUsername: {{ .Values.config.osdfCMSchedulerUsername }} osdfCMSchedulerPassword: {{ .Values.config.osdfCMSchedulerPassword }} -# msoUrl: "" # The SO url for call back. This will be part of the request, so no need soUsername: {{ .Values.config.soUsername }} soPassword: {{ .Values.config.soPassword }} -conductorUrl: "{{.Release.Name}}-has-api.{{include "common.namespace" .}}:TODO-PORT-FOR-HAS-API" +conductorUrl: {{ .Values.config.conductorUrl }} conductorUsername: {{ .Values.config.conductorUsername }} conductorPassword: {{ .Values.config.conductorPassword }} conductorPingWaitTime: {{ .Values.config.conductorPingWaitTime }} conductorMaxRetries: {{ .Values.config.conductorMaxRetries }} -# Policy Platform -- requires ClientAuth, Authorization, and Environment policyPlatformUrl: {{ .Values.config.policyPlatformUrl }} policyPlatformEnv: {{ .Values.config.policyPlatformEnv }} policyPlatformUsername: {{ .Values.config.policyPlatformUsername }} diff --git a/kubernetes/oof/values.yaml b/kubernetes/oof/values.yaml index 9f74271418..baeed47257 100644 --- a/kubernetes/oof/values.yaml +++ b/kubernetes/oof/values.yaml @@ -26,7 +26,7 @@ global: ################################################################# # application image repository: nexus3.onap.org:10001 -image: onap/optf-osdf:latest +image: onap/optf-osdf:1.1.1 pullPolicy: Always # flag to enable debugging - application support required @@ -34,7 +34,7 @@ debugEnabled: false # application configuration config: - msbgateway: msb-iag.{{ include "common.namespace" . }} + msbgateway: msb-iag msbPort: 80 # Credentials for the OOF placement service – SO. osdfPlacementSOUsername: so_test @@ -46,7 +46,7 @@ config: soUsername: "" # SO username for call back. soPassword: "" # SO password for call back. # Url and credentials for Conductor. - conductorUrl: https://oof-has-api.{{ include "common.namespace" . }}:8091/v1/plans/ + conductorUrl: http://oof-has-api:8091/v1/plans/ conductorUsername: admin1 conductorPassword: plan.15 conductorPingWaitTime: 60 diff --git a/kubernetes/policy/charts/brmsgw/values.yaml b/kubernetes/policy/charts/brmsgw/values.yaml index efc397654a..d8cbda4aaf 100644 --- a/kubernetes/policy/charts/brmsgw/values.yaml +++ b/kubernetes/policy/charts/brmsgw/values.yaml @@ -25,7 +25,7 @@ global: ################################################################# # application image repository: nexus3.onap.org:10001 -image: onap/policy-pe:1.2.2 +image: onap/policy-pe:1.2.3 pullPolicy: Always # flag to enable debugging - application support required diff --git a/kubernetes/policy/charts/drools/resources/config/opt/policy/config/drools/drools-tweaks.sh b/kubernetes/policy/charts/drools/resources/config/opt/policy/config/drools/drools-tweaks.sh index 218cd8aead..5f504e2c65 100644 --- a/kubernetes/policy/charts/drools/resources/config/opt/policy/config/drools/drools-tweaks.sh +++ b/kubernetes/policy/charts/drools/resources/config/opt/policy/config/drools/drools-tweaks.sh @@ -16,7 +16,6 @@ "${POLICY_HOME}"/bin/features enable healthcheck -"${POLICY_HOME}"/bin/features enable pooling-dmaap "${POLICY_HOME}"/bin/features enable distributed-locking "${POLICY_HOME}"/bin/db-migrator -s pooling -o upgrade @@ -25,16 +24,16 @@ # so not to lose any configuration updates echo -echo "creating PDPD-CONFIGURATION topic" +echo "testing publish to PDPD-CONFIGURATION topic" echo -curl --silent --connect-timeout 60 -X POST --header "Content-Type: application/json" -d "{}" http://message-router:3904/events/PDPD-CONFIGURATION +curl --silent --connect-timeout 15 -X POST --header "Content-Type: application/json" -d "{}" http://message-router:3904/events/PDPD-CONFIGURATION echo -echo "removing PDPD-CONFIGURATION topic dummy message" +echo "testing subscribe to PDPD-CONFIGURATION topic " echo -curl --silent --connect-timeout 60 -X GET http://message-router:3904/events/PDPD-CONFIGURATION/1/1?timeout=15000 +curl --silent --connect-timeout 15 -X GET http://message-router:3904/events/PDPD-CONFIGURATION/1/1?timeout=5000 # for resiliency/scalability scenarios, check to see # if there's an amsterdam artifact already deployed @@ -47,7 +46,7 @@ echo echo "checking if there are amsterdam policies already deployed .." echo -AMSTERDAM_VERSION=$(curl --silent --connect-timeout 60 -X GET "http://nexus:8081/nexus/service/local/artifact/maven/resolve?r=releases&g=org.onap.policy-engine.drools.amsterdam&a=policy-amsterdam-rules&v=RELEASE" | grep -Po "(?<=<version>).*(?=</version>)") +AMSTERDAM_VERSION=$(curl --silent --connect-timeout 20 -X GET "http://nexus:8081/nexus/service/local/artifact/maven/resolve?r=releases&g=org.onap.policy-engine.drools.amsterdam&a=policy-amsterdam-rules&v=RELEASE" | grep -Po "(?<=<version>).*(?=</version>)") if [[ -z ${AMSTERDAM_VERSION} ]]; then echo "no amsterdam policies have been found .." diff --git a/kubernetes/policy/charts/drools/values.yaml b/kubernetes/policy/charts/drools/values.yaml index ca62f2b01d..b469ce703f 100644 --- a/kubernetes/policy/charts/drools/values.yaml +++ b/kubernetes/policy/charts/drools/values.yaml @@ -27,7 +27,7 @@ global: ################################################################# # application image repository: nexus3.onap.org:10001 -image: onap/policy-drools:1.2.2 +image: onap/policy-drools:1.2.3 pullPolicy: Always # flag to enable debugging - application support required @@ -38,7 +38,7 @@ config: nexusPort: 8081 # default number of instances -replicaCount: 2 +replicaCount: 1 nodeSelector: {} @@ -46,14 +46,14 @@ affinity: {} # probe configuration parameters liveness: - initialDelaySeconds: 10 + initialDelaySeconds: 180 periodSeconds: 10 # necessary to disable liveness probe when setting breakpoints # in debugger so K8s doesn't restart unresponsive container enabled: true readiness: - initialDelaySeconds: 10 + initialDelaySeconds: 60 periodSeconds: 10 service: diff --git a/kubernetes/policy/charts/pdp/values.yaml b/kubernetes/policy/charts/pdp/values.yaml index 811830ea89..45d8d60f5c 100644 --- a/kubernetes/policy/charts/pdp/values.yaml +++ b/kubernetes/policy/charts/pdp/values.yaml @@ -27,7 +27,7 @@ global: ################################################################# # application image repository: nexus3.onap.org:10001 -image: onap/policy-pe:1.2.2 +image: onap/policy-pe:1.2.3 pullPolicy: Always # flag to enable debugging - application support required @@ -38,7 +38,7 @@ config: papPort: 9091 # default number of instances -replicaCount: 2 +replicaCount: 1 nodeSelector: {} diff --git a/kubernetes/policy/resources/config/pe/push-policies.sh b/kubernetes/policy/resources/config/pe/push-policies.sh index 5172086d8a..dcd3afb9ad 100644 --- a/kubernetes/policy/resources/config/pe/push-policies.sh +++ b/kubernetes/policy/resources/config/pe/push-policies.sh @@ -22,7 +22,7 @@ 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 +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?h=beijing sleep 2 diff --git a/kubernetes/policy/values.yaml b/kubernetes/policy/values.yaml index 42d58472ed..6aa8c7e61a 100644 --- a/kubernetes/policy/values.yaml +++ b/kubernetes/policy/values.yaml @@ -40,7 +40,7 @@ global: ################################################################# # application image repository: nexus3.onap.org:10001 -image: onap/policy-pe:1.2.2 +image: onap/policy-pe:1.2.3 pullPolicy: Always subChartsOnly: diff --git a/kubernetes/portal/charts/portal-widget/resources/config/deliveries/properties/ONAPWIDGETMS/application.properties b/kubernetes/portal/charts/portal-widget/resources/config/deliveries/properties/ONAPWIDGETMS/application.properties index e353ace516..60cc1db3e6 100644 --- a/kubernetes/portal/charts/portal-widget/resources/config/deliveries/properties/ONAPWIDGETMS/application.properties +++ b/kubernetes/portal/charts/portal-widget/resources/config/deliveries/properties/ONAPWIDGETMS/application.properties @@ -19,7 +19,7 @@ security.user.name=widget_user security.user.password=ENC(IjywcRnI9+nuVEh9+OFFiRWAjBT1n718) initialization.default.widgets=true -initialization.widgetData.url=http://portal-app:8080/ONAPPORTAL/commonWidgets +initialization.widgetData.url=http://portal-app:{{.Values.global.portalPort}}/ONAPPORTAL/commonWidgets ## Account Basic Authentication Properties account.user.name=portal diff --git a/kubernetes/robot/values.yaml b/kubernetes/robot/values.yaml index 54d72a7431..cc81b9d110 100644 --- a/kubernetes/robot/values.yaml +++ b/kubernetes/robot/values.yaml @@ -21,7 +21,7 @@ global: # global defaults # application image repository: nexus3.onap.org:10001 -image: onap/testsuite:1.2.0 +image: onap/testsuite:1.2.1 pullPolicy: Always ubuntuInitImage: oomk8s/ubuntu-init:2.0.0 diff --git a/kubernetes/sdc/charts/sdc-be/values.yaml b/kubernetes/sdc/charts/sdc-be/values.yaml index 75e096121f..113cb108d1 100644 --- a/kubernetes/sdc/charts/sdc-be/values.yaml +++ b/kubernetes/sdc/charts/sdc-be/values.yaml @@ -27,8 +27,8 @@ global: ################################################################# # application image repository: nexus3.onap.org:10001 -image: onap/sdc-backend:1.2-STAGING-latest -backendInitImage: onap/sdc-backend-init:1.2-STAGING-latest +image: onap/sdc-backend:1.2.0 +backendInitImage: onap/sdc-backend-init:1.2.0 pullPolicy: Always # flag to enable debugging - application support required diff --git a/kubernetes/sdc/charts/sdc-cs/values.yaml b/kubernetes/sdc/charts/sdc-cs/values.yaml index 3baf2e0805..373d6e81ab 100644 --- a/kubernetes/sdc/charts/sdc-cs/values.yaml +++ b/kubernetes/sdc/charts/sdc-cs/values.yaml @@ -27,8 +27,8 @@ global: ################################################################# # application image repository: nexus3.onap.org:10001 -image: onap/sdc-cassandra:1.2-STAGING-latest -cassandraInitImage: onap/sdc-cassandra-init:1.2-STAGING-latest +image: onap/sdc-cassandra:1.2.0 +cassandraInitImage: onap/sdc-cassandra-init:1.2.0 pullPolicy: Always diff --git a/kubernetes/sdc/charts/sdc-es/values.yaml b/kubernetes/sdc/charts/sdc-es/values.yaml index 31986a0a96..d90e9840b6 100644 --- a/kubernetes/sdc/charts/sdc-es/values.yaml +++ b/kubernetes/sdc/charts/sdc-es/values.yaml @@ -30,8 +30,8 @@ global: ################################################################# # application image repository: nexus3.onap.org:10001 -image: onap/sdc-elasticsearch:1.2-STAGING-latest -elasticInitImage: onap/sdc-init-elasticsearch:1.2-STAGING-latest +image: onap/sdc-elasticsearch:1.2.0 +elasticInitImage: onap/sdc-init-elasticsearch:1.2.0 pullPolicy: Always # flag to enable debugging - application support required diff --git a/kubernetes/sdc/charts/sdc-fe/values.yaml b/kubernetes/sdc/charts/sdc-fe/values.yaml index 9d65b6584c..e57c226a21 100644 --- a/kubernetes/sdc/charts/sdc-fe/values.yaml +++ b/kubernetes/sdc/charts/sdc-fe/values.yaml @@ -27,7 +27,7 @@ global: ################################################################# # application image repository: nexus3.onap.org:10001 -image: onap/sdc-frontend:1.2-STAGING-latest +image: onap/sdc-frontend:1.2.0 pullPolicy: Always config: diff --git a/kubernetes/sdc/charts/sdc-kb/values.yaml b/kubernetes/sdc/charts/sdc-kb/values.yaml index 2dc551fc16..bc481ac3f5 100644 --- a/kubernetes/sdc/charts/sdc-kb/values.yaml +++ b/kubernetes/sdc/charts/sdc-kb/values.yaml @@ -27,7 +27,7 @@ global: ################################################################# # application image repository: nexus3.onap.org:10001 -image: onap/sdc-kibana:1.2-STAGING-latest +image: onap/sdc-kibana:1.2.0 pullPolicy: Always config: diff --git a/kubernetes/sdc/charts/sdc-onboarding-be/values.yaml b/kubernetes/sdc/charts/sdc-onboarding-be/values.yaml index 24ad1389d0..abee401ba6 100644 --- a/kubernetes/sdc/charts/sdc-onboarding-be/values.yaml +++ b/kubernetes/sdc/charts/sdc-onboarding-be/values.yaml @@ -27,8 +27,8 @@ global: ################################################################# # application image repository: nexus3.onap.org:10001 -image: onap/sdc-onboard-backend:1.2-STAGING-latest -onboardingInitImage: onap/sdc-onboard-cassandra-init:1.2-STAGING-latest +image: onap/sdc-onboard-backend:1.2.0 +onboardingInitImage: onap/sdc-onboard-cassandra-init:1.2.0 pullPolicy: Always # flag to enable debugging - application support required diff --git a/kubernetes/sdc/charts/sdc-wfd/values.yaml b/kubernetes/sdc/charts/sdc-wfd/values.yaml index 754899b672..ca11780f22 100644 --- a/kubernetes/sdc/charts/sdc-wfd/values.yaml +++ b/kubernetes/sdc/charts/sdc-wfd/values.yaml @@ -23,7 +23,7 @@ global: ################################################################# # application image repository: nexus3.onap.org:10001 -image: onap/sdc/sdc-workflow-designer:1.1.0-SNAPSHOT-STAGING-latest +image: onap/sdc/sdc-workflow-designer:1.1.0 pullPolicy: Always # flag to enable debugging - application support required diff --git a/kubernetes/sdnc/charts/dmaap-listener/values.yaml b/kubernetes/sdnc/charts/dmaap-listener/values.yaml index fec13eb654..27ce0f3924 100644 --- a/kubernetes/sdnc/charts/dmaap-listener/values.yaml +++ b/kubernetes/sdnc/charts/dmaap-listener/values.yaml @@ -27,7 +27,7 @@ global: ################################################################# # application image repository: nexus3.onap.org:10001 -image: onap/sdnc-dmaap-listener-image:1.3-STAGING-latest +image: onap/sdnc-dmaap-listener-image:1.3.4 pullPolicy: Always # flag to enable debugging - application support required diff --git a/kubernetes/sdnc/charts/sdnc-ansible-server/values.yaml b/kubernetes/sdnc/charts/sdnc-ansible-server/values.yaml index 088008bf7e..f69ae0ff80 100644 --- a/kubernetes/sdnc/charts/sdnc-ansible-server/values.yaml +++ b/kubernetes/sdnc/charts/sdnc-ansible-server/values.yaml @@ -27,7 +27,7 @@ global: ################################################################# # application image repository: nexus3.onap.org:10001 -image: onap/sdnc-ansible-server-image:1.3-STAGING-latest +image: onap/sdnc-ansible-server-image:1.3.4 pullPolicy: Always # flag to enable debugging - application support required diff --git a/kubernetes/sdnc/charts/sdnc-portal/values.yaml b/kubernetes/sdnc/charts/sdnc-portal/values.yaml index f5cd48c12f..e741db312a 100644 --- a/kubernetes/sdnc/charts/sdnc-portal/values.yaml +++ b/kubernetes/sdnc/charts/sdnc-portal/values.yaml @@ -27,7 +27,7 @@ global: ################################################################# # application image repository: nexus3.onap.org:10001 -image: onap/admportal-sdnc-image:1.3-STAGING-latest +image: onap/admportal-sdnc-image:1.3.4 pullPolicy: Always # flag to enable debugging - application support required diff --git a/kubernetes/sdnc/charts/ueb-listener/values.yaml b/kubernetes/sdnc/charts/ueb-listener/values.yaml index 12f675c0e4..d050f569d8 100644 --- a/kubernetes/sdnc/charts/ueb-listener/values.yaml +++ b/kubernetes/sdnc/charts/ueb-listener/values.yaml @@ -27,7 +27,7 @@ global: ################################################################# # application image repository: nexus3.onap.org:10001 -image: onap/sdnc-ueb-listener-image:1.3-STAGING-latest +image: onap/sdnc-ueb-listener-image:1.3.4 pullPolicy: Always # flag to enable debugging - application support required diff --git a/kubernetes/sdnc/resources/config/bin/installSdncDb.sh b/kubernetes/sdnc/resources/config/bin/installSdncDb.sh index e574bd7aec..ab0bc35880 100644 --- a/kubernetes/sdnc/resources/config/bin/installSdncDb.sh +++ b/kubernetes/sdnc/resources/config/bin/installSdncDb.sh @@ -53,3 +53,6 @@ done # Create VNIs 100-199 ${SDNC_HOME}/bin/addVnis.sh 100 199 + +# Drop FK_NETWORK_MODEL foreign key as workaround for SDNC-291. +${SDNC_HOME}/bin/rmForeignKey.sh NETWORK_MODEL FK_NETWORK_MODEL
\ No newline at end of file diff --git a/kubernetes/sdnc/values.yaml b/kubernetes/sdnc/values.yaml index 89d6f7cc72..58adf48f99 100644 --- a/kubernetes/sdnc/values.yaml +++ b/kubernetes/sdnc/values.yaml @@ -31,7 +31,7 @@ global: # application images repository: nexus3.onap.org:10001 pullPolicy: Always -image: onap/sdnc-image:1.3-STAGING-latest +image: onap/sdnc-image:1.3.4 # flag to enable debugging - application support required debugEnabled: false diff --git a/kubernetes/so/resources/config/mso/mso-docker.json b/kubernetes/so/resources/config/mso/mso-docker.json index e22034642a..167a8edc09 100755 --- a/kubernetes/so/resources/config/mso/mso-docker.json +++ b/kubernetes/so/resources/config/mso/mso-docker.json @@ -191,8 +191,8 @@ "sdncTimeoutFirewall": "20", "callbackRetryAttempts": "30", "callbackRetrySleepTime": "1000", - "appcClientTopicRead": "APPC-LCM-READ", - "appcClientTopicWrite": "APPC-LCM-WRITE", + "appcClientTopicRead": "APPC-LCM-WRITE", + "appcClientTopicWrite": "APPC-LCM-READ", "appcClientTopicSdncRead": "SDNC-LCM-WRITE", "appcClientTopicSdncWrite": "SDNC-LCM-READ", "appcClientTopicReadTimeout": "360000", diff --git a/kubernetes/vfc/charts/vfc-catalog/values.yaml b/kubernetes/vfc/charts/vfc-catalog/values.yaml index 465a0ae964..cd3d5a5995 100644 --- a/kubernetes/vfc/charts/vfc-catalog/values.yaml +++ b/kubernetes/vfc/charts/vfc-catalog/values.yaml @@ -27,7 +27,7 @@ global: ################################################################# # application image repository: nexus3.onap.org:10001 -image: onap/vfc/catalog:1.1.0-STAGING-latest +image: onap/vfc/catalog:1.1.0 pullPolicy: Always # flag to enable debugging - application support required diff --git a/kubernetes/vfc/charts/vfc-ems-driver/values.yaml b/kubernetes/vfc/charts/vfc-ems-driver/values.yaml index cfdc8fa026..43c3b43f4a 100644 --- a/kubernetes/vfc/charts/vfc-ems-driver/values.yaml +++ b/kubernetes/vfc/charts/vfc-ems-driver/values.yaml @@ -27,7 +27,7 @@ global: ################################################################# # application image repository: nexus3.onap.org:10001 -image: onap/vfc/emsdriver:1.1.0-STAGING-latest +image: onap/vfc/emsdriver:1.1.0 pullPolicy: Always # flag to enable debugging - application support required diff --git a/kubernetes/vfc/charts/vfc-generic-vnfm-driver/values.yaml b/kubernetes/vfc/charts/vfc-generic-vnfm-driver/values.yaml index b383a945b1..f5384cf4ba 100644 --- a/kubernetes/vfc/charts/vfc-generic-vnfm-driver/values.yaml +++ b/kubernetes/vfc/charts/vfc-generic-vnfm-driver/values.yaml @@ -27,7 +27,7 @@ global: ################################################################# # application image repository: nexus3.onap.org:10001 -image: onap/vfc/gvnfmdriver:1.1.0-STAGING-latest +image: onap/vfc/gvnfmdriver:1.1.0 pullPolicy: Always # flag to enable debugging - application support required diff --git a/kubernetes/vfc/charts/vfc-huawei-vnfm-driver/values.yaml b/kubernetes/vfc/charts/vfc-huawei-vnfm-driver/values.yaml index 407837b37e..72423c44a8 100644 --- a/kubernetes/vfc/charts/vfc-huawei-vnfm-driver/values.yaml +++ b/kubernetes/vfc/charts/vfc-huawei-vnfm-driver/values.yaml @@ -27,7 +27,7 @@ global: ################################################################# # application image repository: nexus3.onap.org:10001 -image: onap/vfc/nfvo/svnfm/huawei:1.1.0-STAGING-latest +image: onap/vfc/nfvo/svnfm/huawei:1.1.0 pullPolicy: Always # flag to enable debugging - application support required diff --git a/kubernetes/vfc/charts/vfc-juju-vnfm-driver/values.yaml b/kubernetes/vfc/charts/vfc-juju-vnfm-driver/values.yaml index a27ee6ae50..2919e3762f 100644 --- a/kubernetes/vfc/charts/vfc-juju-vnfm-driver/values.yaml +++ b/kubernetes/vfc/charts/vfc-juju-vnfm-driver/values.yaml @@ -27,7 +27,7 @@ global: ################################################################# # application image repository: nexus3.onap.org:10001 -image: onap/vfc/jujudriver:1.1.0-STAGING-latest +image: onap/vfc/jujudriver:1.1.0 pullPolicy: Always # flag to enable debugging - application support required diff --git a/kubernetes/vfc/charts/vfc-multivim-proxy/values.yaml b/kubernetes/vfc/charts/vfc-multivim-proxy/values.yaml index 10eee7f0cb..ca69da2b58 100644 --- a/kubernetes/vfc/charts/vfc-multivim-proxy/values.yaml +++ b/kubernetes/vfc/charts/vfc-multivim-proxy/values.yaml @@ -27,7 +27,7 @@ global: ################################################################# # application image repository: nexus3.onap.org:10001 -image: onap/vfc/multivimproxy:1.0.0-STAGING-latest +image: onap/vfc/multivimproxy:1.0.0 pullPolicy: Always # flag to enable debugging - application support required diff --git a/kubernetes/vfc/charts/vfc-nokia-v2vnfm-driver/values.yaml b/kubernetes/vfc/charts/vfc-nokia-v2vnfm-driver/values.yaml index b20446f34e..479f67c754 100644 --- a/kubernetes/vfc/charts/vfc-nokia-v2vnfm-driver/values.yaml +++ b/kubernetes/vfc/charts/vfc-nokia-v2vnfm-driver/values.yaml @@ -27,7 +27,7 @@ global: ################################################################# # application image repository: nexus3.onap.org:10001 -image: onap/vfc/nfvo/svnfm/nokiav2:1.1.0-STAGING-latest +image: onap/vfc/nfvo/svnfm/nokiav2:1.1.0 pullPolicy: Always # flag to enable debugging - application support required diff --git a/kubernetes/vfc/charts/vfc-nokia-vnfm-driver/values.yaml b/kubernetes/vfc/charts/vfc-nokia-vnfm-driver/values.yaml index e4a29d96ec..f61965f507 100644 --- a/kubernetes/vfc/charts/vfc-nokia-vnfm-driver/values.yaml +++ b/kubernetes/vfc/charts/vfc-nokia-vnfm-driver/values.yaml @@ -27,7 +27,7 @@ global: ################################################################# # application image repository: nexus3.onap.org:10001 -image: onap/vfc/nfvo/svnfm/nokia:1.1.0-STAGING-latest +image: onap/vfc/nfvo/svnfm/nokia:1.1.0 pullPolicy: Always # flag to enable debugging - application support required diff --git a/kubernetes/vfc/charts/vfc-nslcm/values.yaml b/kubernetes/vfc/charts/vfc-nslcm/values.yaml index 313b5a9c91..120f8d05e1 100644 --- a/kubernetes/vfc/charts/vfc-nslcm/values.yaml +++ b/kubernetes/vfc/charts/vfc-nslcm/values.yaml @@ -27,7 +27,7 @@ global: ################################################################# # application image repository: nexus3.onap.org:10001 -image: onap/vfc/nslcm:1.1.0-STAGING-latest +image: onap/vfc/nslcm:1.1.0 pullPolicy: Always # flag to enable debugging - application support required diff --git a/kubernetes/vfc/charts/vfc-resmgr/values.yaml b/kubernetes/vfc/charts/vfc-resmgr/values.yaml index c1e7a63a15..6e5251b343 100644 --- a/kubernetes/vfc/charts/vfc-resmgr/values.yaml +++ b/kubernetes/vfc/charts/vfc-resmgr/values.yaml @@ -27,7 +27,7 @@ global: ################################################################# # application image repository: nexus3.onap.org:10001 -image: onap/vfc/resmanagement:1.1.0-STAGING-latest +image: onap/vfc/resmanagement:1.1.0 pullPolicy: Always # flag to enable debugging - application support required diff --git a/kubernetes/vfc/charts/vfc-vnflcm/values.yaml b/kubernetes/vfc/charts/vfc-vnflcm/values.yaml index 6afc34d44a..4c7d3ea273 100644 --- a/kubernetes/vfc/charts/vfc-vnflcm/values.yaml +++ b/kubernetes/vfc/charts/vfc-vnflcm/values.yaml @@ -27,7 +27,7 @@ global: ################################################################# # application image repository: nexus3.onap.org:10001 -image: onap/vfc/vnflcm:1.1.0-STAGING-latest +image: onap/vfc/vnflcm:1.1.0 pullPolicy: Always # flag to enable debugging - application support required diff --git a/kubernetes/vfc/charts/vfc-vnfmgr/values.yaml b/kubernetes/vfc/charts/vfc-vnfmgr/values.yaml index 244e6f2b9f..e5c2bd717d 100644 --- a/kubernetes/vfc/charts/vfc-vnfmgr/values.yaml +++ b/kubernetes/vfc/charts/vfc-vnfmgr/values.yaml @@ -27,7 +27,7 @@ global: ################################################################# # application image repository: nexus3.onap.org:10001 -image: onap/vfc/vnfmgr:1.1.0-STAGING-latest +image: onap/vfc/vnfmgr:1.1.0 pullPolicy: Always # flag to enable debugging - application support required diff --git a/kubernetes/vfc/charts/vfc-vnfres/values.yaml b/kubernetes/vfc/charts/vfc-vnfres/values.yaml index fec9089160..9dbe3edc74 100644 --- a/kubernetes/vfc/charts/vfc-vnfres/values.yaml +++ b/kubernetes/vfc/charts/vfc-vnfres/values.yaml @@ -27,7 +27,7 @@ global: ################################################################# # application image repository: nexus3.onap.org:10001 -image: onap/vfc/vnfres:1.1.0-STAGING-latest +image: onap/vfc/vnfres:1.1.0 pullPolicy: Always # flag to enable debugging - application support required diff --git a/kubernetes/vfc/charts/vfc-workflow-engine/values.yaml b/kubernetes/vfc/charts/vfc-workflow-engine/values.yaml index 5a7503472e..8e9f151dbb 100644 --- a/kubernetes/vfc/charts/vfc-workflow-engine/values.yaml +++ b/kubernetes/vfc/charts/vfc-workflow-engine/values.yaml @@ -27,7 +27,7 @@ global: ################################################################# # application image repository: nexus3.onap.org:10001 -image: onap/vfc/wfengine-activiti:latest +image: onap/vfc/wfengine-activiti:1.1.0 pullPolicy: Always # flag to enable debugging - application support required diff --git a/kubernetes/vfc/charts/vfc-workflow/values.yaml b/kubernetes/vfc/charts/vfc-workflow/values.yaml index 94d8673bed..dd4e09476c 100644 --- a/kubernetes/vfc/charts/vfc-workflow/values.yaml +++ b/kubernetes/vfc/charts/vfc-workflow/values.yaml @@ -27,7 +27,7 @@ global: ################################################################# # application image repository: nexus3.onap.org:10001 -image: onap/vfc/wfengine-mgrservice:latest +image: onap/vfc/wfengine-mgrservice:1.1.0 pullPolicy: Always # flag to enable debugging - application support required diff --git a/kubernetes/vfc/charts/vfc-zte-sdnc-driver/values.yaml b/kubernetes/vfc/charts/vfc-zte-sdnc-driver/values.yaml index 4a736e58f9..2517e2cde5 100644 --- a/kubernetes/vfc/charts/vfc-zte-sdnc-driver/values.yaml +++ b/kubernetes/vfc/charts/vfc-zte-sdnc-driver/values.yaml @@ -27,7 +27,7 @@ global: ################################################################# # application image repository: nexus3.onap.org:10001 -image: onap/vfc/ztesdncdriver:1.1.0-STAGING-latest +image: onap/vfc/ztesdncdriver:1.1.0 pullPolicy: Always # flag to enable debugging - application support required diff --git a/kubernetes/vfc/charts/vfc-zte-vnfm-driver/values.yaml b/kubernetes/vfc/charts/vfc-zte-vnfm-driver/values.yaml index 751e99eaf1..5199f19067 100644 --- a/kubernetes/vfc/charts/vfc-zte-vnfm-driver/values.yaml +++ b/kubernetes/vfc/charts/vfc-zte-vnfm-driver/values.yaml @@ -27,7 +27,7 @@ global: ################################################################# # application image repository: nexus3.onap.org:10001 -image: onap/vfc/ztevnfmdriver:1.1.0-STAGING-latest +image: onap/vfc/ztevnfmdriver:1.1.0 pullPolicy: Always # flag to enable debugging - application support required diff --git a/kubernetes/vid/charts/mariadb/.helmignore b/kubernetes/vid/charts/mariadb/.helmignore deleted file mode 100644 index f0c1319444..0000000000 --- a/kubernetes/vid/charts/mariadb/.helmignore +++ /dev/null @@ -1,21 +0,0 @@ -# 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/vid/charts/mariadb/Chart.yaml b/kubernetes/vid/charts/mariadb/Chart.yaml deleted file mode 100644 index 1f7de32fdf..0000000000 --- a/kubernetes/vid/charts/mariadb/Chart.yaml +++ /dev/null @@ -1,18 +0,0 @@ -# Copyright © 2017 Amdocs, Bell Canada -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -apiVersion: v1 -description: VID MariaDB Service -name: mariadb -version: 2.0.0 diff --git a/kubernetes/vid/charts/mariadb/resources/config/lf_config/vid-my.cnf b/kubernetes/vid/charts/mariadb/resources/config/lf_config/vid-my.cnf deleted file mode 100644 index 472bf4698e..0000000000 --- a/kubernetes/vid/charts/mariadb/resources/config/lf_config/vid-my.cnf +++ /dev/null @@ -1,192 +0,0 @@ -# MariaDB database server configuration file. -# -# You can copy this file to one of: -# - "/etc/mysql/my.cnf" to set global options, -# - "~/.my.cnf" to set user-specific options. -# -# One can use all long options that the program supports. -# Run program with --help to get a list of available options and with -# --print-defaults to see which it would actually understand and use. -# -# For explanations see -# http://dev.mysql.com/doc/mysql/en/server-system-variables.html - -# This will be passed to all mysql clients -# It has been reported that passwords should be enclosed with ticks/quotes -# escpecially if they contain "#" chars... -# Remember to edit /etc/mysql/debian.cnf when changing the socket location. -[client] -port = 3306 -socket = /var/run/mysqld/mysqld.sock - -# Here is entries for some specific programs -# The following values assume you have at least 32M ram - -# This was formally known as [safe_mysqld]. Both versions are currently parsed. -[mysqld_safe] -socket = /var/run/mysqld/mysqld.sock -nice = 0 - -[mysqld] -lower_case_table_names = 1 -skip-host-cache -skip-name-resolve -# -# * Basic Settings -# -#user = mysql -pid-file = /var/run/mysqld/mysqld.pid -socket = /var/run/mysqld/mysqld.sock -port = 3306 -basedir = /usr -datadir = /var/lib/mysql -tmpdir = /tmp -lc_messages_dir = /usr/share/mysql -lc_messages = en_US -skip-external-locking -# -# Instead of skip-networking the default is now to listen only on -# localhost which is more compatible and is not less secure. -#bind-address = 127.0.0.1 -# -# * Fine Tuning -# -max_connections = 100 -connect_timeout = 5 -wait_timeout = 600 -max_allowed_packet = 16M -thread_cache_size = 128 -sort_buffer_size = 4M -bulk_insert_buffer_size = 16M -tmp_table_size = 32M -max_heap_table_size = 32M -# -# * MyISAM -# -# This replaces the startup script and checks MyISAM tables if needed -# the first time they are touched. On error, make copy and try a repair. -myisam_recover_options = BACKUP -key_buffer_size = 128M -#open-files-limit = 2000 -table_open_cache = 400 -myisam_sort_buffer_size = 512M -concurrent_insert = 2 -read_buffer_size = 2M -read_rnd_buffer_size = 1M -# -# * Query Cache Configuration -# -# Cache only tiny result sets, so we can fit more in the query cache. -query_cache_limit = 128K -query_cache_size = 64M -# for more write intensive setups, set to DEMAND or OFF -#query_cache_type = DEMAND -# -# * Logging and Replication -# -# Both location gets rotated by the cronjob. -# Be aware that this log type is a performance killer. -# As of 5.1 you can enable the log at runtime! -#general_log_file = /var/log/mysql/mysql.log -#general_log = 1 -# -# Error logging goes to syslog due to /etc/mysql/conf.d/mysqld_safe_syslog.cnf. -# -# we do want to know about network errors and such -#log_warnings = 2 -# -# Enable the slow query log to see queries with especially long duration -#slow_query_log[={0|1}] -slow_query_log_file = /var/log/mysql/mariadb-slow.log -long_query_time = 10 -#log_slow_rate_limit = 1000 -#log_slow_verbosity = query_plan - -#log-queries-not-using-indexes -#log_slow_admin_statements -# -# The following can be used as easy to replay backup logs or for replication. -# note: if you are setting up a replication slave, see README.Debian about -# other settings you may need to change. -#server-id = 1 -#report_host = master1 -#auto_increment_increment = 2 -#auto_increment_offset = 1 -#log_bin = /var/log/mysql/mariadb-bin -#log_bin_index = /var/log/mysql/mariadb-bin.index -# not fab for performance, but safer -#sync_binlog = 1 -expire_logs_days = 10 -max_binlog_size = 100M -# slaves -#relay_log = /var/log/mysql/relay-bin -#relay_log_index = /var/log/mysql/relay-bin.index -#relay_log_info_file = /var/log/mysql/relay-bin.info -#log_slave_updates -#read_only -# -# If applications support it, this stricter sql_mode prevents some -# mistakes like inserting invalid dates etc. -#sql_mode = NO_ENGINE_SUBSTITUTION,TRADITIONAL -# -# * InnoDB -# -# InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/. -# Read the manual for more InnoDB related options. There are many! -default_storage_engine = InnoDB -# you can't just change log file size, requires special procedure -#innodb_log_file_size = 50M -innodb_buffer_pool_size = 256M -innodb_log_buffer_size = 8M -innodb_file_per_table = 1 -innodb_open_files = 400 -innodb_io_capacity = 400 -innodb_flush_method = O_DIRECT -# -# * Security Features -# -# Read the manual, too, if you want chroot! -# chroot = /var/lib/mysql/ -# -# For generating SSL certificates I recommend the OpenSSL GUI "tinyca". -# -# ssl-ca=/etc/mysql/cacert.pem -# ssl-cert=/etc/mysql/server-cert.pem -# ssl-key=/etc/mysql/server-key.pem - -# -# * Galera-related settings -# -[galera] -# Mandatory settings -#wsrep_on=ON -#wsrep_provider= -#wsrep_cluster_address= -#binlog_format=row -#default_storage_engine=InnoDB -#innodb_autoinc_lock_mode=2 -# -# Allow server to accept connections on all interfaces. -# -#bind-address=0.0.0.0 -# -# Optional setting -#wsrep_slave_threads=1 -#innodb_flush_log_at_trx_commit=0 - -[mysqldump] -quick -quote-names -max_allowed_packet = 16M - -[mysql] -#no-auto-rehash # faster start of mysql but no tab completion - -[isamchk] -key_buffer = 16M - -# -# * IMPORTANT: Additional settings that can override those from this file! -# The files must end with '.cnf', otherwise they'll be ignored. -# -!includedir /etc/mysql/conf.d/ diff --git a/kubernetes/vid/charts/mariadb/resources/config/lf_config/vid-pre-init.sql b/kubernetes/vid/charts/mariadb/resources/config/lf_config/vid-pre-init.sql deleted file mode 100644 index 8323a4ae86..0000000000 --- a/kubernetes/vid/charts/mariadb/resources/config/lf_config/vid-pre-init.sql +++ /dev/null @@ -1,28 +0,0 @@ -/* Copyright © 2017 AT&T, Amdocs, Bell Canada -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`schema_info` ( - `SCHEMA_ID` VARCHAR(25) NOT NULL, - `SCHEMA_DESC` VARCHAR(75) NOT NULL, - `DATASOURCE_TYPE` VARCHAR(100) NULL DEFAULT NULL, - `CONNECTION_URL` VARCHAR(200) NOT NULL, - `USER_NAME` VARCHAR(45) NOT NULL, - `PASSWORD` VARCHAR(45) NULL DEFAULT NULL, - `DRIVER_CLASS` VARCHAR(100) NOT NULL, - `MIN_POOL_SIZE` INT(11) NOT NULL, - `MAX_POOL_SIZE` INT(11) NOT NULL, - `IDLE_CONNECTION_TEST_PERIOD` INT(11) NOT NULL) - ENGINE = InnoDB - DEFAULT CHARACTER SET = utf8; diff --git a/kubernetes/vid/charts/mariadb/templates/NOTES.txt b/kubernetes/vid/charts/mariadb/templates/NOTES.txt deleted file mode 100644 index 75f0a7a6b3..0000000000 --- a/kubernetes/vid/charts/mariadb/templates/NOTES.txt +++ /dev/null @@ -1,11 +0,0 @@ -1. Get the application URL by running these commands: -{{- if .Values.ingress.enabled }} -{{- range .Values.ingress.hosts }} - http://{{ . }} -{{- end }} - 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 }} - export POD_NAME=$(kubectl get pods --namespace {{ include "common.namespace" . }} -l "app={{ .Chart.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/vid/charts/mariadb/templates/configmap.yaml b/kubernetes/vid/charts/mariadb/templates/configmap.yaml deleted file mode 100644 index 8a35df3f30..0000000000 --- a/kubernetes/vid/charts/mariadb/templates/configmap.yaml +++ /dev/null @@ -1,21 +0,0 @@ -# Copyright © 2017 Amdocs, Bell Canada -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -apiVersion: v1 -kind: ConfigMap -metadata: - name: {{ include "common.fullname" . }}-lfconfig - namespace: {{ include "common.namespace" . }} -data: -{{ tpl (.Files.Glob "resources/config/lf_config/*").AsConfig . | indent 2 }} diff --git a/kubernetes/vid/charts/mariadb/templates/deployment.yaml b/kubernetes/vid/charts/mariadb/templates/deployment.yaml deleted file mode 100644 index 0560f60d8f..0000000000 --- a/kubernetes/vid/charts/mariadb/templates/deployment.yaml +++ /dev/null @@ -1,109 +0,0 @@ -# Copyright © 2017 Amdocs, Bell Canada -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -apiVersion: 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: - containers: - - name: {{ include "common.name" . }} - image: "{{ include "common.repository" . }}/{{ .Values.image }}" - imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} - ports: - - containerPort: {{ .Values.service.internalPort }} - {{- 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_DATABASE - value: "{{ .Values.config.mysqldb }}" - - name: MYSQL_USER - value: "{{ .Values.config.mysqluser }}" - - name: MYSQL_PASSWORD - valueFrom: - secretKeyRef: - name: {{ template "common.fullname" . }} - key: db-password - - name: MYSQL_ROOT_PASSWORD - valueFrom: - secretKeyRef: - name: {{ template "common.fullname" . }} - key: db-root-password - volumeMounts: - - mountPath: /etc/localtime - name: localtime - readOnly: true - - mountPath: /var/lib/mysql - name: mariadb-data - - mountPath: /docker-entrypoint-initdb.d/vid-pre-init.sql - name: lfconfig - subPath: vid-pre-init.sql - - mountPath: /etc/mysql/my.cnf - name: lfconfig - subPath: my.cnf - resources: -{{ toYaml .Values.resources | indent 12 }} - {{- if .Values.nodeSelector }} - nodeSelector: -{{ toYaml .Values.nodeSelector | indent 10 }} - {{- end -}} - {{- if .Values.affinity }} - affinity: -{{ toYaml .Values.affinity | indent 10 }} - {{- end }} - volumes: - - name: mariadb-data - {{- if .Values.persistence.enabled }} - persistentVolumeClaim: - claimName: {{ include "common.fullname" . }} - {{- else }} - emptyDir: {} - {{- end }} - - name: localtime - hostPath: - path: /etc/localtime - - name: lfconfig - configMap: - name: {{ include "common.fullname" . }}-lfconfig - defaultMode: 0755 - items: - - key: vid-my.cnf - path: my.cnf - - key: vid-pre-init.sql - path: vid-pre-init.sql - imagePullSecrets: - - name: "{{ include "common.namespace" . }}-docker-registry-key" diff --git a/kubernetes/vid/charts/mariadb/templates/secrets.yaml b/kubernetes/vid/charts/mariadb/templates/secrets.yaml deleted file mode 100644 index 36096925f5..0000000000 --- a/kubernetes/vid/charts/mariadb/templates/secrets.yaml +++ /dev/null @@ -1,28 +0,0 @@ -# Copyright © 2017 Amdocs, Bell Canada -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -apiVersion: v1 -kind: 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 }} - db-password: {{ .Values.config.mariadbPassword | b64enc | quote }} diff --git a/kubernetes/vid/charts/mariadb/templates/service.yaml b/kubernetes/vid/charts/mariadb/templates/service.yaml deleted file mode 100644 index 35333c441e..0000000000 --- a/kubernetes/vid/charts/mariadb/templates/service.yaml +++ /dev/null @@ -1,31 +0,0 @@ -# Copyright © 2017 Amdocs, Bell Canada -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -apiVersion: v1 -kind: Service -metadata: - name: {{ include "common.servicename" . }} - namespace: {{ include "common.namespace" . }} - labels: - app: {{ include "common.name" . }} - chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} - release: {{ .Release.Name }} - heritage: {{ .Release.Service }} -spec: - ports: - - port: {{ .Values.service.internalPort }} - name: {{ .Values.service.portName }} - selector: - app: {{ include "common.name" . }} - release: {{ .Release.Name }} diff --git a/kubernetes/vid/charts/mariadb/values.yaml b/kubernetes/vid/charts/mariadb/values.yaml deleted file mode 100644 index c23d8bebfa..0000000000 --- a/kubernetes/vid/charts/mariadb/values.yaml +++ /dev/null @@ -1,102 +0,0 @@ -# Copyright © 2017 Amdocs, Bell Canada -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# Default values for mariadb. -# This is a YAML-formatted file. -# Declare variables to be passed into your templates. -global: # global defaults - nodePortPrefix: 302 - persistence: {} - - -# application image -repository: nexus3.onap.org:10001 -image: library/mariadb:10 -pullPolicy: Always - -# application configuration -config: - mysqldb: vid_openecomp_epsdk - mysqluser: vidadmin - mariadbRootPassword: LF+tp_1WqgSY - mariadbPassword: Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U - -# 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: vid/mariadb/data - -service: - name: vid-mariadb - portName: vid-mariadb - 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/vid/charts/vid-galera/Chart.yaml b/kubernetes/vid/charts/vid-galera/Chart.yaml new file mode 100644 index 0000000000..85f36dc6fb --- /dev/null +++ b/kubernetes/vid/charts/vid-galera/Chart.yaml @@ -0,0 +1,11 @@ +apiVersion: v1 +description: Chart for MariaDB Galera cluster +name: mariadb-galera +version: 2.0.0 +keywords: + - mariadb + - mysql + - database + - sql + - galera + - cluster
\ No newline at end of file diff --git a/kubernetes/vid/charts/vid-galera/templates/NOTES.txt b/kubernetes/vid/charts/vid-galera/templates/NOTES.txt new file mode 100644 index 0000000000..3dd25ac4b7 --- /dev/null +++ b/kubernetes/vid/charts/vid-galera/templates/NOTES.txt @@ -0,0 +1,12 @@ +MariaDB-Galera service can be accessed via port 3306 on the following DNS name from within your cluster: +{{ include "common.fullname" . }}.{{ .Release.Namespace }}.svc.cluster.local + +To connect to your database: + +1. Run a pod that you can use as a client: + + kubectl run {{ include "common.fullname" . }}-client --rm --tty -i --image mariadb --command -- bash + +2. Connect using the mysql cli, then provide your password: + $ mysql -h {{ include "common.fullname" . }} {{- if .Values.mysqlRootPassword }} -p {{ .Values.mysqlRootPassword }}{{- end -}} + diff --git a/kubernetes/vid/charts/vid-galera/templates/configmap.yaml b/kubernetes/vid/charts/vid-galera/templates/configmap.yaml new file mode 100644 index 0000000000..ea90cd3e45 --- /dev/null +++ b/kubernetes/vid/charts/vid-galera/templates/configmap.yaml @@ -0,0 +1,21 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "common.fullname" . }}-confd + namespace: {{ include "common.namespace" . }} +data: +{{ tpl (.Files.Glob "resources/config/mariadb/conf.d/*").AsConfig . | indent 2 }} +--- +{{- if .Values.externalConfig }} +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "common.fullname" . }}-externalconfig + namespace: {{ include "common.namespace" . }} +data: + my_extra.cnf: |- + [mysqld] + lower_case_table_names = 1 + +#{{ toYaml .Values.externalConfig | indent 4 }} +#{{- end -}} diff --git a/kubernetes/vid/charts/mariadb/templates/pv.yaml b/kubernetes/vid/charts/vid-galera/templates/pv.yaml index 184728f8ad..f682196931 100644 --- a/kubernetes/vid/charts/mariadb/templates/pv.yaml +++ b/kubernetes/vid/charts/vid-galera/templates/pv.yaml @@ -1,5 +1,5 @@ {{/* -# Copyright © 2017 Amdocs, Bell Canada +# Copyright 2017 Amdocs, Bell Canada # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/kubernetes/vid/charts/mariadb/templates/pvc.yaml b/kubernetes/vid/charts/vid-galera/templates/pvc.yaml index e27c3311e9..c3de6e8150 100644 --- a/kubernetes/vid/charts/mariadb/templates/pvc.yaml +++ b/kubernetes/vid/charts/vid-galera/templates/pvc.yaml @@ -1,5 +1,5 @@ {{/* -# Copyright © 2017 Amdocs, Bell Canada +# Copyright 2017 Amdocs, Bell Canada # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/kubernetes/vid/charts/vid-galera/templates/secrets.yaml b/kubernetes/vid/charts/vid-galera/templates/secrets.yaml new file mode 100644 index 0000000000..101a7eba79 --- /dev/null +++ b/kubernetes/vid/charts/vid-galera/templates/secrets.yaml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: Secret +metadata: + name: {{ include "common.fullname" . }} + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" + release: "{{ .Release.Name }}" + heritage: "{{ .Release.Service }}" +type: Opaque +data: + db-root-password: {{ .Values.config.mariadbRootPassword | b64enc | quote }} + user-password: {{ default "" .Values.config.userPassword | b64enc | quote }}
\ No newline at end of file diff --git a/kubernetes/vid/charts/vid-galera/templates/service.yaml b/kubernetes/vid/charts/vid-galera/templates/service.yaml new file mode 100644 index 0000000000..348baa9ddc --- /dev/null +++ b/kubernetes/vid/charts/vid-galera/templates/service.yaml @@ -0,0 +1,20 @@ +apiVersion: v1 +kind: Service +metadata: + annotations: + service.alpha.kubernetes.io/tolerate-unready-endpoints: "true" +# name: {{ include "common.servicename" . }} + name: {{ .Values.service.name }} + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.fullname" . }} + chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" + release: "{{ .Release.Name }}" + heritage: "{{ .Release.Service }}" +spec: + ports: + - name: {{ .Values.service.portName }} + port: {{ .Values.service.internalPort }} + clusterIP: None + selector: + app: {{ include "common.fullname" . }} diff --git a/kubernetes/vid/charts/vid-galera/templates/statefulset.yaml b/kubernetes/vid/charts/vid-galera/templates/statefulset.yaml new file mode 100644 index 0000000000..5470fdcc1c --- /dev/null +++ b/kubernetes/vid/charts/vid-galera/templates/statefulset.yaml @@ -0,0 +1,120 @@ +apiVersion: apps/v1beta1 +kind: StatefulSet +metadata: + name: {{ include "common.fullname" . }} + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.fullname" . }} + chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" + release: "{{ .Release.Name }}" + heritage: "{{ .Release.Service }}" +spec: +# serviceName: {{ include "common.fullname" . }} + serviceName: {{ .Values.service.name }} + replicas: {{ .Values.replicaCount }} + template: + metadata: + labels: + app: {{ include "common.fullname" . }} + annotations: + pod.alpha.kubernetes.io/initialized: "true" + spec: + {{- if .Values.nodeSelector }} + nodeSelector: +{{ toYaml .Values.nodeSelector | indent 8 }} + {{- end }} + volumes: + {{- if .Values.externalConfig }} + - name: config + configMap: + name: {{ include "common.fullname" . }}-externalconfig + {{- end}} + - name: localtime + hostPath: + path: /etc/localtime + imagePullSecrets: + - name: {{ include "common.namespace" . }}-docker-registry-key + containers: + - name: {{ include "common.fullname" . }} + image: "{{ include "common.repository" . }}/{{ .Values.image }}" + imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy | quote}} + env: + - name: POD_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.namespace + - name: MYSQL_USER + value: {{ default "" .Values.config.userName | quote }} + - name: MYSQL_PASSWORD + valueFrom: + secretKeyRef: + name: {{ template "common.fullname" . }} + key: user-password + - name: MYSQL_DATABASE + value: {{ default "" .Values.config.mysqlDatabase | quote }} + - name: MYSQL_ROOT_PASSWORD + valueFrom: + secretKeyRef: + name: {{ template "common.fullname" . }} + key: db-root-password + ports: + - containerPort: {{ .Values.service.internalPort }} + name: {{ .Values.service.name }} + - containerPort: {{ .Values.service.sstPort }} + name: {{ .Values.service.sstName }} + - containerPort: {{ .Values.service.replicationPort }} + name: {{ .Values.service.replicationName }} + - containerPort: {{ .Values.service.istPort }} + name: {{ .Values.service.istName }} + readinessProbe: + exec: + command: + - /usr/share/container-scripts/mysql/readiness-probe.sh + initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }} + periodSeconds: {{ .Values.readiness.periodSeconds }} + {{- if eq .Values.liveness.enabled true }} + livenessProbe: + exec: + command: ["mysqladmin", "ping"] + initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }} + periodSeconds: {{ .Values.liveness.periodSeconds }} + timeoutSeconds: {{ .Values.liveness.timeoutSeconds }} + {{- end }} + resources: +{{ toYaml .Values.resources | indent 12 }} + volumeMounts: + {{- if .Values.externalConfig }} + - mountPath: /etc/config + name: config + {{- end}} + - mountPath: /etc/localtime + name: localtime + readOnly: true +{{- if .Values.persistence.enabled }} + - mountPath: /var/lib/mysql + name: {{ include "common.fullname" . }}-data + subPath: data + initContainers: + - name: mariadb-galera-prepare + image: "{{ include "common.repository" . }}/{{ .Values.imageInit }}" + command: ["sh", "-c", "chown -R 27:27 /var/lib/mysql"] + volumeMounts: + - name: {{ include "common.fullname" . }}-data + mountPath: /var/lib/mysql + volumeClaimTemplates: + - metadata: + name: {{ include "common.fullname" . }}-data + annotations: + {{- if .Values.persistence.storageClass }} + volume.beta.kubernetes.io/storage-class: {{ .Values.persistence.storageClass | quote }} + {{- else }} + volume.alpha.kubernetes.io/storage-class: default + {{- end }} + spec: + accessModes: + - {{ .Values.persistence.accessMode | quote }} + resources: + requests: + storage: {{ .Values.persistence.size | quote }} +{{- end }} diff --git a/kubernetes/vid/charts/vid-galera/values.yaml b/kubernetes/vid/charts/vid-galera/values.yaml new file mode 100644 index 0000000000..31955753df --- /dev/null +++ b/kubernetes/vid/charts/vid-galera/values.yaml @@ -0,0 +1,118 @@ +################################################################# +# Global configuration defaults. +################################################################# +global: + nodePortPrefix: 302 + persistence: {} + repository: nexus3.onap.org:10001 + + +################################################################# +# Application configuration defaults. +################################################################# + +#repository: mysql +repository: nexus3.onap.org:10001 +image: adfinissygroup/k8s-mariadb-galera-centos:v002 +imageInit: busybox +pullPolicy: IfNotPresent + +# application configuration +config: + mariadbRootPassword: secretpassword +# userName: my-user +# userPassword: my-password +# mysqlDatabase: my-database + userName: vidadmin + userPassword: Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U + mysqlDatabase: vid_openecomp_epsdk + + +# default number of instances in the StatefulSet +# keep in mind that if the number is increased you need to update vid-galera-config-job.yaml so that the job will know to wait for all pods. +replicaCount: 1 + +nodeSelector: {} + +affinity: {} + +# probe configuration parameters +liveness: + initialDelaySeconds: 30 + periodSeconds: 10 + timeoutSeconds: 5 + # necessary to disable liveness probe when setting breakpoints + # in debugger so K8s doesn't restart unresponsive container + enabled: false + +readiness: + initialDelaySeconds: 15 + periodSeconds: 10 + +## Persist data to a persitent volume +persistence: + enabled: false + + ## A manually managed Persistent Volume and Claim + ## Requires persistence.enabled: true + ## If defined, PVC must be created manually before volume will be bound + # existingClaim: + volumeReclaimPolicy: Retain + + ## database data Persistent Volume Storage Class + ## If defined, storageClassName: <storageClass> + ## If set to "-", storageClassName: "", which disables dynamic provisioning + ## If undefined (the default) or set to null, no storageClassName spec is + ## set, choosing the default provisioner. (gp2 on AWS, standard on + ## GKE, AWS & OpenStack) + ## + # storageClass: "-" + accessMode: ReadWriteOnce + size: 2Gi + + +service: + internalPort: 3306 + name: vid-galera + portName: vid-galera + sstPort: 4444 + sstName: sst + replicationPort: 4567 + replicationName: replication + istPort: 4568 + istName: ist + +ingress: + enabled: false + + +## Configure MariaDB-Galera with a custom my.cnf file +## ref: https://mariadb.com/kb/en/mariadb/configuring-mariadb-with-mycnf/#example-of-configuration-file +## +#externalConfig: {} +externalConfig: |- + lower_case_table_names = 1 +#resources: {} + # We usually recommend not to specify default resources and to leave this as a conscious + # choice for the user. This also increases chances charts run on environments with little + # resources, such as Minikube. If you do want to specify resources, uncomment the following + # lines, adjust them as necessary, and remove the curly braces after 'resources:'. + # + # Example: + # Configure resource requests and limits + # ref: http://kubernetes.io/docs/user-guide/compute-resources/ + # Minimum memory for development is 2 CPU cores and 4GB memory + # Minimum memory for production is 4 CPU cores and 8GB memory +resources: + limits: + cpu: 2 + memory: 4Gi + requests: + cpu: 2 + memory: 4Gi + +# Name for mariadb-galera cluster - should be unique accross all projects or other clusters +nameOverride: vid-galera + +# DNS name for mariadb-galera cluster - should be unique accross all projects other clusters +#dnsnameOverride: mariadb-galera diff --git a/kubernetes/vid/templates/check-job-completion-configmap.yaml b/kubernetes/vid/templates/check-job-completion-configmap.yaml new file mode 100644 index 0000000000..b9c4488338 --- /dev/null +++ b/kubernetes/vid/templates/check-job-completion-configmap.yaml @@ -0,0 +1,83 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "common.fullname" . }}-check-job-completion + namespace: {{ include "common.namespace" . }} +data: + vid_check_job_completion.py: | + #!/usr/bin/python + from __future__ import print_function + import time, argparse, logging, sys, os + import kubernetes.client + from kubernetes import client, config + from pprint import pprint + + #extract env variables. + namespace = os.environ['NAMESPACE'] + cert = os.environ['CERT'] + host = os.environ['KUBERNETES_SERVICE_HOST'] + token_path = os.environ['TOKEN'] + + with open(token_path, 'r') as token_file: + token = token_file.read().replace('\n', '') + + client.configuration.api_key['authorization'] = token + client.configuration.api_key_prefix['authorization'] = 'Bearer' + client.configuration.host = "https://" + str(host) + client.configuration.ssl_ca_cert = cert + + api_instance = client.BatchV1Api() + + #setup logging + log = logging.getLogger(__name__) + handler = logging.StreamHandler(sys.stdout) + handler.setFormatter(logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')) + handler.setLevel(logging.INFO) + log.addHandler(handler) + log.setLevel(logging.INFO) + + + def is_ready(job_name): + log.info( "[INFO] Checking if " + job_name + " is completed") + pretty = True + job_status = False + + try: + api_response = api_instance.read_namespaced_job_status(job_name, namespace, pretty=pretty) + except Exception as e: + print("Exception when calling BatchV1Api->read_namespaced_job_status: %s\n" % e) + + pprint(api_response) + if api_response.status.succeeded == 1: + job_status_type = api_response.status.conditions[0].type + if job_status_type == "Complete": + job_status = True + + print("[DBG] jobStatus: " + unicode(job_status)) + return job_status + + + def main(args): + for job_name in args: + timeout = time.time() + 60 * 10 + while True: + ready = is_ready(job_name) + if ready is True : + break + elif time.time() > timeout: + log.warning( "timed out waiting for '" + job_name + "' to be ready") + exit(1) + else: + time.sleep(5) + + + if __name__ == "__main__": + parser = argparse.ArgumentParser(description='Process some names.') + parser.add_argument('--job-name', action='append', required=True, help='A container name') + args = parser.parse_args() + arg_dict = vars(args) + + for arg in arg_dict.itervalues(): + main(arg) + + diff --git a/kubernetes/vid/templates/cluster-ready-configmap.yaml b/kubernetes/vid/templates/cluster-ready-configmap.yaml new file mode 100644 index 0000000000..296db335a7 --- /dev/null +++ b/kubernetes/vid/templates/cluster-ready-configmap.yaml @@ -0,0 +1,89 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "common.fullname" . }}-cluster-ready-configmap + namespace: {{ include "common.namespace" . }} +data: + vid_ready.py : |- + #!/usr/bin/python + from kubernetes import client, config + import time, argparse, logging, sys, os + + #extract env variables. + namespace = os.environ['NAMESPACE'] + cert = os.environ['CERT'] + host = os.environ['KUBERNETES_SERVICE_HOST'] + 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 + log = logging.getLogger(__name__) + handler = logging.StreamHandler(sys.stdout) + handler.setFormatter(logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')) + handler.setLevel(logging.INFO) + log.addHandler(handler) + log.setLevel(logging.INFO) + + + 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 + + try: + response = v1.list_namespaced_pod(namespace=namespace, watch=False) + + for i in response.items: + #log.info(i.metadata.name) + for s in i.status.container_statuses: + #log.info(s.name) + if i.metadata.name == container_name: + ready = s.ready + if not ready: + log.info( container_name + " is not ready.") + else: + log.info( container_name + " is ready!") + else: + continue + return ready + except Exception as e: + log.error("Exception when calling list_namespaced_pod: %s\n" % e) + + + def main(args): + # args are a list of container names + for container_name in args: + # 5 min, TODO: make configurable + timeout = time.time() + 60 * 10 + 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") + 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) + + for arg in arg_dict.itervalues(): + main(arg) + + + diff --git a/kubernetes/vid/templates/dbcmd-configmap.yaml b/kubernetes/vid/templates/dbcmd-configmap.yaml new file mode 100644 index 0000000000..7c06e748f4 --- /dev/null +++ b/kubernetes/vid/templates/dbcmd-configmap.yaml @@ -0,0 +1,11 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "common.fullname" . }}-dbcmd-configmap + namespace: {{ include "common.namespace" . }} +data: + db_cmd.sh : |- + #!/bin/sh + #mysql -uroot -p${MYSQL_ROOT_PASSWORD} -h${MYSQL_HOST} -P3306 < /db-config/vid-pre-init.sql + mysql -uvidadmin -p${MYSQL_PASSWORD} -h${MYSQL_HOST} -P3306 < /db-config/vid-pre-init.sql + diff --git a/kubernetes/vid/templates/deployment.yaml b/kubernetes/vid/templates/deployment.yaml index 6da8dd2e3f..8d490fbc4d 100644 --- a/kubernetes/vid/templates/deployment.yaml +++ b/kubernetes/vid/templates/deployment.yaml @@ -31,11 +31,18 @@ spec: release: {{ .Release.Name }} spec: initContainers: +#dd775k: This container checks if the job that wait for all db instances to be up and initializes the db had finished. +# - command: +# - /bin/sh +# args: +# - "-c" +# - "sleep 1000000000m" - command: - - /root/ready.py + - python args: - - --container-name - - {{ .Values.mariadb.nameOverride }} + - /tmp/vid-check-job-completion/vid_check_job_completion.py + - --job-name + - vid-config-galera env: - name: NAMESPACE valueFrom: @@ -45,6 +52,9 @@ spec: image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}" imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} name: {{ include "common.name" . }}-readiness + volumeMounts: + - mountPath: /tmp/vid-check-job-completion + name: vid-check-job-completion containers: - name: {{ include "common.name" . }} image: "{{ include "common.repository" . }}/{{ .Values.image }}" @@ -83,7 +93,7 @@ spec: - name: VID_ECOMP_SHARED_CONTEXT_REST_URL value: http://portal-app.{{ include "common.namespace" . }}:{{ .Values.config.onapport }}/ONAPPORTAL/context - name: VID_MSO_SERVER_URL - value: http://so.{{ include "common.namespace" . }}:{{ .Values.config.msoport }} + value: http://mso.{{ include "common.namespace" . }}:{{ .Values.config.msoport }} - name: VID_MSO_PASS value: "{{ .Values.config.vidmsopass }}" - name: MSO_DME2_SERVER_URL @@ -107,10 +117,9 @@ spec: - name: VID_MYSQL_USER value: "{{ .Values.config.vidmysqluser }}" - name: VID_MYSQL_PASS - valueFrom: - secretKeyRef: - name: {{ template "common.fullname" . }} - key: vid-password + value: "{{ .Values.config.vidmysqlpassword }}" + #valueFrom: + # secretKeyRef: {name: {{ include "common.fullname" . }}, key: vid-password} - name: VID_MYSQL_MAXCONNECTIONS value: "{{ .Values.config.vidmysqlmaxconnections }}" volumeMounts: @@ -158,5 +167,10 @@ spec: - name: vid-logback configMap: name: {{ include "common.fullname" . }}-log-configmap + - name: vid-check-job-completion + configMap: + name: {{ include "common.fullname" . }}-check-job-completion imagePullSecrets: - name: "{{ include "common.namespace" . }}-docker-registry-key" + + diff --git a/kubernetes/vid/templates/galera-sql-configmap.yaml b/kubernetes/vid/templates/galera-sql-configmap.yaml new file mode 100644 index 0000000000..ccda497887 --- /dev/null +++ b/kubernetes/vid/templates/galera-sql-configmap.yaml @@ -0,0 +1,21 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "common.fullname" . }}-galera-sql-configmap + namespace: "{{ include "common.namespace" . }}" +data: + vid-pre-init.sql: |- + CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`schema_info` ( + `SCHEMA_ID` VARCHAR(25) NOT NULL, + `SCHEMA_DESC` VARCHAR(75) NOT NULL, + `DATASOURCE_TYPE` VARCHAR(100) NULL DEFAULT NULL, + `CONNECTION_URL` VARCHAR(200) NOT NULL, + `USER_NAME` VARCHAR(45) NOT NULL, + `PASSWORD` VARCHAR(45) NULL DEFAULT NULL, + `DRIVER_CLASS` VARCHAR(100) NOT NULL, + `MIN_POOL_SIZE` INT(11) NOT NULL, + `MAX_POOL_SIZE` INT(11) NOT NULL, + `IDLE_CONNECTION_TEST_PERIOD` INT(11) NOT NULL) + ENGINE = InnoDB + DEFAULT CHARACTER SET = utf8; + diff --git a/kubernetes/vid/templates/vid-galera-config-job.yaml b/kubernetes/vid/templates/vid-galera-config-job.yaml new file mode 100644 index 0000000000..b02d5b4913 --- /dev/null +++ b/kubernetes/vid/templates/vid-galera-config-job.yaml @@ -0,0 +1,70 @@ +apiVersion: batch/v1 +kind: Job +metadata: + name: vid-config-galera + namespace: {{ include "common.namespace" . }} + labels: + app: vid-config-galera + release: {{ .Release.Name }} +spec: + template: + metadata: + name: vid-galera-init + spec: + initContainers: +#dd775k: This container checks that all galera instances are up before initializing it. + - name: vid-init-galera-readiness + image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}" + imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} +# - /bin/sh +# args: +# - "-c" +# - "sleep 1000000000m" + command: + - python + args: + - /root/vid_ready.py + - --container-name + - {{ include "common.fullname" . }}-mariadb-galera-0 + env: + - name: NAMESPACE + value: {{ include "common.namespace" . }} + volumeMounts: + - name: init-config + mountPath: /root/ + containers: + - name: vid-config-galeradb + image: {{ .Values.mariadb_image }} + imagePullPolicy: "{{ .Values.pullPolicy }}" + volumeMounts: + - name: vid-db-config + mountPath: /db-config + - name: dbcmd-config + mountPath: /dbcmd-config + command: + - /bin/sh + args: + - -x + - /dbcmd-config/db_cmd.sh + env: + - name: MYSQL_PASSWORD + value: "{{ .Values.config.vidmysqlpassword }}" +# valueFrom: +# secretKeyRef: +# name: {{ template "common.fullname" . }} +# key: vid-password + - name: MYSQL_HOST + value: "{{ .Values.config.vidmysqlhost }}" + volumes: + - name: vid-db-config + configMap: + name: {{ include "common.fullname" . }}-galera-sql-configmap + - name: dbcmd-config + configMap: + name: {{ include "common.fullname" . }}-dbcmd-configmap + - name: init-config + configMap: + name: {{ include "common.fullname" . }}-cluster-ready-configmap + restartPolicy: Never + + diff --git a/kubernetes/vid/values.yaml b/kubernetes/vid/values.yaml index e7fb378332..8487743177 100644 --- a/kubernetes/vid/values.yaml +++ b/kubernetes/vid/values.yaml @@ -17,8 +17,9 @@ # Declare variables to be passed into your templates. global: nodePortPrefix: 302 + repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ== readinessRepository: oomk8s - readinessImage: readiness-check:2.0.0 + readinessImage: readiness-check:1.0.0 loggingRepository: docker.elastic.co loggingImage: beats/filebeat:5.5.0 @@ -30,8 +31,8 @@ repository: nexus3.onap.org:10001 image: onap/vid:2.0.0 pullPolicy: Always -# flag to enable debugging - application support required -debugEnabled: false +# mariadb image for initializing +mariadb_image: library/mariadb:10 # application configuration config: @@ -44,7 +45,7 @@ config: vidmsopass: OBF:1ih71i271vny1yf41ymf1ylz1yf21vn41hzj1icz msodme2serverurl: http://localhost:8081 vidcontactuslink: https://todo_contact_us_link.com - vidmysqlhost: vid-mariadb + vidmysqlhost: vid-galera vidmysqlport: "3306" vidmysqldbname: vid_openecomp_epsdk vidmysqluser: vidadmin @@ -52,10 +53,9 @@ config: logstashServiceName: log-ls logstashPort: 5044 - # subchart configuration -mariadb: - nameOverride: vid-mariadb +mariadb-galera: + nameOverride: vid-mariadb-galera # default number of instances replicaCount: 1 diff --git a/kubernetes/vnfsdk/charts/vnfsdk-postgres/values.yaml b/kubernetes/vnfsdk/charts/vnfsdk-postgres/values.yaml index 431c2134f7..38edd145aa 100644 --- a/kubernetes/vnfsdk/charts/vnfsdk-postgres/values.yaml +++ b/kubernetes/vnfsdk/charts/vnfsdk-postgres/values.yaml @@ -28,7 +28,7 @@ global: ################################################################# # application image repository: nexus3.onap.org:10001 -image: onap/vnfsdk/refrepo/postgres:latest +image: onap/vnfsdk/refrepo/postgres:1.1.1 pullPolicy: Always # flag to enable debugging - application support required diff --git a/kubernetes/vnfsdk/values.yaml b/kubernetes/vnfsdk/values.yaml index cc27544a70..edca2ece6c 100644 --- a/kubernetes/vnfsdk/values.yaml +++ b/kubernetes/vnfsdk/values.yaml @@ -28,7 +28,7 @@ global: ################################################################# # application image repository: nexus3.onap.org:10001 -image: onap/vnfsdk/refrepo:1.1-STAGING-latest +image: onap/vnfsdk/refrepo:1.1.1 pullPolicy: Always #subchart name |