Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Contents

Table of Contents
excludeContents

Introduction

This document describes the steps to create a single and multi-node edge sites. 

Image Removed

Info

Unicycle (Three-Node Cluster) - Supported in the future release

Akraino Portal Operations

Login

Visit the portal URL http://REGIONAL_NODE_IP:8080/AECPortalMgmt/ where REGIONAL_NODE_IP is the Portal IP.

Use the following credentials:

  • Username: akadmin
  • Password: akraino

Upon successful login, the Akraino Portal home page will appear.

Build or Deploy an Edge Site

From the Portal home page:

...

Click on Browse button, select the input file for Blueprint - Rover (Single-Node Cluster). 
The input file is a property file that stores information in key-value format.  Sample input file used for ‘Rover’ deploy: 

Info

Copy and paste the below contents in to a file, and save it as rover.txt. Use this file for uploading as mentioned in step 4.d above.

Verify the configuration details as applicable to your environment. For more details refer to Appendix - Edge Site Configuration

Code Block
languagetext
titlerover.txt
# Copyright 2018 AT&T Intellectual Property.  All other 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.

# host name for server
SRV_NAME=aknode42

# out of band interface information for server (idrac/ilo/etc)
SRV_OOB_IP=192.168.41.42
SRV_OOB_USR=root
SRV_OOB_PWD=calvin

# server oem - Dell or HPE (case sensitive)
SRV_OEM=Dell

# name of network interface used during build when "ipxe efi" file is booted and when OS is booted
# ipxe numbers interfaces from 0-n in pci bus order. 
# the netX value will depend on how many nics are in the server 
# and which pci device number is assigned to the slot
SRV_IPXE_INF=net4
SRV_BLD_INF=enp94s0f0
SRV_BOOT_DEVICE=sdg

# ipxe script to use - based on the os version and kernel to install
# valid options are script-hwe-16.04.5-amd64.ipxe or script-16.04.5-amd64.ipxe
SRV_BLD_SCRIPT=script-hwe-16.04.5-amd64.ipxe

# template xml file to set bios and raid configuration settings
SRV_BIOS_TEMPLATE=dell_r740_g14_uefi_base.xml.template
SRV_BOOT_TEMPLATE=dell_r740_g14_uefi_httpboot.xml.template
SRV_HTTP_BOOT_DEV=NIC.Slot.7-1-1

# tempalte to run to configure OS after first boot
# current options are: firstboot.sh.template, firstboot-genesis.sh.template or firstboot-airship-iab.sh.template
SRV_FIRSTBOOT_TEMPLATE=firstboot-airship-iab.sh.template

# VLAN to use during build and for final network configuration
SRV_VLAN=41

# basic network information for dhcp config and final server network settings
SRV_MTU=9000
SRV_IP=192.168.2.42
SRV_SUBNET=192.168.2.0
SRV_NETMASK=255.255.255.0
SRV_GATEWAY=192.168.2.200
SRV_DNS=192.168.2.85
SRV_DOMAIN=lab.akraino.org
SRV_DNSSEARCH=lab.akraino.org
SRV_NTP=ntp.ubuntu.org

# root password for server being built
SRV_PWD=akraino,d

# network bond information
SRV_BOND=bond0
SRV_SLAVE1=enp94s0f0
SRV_SLAVE2=enp94s0f1

5. Click on Submit. This will upload the input file and the site details into the portal.

6. User will see the file uploaded successfully message in the sites column then Deploy button is enabled.

a.  Click on Deploy to begin the deploy process.
b. This process takes about an hour.
c.  User can click on Refresh (link) to update the status of the deploy on the portal.
d. The deploy status changes from ‘Not started’ to ‘In progress’ to ‘Complete’

7. User can additionally check the log files to track the progress of edge site installation, by logging into the regional_node_ip via ssh, and running this command: tail -f /var/log/scriptexecutor.log

Tempest Tests

Prerequisites

Specifics around OpenStack are beyond the scope of this guide.

  • Validate all OpenStack settings as needed.
  • Ensure all necessary OpenStack services are up and running for a particular site.
  • Use appropriate values for the OpenStack username, password, region, and desired timeout.      

Running Tempest

  • Navigate to ETE testing page using the left navigation menu in the portal.
  • Select a deployed edge site in the Run Tests page, by clicking the radio button in the GUI table displayed.  This will enable the "Run Tempest" button.
  • Click on "Run Tempest" to trigger the tempest test on the deployed edge site.
  • Test status shows "In Progress" upon successful invocation.
  • Test status gets updated to 'Complete', once the job gets completed.

Installing ONAP

Prerequisites

Specifics around ONAP are beyond the scope of this guide.

  • Verify that a VLAN is created and can be used for OpenStack tenant VM
    • The VLAN ID
    • An IP (or a range of IP) that can be accessed from this VLAN
    • Gateway, DNS, for the IP
  • A public private key pair for accessing ONAP VM
  • If the Edge Node is behind proxy, the proxy URL
  • Obtain the OpenStack keystone admin password

Installation

...

Contents

Table of Contents
excludeContents

Introduction

This document describes the steps to create a single and multi-node edge sites. 

Image Added

Info

Unicycle (Three-Node Cluster) - Supported in the future release

Akraino Portal Operations

Login

Visit the portal URL http://REGIONAL_NODE_IP:8080/AECPortalMgmt/ where REGIONAL_NODE_IP is the Portal IP.

