diff options
-rw-r--r-- | .gitignore | 2 | ||||
-rw-r--r-- | INFO | 26 | ||||
-rw-r--r-- | INFO.yaml | 48 | ||||
-rw-r--r-- | docs/conf.py | 1 | ||||
-rw-r--r-- | docs/conf.yaml | 3 | ||||
-rw-r--r-- | docs/development/index.rst | 11 | ||||
-rw-r--r-- | docs/development/ovn-sfc-openstack.rst | 201 | ||||
-rw-r--r-- | docs/index.rst | 20 | ||||
-rw-r--r-- | docs/release/configguide/configuration-guide.rst (renamed from docs/release/configuration-guide.rst) | 0 | ||||
-rw-r--r-- | docs/release/configguide/index.rst (renamed from docs/release/index.rst) | 17 | ||||
-rw-r--r-- | docs/release/release-notes/index.rst | 23 | ||||
-rw-r--r-- | docs/release/release-notes/release-notes.rst (renamed from docs/release/release-notes.rst) | 41 | ||||
-rw-r--r-- | docs/requirements.txt | 2 | ||||
-rw-r--r-- | docs/scenarios/JOID/k8s-ovn-lb-noha.rst | 171 | ||||
-rw-r--r-- | docs/scenarios/index.rst | 26 | ||||
-rw-r--r-- | docs/testing/index.rst | 12 | ||||
-rw-r--r-- | tox.ini | 17 |
17 files changed, 561 insertions, 60 deletions
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..71d7636 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +.tox +docs/_build/* @@ -1,26 +0,0 @@ -Project: OVN for NFV (OVN4NFV) -Project Creation Date: Feb 7th 2017 -Project Category: Collaborative Development -Lifecycle State: Incubation -Primary Contact: Trinath Somanchi (NXP) -Project Lead: Trinath Somanchi (NXP) -Jira Name: OVN for NFV -Jira Prefix: [OVN4NFV] -mailing list tag [ovn4nfv] -Repo: ovn4nfv - -Committers: -vikram.dham@huawei.com -trozet@redhat.com -narinder.gupta@canonical.com -chigang@huawei.com -trinath.somanchi@nxp.com -sridhar.pothuganti@nxp.com - -Contributors: -prakash.ramchandran@huawei.com -prasad.gorja@nxp.com - - -Link to TSC approval: http://meetbot.opnfv.org/meetings/opnfv-meeting/2015/opnfv-meeting.2015-12-15-14.59.html -Link to approval of additional submitters: diff --git a/INFO.yaml b/INFO.yaml new file mode 100644 index 0000000..d604879 --- /dev/null +++ b/INFO.yaml @@ -0,0 +1,48 @@ +--- +project: 'OVN for NFV (OVN4NFV)' +project_creation_date: 'Feb 7th 2017' +project_category: 'Collaborative Development' +lifecycle_state: 'Incubation' +project_lead: &opnfv_ovn4nfv_ptl + name: 'Trinath Somanchi' + email: 't.somanchi@f5.com' + company: 'F5 Networks' + id: 'SomanchiTrinath' +primary_contact: *opnfv_ovn4nfv_ptl +issue_tracking: + type: 'jira' + url: 'https://jira.opnfv.org/projects/OVN4NFV' + key: 'OVN4NFV' +mailing_list: + type: 'mailman2' + url: 'opnfv-tech-discuss@lists.opnfv.org' + tag: '[OVN4NFV]' +realtime_discussion: + type: irc + server: 'freenode.net' + channel: '#opnfv-ovn4nfv' +meetings: + - type: 'irc' + agenda: 'https://wiki.opnfv.org/display/OV/Meeting+Agenda' + url: # eg: 'https://global.gotomeeting.com/join/819733085' + server: 'freenode.net' + channel: '#ovn4nfv-meeting' + repeats: 'weekly' + time: '15:30 UTC' +repositories: + - 'ovn4nfv' + - 'ovn4nfv-k8s-plugin' +committers: + - <<: *opnfv_ovn4nfv_ptl + - name: 'Trevor Bramwell' + email: 'tbramwell@linuxfoundation.org' + company: 'linuxfoundation.org' + id: 'bramwelt' + - name: 'Ritu Sood' + email: 'ritu.sood@intel.com' + company: 'intel.com' + id: 'ritusood' +tsc: + # yamllint disable rule:line-length + approval: 'http//meetbot.opnfv.org/meetings/opnfv-meeting/2015/opnfv-meeting.2015-12-15-14.59.html' + # yamllint enable rule:line-length diff --git a/docs/conf.py b/docs/conf.py new file mode 100644 index 0000000..3c4453e --- /dev/null +++ b/docs/conf.py @@ -0,0 +1 @@ +from docs_conf.conf import * diff --git a/docs/conf.yaml b/docs/conf.yaml new file mode 100644 index 0000000..7611686 --- /dev/null +++ b/docs/conf.yaml @@ -0,0 +1,3 @@ +--- +project_cfg: opnfv +project: OVN4NFV diff --git a/docs/development/index.rst b/docs/development/index.rst index 5cf12b5..32be210 100644 --- a/docs/development/index.rst +++ b/docs/development/index.rst @@ -1,3 +1,5 @@ +.. _ovn4nfv-developmentguide: + .. This work is licensed under a Creative Commons Attribution 4.0 International .. License. http://creativecommons.org/licenses/by/4.0 @@ -7,10 +9,10 @@ OVN4NFV Development :Project: Ovn4Nfv, https://wiki.opnfv.org/display/PROJ/Ovn4nfv -:Editors: Vikram Dham (Huawei) -:Authors: Vikram Dham (Huawei) - Trinath Somanchi (NXP) - Prakash Ramchandran (Huawei) +:Editors: Trinath Somanchi (NXP India) +:Authors: Prasad Gorja (NXP India) + Trinath Somanchi (NXP India) + Prakash Ramchandran (Dell) :Abstract: This document provides an overview of networking-ovn,its utilization into NFV and outlines OpenStack official release. @@ -20,3 +22,4 @@ OVN4NFV Development openstack-networking-ovn.rst ovn-for-nfv.rst + ovn-sfc-openstack.rst diff --git a/docs/development/ovn-sfc-openstack.rst b/docs/development/ovn-sfc-openstack.rst new file mode 100644 index 0000000..2d29c5a --- /dev/null +++ b/docs/development/ovn-sfc-openstack.rst @@ -0,0 +1,201 @@ +=================== +OVN-SFC POC Details +=================== + +Purpose +======= +The purpose of this Proof-of-concept is to showcase Service Function +Chaining with OVN. + +Scope +===== + +The Scope of this document is to describe SFC using OVN and discuss +installation and configuration of OVN to instantiate a forwarding path. + +Steps +===== +1. Install CentOS7 minimal install: +----------------------------------- +- Make sure to enable network interface. +- Just create a root password. Don't create any users + +2. Create user: +--------------- +Below are the instructions to create user - stack, for use with Devstack. + +- $ sudo useradd -s /bin/bash -d /opt/stack -m stack +- $ echo 'stack ALL=(ALL) NOPASSWD: ALL' | sudo tee /etc/sudoers.d/stack +- $ sudo su - stack + +3. Install git +-------------- +- $ sudo yum install git -y + +4. clone Devstack and Networking-ovn +------------------------------------ +- $ git clone http://git.openstack.org/openstack-dev/devstack.git +- $ git clone http://git.openstack.org/openstack/networking-ovn.git +- $ cd devstack +- $ cp ../networking-ovn/devstack/local.conf.sample local.conf + +5. Edit the local.conf file: +---------------------------- +- Add (uncomment and edited) + + - OVN_REPO=https://github.com/doonhammer/ovs + - OVN_BRANCH=sfc.v30 +- Uncomment the below line + + - OVN_BUILD_MODULES=False + +We use forked/modifed OVS for SFC usecase from John McDowall. + +6. Devstack Preliminaries: +-------------------------- +- $ ./stack.sh +- $ . ~/devstack/openrc admin +- $ openstack keypair create demo &gt; ~/id_rsa_demo +- $ chmod 600 ~/id_rsa_demo +- $ for group in $(openstack security group list -f value -c ID); + do openstack security group rule create --ingress --ethertype IPv4 --dst-port 22 --protocol tcp $group; + openstack security group rule create --ingress --ethertype IPv4 -- protocol ICMP $group; + done +- $ IMAGE_ID=$(openstack image list -f value -c ID) + +10. Create Neutron network and subnet +-------------------------------------- +- $ openstack network create --project admin --provider-network-type geneve n1 +- $ openstack subnet create --subnet-range 10.1.1.0/24 --network n1 n1subnet + + +10. Spawn VMs +------------- +- Create 5 VMs, 3 VMs to act as communication end-points (a,b, and c) and two + VMs to act as VNFs (vnf1 & vnf2). +- The 2 VNF VMs are created with two NICs to act as ingress and egress ports + (Optional) +- Created two SFCs: + - SFC1: any traffic from VM a to VM b will go through vnf1 + - SFC1: any traffic from VM a to VM c will go through vnf2 then vnf1 + + +A. SFC with OVN - Scenario 1: +----------------------------- + +*********************** +1. create VMs and VNFs: +*********************** +- $ openstack server create --nic net-id=n1,v4-fixed-ip=10.1.1.5 --flavor m1.nano --image $IMAGE_ID --key-name demo a +- $ openstack server create --nic net-id=n1,v4-fixed-ip=10.1.1.6 --flavor m1.nano --image $IMAGE_ID --key-name demo b +- $ openstack server create --nic net-id=n1,v4-fixed-ip=10.1.1.10 --nic net-id=n1,v4-fixed-ip=10.1.1.11 --flavor m1.nano --image $IMAGE_ID --key-name demo vnf1 +- $ openstack port set --name ap $(openstack port list --server a -f value -c ID) +- $ openstack port set --name bp $(openstack port list --server b -f value -c ID) +- $ AP_MAC=$(openstack port show -f value -c mac_address ap) +- $ BP_MAC=$(openstack port show -f value -c mac_address bp) +- $ openstack port set --name vnf1-pin $(openstack port list --server vnf1 --mac-address fa:16:3e:a0:e9:70 -f value -c ID) +- $ openstack port set --name vnf1-pout $(openstack port list --server vnf1 --mac-address fa:16:3e:ae:0c:36 -f value -c ID) +- $ f1_pin_MAC=$(openstack port show -f value -c mac_address vnf1-pin) +- $ f1_pout_MAC=$(openstack port show -f value -c mac_address vnf1-pout) + +*************************************** +2. Create port-pairs, groups and chains +*************************************** +The switch and ports UUIDs below will different in each environment. + +- n1 = f1de57df-04e3-456b-85c0-64fd869507ad +- vnf1-pin = 6ec5aa3d-8440-44c9-acf3-a18914ca9b0d +- vnf1-pout = 3f558a9d-295e-4417-9646-d46b59be97d8 +- ap = 0438495b-7de4-4bbb-b787-dff82615b541 +- bp = 1f004846-3f38-450d-8f4a-e5ed0f7228e6 +- cp = 9a72cc76-4d8d-494c-a959-8d672149c0ea +- vnf2-pin = 6a32edc7-23d4-42ed-9cf8-c6e0009da01d +- vnf2-pout = 8553b6d2-1433-4ab4-ab69-704d318b09af + +**1. Configure the port pair vnf1-PP1** + +- $ ovn-nbctl lsp-pair-add n1 vnf1-pin vnf1-pout vnf1-PP1 (didn't work with names) +- $ ovn-nbctl lsp-pair-add f1de57df-04e3-456b-85c0-64fd869507ad 6ec5aa3d-8440-44c9-acf3-a18914ca9b0d 3f558a9d-295e-4417-9646-d46b59be97d8 vnf1-PP1 + +**2. Configure the port chain PC1** + +- $ ovn-nbctl lsp-chain-add n1 PC1 +- $ ovn-nbctl lsp-chain-add f1de57df-04e3-456b-85c0-64fd869507ad PC1 + +**3. Configure the port pair group PG1 and add to port chain** + +- $ ovn-nbctl lsp-pair-group-add PC1 PG1 + +**4. Add port pair to port chain** + +- $ ovn-nbctl lsp-pair-group-add-port-pair PG1 vnf1-PP1 + +**5. Add port chain to port classifier PCC1** + +- $ lsp-chain-classifier-add SWITCH CHAIN PORT DIRECTION PATH [NAME] [MATCH] +- $ ovn-nbctl lsp-chain-classifier-add n1 PC1 bp 'entry-lport' 'bi-directional' PCC1 ''; +- $ ovn-nbctl lsp-chain-classifier-add f1de57df-04e3-456b-85c0-64fd869507ad PC1 1f004846-3f38-450d-8f4a-e5ed0f7228e6 'entry-lport' 'bi-directional' PCC1 '' + +***************** +3. Validating SFC +***************** + +- $ ovn-trace n1 'inport == "ap" && eth.src == "$AP_MAC" && eth.dst == "$BP_MAC"' + + +B. SFC with OVN - Scenario 2: +----------------------------- + +************* +1. Create VMs +************* +- $ openstack server create --nic net-id=n1,v4-fixed-ip=10.1.1.7 --flavor m1.nano --image $IMAGE_ID --key-name demo c +- $ openstack server create --nic net-id=n1,v4-fixed-ip=10.1.1.20 --nic net-id=n1,v4-fixed-ip=10.1.1.21 --flavor m1.nano --image $IMAGE_ID --key-name demo vnf2 +- $ openstack port set --name cp $(openstack port list --server c -f value -c ID) +- $ CP_MAC=$(openstack port show -f value -c mac_address cp) +- $ openstack port set --name vnf2-pin $(openstack port list --server vnf2 --mac-address fa:16:3e:ff:e5:76 -f value -c ID) +- $ openstack port set --name vnf2-pout $(openstack port list --server vnf2 --mac-address fa:16:3e:4c:a3:58 -f value -c ID) +- $ f2_pin_MAC=$(openstack port show -f value -c mac_address vnf2-pin) +- $ f2_pout_MAC=$(openstack port show -f value -c mac_address vnf2-pout) + +**************** +2. Configure SFC +**************** + +**1. Configure the port pair vnf2-PP1** + +- $ ovn-nbctl lsp-pair-add n1 vnf2-pin vnf2-pout vnf2-PP1 (Didn't work with names) +- $ ovn-nbctl lsp-pair-add f1de57df-04e3-456b-85c0-64fd869507ad 6a32edc7-23d4-42ed-9cf8-c6e0009da01d 8553b6d2-1433-4ab4-ab69-704d318b09af vnf2-PP1 + +**2. Configure the port chain PC2** + +- $ ovn-nbctl lsp-chain-add n1 PC2 +- $ ovn-nbctl lsp-chain-add f1de57df-04e3-456b-85c0-64fd869507ad PC2 + +**3. Configure the port pair group PG2 and add to port chain** + +- $ ovn-nbctl lsp-pair-group-add PC2 PG2 +- $ ovn-nbctl lsp-pair-group-add PC2 PG3 + +**4. Add port pair to port chain** + +- $ ovn-nbctl lsp-pair-group-add-port-pair PG2 vnf2-PP1 +- $ ovn-nbctl lsp-pair-group-add-port-pair PG3 vnf1-PP1 + +**4. Add port chain to port classifier PCC2** + +- $ ovn-nbctl lsp-chain-classifier-add n1 PC2 cp "entry-lport" "bi-directional" PCC2 "" +- $ ovn-nbctl lsp-chain-classifier-add f1de57df-04e3-456b-85c0-64fd869507ad PC2 9a72cc76-4d8d-494c-a959-8d672149c0ea "entry-lport" "bi-directional" PCC2 ""; + +******************** +3. Validate Scenario +******************** + +- $ ovn-trace n1 'inport == "ap" && eth.src == "$AP_MAC" && eth.dst == "$CP_MAC"' + +References: +----------- + +1. http://docs.openvswitch.org/en/latest/tutorials/ovn-openstack/ +2. https://gist.github.com/voyageur/a26943eced3324b302f1ffede45252bd +3. https://github.com/doonhammer/ovs diff --git a/docs/index.rst b/docs/index.rst new file mode 100644 index 0000000..50b855d --- /dev/null +++ b/docs/index.rst @@ -0,0 +1,20 @@ +.. _ovn4nfv: + +.. This work is licensed under a Creative Commons Attribution 4.0 +.. International License. +.. SPDX-License-Identifier: CC-BY-4.0 +.. (c) Open Platform for NFV Project, Inc. and its contributors + +======= +OVN4NFV +======= + +.. toctree:: + :numbered: + :maxdepth: 2 + + development/index + release/configguide/index + release/release-notes/index + scenarios/index + testing/index diff --git a/docs/release/configuration-guide.rst b/docs/release/configguide/configuration-guide.rst index 12a6243..12a6243 100644 --- a/docs/release/configuration-guide.rst +++ b/docs/release/configguide/configuration-guide.rst diff --git a/docs/release/index.rst b/docs/release/configguide/index.rst index 24da448..ddc7f6e 100644 --- a/docs/release/index.rst +++ b/docs/release/configguide/index.rst @@ -1,21 +1,22 @@ +.. _ovn4nfv-configguide: + .. This work is licensed under a Creative Commons Attribution 4.0 International .. License. http://creativecommons.org/licenses/by/4.0 -========================== -OVN4NFV Release Notes -========================== +=========================== +OVN4NFV Configuration guide +=========================== :Project: OVN4NFV, https://wiki.opnfv.org/display/PROJ/Ovn4nfv -:Editors: Vikram Dham (Huawei) -:Authors: Vikram Dham (Huawei) +:Editors: Trinath Somanchi (NXP) +:Authors: Prasad Gorja (NXP) Trinath Somanchi (NXP) - Prakash Ramchandran (Huawei) + Prakash Ramchandran (Dell) -:Abstract: OVN4NFV Release Notes. +:Abstract: OVN4NFV Configuration Guide .. toctree:: :maxdepth: 1 - release-notes.rst configuration-guide.rst diff --git a/docs/release/release-notes/index.rst b/docs/release/release-notes/index.rst new file mode 100644 index 0000000..4c305f3 --- /dev/null +++ b/docs/release/release-notes/index.rst @@ -0,0 +1,23 @@ +.. _ovn4nfv-releasenotes: + +.. This work is licensed under a Creative Commons Attribution 4.0 International +.. License. http://creativecommons.org/licenses/by/4.0 + +============================== +OVN4NFV - Fraser Release Notes +============================== + +:Project: OVN4NFV, https://wiki.opnfv.org/display/PROJ/Ovn4nfv + +:Editors: Trinath Somanchi (NXP India) +:Authors: Prasad Gorja (NXP India) + Trinath Somanchi (NXP India) + Prakash Ramchandran (Dell) + Aakash K T (IIIT Hyderabad, INDIA) + +:Abstract: OVN4NFV Release Notes. + +.. toctree:: + :maxdepth: 1 + + release-notes.rst diff --git a/docs/release/release-notes.rst b/docs/release/release-notes/release-notes.rst index b8b8a65..3c4acfe 100644 --- a/docs/release/release-notes.rst +++ b/docs/release/release-notes/release-notes.rst @@ -1,3 +1,5 @@ +.. _ovn4nfv-releasenotes: + .. This work is licensed under a Creative Commons Attribution 4.0 International License. .. http://creativecommons.org/licenses/by/4.0 .. (c) Open Platform for NFV Project, Inc. and its contributors @@ -6,18 +8,18 @@ Abstract ======== -This document compiles the release notes for the Euphrates release of -OPNFV when using Apex/Joid as a deployment tool. +This document compiles the release notes for OPNFV release when using Apex, +Joid and Fuel as a deployment tool. =============== Important Notes =============== -These notes provides release information for the use of Apex/Joid as deployment -tool for the Euphrates release of OPNFV. +This notes provides release information for the use of Apex, Joid and Fuel +as deployment tool for the Gambia release of OPNFV. -The goal of the Euphrates release and this Joid/Apex-based deployment process is -to establish a lab ready platform accelerating further development +The goal of the Gambia release and this Apex and Fuel based deployment +process is to establish a lab ready platform accelerating further development of the OPNFV infrastructure. Carefully follow the installation-instructions. @@ -26,9 +28,9 @@ Carefully follow the installation-instructions. Summary ======= -For Euphrates, OVN4NFV is supported with APEX and JOID installers. +For Gambia release, OVN4NFV is supported with APEX and FUEL installers. -This Euphrates artifact provides Apex/Joid as the deployment stage tool in the +This Gambia artifact provides Apex and Fuel as the deployment stage tool in the OPNFV CI pipeline including: - Documentation built by Jenkins @@ -39,7 +41,7 @@ OPNFV CI pipeline including: - installation instructions -- Automated validation of the Euphrates deployment. +- Automated validation of the Fraser deployment. ============ Release Data @@ -49,16 +51,18 @@ Release Data | **Project** | ovn4nfv | | | | +--------------------------------------+--------------------------------------+ -| **Repo/tag** | opnfv-5.0.0 | +| **Repo/tag** | ovn4nfv/opnfv-7.0 | | | | +--------------------------------------+--------------------------------------+ -| **Release designation** | Euphrates 5.1 | +| **Release designation** | Gambia 7.0 | | | | +--------------------------------------+--------------------------------------+ -| **Release date** | December 15 2017 | +| **Release date** | November 09 2018 | | | | +--------------------------------------+--------------------------------------+ -| **Purpose of the delivery** | Bug fixes | +| **Purpose of the delivery** | New Scenario PoC: OVN SFC | +| | Scenario documentation, OVN-CN-VM | +| | OVN support in Fuel installer. | +--------------------------------------+--------------------------------------+ @@ -70,17 +74,20 @@ Software Deliverables - `Apex based installation <https://git.opnfv.org/apex>`_ -- `Joid based installation <https://git.opnfv.org/joid>`_ +- `Fuel based installation <https://git.opnfv.org/fuel>`_ Documentation Deliverables -------------------------- -- `Installation instructions <http://docs.opnfv.org/en/stable-euphrates/submodules/ovn4nfv/docs/development/openstack-networking-ovn.html#install-configuration>`_ +- `Installation instructions <https://git.opnfv.org/ovn4nfv/tree/docs/development/openstack-networking-ovn.rst?h=stable/gambia>`_ - Release notes (This document) -- `User guide and Testing notes <http://docs.opnfv.org/en/stable-euphrates/submodules/ovn4nfv/docs/testing/testing-notes.html>`_ +- `User guide and Testing notes <https://git.opnfv.org/ovn4nfv/tree/docs/testing/testing-notes.rst?h=stable/gambia>`_ + +- `Scenario Documentation (K8S-OVN) <https://git.opnfv.org/ovn4nfv/tree/docs/scenarios/JOID/k8s-ovn-lb-noha.rst?h=stable/gambia>`_ +- `Scenario Documentation (OVN-SFC) <https://git.opnfv.org/ovn4nfv/tree/docs/development/ovn-sfc-openstack.rst?h=stable/gambia>`_ ========== References @@ -93,7 +100,7 @@ OPNFV 1) `OPNFV Home Page <http://www.opnfv.org>`_ 2) `OPNFV Documentation <http://docs.opnfv.org>`_ 3) `OPNFV Software Downloads <https://www.opnfv.org/software/download>`_ -4) `OVN4NFV Project <>`_ +4) `OVN4NFV Project <https://wiki.opnfv.org/display/PROJ/Ovn4nfv>`_ OpenStack ========= diff --git a/docs/requirements.txt b/docs/requirements.txt new file mode 100644 index 0000000..9fde2df --- /dev/null +++ b/docs/requirements.txt @@ -0,0 +1,2 @@ +lfdocs-conf +sphinx_opnfv_theme diff --git a/docs/scenarios/JOID/k8s-ovn-lb-noha.rst b/docs/scenarios/JOID/k8s-ovn-lb-noha.rst new file mode 100644 index 0000000..ea9a35e --- /dev/null +++ b/docs/scenarios/JOID/k8s-ovn-lb-noha.rst @@ -0,0 +1,171 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 +.. (c) <optionally add copywriters name> + + +Abstract +======== + +This document outlines the notes for deploying Kubernetes with OVN as the SDN and a load +balancer. JOID is used as the deployment tool. + +Introduction +============ +Juju OPNFV Infrastructure Deployer (JOID) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +JOID as Juju OPNFV Infrastructure Deployer allows you to deploy different combinations of +OpenStack release and SDN solution in HA or non-HA mode. For OpenStack, JOID supports +Juno and Liberty. For SDN, it supports Openvswitch, OpenContrail, OpenDayLight, and ONOS. +In addition to HA or non-HA mode, it also supports deploying from the latest development +tree. + +JOID heavily utilizes the technology developed in Juju and MAAS. Juju is a +state-of-the-art, open source, universal model for service oriented architecture and +service oriented deployments. Juju allows you to deploy, configure, manage, maintain, +and scale cloud services quickly and efficiently on public clouds, as well as on physical +servers, OpenStack, and containers. You can use Juju from the command line or through its +powerful GUI. MAAS (Metal-As-A-Service) brings the dynamism of cloud computing to the +world of physical provisioning and Ubuntu. Connect, commission and deploy physical servers +in record time, re-allocate nodes between services dynamically, and keep them up to date; +and in due course, retire them from use. In conjunction with the Juju service +orchestration software, MAAS will enable you to get the most out of your physical hardware +and dynamically deploy complex services with ease and confidence. + +For more info on Juju and MAAS, please visit https://jujucharms.com/ +and http://maas.ubuntu.com. + +Production grade container Orchestrator - Kubernetes (K8S) +========================================================== + +Kubernetes is an open-source system for automating deployment, scaling, and +management of containerized applications. + +This is a Kubernetes cluster that includes logging, monitoring, and operational +knowledge. It is comprised of the following components and features: + +- Kubernetes (automated deployment, operations, and scaling) + TLS used for communication between nodes for security. + A CNI plugin - in this scenario, we use OVN (Refer : https://github.com/openvswitch/ovn-kubernetes) + A load balancer for HA kubernetes-master (Experimental) + Optional Ingress Controller (on worker) + Optional Dashboard addon (on master) including Heapster for cluster monitoring + +- EasyRSA + Performs the role of a certificate authority serving self signed certificates + to the requesting units of the cluster. + +- Etcd (distributed key value store) + Minimum Three node cluster for reliability. + +- Kubernetes deployment with Load Balancer + .. code-block:: sh + + ./deploy.sh -m kubernetes -f lb -l custom -s ovn + + +Deployment Diagram +================== + + + + +-------------------------+ + | | + +------------+ Kubeapi-load-balancer +-----------------+ + | | | | + | +------------+------------+ | + | | | + | | | + | +------+------+ +----------+ | + | | | | | | + | +--------------+ EasyRSA +--------+ etcd | | + | | | | | | | + | | +-------------+ +-----+----+ | + | | | | + | | +---------+ | | + | | | | | | + | | +-------------+ OVN +-------------+ | | + | | | | | | | | + | | | +---------+ | | | + | | | | | | + | | | | | | ++-+---+--+----------+ +-----------+--+------+ | +| | | | | +| Kubernetes-worker +-----------------Kubernetes-master +-+ +| | | | ++-------------------+ +---------------------+ + + + +Using Kubernetes after Deployment +================================= + +Once you have finished installing Kubernetes, you can use the +following command to test the deployment. + +To deploy 5 replicas of the microbot web application inside the Kubernetes +cluster run the following command: + +.. code-block:: bash + + juju run-action kubernetes-worker/0 microbot replicas=5 + +This action performs the following steps: + +It creates a deployment titled 'microbots' comprised of 5 replicas defined +during the run of the action. It also creates a service named 'microbots' +which binds an 'endpoint', using all 5 of the 'microbots' pods. +Finally, it will create an ingress resource, which points at a +xip.io domain to simulate a proper DNS service. + +Running the packaged example + +You can run a Juju action to create an example microbot web application: + +.. code-block:: bash + + $ juju run-action kubernetes-worker/0 microbot replicas=3 + Action queued with id: db7cc72b-5f35-4a4d-877c-284c4b776eb8 + + $ juju show-action-output db7cc72b-5f35-4a4d-877c-284c4b776eb8 + results: + address: microbot.104.198.77.197.xip.io + status: completed + timing: + completed: 2016-09-26 20:42:42 +0000 UTC + enqueued: 2016-09-26 20:42:39 +0000 UTC + started: 2016-09-26 20:42:41 +0000 UTC +Note: Your FQDN will be different and contain the address of the cloud +instance. +At this point, you can inspect the cluster to observe the workload coming +online. + +For deploying via juju, refer to : https://jujucharms.com/u/aakashkt/kubernetes-ovn/ + +Supported OVN scenarios +======================= +Name: joid-k8s-ovn-lb-noha +Test Link: https://build.opnfv.org/ci/view/joid/job/joid-k8-ovn-lb-noha-baremetal-daily-master/ + +References +========== + +Juju +---- +- `Juju Charm store <https://jujucharms.com/>` +- `Juju documents <https://jujucharms.com/docs/stable/getting-started>` +- `Canonical Distibuytion of Kubernetes <https://jujucharms.com/canonical-kubernetes/>` + +MAAS +---- +- `Bare metal management (Metal-As-A-Service) <http://maas.io/get-started>` +- `MAAS API documents <http://maas.ubuntu.com/docs/>` + +JOID +---- +- `OPNFV JOID wiki <https://wiki.opnfv.org/joid>` +- `OPNFV JOID Get Started <https://wiki.opnfv.org/display/joid/JOID+Get+Started>` + +Kubernetes +---------- +- `Kubernetes Release artifacts <https://get.k8s.io/>` +- `Kubernetes documentation <https://kubernetes.io/>`
\ No newline at end of file diff --git a/docs/scenarios/index.rst b/docs/scenarios/index.rst new file mode 100644 index 0000000..82a81f0 --- /dev/null +++ b/docs/scenarios/index.rst @@ -0,0 +1,26 @@ +.. _ovn4nfv-scenarios: + +.. This work is licensed under a Creative Commons Attribution 4.0 International Licence. +.. http://creativecommons.org/licenses/by/4.0 +.. (c) <optionally add copywriters name> + +============================= +OVN4NFV Installer Scenarios +============================= + +:Editors: Trinath Somanchi (NXP India) +:Authors: Prasad Gorja (NXP India) + Trinath Somanchi (NXP India) + Prakash Ramchandran (Dell) + Aakash K T (IIIT Hyderabad INDIA) + +:Abstract: Installer scenario documenation. + Currently Apex, Fuel and Joid support OVN no-feature and feature + scenarios. + +.. toctree:: + :numbered: + :maxdepth: 4 + + JOID/k8s-ovn-lb-noha.rst + diff --git a/docs/testing/index.rst b/docs/testing/index.rst index b0d0585..c94f1a7 100644 --- a/docs/testing/index.rst +++ b/docs/testing/index.rst @@ -1,3 +1,5 @@ +.. _ovn4nfv-testing: + .. This work is licensed under a Creative Commons Attribution 4.0 International .. License. http://creativecommons.org/licenses/by/4.0 @@ -7,12 +9,12 @@ OVN4NFV Testing Notes :Project: OVN4NFV, https://wiki.opnfv.org/display/PROJ/Ovn4nfv -:Editors: Vikram Dham (Huawei) -:Authors: Vikram Dham (Huawei) - Trinath Somanchi (NXP) - Prakash Ramchandran (Huawei) +:Editors: Trinath Somanchi (NXP India) +:Authors: Prasad Gorja (NXP India) + Trinath Somanchi (NXP India) + Prakash Ramchandran (Dell) -:Abstract: OVN4NFV Release Notes. +:Abstract: OVN4NFV Testing Notes. .. toctree:: :maxdepth: 1 @@ -0,0 +1,17 @@ +[tox] +minversion = 1.6 +envlist = + docs, + docs-linkcheck +skipsdist = true + +[testenv:docs] +deps = -rdocs/requirements.txt +commands = + sphinx-build -b html -n -d {envtmpdir}/doctrees ./docs/ {toxinidir}/docs/_build/html + echo "Generated docs available in {toxinidir}/docs/_build/html" +whitelist_externals = echo + +[testenv:docs-linkcheck] +deps = -rdocs/requirements.txt +commands = sphinx-build -b linkcheck -d {envtmpdir}/doctrees ./docs/ {toxinidir}/docs/_build/linkcheck |