Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Proposal for enhancements to better integrate the K8S workloads with ONAP - and CDS

View file
nameK8S Multicloud CDS Integration.pptx
height150

Observation in Macro flow with Helm chart:

  1. As shown in below we need to pass the model information (vnf and vf model info) to SDC payload...for Heat templet SDC will generate the model info, but in case of Helm (charts and dummy templet, shown in below file) SDC will generate the limited info... So the point is how we can pass the vf-module info here...
    1. if we use one vnf and one vf module info also (helm model info)... how SO will pass the information to multi-cloud for vf instantiation, Macro flow didn't integrated with V2 version (HPA and k8s-plugin service). If we resolve this it will instantiate the pods through Macro-flow.
    2. current macro flow has SO and CDS integration (like Config assign) and with auto heat-bridge, it will get the VM details. so CDS will do the configuration with Ansible/python script which are available in the CBA package. In case of Helm chart we need to fill the gap between SO and Multi-cloud for instantiation. Till service-instance and generic-vnf creation is fine, at the time of vf-creation we need to transfer the flow to multi-cloud, so that it will start the instantiation.
    3. After instantiation need to configure the pods, so need to fill the gap between Multi-cloud/k8s to CDS.

...

languageactionscript3
firstline1
titleCDS_service-instance_payload.json
collapsetrue

...

Proposal for enhancements to better integrate the K8S workloads with ONAP - and CDS

View file
nameCDS - K8s profile creation options.pptx
height250

Observation in Macro flow with Helm chart:

  1. As shown in below we need to pass the model information (vnf and vf model info) to SDC payload...for Heat templet SDC will generate the model info, but in case of Helm (charts and dummy templet, shown in below file) SDC will generate the limited info... So the point is how we can pass the vf-module info here...
    1. if we use one vnf and one vf module info also (helm model info)... how SO will pass the information to multi-cloud for vf instantiation, Macro flow didn't integrated with V2 version (HPA and k8s-plugin service). If we resolve this it will instantiate the pods through Macro-flow.
    2. current macro flow has SO and CDS integration (like Config assign) and with auto heat-bridge, it will get the VM details. so CDS will do the configuration with Ansible/python script which are available in the CBA package. In case of Helm chart we need to fill the gap between SO and Multi-cloud for instantiation. Till service-instance and generic-vnf creation is fine, at the time of vf-creation we need to transfer the flow to multi-cloud, so that it will start the instantiation.
    3. After instantiation need to configure the pods, so need to fill the gap between Multi-cloud/k8s to CDS.


