.. This work is licensed under a Creative Commons Attribution 4.0 International License. ==================================== ONAP MultiCloud HPA Deployment Guide ==================================== The guide for MultiCloud HPA Deployment. Architecture & Policies & Mappings ================================== Please refer to the link for more architecture details: https://wiki.onap.org/pages/viewpage.action?pageId=20874679 Please refer to the link for more Policies&Mappings details: https://wiki.onap.org/display/DW/HPA+Policies+and+Mappings Prerequisites ============= configure openstack with proper flavors (with name prefixed by "onap." to carry HPA information to ONAP), example flavor: .. code-block:: console nova flavor-create onap.hpa.medium 110 4096 0 6 #cpu pining nova flavor-key onap.hpa.medium set hw:cpu_policy=dedicated nova flavor-key onap.hpa.medium set hw:cpu_thread_policy=prefer #cpu topology nova flavor-key onap.hpa.medium set hw:cpu_sockets=2 nova flavor-key onap.hpa.medium set hw:cpu_cores=4 nova flavor-key onap.hpa.medium set hw:cpu_threads=8 #hugepage nova flavor-key onap.hpa.medium set hw:mem_page_size=large #numa nova flavor-key onap.hpa.medium set hw:numa_nodes=2 nova flavor-key onap.hpa.medium set hw:numa_cpus.0=0,1 hw:numa_cpus.1=2,3,4,5 hw:numa_mem.0=2048 hw:numa_mem.1=2048 collect following information for on-boarding this Cloud instance to ONAP: .. code-block:: console your openstack project name your openstack user your openstack password your openstack keystone endpoint your openstack Region ID: e.g. RegionOne your openstack owner name/ID (any string without underscore character '_'), e.g. CloudOwner Note: along with the Region ID, the owner name/ID comprises unique ID of a cloud region within ONAP With Heat based ONAP: .. code-block:: console export ONAP_AAI_IP= export ONAP_AAI_PORT=8443 export ONAP_MSB_IP= export ONAP_MSB_PORT=80 With OOM based ONAP: .. code-block:: console export ONAP_AAI_IP= export ONAP_AAI_PORT=30233 export ONAP_MSB_IP= export ONAP_MSB_PORT=30280 The geographic location of the cloud region =========================================== make sure there is complex object to represent the geographic location of the cloud region in case you need create a complex object "clli1": .. code-block:: console curl -X PUT \ https://$ONAP_AAI_IP:$ONAP_AAI_PORT/aai/v13/cloud-infrastructure/complexes/complex/clli1 \ -H 'Accept: application/json' \ -H 'Authorization: Basic QUFJOkFBSQ==' \ -H 'Cache-Control: no-cache' \ -H 'Content-Type: application/json' \ -H 'Postman-Token: 2b272126-aa65-41e6-aa5d-46bc70b9eb4f' \ -H 'Real-Time: true' \ -H 'X-FromAppId: jimmy-postman' \ -H 'X-TransactionId: 9999' \ -d '{ "physical-location-id": "clli1", "data-center-code": "example-data-center-code-val-5556", "complex-name": "clli1", "identity-url": "example-identity-url-val-56898", "physical-location-type": "example-physical-location-type-val-7608", "street1": "example-street1-val-34205", "street2": "example-street2-val-99210", "city": "Beijing", "state": "example-state-val-59487", "postal-code": "100000", "country": "example-country-val-94173", "region": "example-region-val-13893", "latitude": "39.9042", "longitude": "106.4074", "elevation": "example-elevation-val-30253", "lata": "example-lata-val-46073" }' Register a cloud region ======================= register a cloud region to represent the VIM with the specific tenant note: please update the parameters enclosed with "<>" .. code-block:: console curl -X PUT \ https://$ONAP_AAI_IP:$ONAP_AAI_PORT/aai/v13/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/RegionOne \ -H 'Accept: application/json' \ -H 'Authorization: Basic QUFJOkFBSQ==' \ -H 'Cache-Control: no-cache' \ -H 'Content-Type: application/json' \ -H 'Postman-Token: 8b9b95ae-91d6-4436-90fa-69cb4d2db99c' \ -H 'Real-Time: true' \ -H 'X-FromAppId: jimmy-postman' \ -H 'X-TransactionId: 9999' \ -d '{ "cloud-owner": "CloudOwner", "cloud-region-id": "RegionOne", "cloud-type": "openstack", "owner-defined-type": "t1", "cloud-region-version": "titanium_cloud", "complex-name": "clli1", "cloud-zone": "CloudZone", "sriov-automation": false, "identity-url": "WillBeUpdatedByMultiCloud", "esr-system-info-list": { "esr-system-info": [ { "esr-system-info-id": "", "service-url": "http://", "user-name": "", "password": "", "system-type": "VIM", "ssl-insecure": true, "cloud-domain": "Default", "default-tenant": "", "system-status": "active" } ] } }' associate the cloud region with the location object: .. code-block:: console curl -X PUT \ https://$ONAP_AAI_IP:$ONAP_AAI_PORT/aai/v13/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/RegionOne/relationship-list/relationship \ -H 'Authorization: Basic QUFJOkFBSQ==' \ -H 'Cache-Control: no-cache' \ -H 'Content-Type: application/json' \ -H 'Postman-Token: 7407d60c-8ce7-45de-ada3-4a7a9e88ebd4' \ -H 'Real-Time: true' \ -H 'X-FromAppId: jimmy-postman' \ -H 'X-TransactionId: 9999' \ -d '{ "related-to": "complex", "related-link": "/aai/v13/cloud-infrastructure/complexes/complex/clli1", "relationship-data": [ { "relationship-key": "complex.physical-location-id", "relationship-value": "clli1" } ] }' Trigger the MultiCloud registration =================================== .. code-block:: console curl -X POST \ 'http://$ONAP_MSB_IP:$ONAP_MSB_PORT/api/multicloud-titanium_cloud/v0/CloudOwner_RegionOne/registry' \ -H 'Accept: application/json' \ -H 'Cache-Control: no-cache' \ -H 'Content-Type: application/json' \ -H 'Postman-Token: 8577e1cc-1038-471d-8b3b-d36fe44ae023' Verify ====== verify if the cloud region was registered properly (with HPA information populated) .. code-block:: console curl -X GET \ 'https://$ONAP_AAI_IP:$ONAP_AAI_PORT/aai/v13/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/RegionOne?depth=all' \ -H 'Accept: application/json' \ -H 'Authorization: Basic QUFJOkFBSQ==' \ -H 'Cache-Control: no-cache' \ -H 'Content-Type: application/json' \ -H 'Postman-Token: 2899359f-871b-4e61-a307-ecf8b3144e3f' \ -H 'Real-Time: true' \ -H 'X-FromAppId: jimmy-postman' \ -H 'X-TransactionId: 9999' Note: The response of querying a cloud region above should return with a comprehensive cloud region object, you should find out the "hpa-capabilities" under certain flavor object with name prefixed by "onap."