8 base_url_clm=${base_url:-"http://10.10.10.6:31044/v2"}
9 base_url_ncm=${base_url:-"http://10.10.10.6:31983/v2"}
10 base_url_orchestrator=${base_url:-"http://10.10.10.6:30186/v2"}
12 # add the rsync controller entry
13 rsynccontrollername="rsync"
14 rsynccontrollerdata="$(cat<<EOF
18 "description": "description of $rsynccontrollername controller",
19 "userData1": "$rsynccontrollername user data 1",
20 "userData2": "$rsynccontrollername user data 2"
23 "host": "${rsynccontrollername}",
31 clusterprovidername="cluster-provider-a"
32 clusterproviderdata="$(cat<<EOF
35 "name": "$clusterprovidername",
36 "description": "description of $clusterprovidername",
37 "userData1": "$clusterprovidername user data 1",
38 "userData2": "$clusterprovidername user data 2"
45 clusterdata="$(cat<<EOF
48 "name": "$clustername",
49 "description": "description of $clustername",
50 "userData1": "$clustername user data 1",
51 "userData2": "$clustername user data 2"
57 # set $kubeconfigfile before running script to point to the desired config file
58 defaultkubeconfig="$(cat<<EOF
60 "not a good kube config file"
64 echo "$defaultkubeconfig" > /tmp/ncmkubeconfig
66 kubeconfigfile=${kubeconfigfile:-"/tmp/ncmkubeconfig"}
70 {"label-name": "$labelname"}
79 "description": "this is key value $kvname",
80 "userData1": "cluster $kvname pair data",
81 "userData2": "cluster $kvname pair data a"
94 networkname="network-a"
95 networkdata="$(cat<<EOF
98 "name": "$networkname",
99 "description": "Description of $networkname",
100 "userData1": "$networkname data part A",
101 "userData2": "$networkname data part B"
104 "cniType": "ovn4nfv",
107 "subnet": "172.16.33.0/24",
109 "gateway": "172.16.33.1/32",
110 "excludeIps": "172.16.33.2 172.16.33.5..172.16.33.10"
113 "subnet": "172.16.34.0/24",
115 "gateway": "172.16.34.1/32",
116 "excludeIps": "172.16.34.2 172.16.34.5..172.16.34.10"
124 providernetworkname="providernetwork-a"
125 providernetworkdata="$(cat<<EOF
128 "name": "$providernetworkname",
129 "description": "Description of $providernetworkname",
130 "userData1": "$providernetworkname data part A",
131 "userData2": "$providernetworkname data part B"
134 "cniType": "ovn4nfv",
137 "subnet": "172.16.31.0/24",
139 "gateway": "172.16.31.1/32",
140 "excludeIps": "172.16.31.2 172.16.31.5..172.16.31.10"
143 "subnet": "172.16.32.0/24",
145 "gateway": "172.16.32.1/32",
146 "excludeIps": "172.16.32.2 172.16.32.5..172.16.32.10"
149 "providerNetType": "VLAN",
152 "providerInterfaceName": "eth1",
153 "logicalInterfaceName": "eth1.100",
154 "vlanNodeSelector": "specific",
156 "kubernetes.io/hostname=localhost",
157 "kubernetes.io/name=localhost"
165 function createOrchData {
166 call_api -d "${rsynccontrollerdata}" "${base_url_orchestrator}/controllers"
169 function createNcmData {
170 call_api -d "${clusterproviderdata}" "${base_url_clm}/cluster-providers"
171 call_api -H "Content-Type: multipart/form-data" -F "metadata=$clusterdata" -F "file=@$kubeconfigfile" "${base_url_clm}/cluster-providers/${clusterprovidername}/clusters"
172 call_api -d "${labeldata}" "${base_url_clm}/cluster-providers/${clusterprovidername}/clusters/${clustername}/labels"
173 call_api -d "${kvdata}" "${base_url_clm}/cluster-providers/${clusterprovidername}/clusters/${clustername}/kv-pairs"
174 call_api -d "${providernetworkdata}" "${base_url_ncm}/cluster-providers/${clusterprovidername}/clusters/${clustername}/provider-networks"
175 call_api -d "${networkdata}" "${base_url_ncm}/cluster-providers/${clusterprovidername}/clusters/${clustername}/networks"
178 # apply the network and providernetwork to an appcontext and instantiate with resource synchronizer (when implemented)
179 function applyNcmData {
180 call_api -d "{ }" "${base_url_ncm}/cluster-providers/${clusterprovidername}/clusters/${clustername}/apply"
183 # deletes the appcontext (eventually will terminate from resource synchronizer when that funcationality is ready)
184 function terminateNcmData {
185 call_api -d "{ }" "${base_url_ncm}/cluster-providers/${clusterprovidername}/clusters/${clustername}/terminate"
188 function getOrchData {
189 call_api_nox "${base_url_orchestrator}/controllers"
192 function getNcmData {
193 call_api_nox "${base_url_clm}/cluster-providers/${clusterprovidername}"
194 call_api_nox -H "Accept: application/json" "${base_url_clm}/cluster-providers/${clusterprovidername}/clusters/${clustername}"
195 call_api_nox "${base_url_clm}/cluster-providers/${clusterprovidername}/clusters?label=${labelname}"
196 call_api_nox "${base_url_clm}/cluster-providers/${clusterprovidername}/clusters/${clustername}/kv-pairs/${kvname}"
197 call_api_nox "${base_url_ncm}/cluster-providers/${clusterprovidername}/clusters/${clustername}/networks/${networkname}"
198 call_api_nox "${base_url_ncm}/cluster-providers/${clusterprovidername}/clusters/${clustername}/provider-networks/${providernetworkname}"
202 function deleteOrchData {
203 call_api -X DELETE "${base_url_orchestrator}/controllers/${rsynccontrollername}" | jq .
206 function deleteNcmData {
207 call_api -X DELETE "${base_url_ncm}/cluster-providers/${clusterprovidername}/clusters/${clustername}/networks/${networkname}"
208 call_api -X DELETE "${base_url_ncm}/cluster-providers/${clusterprovidername}/clusters/${clustername}/provider-networks/${providernetworkname}"
209 call_api -X DELETE "${base_url_clm}/cluster-providers/${clusterprovidername}/clusters/${clustername}/labels/${labelname}"
210 call_api -X DELETE "${base_url_clm}/cluster-providers/${clusterprovidername}/clusters/${clustername}/kv-pairs/${kvname}"
211 call_api -X DELETE "${base_url_clm}/cluster-providers/${clusterprovidername}/clusters/${clustername}"
212 call_api -X DELETE "${base_url_clm}/cluster-providers/${clusterprovidername}"
216 echo "Usage: $0 create|creatersync|apply|get|getrsync|terminate|delete|deletersync"
220 # Put in logic to select from a few choices: create, get, delete
221 if [ "$#" -ne 1 ] ; then
226 "creatersync" ) createOrchData ;;
227 "create" ) createNcmData ;;
228 "apply" ) applyNcmData ;;
229 "terminate" ) terminateNcmData ;;
230 "get" ) getNcmData ;;
231 "getrsync" ) getOrchData ;;
232 "delete" ) deleteNcmData ;;
233 "deletersync" ) deleteOrchData ;;