Use the following credentials:

  • Username: akadmin
  • Password: akraino

Upon successful login, the Akraino Portal home page will appear.

Deploy a Multi-Node Edge Site

From the Portal home page:

  1. Select an Edge Site - MTN1 or MTN2 (these are the two default lab sites hosted in middle town NJ) by clicking on radio button provided in the first column of the table.
  2. For the selected Edge Site, select the Unicycle Blueprint from the drop-down menu.
  3. Click on Upload button (in the Site column), this will open a pop-up dialogClick on Browse button, select the input file for ONAP (parameters.env file).  
    The input
    Image Added

Provide the edge site-specific details such as:

  1. Host IP address
  2. Host username
  3. Host password. 


Example: DELL Cluster:

  • Host IP address: 192.168.2.40
  • Host username: root

  • Host password: XXXXXX

Example: HP Cluster

  •  Host IP address: 192.168.2.30
  • Host username: root

  • Host password: XXXXXX


4. Click on Browse button, select the input file for Blueprint - Unicycle (Multi-Node Cluster). 
The input file is a property file that stores information in key

...

-value format.  Sample input file used for

...

‘Unicycle’ deploy

Info

Copy and paste the below contents in to a file, and save it as

...

unicycle.

...

yaml. Use this file for uploading as mentioned in step 4.d above.  If using Dell Gen10, use the sample YAML input file shown in #1 below.  If using HP Gen10, use the sample YAML file in #2 below.

Verify the configuration details as applicable to your environment. For more details refer to Appendix -

...

Edge Site Configuration


Code Block
languagetext
title

...

# Parameters that will be populated by camunda engine
parameters:

  public_net_name: public

  public_physical_net_provider_name: bond0

  provider_segmentation_id: 50

  public_physical_net_type: vlan

  public_subnet_name: public

  public_subnet_cidr: 172.24.8.0/24

  public_subnet_allocation_start: 172.24.8.221

  public_subnet_allocation_end: 172.24.8.225

  public_subnet_dns_nameserver: 8.8.8.8

  public_subnet_gateway_ip: 172.24.8.1

  flavor_name: m1.onap

  onap_vm_public_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCWcbAk6SJxvYf4CM75JGWsQ38149Fhu4dUXUmnmASFWuvPJ6sCpoGyMPQdEMEt3wITCFGfS4gw6eQO39NUaS4JqWYjNN6sejernldwyqGwz42H/rn7CL0xhbCql9upWF+2bm5X46UgSwZBYcLxW0BrOh+0lxkON+2qOGZFbtEcOUeOVmRSJdBuxczyGD5i6zusITJ00scqfNTCyRLm8JiHlW9SY43iyj3Lq0cDxYQ97fKX2F+0D/JfnWPu/2v+HaJWDpfpNG/Mo/SVzNAwE997DMY1ZD9jJsoYPr8UWypQQJUMldn3P+ERaswNTXnGbmCnwRGlj7IANnmGCc7koi6t root@csoaiclab01-85

  http_proxy:

  https_proxy:

  no_proxy:

  keystone_admin_password: password

  onap_tenant_password: amsterdam

  onap_artifacts_http_repo:

...

Onboarding a Sample VNF

  1. Navigate to the Akraino Sites page via the left navigation menu.
  2. Select a deployed edge site in the GUI table displayed. The VNF Onboard button becomes enabled.
  3. Click VNF Onboard This will open a Pop up dialog.  Choose VNF as vCDN (Sample VNF) from the drop-down
  4. Verify all the default entries as applicable to your environment.
  5. Click Onboard to begin the sample VNF installation. This process may take few minutes to complete.
  6. The VNF Onboard status changes from ‘Not started’ to ‘In progress’ to ‘Complete’.

The Sample VNF creates an Apache Traffic Server cache instance and a Locust load generator client instance in the OpenStack environment for the selected site.  By default, the Sample VNF will create a heat stack name ats-demo.  The heat stack will contain two instances named ats-demo-client and ats-demo-server.  The default configuration of the server instance is to cache the Big Buck Bunny videos from the internet server and then serve the video to the client from its ramdisk. The heat stack will output the client and server URLs.  The client URL will display the Locust load generator dashboard.  The server URL will allow you to play the video in a browser.

OpenStack stack output show ats-demo --all

...

Field      

...

Value                                                                                 

...

{

"output_value": "http://192.168.48.223:8089/", 
"output_key": "client_url",
"description": "URL for client"

}

...

{

"output_value": "192.168.48.223",
"output_key": "client_ip",
"description": "IP of the client"

}

...

{

"output_value": "http://192.168.48.226:8080/bbb_sunflower_1080p_30fps_normal.mp4",
"output_key": "server_url",
"description": "URL for server"

}

...

{

"output_value": "192.168.48.226",
"output_key": "server_ip",
"description": "IP of the server"

}

Info

VNF can also be on-boarded using ONAP. Refer the documentation.

Appendix

Edge Site Configuration - Rover (Single-Node Cluster)

This configuration file is written as a series of shell key/value assignments.

Sample input file template with all required parameters are provided in the ‘Build or Deploy an Edge Node' section.

...

Key Name(s)

...

Notes

...

Example

...

SRV_NAME

...

SRV_NAME=aknode42

...

SRV_OOB_IP SRV_OOB_USR SRV_OOB_PWD

...

SRV_OOB_IP=192.168.41.42
SRV_OOB_USR=root
SRV_OOB_PWD=XXXXXXXX

