X-Git-Url: https://gerrit.onap.org/r/gitweb?p=multicloud%2Fframework.git;a=blobdiff_plain;f=docs%2FMultiCloud-Deployment-Guide.rst;fp=docs%2FMultiCloud-Deployment-Guide.rst;h=77c5a2d4309f1ca48a382c6aedc0e5e3210c7aee;hp=0000000000000000000000000000000000000000;hb=d04a2f7056c4579ee72b328dbb3413a3521ec662;hpb=ed6f94fc70e18c849b043b5616dbdd7cafa8ba9b diff --git a/docs/MultiCloud-Deployment-Guide.rst b/docs/MultiCloud-Deployment-Guide.rst new file mode 100644 index 0000000..77c5a2d --- /dev/null +++ b/docs/MultiCloud-Deployment-Guide.rst @@ -0,0 +1,270 @@ +================================ +ONAP MultiCloud Deployment Guide +================================ + +prepare docker environment +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Please refer to onap deployment in kubernetes website(https://wiki.onap.org/display/DW/ONAP+on+Kubernetes) +to setup kubernets cluster. + + +After installing kubectl and helm, execute "kubectl cluster-info" command to verify your kubernets cluster. + +Clone oom project: git clone http://gerrit.onap.org/r/oom +Source the setenv.bash script in /oom/kubernetes/oneclick/, it will set your helm list of components to start/delete +Run the one time config pod - which mounts the volume /dockerdata/ contained in the pod config-init. + +# cd oom/kubernetes/config +# cp onap-parameters-sample.yaml onap-parameters.yaml +# ./createConfig.sh -n onap + +wait for "onap" namespace created, pod "config-init" created +# kubectl get namespaces +NAME STATUS AGE +default Active 10d +kube-public Active 10d +kube-system Active 10d +onap Active 9d + +startup containers +~~~~~~~~~~~~~~~~~~ + +first run kube2msb container. + +# cd oom/kubernetes/oneclick +# ./createAll.bash -n onap -a kube2msb + +run msb container +# ./createAll.bash -n onap -a msb + +run aai container +# ./createAll.bash -n onap -a aai + + +Finally run multicloud container +# ./createAll.bash -n onap -a multicloud + +get all pods +# kubectl get pods --all-namespaces +NAMESPACE NAME READY STATUS RESTARTS AGE +kube-system heapster-4285517626-2k4l1 1/1 Running 1 9d +kube-system kube-dns-2514474280-mxh18 3/3 Running 3 9d +kube-system kubernetes-dashboard-716739405-jl6mk 1/1 Running 1 9d +kube-system monitoring-grafana-3552275057-hrpn5 1/1 Running 1 9d +kube-system monitoring-influxdb-4110454889-t8tpv 1/1 Running 1 9d +kube-system tiller-deploy-737598192-8q523 1/1 Running 1 9d +onap-aai aai-resources-837807428-2t158 1/1 Running 0 2d +onap-aai aai-service-3869033750-1nvg5 1/1 Running 0 2d +onap-aai aai-traversal-50329389-gnsnk 1/1 Running 0 2d +onap-aai data-router-2254557428-zwxx1 1/1 Running 0 2d +onap-aai elasticsearch-622738319-sx6q1 1/1 Running 0 2d +onap-aai gremlin-671060974-npsg5 1/1 Running 0 2d +onap-aai hbase-3690059193-2pjc5 1/1 Running 0 2d +onap-aai model-loader-service-849987455-w6vwn 1/1 Running 0 2d +onap-aai search-data-service-4105978183-p1nnj 1/1 Running 0 2d +onap-aai sparky-be-2696729089-mcjbw 1/1 Running 0 2d +onap-kube2msb kube2msb-registrator-1600827891-1s3s4 1/1 Running 3 7d +onap-msb msb-consul-3388279333-hbr16 1/1 Running 0 2d +onap-msb msb-discovery-1109629174-t14q8 1/1 Running 0 2d +onap-msb msb-eag-3969419634-2fdnr 1/1 Running 0 2d +onap-msb msb-iag-1114772402-sjlww 1/1 Running 0 2d +onap-multicloud framework-1225620501-9567n 1/1 Running 0 21h +onap-multicloud multicloud-vio-269945856-rl6w6 1/1 Running 0 21h + +get cluster-ip and port + +# kubectl get svc --all-namespaces +NAMESPACE NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE +default kubernetes 10.43.0.1 443/TCP 10d +kube-system heapster 10.43.96.134 80/TCP 10d +kube-system kube-dns 10.43.0.10 53/UDP,53/TCP 10d +kube-system kubernetes-dashboard 10.43.9.43 9090/TCP 10d +kube-system monitoring-grafana 10.43.210.16 80/TCP 10d +kube-system monitoring-influxdb 10.43.32.60 8086/TCP 10d +kube-system tiller-deploy 10.43.84.208 44134/TCP 10d +onap-aai aai-resources None 8447/TCP,5005/TCP 2d +onap-aai aai-service 10.43.88.92 8443:30233/TCP,8080:30232/TCP 2d +onap-aai aai-traversal None 8446/TCP,5005/TCP 2d +onap-aai elasticsearch None 9200/TCP 2d +onap-aai gremlin None 8182/TCP 2d +onap-aai hbase None 2181/TCP,8080/TCP,8085/TCP,9090/TCP,16000/TCP,16010/TCP,16201/TCP 2d +onap-aai model-loader-service 10.43.172.213 8443:30229/TCP,8080:30210/TCP 2d +onap-aai search-data-service None 9509/TCP 2d +onap-aai sparky-be None 9517/TCP 2d +onap-msb msb-consul 10.43.41.203 8500:30500/TCP 2d +onap-msb msb-discovery 10.43.6.205 10081:30081/TCP 2d +onap-msb msb-eag 10.43.81.104 80:30082/TCP 2d +onap-msb msb-iag 10.43.188.78 80:30080/TCP 2d +onap-multicloud framework 10.43.97.54 9001:30291/TCP 21h +onap-multicloud multicloud-vio 10.43.230.197 9004:30294/TCP 21h + + +Now msb,aai and multicloud container are online, navigate to http://msb_docker_host_ip:30081/iui/microservices/index.html, +you can see multicloud endpoint have been registered. + +No Service Name Version NameSpace Url Protocol Visualrange Control +1 multicloud v0 /api/multicloud/v0 REST InSystem +2 multicloud-vio v0 /api/multicloud-vio/v0 REST InSystem + +Then register vio information into AAI service with region name "vmware" and region id "vio" + +.. code-block:: console + +# curl -X PUT -H "Authorization: Basic QUFJOkFBSQ==" -H "Content-Type: application/json" -H "X-TransactionId:get_aai_subcr" +https://aai_resource_docker_host_ip:30233/aai/v01/cloud-infrastructure/cloud-regions/cloud-region/vmware/vio +-d "{ + "cloud-type": "vmware", + "cloud-region-version": "4.0", + "esr-system-info-list": { + "esr-system-info": [ + { + "esr-system-info-id": "123-456", + "system-name": "vim-vio", + "system-type": "vim", + "type": "vim", + "user-name": "admin", + "password": "vmware", + "service-url": "", + "cloud-domain": "default", + "default-tenant": "admin", + "ssl-insecure": false + } + ] + } +}" + +Test Examples +~~~~~~~~~~~~~ + +The env HOST_IP is msb-iag service cluster-ip value is "10.43.188.78"(see it above). +The vimid is "vmware_vio" the registered name in aai. + + +Get auth token +-------------- + +# send request to multicloud-framework(broker) service to get token + +.. code-block:: console + +curl -X POST -d @test.json -H 'Content-Type:application/json' http://$HOST_IP/api/multicloud/v0//identity/auth/tokens + +.. code-block:: console + +test.json content example: +{ + "auth": sudo pip install virtualenv{ + "scope": {"project": {"id": “”}}, + "identity": + { + "password": {"user": {"domain": {"name": “”}, "password": “”, "name": “”}}, "methods": ["password"] + } + } +} + + +Response: +There are a large amounts of data including service endpoint, user information, etc. +For our testing We take nova and identity service endpoint address and auth token which is in response header named “X-Subject-Token”. + +# you can find the endpoint url namespace is "api/multicloiud-vio/v0", it represent the multicloud-vio service, So +requests sending to mulitcloud-vio will be forwarded to backend VIO openstack. + + +Identity endpoint: + http://$HOST_IP/api/multicloud-vio/v0//identity + +Nova endpoint: + http://$HOST_IP/api/multicloud-vio/v0//compute/ + + +List projects +------------- + +Use identity’s endpoint: http://$HOST_IP/api/multicloud-vio/v0//identity/ + +curl -X GET -H 'X-Auth-Token:' http://$HOST_IP/api/multicloud-vio/v0//identity/projects + + +Get os Hypervisor +----------------- + +Use nova’s endpoint: http://$HOST_IP/api/multicloud-vio/v0//nova/ + + +curl -X GET -H 'X-Auth-Token:' http://$HOST_IP/api/multicloud-vio/v0//nova//os-hypervisors/detail + + +List instance of user’s project +-------------------------------- + +curl -X GET -H 'X-Auth-Token:' http://$HOST_IP/api/multicloud-vio/v0//nova//servers + + +Show instance detail +-------------------- + +you need to input in url path. + +.. code-block:: console + + $ curl -X GET -H 'X-Auth-Token:' http://$HOST_IP/api/multicloud-vio/v0/vimid/nova/tenantid/servers/ + + +Shutdown instance +----------------- + +you need to input in url path + +.. code-block:: console + + $ curl -X POST -d '{"os-stop":null}' -H 'X-Auth-Token:' -H 'Content-Type:application/json' http://$HOST_IP/api/multicloud-vio/v0//nova//servers//action + + +Start instance +-------------- + +you need to input in url path + +curl -X POST -d '{"os-start":null}' -H 'X-Auth-Token:' -H 'Content-Type:application/json' http://$HOST_IP/api/multicloud-vio/v0//nova//servers//action + + +Suspend instance +---------------- + +you need to input in url path + +curl -X POST -d '{"suspend":null}' -H 'X-Auth-Token:' -H 'Content-Type:application/json' http://$HOST_IP/api/multicloud-vio/v0//nova//servers//action + + +Resume instance +---------------- + +you need to input in url path + +curl -X POST -d '{"resume":null}' -H 'X-Auth-Token:' -H 'Content-Type:application/json' http://$HOST_IP/api/multicloud-vio/v0//nova//servers//action + + +Pause instance +-------------- + +you need to input in url path + +curl -X POST -d '{"pause":null}' -H 'X-Auth-Token:' -H 'Content-Type:application/json' http://$HOST_IP/api/multicloud-vio/v0//nova//servers//action + + +Unpasue instance +---------------- + +you need to input in url path + +curl -X POST -d '{"unpause":null}' -H 'X-Auth-Token: -H 'Content-Type:application/json' http://$HOST_IP/api/multicloud-vio/v0//nova//servers//action + + +Reboot instance +--------------- + +you need to input in url path + +curl -X POST -d '{"reboot":{"type":"HARD"}}' -H 'X-Auth-Token: -H 'Content-Type:application/json' http://$HOST_IP/api/multicloud-vio/v0//nova//servers//action