Code Block
languageactionscript3
firstline1
titleCDS_service-instance_payload.json
collapsetrue
{
  "requestDetails": {
    "subscriberInfo": {
      "globalSubscriberId": "Demonstration"
    },
    "requestInfo": {
      "suppressRollback": false,
      "productFamilyId": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb",
      "requestorId": "adt",
      "instanceName": "{{cds-instance-name}}",
      "source": "VID"
    },
    "cloudConfiguration": {
      "lcpCloudRegionId": "fr2",
      "tenantId": "6270eaa820934710960682c506115453",
      "globalSubscriberIdcloudOwner": "DemonstrationCloudOwner"
    },
    "requestInforequestParameters": {
      "suppressRollbacksubscriptionServiceType": false"vFW",
      "productFamilyIduserParams": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb", [
        {
          "requestorIdHoming_Solution": "adt"none"
        },
      "instanceName":  "{{cds-instance-name}}",{
          "sourceservice": "VID" {
       },     "cloudConfigurationinstanceParams": [
 {       "lcpCloudRegionId": "fr2",   ],
   "tenantId": "6270eaa820934710960682c506115453",         "cloudOwnerinstanceName":"CloudOwner" "{{cds-instance-name}}",
    },        "requestParametersresources": {
      "subscriptionServiceType": "vFW",       "userParams": [vnfs": [
            {    {
      "Homing_Solution": "none"         },  "modelInfo": {
     {           "servicemodelName": "{{vnf-modelinfo-modelname}}",
            "instanceParams": [   "modelVersionId": "{{vnf-modelinfo-modeluuid}}",
        ],             "instanceNamemodelInvariantUuid": "{{cdsvnf-instancemodelinfo-namemodelinvariantuuid}}",
                "resourcesmodelVersion": { "1.0",
                "vnfsmodelCustomizationId": [ "{{vnf-modelinfo-modelcustomizationuuid}}",
                "modelInstanceName": "{{vnf-modelinfo-modelinstancename}}"
                  "modelInfo": { },
                  "modelNamecloudConfiguration": "{{vnf-modelinfo-modelname}}",{
                    "modelVersionId": "{{vnf-modelinfo-modeluuid}}lcpCloudRegionId": "fr2",
                    "modelInvariantUuidtenantId": "{{vnf-modelinfo-modelinvariantuuid}}",6270eaa820934710960682c506115453"
                 "modelVersion": "1.0" },
                  "modelCustomizationIdplatform": "{{vnf-modelinfo-modelcustomizationuuid}}",{
                    "modelInstanceNameplatformName": "{{vnf-modelinfo-modelinstancename}}test"
                  },
                  "cloudConfigurationlineOfBusiness": {
                    "lcpCloudRegionIdlineOfBusinessName": "fr2LOB-Demonstration",
                  },
 "tenantId": "6270eaa820934710960682c506115453"                   }"productFamilyId": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb",
                  "platforminstanceName": {
 "{{vnf-modelinfo-modelinstancename}}",
                  "platformNameinstanceParams": "test"[
                  },  {      
          "lineOfBusiness": {             "onap_private_net_id": "olc-private",
       "lineOfBusinessName": "LOB-Demonstration"              "onap_private_subnet_id": "olc-private",
   },                   "productFamilyIdpub_key": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb",ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCs84Cy8+qi/jvucay0BwFtOq3ian0ulTXFGxkZcZCR0N48j88pbHJaEqb9e25MAsrfH+7Etb9Kd5nbBThEL/i0AyHXnDsc80Oq0sqlLcfLo3SGSurkrNoRofHboJ5Hn+N9SlWN5FCQGbTx1w3rjqR4LasAI6XxH9xpXSFyyge6ysVXH0cYaZ8sg98nFZa1fPJR9L8COjZvF+EYudub2RC5HVyV/sx7bliNFo9JwQh6du1abG4G7ZDjTIcYwYp21iq52UzWU28RVcAyY6AQZJu2lHLdsr8fPvyeWZpC5EqGsxI1G609m9G/dURRKwYfez/f2ATzpn5QjEX7LrLWBM8r Generated-by-Nova",
                      "instanceNameimage_name": "{{vnf-modelinfo-modelinstancename}}Ubuntu 16.04",
                  "instanceParams": [   "flavor_name":"n2.cw.standard-1",
                 {     "sec_group":"olc-open",
                       "onapinstall_privatescript_net_idversion": "olc-private1.4.0-SNAPSHOT",
                      "onapdemo_privateartifacts_subnet_idversion": "olc-private"1.4.0-SNAPSHOT",
                      "pubcloud_keyenv": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCs84Cy8+qi/jvucay0BwFtOq3ian0ulTXFGxkZcZCR0N48j88pbHJaEqb9e25MAsrfH+7Etb9Kd5nbBThEL/i0AyHXnDsc80Oq0sqlLcfLo3SGSurkrNoRofHboJ5Hn+N9SlWN5FCQGbTx1w3rjqR4LasAI6XxH9xpXSFyyge6ysVXH0cYaZ8sg98nFZa1fPJR9L8COjZvF+EYudub2RC5HVyV/sx7bliNFo9JwQh6du1abG4G7ZDjTIcYwYp21iq52UzWU28RVcAyY6AQZJu2lHLdsr8fPvyeWZpC5EqGsxI1G609m9G/dURRKwYfez/f2ATzpn5QjEX7LrLWBM8r Generated-by-Nova"openstack",
                      "imagepublic_net_nameid": "Ubuntu 16.04olc-public",
                      "flavor_name":"n2.cw.standard-1",
   aic-cloud-region": "fr2"
                  "sec_group":"olc-open",  }
                    "install_script_version":"1.4.0-SNAPSHOT"],
                      "demo_artifacts_version":"1.4.0-SNAPSHOT",
"vfModules": [
                     "cloud_env":"openstack",{
                      "public_net_idmodelInfo": "olc-public",{
                        "aic-cloud-regionmodelName": "fr2"{{vnf-vfmodule-0-modelinfo-modelname}}",
                    }    "modelVersionId": "{{vnf-vfmodule-0-modelinfo-modeluuid}}",
             ],             "modelInvariantUuid": "{{vnf-vfmodule-0-modelinfo-modelinvariantuuid}}",
     "vfModules": [                  "modelVersion": "1",
 {                       "modelInfomodelCustomizationId": "{{vnf-vfmodule-0-modelinfo-modelcustomizationuuid}}"
                        "modelName": "{{vnf-vfmodule-0-modelinfo-modelname}}",
                        "modelVersionIdinstanceName": "{{vnf-vfmodule-0-modelinfo-modeluuidmodelname}}",
                        "modelInvariantUuid": "{{vnf-vfmodule-0-modelinfo-modelinvariantuuid}}",   "instanceParams": [
                          "modelVersion": "1",                      {
  "modelCustomizationId": "{{vnf-vfmodule-0-modelinfo-modelcustomizationuuid}}"                        }"sec_group": "olc-open",
                      "instanceName    "public_net_id": "{{vnf-vfmodule-0-modelinfo-modelname}}",olc-net"
                        }
         "instanceParams": [            ]
                    },
                {    {
                      "sec_groupmodelInfo": "olc-open",{
                          "public_net_id"modelName": "olc-net"{{vnf-vfmodule-1-modelinfo-modelname}}",
                        "modelVersionId": "{{vnf-vfmodule-1-modelinfo-modeluuid}}",
          }              "modelInvariantUuid": "{{vnf-vfmodule-1-modelinfo-modelinvariantuuid}}",
       ]                 "modelVersion": "1",
  },                     { "modelCustomizationId": "{{vnf-vfmodule-1-modelinfo-modelcustomizationuuid}}"
                    "modelInfo": {  },
                      "modelNameinstanceName": "{{vnf-vfmodule-1-modelinfo-modelname}}",
                        "modelVersionIdinstanceParams": "{{vnf-vfmodule-1-modelinfo-modeluuid}}",[
                        {
"modelInvariantUuid": "{{vnf-vfmodule-1-modelinfo-modelinvariantuuid}}",                         "modelVersionsec_group": "1olc-open",
                        "modelCustomizationId  "public_net_id": "{{vnf-vfmodule-1-modelinfo-modelcustomizationuuid}}"olc-net"
                        },
                      ]
             "instanceName": "{{vnf-vfmodule-1-modelinfo-modelname}}",      },
                "instanceParams": [   {
                     { "modelInfo": {
                        "sec_groupmodelName": "olc-open{{vnf-vfmodule-2-modelinfo-modelname}}",
 
                        "public_net_idmodelVersionId": "olc-net"{{vnf-vfmodule-2-modelinfo-modeluuid}}",
                        "modelInvariantUuid": "{{vnf-vfmodule-2-modelinfo-modelinvariantuuid}}",
                      ]  "modelVersion": "1",
                 },                  "modelCustomizationId": "{{vnf-vfmodule-2-modelinfo-modelcustomizationuuid}}"
  {                       "modelInfo": {
 },
                      "modelNameinstanceName": "{{vnf-vfmodule-2-modelinfo-modelname}}",
                        "modelVersionIdinstanceParams": "{{vnf-vfmodule-2-modelinfo-modeluuid}}",[
                        {
"modelInvariantUuid": "{{vnf-vfmodule-2-modelinfo-modelinvariantuuid}}",                         "modelVersionsec_group": "1",olc-open",
                          "modelCustomizationIdpublic_net_id": "{{vnf-vfmodule-2-modelinfo-modelcustomizationuuid}}olc-net"
                        },
                      "instanceName": "{{vnf-vfmodule-2-modelinfo-modelname}}",]
                    },
  "instanceParams": [                         {
                          "sec_group": "olc-open",
"modelInfo": {
                         "public_net_idmodelName": "olc-net"{{vnf-vfmodule-3-modelinfo-modelname}}",
                        "modelVersionId": "{{vnf-vfmodule-3-modelinfo-modeluuid}}",
                      ]             "modelInvariantUuid": "{{vnf-vfmodule-3-modelinfo-modelinvariantuuid}}",
       },                 "modelVersion": "1",
  {                       "modelInfomodelCustomizationId": "{{vnf-vfmodule-3-modelinfo-modelcustomizationuuid}}"
                        "modelName": "{{vnf-vfmodule-3-modelinfo-modelname}}",
                        "modelVersionIdinstanceName": "{{vnf-vfmodule-3-modelinfo-modeluuidmodelname}}",

                       "modelInvariantUuidinstanceParams": "{{vnf-vfmodule-3-modelinfo-modelinvariantuuid}}",[
                        "modelVersion": "1",{
                          "modelCustomizationIdsec_group": "{{vnf-vfmodule-3-modelinfo-modelcustomizationuuid}}"olc-open",
                      },    "public_net_id": "olc-net"
                  "instanceName": "{{vnf-vfmodule-3-modelinfo-modelname}}",     }
                 "instanceParams": [    ]
                    {}
                  ]
       "sec_group": "olc-open",        }
              ]
   "public_net_id": "olc-net"        },
            "modelInfo": {
  }            "modelVersion": "1.0",
         ]"modelVersionId": "{{service-uuid}}",
        "modelInvariantId": "{{service-invariantUUID}}",
          }"modelName": "{{service-name}}",
                  ]"modelType": "service"
                }
          }
   ]     }
       }],
 
          "modelInfoaLaCarte": {false
    },
         "modelVersionproject": "1.0",{
        "modelVersionIdprojectName": "{{service-uuid}}",Project-Demonstration"
    },
    "modelInvariantIdowningEntity": "{{service-invariantUUID}}",
        "modelNameowningEntityId": "{{service-name}}67f2e84c-734d-4e90-a1e4-d2ffa2e75849",
              "modelType"owningEntityName": "serviceOE-Demonstration"
    },
    "modelInfo": {
 }     "modelVersion": "1.0",
    }         }"modelVersionId": "{{service-uuid}}",
      ],       "aLaCartemodelInvariantId": false"{{service-invariantUUID}}",
    },     "projectmodelName": "{{service-name}}",
      "projectNamemodelType": "Project-Demonstrationservice"
    },
  }
 "owningEntity": }


