You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 45 Next »

Background


  • For the ONAP Beijing release, the APPC project delivered the CDT design tool to support the APPC model driven design approach.
  • For the next ONAP releases Casablanca, we are proposing to develop a common design tool to support both SDNC and Generic L4-7 NFs (APPC, VFC) Controller integrated with SDC.
  • This common design tool, also called “Controller Design Studio”, will be built with associated data dictionary and an Ingredient Resource Resolution Microservice
  • The common design tool models shall be backwards compatible to the current use cases supported in Amsterdam and  Beijing release by Generic L4-7 NF (APP-C specific). 

Introduction

The system is designed to be self service, which means that users, not just programmers, can reconfigure the software system as needed to meet customer requirements. To accomplish this goal, the system is built around models that provide for real-time changes in how the system operates.  Users merely need to change a model to change how a service operates.

Self service is a completely new way of delivering services.  It removes the dependence on code releases and the delays they cause and puts the control of services into the hands of the service providers.  They can change a model and its parameters and create a new service without writing a single line of code.  This makes SERVICE PROVIDER(S) more responsive to its customers and able to deliver products that more closely match the needs of its customers.

Architecture

The Controller Design Studio is composed of two major components: the GUI (or frontend) and the Run Time (or backend).  The GUI handles direct user input and allows for displaying both design time and run time activities.  For design time, it allows for the creation of controller blueprint, from selecting the DGs to be included, to incorporating the artifact templates, to adding necessary components.  For run time, it allows the user to direct the system to resolve the unresolved elements of the controller blueprint and download the resulting configuration into a VNF.  At a more basic level, it allows for creation of data dictionaries, capabilities catalogs, and controller blueprint, the basic elements that are used to generate a configuration. The essential function of the Controller Design Studio is to create and populate a controller blueprint, create a configuration file from this Controller blueprint, and download this configuration file (configlet) to a VNF/PNF.




Detailed Architecture PowerPoint Package:

Controller Design Studio.pptx


Proposed Milestone Schedule for Controller Design Studio Initiative for Casablanca:




ONAP Milestone Dates:


  • M2: Requirement Freeze - July 26th

  • M3: API Freeze- August 23th

  • M4: Code Freeze - September 20th

     

    CDT Milestone : (Girish Tech M) – Confirmed


  • Enhance the APP-C CDT Screen to support data dictionary panel layout


      • 8/10 - Start the process of code contribution  to ONAP [appc/cdt]
        • jasmine and Karma for test cases


  • Enhance the APP-C CDT artifact creation process to include resource definition


      • 8/10 - Start the process of code contribution  to ONAP [appc/cdt]
        • jasmine and Karma for test cases


 


APP-C Run Time Milestone (Krill IBM) – Proposal


  • Enhance the APP-C Run Time to trigger Resource Accumulator API for data dictionary ingredient collection.

    • 8/17 Start the process of code contribution  to ONAP

    • Confirm with Taka on the APP-C repo and tools.


 