...

SRV_MAC

...

SRV_MAC=3c:fd:fe:b8:02:90

...

SRV_OEM

...

SRV_OEM=Dell

...

SRV_IPXE_INF SRV_BLD_INF SRV_BOOT_DEVICE

...

SRV_IPXE_INF=net4
SRV_BLD_INF=enp94s0f0
SRV_BOOT_DEVICE=sdg

...

SRV_BLD_SCRIPT

...

ipxe script based on the OS version and target kernel. Valid values are script-hwe-16.04.4-amd64.ipxe or script-16.04.4-amd64.ipxe

...

SRV_BLD_SCRIPT=script-hwe-16.04.4-amd64.ipxe

...

SRV_BIOS_TEMPLATE SRV_BOOT_TEMPLATE SRV_HTTP_BOOT_DEV

...

SRV_BIOS_TEMPLATE=dell_r740_g14_uefi_base.xml.template
SRV_BOOT_TEMPLATE=dell_r740_g14_uefi_httpboot.xml.template
SRV_HTTP_BOOT_DEV=NIC.Slot.7-1-1

...

Template for script to run on first boot to setup the server. Current options are:

firstboot.sh.template
firstboot-genesis.sh.template
firstboot-airship-iab.sh.template

...

SRV_FIRSTBOOT_TEMPLATE=firstboot-airship-iab.sh.template

...

SRV_VLAN

...

SRV_VLAN=41

...

SRV_MTU SRV_IP SRV_SUBNET SRV_NETMASK SRV_GATEWAY SRV_DNS SRV_DOMAIN SRV_DNSSEARCH SRV_NTP

...

SRV_MTU=9000
SRV_IP=192.168.2.42
SRV_SUBNET=192.168.2.0
SRV_NETMASK=255.255.255.0
SRV_GATEWAY=192.168.2.200
SRV_DNS=192.168.2.85
SRV_DOMAIN=lab.akraino.org
SRV_DNSSEARCH=lab.akraino.org
SRV_NTP=ntp.ubuntu.org

...

SRV_PWD

...

SRV_PWD=XXXXXXXX

...

SRV_BOND SRV_SLAVE1 SRV_SLAVE2

...

SRV_BOND=bond0
SRV_SLAVE1=enp94s0f0
SRV_SLAVE2=enp94s0f1

...

Info

The Akraino seed code comes with default two sites: MTN1, MTN2 representing two lab sites in Middletown, NJ. This step of connecting to the database and creating edge_site records are only required if the user wishes to deploy on other sites.

To deploy a Rover (Single-Node Cluster) Edge Node, perform the following steps:

  • Check if the Akraino (Docker Containers) packages are stood up.
  • Connect to PostgreSQL database providing the host IP (name).
Code Block
languagebash
jdbc:postgresql://<IP-address-of-DB-host>:6432/postgres
user name = admin
password = abc123
Info
use ‘pgAdmin |||’ Postgres client tool or connect to Postgres DB using SQL interface  
  • Execute the following SQL insert, bearing in mind these value substitutions:

...

Code Block
languagebash
> insert into akraino.edge_site(edge_site_id, edge_site_name, crt_login_id, crt_dt, upd_login_id, upd_dt, region_id)
  values( 1, 'Atlanta', user, now(), user, now(),1);

ONAP Configuration

This configuration file is written as a YAML dictionary named parameters.

This dictionary will be selectively inserted into the ONAP VM environment file, depending on overall configuration.

...

Key Name

...

Notes

...

Example

...

public_net_name: public

...

  # Assume vlan50 is the VLAN created 
# for the OpenStack Project (tenant)
public_physical_net_provider_name: vlan50

...

  # Assume vlan50
provider_segmentation_id: 50

...

  public_physical_net_type: vlan

...

  public_subnet_name: public-subnet

...

  public_subnet_cidr: 192.168.102.0/24

...

  public_subnet_allocation_start: 192.168.102.100

...

  public_subnet_allocation_end: 192.168.102.200

...

  public_subnet_dns_nameserver: 8.8.8.8

...

  public_subnet_gateway_ip: 192.168.102.1

...

  flavor_name: x1.onap

...

  onap_vm_public_key: PUBLIC_KEY

...

  http_proxy: http://proxy.yourdomain.com:8888

...

  https_proxy: https://proxy.yourdomain.com:8888

...

  no_proxy: 127.0.0.1

...

  keystone_admin_password: XXXXXXXX

...

  onap_tenant_password: XXXXXXXX

...

Sample YAML Input File #1
---
##############################################################################
# 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.                                             #
##############################################################################
site_name: dellgen10
ipmi_admin:
  username: root
  password: calvin