Code Block
languageactionscript3
firstline1
titleModel_info_from_sdc.json
collapsetrue
{  
    "owningEntityIdserviceVnfs": "67f2e84c-734d-4e90-a1e4-d2ffa2e75849",[

    {
"owningEntityName": "OE-Demonstration"     },
    "modelInfo": {
        "modelVersionmodelName": "1.0vfw_k8s_072919",
        "modelVersionIdmodelUuid": "{{service-uuid}}8fae3ef7-7741-4d65-a630-9f83631f470d",
        "modelInvariantIdmodelInvariantUuid": "{{service-invariantUUID}}f14e9096-b6d6-4a48-861f-6f6355a05439",
        "modelNamemodelVersion": "{{service-name}}1.0",
        "modelTypemodelCustomizationUuid": "service"
    }
  }
}
Code Block
languageactionscript3
firstline1
titleModel_info_from_sdc.json
collapsetrue
{d7582303-0a01-4863-ae09-15c82000b927",
        "serviceVnfsmodelInstanceName": [ "vfw_k8s_072919 0"
      {},
      "modelInfotoscaNodeType": { "org.openecomp.resource.vf.VfwK8s072919",
      "nfFunction": null,
      "modelNamenfType": "vfw_k8s_072919"null,
        "modelUuidnfRole": "8fae3ef7-7741-4d65-a630-9f83631f470d",
 null,
      "nfNamingCode": null,
      "modelInvariantUuidmultiStageDesign": "f14e9096-b6d6-4a48-861f-6f6355a05439false",
 
      "modelVersionresourceInput": "1.0"null,
        "modelCustomizationUuidvfModules": "d7582303-0a01-4863-ae09-15c82000b927",[{
        "modelInstanceNamemodelInfo": "vfw_k8s_072919 0"{
       },       "toscaNodeTypemodelName": "orgVfwK8s072919.openecomp.resourceBase_dummy.vf.VfwK8s072919module-0",
          "nfFunctionmodelUuid": null"5f9162d1-e710-4454-bf84-26044026bd38",
      "nfType": null,       "nfRolemodelInvariantUuid": null"49f84e8f-20fc-4a0c-97a9-96339d0aab94",
      "nfNamingCode": null,       "multiStageDesignmodelVersion": "false1",
          "modelCustomizationUuid": "resourceInput": null,"b7b8a3b7-15a0-49d4-adfc-370941cab973"
       "vfModules": [{ },
        "modelInfoisBase": {true,
          "modelNamevfModuleLabel": "VfwK8s072919..Base_dummy..module-0",
          "modelUuidinitialCount": "5f9162d1-e710-4454-bf84-26044026bd38"1,
          "modelInvariantUuidhasVolumeGroup": "49f84e8f-20fc-4a0c-97a9-96339d0aab94",
 false
        "modelVersion": "1",   }]
    }
  "modelCustomizationUuid": "b7b8a3b7-15a0-49d4-adfc-370941cab973"
        },
        "isBase": true,
        "vfModuleLabel": "Base_dummy",
        "initialCount": 1,
        "hasVolumeGroup": false
      }]
    }
  ]
}

