2 # * Copyright 2020 Intel Corporation, Inc
4 # * Licensed under the Apache License, Version 2.0 (the "License");
5 # * you may not use this file except in compliance with the License.
6 # * You may obtain a copy of the License at
8 # * http://www.apache.org/licenses/LICENSE-2.0
10 # * Unless required by applicable law or agreed to in writing, software
11 # * distributed under the License is distributed on an "AS IS" BASIS,
12 # * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 # * See the License for the specific language governing permissions and
14 # * limitations under the License.
24 source _common_test.sh
28 # base_url_orchestrator=${base_url_orchestrator:-"http://localhost:9015/v2"}
29 # base_url_clm=${base_url_clm:-"http://localhost:9019/v2"}
30 # base_url_ncm=${base_url_ncm:-"http://localhost:9016/v2"}
32 base_url_clm=${base_url_clm:-"http://192.168.121.29:30073/v2"}
33 base_url_ncm=${base_url_ncm:-"http://192.168.121.29:31955/v2"}
34 base_url_orchestrator=${base_url_orchestrator:-"http://192.168.121.29:32447/v2"}
35 base_url_rysnc=${base_url_orchestrator:-"http://192.168.121.29:32002/v2"}
39 csar_id="operators-cb009bfe-bbee-11e8-9766-525400435678"
42 app1_helm_path="$CSAR_DIR/$csar_id/operator.tar.gz"
43 app1_profile_path="$CSAR_DIR/$csar_id/operator_profile.tar.gz"
47 # ---------BEGIN: SET CLM DATA---------------
49 clusterprovidername="collection-cluster1-provider"
50 clusterproviderdata="$(cat<<EOF
53 "name": "$clusterprovidername",
54 "description": "description of $clusterprovidername",
55 "userData1": "$clusterprovidername user data 1",
56 "userData2": "$clusterprovidername user data 2"
62 clustername="cluster1"
63 clusterdata="$(cat<<EOF
66 "name": "$clustername",
67 "description": "description of $clustername",
68 "userData1": "$clustername user data 1",
69 "userData2": "$clustername user data 2"
75 kubeconfigcluster1="/opt/kud/multi-cluster/cluster1/artifacts/admin.conf"
77 labelname="LabelCluster1"
79 {"label-name": "$labelname"}
83 #--TODO--Creating provider network and network intents----
85 # add the rsync controller entry
86 rsynccontrollername="rsync"
87 rsynccontrollerdata="$(cat<<EOF
91 "description": "description of $rsynccontrollername controller",
92 "userData1": "user data 1 for $rsynccontrollername",
93 "userData2": "user data 2 for $rsynccontrollername"
96 "host": "${rsynccontrollername}",
103 # ------------END: SET CLM DATA--------------
106 #-------------BEGIN:SET ORCH DATA------------------
109 projectname="OperatorsProjectCluster1"
110 projectdata="$(cat<<EOF
113 "name": "$projectname",
114 "description": "description of $projectname controller",
115 "userData1": "$projectname user data 1",
116 "userData2": "$projectname user data 2"
122 # define a composite application
123 operators_compositeapp_name="OperatorsCompositeApp"
124 compositeapp_version="v1"
125 compositeapp_data="$(cat <<EOF
128 "name": "${operators_compositeapp_name}",
129 "description": "description of ${operators_compositeapp_name}",
130 "userData1": "user data 1 for ${operators_compositeapp_name}",
131 "userData2": "user data 2 for ${operators_compositeapp_name}"
134 "version":"${compositeapp_version}"
140 # add operator into operators compositeApp
143 operator_app_name="operator"
144 operator_helm_chart=${app1_helm_path}
146 operator_app_data="$(cat <<EOF
149 "name": "${operator_app_name}",
150 "description": "description for app ${operator_app_name}",
151 "userData1": "user data 2 for ${operator_app_name}",
152 "userData2": "user data 2 for ${operator_app_name}"
159 # Add the composite profile
160 operators_composite_profile_name="operators_composite-profile"
161 operators_composite_profile_data="$(cat <<EOF
164 "name":"${operators_composite_profile_name}",
165 "description":"description of ${operators_composite_profile_name}",
166 "userData1":"user data 1 for ${operators_composite_profile_name}",
167 "userData2":"user data 2 for ${operators_composite_profile_name}"
173 # Add the operator profile data into operators composite profile data
174 operator_profile_name="operator-profile"
175 operator_profile_file=$app1_profile_path
176 operator_profile_data="$(cat <<EOF
179 "name":"${operator_profile_name}",
180 "description":"description of ${operator_profile_name}",
181 "userData1":"user data 1 for ${operator_profile_name}",
182 "userData2":"user data 2 for ${operator_profile_name}"
185 "app-name": "${operator_app_name}"
193 # define the generic placement intent
194 generic_placement_intent_name="Operators-generic-placement-intent"
195 generic_placement_intent_data="$(cat <<EOF
198 "name":"${generic_placement_intent_name}",
199 "description":"${generic_placement_intent_name}",
200 "userData1":"${generic_placement_intent_name}",
201 "userData2":"${generic_placement_intent_name}"
204 "logical-cloud":"unused_logical_cloud"
210 # define placement intent for operator sub-app
211 operator_placement_intent_name="operator-placement-intent"
212 operator_placement_intent_data="$(cat <<EOF
215 "name":"${operator_placement_intent_name}",
216 "description":"description of ${operator_placement_intent_name}",
217 "userData1":"user data 1 for ${operator_placement_intent_name}",
218 "userData2":"user data 2 for ${operator_placement_intent_name}"
221 "app-name":"${operator_app_name}",
224 { "provider-name":"${clusterprovidername}",
225 "cluster-label-name":"${labelname}"
235 # define a deployment intent group
237 deployment_intent_group_name="operators_deployment_intent_group"
238 deployment_intent_group_data="$(cat <<EOF
241 "name":"${deployment_intent_group_name}",
242 "description":"descriptiont of ${deployment_intent_group_name}",
243 "userData1":"user data 1 for ${deployment_intent_group_name}",
244 "userData2":"user data 2 for ${deployment_intent_group_name}"
247 "profile":"${operators_composite_profile_name}",
248 "version":"${release}",
255 # define the intents to be used by the group
256 deployment_intents_in_group_name="operators_deploy_intents"
257 deployment_intents_in_group_data="$(cat <<EOF
260 "name":"${deployment_intents_in_group_name}",
261 "description":"descriptionf of ${deployment_intents_in_group_name}",
262 "userData1":"user data 1 for ${deployment_intents_in_group_name}",
263 "userData2":"user data 2 for ${deployment_intents_in_group_name}"
267 "genericPlacementIntent":"${generic_placement_intent_name}"
275 #---------END: SET ORCH DATA--------------------
278 function createOrchestratorData {
280 print_msg "creating controller entries"
281 call_api -d "${rsynccontrollerdata}" "${base_url_orchestrator}/controllers"
283 print_msg "creating project entry"
284 call_api -d "${projectdata}" "${base_url_orchestrator}/projects"
286 print_msg "creating operators composite app entry"
287 call_api -d "${compositeapp_data}" "${base_url_orchestrator}/projects/${projectname}/composite-apps"
289 print_msg "adding operator sub-app to the composite app"
290 call_api -F "metadata=${operator_app_data}" \
291 -F "file=@${operator_helm_chart}" \
292 "${base_url_orchestrator}/projects/${projectname}/composite-apps/${operators_compositeapp_name}/${compositeapp_version}/apps"
295 print_msg "creating operators composite profile entry"
296 call_api -d "${operators_composite_profile_data}" "${base_url_orchestrator}/projects/${projectname}/composite-apps/${operators_compositeapp_name}/${compositeapp_version}/composite-profiles"
298 print_msg "adding operator sub-app profile to the composite profile"
299 call_api -F "metadata=${operator_profile_data}" \
300 -F "file=@${operator_profile_file}" \
301 "${base_url_orchestrator}/projects/${projectname}/composite-apps/${operators_compositeapp_name}/${compositeapp_version}/composite-profiles/${operators_composite_profile_name}/profiles"
304 print_msg "create the generic placement intent"
305 call_api -d "${generic_placement_intent_data}" \
306 "${base_url_orchestrator}/projects/${projectname}/composite-apps/${operators_compositeapp_name}/${compositeapp_version}/generic-placement-intents"
307 print_msg "add the operator app placement intent to the generic placement intent"
308 call_api -d "${operator_placement_intent_data}" \
309 "${base_url_orchestrator}/projects/${projectname}/composite-apps/${operators_compositeapp_name}/${compositeapp_version}/generic-placement-intents/${generic_placement_intent_name}/app-intents"
312 print_msg "create the deployment intent group"
313 call_api -d "${deployment_intent_group_data}" \
314 "${base_url_orchestrator}/projects/${projectname}/composite-apps/${operators_compositeapp_name}/${compositeapp_version}/deployment-intent-groups"
315 call_api -d "${deployment_intents_in_group_data}" \
316 "${base_url_orchestrator}/projects/${projectname}/composite-apps/${operators_compositeapp_name}/${compositeapp_version}/deployment-intent-groups/${deployment_intent_group_name}/intents"
320 function deleteOrchestratorData {
321 # TODO- delete rsync controller and any other controller
322 delete_resource "${base_url_orchestrator}/controllers/${rsynccontrollername}"
324 delete_resource "${base_url_orchestrator}/projects/${projectname}/composite-apps/${operators_compositeapp_name}/${compositeapp_version}/deployment-intent-groups/${deployment_intent_group_name}/intents/${deployment_intents_in_group_name}"
325 delete_resource "${base_url_orchestrator}/projects/${projectname}/composite-apps/${operators_compositeapp_name}/${compositeapp_version}/deployment-intent-groups/${deployment_intent_group_name}"
326 delete_resource "${base_url_orchestrator}/projects/${projectname}/composite-apps/${operators_compositeapp_name}/${compositeapp_version}/generic-placement-intents/${generic_placement_intent_name}/app-intents/${operator_placement_intent_name}"
328 delete_resource "${base_url_orchestrator}/projects/${projectname}/composite-apps/${operators_compositeapp_name}/${compositeapp_version}/generic-placement-intents/${generic_placement_intent_name}"
331 delete_resource "${base_url_orchestrator}/projects/${projectname}/composite-apps/${operators_compositeapp_name}/${compositeapp_version}/composite-profiles/${operators_composite_profile_name}/profiles/${operator_profile_name}"
334 delete_resource "${base_url_orchestrator}/projects/${projectname}/composite-apps/${operators_compositeapp_name}/${compositeapp_version}/composite-profiles/${operators_composite_profile_name}"
337 delete_resource "${base_url_orchestrator}/projects/${projectname}/composite-apps/${operators_compositeapp_name}/${compositeapp_version}/apps/${operator_app_name}"
340 delete_resource "${base_url_orchestrator}/projects/${projectname}/composite-apps/${operators_compositeapp_name}/${compositeapp_version}"
342 delete_resource "${base_url_orchestrator}/projects/${projectname}"
345 function createClmData {
346 print_msg "Creating cluster provider and cluster"
347 call_api -d "${clusterproviderdata}" "${base_url_clm}/cluster-providers"
348 call_api -H "Content-Type: multipart/form-data" -F "metadata=$clusterdata" -F "file=@$kubeconfigcluster1" "${base_url_clm}/cluster-providers/${clusterprovidername}/clusters"
349 call_api -d "${labeldata}" "${base_url_clm}/cluster-providers/${clusterprovidername}/clusters/${clustername}/labels"
354 function deleteClmData {
355 delete_resource "${base_url_clm}/cluster-providers/${clusterprovidername}/clusters/${clustername}/labels/${labelname}"
356 delete_resource "${base_url_clm}/cluster-providers/${clusterprovidername}/clusters/${clustername}"
357 delete_resource "${base_url_clm}/cluster-providers/${clusterprovidername}"
359 function createData {
361 createOrchestratorData
363 function deleteData {
365 deleteOrchestratorData
367 function instantiate {
368 call_api -d "{ }" "${base_url_orchestrator}/projects/${projectname}/composite-apps/${vfw_compositeapp_name}/${vfw_compositeapp_version}/deployment-intent-groups/${deployment_intent_group_name}/approve"
369 call_api -d "{ }" "${base_url_orchestrator}/projects/${projectname}/composite-apps/${operators_compositeapp_name}/${compositeapp_version}/deployment-intent-groups/${deployment_intent_group_name}/instantiate"
373 function terminateOrchData {
374 call_api -d "{ }" "${base_url_orchestrator}/projects/${projectname}/composite-apps/${operators_compositeapp_name}/${compositeapp_version}/deployment-intent-groups/${deployment_intent_group_name}/terminate"
379 populate_CSAR_operator_helm "$csar_id"