networks:
  bonded: yes
  primary: bond0
  slaves:
    - name: enp94s0f0
    - name: enp94s0f1
  oob:
    vlan: 40
    interface:
    cidr: 192.168.41.0/24
    routes:
      gateway: 192.168.41.1
    ranges:
      reserved:
        start: 192.168.41.2
        end: 192.168.41.12
      static:
        start: 192.168.41.13
        end: 192.168.41.254
  host:
    vlan: 41
    interface: bond0.41
    cidr: 192.168.2.0/24
    routes:
       gateway: 192.168.2.200
    ranges:
      reserved:
        start: 192.168.2.84
        end: 192.168.2.86
      static:
        start: 192.168.2.40
        end: 192.168.2.45
    dns:
      domain: lab.akraino.org
      servers: '192.168.2.85 8.8.8.8 8.8.4.4'
  storage:
    vlan: 42
    interface: bond0.42
    cidr: 172.31.2.0/24
    ranges:
      reserved:
        start: 172.31.2.1
        end: 172.31.2.10
      static:
        start: 172.31.2.11
        end: 172.31.2.254
  pxe:
    vlan: 43
    interface: eno3
    cidr: 172.30.2.0/24
    gateway: 172.30.2.1
    routes:
      gateway: 172.30.2.40
    ranges:
      reserved:
        start: 172.30.2.2
        end:  172.30.2.10
      static:
        start: 172.30.2.11
        end: 172.30.2.200
      dhcp:
        start: 172.30.2.201
        end: 172.30.2.254
    dns:
      domain: lab.akraino.org
      servers: '192.168.2.85 8.8.8.8 8.8.4.4'
  ksn:
    vlan: 44
    interface: bond0.44
    cidr: 172.29.1.0/24
    local_asnumber: 65531
    ranges:
      static:
        start: 172.29.1.5
        end: 172.29.1.254
    additional_cidrs:
      -  172.29.1.128/29
    ingress_cidr: 172.29.1.129/32
    peers:
    - ip: 172.29.1.1
      scope: global
      asnumber: 65001
    vrrp_ip: 172.29.1.1 # keep peers ip address in case of only peer.
  neutron:
    vlan: 45
    interface: bond0.45
    cidr: 10.0.102.0/24
    ranges:
      reserved:
        start: 10.0.102.1
        end: 10.0.102.10
      static:
        start: 10.0.102.11
        end: 10.0.102.254
dns:
  upstream_servers:
    - 192.168.2.85
    - 8.8.8.8
    - 8.8.8.8
  upstream_servers_joined: '192.168.2.85,8.8.8.8'
  ingress_domain: dellgen10.akraino.org
sriovnets:
- physical: sriovnet1
  interface: enp135s0f0
  vlan_start: 2001
  vlan_end: 3000
  whitelists:
  - "address": "0000:87:02.0"
  - "address": "0000:87:02.1"
  - "address": "0000:87:03.2"
  - "address": "0000:87:03.3"
  - "address": "0000:87:03.4"
  - "address": "0000:87:03.5"
  - "address": "0000:87:03.6"
  - "address": "0000:87:03.7"
  - "address": "0000:87:04.0"
  - "address": "0000:87:04.1"
  - "address": "0000:87:04.2"
  - "address": "0000:87:04.3"
  - "address": "0000:87:02.2"
  - "address": "0000:87:04.4"
  - "address": "0000:87:04.5"
  - "address": "0000:87:04.6"
  - "address": "0000:87:04.7"
  - "address": "0000:87:05.0"
  - "address": "0000:87:05.1"
  - "address": "0000:87:05.2"
  - "address": "0000:87:05.3"
  - "address": "0000:87:05.4"
  - "address": "0000:87:05.5"
  - "address": "0000:87:02.3"
  - "address": "0000:87:05.6"
  - "address": "0000:87:05.7"
  - "address": "0000:87:02.4"
  - "address": "0000:87:02.5"
  - "address": "0000:87:02.6"
  - "address": "0000:87:02.7"
  - "address": "0000:87:03.0"
  - "address": "0000:87:03.1"
- physical: sriovnet2
  interface: enp135s0f1
  vlan_start: 2001
  vlan_end: 3000
  whitelists:
  - "address": "0000:87:0a.0"
  - "address": "0000:87:0a.1"
  - "address": "0000:87:0b.2"
  - "address": "0000:87:0b.3"
  - "address": "0000:87:0b.4"
  - "address": "0000:87:0b.5"
  - "address": "0000:87:0b.6"
  - "address": "0000:87:0b.7"
  - "address": "0000:87:0c.0"
  - "address": "0000:87:0c.1"
  - "address": "0000:87:0c.2"
  - "address": "0000:87:0c.3"
  - "address": "0000:87:0a.2"
  - "address": "0000:87:0c.4"
  - "address": "0000:87:0c.5"
  - "address": "0000:87:0c.6"
  - "address": "0000:87:0c.7"
  - "address": "0000:87:0d.0"
  - "address": "0000:87:0d.1"
  - "address": "0000:87:0d.2"
  - "address": "0000:87:0d.3"
  - "address": "0000:87:0d.4"
  - "address": "0000:87:0d.5"
  - "address": "0000:87:0a.3"
  - "address": "0000:87:0d.6"
  - "address": "0000:87:0d.7"
  - "address": "0000:87:0a.4"
  - "address": "0000:87:0a.5"
  - "address": "0000:87:0a.6"
  - "address": "0000:87:0a.7"
  - "address": "0000:87:0b.0"
  - "address": "0000:87:0b.1"
storage:
  osds:
    - data: /dev/sda
      journal: /var/lib/ceph/journal/journal-sda
    - data: /dev/sdb
      journal: /var/lib/ceph/journal/journal-sdb
    - data: /dev/sdc
      journal: /var/lib/ceph/journal/journal-sdc
    - data: /dev/sdd
      journal: /var/lib/ceph/journal/journal-sdd
    - data: /dev/sde
      journal: /var/lib/ceph/journal/journal-sde
    - data: /dev/sdf
      journal: /var/lib/ceph/journal/journal-sdf
  osd_count: 6
  total_osd_count: 18
