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.
23 source _common_test.sh
28 base_url_clm=${base_url_clm:-"http://192.168.121.29:30073/v2"}
29 base_url_ncm=${base_url_ncm:-"http://192.168.121.29:31955/v2"}
30 base_url_orchestrator=${base_url_orchestrator:-"http://192.168.121.29:32447/v2"}
31 base_url_rysnc=${base_url_orchestrator:-"http://192.168.121.29:32002/v2"}
34 csar_id="m3db-cb009bfe-bbee-11e8-9766-525400435678"
36 app1_helm_path="$CSAR_DIR/$csar_id/m3db.tar.gz"
37 app1_profile_path="$CSAR_DIR/$csar_id/m3db_profile.tar.gz"
39 # ---------BEGIN: SET CLM DATA---------------
41 clusterprovidername="collection-m3db-installer-cluster1-provider"
42 clusterproviderdata="$(cat<<EOF
45 "name": "$clusterprovidername",
46 "description": "description of $clusterprovidername",
47 "userData1": "$clusterprovidername user data 1",
48 "userData2": "$clusterprovidername user data 2"
54 clustername="cluster1"
55 clusterdata="$(cat<<EOF
58 "name": "$clustername",
59 "description": "description of $clustername",
60 "userData1": "$clustername user data 1",
61 "userData2": "$clustername user data 2"
67 kubeconfigcluster1="/opt/kud/multi-cluster/cluster1/artifacts/admin.conf"
69 labelname="LabelCluster2"
71 {"label-name": "$labelname"}
75 #--TODO--Creating provider network and network intents----
77 # add the rsync controller entry
78 rsynccontrollername="rsync"
79 rsynccontrollerdata="$(cat<<EOF
83 "description": "description of $rsynccontrollername controller",
84 "userData1": "user data 1 for $rsynccontrollername",
85 "userData2": "user data 2 for $rsynccontrollername"
88 "host": "${rsynccontrollername}",
95 # ------------END: SET CLM DATA--------------
97 #-------------BEGIN:SET ORCH DATA------------------
100 projectname="M3dbInstaller-cluster1Old-Project"
101 projectdata="$(cat<<EOF
104 "name": "$projectname",
105 "description": "description of $projectname controller",
106 "userData1": "$projectname user data 1",
107 "userData2": "$projectname user data 2"
113 # define a composite application
114 m3db_compositeapp_name="OperatorsCompositeApp"
115 compositeapp_version="v1"
116 compositeapp_data="$(cat <<EOF
119 "name": "${m3db_compositeapp_name}",
120 "description": "description of ${m3db_compositeapp_name}",
121 "userData1": "user data 1 for ${m3db_compositeapp_name}",
122 "userData2": "user data 2 for ${m3db_compositeapp_name}"
125 "version":"${compositeapp_version}"
132 # add m3db app into compositeApp
135 m3db_helm_chart=${app1_helm_path}
137 m3db_app_data="$(cat <<EOF
140 "name": "${m3db_app_name}",
141 "description": "description for app ${m3db_app_name}",
142 "userData1": "user data 2 for ${m3db_app_name}",
143 "userData2": "user data 2 for ${m3db_app_name}"
149 # Add the composite profile
150 m3db_composite_profile_name="m3db_composite-profile"
151 m3db_composite_profile_data="$(cat <<EOF
154 "name":"${m3db_composite_profile_name}",
155 "description":"description of ${m3db_composite_profile_name}",
156 "userData1":"user data 1 for ${m3db_composite_profile_name}",
157 "userData2":"user data 2 for ${m3db_composite_profile_name}"
164 # Add the m3db profile data into composite profile data
165 m3db_profile_name="m3db-profile"
166 m3db_profile_file=$app1_profile_path
167 m3db_profile_data="$(cat <<EOF
170 "name":"${m3db_profile_name}",
171 "description":"description of ${m3db_profile_name}",
172 "userData1":"user data 1 for ${m3db_profile_name}",
173 "userData2":"user data 2 for ${m3db_profile_name}"
176 "app-name": "${m3db_app_name}"
183 # define the generic placement intent
184 generic_placement_intent_name="M3db-generic-placement-intent"
185 generic_placement_intent_data="$(cat <<EOF
188 "name":"${generic_placement_intent_name}",
189 "description":"${generic_placement_intent_name}",
190 "userData1":"${generic_placement_intent_name}",
191 "userData2":"${generic_placement_intent_name}"
194 "logical-cloud":"unused_logical_cloud"
201 # define placement intent for m3db as sub-app
202 m3db_placement_intent_name="m3db-placement-intent"
203 m3db_placement_intent_data="$(cat <<EOF
206 "name":"${m3db_placement_intent_name}",
207 "description":"description of ${m3db_placement_intent_name}",
208 "userData1":"user data 1 for ${m3db_placement_intent_name}",
209 "userData2":"user data 2 for ${m3db_placement_intent_name}"
212 "app-name":"${m3db_app_name}",
215 { "provider-name":"${clusterprovidername}",
216 "cluster-label-name":"${labelname}"
226 # define a deployment intent group
228 deployment_intent_group_name="m3db_deployment_intent_group"
229 deployment_intent_group_data="$(cat <<EOF
232 "name":"${deployment_intent_group_name}",
233 "description":"descriptiont of ${deployment_intent_group_name}",
234 "userData1":"user data 1 for ${deployment_intent_group_name}",
235 "userData2":"user data 2 for ${deployment_intent_group_name}"
238 "profile":"${m3db_composite_profile_name}",
239 "version":"${release}",
246 # define the intents to be used by the group
247 deployment_intents_in_group_name="m3db_deploy_intents"
248 deployment_intents_in_group_data="$(cat <<EOF
251 "name":"${deployment_intents_in_group_name}",
252 "description":"descriptionf of ${deployment_intents_in_group_name}",
253 "userData1":"user data 1 for ${deployment_intents_in_group_name}",
254 "userData2":"user data 2 for ${deployment_intents_in_group_name}"
258 "genericPlacementIntent":"${generic_placement_intent_name}"
265 #---------END: SET ORCH DATA--------------------
267 function createOrchestratorData {
268 print_msg "creating controller entries"
269 call_api -d "${rsynccontrollerdata}" "${base_url_orchestrator}/controllers"
272 print_msg "creating project entry"
273 call_api -d "${projectdata}" "${base_url_orchestrator}/projects"
276 print_msg "creating m3db composite app entry"
277 call_api -d "${compositeapp_data}" "${base_url_orchestrator}/projects/${projectname}/composite-apps"
279 print_msg "adding m3db sub-app to the composite app"
280 call_api -F "metadata=${m3db_app_data}" \
281 -F "file=@${m3db_helm_chart}" \
282 "${base_url_orchestrator}/projects/${projectname}/composite-apps/${m3db_compositeapp_name}/${compositeapp_version}/apps"
285 print_msg "creating m3db composite profile entry"
286 call_api -d "${m3db_composite_profile_data}" "${base_url_orchestrator}/projects/${projectname}/composite-apps/${m3db_compositeapp_name}/${compositeapp_version}/composite-profiles"
288 print_msg "adding m3db sub-app profile to the composite profile"
289 call_api -F "metadata=${m3db_profile_data}" \
290 -F "file=@${m3db_profile_file}" \
291 "${base_url_orchestrator}/projects/${projectname}/composite-apps/${m3db_compositeapp_name}/${compositeapp_version}/composite-profiles/${m3db_composite_profile_name}/profiles"
295 print_msg "create the generic placement intent"
296 call_api -d "${generic_placement_intent_data}" \
297 "${base_url_orchestrator}/projects/${projectname}/composite-apps/${m3db_compositeapp_name}/${compositeapp_version}/generic-placement-intents"
298 print_msg "add the m3db app placement intent to the generic placement intent"
299 call_api -d "${m3db_placement_intent_data}" \
300 "${base_url_orchestrator}/projects/${projectname}/composite-apps/${m3db_compositeapp_name}/${compositeapp_version}/generic-placement-intents/${generic_placement_intent_name}/app-intents"
302 print_msg "create the deployment intent group"
303 call_api -d "${deployment_intent_group_data}" \
304 "${base_url_orchestrator}/projects/${projectname}/composite-apps/${m3db_compositeapp_name}/${compositeapp_version}/deployment-intent-groups"
305 call_api -d "${deployment_intents_in_group_data}" \
306 "${base_url_orchestrator}/projects/${projectname}/composite-apps/${m3db_compositeapp_name}/${compositeapp_version}/deployment-intent-groups/${deployment_intent_group_name}/intents"
307 print_msg "finished orch data creation"
310 function deleteOrchestratorData {
312 # TODO- delete rsync controller and any other controller
313 delete_resource "${base_url_orchestrator}/controllers/${rsynccontrollername}"
315 delete_resource "${base_url_orchestrator}/projects/${projectname}/composite-apps/${m3db_compositeapp_name}/${compositeapp_version}/deployment-intent-groups/${deployment_intent_group_name}/intents/${deployment_intents_in_group_name}"
316 delete_resource "${base_url_orchestrator}/projects/${projectname}/composite-apps/${m3db_compositeapp_name}/${compositeapp_version}/deployment-intent-groups/${deployment_intent_group_name}"
317 delete_resource "${base_url_orchestrator}/projects/${projectname}/composite-apps/${m3db_compositeapp_name}/${compositeapp_version}/generic-placement-intents/${generic_placement_intent_name}/app-intents/${m3db_placement_intent_name}"
319 delete_resource "${base_url_orchestrator}/projects/${projectname}/composite-apps/${m3db_compositeapp_name}/${compositeapp_version}/generic-placement-intents/${generic_placement_intent_name}"
322 delete_resource "${base_url_orchestrator}/projects/${projectname}/composite-apps/${m3db_compositeapp_name}/${compositeapp_version}/composite-profiles/${m3db_composite_profile_name}/profiles/${m3db_profile_name}"
325 delete_resource "${base_url_orchestrator}/projects/${projectname}/composite-apps/${m3db_compositeapp_name}/${compositeapp_version}/composite-profiles/${m3db_composite_profile_name}"
328 delete_resource "${base_url_orchestrator}/projects/${projectname}/composite-apps/${m3db_compositeapp_name}/${compositeapp_version}/apps/${m3db_app_name}"
331 delete_resource "${base_url_orchestrator}/projects/${projectname}/composite-apps/${m3db_compositeapp_name}/${compositeapp_version}"
333 delete_resource "${base_url_orchestrator}/projects/${projectname}"
334 print_msg "finished orch data deletion"
338 function createClmData {
339 print_msg "Creating cluster provider and cluster"
340 call_api -d "${clusterproviderdata}" "${base_url_clm}/cluster-providers"
341 call_api -H "Content-Type: multipart/form-data" -F "metadata=$clusterdata" -F "file=@$kubeconfigcluster1" "${base_url_clm}/cluster-providers/${clusterprovidername}/clusters"
342 call_api -d "${labeldata}" "${base_url_clm}/cluster-providers/${clusterprovidername}/clusters/${clustername}/labels"
347 function deleteClmData {
348 delete_resource "${base_url_clm}/cluster-providers/${clusterprovidername}/clusters/${clustername}/labels/${labelname}"
349 delete_resource "${base_url_clm}/cluster-providers/${clusterprovidername}/clusters/${clustername}"
350 delete_resource "${base_url_clm}/cluster-providers/${clusterprovidername}"
354 function createData {
356 createOrchestratorData
359 function deleteData {
361 deleteOrchestratorData
364 function instantiate {
365 call_api -d "{ }" "${base_url_orchestrator}/projects/${projectname}/composite-apps/${m3db_compositeapp_name}/${compositeapp_version}/deployment-intent-groups/${deployment_intent_group_name}/instantiate"
368 function terminateOrchData {
369 call_api -d "{ }" "${base_url_orchestrator}/projects/${projectname}/composite-apps/${m3db_compositeapp_name}/${compositeapp_version}/deployment-intent-groups/${deployment_intent_group_name}/terminate"
375 populate_CSAR_m3db_helm "$csar_id"