CDS Milestone : (Srikant V AT&T ) - Confirmed


  • 7/20- CDS Integration with ONAP Portal  (Srikant)

  • 7/23- CDS Grep Scan (Srikant)

  • 7/24 - Start the process of code contribution  to ONAP [appc/cdt]

  • Runs on Tom Application (NON ODL)

  • License Scan

  • 7/24

  • HELM CHARTS Creation

  • James MacNider help contribute to this effort.

  • 7/25

  • Robot Script

  • 7/25

  • Owner: TBD

     

    naming mS  Milestones: (Biju T AT&T) - Confirmed

  • 7/20 Code Complete

  • 7/23 Grep Scan (Completd)

  • 7/24 Code Contribution to ONAP  (completed)

    • Initial code contribution

    • Refactoring the code to support the onap environment.  (8/17)

  • [ccsdk/apps]

  • License Scan – pending

  • 7/24

  • HELM CHARTS Creation

  • James MacNider help contribute to this effort.

  • 7/25

  • Robot Script

  • 7/25

  • Owner: TBD

     

    Policy Manager Milestone: (Pam D AT&T)

  • Pam D to include the YAML file and JSON Instance naming file for Name in Generation in Maven. Policy Manager team will add to the DBScript for picking  up these file as part of the policy manager boot.

     

    Netbox Integration with Generic Resource API  (Alexis/Marco Bell Canada ) - Proposal

  • Alexis/Marco to support a main DG for netbox-ip-assignment capability

  • Code Contribution to [sdnc/oam] 8/17

  • Alexis/Marco to support a sub DG for netbox-ip-assignment capability

  • Code Contribution to [sdnc/oam] 8/17

  • Alexis/Marco to support a main DG for netbox-ip-unassignment capability

  • Code Contribution to [sdnc/oam] 8/24

  • Alexis/Marco to support a sub DG for netbox-ip-unassignment capability

  • Code Contribution to [sdnc/oam] 8/24

     

    Self Service SDNC Run Time (Brinda/Kapil AT&T) – Proposal

  • 7/23- Grep Scan

  • 7/24 - Start the process of code contribution  to ONAP [ccsdk/apps]

  • License Scan

  • 7/24

  • HELM CHARTS Creation

  • James MacNider help contribute to this effort.

  • 7/25

  • Robot Script

  • 7/25

  • Owner: TBD

     

     

    Milestone Use Case Testing for Casablanca: - Proposal

  • Instantiation for vFW

  • Use Case Testing from 8/20 to 8/29

  • ONAP Instance Creation

  • Includes SDC, Policy manager, SDNC, SO, Netbox, naming-MS , A&AI, CDS

  • Two method of ONAP Instantiation:

  • Docker Compose

  • Kubernetes

  • Design Time

  • Includes SDC, Policy manager, CDS

  • Run Time

  • Includes SDC, Policy manager, SDNC, SO, Netbox, naming-MS , A&AI, CDS

  • Post Instantiation (Base Config)

  • Use Case Testing from 8/20 to 8/29

  • ONAP Instance Creation

  • Includes SDC, Policy manager, SDNC, SO, Netbox, naming-MS , A&AI, CDS

  • Two method of ONAP Instantiation:

  • Docker Compose

  • Kubernetes

  • Design Time

  • Includes SDC, Policy manager, CDS

  • Run Time

  • Includes SDC, Policy manager, SDNC, SO, Netbox, naming-MS , A&AI, CDS

  • Scale Out (Instantiation + Post Instantiation)

  • Use Case Testing from 8/20 to 8/29

  • ONAP Instance Creation

  • Includes SDC, Policy manager, SDNC, SO, Netbox, naming-MS , A&AI, CDS

  • Two method of ONAP Instantiation:

  • Docker Compose

  • Kubernetes

  • Design Time

  • Includes SDC, Policy manager, CDS

  • Run Time

  • Includes SDC, Policy manager, SDNC, SO, Netbox, naming-MS , A&AI, CDS


Proposed Work Items

Design Time

Feature
DescriptionJIRA  Owner Wiki PageNotes 

Controller Design Studio GUI





1Refactor and move the APP-C CDT to CCSDK for "Controller Design Studio" mS.CCSDK-334AT&T

All Controller Design Studio will be maintained in the APP-C repo[appc/cdt]] for Casablanca Release.

JIRA can be canceled.

2

CDS Controller Blueprint Creation and Management including artifact model, component model, connectivity model, and dg modeling in "Controller Design Studio" mS.

APPC-1071

AT&T

[appc/cdt]] - Srikanth V

3

CDS Catalog Creation and Management in "Controller Design Studio" mS.


APPC-1075


AT&T
 [appc/cdt]] Srikanth V
4

CDS Data Dictionary Creation and Management in "Controller Design Studio" mS.



APPC-1076


AT&T
 [appc/cdt]] Srikanth V
5

CDT enhance existing screen to support data dictionary panel layout and data dictionary reference model creation for existing APP-C Models.

CCSDK-347

(need to be change to APP-C JIRA)

AT&T  

Tech M

IBM

Bell Canada

Erickson


 [appc/cdt]]

Need to assign Resource


Girish - Tech M

6

Controller Design Time Studio app extension with SDC integration.

CCSDK-338

AT&T  

Tech M

IBM

Bell Canada



Girish to follow up and provide an update.


Deferred to the next ONAP release



Run Time 

Feature
DescriptionJIRA  ContributorsWiki Page NOTEs
  Instantiation  1Generic Resource API integration with netbox ip management capability for assignCCSDK-339Bell Canada

Alexis/Marc - ()

Yuriy to setup a session with Alexis and Marc/Dan T. [Complete]


Design In Progress