genesis:
  name: aknode40
  oob: 192.168.41.40
  host: 192.168.2.40
  storage: 172.31.2.40
  pxe: 172.30.2.40
  ksn: 172.29.1.40
  neutron: 10.0.102.40
masters:
  - name : aknode41
    oob: 192.168.41.41
    host: 192.168.2.41
    storage: 172.31.2.41
    pxe: 172.30.2.41
    ksn: 172.29.1.41
    neutron: 10.0.102.41
  - name : aknode42
    oob: 192.168.41.42
    host: 192.168.2.42
    storage: 172.31.2.42
    pxe: 172.30.2.42
    ksn: 172.29.1.42
    neutron: 10.0.102.42
#workers:
#  - name : aknode43
#    oob: 192.168.41.43
#    host: 192.168.2.43
#    storage: 172.31.2.43
#    pxe: 172.30.2.43
#    ksn: 172.29.1.43
#    neutron: 10.0.102.43
#  - name : aknode44
#    oob: 192.168.41.44
#    host: 192.168.2.44
#    storage: 172.31.2.44
#    pxe: 172.30.2.44
#    ksn: 172.29.1.44
#    neutron: 10.0.102.44
hardware:
  vendor: DELL
  generation: '10'
  hw_version: '3'
  bios_version: '2.8'
disks:
  - name : sdg
    labels:
      bootdrive: 'true'
    partitions:
      - name: root
        size: 20g
        mountpoint: /
      - name: boot
        size: 1g
        mountpoint: /boot
      - name: var
        size: 100g
        mountpoint: /var
  - name : sdh
    partitions:
      - name: ceph
        size: 300g
        mountpoint: /var/lib/ceph/journal
disks_compute:
  - name : sdg
    labels:
      bootdrive: 'true'
    partitions:
      - name: root
        size: 20g
        mountpoint: /
      - name: boot
        size: 1g
        mountpoint: /boot
      - name: var
        size: '>300g'
        mountpoint: /var
  - name : sdh
    partitions:
      - name: nova
        size: '99%'
        mountpoint: /var/lib/nova
genesis_ssh_public_key: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC/n4mNLAj3XKG2fcm+8eVe0NUlNH0g8DA8KJ53rSLKccm8gm4UgLmGOJyBfUloQZMuOpU6a+hexN4ECCliqI7+KUmgJgsvLkJ3OUMNTEVu9tDX5mdXeffsufaqFkAdmbJ/9PMPiPQ3/UqbbtyEcqoZAwUWf4ggAWSp00SGE1Okg+skPSbDzPVHb4810eXZT1yoIg29HAenJNNrsVxvnMT2kw2OYmLfxgEUh1Ev4c5LnUog4GXBDHQtHAwaIoTu9s/q8VIvGav62RJVFn3U1D0jkiwDLSIFn8ezORQ4YkSidwdSrtqsqa2TJ0E5w/n5h5IVGO9neY8YlXrgynLd4Y+7 root@pocnjrsv132"
kubernetes:
  api_service_ip: 10.96.0.1
  etcd_service_ip: 10.96.0.2
  pod_cidr: 10.98.0.0/16
  service_cidr: 10.96.0.0/15
regional_server:
  ip: 135.16.101.85
...


Code Block
languagetext
titleSample YAML Input File #2
---
##############################################################################
# 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.                                             #
##############################################################################
site_name: hpgen10
ipmi_admin:
  username: Administrator
  password: Admin123
networks:
  bonded: yes
  primary: bond0
  slaves:
    - name: ens3f0
    - name: ens3f1
  oob:
    vlan: 40
    interface:
    cidr: 192.168.41.0/24
    routes:
      gateway: 192.168.41.1
    ranges:
      reserved:
        start: 192.168.41.2
        end: 192.168.41.4
      static:
        start: 192.168.41.5
        end: 192.168.41.254
  host:
    vlan: 41
    interface: bond0.41
    cidr: 192.168.2.0/24
    subnet: 192.168.2.0
    netmask: 255.255.255.0
    routes:
       gateway: 192.168.2.200
    ranges:
      reserved:
        start: 192.168.2.84
        end: 192.168.2.86
      static:
        start: 192.168.2.1
        end: 192.168.2.83
    dns:
      domain: lab.akraino.org
      servers: '192.168.2.85 8.8.8.8 8.8.4.4'
  storage:
    vlan: 42
    interface: bond0.42
    cidr: 172.31.1.0/24
    ranges:
      static:
        start: 172.31.1.2
        end: 172.31.1.254
  pxe:
    vlan:
    interface: eno1
    cidr: 172.30.1.0/24
    gateway: 172.30.1.1
    routes:
       gateway: 172.30.1.30
    ranges:
      reserved:
        start: 172.30.1.1
        end:  172.30.1.10
      static:
        start: 172.30.1.11
        end: 172.30.1.200
      dhcp:
        start: 172.30.1.201
        end: 172.30.1.254
    dns:
      domain: lab.akraino.org
      servers: '192.168.2.85 8.8.8.8 8.8.4.4'
    inf: net4
  ksn:
    vlan: 44
    interface: bond0.44
    cidr: 172.29.1.0/24
    local_asnumber: 65531
    ranges:
      static:
        start: 172.29.1.5
        end: 172.29.1.254
    additional_cidrs:
      -  172.29.1.136/29
    ingress_cidr: 172.29.1.137/32
    peers:
    - ip: 172.29.1.1
      scope: global
      asnumber: 65001
    vrrp_ip: 172.29.1.1 # keep peers ip address in case of only peer.
  neutron:
    vlan: 45
    interface: bond0.45
    cidr: 10.0.101.0/24
    ranges:
      static:
        start: 10.0.101.2
        end: 10.0.101.254
