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