aboutsummaryrefslogtreecommitdiffstats
path: root/adapters/mso-requests-db-adapter
AgeCommit message (Expand)AuthorFilesLines
2020-06-18Prepare for java 11Benjamin, Max2-4/+41
2020-06-02make sure maven plugins only run when we wantBenjamin, Max1-3/+4
2020-05-20Began adding pluging to lifecycle mappingBoslet, Cory1-0/+13
2020-05-19Merge "put appropriate annotations"Lukasz Muszkieta2-13/+13
2020-05-13switch to docker-maven-plugin because that's allBenjamin, Max1-1/+1
2020-05-08interface getServiceOperationStatus in request-db-adapter not existhetengjiao2-0/+28
2020-05-06put appropriate annotationsRupinder2-13/+13
2020-04-07Add workflowName and operationName to v8 ofKuleshov, Elena2-0/+9
2020-03-24Update Subprocess to use COMPLETE statusSmokowski, Steven1-0/+4
2020-02-27Modification of VFC adapter code to make it SOL005 compliantSambasiva K4-0/+94
2020-02-26bump the versions for all the SO to 1.6.0seshukm1-1/+1
2020-02-24Merge "Rename migration script"Steve Smokowski2-2/+6
2020-02-22Rename migration scriptBenjamin, Max2-2/+6
2020-02-21mso to add tenant name and product family name toKuleshov, Elena2-0/+9
2020-02-21use pnfName in custom pnf workflow execution procedureUbuntu1-2/+2
2020-02-20Merge "Add script to create OrchestrationTask table"Chuanyu Chen1-0/+12
2020-02-19Add script to create OrchestrationTask tableHarry Huang1-0/+12
2020-02-19Add controller for OrchestrationTaskHarry Huang1-0/+62
2020-01-07consolidated security configurationBenjamin, Max3-238/+0
2020-01-06
.. This work is licensed under a Creative Commons Attribution 4.0
.. International License.
.. http://creativecommons.org/licenses/by/4.0
.. Copyright 2020, Samsung Electronics

.. 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
.. _metallb Metal Load Balancer installation: https://metallb.universe.tf/installation/
.. _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

.. _oom_setup_ingress_controller:


Ingress controller setup on HA Kubernetes Cluster
#################################################

This guide provides instruction how to setup experimental ingress controller
feature. For this, we are hosting our cluster on OpenStack VMs and using the
Rancher Kubernetes Engine (RKE) to deploy and manage our Kubernetes Cluster and
ingress controller

.. contents::
   :depth: 1
   :local:
..

The result at the end of this tutorial will be:

#. Customization of the cluster.yaml file for ingress controller support

#. Installation and configuration test DNS server for ingress host resolution
   on testing machines

#. Installation and configuration MLB (Metal Load Balancer) required for
   exposing ingress service

#. Installation and configuration NGINX ingress controller

#. Additional info how to deploy ONAP with services exposed via Ingress
   controller

Customize cluster.yml file
==========================
Before setup cluster for ingress purposes DNS cluster IP and ingress provider
should be configured and following:

.. code-block:: yaml

  ---
  <...>
  restore:
    restore: false
    snapshot_name: ""
  ingress:
    provider: none
  dns:
    provider: coredns
    upstreamnameservers:
      - <custer_dns_ip>:31555

Where the <cluster_dns_ip> should be set to the same IP as the CONTROLPANE
node.

For external load balancer purposes, minimum one of the worker node should be
configured with external IP address accessible outside the cluster. It can be
done using the following example node configuration:

.. code-block:: yaml

  ---
  <...>
  - address: <external_ip>
    internal_address: <internal_ip>
    port: "22"
    role:
      - worker
    hostname_override: "onap-worker-0"
    user: ubuntu
    ssh_key_path: "~/.ssh/id_rsa"
    <...>

Where the <external_ip> is external worker node IP address, and <internal_ip>
is internal node IP address if it is required.


DNS server configuration and installation
=========================================
DNS server deployed on the Kubernetes cluster makes it easy to use services
exposed through ingress controller because it resolves all subdomain related to
the ONAP cluster to the load balancer IP. Testing ONAP cluster requires a lot
of entries on the target machines in the /etc/hosts. Adding many entries into
the configuration files on testing machines is quite problematic and error
prone. The better wait is to create central DNS server with entries for all
virtual host pointed to simpledemo.onap.org and add custom DNS server as a
target DNS server for testing machines and/or as external DNS for Kubernetes
cluster.

DNS server has automatic installation and configuration script, so installation
is quite easy::

  > cd kubernetes/contrib/dns-server-for-vhost-ingress-testing

  > ./deploy\_dns.sh

After DNS deploy you need to setup DNS entry on the target testing machine.
Because DNS listen on non standard port configuration require iptables rules
on the target machine. Please follow the configuration proposed by the deploy
scripts.
Example output depends on the IP address and example output looks like bellow::

  DNS server already deployed:
  1. You can add the DNS server to the target machine using following commands:
    sudo iptables -t nat -A OUTPUT -p tcp -d 192.168.211.211 --dport 53 -j DNAT --to-destination 10.10.13.14:31555
    sudo iptables -t nat -A OUTPUT -p udp -d 192.168.211.211 --dport 53 -j DNAT --to-destination 10.10.13.14:31555
    sudo sysctl -w net.ipv4.conf.all.route_localnet=1
    sudo sysctl -w net.ipv4.ip_forward=1
  2. Update /etc/resolv.conf file with nameserver 192.168.211.211 entry on your target machine


MetalLB Load Balancer installation and configuration
====================================================

By default pure Kubernetes cluster requires external load balancer if we want
to expose external port using LoadBalancer settings. For this purpose MetalLB
can be used. Before installing the MetalLB you need to ensure that at least one
worker has assigned IP accessible outside the cluster.

MetalLB Load balancer can be easily installed using automatic install script::

  > cd kubernetes/contrib/metallb-loadbalancer-inst

  > ./install-metallb-on-cluster.sh


Configuration Ngninx ingress controller
=======================================

After installation DNS server and ingress controller we can install and
configure ingress controller.
It can be done using the following commands::

  > cd kubernetes/contrib/ingress-nginx-post-inst

  > kubectl apply -f nginx_ingress_cluster_config.yaml

  > kubectl apply -f nginx_ingress_enable_optional_load_balacer_service.yaml

After deploy NGINX ingress controller you can ensure that the ingress port is
exposed as load balancer service with external IP address::

  > kubectl get sv
2019-10-14update scheduled tasks to have mdc setupPlummer, Brittany1-1/+12
2019-09-19update logging to match onap logging libraryPlummer, Brittany2-2/+9
2019-09-13Remove unused table requestdb.active_requests.Sangalang, Felix1-0/+4
2019-09-10Integrate Logging LibraryPlummer, Brittany3-5/+10
2019-09-09updated all sql files including in tests to useChan, Mercy2-1/+13
2019-09-05Added index infra_active_requests optimal queryParthasarathy, Ramesh1-0/+21
2019-07-26Upgrade springboot.version from 2.0.5 to 2.1.5.Sangalang, Felix1-0/+2
2019-07-18Removing application-local.yaml filesRoy, Amresh1-51/+0
2019-07-18Merge "We need to expand column request_status"Steve Smokowski1-0/+3
2019-07-17We need to expand column request_statusGamboa, Gilbert1-0/+3
2019-07-17add query stack data and populate table stepBoslet, Cory1-0/+23
2019-07-05mso will support new requeststate valuesGamboa, Gilbert1-0/+3