dns:
  upstream_servers:
    - 192.168.2.85
    - 8.8.8.8
    - 8.8.8.8
  upstream_servers_joined: '192.168.2.85,8.8.8.8'
  ingress_domain: hpgen10.akraino.org
sriovnets:
- physical: sriovnet1
  interface: ens6f0
  vlan_start: 2001
  vlan_end: 3000
  whitelists:
  - "address": "0000:af:02.0"
  - "address": "0000:af:02.1"
  - "address": "0000:af:02.2"
  - "address": "0000:af:02.3"
  - "address": "0000:af:02.4"
  - "address": "0000:af:02.5"
  - "address": "0000:af:02.6"
  - "address": "0000:af:02.7"
  - "address": "0000:af:03.0"
  - "address": "0000:af:03.1"
  - "address": "0000:af:03.2"
  - "address": "0000:af:03.3"
  - "address": "0000:af:03.4"
  - "address": "0000:af:03.5"
  - "address": "0000:af:03.6"
  - "address": "0000:af:03.7"
  - "address": "0000:af:04.0"
  - "address": "0000:af:04.1"
  - "address": "0000:af:04.2"
  - "address": "0000:af:04.3"
  - "address": "0000:af:04.4"
  - "address": "0000:af:04.5"
  - "address": "0000:af:04.6"
  - "address": "0000:af:04.7"
  - "address": "0000:af:05.0"
  - "address": "0000:af:05.1"
  - "address": "0000:af:05.2"
  - "address": "0000:af:05.3"
  - "address": "0000:af:05.4"
  - "address": "0000:af:05.5"
  - "address": "0000:af:05.6"
  - "address": "0000:af:05.7"
- physical: sriovnet2
  interface: ens6f1
  vlan_start: 2001
  vlan_end: 3000
  whitelists:
  - "address": "0000:af:0a.0"
  - "address": "0000:af:0a.1"
  - "address": "0000:af:0a.2"
  - "address": "0000:af:0a.3"
  - "address": "0000:af:0a.4"
  - "address": "0000:af:0a.5"
  - "address": "0000:af:0a.6"
  - "address": "0000:af:0a.7"
  - "address": "0000:af:0b.0"
  - "address": "0000:af:0b.1"
  - "address": "0000:af:0b.2"
  - "address": "0000:af:0b.3"
  - "address": "0000:af:0b.4"
  - "address": "0000:af:0b.5"
  - "address": "0000:af:0b.6"
  - "address": "0000:af:0b.7"
  - "address": "0000:af:0c.0"
  - "address": "0000:af:0c.1"
  - "address": "0000:af:0c.2"
  - "address": "0000:af:0c.3"
  - "address": "0000:af:0c.4"
  - "address": "0000:af:0c.5"
  - "address": "0000:af:0c.6"
  - "address": "0000:af:0c.7"
  - "address": "0000:af:0d.0"
  - "address": "0000:af:0d.1"
  - "address": "0000:af:0d.2"
  - "address": "0000:af:0d.3"
  - "address": "0000:af:0d.4"
  - "address": "0000:af:0d.5"
  - "address": "0000:af:0d.6"
  - "address": "0000:af:0d.7"
storage:
  osds:
    - data: /dev/sdb
      journal: /var/lib/ceph/journal/journal-sdb
    - data: /dev/sdc
      journal: /var/lib/ceph/journal/journal-sdc
    - data: /dev/sdd
      journal: /var/lib/ceph/journal/journal-sdd
    - data: /dev/sde
      journal: /var/lib/ceph/journal/journal-sde
    - data: /dev/sdf
      journal: /var/lib/ceph/journal/journal-sdf
    - data: /dev/sdg
      journal: /var/lib/ceph/journal/journal-sdg
    - data: /dev/sdh
      journal: /var/lib/ceph/journal/journal-sdh
    - data: /dev/sdi
      journal: /var/lib/ceph/journal/journal-sdi
  osd_count: 8
  total_osd_count: 24
genesis:
  name: aknode30
  oob: 192.168.41.130
  host: 192.168.2.30
  storage: 172.31.1.30
  pxe: 172.30.1.30
  ksn: 172.29.1.30
  neutron: 10.0.101.30
  root_password: akraino,d
  oem: HPE
  mac_address: 3c:fd:fe:aa:90:b0
  bios_template: hpe_dl380_g10_uefi_base.json.template
  boot_template: hpe_dl380_g10_uefi_httpboot.json.template
  http_boot_device: NIC.Slot.3-1-1
masters:
  - name : aknode31
    oob: 192.168.41.131
    host: 192.168.2.31
    storage: 172.31.1.31
    pxe: 172.30.1.31
    ksn: 172.29.1.31
    neutron: 10.0.101.31
    oob_user: Administrator
    oob_password: Admin123
  - name : aknode32
    oob: 192.168.41.132
    host: 192.168.2.32
    storage: 172.31.1.32
    pxe: 172.30.1.32
    ksn: 172.29.1.32
    neutron: 10.0.101.32
    oob_user: Administrator
    oob_password: Admin123
