Automate AAI manual configuration
[demo.git] / tutorials / 5GE2ENetworkSlicing / common / setup_onap_for_ns.sh
1 #!/bin/bash
2 # This scripts preloads ONAP with some relevant entries required to orchestrate NS
3 # Some steps may fail if script is ran non-first time on environment so strict error checking is turned off
4 set +e -x
5 aai_curl() {
6   curl -ksSL -H "X-TransactionId: $RANDOM" -H "X-FromAppId: Jenkins" -H "Content-Type: application/json" -H "Accept: application/json" \
7     -H "Authorization: Basic QUFJOkFBSQ==" "$@"
8 }
9 MASTER_IP="${1:?Missing mandatory positional parameter - Master IP}"
10 TENANT_ID=${2:?Missing mandatory positional parameter - Tenant ID}
11 TENANT_NAME=${3:?Missing mandatory positional parameter - Tenant Name}
12
13 aai_curl -X PUT -d '{ "global-customer-id":"5GCustomer", "subscriber-name":"5GCustomer", "subscriber-type":"INFRA" }' "https://${MASTER_IP}:30233/aai/v23/business/customers/customer/5GCustomer"
14
15 aai_curl -X PUT "https://${MASTER_IP}:30233/aai/v23/business/customers/customer/5GCustomer/service-subscriptions/service-subscription/5G"
16
17 aai_curl -X PUT "https://${MASTER_IP}:30233/aai/v23/cloud-infrastructure/complexes/complex/clli2" \
18 -d '{
19     "physical-location-id": "clli2",
20     "physical-location-type": "office",
21     "street1": "Dummy 1",
22     "city": "Kraków",
23     "postal-code": "30-000",
24     "country": "Poland",
25     "region": "Smaller Poland"
26 }'
27
28 echo "Handling AAI Entries"
29 aai_curl -X PUT "https://${MASTER_IP}:30233/aai/v23/cloud-infrastructure/cloud-regions/cloud-region/k8scloudowner4/k8sregionfour" \
30   --data '{
31       "cloud-owner": "k8scloudowner4",
32       "cloud-region-id": "k8sregionfour",
33       "cloud-type": "k8s",
34       "owner-defined-type": "t1",
35       "cloud-region-version": "1.0",
36       "complex-name": "clli2",
37       "cloud-zone": "CloudZone",
38       "sriov-automation": false
39   }'
40 aai_curl -X PUT "https://${MASTER_IP}:30233/aai/v23/cloud-infrastructure/cloud-regions/cloud-region/k8scloudowner4/k8sregionfour/vip-ipv4-address-list/${MASTER_IP}" \
41   --data "{
42       \"vip-ipv4-address\": \"${MASTER_IP}\"
43   }"
44 aai_curl -X PUT "https://${MASTER_IP}:30233/aai/v23/cloud-infrastructure/cloud-regions/cloud-region/k8scloudowner4/k8sregionfour/relationship-list/relationship" \
45   --data '{
46       "related-to": "complex",
47       "related-link": "/aai/v23/cloud-infrastructure/complexes/complex/clli2",
48       "relationship-data": [
49           {
50             "relationship-key": "complex.physical-location-id",
51             "relationship-value": "clli2"
52           }
53       ]
54   }'
55 aai_curl -X PUT "https://${MASTER_IP}:30233/aai/v23/cloud-infrastructure/cloud-regions/cloud-region/k8scloudowner4/k8sregionfour/availability-zones/availability-zone/k8savz" \
56   --data '{
57       "availability-zone-name": "k8savz",
58       "hypervisor-type": "k8s"
59   }'
60 aai_curl -X PUT "https://${MASTER_IP}:30233/aai/v23/cloud-infrastructure/cloud-regions/cloud-region/k8scloudowner4/k8sregionfour/tenants/tenant/${TENANT_ID}" \
61   --data '{
62       "tenant-id": "'$TENANT_ID'",
63       "tenant-name": "'$TENANT_NAME'",
64       "relationship-list": {
65           "relationship": [
66           {
67               "related-to": "service-subscription",
68               "relationship-label": "org.onap.relationships.inventory.Uses",
69               "related-link": "/aai/v23/business/customers/customer/5GCustomer/service-subscriptions/service-subscription/5G",
70               "relationship-data": [
71                   {
72                       "relationship-key": "customer.global-customer-id",
73                       "relationship-value": "5GCustomer"
74                   },
75                   {
76                       "relationship-key": "service-subscription.service-type",
77                       "relationship-value": "5G"
78                   }
79               ]
80         }
81         ]
82       }
83   }'
84
85 echo "Configuring k8splugin"
86 curl -ksSL -X POST "https://${MASTER_IP}:30283/api/multicloud-k8s/v1/v1/connectivity-info" \
87   --header "Content-Type: multipart/form-data" \
88   --form "file=@${HOME}/.kube/config" \
89   --form metadata='{
90     "cloud-region": "k8sregionfour",
91     "cloud-owner": "k8scloudowner4"
92   }'
93
94 echo "Configuring SO"
95 pass=$(kubectl get "$(kubectl get secrets -o name | grep mariadb-galera-db-root-password)" \
96   -o jsonpath="{.data.password}" | base64 --decode)
97 kubectl -n onap exec onap-mariadb-galera-0 -- \
98   mysql -uroot -p"${pass}" -D catalogdb -e \
99   'INSERT IGNORE INTO
100     cloud_sites(ID, REGION_ID, IDENTITY_SERVICE_ID, CLOUD_VERSION, CLLI, ORCHESTRATOR)
101     values("k8sregionfour", "k8sregionfour", "DEFAULT_KEYSTONE", "2.5", "clli2", "multicloud");'