Orchestration of the Containerized Network Functions Seshu Kumar




























- Slides: 28

Orchestration of the Containerized Network Functions Seshu Kumar M (Huawei) Lukasz Rajewski (Orange)

CNFO - Summary for the requirement subcommittee Executive Summary - Provide CNF orchestration support through integration of K 8 s adapter in ONAP SO • Support for provisioning CNFs using an external K 8 s Manager • Support the Helm based orchestration • leverage the existing functionality of Multi cloud in SO • Bring in the advantages of the K 8 s orchestrator • Set stage for the Cloud Native scenarios REQ-341 Owners: Lukasz Rajewski (Orange), Seshu Kumar M (Huawei), Srini Addepalli (Intel) Business Impact - Enables operators and service providers to orchestrate CNFs based services along with the VNFs and PNFs Business Markets - All operators and service providers that are intended to use the CNFs along with PNFs / VNFs Funding/Financial Impacts - Reduction in the footprint of the ONAP for CNF support. Organization Mgmt, Sales Strategies -There is no additional organizational management or sales strategies for this requirement outside of a service providers "normal" ONAP deployment and its attendant organizational resources from a service provider.

ONAP CNF Orchestration – Impacted Components - Guilin AAI SDC Controller SOL 003 SO Catalog DB Adapters So BPMN Infra ETSI Catalog DB K 8 S Plugin K 8 s Adapter ESR Model to drive the flows: External (S)VNFM ü SDC to denote the flow of which VNFM should be used - similar to Orchestration Type ü Information model – optional ü Need to investigate the best place to have the meta data, we can perhaps use the existing fields SDC: On-board the helm and process it as an artifacts of the CSAR to be distributed ü On-board Helm Charts ü Resource model to include type ü Distribute them SO: Won’t consume the Helm by itself but parse it and push it forward to other ONAP components ü Parse the CSAR, extract helm ü SOL 003 adapter enhancements ü New K 8 s Adapter (Interface to K 8 s Plugin) K 8 s Plugin: ü K 8 s Plugin as a standalone MS ü Support new API for the SO interaction ü (Monitoring of status of k 8 s resources) AAI: ü Persist the Service instance ü (Persist CNF as a resource) ESR: ü Assisted k 8 s cluster registration ü (K 8 s cluster auto-discovery) ETSI Catalog DB: ü Persist the ETSi VNFM data (IFA-29 and IFA-40 ) ü Persist Images

ONAP - ETSI model Alignment E 2 E Service TOSCA Network Service VNFD VNF PNF CNF? Helm Integration of Native (K 8 s Adapter) with ETSi (SOL 003 Adapter) paths in SO Design/AAI CNF Model?

Approach 1 - Future VNF CNF? v. FM Group ? vif VFC HOT TOSCA CNFC Helm/? New model type into the SDC, AAI built over the helm charts as an input and would be distributed to the other ONAP components Pros ü Onboard a design template to the SDC and create a new resource from that ü Requires a new model to be introduced ü Will be inline to the existing models of the heat and TOSCA based VNFs ü Can also be extended to other formats for CNF modeling Cons ü Initial analysis for understanding the standard model ü Requires more effort and may span across multiple ONAP releases ü The grouping model currently used in ONAP may pose a one-one mapping to the other standard formats

Approach 2 - Guilin Helm chart SDC AAI / SO Artifact Helm Type VNF Helm Chart on-boarded as an artifact type to the SDC and distributed to ONAP, AAI would persist it as existing VNF Helm chart would be stored as flat file and add it to the CSAR package to be distributed. Pros ü Easy to develop comparing with Approach 1 ü Better reuse of the existing functional code Cons ü Initial analysis for AAI persisting the CNF instance – Extend the VNF ü Very specific implementation and non extendable (non-helm)

Helm Package – From package in SDC to instantiation in K 8 s 1 HELM 6 2 3 4 5 7

Frankfurt - Open. Stack Adapter (Heat) Flow Day 0 + Day 1 Simplified HOT HELM 8

Guilin - K 8 s Adapter (Helm) Flow Day 0 + Day 1 Simplified HELM 9

