An example of a multi-charm, multi-vdu VNF 85/6885/1
authorAdam Israel <adam.israel@canonical.com>
Mon, 18 Jun 2018 19:40:24 +0000 (15:40 -0400)
committerAdam Israel <adam.israel@canonical.com>
Wed, 14 Nov 2018 15:41:56 +0000 (10:41 -0500)
These descriptors are for a multi-charm, multi-vdu vnf, using the simple
charm, to serve as a very basic example for test and development
purposes.

Signed-off-by: Adam Israel <adam.israel@canonical.com>
descriptor-packages/nsd/simple_multi-charm_multi-vdu-ns/Makefile [new file with mode: 0644]
descriptor-packages/nsd/simple_multi-charm_multi-vdu-ns/src/icons/osm.png [new file with mode: 0644]
descriptor-packages/nsd/simple_multi-charm_multi-vdu-ns/src/simple_multi-charm_multi-vdu_nsd.yaml [new file with mode: 0644]
descriptor-packages/vnfd/simple_multi-charm_multi-vdu_vnf/Makefile [new file with mode: 0644]
descriptor-packages/vnfd/simple_multi-charm_multi-vdu_vnf/src/simple_multi-charm_multi-vdu_vnfd.yaml [new file with mode: 0644]

diff --git a/descriptor-packages/nsd/simple_multi-charm_multi-vdu-ns/Makefile b/descriptor-packages/nsd/simple_multi-charm_multi-vdu-ns/Makefile
new file mode 100644 (file)
index 0000000..9c18082
--- /dev/null
@@ -0,0 +1,20 @@
+#
+#   Copyright 2018 Telefonica
+#
+#   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.
+#
+
+DESCRIPTORS_TOPDIR ?= ../..
+include $(DESCRIPTORS_TOPDIR)/mk/pkg.mk
+
+all: $(BUILD_DIR)/$(PKG_NAME)
diff --git a/descriptor-packages/nsd/simple_multi-charm_multi-vdu-ns/src/icons/osm.png b/descriptor-packages/nsd/simple_multi-charm_multi-vdu-ns/src/icons/osm.png
new file mode 100644 (file)
index 0000000..62012d2
Binary files /dev/null and b/descriptor-packages/nsd/simple_multi-charm_multi-vdu-ns/src/icons/osm.png differ
diff --git a/descriptor-packages/nsd/simple_multi-charm_multi-vdu-ns/src/simple_multi-charm_multi-vdu_nsd.yaml b/descriptor-packages/nsd/simple_multi-charm_multi-vdu-ns/src/simple_multi-charm_multi-vdu_nsd.yaml
new file mode 100644 (file)
index 0000000..bd21706
--- /dev/null
@@ -0,0 +1,38 @@
+nsd:nsd-catalog:
+    nsd:
+    -   id: multicharmvdu-ns
+        name: multicharmvdu-ns
+        short-name: multicharmvdu-ns
+        description: NS with 2 VNFs multicharmvdu-vnf connected by datanet and mgmtnet VLs
+        version: '1.0'
+        logo: osm.png
+        constituent-vnfd:
+        -   vnfd-id-ref: multicharmvdu-vnf
+            member-vnf-index: '1'
+        -   vnfd-id-ref: multicharmvdu-vnf
+            member-vnf-index: '2'
+        vld:
+        -   id: mgmtnet
+            name: mgmtnet
+            short-name: mgmtnet
+            type: ELAN
+            mgmt-network: 'true'
+            vim-network-name: mgmt
+            vnfd-connection-point-ref:
+            -   vnfd-id-ref: multicharmvdu-vnf
+                member-vnf-index-ref: '1'
+                vnfd-connection-point-ref: vnf-mgmt
+            -   vnfd-id-ref: multicharmvdu-vnf
+                member-vnf-index-ref: '2'
+                vnfd-connection-point-ref: vnf-mgmt
+        -   id: datanet
+            name: datanet
+            short-name: datanet
+            type: ELAN
+            vnfd-connection-point-ref:
+            -   vnfd-id-ref: multicharmvdu-vnf
+                member-vnf-index-ref: '1'
+                vnfd-connection-point-ref: vnf-data
+            -   vnfd-id-ref: multicharmvdu-vnf
+                member-vnf-index-ref: '2'
+                vnfd-connection-point-ref: vnf-data
diff --git a/descriptor-packages/vnfd/simple_multi-charm_multi-vdu_vnf/Makefile b/descriptor-packages/vnfd/simple_multi-charm_multi-vdu_vnf/Makefile
new file mode 100644 (file)
index 0000000..3e88db7
--- /dev/null
@@ -0,0 +1,21 @@
+#
+#   Copyright 2018 Telefonica
+#
+#   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.
+#
+DESCRIPTORS_TOPDIR ?= ../..
+
+VNFD_CHARM = simple
+include $(DESCRIPTORS_TOPDIR)/mk/pkg.mk
+
+all: $(BUILD_DIR)/$(PKG_NAME)
diff --git a/descriptor-packages/vnfd/simple_multi-charm_multi-vdu_vnf/src/simple_multi-charm_multi-vdu_vnfd.yaml b/descriptor-packages/vnfd/simple_multi-charm_multi-vdu_vnf/src/simple_multi-charm_multi-vdu_vnfd.yaml
new file mode 100644 (file)
index 0000000..6957e18
--- /dev/null
@@ -0,0 +1,130 @@
+vnfd:vnfd-catalog:
+    vnfd:
+    -   id: multicharmvdu-vnf
+        name: multicharmvdu-vnf
+        short-name: multicharmvdu-vnf
+        version: '1.0'
+        description: A VNF consisting of 2 VDUs w/charms connected to an internal VL, and one VDU with cloud-init
+        logo: osm.png
+        connection-point:
+        -   id: vnf-mgmt
+            name: vnf-mgmt
+            short-name: vnf-mgmt
+            type: VPORT
+        -   id: vnf-data
+            name: vnf-data
+            short-name: vnf-data
+            type: VPORT
+        mgmt-interface:
+            cp: vnf-mgmt
+        internal-vld:
+        -   id: internal
+            name: internal
+            short-name: internal
+            type: ELAN
+            internal-connection-point:
+            -   id-ref: mgmtVM-internal
+            -   id-ref: dataVM-internal
+        vdu:
+        -   id: mgmtVM
+            name: mgmtVM
+            image: xenial
+            count: '1'
+            vm-flavor:
+                vcpu-count: '1'
+                memory-mb: '1024'
+                storage-gb: '10'
+            interface:
+            -   name: mgmtVM-eth0
+                position: '1'
+                type: EXTERNAL
+                virtual-interface:
+                    type: VIRTIO
+                external-connection-point-ref: vnf-mgmt
+            -   name: mgmtVM-eth1
+                position: '2'
+                type: INTERNAL
+                virtual-interface:
+                    type: VIRTIO
+                internal-connection-point-ref: mgmtVM-internal
+            internal-connection-point:
+            -   id: mgmtVM-internal
+                name: mgmtVM-internal
+                short-name: mgmtVM-internal
+                type: VPORT
+            cloud-init-file: cloud-config.txt
+            vdu-configuration:
+                juju:
+                    charm: simple
+                initial-config-primitive:
+                -   seq: '1'
+                    name: config
+                    parameter:
+                    -   name: ssh-hostname
+                        value: <rw_mgmt_ip>
+                    -   name: ssh-username
+                        value: ubuntu
+                    -   name: ssh-password
+                        value: osm4u
+                -   seq: '2'
+                    name: touch
+                    parameter:
+                    -   name: filename
+                        value: '/home/ubuntu/first-touch-mgmtVM'
+                config-primitive:
+                -   name: touch
+                    parameter:
+                    -   name: filename
+                        data-type: STRING
+                        default-value: '/home/ubuntu/touched'
+
+        -   id: dataVM
+            name: dataVM
+            image: xenial
+            count: '1'
+            vm-flavor:
+                vcpu-count: '1'
+                memory-mb: '1024'
+                storage-gb: '10'
+            interface:
+            -   name: dataVM-eth0
+                position: '1'
+                type: INTERNAL
+                virtual-interface:
+                    type: VIRTIO
+                internal-connection-point-ref: dataVM-internal
+            -   name: dataVM-xe0
+                position: '2'
+                type: EXTERNAL
+                virtual-interface:
+                    type: VIRTIO
+                external-connection-point-ref: vnf-data
+            internal-connection-point:
+            -   id: dataVM-internal
+                name: dataVM-internal
+                short-name: dataVM-internal
+                type: VPORT
+            vdu-configuration:
+                juju:
+                    charm: simple
+                initial-config-primitive:
+                -   seq: '1'
+                    name: config
+                    parameter:
+                    -   name: ssh-hostname
+                        value: <rw_mgmt_ip>
+                    -   name: ssh-username
+                        value: ubuntu
+                    -   name: ssh-password
+                        value: osm4u
+                -   seq: '2'
+                    name: touch
+                    parameter:
+                    -   name: filename
+                        value: '/home/ubuntu/first-touch-dataVM'
+                config-primitive:
+                -   name: touch
+                    parameter:
+                    -   name: filename
+                        data-type: STRING
+                        default-value: '/home/ubuntu/touched'