Note: it is assumed that:
- FaaS VIM plugin is already loaded into OSM and references to the correct openwhisk
- Argo is installed on the correct kubernetes cluster
- GPU nodes are registered with kubernetes cluster
Please notice FaaS Guidelines before proceeding
Log into OW controller
wsk -i package create immersive-game
wsk -i action create /guest/immersive-game/bootstrap --docker docker5gmedia/immersive-game-bootstrap:07e5b29
wsk -i action create /guest/5g-media/vtranscoder_2_9_0_gpu -A ../openwhisk/actions/gpu-annotations.json --docker docker5gmedia/transcoder_2_9_0
wsk -i action create /guest/5g-media/vtranscoder_2_9_0_cpu -A ../openwhisk/actions/cpu-annotations.json --docker docker5gmedia/transcoder_2_9_0
wsk -i action create /guest/5g-media/vbroker --docker docker5gmedia/broker_1
wsk -i action create /guest/5g-media/vbuffer --docker docker5gmedia/vbuffer
wsk -i action create /guest/5g-media/vreplay --docker docker5gmedia/vreplay
wsk -i action create /guest/5g-media/vspectator --docker docker5gmedia/simulated_spectator_hardcoded
- Log into OSM launchpad
- Goto catalog
- On-board by drag/drop UC1 packages
Login to OSM
curl -X POST \
http://127.0.0.1:5001/conf/sky_balls/vbroker_vnfd/4\
-H 'content-type: application/json' \
-d '{
"service_ports": [
"9092"
]
}'
Instantiate it from OSM GUI under name: sky_balls
curl 127.0.0.1:5001/osm/sky_balls | jq -r '.vnfs[3].vim_info.host_ip,.vnfs[3].vim_info.service.service_ports."9092"'
Copy above vBroker Ingress IP/Port to below curl
curl -X POST \
http://127.0.0.1:5001/osm/reconfigure/sky_balls/vbroker_vnfd.4\
-H 'content-type: application/json' \
-d '{
"coe_action_params": {"action_params": {"advertised_host": "...", "advertised_port": "..."}}
}'
Copy above vBroker Ingress IP/Port to below curl
curl -X POST \
http://127.0.0.1:5001/osm/reconfigure/sky_balls/vbuffer_vnfd.5\
-H 'content-type: application/json' \
-d '{
"actions_params": {
"brokerEndpoint":"...:...",
"p1topic": "1_profile_0",
"p2topic": "2_profile_0",
"bufferSize": "30",
"flushCommandsTopic": "flush_commands"
}
}'
Log into OSM
curl http://127.0.0.1:5001/osm/sky_balls | jq -r '.vnfs[0].vim_info.IngressUrl'
Copy url from above IngressUrl
Note: profiles: 0,1,2 cpu 3,4,5 gpu
curl -X POST \
.../handlerequest \
-H 'Content-Type: application/json' \
-d '{
"osm_ip": "10.100.176.66",
"event_uuid": "1",
"osm_ns": "sky_balls",
"operation": "spawn_transcoder",
"player_index": "1",
"vnfd_name": "transcoder_2_9_0_cpu_vnfd",
"vnfd_index": "3",
"gpu_node": "0",
"produce_profile": "1",
"metrics_broker_ip": "192.158.1.175",
"metrics_broker_port": "9092"
}'
curl -X POST \
.../handlerequest \
-H 'Content-Type: application/json' \
-d '{
"osm_ip": "10.100.176.66",
"event_uuid": "2",
"osm_ns": "sky_balls",
"operation": "terminate_transcoder",
"uuid": "1"
}'
Copy above vBroker Ingress IP/Port to BrokerEndpoint
curl -X POST \
.../handlerequest \
-H 'Content-Type: application/json' \
-d '{
"osm_ip": "10.100.176.66",
"event_uuid": "3",
"osm_ns": "sky_balls",
"operation": "spawn_replay",
"vnfd_name": "vreplay_vnfd",
"vnfd_index": "6",
"SessionID": "123",
"TimestampTopic":"ts-topic",
"GameStateTopic": "gs-topic",
"OutputTopic": "out-topic",
"BrokerEndpoint": "...:..."
}'
curl -X POST \
.../handlerequest \
-H 'Content-Type: application/json' \
-d '{
"osm_ip":"10.100.176.66",
"event_uuid":"4",
"osm_ns":"sky_balls",
"operation":"terminate_replay",
"uuid":"3"
}'