2Generic Resource API integration with netbox ip management capability for unassign CCSDK-340Bell Canada

Alexis/Marc - ()

Yuriy to setup a session with Alexis and Marc/Dan T.  [Complete]


Design In Progress


3netbox ip management REST API support in ONAPCCSDK-341Bell Canada

Alexis/Marc -

helm chart  – on track (7/13) (Published and in-review)

Should it be contributed under CCSDK? Marc and Dan T to discuss. Still needs to be decided at later point.

Create a helm chart for use case.


pre-provisioning scripts.


4Policy driven naming mS in ONAPCCSDK-342AT&T

[ccsdk/apps] 

Biju T: 7/20 for draft code submission and including draft template. (Preference with policy to boot with the artifacts)

5Resource Resolution using data dictionary mS in ONAPCCSDK-343AT&T  

[ccsdk/apps] - Dan T contributed the fist batch of code in draft version.

 Kapil S/Brinda S

6Template meshing mS in ONAPCCSDK-344AT&T

[ccsdk/apps] - Dan T contributed the fist batch of code in draft version.

 Kapil S/Brinda S

7Controller Design Time Studio app extension with SDC integration ingest and store the artifact in the controller persona (SDN-C)CCSDK-345

AT&T  

Tech M

IBM

Bell Canada


Girish to follow up and provide an update.


Deferred to the next ONAP release


8Controller Design Time Studio app extension with SDC integration ingest and store the artifact in the controller persona (APP-C)CCSDK-349    

AT&T

Tech M

IBM

Bell Canada


 Girish to follow up and provide an update.


Deferred to the next ONAP release


Post Instantiation

1APP-C Integration with resource resolution REST API based on data dictionary.



APPC-1077


AT&T

Tech M

IBM

Bell Canada

Erickson


scale out use case. (include the discussion with Scott)


Krill


Swagger API for calling the RA API for data and artifact collection. Brinda/Kapil to provide this information.


Taka is the PTL for APP-C. Need to review the design with Taka before code contribution.


2

CDS Contribution for Configuration Generation, Preview and Deployment.

CCSDK-346AT&T

 Kapil S/Brinda S

[ccsdk/apps] - Dan T contributed the fist batch of code in draft version.





























Artifact

Instantiation