workers:
  - name : aknode33
    oob: 192.168.41.133
    host: 192.168.2.33
    storage: 172.31.1.33
    pxe: 172.30.1.33
    ksn: 172.29.1.33
    neutron: 10.0.101.33
    oob_user: Administrator
    oob_password: Admin123
#  - name : aknode34
#    oob: 192.168.41.134
#    host: 192.168.2.34
#    storage: 172.31.1.34
#    pxe: 172.30.1.34
#    ksn: 172.29.1.34
#    neutron: 10.0.101.34
hardware:
  vendor: HP
  generation: '10'
  hw_version: '3'
  bios_version: '2.8'
disks:
  - name : sdj
    labels:
      bootdrive: 'true'
    partitions:
      - name: root
        size: 20g
        mountpoint: /
      - name: boot
        size: 1g
        mountpoint: /boot
      - name: var
        size: '>300g'
        mountpoint: /var
  - name : sdk
    partitions:
      - name: cephj
        size: 300g
        mountpoint: /var/lib/ceph/journal
disks_compute:
  - name : sdj
    labels:
      bootdrive: 'true'
    partitions:
      - name: root
        size: 20g
        mountpoint: /
      - name: boot
        size: 1g
        mountpoint: /boot
      - name: var
        size: '>300g'
        mountpoint: /var
  - name : sdk
    partitions:
      - name: nova
        size: '99%'
        mountpoint: /var/lib/nova
genesis_ssh_public_key: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC/n4mNLAj3XKG2fcm+8eVe0NUlNH0g8DA8KJ53rSLKccm8gm4UgLmGOJyBfUloQZMuOpU6a+hexN4ECCliqI7+KUmgJgsvLkJ3OUMNTEVu9tDX5mdXeffsufaqFkAdmbJ/9PMPiPQ3/UqbbtyEcqoZAwUWf4ggAWSp00SGE1Okg+skPSbDzPVHb4810eXZT1yoIg29HAenJNNrsVxvnMT2kw2OYmLfxgEUh1Ev4c5LnUog4GXBDHQtHAwaIoTu9s/q8VIvGav62RJVFn3U1D0jkiwDLSIFn8ezORQ4YkSidwdSrtqsqa2TJ0E5w/n5h5IVGO9neY8YlXrgynLd4Y+7 root@pocnjrsv132"
kubernetes:
  api_service_ip: 10.96.0.1
  etcd_service_ip: 10.96.0.2
  pod_cidr: 10.99.0.0/16
  service_cidr: 10.96.0.0/14
regional_server:
  ip: 135.16.101.85
...

Image Added

5. Click on Submit. This will upload the input file and the site details into the portal.


6. User will see the file uploaded successfully message in the sites column then Build button is enabled.




a.  Click on Build to begin the build process.

b. User can click on Refresh (link) to update the status of the build on the portal.

c. The build status changes from ‘Not started’ to ‘In progress’ to ‘Completed’.

d. The build process will generate all the required yaml files with site details. User can view the generated yaml files by clicking ‘view yaml build file’ provided in Build status column.

Image Added


7. User will see the ‘Completed’ status in build status column then Deploy button is enabled.

a.  Click on Deploy to begin the deploy process.

b. User can click on Refresh (link) to update the status of the build on the portal.



Note: In portal when the overall status of the Deploy is success, login to each node and check deploy site logs under var/log/deploy_site_yyyymmddhhmm.log file by using the command tail -f /var/log/deploy_site_yyyymmddhhmm.log file

 Check the deployment process logs under “tail –f /var/log/scriptexecutor.log” or “/var/log/yaml_builds/” on regional_controller node.







  • Once the deploy status got “completed” on the portal, then

This is to check the status of deploy_site.

Following is the snippet from root@aknode44:/var/log# vi scriptexecutor.log


2018-10-02 17:28:58.464 DEBUG 12751 --- [SimpleAsyncTaskExecutor-2] a.b.s.i.RemoteScriptExecutionServiceImpl : + deploy_site


2018-10-02 17:28:58.464 DEBUG 12751 --- [SimpleAsyncTaskExecutor-2] a.b.s.i.RemoteScriptExecutionServiceImpl : + sudo docker run -e OS_AUTH_URL=http://keystone-api.ucp.svc.cluster.local:80/v3 -e OS_PASSWORD=86db58e20de93ef55477 -e OS_PROJECT_DOMAIN_NAME=default -e OS_PROJECT_NAME=service -e OS_USERNAME=shipyard -e OS_USER_DOMAIN_NAME=default -e OS_IDENTITY_API_VERSION=3 --rm --net=host quay.io/airshipit/shipyard:165c845e3e7459d2a4892ed4ca910b00675e7561 create action deploy_site

2018-10-02 17:29:02.273 DEBUG 12751 --- [SimpleAsyncTaskExecutor-2] a.b.s.i.RemoteScriptExecutionServiceImpl : Name               Action                                   Lifecycle        Execution Time             Step Succ/Fail/Oth

2018-10-02 17:29:02.274 DEBUG 12751 --- [SimpleAsyncTaskExecutor-2] a.b.s.i.RemoteScriptExecutionServiceImpl : deploy_site        action/01CRTX8CTJ8VHMSNVC2NHGWKCY        None             2018-10-02T17:29:53        0/0/0

