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 packetgen_deployment_name=packetgen
16 sink_deployment_name=sink
17 firewall_deployment_name=firewall
18 image_name=virtlet.cloud/ubuntu/16.04
19 multus_deployment_name=multus-deployment
20 virtlet_image=virtlet.cloud/fedora
21 virtlet_deployment_name=virtlet-deployment
22 plugin_deployment_name=plugin-deployment
23 plugin_service_name=plugin-service
24 ovn4nfv_deployment_name=ovn4nfv-deployment
25 onap_private_net=onap-private-net
26 unprotected_private_net=unprotected-private-net
27 protected_private_net=protected-private-net
28 ovn_multus_network_name=ovn-networkobj
29 rbd_metadata=rbd_metatada.json
30 rbp_metadata=rbp_metatada.json
31 rbp_instance=rbp_instance.json
34 demo_artifacts_version=1.5.0
35 vfw_private_ip_0='192.168.10.3'
36 vfw_private_ip_1='192.168.20.2'
37 vfw_private_ip_2='10.10.100.3'
38 vpg_private_ip_0='192.168.10.2'
39 vpg_private_ip_1='10.0.100.2'
40 vsn_private_ip_0='192.168.20.3'
41 vsn_private_ip_1='10.10.100.4'
42 dcae_collector_ip='10.0.4.1'
43 dcae_collector_port='8081'
44 protected_net_gw='192.168.20.100'
45 protected_net_cidr='192.168.20.0/24'
46 protected_private_net_cidr='192.168.10.0/24'
47 onap_private_net_cidr='10.10.0.0/16'
48 sink_ipaddr='192.168.20.250'
50 # populate_CSAR_containers_vFW() - This function creates the content of CSAR file
51 # required for vFirewal using only containers
52 function populate_CSAR_containers_vFW {
56 pushd ${CSAR_DIR}/${csar_id}
58 cat << META > metadata.yaml
61 - $unprotected_private_net.yaml
62 - $protected_private_net.yaml
63 - $onap_private_net.yaml
65 - $packetgen_deployment_name.yaml
66 - $firewall_deployment_name.yaml
67 - $sink_deployment_name.yaml
70 cat << NET > $unprotected_private_net.yaml
71 apiVersion: "k8s.cni.cncf.io/v1"
72 kind: NetworkAttachmentDefinition
74 name: $unprotected_private_net
77 "name": "unprotected",
81 "subnet": "$protected_private_net_cidr"
86 cat << NET > $protected_private_net.yaml
87 apiVersion: "k8s.cni.cncf.io/v1"
88 kind: NetworkAttachmentDefinition
90 name: $protected_private_net
97 "subnet": "$protected_net_cidr"
102 cat << NET > $onap_private_net.yaml
103 apiVersion: "k8s.cni.cncf.io/v1"
104 kind: NetworkAttachmentDefinition
106 name: $onap_private_net
112 "type": "host-local",
113 "subnet": "$onap_private_net_cidr"
118 cat << DEPLOYMENT > $packetgen_deployment_name.yaml
122 name: $packetgen_deployment_name
135 k8s.v1.cni.cncf.io/networks: '[
136 { "name": "$unprotected_private_net", "interfaceRequest": "eth1" },
137 { "name": "$onap_private_net", "interfaceRequest": "eth2" }
141 - name: $packetgen_deployment_name
142 image: electrocucaracha/packetgen
143 imagePullPolicy: IfNotPresent
151 cat << DEPLOYMENT > $firewall_deployment_name.yaml
155 name: $firewall_deployment_name
168 k8s.v1.cni.cncf.io/networks: '[
169 { "name": "$unprotected_private_net", "interfaceRequest": "eth1" },
170 { "name": "$protected_private_net", "interfaceRequest": "eth2" },
171 { "name": "$onap_private_net", "interfaceRequest": "eth3" }
175 - name: $firewall_deployment_name
176 image: electrocucaracha/firewall
177 imagePullPolicy: IfNotPresent
182 cat << DEPLOYMENT > $sink_deployment_name.yaml
186 name: $sink_deployment_name
201 k8s.v1.cni.cncf.io/networks: '[
202 { "name": "$protected_private_net", "interfaceRequest": "eth1" },
203 { "name": "$onap_private_net", "interfaceRequest": "eth2" }
207 - name: $sink_deployment_name
208 image: electrocucaracha/sink
209 imagePullPolicy: IfNotPresent
215 image: electrocucaracha/darkstat
216 imagePullPolicy: IfNotPresent
225 # populate_CSAR_vms_containers_vFW() - This function creates the content of CSAR file
226 # required for vFirewal using an hybrid combination between virtual machines and
228 function populate_CSAR_vms_containers_vFW {
230 ssh_key=$(cat $HOME/.ssh/id_rsa.pub)
232 _checks_args $csar_id
233 pushd ${CSAR_DIR}/${csar_id}
235 cat << META > metadata.yaml
238 - onap-ovn4nfvk8s-network.yaml
240 - $unprotected_private_net.yaml
241 - $protected_private_net.yaml
242 - $onap_private_net.yaml
244 - $packetgen_deployment_name.yaml
245 - $firewall_deployment_name.yaml
246 - $sink_deployment_name.yaml
251 cat << SERVICE > sink-service.yaml
266 cat << MULTUS_NET > onap-ovn4nfvk8s-network.yaml
267 apiVersion: "k8s.cni.cncf.io/v1"
268 kind: NetworkAttachmentDefinition
270 name: $ovn_multus_network_name
273 "cniVersion": "0.3.1",
274 "name": "ovn4nfv-k8s-plugin",
275 "type": "ovn4nfvk8s-cni"
279 cat << NET > $unprotected_private_net.yaml
280 apiVersion: k8s.plugin.opnfv.org/v1alpha1
284 name: $unprotected_private_net
288 - subnet: $protected_private_net_cidr
290 gateway: 192.168.10.1/24
293 cat << NET > $protected_private_net.yaml
294 apiVersion: k8s.plugin.opnfv.org/v1alpha1
297 name: $protected_private_net
301 - subnet: $protected_net_cidr
303 gateway: $protected_net_gw/24
306 cat << NET > $onap_private_net.yaml
307 apiVersion: k8s.plugin.opnfv.org/v1alpha1
310 name: $onap_private_net
314 - subnet: $onap_private_net_cidr
316 gateway: 10.10.0.1/16
321 - export demo_artifacts_version=$demo_artifacts_version
322 - export vfw_private_ip_0=$vfw_private_ip_0
323 - export vsn_private_ip_0=$vsn_private_ip_0
324 - export protected_net_cidr=$protected_net_cidr
325 - export dcae_collector_ip=$dcae_collector_ip
326 - export dcae_collector_port=$dcae_collector_port
327 - export protected_net_gw=$protected_net_gw
328 - export protected_private_net_cidr=$protected_private_net_cidr
329 - export sink_ipaddr=$sink_ipaddr
331 if [[ -n "${http_proxy+x}" ]]; then
333 http_proxy: $http_proxy"
335 - export http_proxy=$http_proxy"
337 if [[ -n "${https_proxy+x}" ]]; then
339 https_proxy: $https_proxy"
341 - export https_proxy=$https_proxy"
343 if [[ -n "${no_proxy+x}" ]]; then
345 - export no_proxy=$no_proxy"
348 cat << DEPLOYMENT > $packetgen_deployment_name.yaml
352 name: $packetgen_deployment_name
365 VirtletLibvirtCPUSetting: |
367 VirtletCloudInitUserData: |
374 sudo: ALL=(ALL) NOPASSWD:ALL
376 # the password is "admin"
377 passwd: "\$6\$rounds=4096\$QA5OCKHTE41\$jRACivoPMJcOjLRgxl3t.AMfU7LhCFwOWv2z66CQX.TSxBy50JoYtycJXSPr2JceG.8Tq/82QN9QYt3euYEZW/"
383 - wget -O - https://git.onap.org/multicloud/k8s/plain/kud/tests/vFW/$packetgen_deployment_name | sudo -E bash
386 VirtletRootVolumeSize: 5Gi
387 k8s.v1.cni.cncf.io/networks: '[{ "name": "$ovn_multus_network_name"}]'
388 k8s.plugin.opnfv.org/nfn-network: '{ "type": "ovn4nfv", "interface": [
389 { "name": "$unprotected_private_net", "ipAddress": "$vpg_private_ip_0", "interface": "eth1" , "defaultGateway": "false"},
390 { "name": "$onap_private_net", "ipAddress": "$vpg_private_ip_1", "interface": "eth2" , "defaultGateway": "false"}
392 kubernetes.io/target-runtime: virtlet.cloud
396 requiredDuringSchedulingIgnoredDuringExecution:
404 - name: $packetgen_deployment_name
406 imagePullPolicy: IfNotPresent
410 - containerPort: 8183
416 cat << DEPLOYMENT > $firewall_deployment_name.yaml
420 name: $firewall_deployment_name
433 VirtletLibvirtCPUSetting: |
435 VirtletCloudInitUserData: |
442 sudo: ALL=(ALL) NOPASSWD:ALL
444 # the password is "admin"
445 passwd: "\$6\$rounds=4096\$QA5OCKHTE41\$jRACivoPMJcOjLRgxl3t.AMfU7LhCFwOWv2z66CQX.TSxBy50JoYtycJXSPr2JceG.8Tq/82QN9QYt3euYEZW/"
451 - wget -O - https://git.onap.org/multicloud/k8s/plain/kud/tests/vFW/$firewall_deployment_name | sudo -E bash
454 VirtletRootVolumeSize: 5Gi
455 k8s.v1.cni.cncf.io/networks: '[{ "name": "$ovn_multus_network_name"}]'
456 k8s.plugin.opnfv.org/nfn-network: '{ "type": "ovn4nfv", "interface": [
457 { "name": "$unprotected_private_net", "ipAddress": "$vfw_private_ip_0", "interface": "eth1" , "defaultGateway": "false"},
458 { "name": "$protected_private_net", "ipAddress": "$vfw_private_ip_1", "interface": "eth2", "defaultGateway": "false" },
459 { "name": "$onap_private_net", "ipAddress": "$vfw_private_ip_2", "interface": "eth3" , "defaultGateway": "false"}
461 kubernetes.io/target-runtime: virtlet.cloud
465 requiredDuringSchedulingIgnoredDuringExecution:
473 - name: $firewall_deployment_name
475 imagePullPolicy: IfNotPresent
483 cat << CONFIGMAP > sink_configmap.yaml
489 protected_net_gw: $protected_net_gw
490 protected_private_net_cidr: $protected_private_net_cidr
493 cat << DEPLOYMENT > $sink_deployment_name.yaml
497 name: $sink_deployment_name
512 k8s.v1.cni.cncf.io/networks: '[{ "name": "$ovn_multus_network_name"}]'
513 k8s.plugin.opnfv.org/nfn-network: '{ "type": "ovn4nfv", "interface": [
514 { "name": "$protected_private_net", "ipAddress": "$vsn_private_ip_0", "interface": "eth1", "defaultGateway": "false" },
515 { "name": "$onap_private_net", "ipAddress": "$vsn_private_ip_1", "interface": "eth2" , "defaultGateway": "false"}
519 - name: $sink_deployment_name
520 image: rtsood/onap-vfw-demo-sink:0.2.0
524 imagePullPolicy: Always
531 image: electrocucaracha/darkstat
532 imagePullPolicy: IfNotPresent
541 # populate_CSAR_vms_vFW() - This function creates the content of CSAR file
542 # required for vFirewal using only virtual machines
543 function populate_CSAR_vms_vFW {
545 ssh_key=$(cat $HOME/.ssh/id_rsa.pub)
547 _checks_args $csar_id
548 pushd ${CSAR_DIR}/${csar_id}
550 cat << META > metadata.yaml
553 - $unprotected_private_net.yaml
554 - $protected_private_net.yaml
555 - $onap_private_net.yaml
557 - $packetgen_deployment_name.yaml
558 - $firewall_deployment_name.yaml
559 - $sink_deployment_name.yaml
562 cat << NET > $unprotected_private_net.yaml
563 apiVersion: "k8s.cni.cncf.io/v1"
564 kind: NetworkAttachmentDefinition
566 name: $unprotected_private_net
569 "name": "unprotected",
572 "type": "host-local",
573 "subnet": "$protected_private_net_cidr"
578 cat << NET > $protected_private_net.yaml
579 apiVersion: "k8s.cni.cncf.io/v1"
580 kind: NetworkAttachmentDefinition
582 name: $protected_private_net
588 "type": "host-local",
589 "subnet": "$protected_net_cidr"
594 cat << NET > $onap_private_net.yaml
595 apiVersion: "k8s.cni.cncf.io/v1"
596 kind: NetworkAttachmentDefinition
598 name: $onap_private_net
604 "type": "host-local",
605 "subnet": "$onap_private_net_cidr"
612 - export demo_artifacts_version=$demo_artifacts_version
613 - export vfw_private_ip_0=$vfw_private_ip_0
614 - export vsn_private_ip_0=$vsn_private_ip_0
615 - export protected_net_cidr=$protected_net_cidr
616 - export dcae_collector_ip=$dcae_collector_ip
617 - export dcae_collector_port=$dcae_collector_port
618 - export protected_net_gw=$protected_net_gw
619 - export protected_private_net_cidr=$protected_private_net_cidr
621 if [[ -n "${http_proxy+x}" ]]; then
623 http_proxy: $http_proxy"
625 - export http_proxy=$http_proxy"
627 if [[ -n "${https_proxy+x}" ]]; then
629 https_proxy: $https_proxy"
631 - export https_proxy=$https_proxy"
633 if [[ -n "${no_proxy+x}" ]]; then
635 - export no_proxy=$no_proxy"
638 cat << DEPLOYMENT > $packetgen_deployment_name.yaml
642 name: $packetgen_deployment_name
655 VirtletLibvirtCPUSetting: |
657 VirtletCloudInitUserData: |
664 sudo: ALL=(ALL) NOPASSWD:ALL
666 # the password is "admin"
667 passwd: "\$6\$rounds=4096\$QA5OCKHTE41\$jRACivoPMJcOjLRgxl3t.AMfU7LhCFwOWv2z66CQX.TSxBy50JoYtycJXSPr2JceG.8Tq/82QN9QYt3euYEZW/"
673 - wget -O - https://git.onap.org/multicloud/k8s/plain/kud/tests/vFW/$packetgen_deployment_name | sudo -E bash
676 VirtletRootVolumeSize: 5Gi
677 k8s.v1.cni.cncf.io/networks: '[
678 { "name": "$unprotected_private_net", "interfaceRequest": "eth1" },
679 { "name": "$onap_private_net", "interfaceRequest": "eth2" }
681 kubernetes.io/target-runtime: virtlet.cloud
685 requiredDuringSchedulingIgnoredDuringExecution:
693 - name: $packetgen_deployment_name
695 imagePullPolicy: IfNotPresent
699 - containerPort: 8183
705 cat << DEPLOYMENT > $firewall_deployment_name.yaml
709 name: $firewall_deployment_name
722 VirtletLibvirtCPUSetting: |
724 VirtletCloudInitUserData: |
731 sudo: ALL=(ALL) NOPASSWD:ALL
733 # the password is "admin"
734 passwd: "\$6\$rounds=4096\$QA5OCKHTE41\$jRACivoPMJcOjLRgxl3t.AMfU7LhCFwOWv2z66CQX.TSxBy50JoYtycJXSPr2JceG.8Tq/82QN9QYt3euYEZW/"
740 - wget -O - https://git.onap.org/multicloud/k8s/plain/kud/tests/vFW/$firewall_deployment_name | sudo -E bash
743 VirtletRootVolumeSize: 5Gi
744 k8s.v1.cni.cncf.io/networks: '[
745 { "name": "$unprotected_private_net", "interfaceRequest": "eth1" },
746 { "name": "$protected_private_net", "interfaceRequest": "eth2" },
747 { "name": "$onap_private_net", "interfaceRequest": "eth3" }
749 kubernetes.io/target-runtime: virtlet.cloud
753 requiredDuringSchedulingIgnoredDuringExecution:
761 - name: $firewall_deployment_name
763 imagePullPolicy: IfNotPresent
771 cat << DEPLOYMENT > $sink_deployment_name.yaml
775 name: $sink_deployment_name
788 VirtletLibvirtCPUSetting: |
790 VirtletCloudInitUserData: |
797 sudo: ALL=(ALL) NOPASSWD:ALL
799 # the password is "admin"
800 passwd: "\$6\$rounds=4096\$QA5OCKHTE41\$jRACivoPMJcOjLRgxl3t.AMfU7LhCFwOWv2z66CQX.TSxBy50JoYtycJXSPr2JceG.8Tq/82QN9QYt3euYEZW/"
806 - wget -O - https://git.onap.org/multicloud/k8s/plain/kud/tests/vFW/$sink_deployment_name | sudo -E bash
809 VirtletRootVolumeSize: 5Gi
810 k8s.v1.cni.cncf.io/networks: '[
811 { "name": "$protected_private_net", "interfaceRequest": "eth1" },
812 { "name": "$onap_private_net", "interfaceRequest": "eth2" }
814 kubernetes.io/target-runtime: virtlet.cloud
818 requiredDuringSchedulingIgnoredDuringExecution:
826 - name: $sink_deployment_name
828 imagePullPolicy: IfNotPresent
840 # populate_CSAR_multus() - This function creates the content of CSAR file
841 # required for testing Multus feature
842 function populate_CSAR_multus {
845 _checks_args $csar_id
846 pushd ${CSAR_DIR}/${csar_id}
848 cat << META > metadata.yaml
851 - bridge-network.yaml
853 - $multus_deployment_name.yaml
856 cat << NET > bridge-network.yaml
857 apiVersion: "k8s.cni.cncf.io/v1"
858 kind: NetworkAttachmentDefinition
863 "cniVersion": "0.3.0",
867 "type": "host-local",
868 "subnet": "$onap_private_net_cidr"
873 cat << DEPLOYMENT > $multus_deployment_name.yaml
877 name: $multus_deployment_name
890 k8s.v1.cni.cncf.io/networks: '[
891 { "name": "bridge-conf", "interfaceRequest": "eth1" },
892 { "name": "bridge-conf", "interfaceRequest": "eth2" }
896 - name: $multus_deployment_name
905 # populate_CSAR_virtlet() - This function creates the content of CSAR file
906 # required for testing Virtlet feature
907 function populate_CSAR_virtlet {
910 _checks_args $csar_id
911 pushd ${CSAR_DIR}/${csar_id}
913 cat << META > metadata.yaml
916 - $virtlet_deployment_name.yaml
919 cat << DEPLOYMENT > $virtlet_deployment_name.yaml
923 name: $virtlet_deployment_name
936 VirtletLibvirtCPUSetting: |
937 mode: host-passthrough
938 # This tells CRI Proxy that this pod belongs to Virtlet runtime
939 kubernetes.io/target-runtime: virtlet.cloud
940 VirtletCloudInitUserData: |
945 primary-group: testuser
949 # the password is "testuser"
950 passwd: "\$6\$rounds=4096\$wPs4Hz4tfs\$a8ssMnlvH.3GX88yxXKF2cKMlVULsnydoOKgkuStTErTq2dzKZiIx9R/pPWWh5JLxzoZEx7lsSX5T2jW5WISi1"
951 sudo: ALL=(ALL) NOPASSWD:ALL
957 requiredDuringSchedulingIgnoredDuringExecution:
965 - name: $virtlet_deployment_name
966 # This specifies the image to use.
967 # virtlet.cloud/ prefix is used by CRI proxy, the remaining part
968 # of the image name is prepended with https:// and used to download the image
969 image: $virtlet_image
970 imagePullPolicy: IfNotPresent
971 # tty and stdin required for "kubectl attach -t" to work
976 # This memory limit is applied to the libvirt domain definition
982 # populate_CSAR_plugin()- Creates content used for Plugin functional tests
983 function populate_CSAR_plugin {
986 _checks_args $csar_id
987 pushd ${CSAR_DIR}/${csar_id}
989 cat << META > metadata.yaml
992 - $plugin_deployment_name.yaml
997 cat << DEPLOYMENT > $plugin_deployment_name.yaml
1001 name: $plugin_deployment_name
1013 - name: $plugin_deployment_name
1020 cat << SERVICE > service.yaml
1024 name: $plugin_service_name
1035 # populate_CSAR_ovn4nfv() - Create content used for OVN4NFV functional test
1036 function populate_CSAR_ovn4nfv {
1039 _checks_args $csar_id
1040 pushd ${CSAR_DIR}/${csar_id}
1042 cat << META > metadata.yaml
1048 - onap-ovn4nfvk8s-network.yaml
1050 - $ovn4nfv_deployment_name.yaml
1053 cat << MULTUS_NET > onap-ovn4nfvk8s-network.yaml
1054 apiVersion: "k8s.cni.cncf.io/v1"
1055 kind: NetworkAttachmentDefinition
1057 name: $ovn_multus_network_name
1060 "cniVersion": "0.3.1",
1061 "name": "ovn4nfv-k8s-plugin",
1062 "type": "ovn4nfvk8s-cni"
1066 cat << NETWORK > ovn-port-net.yaml
1067 apiVersion: k8s.plugin.opnfv.org/v1alpha1
1074 - subnet: 172.16.33.0/24
1076 gateway: 172.16.33.1/24
1079 cat << NETWORK > ovn-priv-net.yaml
1080 apiVersion: k8s.plugin.opnfv.org/v1alpha1
1087 - subnet: 172.16.44.0/24
1089 gateway: 172.16.44.1/24
1092 cat << DEPLOYMENT > $ovn4nfv_deployment_name.yaml
1096 name: $ovn4nfv_deployment_name
1109 k8s.v1.cni.cncf.io/networks: '[{ "name": "$ovn_multus_network_name"}]'
1110 k8s.plugin.opnfv.org/nfn-network: '{ "type": "ovn4nfv", "interface": [{ "name": "ovn-port-net", "interface": "net0" , "defaultGateway": "false"},
1111 { "name": "ovn-priv-net", "interface": "net1" , "defaultGateway": "false"}]}'
1114 - name: $ovn4nfv_deployment_name
1123 # populate_CSAR_rbdefinition() - Function that populates CSAR folder
1124 # for testing resource bundle definition
1125 function populate_CSAR_rbdefinition {
1127 pushd "${CSAR_DIR}/$1"
1128 print_msg "Create Helm Chart Archives"
1130 tar -czf rb_profile.tar.gz -C $test_folder/vnfs/testrb/helm/profile .
1131 #Creates vault-consul-dev-0.0.0.tgz
1132 helm package $test_folder/vnfs/testrb/helm/vault-consul-dev --version 0.0.0
1136 # populate_CSAR_edgex_rbdefinition() - Function that populates CSAR folder
1137 # for testing resource bundle definition of edgex scenario
1138 function populate_CSAR_edgex_rbdefinition {
1140 pushd "${CSAR_DIR}/$1"
1141 print_msg "Create Helm Chart Archives"
1143 tar -czf rb_profile.tar.gz -C $test_folder/vnfs/edgex/profile .
1144 tar -czf rb_definition.tar.gz -C $test_folder/vnfs/edgex/helm edgex
1148 # populate_CSAR_fw_rbdefinition() - Function that populates CSAR folder
1149 # for testing resource bundle definition of firewall scenario
1150 function populate_CSAR_fw_rbdefinition {
1152 pushd "${CSAR_DIR}/$1"
1153 print_msg "Create Helm Chart Archives for vFirewall"
1155 # Reuse profile from the edgeX case as it is an empty profile
1156 tar -czf rb_profile.tar.gz -C $test_folder/vnfs/edgex/profile .
1157 tar -czf rb_definition.tar.gz -C $test_folder/../demo firewall
1161 # populate_CSAR_eaa_rbdefinition() - Function that populates CSAR folder
1162 # for testing resource bundle definition of openness eaa scenario
1163 function populate_CSAR_eaa_rbdefinition {
1165 pushd "${CSAR_DIR}/$1"
1166 print_msg "Create Helm Chart Archives for Openness EAA"
1168 tar -czf rb_profile.tar.gz -C $test_folder/openness/eaa/profile .
1169 tar -czf rb_definition.tar.gz -C $test_folder/openness/eaa/helm eaa
1173 # populate_CSAR_eaa_sample_app_rbdefinition() - Function that populates CSAR folder
1174 # for testing resource bundle definition of openness sample-app scenario
1175 function populate_CSAR_eaa_sample_app_rbdefinition {
1177 pushd "${CSAR_DIR}/$1"
1178 print_msg "Create Helm Chart Archives for Openness EAA Sample Apps: producer and consumer"
1180 tar -czf rb_profile.tar.gz -C $test_folder/openness/sample-app/profile .
1181 tar -czf rb_definition.tar.gz -C $test_folder/openness/sample-app/helm sample-app
1185 function populate_CSAR_composite_app_helm {
1187 pushd "${CSAR_DIR}/$1"
1188 print_msg "Create Helm Chart Archives for compositeApp"
1190 tar -czf collectd.tar.gz -C $test_folder/vnfs/comp-app/collection/app1/helm .
1191 tar -czf prometheus.tar.gz -C $test_folder/vnfs/comp-app/collection/app2/helm .
1192 tar -czf collectd_profile.tar.gz -C $test_folder/vnfs/comp-app/collection/app1/profile .
1193 tar -czf prometheus_profile.tar.gz -C $test_folder/vnfs/comp-app/collection/app2/profile .