2 # SPDX-license-identifier: Apache-2.0
3 ##############################################################################
5 # All rights reserved. This program and the accompanying materials
6 # are made available under the terms of the Apache License, Version 2.0
7 # which accompanies this distribution, and is available at
8 # http://www.apache.org/licenses/LICENSE-2.0
9 ##############################################################################
15 source _common_test.sh
19 kubeconfig_path="$HOME/.kube/config"
21 clusters="${KUD_PLUGIN_FW_CLUSTERS:-$(cat <<EOF
26 "description": "description of edge01",
27 "userData1": "edge01 user data 1",
28 "userData2": "edge01 user data 2"
30 "file": "$kubeconfig_path"
36 function cluster_names {
37 echo $clusters | jq -e -r '.[].metadata.name'
40 function cluster_metadata {
43 "metadata": $(echo $clusters | jq -e -r --arg name "$1" '.[]|select(.metadata.name==$name)|.metadata')
48 function cluster_file {
49 echo $clusters | jq -e -r --arg name "$1" '.[]|select(.metadata.name==$name)|.file'
53 while [[ $# -gt 0 ]]; do
58 master_ip=$(kubectl cluster-info | grep "Kubernetes master" | \
59 awk -F ":" '{print $2}' | awk -F "//" '{print $2}')
60 base_url_clm=${base_url_clm:-"http://$master_ip:30461/v2"}
61 base_url_ncm=${base_url_ncm:-"http://$master_ip:30431/v2"}
62 base_url_orchestrator=${base_url_orchestrator:-"http://$master_ip:30415/v2"}
63 base_url_ovnaction=${base_url_ovnaction:-"http://$master_ip:30471/v2"}
64 rsync_service_port=30441
65 rsync_service_host="$master_ip"
66 ovnaction_service_port=30473
67 ovnaction_service_host="$master_ip"
76 set -- "${ARGS[@]}" # restore positional parameters
78 base_url_clm=${base_url_clm:-"http://localhost:9061/v2"}
79 base_url_ncm=${base_url_ncm:-"http://localhost:9031/v2"}
80 base_url_orchestrator=${base_url_orchestrator:-"http://localhost:9015/v2"}
81 base_url_ovnaction=${base_url_ovnaction:-"http://localhost:9053/v2"}
82 rsync_service_port=${rsync_service_port:-9041}
83 rsync_service_host=${rsync_service_host:-"localhost"}
84 ovnaction_service_port=${ovnaction_service_port:-9053}
85 ovnaction_service_host=${ovnaction_service_host:-"localhost"}
88 csar_id="4bf66240-a0be-4ce2-aebd-a01df7725f16"
90 packetgen_helm_path="$CSAR_DIR/$csar_id/packetgen.tar.gz"
91 packetgen_profile_targz="$CSAR_DIR/$csar_id/profile.tar.gz"
92 firewall_helm_path="$CSAR_DIR/$csar_id/firewall.tar.gz"
93 firewall_profile_targz="$CSAR_DIR/$csar_id/profile.tar.gz"
94 sink_helm_path="$CSAR_DIR/$csar_id/sink.tar.gz"
95 sink_profile_targz="$CSAR_DIR/$csar_id/profile.tar.gz"
97 demo_folder=$test_folder/../demo
99 function populate_CSAR_compositevfw_helm {
101 pushd "${CSAR_DIR}/$1"
102 print_msg "Create Helm Chart Archives for compositevfw"
104 tar -czf packetgen.tar.gz -C $demo_folder/composite-firewall packetgen
105 tar -czf firewall.tar.gz -C $demo_folder/composite-firewall firewall
106 tar -czf sink.tar.gz -C $demo_folder/composite-firewall sink
107 tar -czf profile.tar.gz -C $demo_folder/composite-firewall manifest.yaml override_values.yaml
113 populate_CSAR_compositevfw_helm "$csar_id"
116 clusterprovidername="vfw-cluster-provider"
117 clusterproviderdata="$(cat<<EOF
120 "name": "$clusterprovidername",
121 "description": "description of $clusterprovidername",
122 "userData1": "$clusterprovidername user data 1",
123 "userData2": "$clusterprovidername user data 2"
130 labeldata="$(cat<<EOF
131 {"label-name": "$labelname"}
135 # add the rsync controller entry
136 rsynccontrollername="rsync"
137 rsynccontrollerdata="$(cat<<EOF
141 "description": "description of $rsynccontrollername controller",
142 "userData1": "user data 1 for $rsynccontrollername",
143 "userData2": "user data 2 for $rsynccontrollername"
146 "host": "${rsync_service_host}",
147 "port": ${rsync_service_port}
153 # add the ovn action controller entry
154 ovnactioncontrollername="ovnaction"
155 ovnactioncontrollerdata="$(cat<<EOF
158 "name": "$ovnactioncontrollername",
159 "description": "description of $ovnactioncontrollername controller",
160 "userData1": "user data 2 for $ovnactioncontrollername",
161 "userData2": "user data 2 for $ovnactioncontrollername"
164 "host": "${ovnaction_service_host}",
167 "port": ${ovnaction_service_port}
173 # define networks and providernetworks intents to ncm for the clusters
174 # define emco-private-net and unprotexted-private-net as provider networks
176 emcoprovidernetworkname="emco-private-net"
177 emcoprovidernetworkdata="$(cat<<EOF
180 "name": "$emcoprovidernetworkname",
181 "description": "description of $emcoprovidernetworkname",
182 "userData1": "user data 1 for $emcoprovidernetworkname",
183 "userData2": "user data 2 for $emcoprovidernetworkname"
186 "cniType": "ovn4nfv",
189 "subnet": "10.10.20.0/24",
191 "gateway": "10.10.20.1/24"
194 "providerNetType": "VLAN",
197 "providerInterfaceName": "eth1",
198 "logicalInterfaceName": "eth1.102",
199 "vlanNodeSelector": "specific",
201 "kubernetes.io/hostname=localhost"
209 unprotectedprovidernetworkname="unprotected-private-net"
210 unprotectedprovidernetworkdata="$(cat<<EOF
213 "name": "$unprotectedprovidernetworkname",
214 "description": "description of $unprotectedprovidernetworkname",
215 "userData1": "user data 2 for $unprotectedprovidernetworkname",
216 "userData2": "user data 2 for $unprotectedprovidernetworkname"
219 "cniType": "ovn4nfv",
222 "subnet": "192.168.10.0/24",
224 "gateway": "192.168.10.1/24"
227 "providerNetType": "VLAN",
230 "providerInterfaceName": "eth1",
231 "logicalInterfaceName": "eth1.100",
232 "vlanNodeSelector": "specific",
234 "kubernetes.io/hostname=localhost"
242 protectednetworkname="protected-private-net"
243 protectednetworkdata="$(cat<<EOF
246 "name": "$protectednetworkname",
247 "description": "description of $protectednetworkname",
248 "userData1": "user data 1 for $protectednetworkname",
249 "userData2": "user data 1 for $protectednetworkname"
252 "cniType": "ovn4nfv",
255 "subnet": "192.168.20.0/24",
257 "gateway": "192.168.20.100/32"
266 projectname="testvfw"
267 projectdata="$(cat<<EOF
270 "name": "$projectname",
271 "description": "description of $projectname controller",
272 "userData1": "$projectname user data 1",
273 "userData2": "$projectname user data 2"
279 # define a composite application
280 vfw_compositeapp_name="compositevfw"
281 vfw_compositeapp_version="v1"
282 vfw_compositeapp_data="$(cat <<EOF
285 "name": "${vfw_compositeapp_name}",
286 "description": "description of ${vfw_compositeapp_name}",
287 "userData1": "user data 1 for ${vfw_compositeapp_name}",
288 "userData2": "user data 2 for ${vfw_compositeapp_name}"
291 "version":"${vfw_compositeapp_version}"
297 # define app entries for the composite application
298 # includes the multipart tgz of the helm chart for vfw
299 # BEGIN: Create entries for app1&app2 in the database
300 packetgen_app_name="packetgen"
301 packetgen_helm_chart=${packetgen_helm_path}
302 packetgen_app_data="$(cat <<EOF
305 "name": "${packetgen_app_name}",
306 "description": "description for app ${packetgen_app_name}",
307 "userData1": "user data 2 for ${packetgen_app_name}",
308 "userData2": "user data 2 for ${packetgen_app_name}"
314 firewall_app_name="firewall"
315 firewall_helm_chart=${firewall_helm_path}
316 firewall_app_data="$(cat <<EOF
319 "name": "${firewall_app_name}",
320 "description": "description for app ${firewall_app_name}",
321 "userData1": "user data 2 for ${firewall_app_name}",
322 "userData2": "user data 2 for ${firewall_app_name}"
329 sink_helm_chart=${sink_helm_path}
330 sink_app_data="$(cat <<EOF
333 "name": "${sink_app_name}",
334 "description": "description for app ${sink_app_name}",
335 "userData1": "user data 2 for ${sink_app_name}",
336 "userData2": "user data 2 for ${sink_app_name}"
342 # Add the composite profile
343 vfw_composite_profile_name="vfw_composite-profile"
344 vfw_composite_profile_data="$(cat <<EOF
347 "name":"${vfw_composite_profile_name}",
348 "description":"description of ${vfw_composite_profile_name}",
349 "userData1":"user data 1 for ${vfw_composite_profile_name}",
350 "userData2":"user data 2 for ${vfw_composite_profile_name}"
356 # define the packetgen profile data
357 packetgen_profile_name="packetgen-profile"
358 packetgen_profile_file=${packetgen_profile_targz}
359 packetgen_profile_data="$(cat <<EOF
362 "name":"${packetgen_profile_name}",
363 "description":"description of ${packetgen_profile_name}",
364 "userData1":"user data 1 for ${packetgen_profile_name}",
365 "userData2":"user data 2 for ${packetgen_profile_name}"
368 "app-name": "${packetgen_app_name}"
374 # define the firewall profile data
375 firewall_profile_name="firewall-profile"
376 firewall_profile_file=${firewall_profile_targz}
377 firewall_profile_data="$(cat <<EOF
380 "name":"${firewall_profile_name}",
381 "description":"description of ${firewall_profile_name}",
382 "userData1":"user data 1 for ${firewall_profile_name}",
383 "userData2":"user data 2 for ${firewall_profile_name}"
386 "app-name": "${firewall_app_name}"
392 # define the sink profile data
393 sink_profile_name="sink-profile"
394 sink_profile_file=${sink_profile_targz}
395 sink_profile_data="$(cat <<EOF
398 "name":"${sink_profile_name}",
399 "description":"description of ${sink_profile_name}",
400 "userData1":"user data 1 for ${sink_profile_name}",
401 "userData2":"user data 2 for ${sink_profile_name}"
404 "app-name": "${sink_app_name}"
410 # define the generic placement intent
411 generic_placement_intent_name="generic-placement-intent"
412 generic_placement_intent_data="$(cat <<EOF
415 "name":"${generic_placement_intent_name}",
416 "description":"${generic_placement_intent_name}",
417 "userData1":"${generic_placement_intent_name}",
418 "userData2":"${generic_placement_intent_name}"
424 # define app placement intent for packetgen
425 packetgen_placement_intent_name="packetgen-placement-intent"
426 packetgen_placement_intent_data="$(cat <<EOF
429 "name":"${packetgen_placement_intent_name}",
430 "description":"description of ${packetgen_placement_intent_name}",
431 "userData1":"user data 1 for ${packetgen_placement_intent_name}",
432 "userData2":"user data 2 for ${packetgen_placement_intent_name}"
435 "app-name":"${packetgen_app_name}",
438 { "provider-name":"${clusterprovidername}",
439 "cluster-label-name":"${labelname}"
448 # define app placement intent for firewall
449 firewall_placement_intent_name="firewall-placement-intent"
450 firewall_placement_intent_data="$(cat <<EOF
453 "name":"${firewall_placement_intent_name}",
454 "description":"description of ${firewall_placement_intent_name}",
455 "userData1":"user data 1 for ${firewall_placement_intent_name}",
456 "userData2":"user data 2 for ${firewall_placement_intent_name}"
459 "app-name":"${firewall_app_name}",
462 { "provider-name":"${clusterprovidername}",
463 "cluster-label-name":"${labelname}"
472 # define app placement intent for sink
473 sink_placement_intent_name="sink-placement-intent"
474 sink_placement_intent_data="$(cat <<EOF
477 "name":"${sink_placement_intent_name}",
478 "description":"description of ${sink_placement_intent_name}",
479 "userData1":"user data 1 for ${sink_placement_intent_name}",
480 "userData2":"user data 2 for ${sink_placement_intent_name}"
483 "app-name":"${sink_app_name}",
486 { "provider-name":"${clusterprovidername}",
487 "cluster-label-name":"${labelname}"
496 # define a deployment intent group
498 deployment_intent_group_name="vfw_deployment_intent_group"
499 deployment_intent_group_data="$(cat <<EOF
502 "name":"${deployment_intent_group_name}",
503 "description":"descriptiont of ${deployment_intent_group_name}",
504 "userData1":"user data 1 for ${deployment_intent_group_name}",
505 "userData2":"user data 2 for ${deployment_intent_group_name}"
508 "profile":"${vfw_composite_profile_name}",
509 "version":"${release}",
510 "logical-cloud":"unused_logical_cloud",
513 "app-name":"${packetgen_app_name}",
515 ".Values.service.ports.nodePort":"30888"
519 "app-name":"${firewall_app_name}",
521 ".Values.global.dcaeCollectorIp":"1.2.3.4",
522 ".Values.global.dcaeCollectorPort":"8888"
526 "app-name":"${sink_app_name}",
528 ".Values.service.ports.nodePort":"30677"
537 # define the network-control-intent for the vfw composite app
538 vfw_ovnaction_intent_name="vfw_ovnaction_intent"
539 vfw_ovnaction_intent_data="$(cat <<EOF
542 "name":"${vfw_ovnaction_intent_name}",
543 "description":"descriptionf of ${vfw_ovnaction_intent_name}",
544 "userData1":"user data 1 for ${vfw_ovnaction_intent_name}",
545 "userData2":"user data 2 for ${vfw_ovnaction_intent_name}"
551 # define the network workload intent for packetgen app
552 packetgen_workload_intent_name="packetgen_workload_intent"
553 packetgen_workload_intent_data="$(cat <<EOF
556 "name": "${packetgen_workload_intent_name}",
557 "description": "description of ${packetgen_workload_intent_name}",
558 "userData1": "useer data 2 for ${packetgen_workload_intent_name}",
559 "userData2": "useer data 2 for ${packetgen_workload_intent_name}"
562 "application-name": "${packetgen_app_name}",
563 "workload-resource": "${release}-${packetgen_app_name}",
570 # define the network workload intent for firewall app
571 firewall_workload_intent_name="firewall_workload_intent"
572 firewall_workload_intent_data="$(cat <<EOF
575 "name": "${firewall_workload_intent_name}",
576 "description": "description of ${firewall_workload_intent_name}",
577 "userData1": "useer data 2 for ${firewall_workload_intent_name}",
578 "userData2": "useer data 2 for ${firewall_workload_intent_name}"
581 "application-name": "${firewall_app_name}",
582 "workload-resource": "${release}-${firewall_app_name}",
589 # define the network workload intent for sink app
590 sink_workload_intent_name="sink_workload_intent"
591 sink_workload_intent_data="$(cat <<EOF
594 "name": "${sink_workload_intent_name}",
595 "description": "description of ${sink_workload_intent_name}",
596 "userData1": "useer data 2 for ${sink_workload_intent_name}",
597 "userData2": "useer data 2 for ${sink_workload_intent_name}"
600 "application-name": "${sink_app_name}",
601 "workload-resource": "${release}-${sink_app_name}",
608 # define the network interface intents for the packetgen workload intent
609 packetgen_unprotected_interface_name="packetgen_unprotected_if"
610 packetgen_unprotected_interface_data="$(cat <<EOF
613 "name": "${packetgen_unprotected_interface_name}",
614 "description": "description of ${packetgen_unprotected_interface_name}",
615 "userData1": "useer data 2 for ${packetgen_unprotected_interface_name}",
616 "userData2": "useer data 2 for ${packetgen_unprotected_interface_name}"
620 "name": "${unprotectedprovidernetworkname}",
621 "defaultGateway": "false",
622 "ipAddress": "192.168.10.2"
628 packetgen_emco_interface_name="packetgen_emco_if"
629 packetgen_emco_interface_data="$(cat <<EOF
632 "name": "${packetgen_emco_interface_name}",
633 "description": "description of ${packetgen_emco_interface_name}",
634 "userData1": "useer data 2 for ${packetgen_emco_interface_name}",
635 "userData2": "useer data 2 for ${packetgen_emco_interface_name}"
639 "name": "${emcoprovidernetworkname}",
640 "defaultGateway": "false",
641 "ipAddress": "10.10.20.2"
647 # define the network interface intents for the firewall workload intent
648 firewall_unprotected_interface_name="firewall_unprotected_if"
649 firewall_unprotected_interface_data="$(cat <<EOF
652 "name": "${firewall_unprotected_interface_name}",
653 "description": "description of ${firewall_unprotected_interface_name}",
654 "userData1": "useer data 2 for ${firewall_unprotected_interface_name}",
655 "userData2": "useer data 2 for ${firewall_unprotected_interface_name}"
659 "name": "${unprotectedprovidernetworkname}",
660 "defaultGateway": "false",
661 "ipAddress": "192.168.10.3"
667 firewall_protected_interface_name="firewall_protected_if"
668 firewall_protected_interface_data="$(cat <<EOF
671 "name": "${firewall_protected_interface_name}",
672 "description": "description of ${firewall_protected_interface_name}",
673 "userData1": "useer data 2 for ${firewall_protected_interface_name}",
674 "userData2": "useer data 2 for ${firewall_protected_interface_name}"
678 "name": "${protectednetworkname}",
679 "defaultGateway": "false",
680 "ipAddress": "192.168.20.2"
686 firewall_emco_interface_name="firewall_emco_if"
687 firewall_emco_interface_data="$(cat <<EOF
690 "name": "${firewall_emco_interface_name}",
691 "description": "description of ${firewall_emco_interface_name}",
692 "userData1": "useer data 2 for ${firewall_emco_interface_name}",
693 "userData2": "useer data 2 for ${firewall_emco_interface_name}"
697 "name": "${emcoprovidernetworkname}",
698 "defaultGateway": "false",
699 "ipAddress": "10.10.20.3"
705 # define the network interface intents for the sink workload intent
706 sink_protected_interface_name="sink_protected_if"
707 sink_protected_interface_data="$(cat <<EOF
710 "name": "${sink_protected_interface_name}",
711 "description": "description of ${sink_protected_interface_name}",
712 "userData1": "useer data 2 for ${sink_protected_interface_name}",
713 "userData2": "useer data 2 for ${sink_protected_interface_name}"
717 "name": "${protectednetworkname}",
718 "defaultGateway": "false",
719 "ipAddress": "192.168.20.3"
725 sink_emco_interface_name="sink_emco_if"
726 sink_emco_interface_data="$(cat <<EOF
729 "name": "${sink_emco_interface_name}",
730 "description": "description of ${sink_emco_interface_name}",
731 "userData1": "useer data 2 for ${sink_emco_interface_name}",
732 "userData2": "useer data 2 for ${sink_emco_interface_name}"
736 "name": "${emcoprovidernetworkname}",
737 "defaultGateway": "false",
738 "ipAddress": "10.10.20.4"
744 # define the intents to be used by the group
745 deployment_intents_in_group_name="vfw_deploy_intents"
746 deployment_intents_in_group_data="$(cat <<EOF
749 "name":"${deployment_intents_in_group_name}",
750 "description":"descriptionf of ${deployment_intents_in_group_name}",
751 "userData1":"user data 1 for ${deployment_intents_in_group_name}",
752 "userData2":"user data 2 for ${deployment_intents_in_group_name}"
756 "genericPlacementIntent":"${generic_placement_intent_name}",
757 "ovnaction" : "${vfw_ovnaction_intent_name}"
764 function createOvnactionData {
765 call_api -d "${vfw_ovnaction_intent_data}" \
766 "${base_url_ovnaction}/projects/${projectname}/composite-apps/${vfw_compositeapp_name}/${vfw_compositeapp_version}/deployment-intent-groups/${deployment_intent_group_name}/network-controller-intent"
768 call_api -d "${packetgen_workload_intent_data}" \
769 "${base_url_ovnaction}/projects/${projectname}/composite-apps/${vfw_compositeapp_name}/${vfw_compositeapp_version}/deployment-intent-groups/${deployment_intent_group_name}/network-controller-intent/${vfw_ovnaction_intent_name}/workload-intents"
770 call_api -d "${firewall_workload_intent_data}" \
771 "${base_url_ovnaction}/projects/${projectname}/composite-apps/${vfw_compositeapp_name}/${vfw_compositeapp_version}/deployment-intent-groups/${deployment_intent_group_name}/network-controller-intent/${vfw_ovnaction_intent_name}/workload-intents"
772 call_api -d "${sink_workload_intent_data}" \
773 "${base_url_ovnaction}/projects/${projectname}/composite-apps/${vfw_compositeapp_name}/${vfw_compositeapp_version}/deployment-intent-groups/${deployment_intent_group_name}/network-controller-intent/${vfw_ovnaction_intent_name}/workload-intents"
775 call_api -d "${packetgen_emco_interface_data}" \
776 "${base_url_ovnaction}/projects/${projectname}/composite-apps/${vfw_compositeapp_name}/${vfw_compositeapp_version}/deployment-intent-groups/${deployment_intent_group_name}/network-controller-intent/${vfw_ovnaction_intent_name}/workload-intents/${packetgen_workload_intent_name}/interfaces"
777 call_api -d "${packetgen_unprotected_interface_data}" \
778 "${base_url_ovnaction}/projects/${projectname}/composite-apps/${vfw_compositeapp_name}/${vfw_compositeapp_version}/deployment-intent-groups/${deployment_intent_group_name}/network-controller-intent/${vfw_ovnaction_intent_name}/workload-intents/${packetgen_workload_intent_name}/interfaces"
780 call_api -d "${firewall_emco_interface_data}" \
781 "${base_url_ovnaction}/projects/${projectname}/composite-apps/${vfw_compositeapp_name}/${vfw_compositeapp_version}/deployment-intent-groups/${deployment_intent_group_name}/network-controller-intent/${vfw_ovnaction_intent_name}/workload-intents/${firewall_workload_intent_name}/interfaces"
782 call_api -d "${firewall_unprotected_interface_data}" \
783 "${base_url_ovnaction}/projects/${projectname}/composite-apps/${vfw_compositeapp_name}/${vfw_compositeapp_version}/deployment-intent-groups/${deployment_intent_group_name}/network-controller-intent/${vfw_ovnaction_intent_name}/workload-intents/${firewall_workload_intent_name}/interfaces"
784 call_api -d "${firewall_protected_interface_data}" \
785 "${base_url_ovnaction}/projects/${projectname}/composite-apps/${vfw_compositeapp_name}/${vfw_compositeapp_version}/deployment-intent-groups/${deployment_intent_group_name}/network-controller-intent/${vfw_ovnaction_intent_name}/workload-intents/${firewall_workload_intent_name}/interfaces"
787 call_api -d "${sink_emco_interface_data}" \
788 "${base_url_ovnaction}/projects/${projectname}/composite-apps/${vfw_compositeapp_name}/${vfw_compositeapp_version}/deployment-intent-groups/${deployment_intent_group_name}/network-controller-intent/${vfw_ovnaction_intent_name}/workload-intents/${sink_workload_intent_name}/interfaces"
789 call_api -d "${sink_protected_interface_data}" \
790 "${base_url_ovnaction}/projects/${projectname}/composite-apps/${vfw_compositeapp_name}/${vfw_compositeapp_version}/deployment-intent-groups/${deployment_intent_group_name}/network-controller-intent/${vfw_ovnaction_intent_name}/workload-intents/${sink_workload_intent_name}/interfaces"
793 function createOrchData {
794 print_msg "Creating controller entries"
795 call_api -d "${rsynccontrollerdata}" "${base_url_orchestrator}/controllers"
796 call_api -d "${ovnactioncontrollerdata}" "${base_url_orchestrator}/controllers"
798 print_msg "Creating project entry"
799 call_api -d "${projectdata}" "${base_url_orchestrator}/projects"
801 print_msg "Creating vfw composite app entry"
802 call_api -d "${vfw_compositeapp_data}" "${base_url_orchestrator}/projects/${projectname}/composite-apps"
804 print_msg "Adding vfw apps to the composite app"
805 call_api -F "metadata=${packetgen_app_data}" \
806 -F "file=@${packetgen_helm_chart}" \
807 "${base_url_orchestrator}/projects/${projectname}/composite-apps/${vfw_compositeapp_name}/${vfw_compositeapp_version}/apps"
808 call_api -F "metadata=${firewall_app_data}" \
809 -F "file=@${firewall_helm_chart}" \
810 "${base_url_orchestrator}/projects/${projectname}/composite-apps/${vfw_compositeapp_name}/${vfw_compositeapp_version}/apps"
811 call_api -F "metadata=${sink_app_data}" \
812 -F "file=@${sink_helm_chart}" \
813 "${base_url_orchestrator}/projects/${projectname}/composite-apps/${vfw_compositeapp_name}/${vfw_compositeapp_version}/apps"
815 print_msg "Creating vfw composite profile entry"
816 call_api -d "${vfw_composite_profile_data}" "${base_url_orchestrator}/projects/${projectname}/composite-apps/${vfw_compositeapp_name}/${vfw_compositeapp_version}/composite-profiles"
818 print_msg "Adding vfw app profiles to the composite profile"
819 call_api -F "metadata=${packetgen_profile_data}" \
820 -F "file=@${packetgen_profile_file}" \
821 "${base_url_orchestrator}/projects/${projectname}/composite-apps/${vfw_compositeapp_name}/${vfw_compositeapp_version}/composite-profiles/${vfw_composite_profile_name}/profiles"
822 call_api -F "metadata=${firewall_profile_data}" \
823 -F "file=@${firewall_profile_file}" \
824 "${base_url_orchestrator}/projects/${projectname}/composite-apps/${vfw_compositeapp_name}/${vfw_compositeapp_version}/composite-profiles/${vfw_composite_profile_name}/profiles"
825 call_api -F "metadata=${sink_profile_data}" \
826 -F "file=@${sink_profile_file}" \
827 "${base_url_orchestrator}/projects/${projectname}/composite-apps/${vfw_compositeapp_name}/${vfw_compositeapp_version}/composite-profiles/${vfw_composite_profile_name}/profiles"
829 print_msg "Create the deployment intent group"
830 call_api -d "${deployment_intent_group_data}" \
831 "${base_url_orchestrator}/projects/${projectname}/composite-apps/${vfw_compositeapp_name}/${vfw_compositeapp_version}/deployment-intent-groups"
832 call_api -d "${deployment_intents_in_group_data}" \
833 "${base_url_orchestrator}/projects/${projectname}/composite-apps/${vfw_compositeapp_name}/${vfw_compositeapp_version}/deployment-intent-groups/${deployment_intent_group_name}/intents"
837 print_msg "Create the generic placement intent"
838 call_api -d "${generic_placement_intent_data}" \
839 "${base_url_orchestrator}/projects/${projectname}/composite-apps/${vfw_compositeapp_name}/${vfw_compositeapp_version}/deployment-intent-groups/${deployment_intent_group_name}/generic-placement-intents"
841 print_msg "Add the vfw app placement intents to the generic placement intent"
842 call_api -d "${packetgen_placement_intent_data}" \
843 "${base_url_orchestrator}/projects/${projectname}/composite-apps/${vfw_compositeapp_name}/${vfw_compositeapp_version}/deployment-intent-groups/${deployment_intent_group_name}/generic-placement-intents/${generic_placement_intent_name}/app-intents"
844 call_api -d "${firewall_placement_intent_data}" \
845 "${base_url_orchestrator}/projects/${projectname}/composite-apps/${vfw_compositeapp_name}/${vfw_compositeapp_version}/deployment-intent-groups/${deployment_intent_group_name}/generic-placement-intents/${generic_placement_intent_name}/app-intents"
846 call_api -d "${sink_placement_intent_data}" \
847 "${base_url_orchestrator}/projects/${projectname}/composite-apps/${vfw_compositeapp_name}/${vfw_compositeapp_version}/deployment-intent-groups/${deployment_intent_group_name}/generic-placement-intents/${generic_placement_intent_name}/app-intents"
850 function createNcmData {
851 print_msg "Creating cluster provider ${clusterprovidername}"
852 call_api -d "${clusterproviderdata}" "${base_url_clm}/cluster-providers"
854 for name in $(cluster_names); do
855 metadata=$(cluster_metadata "$name")
856 file=$(cluster_file "$name")
857 print_msg "Creating cluster ${name}"
858 call_api -H "Content-Type: multipart/form-data" -F "metadata=$metadata" -F "file=@$file" "${base_url_clm}/cluster-providers/${clusterprovidername}/clusters"
859 call_api -d "${labeldata}" "${base_url_clm}/cluster-providers/${clusterprovidername}/clusters/${name}/labels"
861 print_msg "Creating provider network and network intents for ${name}"
862 call_api -d "${emcoprovidernetworkdata}" "${base_url_ncm}/cluster-providers/${clusterprovidername}/clusters/${name}/provider-networks"
863 call_api -d "${unprotectedprovidernetworkdata}" "${base_url_ncm}/cluster-providers/${clusterprovidername}/clusters/${name}/provider-networks"
864 call_api -d "${protectednetworkdata}" "${base_url_ncm}/cluster-providers/${clusterprovidername}/clusters/${name}/networks"
868 function createData {
871 createOrchData # this will call createOvnactionData
874 function getOvnactionData {
875 call_api_nox "${base_url_ovnaction}/projects/${projectname}/composite-apps/${vfw_compositeapp_name}/${vfw_compositeapp_version}/deployment-intent-groups/${deployment_intent_group_name}/network-controller-intent/${vfw_ovnaction_intent_name}"
877 call_api_nox "${base_url_ovnaction}/projects/${projectname}/composite-apps/${vfw_compositeapp_name}/${vfw_compositeapp_version}/deployment-intent-groups/${deployment_intent_group_name}/network-controller-intent/${vfw_ovnaction_intent_name}/workload-intents/${packetgen_workload_intent_name}"
878 call_api_nox "${base_url_ovnaction}/projects/${projectname}/composite-apps/${vfw_compositeapp_name}/${vfw_compositeapp_version}/deployment-intent-groups/${deployment_intent_group_name}/network-controller-intent/${vfw_ovnaction_intent_name}/workload-intents/${firewall_workload_intent_name}"
879 call_api_nox "${base_url_ovnaction}/projects/${projectname}/composite-apps/${vfw_compositeapp_name}/${vfw_compositeapp_version}/deployment-intent-groups/${deployment_intent_group_name}/network-controller-intent/${vfw_ovnaction_intent_name}/workload-intents/${sink_workload_intent_name}"
881 call_api_nox "${base_url_ovnaction}/projects/${projectname}/composite-apps/${vfw_compositeapp_name}/${vfw_compositeapp_version}/deployment-intent-groups/${deployment_intent_group_name}/network-controller-intent/${vfw_ovnaction_intent_name}/workload-intents/${packetgen_workload_intent_name}/interfaces/${packetgen_emco_interface_name}"
882 call_api_nox "${base_url_ovnaction}/projects/${projectname}/composite-apps/${vfw_compositeapp_name}/${vfw_compositeapp_version}/deployment-intent-groups/${deployment_intent_group_name}/network-controller-intent/${vfw_ovnaction_intent_name}/workload-intents/${packetgen_workload_intent_name}/interfaces/${packetgen_unprotected_interface_name}"
884 call_api_nox "${base_url_ovnaction}/projects/${projectname}/composite-apps/${vfw_compositeapp_name}/${vfw_compositeapp_version}/deployment-intent-groups/${deployment_intent_group_name}/network-controller-intent/${vfw_ovnaction_intent_name}/workload-intents/${firewall_workload_intent_name}/interfaces/${firewall_emco_interface_name}"
885 call_api_nox "${base_url_ovnaction}/projects/${projectname}/composite-apps/${vfw_compositeapp_name}/${vfw_compositeapp_version}/deployment-intent-groups/${deployment_intent_group_name}/network-controller-intent/${vfw_ovnaction_intent_name}/workload-intents/${firewall_workload_intent_name}/interfaces/${firewall_unprotected_interface_name}"
886 call_api_nox "${base_url_ovnaction}/projects/${projectname}/composite-apps/${vfw_compositeapp_name}/${vfw_compositeapp_version}/deployment-intent-groups/${deployment_intent_group_name}/network-controller-intent/${vfw_ovnaction_intent_name}/workload-intents/${firewall_workload_intent_name}/interfaces/${firewall_protected_interface_name}"
888 call_api_nox "${base_url_ovnaction}/projects/${projectname}/composite-apps/${vfw_compositeapp_name}/${vfw_compositeapp_version}/deployment-intent-groups/${deployment_intent_group_name}/network-controller-intent/${vfw_ovnaction_intent_name}/workload-intents/${sink_workload_intent_name}/interfaces/${sink_emco_interface_name}"
889 call_api_nox "${base_url_ovnaction}/projects/${projectname}/composite-apps/${vfw_compositeapp_name}/${vfw_compositeapp_version}/deployment-intent-groups/${deployment_intent_group_name}/network-controller-intent/${vfw_ovnaction_intent_name}/workload-intents/${sink_workload_intent_name}/interfaces/${sink_protected_interface_name}"
892 function getOrchData {
893 call_api_nox "${base_url_orchestrator}/controllers/${rsynccontrollername}"
894 call_api_nox "${base_url_orchestrator}/controllers/${ovnactioncontrollername}"
896 call_api_nox "${base_url_orchestrator}/projects/${projectname}"
897 call_api_nox "${base_url_orchestrator}/projects/${projectname}/composite-apps/${vfw_compositeapp_name}/${vfw_compositeapp_version}"
899 call_api_nox -H "Accept: application/json" "${base_url_orchestrator}/projects/${projectname}/composite-apps/${vfw_compositeapp_name}/${vfw_compositeapp_version}/apps/${packetgen_app_name}"
900 call_api_nox -H "Accept: application/json" "${base_url_orchestrator}/projects/${projectname}/composite-apps/${vfw_compositeapp_name}/${vfw_compositeapp_version}/apps/${firewall_app_name}"
901 call_api_nox -H "Accept: application/json" "${base_url_orchestrator}/projects/${projectname}/composite-apps/${vfw_compositeapp_name}/${vfw_compositeapp_version}/apps/${sink_app_name}"
903 call_api_nox "${base_url_orchestrator}/projects/${projectname}/composite-apps/${vfw_compositeapp_name}/${vfw_compositeapp_version}/composite-profiles/${vfw_composite_profile_name}"
905 call_api_nox -H "Accept: application/json" "${base_url_orchestrator}/projects/${projectname}/composite-apps/${vfw_compositeapp_name}/${vfw_compositeapp_version}/composite-profiles/${vfw_composite_profile_name}/profiles/${packetgen_profile_name}"
906 call_api_nox -H "Accept: application/json" "${base_url_orchestrator}/projects/${projectname}/composite-apps/${vfw_compositeapp_name}/${vfw_compositeapp_version}/composite-profiles/${vfw_composite_profile_name}/profiles/${firewall_profile_name}"
907 call_api_nox -H "Accept: application/json" "${base_url_orchestrator}/projects/${projectname}/composite-apps/${vfw_compositeapp_name}/${vfw_compositeapp_version}/composite-profiles/${vfw_composite_profile_name}/profiles/${sink_profile_name}"
909 call_api_nox "${base_url_orchestrator}/projects/${projectname}/composite-apps/${vfw_compositeapp_name}/${vfw_compositeapp_version}/deployment-intent-groups/${deployment_intent_group_name}/generic-placement-intents/${generic_placement_intent_name}"
911 call_api_nox "${base_url_orchestrator}/projects/${projectname}/composite-apps/${vfw_compositeapp_name}/${vfw_compositeapp_version}/deployment-intent-groups/${deployment_intent_group_name}/generic-placement-intents/${generic_placement_intent_name}/app-intents/${packetgen_placement_intent_name}"
912 call_api_nox "${base_url_orchestrator}/projects/${projectname}/composite-apps/${vfw_compositeapp_name}/${vfw_compositeapp_version}/deployment-intent-groups/${deployment_intent_group_name}/generic-placement-intents/${generic_placement_intent_name}/app-intents/${firewall_placement_intent_name}"
913 call_api_nox "${base_url_orchestrator}/projects/${projectname}/composite-apps/${vfw_compositeapp_name}/${vfw_compositeapp_version}/deployment-intent-groups/${deployment_intent_group_name}/generic-placement-intents/${generic_placement_intent_name}/app-intents/${sink_placement_intent_name}"
915 call_api_nox "${base_url_orchestrator}/projects/${projectname}/composite-apps/${vfw_compositeapp_name}/${vfw_compositeapp_version}/deployment-intent-groups/${deployment_intent_group_name}"
916 call_api_nox "${base_url_orchestrator}/projects/${projectname}/composite-apps/${vfw_compositeapp_name}/${vfw_compositeapp_version}/deployment-intent-groups/${deployment_intent_group_name}/intents/${deployment_intents_in_group_name}"
919 function getNcmData {
920 call_api_nox "${base_url_clm}/cluster-providers/${clusterprovidername}"
921 call_api_nox "${base_url_clm}/cluster-providers/${clusterprovidername}/clusters?label=${labelname}"
923 for name in $(cluster_names); do
924 call_api_nox -H "Accept: application/json" "${base_url_clm}/cluster-providers/${clusterprovidername}/clusters/${name}"
925 call_api_nox "${base_url_clm}/cluster-providers/${clusterprovidername}/clusters/${name}/labels/${labelname}"
926 call_api_nox "${base_url_ncm}/cluster-providers/${clusterprovidername}/clusters/${name}/provider-networks/${emcoprovidernetworkname}"
927 call_api_nox "${base_url_ncm}/cluster-providers/${clusterprovidername}/clusters/${name}/provider-networks/${unprotectedprovidernetworkname}"
928 call_api_nox "${base_url_ncm}/cluster-providers/${clusterprovidername}/clusters/${name}/networks/${protectednetworkname}"
938 function deleteOvnactionData {
939 delete_resource "${base_url_ovnaction}/projects/${projectname}/composite-apps/${vfw_compositeapp_name}/${vfw_compositeapp_version}/deployment-intent-groups/${deployment_intent_group_name}/network-controller-intent/${vfw_ovnaction_intent_name}/workload-intents/${sink_workload_intent_name}/interfaces/${sink_protected_interface_name}"
940 delete_resource "${base_url_ovnaction}/projects/${projectname}/composite-apps/${vfw_compositeapp_name}/${vfw_compositeapp_version}/deployment-intent-groups/${deployment_intent_group_name}/network-controller-intent/${vfw_ovnaction_intent_name}/workload-intents/${sink_workload_intent_name}/interfaces/${sink_emco_interface_name}"
941 delete_resource "${base_url_ovnaction}/projects/${projectname}/composite-apps/${vfw_compositeapp_name}/${vfw_compositeapp_version}/deployment-intent-groups/${deployment_intent_group_name}/network-controller-intent/${vfw_ovnaction_intent_name}/workload-intents/${firewall_workload_intent_name}/interfaces/${firewall_protected_interface_name}"
942 delete_resource "${base_url_ovnaction}/projects/${projectname}/composite-apps/${vfw_compositeapp_name}/${vfw_compositeapp_version}/deployment-intent-groups/${deployment_intent_group_name}/network-controller-intent/${vfw_ovnaction_intent_name}/workload-intents/${firewall_workload_intent_name}/interfaces/${firewall_unprotected_interface_name}"
943 delete_resource "${base_url_ovnaction}/projects/${projectname}/composite-apps/${vfw_compositeapp_name}/${vfw_compositeapp_version}/deployment-intent-groups/${deployment_intent_group_name}/network-controller-intent/${vfw_ovnaction_intent_name}/workload-intents/${firewall_workload_intent_name}/interfaces/${firewall_emco_interface_name}"
944 delete_resource "${base_url_ovnaction}/projects/${projectname}/composite-apps/${vfw_compositeapp_name}/${vfw_compositeapp_version}/deployment-intent-groups/${deployment_intent_group_name}/network-controller-intent/${vfw_ovnaction_intent_name}/workload-intents/${packetgen_workload_intent_name}/interfaces/${packetgen_unprotected_interface_name}"
945 delete_resource "${base_url_ovnaction}/projects/${projectname}/composite-apps/${vfw_compositeapp_name}/${vfw_compositeapp_version}/deployment-intent-groups/${deployment_intent_group_name}/network-controller-intent/${vfw_ovnaction_intent_name}/workload-intents/${packetgen_workload_intent_name}/interfaces/${packetgen_emco_interface_name}"
946 delete_resource "${base_url_ovnaction}/projects/${projectname}/composite-apps/${vfw_compositeapp_name}/${vfw_compositeapp_version}/deployment-intent-groups/${deployment_intent_group_name}/network-controller-intent/${vfw_ovnaction_intent_name}/workload-intents/${sink_workload_intent_name}"
947 delete_resource "${base_url_ovnaction}/projects/${projectname}/composite-apps/${vfw_compositeapp_name}/${vfw_compositeapp_version}/deployment-intent-groups/${deployment_intent_group_name}/network-controller-intent/${vfw_ovnaction_intent_name}/workload-intents/${firewall_workload_intent_name}"
948 delete_resource "${base_url_ovnaction}/projects/${projectname}/composite-apps/${vfw_compositeapp_name}/${vfw_compositeapp_version}/deployment-intent-groups/${deployment_intent_group_name}/network-controller-intent/${vfw_ovnaction_intent_name}/workload-intents/${packetgen_workload_intent_name}"
949 delete_resource "${base_url_ovnaction}/projects/${projectname}/composite-apps/${vfw_compositeapp_name}/${vfw_compositeapp_version}/deployment-intent-groups/${deployment_intent_group_name}/network-controller-intent/${vfw_ovnaction_intent_name}"
952 function deleteOrchData {
953 delete_resource "${base_url_orchestrator}/controllers/${rsynccontrollername}"
954 delete_resource "${base_url_orchestrator}/controllers/${ovnactioncontrollername}"
958 delete_resource "${base_url_orchestrator}/projects/${projectname}/composite-apps/${vfw_compositeapp_name}/${vfw_compositeapp_version}/deployment-intent-groups/${deployment_intent_group_name}/generic-placement-intents/${generic_placement_intent_name}/app-intents/${sink_placement_intent_name}"
959 delete_resource "${base_url_orchestrator}/projects/${projectname}/composite-apps/${vfw_compositeapp_name}/${vfw_compositeapp_version}/deployment-intent-groups/${deployment_intent_group_name}/generic-placement-intents/${generic_placement_intent_name}/app-intents/${firewall_placement_intent_name}"
960 delete_resource "${base_url_orchestrator}/projects/${projectname}/composite-apps/${vfw_compositeapp_name}/${vfw_compositeapp_version}/deployment-intent-groups/${deployment_intent_group_name}/generic-placement-intents/${generic_placement_intent_name}/app-intents/${packetgen_placement_intent_name}"
961 delete_resource "${base_url_orchestrator}/projects/${projectname}/composite-apps/${vfw_compositeapp_name}/${vfw_compositeapp_version}/deployment-intent-groups/${deployment_intent_group_name}/generic-placement-intents/${generic_placement_intent_name}"
963 delete_resource "${base_url_orchestrator}/projects/${projectname}/composite-apps/${vfw_compositeapp_name}/${vfw_compositeapp_version}/deployment-intent-groups/${deployment_intent_group_name}/intents/${deployment_intents_in_group_name}"
964 delete_resource "${base_url_orchestrator}/projects/${projectname}/composite-apps/${vfw_compositeapp_name}/${vfw_compositeapp_version}/deployment-intent-groups/${deployment_intent_group_name}"
966 delete_resource "${base_url_orchestrator}/projects/${projectname}/composite-apps/${vfw_compositeapp_name}/${vfw_compositeapp_version}/composite-profiles/${vfw_composite_profile_name}/profiles/${sink_profile_name}"
967 delete_resource "${base_url_orchestrator}/projects/${projectname}/composite-apps/${vfw_compositeapp_name}/${vfw_compositeapp_version}/composite-profiles/${vfw_composite_profile_name}/profiles/${firewall_profile_name}"
968 delete_resource "${base_url_orchestrator}/projects/${projectname}/composite-apps/${vfw_compositeapp_name}/${vfw_compositeapp_version}/composite-profiles/${vfw_composite_profile_name}/profiles/${packetgen_profile_name}"
969 delete_resource "${base_url_orchestrator}/projects/${projectname}/composite-apps/${vfw_compositeapp_name}/${vfw_compositeapp_version}/composite-profiles/${vfw_composite_profile_name}"
971 delete_resource "${base_url_orchestrator}/projects/${projectname}/composite-apps/${vfw_compositeapp_name}/${vfw_compositeapp_version}/apps/${sink_app_name}"
972 delete_resource "${base_url_orchestrator}/projects/${projectname}/composite-apps/${vfw_compositeapp_name}/${vfw_compositeapp_version}/apps/${firewall_app_name}"
973 delete_resource "${base_url_orchestrator}/projects/${projectname}/composite-apps/${vfw_compositeapp_name}/${vfw_compositeapp_version}/apps/${packetgen_app_name}"
975 delete_resource "${base_url_orchestrator}/projects/${projectname}/composite-apps/${vfw_compositeapp_name}/${vfw_compositeapp_version}"
976 delete_resource "${base_url_orchestrator}/projects/${projectname}"
979 function deleteNcmData {
980 for name in $(cluster_names); do
981 delete_resource "${base_url_ncm}/cluster-providers/${clusterprovidername}/clusters/${name}/networks/${protectednetworkname}"
982 delete_resource "${base_url_ncm}/cluster-providers/${clusterprovidername}/clusters/${name}/provider-networks/${unprotectedprovidernetworkname}"
983 delete_resource "${base_url_ncm}/cluster-providers/${clusterprovidername}/clusters/${name}/provider-networks/${emcoprovidernetworkname}"
984 delete_resource "${base_url_clm}/cluster-providers/${clusterprovidername}/clusters/${name}/labels/${labelname}"
985 delete_resource "${base_url_clm}/cluster-providers/${clusterprovidername}/clusters/${name}"
988 delete_resource "${base_url_clm}/cluster-providers/${clusterprovidername}"
991 function deleteData {
996 # apply the network and providernetwork to an appcontext and instantiate with rsync
997 function applyNcmData {
998 for name in $(cluster_names); do
999 call_api -d "{ }" "${base_url_ncm}/cluster-providers/${clusterprovidername}/clusters/${name}/apply"
1003 # deletes the network resources from the clusters and the associated appcontext entries
1004 function terminateNcmData {
1005 for name in $(cluster_names); do
1006 call_api -d "{ }" "${base_url_ncm}/cluster-providers/${clusterprovidername}/clusters/${name}/terminate"
1010 # terminates the vfw resources
1011 function terminateOrchData {
1012 call_api -d "{ }" "${base_url_orchestrator}/projects/${projectname}/composite-apps/${vfw_compositeapp_name}/${vfw_compositeapp_version}/deployment-intent-groups/${deployment_intent_group_name}/terminate"
1015 # terminates the vfw and ncm resources
1016 function terminateVfw {
1021 function instantiateVfw {
1022 call_api -d "{ }" "${base_url_orchestrator}/projects/${projectname}/composite-apps/${vfw_compositeapp_name}/${vfw_compositeapp_version}/deployment-intent-groups/${deployment_intent_group_name}/approve"
1023 call_api -d "{ }" "${base_url_orchestrator}/projects/${projectname}/composite-apps/${vfw_compositeapp_name}/${vfw_compositeapp_version}/deployment-intent-groups/${deployment_intent_group_name}/instantiate"
1026 function statusVfw {
1027 call_api "${base_url_orchestrator}/projects/${projectname}/composite-apps/${vfw_compositeapp_name}/${vfw_compositeapp_version}/deployment-intent-groups/${deployment_intent_group_name}/status"
1030 function waitForVfw {
1031 wait_for_deployment_status "${base_url_orchestrator}/projects/${projectname}/composite-apps/${vfw_compositeapp_name}/${vfw_compositeapp_version}/deployment-intent-groups/${deployment_intent_group_name}/status" $1
1035 echo "Usage: $0 create|get|delete|apply|terminate|instantiate"
1036 echo " create - creates all ncm, ovnaction, clm resources needed for vfw"
1037 echo " get - queries all resources in ncm, ovnaction, clm resources created for vfw"
1038 echo " delete - deletes all resources in ncm, ovnaction, clm resources created for vfw"
1039 echo " apply - applys the network intents - e.g. networks created in ncm"
1040 echo " instantiate - approves and instantiates the composite app via the generic deployment intent"
1041 echo " status - get status of deployed resources"
1042 echo " terminate - remove the vFW composite app resources and network resources create by 'instantiate' and 'apply'"
1044 echo " a reasonable test sequence:"
1047 echo " 3. instantiate"
1049 echo " 5. terminate"
1055 if [[ "$#" -gt 0 ]] ; then
1057 "create" ) createData ;;
1059 "apply" ) applyNcmData ;;
1060 "instantiate" ) instantiateVfw ;;
1061 "status" ) statusVfw ;;
1062 "wait" ) waitForVfw "Instantiated" ;;
1063 "terminate" ) terminateVfw ;;
1064 "delete" ) deleteData ;;
1072 print_msg "[BEGIN] Basic checks for instantiated resource"
1073 print_msg "Wait for deployment to be instantiated"
1074 waitForVfw "Instantiated"
1075 for name in $(cluster_names); do
1076 print_msg "Check that networks were created on cluster $name"
1077 file=$(cluster_file "$name")
1078 KUBECONFIG=$file kubectl get network protected-private-net
1079 KUBECONFIG=$file kubectl get providernetwork emco-private-net
1080 KUBECONFIG=$file kubectl get providernetwork unprotected-private-net
1082 for name in $(cluster_names); do
1083 print_msg "Wait for all pods to start on cluster $name"
1084 file=$(cluster_file "$name")
1085 KUBECONFIG=$file wait_for_pod -l app=sink
1086 KUBECONFIG=$file wait_for_pod -l app=firewall
1087 KUBECONFIG=$file wait_for_pod -l app=packetgen
1089 # TODO: Provide some health check to verify vFW work
1090 print_msg "Not waiting for vFW to fully install as no further checks are implemented in testcase"
1091 #print_msg "Waiting 8minutes for vFW installation"
1093 print_msg "[END] Basic checks for instantiated resource"
1096 waitForVfw "Terminated"