2018-10-02 17:29:02.546 DEBUG 12751 --- [SimpleAsyncTaskExecutor-2] a.b.s.i.RemoteScriptExecutionServiceImpl : Script exit code :0

 

Based on the above snippet you can frame a command like following(just concatenate highlighted partes and add describe in the middle) and run it on aknode40 to see the status deploy_site,



 

root@aknode40:~# docker run -e OS_AUTH_URL=http://keystone-api.ucp.svc.cluster.local:80/v3 -e OS_PASSWORD=86db58e20de93ef55477 -e OS_PROJECT_DOMAIN_NAME=default -e OS_PROJECT_NAME=service -e OS_USERNAME=shipyard -e OS_USER_DOMAIN_NAME=default -e OS_IDENTITY_API_VERSION=3 --rm --net=host quay.io/airshipit/shipyard:165c845e3e7459d2a4892ed4ca910b00675e7561 describe action/01CRTX8CTJ8VHMSNVC2NHGWKCY

 



Appendix

Edge Site Configuration - Unicycle (Multi-Node Cluster)

This configuration file is written as a series of shell key/value assignments.

Sample input file template with all required parameters are provided in the ‘Build or Deploy an Edge Node' section.

Key Name(s)

Notes

Example

SRV_NAME

Server hostname
SRV_NAME=aknode42

SRV_OOB_IP SRV_OOB_USR SRV_OOB_PWD

Out-of-band interface information for the server (iDRAC, ilo, etc.)
SRV_OOB_IP=192.168.41.42
SRV_OOB_USR=root
SRV_OOB_PWD=XXXXXXXX

SRV_MAC

MAC address of the server used during the build
SRV_MAC=3c:fd:fe:b8:02:90

SRV_OEM

Server OEM: Dell or HPE (case sensitive)
SRV_OEM=Dell

SRV_IPXE_INF SRV_BLD_INF SRV_BOOT_DEVICE

Network interface used during the build when ipxe.efi and the OS are booted
SRV_IPXE_INF=net4
SRV_BLD_INF=enp94s0f0
SRV_BOOT_DEVICE=sdg

SRV_BLD_SCRIPT

ipxe script based on the OS version and target kernel. Valid values are script-hwe-16.04.4-amd64.ipxe or script-16.04.4-amd64.ipxe

SRV_BLD_SCRIPT=script-hwe-16.04.4-amd64.ipxe

SRV_BIOS_TEMPLATE SRV_BOOT_TEMPLATE SRV_HTTP_BOOT_DEV

XML template used to set BIOS and RAID configuration.
SRV_BIOS_TEMPLATE=dell_r740_g14_uefi_base.xml.template
SRV_BOOT_TEMPLATE=dell_r740_g14_uefi_httpboot.xml.template
SRV_HTTP_BOOT_DEV=NIC.Slot.7-1-1
SRV_FIRSTBOOT_TEMPLATE

Template for script to run on first boot to setup the server. Current options are:

firstboot.sh.template
firstboot-genesis.sh.template
firstboot-airship-iab.sh.template

SRV_FIRSTBOOT_TEMPLATE=firstboot-airship-iab.sh.template

SRV_VLAN

VLAN to use during the build and final network configuration
SRV_VLAN=41

SRV_MTU SRV_IP SRV_SUBNET SRV_NETMASK SRV_GATEWAY SRV_DNS SRV_DOMAIN SRV_DNSSEARCH SRV_NTP

Basic network information for DHCP configuration and final server network settings
SRV_MTU=9000
SRV_IP=192.168.2.42
SRV_SUBNET=192.168.2.0
SRV_NETMASK=255.255.255.0
SRV_GATEWAY=192.168.2.200
SRV_DNS=192.168.2.85
SRV_DOMAIN=lab.akraino.org
SRV_DNSSEARCH=lab.akraino.org
SRV_NTP=ntp.ubuntu.org

SRV_PWD

Root password for the server being built
SRV_PWD=XXXXXXXX

SRV_BOND SRV_SLAVE1 SRV_SLAVE2

Network bond information
SRV_BOND=bond0
SRV_SLAVE1=enp94s0f0
SRV_SLAVE2=enp94s0f1


Create New Edge Site locations

Info

The Akraino seed code comes with default two sites: MTN1, MTN2 representing two lab sites in Middletown, NJ. This step of connecting to the database and creating edge_site records are only required if the user wishes to deploy on other sites.

To deploy a Unicycle (Multi-Node Cluster) Edge Node, perform the following steps:

  • Check if the Akraino (Docker Containers) packages are stood up.
  • Connect to PostgreSQL database providing the host IP (name).
Code Block
languagebash
jdbc:postgresql://<IP-address-of-DB-host>:6432/postgres
user name = admin
password = abc123


Info
use ‘pgAdmin |||’ Postgres client tool or connect to Postgres DB using SQL interface  


  • Execute the following SQL insert, bearing in mind these value substitutions:
    • edge_site_id: Any unique increment value. This is usually 1 but does not have to be.
    • edge_site_name: Human-readable Edge Node name.
    • region_id: Edge Node region number. Use select * from akraino.Region; to determine the appropriate value. Observe the region number associations returned from the query: Use 1 for US East, 2 for US West, and so on.

Code Block
languagebash
> insert into akraino.edge_site(edge_site_id, edge_site_name, crt_login_id, crt_dt, upd_login_id, upd_dt, region_id)
  values( 1, 'Atlanta', user, now(), user, now(),1);