{

  "resource-accumulator-resolved-data": [

    {

"param-name": "service-instance-id",

      "param-value": "${service-instance-id}"

    },

    {

      "param-name": "vnf_id",

      "param-value": "${vnf-id}"

    },

    {

      "param-name": "vnf_name",

      "param-value": "${vnf-name}"

    },

    {

      "param-name": "vnf_model_customization_uuid",

      "param-value": "${vnf-model-customization-uuid}"

    },

    {

      "param-name": "vf_module_id",

      "param-value": "${vf-module-id}"

    },

    {

      "param-name": "vf_module_customization_uuid",

      "param-value": "${vf-module-model-customization-uuid}"

    },

    {

      "param-name": "aic-cloud-region",

      "param-value": "${aic-cloud-region}"

    },

    {

      "param-name": "aic_clli",

      "param-value": "${aic_clli}"

    },

    {

      "param-name": "avaiablity_zone_0",

      "param-value": "${avaiablity_zone_0}"

    },

    {

      "param-name": "cloud_env",

      "param-value": "openstack"

    },

    {

      "param-name": "repo_url_artifacts",

      "param-value": "

https://nexus.onap.org/content/groups/staging"

    },

    {

      "param-name": "repo_url_blob",

      "param-value": "

https://nexus.onap.org/content/repositories/raw"

    },

    {

      "param-name": "dcae_collector_port",

      "param-value": "8080"

    },

    {

      "param-name": "image_name",

      "param-value": "Ubuntu 14.04 LTS Generic"

    },

    {

      "param-name": "flavor_name",

      "param-value": "m1.medium"

    },

    {

      "param-name": "install_script_version",

      "param-value": "1.2.1-SNAPSHOT"

    },

    {

      "param-name": "demo_artifacts_version",

      "param-value": "1.2.1-SNAPSHOT"

    },

    {

      "param-name": "dcae_collector_ip",

      "param-value": "10.0.4.1"

    },

    {

      "param-name": "pub_key",

      "param-value": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDKXDgoo3+WOqcUG8/5uUbk81+yczgwC4Y8ywTmuQqbNxlY1oQ0YxdMUqUnhitSXs5S/yRuAVOYHwGg2mCs20oAINrP+mxBI544AMIb9itPjCtgqtE2EWo6MmnFGbHB4Sx3XioE7F4VPsh7japsIwzOjbrQe+Mua1TGQ5d4nfEOQaaglXLLPFfuc7WbhbJbK6Q7rHqZfRcOwAMXgDoBqlyqKeiKwnumddo2RyNT8ljYmvB6buz7KnMinzo7qB0uktVT05FH9Rg0CTWH5norlG5qXgP2aukL0gk1ph8iAt7uYLf1ktp+LJI2gaF6L0/qli9EmVCSLr1uJ38Q8CBflhkh"

    }

  ],

  "capability-data": [

    {

      "capability-name": "generate-name",

      "key-mapping": [

        {

          "payload": [

            {

              "param-name": "resource-name",

              "param-value": "vsn_name_0"

            },

            {

              "param-name": "external-key",

              "param-value": "${vf-module-id}_vsn_name_0"

            },

            {

              "param-name": "policy-instance-name",

              "param-value": "${vsn-naming-policy}"

            },

            {

              "param-name": "nf-role",

              "param-value": "${nf-role}"

            },

            {

              "param-name": "naming-type",

              "param-value": "VM"

            },

            {

              "param-name": "VNF_NAME",

              "param-value": "${vnf-name}"

            },

            {

              "param-name": "NFC_NAMING_CODE",

              "param-value": "${nfc-naming-code}"

            }

          ],

          "output-key-mapping": [

            {

              "resource-name": "vsn_name_0",

              "resource-value": "${vsn_name_0}"

            }

          ]

        },

        {

          "payload": [

            {

              "param-name": "resource-name",

              "param-value": "vfw_name_0"

            },

            {

              "param-name": "external-key",

              "param-value": "${vf-module-id}_vfw_name_0"

            },

            {

              "param-name": "policy-instance-name",

              "param-value": "${vfw-naming-policy}"

            },

            {

              "param-name": "nf-role",

              "param-value": "${nf-role}"

            },

            {

              "param-name": "naming-type",

              "param-value": "VM"

            },

            {

              "param-name": "VNF_NAME",

              "param-value": "${vnf-name}"

            },

            {

              "param-name": "NFC_NAMING_CODE",

              "param-value": "${nfc-naming-code}"

            }

          ],

          "output-key-mapping": [

            {

              "resource-name": "vsn_name_0",

              "resource-value": "${vfw_name_0}"

            }

          ]

        },

        {

          "payload": [

            {

              "param-name": "resource-name",

              "param-value": "vf-module-name"

            },

            {

              "param-name": "external-key",

              "param-value": "${vf-module-id}"

            },

            {

              "param-name": "policy-instance-name",

              "param-value": "${vf-naming-policy}"

            },

            {

              "param-name": "nf-role",

              "param-value": "${nf-role}"

            },

            {

              "param-name": "naming-type",

              "param-value": "VF-MODULE"

            },

            {

              "param-name": "VNF_NAME",

              "param-value": "${vnf-name}"

            },

            {

              "param-name": "VF_MODUEL_LABLE",

              "param-value": "${vf-module-label}"

            },

            {

              "param-name": "VF_MODUEL_TYPE",

              "param-value": "${vf-module-type}"

            }

          ],

          "output-key-mapping": [

            {

              "resource-name": "vf_module_name",

              "resource-value": "${vf-module-name}"

            }

          ]

        },

        {

          "payload": [

            {

              "param-name": "resource-name",

              "param-value": "volume-name"

            },

            {

              "param-name": "policy-instance-name",

              "param-value": "${vf-naming-policy}"

            },

            {

              "param-name": "nf-role",

              "param-value": "${nf-role}"

            },

            {

              "param-name": "naming-type",

              "param-value": "VOLUME"

            },

            {

              "param-name": "VOLUME_GROUP_NAME",

              "param-value": "${volume-group-name}"

            }

          ],

          "output-key-mapping": [

            {

              "resource-name": "vmxvre_volume_name_1",

              "resource-value": "${volume-name}"

            },

            {

              "resource-name": "vmxvre_volume_name_0",

              "resource-value": "${volume-name}"

            }

          ]

        }

      ]

    },

    {

      "capability-name": "netbox-ip-assignment",

      "key-mapping": [

        {

          "payload": [

            {

              "param-name": "service-instance-id",

              "param-value": "${service-instance-id}"

            },

            {

              "param-name": "prefix-id",

              "param-value": "${prefix-id}"

            },

            {

              "param-name": "vf-module-id",

              "param-value": "${vf-module-id}"

            }

          ],

          "output-key-mapping": [

            {

              "resource-name": "protected_private_net_cidr",

              "resource-value": "${address}"

            }

          ]

        },

        {

          "payload": [

            {

              "param-name": "service-instance-id",

              "param-value": "${service-instance-id}"

            },

            {

              "param-name": "prefix-id",

              "param-value": "${prefix-id}"

            },

            {

              "param-name": "vf-module-id",

              "param-value": "${vf-module-id}"

            }

          ],

          "output-key-mapping": [

            {

              "resource-name": "onap_private_net_cidr",

              "resource-value": "${address}"

            }

          ]

        },

        {

          "payload": [

            {

              "param-name": "service-instance-id",

              "param-value": "${service-instance-id}"

            },

            {

              "param-name": "prefix-id",

              "param-value": "${prefix-id}"

            },

            {

              "param-name": "vf-module-id",

              "param-value": "${vf-module-id}"

            }

          ],

          "output-key-mapping": [

            {

              "resource-name": "vpg_private_ip_0",

              "resource-value": "${address}"

            }

          ]

        },

        {

          "payload": [

            {

              "param-name": "service-instance-id",

              "param-value": "${service-instance-id}"

            },

            {

              "param-name": "prefix-id",

              "param-value": "${prefix-id}"

            },

            {

              "param-name": "vf-module-id",

              "param-value": "${vf-module-id}"

            }

          ],

          "output-key-mapping": [

            {

              "resource-name": "vfw_private_ip_2",

              "resource-value": "${address}"

            }

          ]

        },

        {

          "payload": [

            {

              "param-name": "service-instance-id",

              "param-value": "${service-instance-id}"

            },

            {

              "param-name": "prefix-id",

              "param-value": "${prefix-id}"

            },

            {

              "param-name": "vf-module-id",

              "param-value": "${vf-module-id}"

            }

          ],

          "output-key-mapping": [

            {

              "resource-name": "vfw_private_ip_1",

              "resource-value": "${address}"

            }

          ]

        },

        {

          "payload": [

            {

              "param-name": "service-instance-id",

              "param-value": "${service-instance-id}"

            },

            {

              "param-name": "prefix-id",

              "param-value": "${prefix-id}"

            },

            {

              "param-name": "vf-module-id",

              "param-value": "${vf-module-id}"

            }

          ],

          "output-key-mapping": [

            {

              "resource-name": "vfw_private_ip_0",

              "resource-value": "${address}"

            }

          ]

        },

        {

          "payload": [

            {

              "param-name": "service-instance-id",

              "param-value": "${service-instance-id}"

            },

            {

              "param-name": "prefix-id",

              "param-value": "${prefix-id}"

            },

            {

              "param-name": "vf-module-id",

              "param-value": "${vf-module-id}"

            }

          ],

          "output-key-mapping": [

            {

              "resource-name": "vsn_private_ip_1",

              "resource-value": "${address}"

            }

          ]

        },

        {

          "payload": [

            {

              "param-name": "service-instance-id",

              "param-value": "${service-instance-id}"

            },

            {

              "param-name": "prefix-id",

              "param-value": "${prefix-id}"

            },

            {

              "param-name": "vf-module-id",

              "param-value": "${vf-module-id}"

            }

          ],

          "output-key-mapping": [

            {

              "resource-name": "vsn_private_ip_0",

              "resource-value": "${address}"

            }

          ]

        },

        {

          "payload": [

            {

              "param-name": "service-instance-id",

              "param-value": "${service-instance-id}"

            },

            {

              "param-name": "prefix-id",

              "param-value": "${prefix-id}"

            },

            {

              "param-name": "vf-module-id",

              "param-value": "${vf-module-id}"

            }

          ],

          "output-key-mapping": [

            {

              "resource-name": "unprotected_private_net_cidr",

              "resource-value": "${address}"

            }

          ]

        }

      ]

    }

  ]

}



Controller Design Studio Functionality Demo:






  • No labels