Skip to content

Feature request: Support Juju bundles in VNFD

Juju Bundles

Proposer

  • Adam Israel

Type

Feature

Target MDG/TF

SO, UI

Description

This feature proposes the extension of the VNFD model to describe the relationship between VNF(s) and its supporting applications.

A bundle is a YAML-formatted document that describes a complex deployment. It details the individual charms that make up an application, how each charm relates to each other, their initial resource constraints, and even network spaces.

Not all keys in the bundle necessarily need be implemented by the SO, since there are overlaps between the bundle and VNFD specification, but it does provide an example of how this is currently done within the Juju community.

At a minimum, the VNFD model needs to be extended to support the deployment of multiple charms that make up a VNF application, as well as how each component in that application relates to each other.

Demo or definition of done

Here is an example of a Juju Bundle describing an OAI 5G NFV:

series: trusty
services:
  "oai-hss":
    charm: "cs:~marcoceppi/trusty/oai-hss-0"
    num_units: 1
  "mysql":
    charm: "cs:trusty/mysql-33"
    num_units: 1
  "oai-enodeb-usrp":
    charm: "cs:~marcoceppi/trusty/oai-enb-0"
    num_units: 1
    options:
      N_RB_DL: 50
      config_file: enb.band13.tm1.usrpb210.conf
      downlink_frequency: "751000000"
      eth: "juju-br0"
      eutra_band: 13
      rrh_active: "no"
      rx_gain: 100
      uplink_frequency_offset: "31000000"
    constraints: tags=physical
  "oai-epc":
    charm: "cs:~navid-nikaein/trusty/oai-epc-20"
    num_units: 1
    options:
      DEFAULT_DNS_IPV4_ADDRESS: 10.155.0.1
      DEFAULT_DNS_SEC_IPV4_ADDRESS: 172.27.9.254
      ipv4_list_end: 192.188.2.0/23
      revision: d32cbff9bb752d1ab9d0c259ce102e91641cc12a
  "oasim-baremetal":
    charm: "cs:~navid-nikaein/trusty/oaisim-enb-ue-2"
    num_units: 1
    options:
      eth: "juju-br0"
    constraints: tags=physical
relations:
  - - "oai-hss:db"
    - "mysql:db"
  - - "oai-hss:hss"
    - "oai-epc:hss"
  - - "oai-epc:epc"
    - "oai-enodeb-usrp:epc"
machines:
  "0":
    series: trusty
    constraints: "arch=amd64 cpu-cores=4 mem=16384"
  "1":
    series: trusty
    constraints: "arch=amd64 cpu-cores=4 mem=16384"
  "2":
    series: trusty
    constraints: "arch=amd64 cpu-cores=4 mem=16384"
  "3":
    series: trusty
    constraints: "arch=amd64 cpu-cores=4 mem=16384"