Guilin – Design and Implementation Grounds Ø Backward compatibility with CNF Macro Instantiation Workflow [Frankfurt] -> cv. FW Example Ø Instantiation of Helm Package with existing VNF model Ø Status and synchronization of instantiated k 8 s resources ü Helm Resource Artifact in SDC/SO ü Selected k 8 s resources added to VNF model in AAI: i. e. Deployment/Stateful Set/Service etc. ü Update of AAI Information by SO: vf-module + CNF specific sub-objects (stretch) Ø K 8 s Plugin as a standalone MS ü K 8 s Adapter in SO to interact directly with the K 8 s Plugin ü Enhance it to support the functions like the monitoring resources and status update (stretch) Ø Improvements in k 8 s cluster registration process (stretch) Ø Validation through flows Ø cv. FW Use Case Ø E 2 E (Core) Network Slicing Use Case (stretch) REQ-341

CNF - Modeling and AAI SME work group (Future Enhancements) ØAs part of extending the existing modeling to support the CNFO a separate group is formed with the SMEs from AAI, Modeling and existing function implementers. ØThe key is to make sure we use the existing VNF model and adapt it to the CNFs to make them generic enough to handle most of the functional use cases ü Generic VNF model to be re-used ü Generic VF Module model to be extended to support CNFs? ØThis group is discussing the details ü How CNFs should be modeled ü How to persist the available resources to be used by the CNFO ü How to persist the CNF resource instances after they are validated ü Who are the consumers ü The intended format of the resource to be consumed by the Day 2 operations ü Looking to other standardization bodies (CNCF, ETSi) ØMeeting is scheduled on every Friday 12: 30 AM UTC

SDC 12

Helm Package – Structure v 2 vs v 3 Helm v 2 Helm v 3 13

Helm Package – Chart descriptor Helm v 2 14

Helm Package - Structure |-Chart. yaml |-templates | |-network_attachment_definition. yaml | |-onap-private-net. yaml | |-protected-private-net. yaml | |-unprotected-private-net. yaml |-values. yaml Ø Ø Ø Yaml syntax Complex Structure ü ü Chart descriptor Templates Override values file [Nested Helm charts] Override values ü ü ü Full Yaml structure possible Flat key - value map is only one option |-Chart. yaml |-charts | |-packetgen | | |-Chart. yaml | | |-templates | |-deployment. yaml | |-service. yaml | |-_helpers. tpl | | |-values. yaml | |-sink | |-Chart. yaml | | |-templates | |-configmap. yaml | |-deployment. yaml | |-service. yaml | |-_helpers. tpl | | |-values. yaml |-templates | |-deployment. yaml | |-onap-private-net. yaml | |-protected-private-net. yaml | |-unprotected-private-net. yaml | |-_helpers. tpl |-values. yaml Nested values. yaml 15

Helm Package – Values § Complex Struture of parameters § Keys like. mysql. global. app § Arrays in key names 16