...

         In above payload we can add the user_directive data,

]
}


2. IN CDS we are using Net box for IP inventory (every time auto increment in IP value for instantiation), Here we are creating the pods, so how we can handle the IP concept here.
3. In case of Macro flow we need to the supplement json information as User_directives at the time of vf-module creation automatically (now we are passing manually through VID).

         In above payload we can add the user_directive data,

                   "userParams": [ { "Homing_Solution": "none" },

GR-API Issue with Helm chart:

  1.  when I am trying to create vf-module (Helm-chart, GR-API and version—v2) through VID, it failed due to vf module name missing in the SDNC-Directives.
  2. we adding the User_ Directives data also inside SDNC_ Directives, is there any purpose in it?


JIRA: 

Jira Legacy
serverSystem Jira
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keySO-2293


Description:

                     "userParams": [ { "Homing_Solution": "none" },

GR-API Issue with Helm chart:

  1.  when I am trying to create vf-module (Helm-chart, GR-API and version—v2) through VID, it failed due to vf module name missing in the SDNC-Directives.
  2. we adding the User_ Directives data also inside SDNC_ Directives, is there any purpose in it?

JIRA: 

Jira Legacy
serverSystem Jira
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keySO-2293

Description:

                  vf_module_name is missing from sdnc-directives, so Multi-cloud throwing error at the time of vf-module creation through VID. If we add the vf_module_name in the SDNC_Dircetives it will resolve the issue.

       

...

vf_module_name is missing from sdnc-directives, so Multi-cloud throwing error at the time of vf-module creation through VID. If we add the vf_module_name in the SDNC_Dircetives it will resolve the issue.

 

Macro flow with Heat (v1): 


created the stack successfully... with v1 version of vnf and multicloud as orchestrator...


Attached success logs of BPMN and Openstack...


Image Added

     

View file
nameBPMN-v1-success.log
height250
View file
nameOPENSTACK-v1-success.log
height250


Macro flow with Heat (v2): 

Failed to create the stack... Due to v2 version of vnf and multicloud as orchestrator...

just for reference added the logs of BPMN and Openstack with v2 version and orchestrator as Multicloud...


View file
nameBPMN-v2-failure.log
height250
View file
nameOPENSTACK-v2-Failure.log
height250


Macro flow with Helm (v2 version):


Need to create modify the CBA package according to the Helm chatcharts.