/go-docker-vnfm

Primary LanguageGoApache License 2.0Apache-2.0

Copyright © 2015-2016 Open Baton. Licensed under Apache v2 License.

Docker VNFM for Open Baton

This VNF Manager, together with the Docker Vim Driver, allows Open Baton to deploy Container on top of a running Docker engine.

Both VNFM and VIM Driver are necessary in order to be able to deploy NS over Docker

How to install the Docker VNFM

Requirements

Build the VNFM

Assuming that your GOPATH variable is set to $HOME/go (find out typing go env), run the following commands:

mkdir -p ~/go/src/github.com/openbaton
cd ~/go/src/github.com/openbaton
git clone git@github.com:openbaton/go-docker-vnfm.git
cd go-docker-vnfm
dep ensure
go build -o go-docker-vnfm

Afterwards check the usage by running:

./go-docker-vnfm --help

How to start the Docker VNFM

If you don't need special configuration, start the go-docker-vnfm just by running:

./go-docker-vnfm

How to use the Docker VNFM

The Docker VNFM works with the upstream Open Baton NFVO, so no changes are needed. Some fields of the VNFD could have a different meaning. An example of a MongoDB VNFPackage follows

The VNFD

{
    "name": "MongoDB",
    "vendor": "TUB",
    "version": "0.2",
    "lifecycle_event": [],
    "configurations": {
      "configurationParameters": [{
        "confKey":"KEY",
        "value":"Value"
      }],
      "name": "mongo-configuration"
    },
    "virtual_link": [{
      "name": "new-network"
    }],
    "vdu": [{
      "vm_image": [
      ],
      "scale_in_out": 2,
      "vnfc": [{
        "connection_point": [{
          "virtual_link_reference": "new-network"
        }]
      }]
    }],
    "deployment_flavour": [{
      "flavour_key": "m1.small"
    }],
    "type": "mongodb",
    "endpoint": "docker"
  }
  • The Virtual Link will be a new Docker Network created if not existing.
  • The flavour_key must be set to m1.small (at the moment)
  • The vm_image will be filled by the metadata image name (see next section)

The Metadata.yaml

name: MongoDB
description: MongoDB
provider: TUB
nfvo_version: 4.0.0
vim_types:
 - docker
image:
    upload: "check"
    names:
        - "mongo:latest"
    link: "mongo:latest"
image-config:
    name: "mongo:latest"
    diskFormat: QCOW2
    containerFormat: BARE
    minCPU: 0
    minDisk: 0
    minRam: 0
    isPublic: false

Here you can see some differences:

  • vim_types must have docker (pointing to the Docker VIM Driver)
  • image upload can be put to check in order to execute docker pull with the image link in case the image name is not available. NOTE: the image name must be the same as the link since in docker there is not distinction
  • image-config the name must be the same as the link. the Disk Format and container format are ignored so you can use "QCOW2" and "BARE", as well as for the limits, everything can be 0,

Build the VNFPackage

In order to build the VNF Package and to upload it please follow our documentation

Issue tracker

Issues and bug reports should be posted to the GitHub Issue Tracker of this project

What is Open Baton?

OpenBaton is an open source project providing a comprehensive implementation of the ETSI Management and Orchestration (MANO) specification.

Open Baton is a ETSI NFV MANO compliant framework. Open Baton was part of the OpenSDNCore (www.opensdncore.org) project started almost three years ago by Fraunhofer FOKUS with the objective of providing a compliant implementation of the ETSI NFV specification.

Open Baton is easily extensible. It integrates with OpenStack, and provides a plugin mechanism for supporting additional VIM types. It supports Network Service management either using a generic VNFM or interoperating with VNF-specific VNFM. It uses different mechanisms (REST or PUB/SUB) for interoperating with the VNFMs. It integrates with additional components for the runtime management of a Network Service. For instance, it provides autoscaling and fault management based on monitoring information coming from the the monitoring system available at the NFVI level.

Source Code and documentation

The Source Code of the other Open Baton projects can be found here and the documentation can be found here .

News and Website

Check the Open Baton Website Follow us on Twitter @openbaton.

Licensing and distribution

Copyright [2015-2016] Open Baton project

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.

Support

The Open Baton project provides community support through the Open Baton Public Mailing List and through StackOverflow using the tags openbaton.

Supported by