.. 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 HA Kubernetes Cluster ############################# This guide provides instructions on how to setup a Highly-Available Kubernetes Cluster. For this, we are hosting our cluster on OpenStack VMs and using the Rancher Kubernetes Engine (RKE) to deploy and manage our Kubernetes Cluster. .. contents:: :depth: 1 :local: .. The result at the end of this tutorial will be: #. Creation of a Key Pair to use with Open Stack and RKE #. Creation of OpenStack VMs to host Kubernetes Control Plane #. Creation of OpenStack VMs to host Kubernetes Workers #. Installation and configuration of RKE to setup an HA Kubernetes #. Installation and configuration of kubectl #. Installation and configuration of helm #. Creation of an NFS Server to be used by ONAP as shared persistance There are many ways one can execute the above steps. Including automation through the use of HEAT to setup the OpenStack VMs. To better illustrate the steps involved, we have captured the manual creation of such an environment using the ONAP Wind River Open Lab. Create Key Pair =============== A Key Pair is required to access the created OpenStack VMs and will be used by RKE to configure the VMs for Kubernetes. Use an existing key pair, import one or create a new one to assign. .. image:: images/keys/key_pair_1.png .. Note:: If you're creating a new Key Pair, ensure to create a local copy of the Private Key through the use of "Copy Private Key to Clipboard". For the purpose of this guide, we will assume a new local key called "onap-key" has been downloaded and is copied into **~/.ssh/**, from which it can be referenced. Example:: > mv onap-key ~/.ssh > chmod 600 ~/.ssh/onap-key Create Network ============== An internal network is required in order to deploy our VMs that will host Kubernetes. .. image:: images/network/network_1.png .. image:: images/network/network_2.png .. image:: images/network/network_3.png .. Note:: It's better to have one network per deployment and obviously the name of this network should be unique. Now we need to create a router to attach this network to outside: .. image:: images/network/network_4.png Create Security Group ===================== A specific security group is also required .. image:: images/sg/sg_1.png then click on `manage rules` of the newly created security group. And finally click on `Add Rule` and create the following one: .. image:: images/sg/sg_2.png .. Note:: the security is clearly not good here and the right SG will be proposed in a future version Create Kubernetes Control Plane VMs =================================== The following instructions describe how to create 3 OpenStack VMs to host the Highly-Available Kubernetes Control Plane. ONAP workloads will not be scheduled on these Control Plane nodes. Launch new VM instances ----------------------- .. image:: images/cp_vms/control_plane_1.png Select Ubuntu 18.04 as base image --------------------------------- Select "No" for "Create New Volume" .. image:: images/cp_vms/control_plane_2.png Select Flavor ------------- The recommended flavor is at least 4 vCPU and 8GB ram. .. image:: images/cp_vms/control_plane_3.png Networking ---------- Use the created network: .. image:: images/cp_vms/control_plane_4.png Security Groups --------------- Use the created security group: .. image:: images/cp_vms/control_plane_5.png Key Pair -------- Assign the key pair that was created/selected previously (e.g. onap_key). .. image:: images/cp_vms/control_plane_6.png Apply customization script for Control Plane VMs ------------------------------------------------ Click :download:`openstack-k8s-controlnode.sh ` to download the script. .. literalinclude:: openstack-k8s-controlnode.sh :language: bash This customization script will: * update ubuntu * install docker .. image:: images/cp_vms/control_plane_7.png Launch Instance --------------- .. image:: images/cp_vms/control_plane_8.png Create Kubernetes Worker VMs ============================ The following instructions describe how to create OpenStack VMs to host the Highly-Available Kubernetes Workers. ONAP workloads will only be scheduled on these nodes. Launch new VM instances ----------------------- The number and size of Worker VMs is depenedent on the size of the ONAP deployment. By default, all ONAP applications are deployed. It's possible to customize the deployment an
<?xml version="1.0" encoding="UTF-8"?>
<!--
============LICENSE_START=======================================================
ONAP : APPC
================================================================================
Copyright (C) 2018 AT&T Intellectual Property. All rights reserved.
=============================================================================
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
============LICENSE_END=========================================================
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>org.onap.appc.parent</groupId>
        <artifactId>odlparent-lite</artifactId>
        <version>2.7.0</version>
        <relativePath/>
    </parent>

    <groupId>org.onap.appc</groupId>
    <artifactId>appc-design-services-feature-aggregator</artifactId>
    <version>1.7.0-SNAPSHOT</version>
    <packaging>pom</packaging>

    <name/>

    <modules>
        <module>onap-appc-design-services</module>
        <modul