SDC - Onboarding Package with Helm { { "name": "virtual. Firewall", "description": "", "data": [ { "file": "base_template. yaml", "type": "HEAT", "is. Base": "true", "data": [ { "file": "base_template. env", "type": "HEAT_ENV" } ] }, { "file": "base_template_cloudtech_k 8 s_charts. tgz", "type": "CLOUD_TECHNOLOGY_SPECIFIC_ARTIFACT" } "name": "virtual. Firewall", "description": "", "data": [ { "file": "base_template. tgz", "type": "HELM", "is. Base": "true" } ] } Ø Ø Validation of Helm package? Ø Ø Ø Name Description Str etc h Version Basic Information read from Chart. yaml? Reading of values. yaml into VF properties 17

Guilin - Design and Distribution of the Helm Chart - Day 0 SDC VID SO CDS AAI ESR Designer Artifact Broker K 8 s Plugin K 8 s cluster Distribution Helm Chart On-board Distribution CSAR Helm Type Admin Create Update Configure K 8 S cluster Add tenant POST Connectivity Info Kubeconfig file Auto Discovery [stretch]

SDNC & CDS 19

Helm Package – From package in SDC to instantiation in K 8 s 1 HELM 6 2 3 4 5 We want to improve creation of profile and its upload to k 8 s plugin 20

RB Profile – Helm Enrichment Package Example of RB Profile’s manifest Example of profile’s structure --version: v 1 type: values: “override_values. yaml” configresource: - filepath: resources/deployment. yaml chartpath: templates/deployment. yaml Ø Ø K 8 s Plugin Requires profile to be archived as tar. gz file Complex Structure Profile contains Manifest + additional files Ø Ø Ø Files: override. yaml + optional extra resources Extra resources: deployments. yaml, configmap. yaml etc. Extra resources replace existing helm templates or add new ones

Helm Package – Values § Complex Strcture of parameters § Keys like. mysql. global. app § Arrays in key names § § Too much for simple key-value input from SO to Plugin Good for Templating in CDS 22

Helm Package - Structure |-Chart. yaml |-templates | |-network_attachment_definition. yaml | |-onap-private-net. yaml | |-protected-private-net. yaml | |-unprotected-private-net. yaml |-values. yaml Ø Ø Ø Yaml syntax Complex Structure ü ü Chart descriptor Templates Override values file [Nested Helm charts] Override values ü ü ü Full Yaml structure possible Flat key - value map is only one option |-Chart. yaml |-charts | |-packetgen | | |-Chart. yaml | | |-templates | |-deployment. yaml | |-service. yaml | |-_helpers. tpl | | |-values. yaml | |-sink | |-Chart. yaml | | |-templates | |-configmap. yaml | |-deployment. yaml | |-service. yaml | |-_helpers. tpl | | |-values. yaml |-templates | |-deployment. yaml | |-onap-private-net. yaml | |-protected-private-net. yaml | |-unprotected-private-net. yaml | |-_helpers. tpl |-values. yaml Nested values. yaml 23

Guilin – Instantiation of the Helm Chart (Simplified- k 8 s Adapter Flow) - Day 1 – Option 1 SO OOF SDNC AAI CDS SO: K 8 s Adapter K 8 s Plugin K 8 s cluster Homing Information Create Service Assign Service, Assign VNF Create vf-module Assign vf-module assigned Assign vf-module Assign result Build RB Profile [Helm enrichment] vf-module assigned Update vf-module Create vf-module in K 8 s RB Instance K 8 s Resource Status vf-module in K 8 S created (deployments) Install K 8 s Resources

Guilin – Instantiation of the Helm Chart (Simplified- k 8 s Adapter Flow) - Day 1 – Option 2 SO OOF SDNC AAI CDS SO: K 8 s Adapter K 8 s Plugin K 8 s cluster Homing Information Create Service Assign Service, Assign VNF Create vf-module Assign vf-module Build RB Profile Assign vf-module assigned Assign result RB Profile [Helm enrichment] vf-module assigned Update vf-module Create vf-module in K 8 s RB Instance K 8 s Resource Status vf-module in K 8 S created (deployments) Install K 8 s Resources

CDS Role in RB Profile creation Ø For R 6 we showcases the use of imperative workflows in CDS for RB profiling Ø CDS builds and uploads RB Profile content in VF-module resource-assigment phase Ø Two steps adds after standard resource-assignment phase 1. Profile Modification – templating of profile – standard ü Creation of override value. yaml from template ü Creation of override value. yaml from vtl template for subcharts ü On demand modification/creation of k 8 s helm templates from vtl templates 2. Profile Upload to add profile creation step after standard resource assignment ü We need to include this logic each time in dedicated script in CBA Ø Option 1 ü CDS builds profile and returns extra binary content to SDNC ü SDNC uploads profile to sdnctl DB, into dedicated table ü SO K 8 s Adapter reads profile from sdnctl DB and uploads it to K 8 s Plugin Ø Option 2 ü CDS builds profile ü CDS uploads profile to K 8 s Plugin over built-in mechanism -> no need to implement it in each CBA file ü Opportunity to build joint K 8 s interface in CDS for profiling + configuration templating (Day 0/1) + configuring (Day 2)

s Thank You!

Guilin – Instantiation of the Helm Chart – k 8 s Paths in SO - Day 1 SO SO: BPMN SO: SOL 003 OOF AAI SDNC CDS SO: K 8 s Adapter SOL 003 Adapter K 8 s Plugin Create Service Instance Create Service Process Model Info & decide flows [ETSI Flow] [Native flow] To external SVNFM Homing Information Assign Service, Assign VNF – No Change Create vfmodule in K 8 s RB Instance vf-module in K 8 S created Update vf-module Instance Status To External K 8 s Custer